@import "tailwindcss"; @plugin "@tailwindcss/typography"; .prose code::before, .prose code::after { content: "" !important; } @theme { --font-sans: var(--font-instrument-sans); --font-mono: var(--font-ibm-plex-mono); --color-paper: #f4efe7; --color-paper-strong: #fbf7f0; --color-paper-overlay: rgba(244, 239, 231, 0.92); --color-ink: #171411; --color-ink-soft: #27221d; --color-muted: #5b544b; --color-muted-strong: #7a7166; --color-line: rgba(23, 20, 17, 0.12); --color-line-strong: rgba(23, 20, 17, 0.22); --color-accent: #8d6a42; --color-accent-soft: rgba(141, 106, 66, 0.12); --animate-fade-in: fade-in 0.7s cubic-bezier(0.16, 1, 0.3, 1); --animate-fade-up: fade-up 0.8s cubic-bezier(0.16, 1, 0.3, 1) both; @keyframes fade-in { from { opacity: 0.82; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } } @keyframes fade-up { from { opacity: 0.7; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } } :root { color-scheme: light; --background: var(--color-paper); --foreground: var(--color-ink); --page-wash: rgba(170, 142, 97, 0.09); --page-shadow: rgba(255, 255, 255, 0.24); --grain-opacity: 0.03; } :root[data-theme="dark"] { color-scheme: dark; --background: #11100f; --foreground: #f2ede4; --color-paper: #11100f; --color-paper-strong: #171614; --color-paper-overlay: rgba(17, 16, 15, 0.92); --color-ink: #f2ede4; --color-ink-soft: #dfd7cb; --color-muted: #b3a99d; --color-muted-strong: #d0c4b5; --color-line: rgba(242, 237, 228, 0.12); --color-line-strong: rgba(242, 237, 228, 0.22); --color-accent: #d0af80; --color-accent-soft: rgba(208, 175, 128, 0.14); --page-wash: rgba(208, 175, 128, 0.08); --page-shadow: rgba(255, 255, 255, 0.02); --grain-opacity: 0.055; } @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { color-scheme: dark; --background: #11100f; --foreground: #f2ede4; --color-paper: #11100f; --color-paper-strong: #171614; --color-paper-overlay: rgba(17, 16, 15, 0.92); --color-ink: #f2ede4; --color-ink-soft: #dfd7cb; --color-muted: #b3a99d; --color-muted-strong: #d0c4b5; --color-line: rgba(242, 237, 228, 0.12); --color-line-strong: rgba(242, 237, 228, 0.22); --color-accent: #d0af80; --color-accent-soft: rgba(208, 175, 128, 0.14); --page-wash: rgba(208, 175, 128, 0.08); --page-shadow: rgba(255, 255, 255, 0.02); --grain-opacity: 0.055; } } html { scroll-behavior: smooth; background: var(--background); } body { background: var(--background); color: var(--foreground); font-family: var(--font-sans), sans-serif; min-height: 100vh; position: relative; background-image: linear-gradient(180deg, var(--page-shadow), transparent 28%); -webkit-font-smoothing: antialiased; } body::before, body::after { content: ""; inset: 0; position: fixed; pointer-events: none; z-index: 0; } body::before { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.15' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E"); opacity: var(--grain-opacity); } body::after { background: radial-gradient(60rem 24rem at 50% -8%, var(--page-wash), transparent 70%), radial-gradient(24rem 18rem at 0% 0%, rgba(0, 0, 0, 0.02), transparent 74%); opacity: 1; } ::selection { background: rgba(141, 106, 66, 0.18); color: var(--foreground); } a { color: inherit; } :focus-visible { outline: 2px solid rgba(141, 106, 66, 0.5); outline-offset: 4px; } .site-shell { position: relative; z-index: 10; } .page-frame { margin: 0 auto; max-width: 84rem; padding-inline: clamp(1.25rem, 3vw, 2.5rem); } .eyebrow { color: var(--color-muted-strong); font-family: var(--font-mono), monospace; font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; } .ambient-canvas { inset: 0; pointer-events: none; position: fixed; z-index: 0; } .ambient-canvas__wash { inset: 0; position: absolute; background-image: radial-gradient(68rem 28rem at 50% -10%, var(--page-wash), transparent 72%), radial-gradient(40rem 24rem at 100% 0%, rgba(141, 106, 66, 0.05), transparent 76%); opacity: 0.9; } .theme-toggle { position: relative; } .theme-toggle__sun, .theme-toggle__moon { position: absolute; transition: opacity 180ms ease, transform 180ms ease; } .theme-toggle__moon { opacity: 0; transform: scale(0.8); } :root[data-theme="dark"] .theme-toggle__sun { opacity: 0; transform: scale(0.8); } :root[data-theme="dark"] .theme-toggle__moon { opacity: 1; transform: scale(1); } .essay-prose { color: var(--color-ink-soft); font-size: 1.04rem; line-height: 1.85; } .essay-prose > :first-child { margin-top: 0; } .essay-prose > :last-child { margin-bottom: 0; } .essay-prose img { margin-block: 2.25rem; border: 1px solid var(--color-line); border-radius: 1rem; } .essay-prose pre code, .essay-prose code[data-language] { background: transparent; padding: 0; } .side-note { display: block; margin-block: 1.6rem; border-left: 1px solid var(--color-line-strong); padding-left: 0.95rem; color: var(--color-muted); font-size: 0.9rem; line-height: 1.7; } .side-note strong { display: block; margin-bottom: 0.3rem; color: var(--color-ink); font-weight: 600; } @media (min-width: 1280px) { .side-note { float: right; clear: right; width: 12rem; margin-top: 0.25rem; margin-right: -14rem; margin-bottom: 1.5rem; margin-left: 1.75rem; } } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }