:root {
  --background: oklch(0.19 0.005 170);
  --foreground: oklch(0.95 0.012 40);
  --card: oklch(0.20 0.012 310);
  --card-foreground: var(--foreground);
  --popover: var(--card);
  --popover-foreground: var(--foreground);
  --primary: oklch(0.77 0.09 13);
  --primary-foreground: var(--background);
  --secondary: oklch(0.26 0.014 310);
  --secondary-foreground: var(--foreground);
  --muted: var(--secondary);
  --muted-foreground: oklch(0.80 0.008 170);
  --accent: var(--secondary);
  --accent-foreground: var(--foreground);
  --border: oklch(0.32 0.012 310);
  --input: var(--border);
  --ring: var(--primary);
  --gallery-overlay: oklch(0.12 0.01 310 / 75%);
  --hero-foreground: oklch(0.99 0.005 60);
  --hero-scrim: linear-gradient(90deg, oklch(0.12 0.008 170 / 88%), oklch(0.12 0.008 170 / 35%) 65%, transparent);
  --journal-accent: oklch(0.82 0.07 170);
}

body { margin: 0; font-family: 'Manrope', sans-serif; letter-spacing: 0; background:var(--background); color:var(--foreground); }
.gallery-page { max-width: 1440px; margin: auto; padding: 0 64px; }
.gallery-header { display:flex; align-items:center; justify-content:space-between; min-height:104px; border-bottom:1px solid var(--border); gap:24px; }
.gallery-brand { display:inline-flex; align-items:center; font-family:'Cormorant Garamond', Georgia, serif; font-weight:600; font-size:30px; text-decoration:none; color:var(--foreground); }
.gallery-brand img { margin-right:10px; }
.gallery-brand span { color:var(--primary); font-style:italic; }
.gallery-header nav { display:flex; gap:30px; align-items:center; font-size:13px; }
.gallery-header nav a { text-decoration:none; color:var(--muted-foreground); }
.gallery-header nav a[aria-current], .gallery-header nav a:hover { color:var(--foreground); }
.gallery-intro { padding-top:36px; }
.gallery-eyebrow { display:flex; align-items:center; gap:9px; font-size:11px; letter-spacing:0; color:var(--primary); margin-bottom:22px; }
.gallery-intro h1 { font-family:'Cormorant Garamond', Georgia, serif; font-size:64px; line-height:1.02; font-weight:500; margin:0; }
.gallery-intro h1 span { display:block; color:var(--primary); font-style:italic; }
.gallery-title { font-family:'Cormorant Garamond',Georgia,serif; font-size:42px; font-weight:500; margin:0; }
.gallery-lead { max-width:540px; color:var(--muted-foreground); font-size:14px; line-height:1.9; margin:24px 0 42px; }
.gallery-toolbar { display:flex; justify-content:space-between; align-items:center; padding-bottom:20px; gap:16px; }
.gallery-tabs { display:flex; gap:8px; }
.gallery-tabs button { border-radius:4px; color:var(--foreground); font-size:12px; border:1px solid var(--border); background:var(--secondary); }
.gallery-tabs button[aria-pressed=true] { background:var(--primary); color:var(--primary-foreground); }
.gallery-count { font-size:10px; color:var(--muted-foreground); white-space:nowrap; }
.photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 24px; }
.photo-open { position:relative; display:block; padding:0; width:100%; height:auto; aspect-ratio:1; overflow:hidden; border-radius:4px; }
.photo-open img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.photo-open:hover img { transform:scale(1.035); }
.photo-expand { position:absolute; bottom:14px; right:14px; padding:9px; border:1px solid var(--border); background:var(--gallery-overlay); color:var(--foreground); border-radius:4px; }
.photo-number { position:absolute; top:14px; left:14px; background:var(--gallery-overlay); color:var(--foreground); font-size:10px; padding:4px 8px; }
.photo-caption { padding:17px 0 0; }
.photo-caption p { display:flex; align-items:center; gap:5px; font-size:10px; color:var(--muted-foreground); margin:0 0 6px; }
.photo-caption h2 { font-family:'Cormorant Garamond', Georgia, serif; font-size:25px; font-weight:500; line-height:1.2; margin:0; }
.gallery-disclosure { display:flex; gap:8px; align-items:center; font-size:11px; line-height:1.6; color:var(--muted-foreground); margin:40px 0 64px; }
.gallery-footer { border-top:1px solid var(--border); padding:32px 0; display:flex; align-items:center; flex-wrap:wrap; gap:20px; }
.gallery-footer p, .gallery-footer a:not(.gallery-brand), .gallery-footer small { font-size:11px; color:var(--muted-foreground); }
.gallery-footer a:not(.gallery-brand) { margin-left:auto; }
.gallery-dialog { width:calc(100% - 32px); max-width:720px; gap:10px; }
.gallery-full-image { width:100%; max-height:65dvh; object-fit:contain; }
.gallery-viewer-footer { display:flex; justify-content:space-between; align-items:center; font-size:12px; }
.connection-cover { position:relative; isolation:isolate; min-height:440px; display:flex; align-items:center; margin-top:32px; overflow:hidden; }
.connection-cover > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 15%; z-index:-2; }
.connection-cover::after { content:''; position:absolute; inset:0; background:var(--hero-scrim); z-index:-1; }
.connection-copy { padding:40px; max-width:660px; color:var(--hero-foreground); }
.connection-copy h1 { font-family:'Cormorant Garamond',Georgia,serif; font-size:64px; font-weight:500; line-height:1.04; margin:14px 0 20px; }
.connection-copy h1 span { display:block; font-size:42px; font-style:italic; }
.connection-copy p { max-width:390px; line-height:1.8; font-size:14px; }
.connection-copy .gallery-eyebrow { color:var(--hero-foreground); }
.journal-section { padding:64px 0; border-top:1px solid var(--border); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:28px; }
.section-heading h2, .journal-intro h1 { font-family:'Cormorant Garamond',Georgia,serif; font-size:44px; line-height:1.1; font-weight:500; margin:10px 0; }
.section-heading p, .journal-intro p { color:var(--muted-foreground); line-height:1.8; }
.journal-kicker { color:var(--journal-accent); font-size:11px; text-transform:uppercase; }
.journal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.journal-card { display:block; text-decoration:none; color:var(--foreground); }
.journal-card img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:4px; margin-bottom:16px; }
.journal-card h3 { font-family:'Cormorant Garamond',Georgia,serif; font-size:28px; line-height:1.18; font-weight:500; margin:12px 0; }
.journal-card p { color:var(--muted-foreground); font-size:13px; line-height:1.8; }
.journal-card .read-link { display:flex; align-items:center; gap:8px; color:var(--primary); font-size:12px; margin-top:18px; }
.journal-intro { padding:64px 0 40px; max-width:720px; }
.reading-page { max-width:780px; margin:0 auto; padding:52px 0 64px; }
.reading-page h1 { font-family:'Cormorant Garamond',Georgia,serif; font-size:52px; line-height:1.08; font-weight:500; margin:20px 0; }
.reading-page h2 { font-family:'Cormorant Garamond',Georgia,serif; font-size:30px; margin:34px 0 12px; font-weight:500; }
.reading-page p { color:var(--muted-foreground); font-size:15px; line-height:1.95; }
.reading-cover { width:100%; aspect-ratio:16/9; object-fit:cover; margin:24px 0; border-radius:4px; }
.reading-note { border-left:2px solid var(--journal-accent); padding-left:18px; }
@media(max-width:700px) { .connection-cover { min-height:400px; } .connection-copy { padding:28px 22px; } .connection-copy h1 { font-size:46px; } .connection-copy h1 span { font-size:32px; } .connection-cover > img { object-position:65% center; } .journal-grid { grid-template-columns:1fr; gap:36px; } .section-heading { align-items:start; flex-direction:column; } .reading-page h1 { font-size:38px; } .gallery-tabs { flex-wrap:wrap; } }
@media(max-width:900px) { .gallery-page { padding:0 28px; } .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .gallery-header nav { gap:18px; } }
@media(max-width:580px) { .gallery-page { padding:0 20px; } .gallery-header { min-height:90px; flex-wrap:wrap; padding:18px 0; gap:16px; } .gallery-header nav { width:100%; justify-content:space-between; gap:10px; font-size:12px; } .gallery-brand { font-size:28px; } .gallery-intro { padding-top:40px; } .gallery-intro h1 { font-size:44px; } .gallery-lead { font-size:13px; margin-bottom:30px; } .gallery-toolbar { flex-wrap:wrap; } .gallery-tabs { gap:3px; } .photo-grid { grid-template-columns:1fr; gap:28px; } .gallery-footer { align-items:flex-start; flex-direction:column; gap:12px; } .gallery-footer a:not(.gallery-brand) { margin-left:0; } .gallery-disclosure { align-items:flex-start; margin-bottom:40px; } }
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { transition:none !important; animation:none !important; } }

* { box-sizing: border-box; } a { color:var(--foreground); } button { font-family:inherit; cursor:pointer; } .gallery-tabs button, .viewer-button { padding:10px 14px; border:1px solid var(--border); background:transparent; color:var(--foreground); } .photo-open { border:0; cursor:pointer; } .gallery-dialog { border:1px solid var(--border); background:var(--background); color:var(--foreground); padding:24px; border-radius:8px; max-height:95dvh; } .gallery-dialog::backdrop { background:var(--gallery-overlay); } .close-viewer { float:right; } .gallery-dialog h2 { margin:0 0 8px; font-family:Georgia,serif; } .gallery-dialog p { color:var(--muted-foreground); font-size:12px; } .gallery-full-image { display:block; margin:14px auto; } .photo-item[hidden] { display:none; }