/* ══ Studio Modern ═══════════════════════════════════════════════ Leica-Profisprache (Signalrot, scharfe Kanten, Hairlines, Uppercase-Tracking) mit der Präzisions-Grotesk Archivo und IBM Plex Mono für alle fotografischen Metadaten. Aktivierung über content/settings.yaml: theme: preset: studio-modern accent: '#e60012' fonts: { heading: 'Archivo', body: 'Archivo', caption: 'IBM Plex Mono' } radius: 0 photoFrame: none grain: false headerDot: true heroStyle: split ══════════════════════════════════════════════════════════════ */ /* Palette + layout tokens live in app/tokens.css, next to the other presets — they must win over the :root defaults declared there. */ /* ── Roter Signalpunkt (wiederverwendet) ────────────────────── */ [data-preset='studio-modern'] .sm-dot::before, [data-preset='studio-modern'] .hero__subtitle::before, [data-preset='studio-modern'] .about__kicker::before, [data-preset='studio-modern'] .subpage-header__kicker::before, [data-preset='studio-modern'] .photo-grid__item-exif::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--sm-accent); margin-right: 10px; vertical-align: middle; flex: 0 0 auto; } /* ── Header ─────────────────────────────────────────────────── */ [data-preset='studio-modern'] .header { padding: 0 var(--sm-gutter); background: color-mix(in srgb, var(--bg-primary) 92%, transparent); } [data-preset='studio-modern'] .header__nav { height: var(--header-height); gap: 28px; align-items: stretch; } [data-preset='studio-modern'][data-header-dot='true'] .header__nav::before { width: 9px; height: 9px; align-self: center; margin-right: 10px; } [data-preset='studio-modern'] .header__wordmark { display: flex; align-items: center; margin-right: 24px; font-family: var(--font-sans); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--text-primary); white-space: nowrap; } [data-preset='studio-modern'] .header__nav-link { display: flex; align-items: center; padding: 0; margin-bottom: 0; font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.18em; border-bottom: 2px solid transparent; } [data-preset='studio-modern'] .header__nav-link:hover { color: var(--text-primary); border-bottom-color: transparent; } [data-preset='studio-modern'] .header__nav-link.active { color: var(--text-primary); border-bottom-color: var(--sm-accent); } [data-preset='studio-modern'] .theme-toggle { align-self: center; } /* ── Seitenrhythmus ─────────────────────────────────────────── */ [data-preset='studio-modern'] .main { padding: 88px var(--sm-gutter) 120px; } [data-preset='studio-modern'] .main:has(.hero), [data-preset='studio-modern'] .main:has(.about) { padding-top: var(--header-height); } /* ── Typografie ─────────────────────────────────────────────── */ [data-preset='studio-modern'] .hero__title { font-family: var(--font-sans); font-size: clamp(2.75rem, 6.4vw, 5.75rem); font-weight: 600; letter-spacing: -0.02em; line-height: 0.95; text-transform: uppercase; margin-bottom: 48px; } [data-preset='studio-modern'] .hero__subtitle, [data-preset='studio-modern'] .subpage-subtitle, [data-preset='studio-modern'] .subpage-header__kicker, [data-preset='studio-modern'] .about__kicker { display: flex; align-items: center; font-family: var(--font-caption); font-size: 0.6875rem; font-weight: 400; letter-spacing: 0.2em; line-height: 1.4; text-transform: uppercase; font-style: normal; color: var(--text-secondary); margin-bottom: 24px; } [data-preset='studio-modern'] .album-header__title, [data-preset='studio-modern'] .subpage-title { font-family: var(--font-sans); font-size: clamp(2.25rem, 4.6vw, 4rem); font-weight: 500; letter-spacing: -0.01em; line-height: 1; text-transform: uppercase; } [data-preset='studio-modern'] .subpage-section__title { font-family: var(--font-sans); font-size: 1.5rem; font-weight: 500; letter-spacing: 0.02em; text-transform: uppercase; } [data-preset='studio-modern'] .section-label { font-family: var(--font-caption); font-size: 0.6875rem; font-weight: 400; letter-spacing: 0.2em; color: var(--text-muted); } /* ── Hero: Split ────────────────────────────────────────────── */ [data-preset='studio-modern'] .hero { grid-template-columns: 5fr 6fr; min-height: calc(100vh - var(--header-height)); } [data-preset='studio-modern'] .hero__left { align-items: center; justify-content: flex-start; padding: 64px 72px; } [data-preset='studio-modern'] .hero__content { display: flex; flex-direction: column; text-align: left; max-width: none; width: 100%; } /* The kicker sits above the title in every hero variant. Markup order is title → subtitle → nav and each child is wrapped in a FadeIn, so make the text containers flex columns and pull the subtitle's wrapper to the front. */ [data-preset='studio-modern'] .hero__fullbleed-overlay, [data-preset='studio-modern'] .hero__mosaic-overlay, [data-preset='studio-modern'] .hero__stacked-overlay { display: flex; flex-direction: column; } [data-preset='studio-modern'] .hero__mosaic-overlay { align-items: center; } [data-preset='studio-modern'] .hero__stacked-overlay { align-items: flex-start; } [data-preset='studio-modern'] .hero .hero__subtitle, [data-preset='studio-modern'] .hero *:has(> .hero__subtitle) { order: -1; } /* ── Hero: indizierte Navigationsliste ──────────────────────── */ [data-preset='studio-modern'] .hero .hero__nav { display: flex; flex-direction: column; gap: 0; align-items: stretch; border-top: var(--sm-hairline); text-align: left; } [data-preset='studio-modern'] .hero .hero__nav-link { display: flex; align-items: baseline; gap: 20px; padding: 16px 0; border-bottom: var(--sm-hairline); font-family: var(--font-sans); font-size: 1rem; font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-secondary); text-decoration: none; transition: color var(--transition-fast); } [data-preset='studio-modern'] .hero .hero__nav-link:hover { color: var(--sm-accent); border-bottom-color: var(--border-subtle); } [data-preset='studio-modern'] .hero .hero__nav-link:first-child { color: var(--text-primary); } [data-preset='studio-modern'] .hero .hero__nav-index { display: inline-block; min-width: 20px; font-family: var(--font-caption); font-size: 0.6875rem; font-weight: 400; letter-spacing: 0.06em; color: var(--text-muted); } [data-preset='studio-modern'] .hero .hero__nav-link:first-child .hero__nav-index { color: var(--sm-accent); } [data-preset='studio-modern'] .hero .hero__nav-count { display: inline-block; margin-left: auto; padding-left: 20px; font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; } /* ── Hero: EXIF-Chip auf dem Bild ───────────────────────────── */ [data-preset='studio-modern'] .hero--split .hero__exif-chip { position: absolute; left: 0; bottom: 0; z-index: 3; display: inline-flex; align-items: center; padding: 8px 12px; background: var(--sm-chip-bg); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.04em; text-transform: uppercase; color: rgba(255, 255, 255, 0.9); pointer-events: none; } [data-preset='studio-modern'] .hero--split .hero__exif-chip::before { content: ''; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--sm-accent); margin-right: 8px; flex: 0 0 auto; } /* ── Hero: Fullbleed ────────────────────────────────────────── */ [data-preset='studio-modern'] .hero--fullbleed, [data-preset='studio-modern'] .hero--minimal, [data-preset='studio-modern'] .hero--stacked, [data-preset='studio-modern'] .hero--typographic, [data-preset='studio-modern'] .hero--mosaic, [data-preset='studio-modern'] .hero__mosaic-grid { min-height: calc(100vh - var(--header-height)); } [data-preset='studio-modern'] .hero__fullbleed-overlay { background: linear-gradient( to bottom, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0.55) 100% ); } [data-preset='studio-modern'] .hero--fullbleed .hero__title { color: #fff; font-size: clamp(2.75rem, 7.2vw, 6.5rem); text-shadow: 0 2px 24px rgba(0, 0, 0, 0.5); margin-bottom: 40px; } [data-preset='studio-modern'] .hero--fullbleed .hero__subtitle { justify-content: center; color: rgba(255, 255, 255, 0.75); text-shadow: none; } [data-preset='studio-modern'] .hero--fullbleed .hero__nav { flex-direction: row; align-items: stretch; border-top: none; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 0; padding: 0; background: rgba(0, 0, 0, 0.45); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); flex-wrap: wrap; } [data-preset='studio-modern'] .hero--fullbleed .hero__nav-link { gap: 10px; padding: 16px 24px; border-bottom: none; border-right: 1px solid rgba(255, 255, 255, 0.12); font-size: 0.75rem; font-weight: 500; letter-spacing: 0.15em; color: rgba(255, 255, 255, 0.85); } [data-preset='studio-modern'] .hero--fullbleed .hero__nav-link:last-child { border-right: none; } [data-preset='studio-modern'] .hero--fullbleed .hero__nav-link:hover { color: var(--sm-accent); } [data-preset='studio-modern'] .hero--fullbleed .hero__nav-index { font-size: 0.625rem; color: rgba(255, 255, 255, 0.4); } [data-preset='studio-modern'] .hero--fullbleed .hero__nav-link:first-child .hero__nav-index { color: var(--sm-accent); } [data-preset='studio-modern'] .hero--fullbleed .hero__nav-count { display: none; } /* ── Hero: Minimal ──────────────────────────────────────────── */ [data-preset='studio-modern'] .hero--minimal .hero__content { text-align: center; max-width: 720px; } [data-preset='studio-modern'] .hero--minimal .hero__title { font-size: clamp(2.75rem, 6.8vw, 6rem); font-weight: 600; letter-spacing: -0.02em; margin-bottom: 40px; } [data-preset='studio-modern'] .hero--minimal .hero__subtitle { justify-content: center; margin-bottom: 28px; } [data-preset='studio-modern'] .hero--minimal .hero__nav { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 32px; border-top: none; } [data-preset='studio-modern'] .hero--minimal .hero__nav-link { padding: 0 0 6px; border-bottom: 1px solid transparent; font-size: 0.75rem; font-weight: 500; letter-spacing: 0.18em; } [data-preset='studio-modern'] .hero--minimal .hero__nav-link:hover { color: var(--sm-accent); border-bottom-color: var(--sm-accent); } [data-preset='studio-modern'] .hero--minimal .hero__nav-link:first-child { border-bottom-color: var(--sm-accent); } [data-preset='studio-modern'] .hero--minimal .hero__nav-index, [data-preset='studio-modern'] .hero--minimal .hero__nav-count { display: none; } /* ── Hero: Stacked ──────────────────────────────────────────── */ [data-preset='studio-modern'] .hero__stacked-overlay { padding: 56px var(--sm-gutter); } [data-preset='studio-modern'] .hero--stacked .hero__title { font-family: var(--font-sans); font-size: clamp(2.5rem, 5.6vw, 5rem); font-weight: 600; letter-spacing: -0.02em; line-height: 0.95; color: #fff; margin-bottom: 0; } [data-preset='studio-modern'] .hero--stacked .hero__subtitle { color: rgba(255, 255, 255, 0.7); margin-bottom: 16px; } [data-preset='studio-modern'] .hero__thumbnail-strip { gap: 0; border-top: var(--sm-hairline); background: var(--bg-secondary); } [data-preset='studio-modern'] .hero__thumbnail-item { flex: 1; gap: 10px; align-items: baseline; justify-content: center; padding: 20px 28px; border-right: var(--sm-hairline); background: var(--bg-primary); } [data-preset='studio-modern'] .hero__thumbnail-item:last-child { border-right: none; } [data-preset='studio-modern'] .hero__thumbnail-item:hover { background: var(--bg-card); } [data-preset='studio-modern'] .hero__thumbnail-item:hover .hero__thumbnail-label { color: var(--sm-accent); } [data-preset='studio-modern'] .hero__thumbnail-index { display: inline-block; font-family: var(--font-caption); font-size: 0.625rem; color: var(--text-muted); } [data-preset='studio-modern'] .hero__thumbnail-item:first-child .hero__thumbnail-index { color: var(--sm-accent); } [data-preset='studio-modern'] .hero__thumbnail-label { font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.15em; } /* ── Hero: Typographic ──────────────────────────────────────── */ [data-preset='studio-modern'] .hero--typographic .hero__content { width: 760px; max-width: 100%; text-align: center; } [data-preset='studio-modern'] .hero--typographic .hero__title { font-size: clamp(3.5rem, 10.4vw, 9.375rem); font-weight: 600; letter-spacing: -0.03em; line-height: 0.9; margin-bottom: 20px; } [data-preset='studio-modern'] .hero--typographic .hero__subtitle { justify-content: center; letter-spacing: 0.25em; color: var(--text-muted); margin-bottom: 40px; } [data-preset='studio-modern'] .hero--typographic .hero__subtitle::before { display: none; } /* Typographic is the one variant where the strapline reads under the title. */ [data-preset='studio-modern'] .hero--typographic .hero__subtitle, [data-preset='studio-modern'] .hero--typographic *:has(> .hero__subtitle) { order: 0; } [data-preset='studio-modern'] .hero__divider { width: 56px; background: var(--border-hover); margin: 0 auto 40px; } [data-preset='studio-modern'] .hero--typographic .hero__nav-link { font-size: 0.9375rem; } /* ── Hero: Mosaic ───────────────────────────────────────────── */ [data-preset='studio-modern'] .hero__mosaic-overlay { padding: 48px 64px; background: rgba(10, 10, 10, 0.7); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 0; } [data-preset='studio-modern'] .hero--mosaic .hero__title { font-family: var(--font-sans); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 600; letter-spacing: -0.01em; line-height: 1; color: #fff; margin-bottom: 28px; } [data-preset='studio-modern'] .hero--mosaic .hero__subtitle { justify-content: center; color: rgba(255, 255, 255, 0.7); margin-bottom: 16px; } [data-preset='studio-modern'] .hero--mosaic .hero__nav { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 24px; border-top: none; } [data-preset='studio-modern'] .hero--mosaic .hero__nav-link { padding: 0 0 4px; border-bottom: 1px solid transparent; font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.15em; color: rgba(255, 255, 255, 0.75); } [data-preset='studio-modern'] .hero--mosaic .hero__nav-link:hover { color: #fff; border-bottom-color: var(--sm-accent); } [data-preset='studio-modern'] .hero--mosaic .hero__nav-index, [data-preset='studio-modern'] .hero--mosaic .hero__nav-count { display: none; } /* ── Subpage: Kopfbereich ───────────────────────────────────── */ [data-preset='studio-modern'] .subpage-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; padding-bottom: 32px; margin-bottom: 56px; border-bottom: var(--sm-hairline); } [data-preset='studio-modern'] .subpage-header__kicker { display: flex; color: var(--sm-accent); margin-bottom: 16px; } [data-preset='studio-modern'] .subpage-header__kicker::before { display: none; } [data-preset='studio-modern'] .subpage-header__meta { display: block; flex: 0 0 auto; text-align: right; font-family: var(--font-caption); font-size: 0.6875rem; line-height: 1.8; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); } [data-preset='studio-modern'] .subpage-header .subpage-subtitle { margin-top: 12px; margin-bottom: 0; } /* ── Subpage: Album-Cover mit Caption-Bar ───────────────────── */ [data-preset='studio-modern'] .subpage-grid { --subpage-gap: 20px; } [data-preset='studio-modern'] .subpage-grid__item { aspect-ratio: auto; border: var(--sm-hairline); background: var(--bg-card); transition: border-color var(--transition-fast); } [data-preset='studio-modern'] .subpage-grid__item:hover { border-color: var(--sm-accent); } [data-preset='studio-modern'] .subpage-grid__item-media { aspect-ratio: 3 / 2; height: auto; } /* Cover-Bilder bleiben ruhig — die Bar trägt die Information */ [data-preset='studio-modern'] .subpage-grid__item:hover img { transform: none; filter: none; } [data-preset='studio-modern'] .subpage-grid__item-overlay, [data-preset='studio-modern'] .subpage-grid__item-badge { display: none; } [data-preset='studio-modern'] .subpage-grid__item-caption { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 16px 20px; } [data-preset='studio-modern'] .subpage-grid__item-index { font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.06em; color: var(--sm-accent); } [data-preset='studio-modern'] .subpage-grid__item-caption-title { font-family: var(--font-sans); font-size: 1rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-primary); } [data-preset='studio-modern'] .subpage-grid__item-caption-count { margin-left: auto; font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; } [data-preset='studio-modern'] .subpage-section { margin-bottom: 96px; } [data-preset='studio-modern'] .subpage-toc__num { font-family: var(--font-caption); color: var(--sm-accent); } [data-preset='studio-modern'] .subpage-toc__label { text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.75rem; font-weight: 500; } /* ── Standalone-Albumkarten (Homepage-Grid) ─────────────────── */ [data-preset='studio-modern'] .album-card { border-radius: 0; border-color: var(--border-subtle); } [data-preset='studio-modern'] .album-card:hover { border-color: var(--sm-accent); } [data-preset='studio-modern'] .album-card__title { font-family: var(--font-sans); font-weight: 500; font-size: 1rem; letter-spacing: 0.06em; text-transform: uppercase; } [data-preset='studio-modern'] .album-card__count { font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.06em; text-transform: uppercase; } /* ── Album-Detail: Kopf ─────────────────────────────────────── */ [data-preset='studio-modern'] .album-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; padding-bottom: 32px; margin-bottom: 56px; border-bottom: var(--sm-hairline); } [data-preset='studio-modern'] .album-header--has-hero { margin-top: -60px; } [data-preset='studio-modern'] .album-header__back { font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--text-secondary); margin-bottom: 20px; } [data-preset='studio-modern'] .album-header__back:hover { color: var(--sm-accent); } [data-preset='studio-modern'] .album-header__back svg { width: 14px; height: 14px; } [data-preset='studio-modern'] .album-header__description { margin-top: 16px; font-size: 1rem; font-weight: 300; line-height: 1.7; color: var(--text-secondary); } [data-preset='studio-modern'] .album-header__meta-date { display: inline; } [data-preset='studio-modern'] .album-header__meta-gear { display: block; } [data-preset='studio-modern'] .album-header__meta { flex: 0 0 auto; margin-top: 0; text-align: right; font-family: var(--font-caption); font-size: 0.6875rem; line-height: 1.8; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); } /* ── Fotoraster ─────────────────────────────────────────────── */ [data-preset='studio-modern'] .photo-grid { /* Declared, not a var() fallback. The base .photo-grid sets --grid-gap: 12px, so `var(--grid-gap, 20px)` never reached its fallback and this preset silently rendered at 12px from v0.12.0 on (#513). The base rules read --grid-gap for both axes, so declaring it here is all this needs. */ --grid-gap: 20px; } [data-preset='studio-modern'] .photo-grid__item { border-radius: 0; } [data-preset='studio-modern'] .photo-grid--uniform .photo-grid__item, [data-preset='studio-modern'] .photo-grid--showcase .photo-grid__item, [data-preset='studio-modern'] .photo-grid--filmstrip .photo-grid__item, [data-preset='studio-modern'] .photo-grid--editorial-flow .photo-grid__item { margin-bottom: 0; } [data-preset='studio-modern'] .photo-grid__item::before { content: ''; position: absolute; inset: 0; z-index: 3; border: 1px solid transparent; pointer-events: none; transition: border-color var(--transition-fast); } [data-preset='studio-modern'] .photo-grid__item:hover::before { border-color: var(--sm-accent); } [data-preset='studio-modern'] .photo-grid__item:hover img { filter: none; transform: none; } /* EXIF-Chip statt Verlaufsband */ [data-preset='studio-modern'] .photo-grid__item-exif { display: flex; align-items: center; padding: 8px 12px; background: var(--sm-chip-bg); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.04em; text-transform: uppercase; color: rgba(255, 255, 255, 0.9); } [data-preset='studio-modern'] .photo-grid__item-exif::before { width: 5px; height: 5px; margin-right: 8px; } /* ── Footer ─────────────────────────────────────────────────── */ [data-preset='studio-modern'] .footer { padding: 24px var(--sm-gutter); max-width: none; } [data-preset='studio-modern'] .footer__name { font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.1em; color: var(--text-muted); } [data-preset='studio-modern'] .footer__legal-link { font-size: 0.6875rem; letter-spacing: 0.15em; opacity: 1; color: var(--text-muted); } [data-preset='studio-modern'] .footer__legal-link:hover { color: var(--sm-accent); } [data-preset='studio-modern'] .footer__link { color: var(--text-muted); } /* ── Buttons / Zustände ─────────────────────────────────────── */ [data-preset='studio-modern'] .empty-state__button { border-radius: 0; font-family: var(--font-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: #fff; } [data-preset='studio-modern'] .scroll-to-top { border-radius: 0; } /* ── About ──────────────────────────────────────────────────── */ [data-preset='studio-modern'] .about__text-col { padding: 96px 80px; max-width: 640px; } [data-preset='studio-modern'] .about__kicker { display: flex; margin-bottom: 20px; } [data-preset='studio-modern'] .about__name { font-family: var(--font-sans); font-size: clamp(2.25rem, 4vw, 3.5rem); font-weight: 600; letter-spacing: -0.01em; line-height: 1; text-transform: uppercase; margin-bottom: 0; } [data-preset='studio-modern'] .about__location { font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.2em; color: var(--text-muted); margin-top: 16px; } [data-preset='studio-modern'] .about__rule { width: 56px; border-top-color: var(--border-hover); margin: 40px 0; } [data-preset='studio-modern'] .about__bio p { font-size: 1rem; font-weight: 300; line-height: 1.7; margin-bottom: 12px; } [data-preset='studio-modern'] .about__section-label { font-family: var(--font-caption); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.25em; color: var(--text-muted); } [data-preset='studio-modern'] .about__gear { counter-reset: sm-gear; gap: 0; max-width: 400px; border-top: var(--sm-hairline); } [data-preset='studio-modern'] .about__gear li { counter-increment: sm-gear; display: flex; align-items: baseline; gap: 16px; padding: 12px 0; border-bottom: var(--sm-hairline); font-size: 0.875rem; font-weight: 300; } [data-preset='studio-modern'] .about__gear li::before { content: counter(sm-gear, decimal-leading-zero); font-family: var(--font-caption); font-size: 0.625rem; color: var(--sm-accent); } /* ── Map ────────────────────────────────────────────────────── */ [data-preset='studio-modern'] .map-page__header { padding: 64px var(--sm-gutter) 32px; display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; flex-wrap: wrap; } [data-preset='studio-modern'] .map-page__title { font-family: var(--font-sans); font-size: clamp(2.25rem, 4.6vw, 3.5rem); font-weight: 500; letter-spacing: -0.01em; line-height: 1; text-transform: uppercase; } [data-preset='studio-modern'] .map-page__kicker { display: flex; align-items: center; font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--text-secondary); margin: 16px 0; } [data-preset='studio-modern'] .map-page__kicker::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--sm-accent); margin-right: 10px; flex: 0 0 auto; } [data-preset='studio-modern'] .map-page__meta { display: block; flex: 0 0 auto; text-align: right; font-family: var(--font-caption); font-size: 0.6875rem; line-height: 1.8; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); } [data-preset='studio-modern'] .map-page__subtitle { font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--text-muted); } [data-preset='studio-modern'] .map-container { margin: 0 var(--sm-gutter) var(--sm-gutter); border: var(--sm-hairline); border-radius: 0; } [data-preset='studio-modern'] .map-marker { width: 34px; height: 34px; border: none; border-radius: 0; font-family: var(--font-caption); font-size: 0.6875rem; font-weight: 500; box-shadow: 0 2px 12px rgba(230, 0, 18, 0.4); } [data-preset='studio-modern'] .map-marker:hover { transform: scale(1.08); } [data-preset='studio-modern'] .leaflet-popup-content-wrapper, [data-preset='studio-modern'] .leaflet-popup-tip { border-radius: 0 !important; border-color: rgba(255, 255, 255, 0.12) !important; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5) !important; } [data-preset='studio-modern'][data-theme='light'] .leaflet-popup-content-wrapper, [data-preset='studio-modern'][data-theme='light'] .leaflet-popup-tip { border-color: rgba(0, 0, 0, 0.12) !important; } [data-preset='studio-modern'] .map-popup__cover { height: 130px; } [data-preset='studio-modern'] .map-popup__city { font-family: var(--font-sans); font-size: 1rem; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; } [data-preset='studio-modern'] .map-popup__country, [data-preset='studio-modern'] .map-popup__count { font-family: var(--font-caption); font-size: 0.625rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--text-muted); } [data-preset='studio-modern'] .map-popup__album-link { font-family: var(--font-caption); font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sm-accent); } /* ── Admin ──────────────────────────────────────────────────── */ [data-preset='studio-modern'] .admin-layout { --admin-bg: #0d0d0d; --admin-bg-raised: #161616; --admin-bg-elevated: #1c1c1c; --admin-bg-input: #101010; --admin-border: rgba(255, 255, 255, 0.12); --admin-border-hover: rgba(255, 255, 255, 0.24); --admin-border-focus: #e60012; --admin-text: #f4f4f2; --admin-text-secondary: #9c9c96; --admin-text-muted: #6b6b66; --admin-accent: #e60012; --admin-btn-primary-bg: #e60012; --admin-btn-primary-text: #ffffff; --admin-btn-primary-hover: #c8000f; font-family: var(--font-sans); } [data-preset='studio-modern'][data-theme='light'] .admin-layout { --admin-bg: #f4f4f1; --admin-bg-raised: #ffffff; --admin-bg-elevated: #f0f0ec; --admin-bg-input: #ffffff; --admin-border: rgba(0, 0, 0, 0.12); --admin-border-hover: rgba(0, 0, 0, 0.24); --admin-border-focus: #c8000f; --admin-text: #161614; --admin-text-secondary: #5a5a55; --admin-text-muted: #8a8a84; --admin-accent: #c8000f; --admin-btn-primary-bg: #c8000f; --admin-btn-primary-text: #ffffff; --admin-btn-primary-hover: #a5000c; } /* ── Responsive ─────────────────────────────────────────────── */ @media (max-width: 1024px) { [data-preset='studio-modern'] { --sm-gutter: 32px; } [data-preset='studio-modern'] .hero__left { padding: 56px 40px; } [data-preset='studio-modern'] .about__text-col { padding: 64px 48px; } } @media (max-width: 640px) { [data-preset='studio-modern'] { --sm-gutter: 20px; } [data-preset='studio-modern'] .main { padding: 56px var(--sm-gutter) 80px; } [data-preset='studio-modern'] .header { padding: 0 var(--sm-gutter); } [data-preset='studio-modern'] .header__wordmark { display: none; } [data-preset='studio-modern'] .hero { grid-template-columns: 1fr; } [data-preset='studio-modern'] .hero__left { padding: 40px 24px; } [data-preset='studio-modern'] .hero__title { font-size: 2.5rem; } [data-preset='studio-modern'] .subpage-header, [data-preset='studio-modern'] .album-header { flex-direction: column; align-items: flex-start; gap: 16px; } [data-preset='studio-modern'] .subpage-header__meta, [data-preset='studio-modern'] .album-header__meta { text-align: left; } [data-preset='studio-modern'] .subpage-grid { grid-template-columns: 1fr; } [data-preset='studio-modern'] .about__text-col { padding: 48px 24px 64px; } [data-preset='studio-modern'] .hero__thumbnail-item { flex: 0 0 auto; } }