/* --- Variables & System Logic --- */ /* All tokens defined in tokens.css — import that first. */ @import url('tokens.css'); /* --- Layout Architecture --- */ * { box-sizing: border-box; } body { background: var(--bg); color: var(--fg); font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace; line-height: 1.6; max-width: var(--max-width); margin: 0 auto; padding: 2rem 1rem; text-rendering: optimizeLegibility; } /* --- Navigation & Footer --- */ nav ul { list-style: none; padding: 0; display: flex; gap: 1rem; padding-bottom: 0.5rem; } nav a { text-transform: uppercase; font-weight: 900; text-decoration: none; } nav a:hover { background: var(--fg); color: var(--bg); } footer { padding-top: 1rem; font-size: 0.8rem; text-transform: uppercase; } /* --- Typography (Brutalist) --- */ h1, h2, h3 { line-height: 1.1; margin-top: 2rem; font-weight: 900; text-transform: uppercase; } h1 { font-size: 2.2rem; margin-bottom: 1rem; } h2 { border-left: 10px solid var(--accent); padding-left: 0.75rem; } a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; } a:hover { background: var(--accent); color: var(--bg); text-decoration: none; } /* --- Weblorg / Template Specifics --- */ section b { font-size: 0.85rem; text-transform: uppercase; color: var(--meta); margin-top: 0.5rem; } .post { display: flex; align-items: center; border-bottom: 1px dashed var(--border); padding: 0.5rem 0; } .post time { font-size: 0.8rem; color: var(--meta); margin-right: 0.5rem; white-space: nowrap; flex-shrink: 0; } .metadata b { display: block; font-size: 0.7rem; } /* --- Org-Mode Tables (Heavy Grid) --- */ table { width: 100%; border-collapse: collapse; margin: 2rem 0; border: 3px solid var(--fg); } th, td { border: 1px solid var(--fg); padding: 0.75rem; text-align: left; } th { background: var(--fg); color: var(--bg); text-transform: uppercase; font-size: 0.8rem; } /* --- Code & Pre blocks --- */ pre { padding: 1rem; border: 1px solid var(--border); background: var(--code-bg); overflow-x: auto; } code { background: var(--code-bg); padding: 0.2rem 0.4rem; } /* Blockquote styling */ blockquote { background-color: var(--code-bg); font-style: italic; margin: 1.5em 0; padding: 0; } blockquote p { margin: 0; } blockquote::before { content: "#+begin_quote"; display: block; color: var(--fg); } blockquote::after { content: "#+end_quote"; display: block; color: var(--fg); } /* --- Accessibility & Efficiency --- */ img { max-width: 100%; height: auto; filter: grayscale(1); } img:hover { filter: grayscale(0); } /* --- Accessibility: Skip Link --- */ .skip-link { position: absolute; top: -100px; /* Hide off-screen */ left: 50%; transform: translateX(-50%); background: var(--fg); color: var(--bg); padding: 1rem 2rem; z-index: 999; font-weight: 900; text-transform: uppercase; border: 3px solid var(--accent); text-decoration: none; transition: top 0.2s ease-in-out; } /* Show the link when a user tabs to it */ .skip-link:focus { top: 0; outline: none; /* We use the border and color change as the indicator */ } /* Ensure the main area doesn't show a blue ring when focused via skip-link */ #main-content:focus { outline: none; } /* --- Horizontal Rule (Koi Divider) --- */ hr { border: none; height: 2rem; position: relative; display: flex; align-items: center; justify-content: center; background-image: url('koi-hr.svg'); background-repeat: no-repeat; background-position: center; background-size: auto 100%; } hr::before, hr::after { content: ''; position: absolute; top: 50%; transform: translateY(-50%); width: calc(50% - 1.75rem); height: 2px; background: var(--fg); } hr::before { left: 0; } hr::after { right: 0; } /* --- Footnote Alignment --- */ .footdef { display: flex; align-items: flex-start; /* Keeps number at the top if text wraps */ gap: 1rem; /* Space between number and text */ margin-bottom: 0.5rem; } /* Ensure the paragraph doesn't add its own block margins */ .footpara { margin: 0; flex: 1; display: flex; flex-direction: column; gap: 0.5rem; } /* -- Garden -- */ /* Style the footnote number to be a fixed width for alignment */ .footnum { font-weight: bold; min-width: 1.5rem; text-align: right; text-decoration: none; font-size: 0.85rem; color: var(--accent); } @media (max-width: 600px) { body { padding: 1rem; } .post { flex-direction: column; align-items: flex-start; } }