/* Shared Page Styling for Simple Pages (index, forms, static articles) */ :root { color-scheme: dark light; --color-bg-primary: #1a1a1a; --color-bg-secondary: #252525; --color-bg-tertiary: #2f2f2f; --color-text-primary: #e8e8e8; --color-text-secondary: #b8b8b8; --color-text-muted: #888888; --color-accent-primary: #6b9bd1; --color-accent-hover: #85aede; --color-on-accent: #121212; --color-link: #6b9bd1; --color-link-hover: #85aede; --color-border: #3a3a3a; --color-shadow: rgba(0, 0, 0, 0.3); --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; --font-scripture: Georgia, "Crimson Text", "Times New Roman", serif; --font-mono: "SF Mono", Monaco, "Cascadia Code", "Courier New", monospace; --space-xs: 0.25rem; --space-sm: 0.5rem; --space-md: 1rem; --space-lg: 1.5rem; --space-xl: 2rem; --space-2xl: 3rem; --content-max-width: 820px; --border-radius: 8px; --border-radius-sm: 4px; --transition-fast: 150ms ease; --transition-normal: 250ms ease; } @media (prefers-color-scheme: light) { :root { --color-bg-primary: #f7f5f0; --color-bg-secondary: #ffffff; --color-bg-tertiary: #ece9e1; --color-text-primary: #1f1f1f; --color-text-secondary: #4a4a4a; --color-text-muted: #6b6b6b; --color-accent-primary: #2b5c94; --color-accent-hover: #1d4574; --color-on-accent: #ffffff; --color-link: #2b5c94; --color-link-hover: #1d4574; --color-border: #d6d1c4; --color-shadow: rgba(0, 0, 0, 0.1); } } * { box-sizing: border-box; } [hidden] { display: none !important; } html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } body { background-color: var(--color-bg-primary); color: var(--color-text-primary); margin: 0 auto; padding: var(--space-md) max(var(--space-md), env(safe-area-inset-right)) var(--space-2xl) max(var(--space-md), env(safe-area-inset-left)); max-width: calc(var(--content-max-width) + 2 * var(--space-md)); font-family: var(--font-ui); line-height: 1.6; font-size: 16px; overflow-wrap: break-word; } h1, h2, h3, h4 { color: var(--color-text-primary); line-height: 1.25; margin: 1.5rem 0 1rem; } h1 { font-size: clamp(1.6rem, 5vw + 0.5rem, 2.4rem); } h2 { font-size: clamp(1.4rem, 4vw + 0.4rem, 2rem); border-bottom: 2px solid var(--color-border); padding-bottom: 0.5rem; } a { color: var(--color-link); text-decoration: none; transition: color var(--transition-fast); } a:hover { color: var(--color-link-hover); text-decoration: underline; } :focus-visible { outline: 2px solid var(--color-accent-primary); outline-offset: 2px; } /* Top navigation: a wrapping row of pill links */ header { margin-left: -0.75rem; /* pill padding lines the text up with the page edge */ display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-sm); margin-bottom: var(--space-lg); padding-bottom: var(--space-md); border-bottom: 1px solid var(--color-border); } header a { padding: 0.35rem 0.75rem; border-radius: 999px; font-weight: 500; font-size: 0.95rem; white-space: nowrap; } header a:hover { background-color: var(--color-bg-tertiary); text-decoration: none; } form { background-color: var(--color-bg-secondary); padding: var(--space-lg); border-radius: var(--border-radius); border: 1px solid var(--color-border); margin: var(--space-lg) 0; } label { display: block; margin-bottom: 0.5rem; font-weight: 600; color: var(--color-text-primary); } input[type=text] { width: 100%; min-height: 44px; padding: 0.6rem 0.75rem; margin: 0.5rem 0 1rem 0; font-size: 1rem; /* 16px minimum stops iOS zooming into the field */ font-family: var(--font-ui); background-color: var(--color-bg-primary); color: var(--color-text-primary); border: 2px solid var(--color-border); border-radius: var(--border-radius-sm); transition: border-color var(--transition-fast); } input[type=text]:focus { outline: none; border-color: var(--color-accent-primary); } /* Radio + text wrapped in a label so the whole pill is the tap target */ .choice { display: inline-flex; align-items: center; gap: 0.4rem; min-height: 44px; margin: 0 var(--space-md) 0 0; font-weight: 500; cursor: pointer; } input[type=radio] { margin: 0; width: 1.1rem; height: 1.1rem; accent-color: var(--color-accent-primary); } .form-row { margin-bottom: var(--space-md); } input[type=submit], button { background-color: var(--color-accent-primary); color: var(--color-on-accent); border: none; min-height: 44px; padding: 0.6rem 1.5rem; font-size: 1rem; font-weight: 600; font-family: var(--font-ui); border-radius: var(--border-radius-sm); cursor: pointer; transition: background-color var(--transition-fast), transform var(--transition-fast); } input[type=submit]:hover, button:hover { background-color: var(--color-accent-hover); transform: translateY(-1px); } hr { border: none; border-top: 1px solid var(--color-border); margin: var(--space-xl) 0; } p { margin: 1rem 0; color: var(--color-text-secondary); } b, strong { color: var(--color-text-primary); } pre { background-color: var(--color-bg-secondary); border: 1px solid var(--color-border); border-radius: var(--border-radius-sm); padding: var(--space-md); overflow-x: auto; /* scroll the code block, never the page */ -webkit-overflow-scrolling: touch; font-size: 0.85rem; line-height: 1.5; max-width: 100%; } code { font-family: var(--font-mono); } /* wide tables scroll inside their own box instead of widening the page */ .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; } table { border-collapse: collapse; width: 100%; } td, th { text-align: left; padding: 0.5rem 0.75rem; border-bottom: 1px solid var(--color-border); } @media (max-width: 480px) { form { padding: var(--space-md); } /* full-width submit buttons are easier to hit with a thumb */ input[type=submit] { width: 100%; } pre { font-size: 0.78rem; } }