@import './fonts.css'; :root { /* --font: 'Baskervville', serif; */ /* --font: 'EB Garamond', serif; */ /* --font: 'Plantin MT Pro', serif; */ /* --font: 'Young Serif', serif; */ /* --font: "SohneBuch", sans-serif; */ --font: 'Redaction', serif; --font-hover: 'Redaction 70', serif; /* --font-hover: var(--font); */ --text: #333; --muted: #666; --bg: #fbfbf7; --color-white-500: #fbfbf7; --gap: 1rem; } ::selection { background: var(--text); color: var(--bg); } .dark-mode { --text: #fbfbf7; --bg: #0c0c0c; --muted: #a3a3a3; --color-white-500: #fbfbf7; } .flex { display: flex; } .flex-center { display: flex; justify-content: center; align-items: center; } .flex-ff { flex: 1; } .row { flex-direction: row; } .col { flex-direction: column; } * { box-sizing: border-box; } html, body { margin: 0; padding: 0; background: var(--bg); overscroll-behavior-y: none; overscroll-behavior-x: auto; } body { font-family: var(--font); color: var(--text); font-size: 16px; line-height: 1.6; } /* full-page film grain */ body::after { content: ''; position: fixed; inset: 0; z-index: 9999; pointer-events: none; opacity: 0.06; background-image: 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.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); mix-blend-mode: multiply; } .dark-mode body::after { mix-blend-mode: screen; opacity: 0.045; } /* quick page transition */ .page-enter-active, .page-leave-active { transition: opacity 0.18s ease; } .page-enter-from, .page-leave-to { opacity: 0; } .basic-link { color: var(--text); transition: opacity 0.2s ease; text-underline-offset: 4px; } .basic-link:hover { opacity: 0.5; } .punch-link { display: inline-block; vertical-align: bottom; position: relative; color: var(--color-white-500); text-decoration: none; transition: all 200ms ease; padding: 0 4px; margin: 0 -4px; background-image: linear-gradient( var(--color-white-500), var(--color-white-500) ); background-size: 100% 1px; background-position: bottom; background-repeat: no-repeat; mix-blend-mode: screen; } .punch-link:hover { background-size: 100% 100%; background-image: linear-gradient(#fff, #fff); color: #000; } .back-link { display: flex; align-items: center; gap: 0.5rem; font-size: small; color: var(--text); text-decoration: none; transition: opacity 0.2s ease; } .back-link .arrow { transition: transform 0.2s ease; } .back-link:hover .arrow { transform: translateX(-4px); }