:root { --color-bg: #13100e; --color-text: #e5dfd3; --color-text-secondary: #8a8275; --color-text-tertiary: #5c564c; --color-accent: #b8884a; --color-accent-warm: #c47a2e; --font-body: 'Literata', 'Source Serif Pro', Georgia, serif; --font-ui: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif; --font-memoir: 'Crimson Pro', 'Source Serif Pro', Georgia, serif; --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-6: 24px; --space-8: 32px; --space-12: 48px; --text-xs: 11px; --text-sm: 13px; --text-base: 16px; --text-md: 18px; --text-lg: 21px; --text-xl: 28px; --leading-tight: 1.4; --leading-normal: 1.6; --leading-loose: 1.75; --transition-soft: 400ms ease-out; --transition-fast: 250ms ease-out; --transition-ceremonial: 600ms ease-out; } body.crisis-mode { --color-bg: #0f0c0b; --color-text: #e5d8c3; --color-accent: var(--color-accent-warm); } html.text-size-small { --text-xs: 10px; --text-sm: 12px; --text-base: 14px; --text-md: 16px; --text-lg: 19px; --text-xl: 24px; } html.text-size-large { --text-xs: 12px; --text-sm: 14px; --text-base: 18px; --text-md: 20px; --text-lg: 24px; --text-xl: 32px; } html.text-size-extra-large { --text-xs: 13px; --text-sm: 15px; --text-base: 20px; --text-md: 22px; --text-lg: 27px; --text-xl: 36px; } html.high-contrast { --color-text: #f3ecdc; --color-text-secondary: #b4ac9c; --color-text-tertiary: #857f72; } html.reduce-motion *, html.reduce-motion *::before, html.reduce-motion *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html, body { height: 100%; background: var(--color-bg); color: var(--color-text); font-family: var(--font-body); font-size: var(--text-md); line-height: var(--leading-normal); cursor: url('../cursors/cursor.svg') 12 12, auto; } a, button, label, summary, select, [role='button'], [role='link'] { cursor: url('../cursors/cursor-pointer.svg') 13 13, pointer; } input, textarea { cursor: url('../cursors/cursor.svg') 12 12, text; } body { transition: background-color var(--transition-ceremonial), color var(--transition-ceremonial); } html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; } *, *::before, *::after { user-select: none; -webkit-user-select: none; -ms-user-select: none; -webkit-touch-callout: none; -webkit-tap-highlight-color: transparent; } img { -webkit-user-drag: none; user-drag: none; pointer-events: none; } .selectable { user-select: text; -webkit-user-select: text; } .scrollable { overflow-y: auto; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; } ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: rgba(232, 226, 213, 0.08); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: rgba(232, 226, 213, 0.18); } * { scrollbar-width: thin; scrollbar-color: rgba(232, 226, 213, 0.08) transparent; } @media (pointer: coarse) { ::-webkit-scrollbar { display: none; } } p { line-height: var(--leading-normal); } button { background: none; border: none; color: inherit; font: inherit; padding: 0; } button:focus-visible { outline: 1px solid var(--color-accent); outline-offset: 2px; } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } } @font-face { font-family: 'Literata'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/Literata-Regular.ttf') format('truetype'); } @font-face { font-family: 'Literata'; font-style: italic; font-weight: 400; font-display: swap; src: url('../fonts/Literata-Italic.ttf') format('truetype'); } @font-face { font-family: 'Literata'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/Literata-Medium.ttf') format('truetype'); } @font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/Inter-Regular.ttf') format('truetype'); } @font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/Inter-Medium.ttf') format('truetype'); }