Files
hallmark/site/_tests/verbs/study/output.css
Youssef 78167667a2 v0.9.0 polish — drop image gen + sprinkle, normalize section spacing across themes
REMOVED (per user direction — imagery is on hold for now):
- site/img/generated/ (18 watercolor PNGs + contact sheet + URL cache)
- scripts/generate-marketing.mjs
- skill/_assets/scripts/generate.mjs (user-recipe drop-in)
- skill/references/generated-imagery.md
- All imagery markup in site/index.html (transitions, foundation panel plates, harness plates, footer mark)
- The .wc / .transition / .slot--hero::before / #study::before / .found-panel__plate / .harness__plate / .foot-mark CSS block from sections.css
- Tier C "peer of Tier B" rewrite reverted — back to "last resort, only when characters demand it"
- Anti-pattern "Raw generated stills" entry reverted
- assets.md Tier C catalog reverted to Nanobanana 2 / Gemini 2.5 Flash baseline
- README v0.9.0 release note rewritten without imagery mentions

KEPT:
- Editorial theme (#23) — open-design-inspired premium · warm cream + coral + Inter Tight × Playfair italic
- Open-design steal utilities — Roman-numeral section heads (.num--roman), corner-bracket image annotation (.fig-corners), dark-slab section reversal (.section--invert), pulse animation (.pulse), .tnum tabular-numerals utility, smart-hide banner stub (.banner--smart)
- 22 → 23 theme catalog refresh across SKILL.md, custom-theme.md, structure.md, README, site
- Version 0.8.0 → 0.9.0

NEW: Spacing pass — normalized internal rhythm across all 23 themes
- --section-gap normalized: was 4.5–12rem (huge variance), now 5.5–6.5rem (uniform feel)
  · Atelier 12 → 6.5 (biggest cut)
  · Quiet 10 → 6.5 · Linen 10 → 6.5 · Aurora 10 → 6.5
  · Garden 9 → 6.5 · Salon 9 → 6.5 · Bloom 9 → 6.5
  · Specimen 8 → 6.5 · Almanac 4.5 → 5.5 (slight bump)
- --section-head-gap normalized: was 1–3.5rem, now 1.25–1.75rem (smaller spread)
- .section { gap: var(--space-2xl) } → var(--space-xl) — content sits closer to its head; less air inside each section
- Editorial theme block gains explicit --section-gap + --section-head-gap (was inheriting from :root)

Visual: every theme now has the same vertical rhythm (~6rem between sections, ~1.5rem under heads). The page reads as one document instead of 23 different ones.
2026-05-05 11:59:22 +01:00

194 lines
4.9 KiB
CSS

/* Hallmark · macrostructure: Specimen · H4 hero knobs: number-column=margin, alignment=left-bias
* theme: Specimen · accent: warm-orange ~3% · enrichment: none (typography only)
* studied: yes · DNA-source: user reference (Aperture-style portfolio) · paid-fonts: not confirmed (free pairing applied)
*/
:root {
--color-paper: oklch(96% 0.018 80);
--color-paper-2: oklch(93% 0.020 80);
--color-rule: oklch(82% 0.020 75);
--color-ink: oklch(20% 0.014 60);
--color-ink-soft: oklch(45% 0.016 60);
--color-ink-muted: oklch(64% 0.016 60);
--color-accent: oklch(64% 0.13 45);
--font-display: "Fraunces", "EB Garamond", "Cormorant Garamond", Georgia, serif;
--font-body: "Geist", "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
--space-2xs: 0.5rem;
--space-xs: 0.75rem;
--space-sm: 1rem;
--space-md: 1.5rem;
--space-lg: 2rem;
--space-xl: 3rem;
--space-2xl: 4.5rem;
--space-3xl: 6.5rem;
--space-4xl: 9rem;
--measure-prose: 60ch;
--ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
--dur-micro: 180ms;
}
* { box-sizing: border-box; }
html, body { overflow-x: clip; }
body {
margin: 0;
background: var(--color-paper);
color: var(--color-ink);
font-family: var(--font-body);
font-size: 1rem;
line-height: 1.55;
-webkit-font-smoothing: antialiased;
}
.page {
max-width: 64rem;
margin: 0 auto;
padding: var(--space-4xl) var(--space-lg) var(--space-2xl);
}
/* Masthead — italic-serif name in the top-left margin */
.masthead {
margin-block-end: var(--space-4xl);
}
.masthead__brand {
font-family: var(--font-display);
font-style: italic;
font-weight: 400;
font-variation-settings: "opsz" 144;
font-size: clamp(4rem, 9vw, 7.5rem);
line-height: 0.92;
letter-spacing: -0.04em;
margin: 0 0 var(--space-md);
color: var(--color-ink);
}
.masthead__brand-em { color: var(--color-accent); font-style: italic; }
.masthead__sub {
font-family: var(--font-body);
font-size: 0.875rem;
font-weight: 400;
letter-spacing: 0.04em;
color: var(--color-ink-soft);
text-transform: uppercase;
margin: 0;
max-width: 60ch;
}
/* Works — numbered project list */
.works {
list-style: none;
padding: 0;
margin: 0;
border-block-start: 1px solid var(--color-rule);
}
.work {
display: grid;
grid-template-columns: 6rem 1fr;
gap: var(--space-lg);
align-items: baseline;
padding: var(--space-2xl) 0;
border-block-end: 1px solid var(--color-rule);
position: relative;
transition: background var(--dur-micro) var(--ease-out);
}
.work:hover { background: var(--color-paper-2); }
.work__num {
font-family: var(--font-body);
font-size: 0.75rem;
font-weight: 500;
letter-spacing: 0.16em;
color: var(--color-ink-muted);
text-transform: uppercase;
font-variant-numeric: tabular-nums;
align-self: start;
padding-block-start: 0.6em;
transition: color var(--dur-micro) var(--ease-out);
}
.work:hover .work__num { color: var(--color-ink); }
/* Active state — the warm-orange accent on one row only */
.work--active .work__num { color: var(--color-accent); }
.work__name {
font-family: var(--font-display);
font-style: italic;
font-weight: 400;
font-variation-settings: "opsz" 72;
font-size: clamp(1.75rem, 3vw, 2.5rem);
line-height: 1.1;
letter-spacing: -0.015em;
margin: 0 0 var(--space-2xs);
color: var(--color-ink);
}
.work__desc {
font-family: var(--font-body);
font-size: 0.9375rem;
line-height: 1.5;
color: var(--color-ink-soft);
margin: 0;
max-width: var(--measure-prose);
}
/* Colophon — single line, small caps */
.colophon {
margin-block-start: var(--space-3xl);
padding-block-start: var(--space-md);
border-block-start: 1px solid var(--color-rule);
display: flex;
flex-wrap: wrap;
gap: var(--space-sm) var(--space-xl);
font-family: var(--font-body);
font-size: 0.8125rem; /* bumped from screenshot's 11px to comfortable 13px */
font-weight: 400;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--color-ink-soft);
}
.colophon__brand {
font-family: var(--font-display);
font-style: italic;
font-size: 1rem;
letter-spacing: 0;
text-transform: none;
color: var(--color-ink);
}
.colophon a {
color: var(--color-ink-soft);
text-decoration: none;
border-block-end: 1px solid transparent;
padding-block-end: 1px;
transition: color var(--dur-micro) var(--ease-out),
border-color var(--dur-micro) var(--ease-out);
}
.colophon a:hover, .colophon a:focus-visible {
color: var(--color-accent);
border-block-end-color: var(--color-accent);
}
.colophon a:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 4px;
}
@media (max-width: 48rem) {
.page { padding: var(--space-2xl) var(--space-md) var(--space-xl); }
.work { grid-template-columns: 4rem 1fr; gap: var(--space-md); padding: var(--space-xl) 0; }
}
@media (prefers-reduced-motion: reduce) {
.work, .work__num, .colophon a { transition: none; }
}