```liquid ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ============================================ */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root { --oc-bg: #FAFAF8; --oc-text: #1A1A1A; --oc-muted: #6B6B6B; --oc-accent: #C4704F; --oc-sage: #8A9E85; --oc-border: #E5E2DC; --oc-white: #FFFFFF; } /* --- Journal page background --- */ .oc-journal-page { background: var(--oc-bg); color: var(--oc-text); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.8; font-size: 17px; } /* --- Hero --- */ .oc-hero { position: relative; height: 90vh; min-height: 560px; overflow: hidden; } .oc-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; } .oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.62) 100%); } .oc-hero-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 48px; max-width: 820px; } .oc-hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 16px; } .oc-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(32px, 5.5vw, 62px); font-weight: 700; font-style: italic; color: var(--oc-white); line-height: 1.12; margin-bottom: 20px; } .oc-hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.78); } .oc-hero-credit { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 12px; letter-spacing: 0.04em; } .oc-hero-credit a { color: rgba(255,255,255,0.45); } /* --- Article body --- */ .oc-article { max-width: 720px; margin: 0 auto; padding: 80px 24px 120px; } .oc-intro-lead { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2.5vw, 26px); font-weight: 400; font-style: italic; line-height: 1.6; color: var(--oc-text); margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--oc-border); } .oc-article h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.25; margin-top: 64px; margin-bottom: 20px; color: var(--oc-text); } .oc-article h3 { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oc-accent); margin-top: 40px; margin-bottom: 12px; } .oc-article p { margin-bottom: 24px; color: var(--oc-text); } /* --- Pull quote --- */ .oc-pull-quote { border-left: 3px solid var(--oc-accent); padding: 24px 32px; margin: 56px 0; background: var(--oc-white); } .oc-pull-quote p { font-family: 'Playfair Display', serif; font-size: clamp(18px, 2.2vw, 22px); font-style: italic; font-weight: 400; line-height: 1.55; color: var(--oc-text); margin: 0; } /* --- Sport card (used in Blog 1) --- */ .oc-sport-card { background: var(--oc-white); border: 1px solid var(--oc-border); padding: 36px 36px 28px; margin: 48px 0; } .oc-sport-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 6px; } .oc-sport-card-title { font-family: 'Playfair Display', serif; font-size: 26px; font-weight: 700; margin-bottom: 16px; } .oc-sport-card p { font-size: 15px; margin-bottom: 0; color: var(--oc-muted); } .oc-sport-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; } .oc-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--oc-border); color: var(--oc-muted); } /* --- Inline images --- */ .oc-inline-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 56px 0 12px; } .oc-image-caption { font-size: 12px; font-weight: 400; color: var(--oc-muted); letter-spacing: 0.05em; margin-bottom: 40px; } .oc-image-caption a { color: var(--oc-muted); } /* --- Image grid (2-up portrait) --- */ .oc-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 56px 0 12px; } .oc-image-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; } /* --- Timeline (used in Blog 2) --- */ .oc-timeline { margin: 56px 0; display: flex; flex-direction: column; } .oc-timeline-item { display: grid; grid-template-columns: 80px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--oc-border); } .oc-timeline-item:last-child { border-bottom: 1px solid var(--oc-border); } .oc-timeline-time { font-family: 'Playfair Display', serif; font-size: 13px; font-style: italic; color: var(--oc-accent); padding-top: 3px; } .oc-timeline-item h4 { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.06em; margin-bottom: 6px; } .oc-timeline-item p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- Stat cards (used in Blog 3) --- */ .oc-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--oc-border); margin: 64px 0; border: 1px solid var(--oc-border); } .oc-stat-card { background: var(--oc-white); padding: 32px 24px; text-align: center; } .oc-stat-number { font-family: 'Playfair Display', serif; font-size: clamp(36px, 5vw, 52px); font-weight: 700; color: var(--oc-accent); line-height: 1; margin-bottom: 8px; } .oc-stat-label { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-muted); line-height: 1.4; } /* --- Country blocks (used in Blog 3) --- */ .oc-country-block { border-top: 1px solid var(--oc-border); padding: 32px 0; } .oc-country-block:last-of-type { border-bottom: 1px solid var(--oc-border); } .oc-country-block-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; } .oc-country-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; } .oc-country-status { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oc-sage); } .oc-country-block p { font-size: 15px; color: var(--oc-muted); margin: 0; } /* --- CTA block --- */ .oc-cta-block { background: var(--oc-text); color: var(--oc-white); padding: 48px 40px; text-align: center; margin-top: 80px; } .oc-cta-block p { font-size: 13px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: var(--oc-sage); margin-bottom: 12px; } .oc-cta-block h2 { font-family: 'Playfair Display', serif; font-size: clamp(22px, 3vw, 32px); color: var(--oc-white); margin: 0 0 24px; font-style: italic; } .oc-cta-btn { display: inline-block; padding: 14px 36px; background: var(--oc-accent); color: var(--oc-white); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; transition: opacity 0.2s; } .oc-cta-btn:hover { opacity: 0.85; } /* --- Responsive --- */ @media (max-width: 600px) { .oc-hero-content { padding: 40px 24px; } .oc-article { padding: 56px 20px 80px; } .oc-sport-card { padding: 24px 20px; } .oc-image-grid { grid-template-columns: 1fr; } .oc-timeline-item { grid-template-columns: 60px 1fr; gap: 16px; } .oc-stat-row { grid-template-columns: 1fr; } .oc-cta-block { padding: 40px 24px; } } ```