:root { color-scheme: light; --bg: #f2ebda; --surface: #f9f4e6; --ink: #262016; --ink-soft: #6b5d49; --line: #d9caa9; --rubric: #96302c; --lapis: #2c4a9e; --lapis-field: #22357a; --stars: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cg fill='%23d3ac52' opacity='.35'%3E%3Cpath d='M30 31l1.4 3.6 3.6 1.4-3.6 1.4-1.4 3.6-1.4-3.6-3.6-1.4 3.6-1.4z'/%3E%3Cpath d='M128 18.5l1 2.5 2.5 1-2.5 1-1 2.5-1-2.5-2.5-1 2.5-1z'/%3E%3Cpath d='M76 116l1.1 2.9 2.9 1.1-2.9 1.1-1.1 2.9-1.1-2.9-2.9-1.1 2.9-1.1z'/%3E%3Cpath d='M170 83.2l.8 2.2 2.2.8-2.2.8-.8 2.2-.8-2.2-2.2-.8 2.2-.8z'/%3E%3Cpath d='M44 165.3l.7 1.8 1.8.7-1.8.7-.7 1.8-.7-1.8-1.8-.7 1.8-.7z'/%3E%3Cpath d='M150 154l1.1 2.9 2.9 1.1-2.9 1.1-1.1 2.9-1.1-2.9-2.9-1.1 2.9-1.1z'/%3E%3Ccircle cx='100' cy='70' r='1.2'/%3E%3Ccircle cx='182' cy='142' r='1'/%3E%3Ccircle cx='14' cy='104' r='1'/%3E%3C/g%3E%3C/svg%3E"); --gold: #a8801f; --gold-ink: #7c5f13; --gold-soft: #cdb377; --btn-bg: #24377a; --btn-fg: #f6efdd; --shadow: 0 30px 60px -35px rgb(38 28 12 / 0.45); --glow: radial-gradient(90rem 40rem at 50% -12rem, rgb(255 250 235 / 0.55), transparent 70%); --vignette: radial-gradient(140% 120% at 50% 50%, transparent 62%, rgb(87 66 27 / 0.08)); --noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E"); --divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='16' viewBox='0 0 240 16'%3E%3Cg fill='none' stroke='%23a8801f' stroke-width='1'%3E%3Cpath d='M0 8h92'/%3E%3Cpath d='M148 8h92'/%3E%3C/g%3E%3Cg fill='%23a8801f'%3E%3Cpath d='M120 1l7 7-7 7-7-7z'/%3E%3Ccircle cx='103' cy='8' r='1.8'/%3E%3Ccircle cx='96' cy='8' r='1.8'/%3E%3Ccircle cx='137' cy='8' r='1.8'/%3E%3Ccircle cx='144' cy='8' r='1.8'/%3E%3C/g%3E%3C/svg%3E"); } @media (prefers-color-scheme: dark) { :root { color-scheme: dark; --bg: #111426; --surface: #1a2038; --ink: #ece0c6; --ink-soft: #a9b1cd; --line: #343c60; --rubric: #d47f74; --lapis: #9fb5ec; --lapis-field: #1c2a58; --gold: #d3ac52; --gold-ink: #d3ac52; --gold-soft: #8a7440; --btn-bg: #d3ac52; --btn-fg: #221a10; --shadow: 0 30px 60px -35px rgb(0 0 0 / 0.7); --glow: radial-gradient(90rem 40rem at 50% -12rem, rgb(110 140 235 / 0.08), transparent 70%); --vignette: radial-gradient(140% 120% at 50% 50%, transparent 58%, rgb(4 8 22 / 0.5)); } } *, *::before, *::after { box-sizing: border-box; } * { margin: 0; } html { scroll-behavior: smooth; scroll-padding-top: 5.5rem; } body { font-family: "EB Garamond", Georgia, "Times New Roman", serif; font-size: 1.125rem; line-height: 1.65; color: var(--ink); background-color: var(--bg); background-image: var(--noise); border-top: 3px solid var(--gold); -webkit-font-smoothing: antialiased; } body::after { content: ""; position: fixed; inset: 0; pointer-events: none; background-image: var(--glow), var(--vignette); } img { display: block; max-width: 100%; height: auto; } h1, h2, h3 { font-family: "Cinzel", Georgia, serif; font-weight: 600; line-height: 1.15; text-wrap: balance; } a { color: var(--lapis); text-decoration-thickness: 1px; text-underline-offset: 3px; } a:hover { color: var(--rubric); } :focus-visible { outline: 2px solid var(--rubric); outline-offset: 3px; } ::selection { background: var(--gold); color: #221a10; } .container { width: min(72rem, 100% - 3rem); margin-inline: auto; } .container--prose { width: min(50rem, 100% - 3rem); } .skip-link { position: fixed; top: 0.75rem; left: 0.75rem; z-index: 100; padding: 0.6rem 1rem; font-family: "Cinzel", serif; font-size: 0.8rem; letter-spacing: 0.08em; color: #221a10; background: var(--gold); text-decoration: none; transform: translateY(-300%); } .skip-link:focus { transform: translateY(0); } .masthead { position: sticky; top: 0; z-index: 20; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); } .masthead__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 2rem; padding-block: 0.75rem; } .brand { display: inline-flex; align-items: center; gap: 0.8rem; text-decoration: none; color: inherit; } .sigil__ring { stroke: var(--gold); } .sigil__star { fill: var(--gold); } .sigil__core { fill: var(--lapis); } .brand__text { display: flex; flex-direction: column; line-height: 1.2; } .brand__name { font-family: "Cinzel", serif; font-weight: 700; font-size: 1.3rem; letter-spacing: 0.12em; } .brand__tagline { font-style: italic; font-size: 0.88rem; color: var(--ink-soft); } .site-nav__list { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.6rem; padding: 0; list-style: none; } .site-nav__list a:not(.nav-cta) { font-variant: small-caps; font-size: 1.08rem; letter-spacing: 0.06em; color: var(--ink); text-decoration: none; background-image: linear-gradient(var(--gold), var(--gold)); background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 1px; transition: background-size 0.25s ease, color 0.25s ease; } .site-nav__list a:not(.nav-cta):hover { color: var(--gold-ink); background-size: 100% 1px; } .nav-cta { font-family: "Cinzel", serif; font-size: 0.82rem; letter-spacing: 0.08em; color: var(--btn-fg); background: var(--btn-bg); border: 1px solid var(--gold); padding: 0.45rem 1rem; text-decoration: none; transition: background-color 0.25s ease, color 0.25s ease; } .nav-cta:hover { background: var(--gold); color: #221a10; } .band { padding-block: clamp(3rem, 8vw, 5.5rem); } .band--sky { --ink: #ece0c6; --ink-soft: #b9c2df; --gold: #d3ac52; --gold-ink: #d3ac52; --gold-soft: #c9b06a; --rubric: #e09a90; --surface: var(--lapis-field); color: var(--ink); background-color: var(--lapis-field); background-image: var(--stars), radial-gradient(80rem 34rem at 50% -10rem, rgb(127 160 232 / 0.16), transparent 70%); border-block: 1px solid color-mix(in srgb, var(--gold) 40%, transparent); } .kicker { display: flex; align-items: center; gap: 1.25rem; margin-bottom: 1.1rem; } .kicker::before, .kicker::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--gold-soft)); } .kicker::after { background: linear-gradient(90deg, var(--gold-soft), transparent); } .kicker span { font-family: "Cinzel", serif; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold-ink); white-space: nowrap; } .section-head { max-width: 44rem; margin-inline: auto; margin-bottom: clamp(2rem, 5vw, 3.25rem); text-align: center; } .section-head h2 { font-size: clamp(1.7rem, 1rem + 2.4vw, 2.6rem); } .section-head__intro { margin-top: 1rem; color: var(--ink-soft); text-wrap: pretty; } .hero { padding-block: clamp(3.5rem, 9vw, 6.5rem) clamp(3rem, 8vw, 5.5rem); } .hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.8fr); gap: clamp(2.5rem, 6vw, 5rem); align-items: center; } .hero__title { font-size: clamp(2.3rem, 1.2rem + 4vw, 4rem); margin-bottom: 1.5rem; } .hero__accent { display: block; font-family: "EB Garamond", serif; font-style: italic; font-weight: 500; font-size: 0.72em; color: var(--rubric); } .lede { font-size: 1.22rem; max-width: 56ch; color: var(--ink); text-wrap: pretty; } .dropcap::first-letter { font-family: "UnifrakturMaguntia", "Cinzel", serif; float: left; font-size: 3.1em; line-height: 0.78; padding: 0.08em 0.12em 0 0; color: var(--rubric); } .hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.2rem; } .btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.8rem 1.6rem; font-family: "Cinzel", serif; font-size: 0.92rem; font-weight: 600; letter-spacing: 0.08em; text-decoration: none; border: 1px solid var(--gold); transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease; } .btn--primary { background: var(--btn-bg); color: var(--btn-fg); } .btn--primary:hover { background: var(--gold); color: #221a10; } .btn--ghost { background: transparent; color: var(--ink); border-color: color-mix(in srgb, var(--ink) 45%, transparent); } .btn--ghost:hover { color: var(--gold-ink); border-color: var(--gold); } .hero__note { margin-top: 1.1rem; font-size: 0.92rem; font-style: italic; color: var(--ink-soft); } .folio { position: relative; padding: 0.75rem; background-color: var(--lapis-field); background-image: var(--stars); border: 1px solid var(--gold-soft); box-shadow: var(--shadow); } .folio img { width: 100%; border: 1px solid color-mix(in srgb, var(--gold) 40%, transparent); } .folio figcaption { padding-top: 0.7rem; font-size: 0.85rem; font-style: italic; text-align: center; color: rgb(236 224 198 / 0.75); } .corner { position: absolute; width: 22px; height: 22px; border: 0 solid var(--gold); } .corner--tl { top: -2px; left: -2px; border-top-width: 2px; border-left-width: 2px; } .corner--tr { top: -2px; right: -2px; border-top-width: 2px; border-right-width: 2px; } .corner--bl { bottom: -2px; left: -2px; border-bottom-width: 2px; border-left-width: 2px; } .corner--br { bottom: -2px; right: -2px; border-bottom-width: 2px; border-right-width: 2px; } .divider { width: min(240px, 60vw); height: 16px; margin: 0 auto; border: 0; background: var(--divider) center / contain no-repeat; } .grid-pillars { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1.5rem; } .pillar { padding: 1.7rem 1.5rem 1.9rem; background: var(--surface); border: 1px solid var(--line); box-shadow: inset 0 2px 0 var(--gold-soft); transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease; } .pillar:hover { transform: translateY(-3px); border-color: var(--gold-soft); box-shadow: inset 0 2px 0 var(--gold); } .pillar__num { font-family: "Cinzel", serif; font-weight: 700; font-size: 1rem; letter-spacing: 0.1em; color: var(--gold-ink); } .pillar h3 { margin: 0.5rem 0 0.6rem; font-size: 1.12rem; } .pillar p:last-child { font-size: 1rem; color: var(--ink-soft); text-wrap: pretty; } .labours { display: grid; grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); gap: 2.25rem 1.5rem; padding: 0; list-style: none; counter-reset: month; } .month { text-align: center; } .month img { width: clamp(96px, 60%, 128px); aspect-ratio: 1; margin-inline: auto; margin-bottom: 0.9rem; object-fit: cover; border-radius: 50%; border: 1px solid var(--gold-soft); box-shadow: 0 0 0 5px var(--surface), 0 0 0 6px var(--gold-soft); transition: box-shadow 0.25s ease, transform 0.25s ease; } .month:hover img { transform: translateY(-3px); box-shadow: 0 0 0 5px var(--surface), 0 0 0 6px var(--gold), 0 14px 30px -18px rgb(0 0 0 / 0.5); } .month h3 { font-size: 0.95rem; letter-spacing: 0.08em; } .labour-name { font-style: italic; color: var(--rubric); } .month p:last-child { margin-top: 0.3rem; font-size: 0.92rem; color: var(--ink-soft); } .entry { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: 1.5rem; padding-block: 1.6rem; } .entry + .entry { border-top: 1px solid var(--line); } .entry__time { font-family: "Cinzel", serif; font-size: 0.82rem; letter-spacing: 0.06em; color: var(--rubric); } .entry__body h3 { font-size: 1.25rem; margin-bottom: 0.35rem; } .entry__body p { font-size: 1rem; color: var(--ink-soft); text-wrap: pretty; } .cta-band { position: relative; max-width: 46rem; margin-inline: auto; padding: clamp(2.25rem, 6vw, 3.5rem) clamp(1.5rem, 6vw, 3.5rem); text-align: center; background: var(--surface); border: 1px solid var(--gold-soft); } .cta-band::before, .cta-band::after { content: ""; position: absolute; width: 26px; height: 26px; border: 0 solid var(--gold); } .cta-band::before { top: 8px; left: 8px; border-top-width: 2px; border-left-width: 2px; } .cta-band::after { bottom: 8px; right: 8px; border-bottom-width: 2px; border-right-width: 2px; } .cta-band .kicker { margin-inline: auto; max-width: 30rem; } .cta-band h2 { font-size: clamp(1.6rem, 1rem + 2vw, 2.3rem); } .cta-band__lede { margin-top: 0.8rem; color: var(--ink-soft); } .cta-band .hero__actions { justify-content: center; } .cta-band .hero__note { margin-top: 1.3rem; } #download.band { padding-top: clamp(1.5rem, 5vw, 3rem); } .site-footer { background-color: color-mix(in srgb, var(--lapis-field) 68%, #0a0f24); background-image: var(--stars); color: #ece0c6; padding: clamp(2.75rem, 7vw, 4rem) 0 2.25rem; } .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2rem 1.5rem; } .foot-brand { display: flex; align-items: flex-start; gap: 1rem; max-width: 26rem; } .foot-brand .sigil { flex-shrink: 0; } .foot-brand p { font-size: 0.98rem; font-style: italic; color: rgb(236 224 198 / 0.78); } .foot-title { font-family: "Cinzel", serif; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: #cdb377; margin-bottom: 0.9rem; } .foot-list { padding: 0; list-style: none; } .foot-list li + li { margin-top: 0.45rem; } .foot-list a { color: rgb(236 224 198 / 0.88); font-size: 0.98rem; text-decoration: none; } .foot-list a:hover { color: #d3ac52; text-decoration: underline; text-underline-offset: 3px; } .colophon { margin-top: 2.5rem; padding-top: 1.4rem; border-top: 1px solid rgb(236 224 198 / 0.22); font-size: 0.88rem; font-style: italic; text-align: center; color: rgb(236 224 198 / 0.62); } @media (max-width: 60rem) { .hero__grid { grid-template-columns: 1fr; } .folio { max-width: 26rem; margin-inline: auto; } .footer-grid { grid-template-columns: 1fr 1fr; } .foot-brand { grid-column: 1 / -1; } } @media (max-width: 38rem) { .entry { grid-template-columns: 1fr; gap: 0.4rem; } .footer-grid { grid-template-columns: 1fr; } .kicker span { letter-spacing: 0.18em; } } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; } } @media print { body { background: none; color: #000; } body::after, .masthead .site-nav, .hero__actions, .btn { display: none; } .folio { box-shadow: none; } }