/* Barthelme Jekyll Theme - Based on original WordPress theme by PlainTXT.org */

/* Base reset - matches Barthelme original */
html,
body,
div.formcontainer form#commentform,
div.sidebar ul li p,
div.sidebar ul li ul,
div.sidebar ul li ul li,
div.sidebar ul li#search form#searchform {
    margin: 0;
    padding: 0;
}

/* Basic Styles */
body {
    background: #fff;
    color: #222;
    line-height: 150%;
    font-family: arial, helvetica, sans-serif;
    font-size: 100%;
}

/* Live's Barthelme theme renders `.screen-reader-text` VISIBLY as a
   block-level continuation ("on TITLE" appears under "Comments Off").
   Verified via DOM probe: live computes display:block, no clip, full
   120×24 box. No hiding rule — leave inline default and force block so
   the title wraps to a new line in the entry-meta column. */
.entry-comments .screen-reader-text {
    display: block;
}

/* Links */
a {
    color: #546188;
    text-decoration: none;
}

a:visited {
    color: #7f89a6;
}

a:hover,
a:active {
    color: #000;
    text-decoration: underline;
}

/* Links: faithful to the original Barthelme theme (theme_analysis/barthelme/style.css
   lines 10-16, verified against the live oracle). The theme keeps the browser-default
   underline on content-area links, then REMOVES it from titles, the meta column, tag
   links, archive-meta, page-links and the comment form; single-post entry-meta links
   (post-a-comment / RSS / categories) and footer links stay underlined. Our base
   `a{text-decoration:none}` had killed all of these except .entry-content, so the
   prev/next nav, single-post meta column and footer links were wrongly plain vs live. */
div#content a,
div#content a:link {
    text-decoration: underline;
}
div#content .entry-title a,
div#content .page-title a,
div#content div.entry-meta a,
div#content div.entry-content div.page-link a,
div#content span.tag-links a,
div#content div.archive-meta a,
div.comments form#commentform a {
    text-decoration: none;
}
body.single div#content div.entry-meta a {
    text-decoration: underline;
}

/* Container Layout — sidebar on RIGHT to match live blog.mithis.net rendering
   (P7-iter2 fix: bf4e353 wrongly flipped container/sidebar floats — see commit) */
body div#wrapper {
    margin: 0 2em 0 0;
}

body div#container {
    float: left;
    margin: 0 0 5em -16em;
    width: 100%;
}

body div#content {
    margin: 0 0 0 17em;
}

body.single div#container,
body.page div#container {
    margin: 0 0 0 -16em;
}

body.single div#content,
body.page div#content {
    margin: 0 0 0 17em;
}

/* Header */
body div#header {
    margin: 0 -2em 3em 0;
    padding: 0;
    cursor: pointer;
    background: #bbc8d9;
}

/* Shashin plugin CSS (faithful copy from live WP site) */
.shashinThumbnailsTable {
    margin: 5px;
}

.shashinThumbnailsTable caption {
    text-align: center;
    margin: 5px;
}

.shashinThumbnailsTable td {
    vertical-align: top;
}

.shashinThumbnailDiv {
    border: thin solid Black;
    background-color: White;
    margin-left: auto;
    margin-right: auto;
}

.shashinThumbnailDiv:hover {
    border-color: Silver;
}

.shashinThumbnailImage {
    padding: 3px;
    border: none;
    display: block;
}

.shashinThumbnailCaption {
    display: block;
    padding: 0px 5px 5px 5px;
    font-size: x-small;
    font-weight: bold;
}

.shashinCaptionExif {
    display: block;
    color: darkgray;
}

.shashinHighslideLinkToOriginalPhoto {
    float: right;
    padding-left: 5px;
}

.highslide-caption {
    display: none;
}

div#header h1#blog-title {
    font-size: 2.2em;
    font-weight: 400;
    line-height: 133%;
    margin: 0;
    color: #fefefe;
}

div#header h1#blog-title a {
    color: #fefefe;
    outline: none;
    text-decoration: none;
}

div#header div#blog-description {
    font-size: 1.3em;
    margin: 0.1em 0;
    color: #fefefe;
}

/* Header Navigation - Simple Contact Link */
div#header div#header-nav {
    margin-top: 0.5em;
    font-size: 0.9em;
}

div#header div#header-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

div#header div#header-nav li {
    display: inline;
    margin-right: 1em;
}

div#header div#header-nav a {
    color: #fefefe;
    text-decoration: none;
}

div#header div#header-nav a:hover {
    color: #ddd;
    text-decoration: underline;
}

/* Navigation - Hidden in original theme */
div#globalnav {
    display: none;
}

/* Live's footer theme credit uses hcard markup with full name "Scott Allan
   Wallick" but live's barthelme/style.css hides the additional-name and
   family-name spans, so only "Scott" displays. Without this rule the full
   "Scott Allan Wallick" string was visible on every page (causing a constant
   ~0.13% diff at y=2020-2035 — the footer area).
   Verified live's CSS: span#theme-link span.additional-name,
                        span#theme-link span.family-name { display: none } */
span#theme-link span.additional-name,
span#theme-link span.family-name {
    display: none;
}

div#globalnav ul#menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

div#globalnav ul#menu li {
    display: inline;
    margin-right: 1em;
}

div#globalnav ul#menu li a {
    color: #666;
    text-decoration: none;
    padding: 0.25em 0.5em;
}

div#globalnav ul#menu li a:hover {
    color: #000;
    background: #ddd;
}

/* Headers and specific elements use Georgia serif font to match original */
div#content h2,
div#content h3,
div#content h4,
div#content h5,
div#content h6,
.entry-title,
.entry-date,
.entry-meta,
blockquote,
.comment-meta,
input#s {
    font-family: georgia, times, serif;
}
/* Live's archive listings render `.entry-meta` itself in arial (inherits
   from body), but the sub-elements `.entry-date`, `.entry-category`,
   `.tag-links` are explicitly georgia. The bare `.entry-meta` georgia rule
   above applies to POST pages (body.single/page) where live IS georgia.
   On listing pages, REVERT entry-meta to arial but keep the sub-elements
   georgia. */
body.archive div.entry-meta,
body.tag div.entry-meta,
body.category div.entry-meta,
body.author div.entry-meta,
body.home div.entry-meta,
body.search div.entry-meta {
    font-family: arial, helvetica, sans-serif;
}
/* Live's listing pages render `.entry-meta` itself in arial (the rule
   above), but ALL its child spans (date/author/category/comments/permalink)
   AND `.tag-links` in georgia. Reset font-family on each child explicitly. */
body.archive .entry-meta > span,
body.archive span.tag-links,
body.tag .entry-meta > span,
body.tag span.tag-links,
body.category .entry-meta > span,
body.category span.tag-links,
body.author .entry-meta > span,
body.author span.tag-links,
body.home .entry-meta > span,
body.home span.tag-links,
body.search .entry-meta > span,
body.search span.tag-links {
    font-family: georgia, times, serif;
}

/* Posts — listing/home title. Barthelme scopes the 1.7em + centered styling to
   body.single / body.page (see "Post Titles" below); the home/archive listing title
   stays left-aligned at the default (bold) weight, sized 1.2em via
   div.post-content .entry-title (faithful to barthelme-original.css). */
div.post-content .entry-title {
    font-size: 1.2em;
}

.entry-title a {
    color: #546188;
    text-decoration: none;
}

.entry-title a:hover {
    color: #000;
    text-decoration: underline;
}

.entry-date {
    color: #444;
    font-size: 1em;
    word-spacing: 0.2em;
    text-align: center;
    margin: 1em 0;
}

.entry-meta {
    color: #666;
    font-size: 1em;
    text-align: center;
    margin: 1em 0;
}

/* Home Page Layout - Left Column for Post Meta */
body.home div#content div.entry-meta,
body.archive div#content div.entry-meta,
body.search div#content div.entry-meta {
    float: left;
    overflow: hidden;
    text-align: right;
    width: 7.5em;
    margin: 0;
}

body.home div#content div.entry-meta span.entry-date,
body.archive div#content div.entry-meta span.entry-date,
body.search div#content div.entry-meta span.entry-date {
    /* Under FULL standards mode (HTML5 doctype), the 1.1em date abbr made
       the line-box 1px taller — we trimmed margin-bottom by 1px to compensate.
       After switching to XHTML Transitional doctype (almost standards mode,
       commit 26e3074), the line-box matches live exactly, so the trim is no
       longer needed and was over-correcting by 1px on every meta block. */
    margin-bottom: 1.1em;
    text-align: right;
}

body.home div#content div.entry-meta abbr.published,
body.archive div#content div.entry-meta abbr.published,
body.search div#content div.entry-meta abbr.published {
    color: #444;
    font-size: 1.1em;
    word-spacing: 0.2em;
}

body.home div#content div.entry-meta span,
body.archive div#content div.entry-meta span,
body.search div#content div.entry-meta span {
    display: block;
    margin: 0.2em 0 0.5em;
}

body.home div#content div.post-container,
body.archive div#content div.post-container,
body.search div#content div.post-container {
    float: right;
    margin: 0 0 4em -8.5em;
    width: 100%;
}

body.home div#content div.post-content,
body.archive div#content div.post-content,
body.search div#content div.post-content {
    clear: both;
    margin: 0 0 0 8.5em;
}

.entry-content {
    margin: 0;
}

/* Sidebar — float:right to match live blog.mithis.net rendering
   (P7-iter2 fix: bf4e353 wrongly set float:left assuming Barthelme base) */
body div.sidebar {
    float: right;
    overflow: hidden;
    width: 16em;
}

div.sidebar a,
div.sidebar a:link,
div.sidebar a:visited {
    color: #888;
    text-decoration: none;
}

div.sidebar a:hover {
    color: #2f4e6f;
    text-decoration: underline;
}

/* Sidebar widget list styling - matches Barthelme original */
div.sidebar ul {
    margin: 0 1.5em 0 3em;
    padding: 0;
}

div.sidebar ul li {
    font-size: 1em;
    line-height: 175%;
    list-style: none;
    margin: 0 0 1.5em;
    padding: 0;
}

div.sidebar ul li h3 {
    color: #777;
    font-size: 1em;
    margin: 0;
    text-transform: uppercase;
}

div.sidebar ul li ul li ul li {
    font-size: 0.9em;
    margin: 0 0 0 1em;
}

div.sidebar ul li#search form#searchform input#s {
    border: 1px inset #888;
    color: #222;
    display: block;
    font-size: 0.9em;
    line-height: 133%;
    margin: 0 0 0.5em;
    padding: 0.3em;
    width: 66%;
}

#categories-dropdown {
    width: 100%;
    padding: 0.3em;
    border: 1px inset #888;
    font-size: 0.9em;
}

.tag-cloud {
    line-height: 1.8;
}

/* Tagcloud height previously needed margin-bottom: -4px to compensate for
   a Chromium line-strut variance under FULL standards mode (HTML5 doctype)
   that made the cloud ~4px taller than live. With the doctype now matching
   live's XHTML 1.0 Transitional (= almost standards mode), Chrome's strut
   matches live's exactly and the cloud renders at the same 449px height,
   so no compensation is needed. */


/* Content Styling */
div#content .entry-title {
    line-height: 150%;
    margin: 0;
}

div#content a:visited {
    color: #7f89a6;
}

/* Post Meta */
body.single div.entry-date,
body.single div.entry-meta {
    color: #888;
    font-size: 1em;
    line-height: 150%;
    text-align: center;
}

body.single .entry-date {
    word-spacing: 0.5em;
    /* Live's single-post date has no margin; the base .entry-date{margin:1em 0}
       was leaking 16px top (collapsing through #content) + 16px bottom, shifting
       all post content down 32px vs live. */
    margin: 0;
}

body.single div.entry-meta {
    border-bottom: 1px solid #888;
    border-top: 1px solid #888;
    line-height: 175%;
    margin: 2em 0;
    padding: 0.5em 0.2em;
}

/* Post Titles */
body.single div.hentry h2.entry-title,
body.page div.hentry h2.entry-title {
    font-size: 1.7em;
    font-weight: 400;
    text-align: center;
}

/* Archive and page meta - Barthelme original */
body.attachment div#content h3.page-title,
body.archive div.archive-meta,
body.page div.archive-meta {
    font-family: georgia, times, serif;
    font-size: 1em;
    font-style: italic;
    font-weight: 400;
    line-height: 150%;
    margin: 0.2em 0;
    text-align: center;
}

body.archive div.archive-meta,
body.author div.archive-meta,
body.page div.author-meta {
    margin: 0 auto 2em;
    width: 50%;
}

body.archive div.archive-meta p,
body.page div.archive-meta p {
    margin: 0.5em auto;
}

/* Single post span display - Barthelme original */
body.single span.entry-published,
body.single span.entry-rsslink,
body.single span.cat-links,
body.single span.tag-links {
    display: block;
}

div.entry-content span.tag-links {
    margin: 0.5em 0;
    display: block;
    font-weight: 700;
    font-size: 0.9em;
}

/* hentry clear - Barthelme original */
body div#container div.hentry {
    clear: both;
}

div.hentry .entry-date {
    font-weight: 700;
    word-spacing: 0.2em;
}

div.hentry abbr.published,
div.comments abbr.comment-published {
    border: none;
    cursor: text;
}

div#content .page-title {
    font-size: 1.7em;
    font-weight: 400;
    margin: 0;
    text-align: center;
}

/* Live's `.page-title` is padding-bottom: 0 on tag/category/author pages
   UNLESS the page happens to contain the fritzbox post (id 1833) — whose
   embedded <style> block sets `h2 { padding-bottom: 1em }` GLOBALLY.
   Replicated via `:has(#post-1833)` further below; no override needed here.
   The font-weight: 400 above overrode the browser-default <h2> bold. */

/* Content headings - Barthelme exact values */
div.entry-content h2,
div.entry-content h3 {
    font-size: 1.4em;
}

div.entry-content h4 {
    font-size: 1.3em;
}

div.entry-content h5,
div.entry-content h6 {
    font-size: 1.2em;
}

div.entry-content h2,
div.entry-content h3,
div.entry-content h4,
div.entry-content h5,
div.entry-content h6 {
    font-weight: 400;
    line-height: 150%;
    margin: 1.5em 0 -0.7em;
}

/* Content Formatting */
div.entry-content p {
    margin: 1em 0;
}

div.entry-content blockquote {
    border-left: 1em solid #cfd5dd;
    color: #444;
    font-size: 0.9em;
    line-height: 150%;
    padding: 0 0 0 0.7em;
}

div.entry-content code,
div.entry-content pre {
    font: 1em/150% "courier new", courier, monospace;
}

/* Live had no background/border/padding on inline <code> (verified via DOM
   inspection: e.g. nm-autovpn's `nmcli con up` code → 0px padding). The
   syntax-highlighting.css include adds `p code { background:#f1f1f1; border;
   padding:2px 4px; ... }` for GitHub-style badges, but that's not how WP
   rendered inline code. Zero out for the WP corpus zone. */
div.entry-content p code,
div.entry-content li code,
div.comments ol.commentlist li p code,
div.comments ol.commentlist li code {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    margin: 0;
    overflow: visible;
    /* Reset font shorthand cleanly. */
    font: 1em/150% "courier new", courier, monospace;
}


/* Posts using fenced python/bash blocks (utf-8, reading-cookies,
   firefox3-cookies, power-scripts, fastcomplete) render at 12px/16px via
   live's old WP-Syntax plugin, vs the theme's 1em/150% used by fritzbox
   (16px) and plain <pre> (14.4px). Target .language-python and .language-bash
   so those match live without touching any other code block.

   Also override font-family: live's WP-Syntax plugin reset the theme's
   `"courier new", courier, monospace` to bare `monospace` on its python/bash
   `<pre>` blocks. The two fall back to different glyph metrics in Chromium
   (DejaVu Sans Mono vs Courier New), causing sub-pixel anti-aliasing drift
   on every line of code. Match live's `monospace` here. */
div.entry-content .language-python pre,
div.entry-content .language-python pre code,
div.entry-content .language-bash pre,
div.entry-content .language-bash pre code {
    font-family: monospace;
    font-size: 12px;
    line-height: 16px;
}

/* WP-Syntax python AND bash posts have a boxed code block on live: a #f9f9f9
   wrapper with a 1px #c0c0c0 border, a #eee code area, and 4px horizontal pre
   padding (12px/16px font set above), margin 1.35em below. Apply to both
   .language-python and .language-bash; the plain-<pre> posts (fritzbox) stay
   undecorated via the .highlighter-rouge rule below. */
div.entry-content .language-python.highlighter-rouge,
div.entry-content .language-bash.highlighter-rouge {
    background-color: #f9f9f9;
    border: 1px solid #c0c0c0;
    margin: 0 0 21.6px 0;
    overflow-x: auto;
    /* Live's WP-Syntax stylesheet sets `.wp_syntax { width: 99% }` on the
       outer wrapper — verified by inspecting the matched CSS rules on
       blog.mithis.net. The remaining 1% leaves ~14px of right-side gutter
       between the code block and the entry-content edge. Without this,
       our wrapper fills 100% of the parent blockquote and the right
       border sits ~14px further right than live's. */
    width: 99%;
    /* Live's `.wp_syntax` sets base text color to #110000 (verified via DOM
       inheritance probe). Untagged tokens (variables, identifiers Rouge
       didn't classify) inherit this. Without it, local renders them at
       #444 (gray) vs live's near-black — visible diff on every code line. */
    color: #110000;
}
div.entry-content .language-python .highlight,
div.entry-content .language-bash .highlight {
    background-color: #eee;
    /* Per-line zebra striping — live's WP-Syntax does this on `td.code`
       via a tiled linear-gradient with hard 50% stops. The tile is 1px
       wide × 32px tall (= 2 × line-height of 16px): top 16px transparent
       (shows the #eee base), bottom 16px gets a 90%-white overlay (≈ #f0
       on #eee). Result: alternating #eee / ~#f0 horizontal bands the
       full width of the code area, with no per-line HTML markup. */
    background-image: linear-gradient(rgba(0, 0, 0, 0) 50%, rgba(255, 255, 255, 0.9) 50%);
    background-size: 1px 32px;
    background-repeat: repeat;
}
div.entry-content .language-python .highlight pre,
div.entry-content .language-python pre.highlight,
div.entry-content .language-bash .highlight pre,
div.entry-content .language-bash pre.highlight {
    /* Live's wp_syntax pre sets these with !important. Without it, the
       fritzbox `body:has(#post-1833) pre { ... }` rule (specificity 1 ID
       via :has) on listing pages overrides our class-only selector and
       bleeds borders/padding onto wp-syntax-boxed code blocks. */
    margin: 0 !important;
    padding: 0 4px !important;
    border: none !important;
}

/* Python WP-Syntax token colors: live's GeSHi emits per-token inline `color:`
   styles that Rouge doesn't match by default. Scoped to .language-python so
   only fenced ```python blocks (utf-8, reading-cookies, firefox3) get these
   overrides; other code blocks keep the default GitHub-style Rouge palette.
   Observed live colors:
     comment:  #808080 italic   (Rouge default .c: #998 italic)
     keyword:  #ff7700 bold     (Rouge default .k: bold, no color)
     string:   #483d8b          (Rouge default .s: #d14)
     number:   #483d8b          (Rouge default .m: #099)
     builtin:  #008000          (Rouge default .nb: #0086B3)
     name:     no override
*/
div.entry-content .language-python .highlight .c,
div.entry-content .language-python .highlight .c1,
div.entry-content .language-python .highlight .cm {
    color: #808080;
    font-style: italic;
}
div.entry-content .language-python .highlight .k,
div.entry-content .language-python .highlight .kn,
div.entry-content .language-python .highlight .kc,
div.entry-content .language-python .highlight .kd,
div.entry-content .language-python .highlight .kp,
div.entry-content .language-python .highlight .kr,
div.entry-content .language-python .highlight .ow {
    color: #ff7700;
    font-weight: bold;
}
div.entry-content .language-python .highlight .s,
div.entry-content .language-python .highlight .s1,
div.entry-content .language-python .highlight .s2,
div.entry-content .language-python .highlight .sa,
div.entry-content .language-python .highlight .sh {
    color: #483d8b;
}
/* Escape sequences (☺, \t, \n) are dark blue bold on live */
div.entry-content .language-python .highlight .se {
    color: #000099;
    font-weight: bold;
}
/* Numbers are orange-red on live, not dark slate blue */
div.entry-content .language-python .highlight .m,
div.entry-content .language-python .highlight .mi,
div.entry-content .language-python .highlight .mf {
    color: #ff4500;
}
div.entry-content .language-python .highlight .nb,
div.entry-content .language-python .highlight .bp {
    color: #008000;
}
/* Rouge's lexer tags literal nbsp characters in source as `.err` (token
   error). The default Rouge theme then paints `.err` with a pink #e3d2d2
   background and #a61717 dark-red text — a salmon box visible at the left
   edge of any line that has a leading nbsp. Live's GeSHi rendered them as
   plain whitespace, so reset to transparent + inherited color. */
div.entry-content .language-python .highlight .err,
div.entry-content .language-bash .highlight .err {
    background: transparent;
    color: inherit;
}
/* `.n` (generic Name) - live's GeSHi explicitly marked SOME identifiers
   (constants like `REG_EXPAND_SZ`, `HKEY_CURRENT_USER`, parameters like
   `name`, `path`) with `color: #000` while leaving plain variables
   (`con`, `filename`) UNWRAPPED — meaning those inherit the `.wp_syntax`
   color `#110000`. Rouge classes both as `.n`, so we have to pick one.
   Variables vastly outnumber the explicit-#000 tokens, so `inherit` wins
   on the majority and reduces anti-aliasing drift along every identifier
   character (the #000-vs-#110000 17-channel red-shift was producing
   visible sub-pixel diffs at every glyph edge). */
div.entry-content .language-python .highlight .n {
    color: inherit;
}
div.entry-content .language-python .highlight .nn {
    color: #dc143c;
}
/* Live's GeSHi colored module names crimson when they appear directly
   after an import keyword (`from cStringIO`, `import StringIO`). Rouge
   tags these as `.kn + .n` so the selector works generically.

   The companion selector `.n:has(+ .p + .nc)` for `module.ClassName`
   was REMOVED — Rouge classifies any capitalized identifier as `.nc`,
   so `obj.MethodName()` (e.g. `key.Close()`) matched too and painted
   the receiver crimson when live had it plain. The plugin now
   pre-styles the few real module→Class chains
   (`ConfigParser.ConfigParser`, `cookielib.MozillaCookieJar`, etc.)
   explicitly via inline style — see Pattern 2 in
   python_token_overrides.rb. */
div.entry-content .language-python .highlight .kn + .n {
    color: #dc143c;
}
/* Function names and class references default to plain black in live's
   GeSHi (`connect`/`cursor`/`execute`/`Close`/`OpenKey`). The Rouge
   classifications `.nf`/`.nc` cover both — tested coloring `.nc` crimson
   (matches `ConfigParser`) but it regressed overall because most `.nc`
   tokens in this corpus are method names that live had as black. */
div.entry-content .language-python .highlight .nf,
div.entry-content .language-python .highlight .nc {
    color: #000;
    font-weight: normal;
}
/* Live's GeSHi colors the = operator and , p punctuation in green/dim;
   also commas, parens, and dots are colored. Map to Rouge classes. */
div.entry-content .language-python .highlight .o {
    color: #66cc66;
    font-weight: normal;
}
/* Punctuation: live's GeSHi colors commas green (#66cc66) but parens/dots
   black. Rouge lumps them all in .p. Tested both: black is closer overall
   (parens occur more than commas in typical code). */
div.entry-content .language-python .highlight .p {
    color: black;
}

/* Bash WP-Syntax token colors (live's GeSHi observed on power-scripts +
   fastcomplete posts):
     comment:   #666666 italic
     builtin (echo):  #7a0874 bold
     variable (PATH): #007800
     string ("$1"):   #ff0000
     keyword (case, in, esac, ;;): #000 bold (default ok)
     operator (>, /):  #000 bold (default ok) */
div.entry-content .language-bash .highlight .c,
div.entry-content .language-bash .highlight .c1,
div.entry-content .language-bash .highlight .cm {
    color: #666666;
    font-style: italic;
}
div.entry-content .language-bash .highlight .nb {
    color: #7a0874;
    font-weight: bold;
}
div.entry-content .language-bash .highlight .nv {
    color: #007800;
}
div.entry-content .language-bash .highlight .s,
div.entry-content .language-bash .highlight .s1,
div.entry-content .language-bash .highlight .s2 {
    color: #ff0000;
}
/* Backtick string delimiters (`...`) in bash — live colored them bold
   black (the backtick itself), not the red of regular strings. */
div.entry-content .language-bash .highlight .sb {
    color: #000;
    font-weight: bold;
}
/* Option flags like --rebuild rendered in dark purple by GeSHi */
div.entry-content .language-bash .highlight .nt {
    color: #660033;
}

/* day-3 post-pre list: live's WP wpautop emits the post-<pre> list inside a
   <ul><ul> double-open (no <li> between), which visually indents that list
   one extra <ul> level. Kramdown can't reproduce invalid HTML, so we add
   the equivalent visual indent via this class set in the post via IAL. */
ul.day3-postpre-list {
    padding-left: 80px;
}

/* fritzbox post (1833): live's WP page has an inline <style> block setting
   borders/padding/centered h2 on its pre/h2/li elements. Replicated here
   without raw HTML.

   IMPORTANT: live's inline <style> selectors are UNSCOPED (just `pre`, `h2`,
   `li`) — so the rules apply to the WHOLE page wherever the post renders.
   We need the same effect both on the post page (body.postid-1833) AND in
   listing pages where the post DIV is `#post-1833`. The `:is(...)` lets a
   single rule cover both contexts. */
/* Live's <style> block applies UNSCOPED. To match, target ALL pre/h2/li on
   any page that contains the fritzbox post — either via body class
   (post page) or via :has() (listing pages containing the post DIV). */
body.postid-1833 pre,
body:has(#post-1833) pre {
    display: block;
    border: 1px solid black;
    padding: 4px;
    margin: 4px;
}
/* Rouge BLOCK-LEVEL wrappers (`.highlighter-rouge` containing `.highlight`,
   i.e. a fenced code block — NOT inline `<code class="...rouge">`) on
   fritzbox-style pages: live had plain <pre> (no wrapper) so its
   border+padding+margin contribute directly to layout. Local's rouge
   wrapper with overflow:auto CONTAINS the pre's margin — adding 8px
   extra to listing height (4 above + 4 below).

   Shift styling from inner pre to rouge wrapper; zero pre's margin to
   prevent double-counting. Use `:has(> .highlight)` to scope to block
   rouge only (inline `<code class="...rouge">` doesn't have a .highlight
   child). Exclude language-bash/python which have their own wp-syntax
   styling. */
body:has(#post-1833) .highlighter-rouge:has(> .highlight):not(.language-bash):not(.language-python) {
    border: 1px solid black;
    padding: 4px;
    margin: 4px;
}
body:has(#post-1833) .highlighter-rouge:has(> .highlight):not(.language-bash):not(.language-python) pre {
    border: none;
    padding: 0;
    margin: 0;
}
body.postid-1833 h2,
body:has(#post-1833) h2 {
    text-align: center;
    padding-bottom: 1em;
}
body.postid-1833 li,
body:has(#post-1833) li {
    padding-bottom: 0.5em;
}
body.postid-1833 div.entry-content li p,
body:has(#post-1833) div.entry-content li p {
    margin-top: 0;
}

/* Other code blocks render as plain, undecorated <pre> (no background, no
   border) in courier — verified element-by-element against the live oracle. */
.highlighter-rouge {
    color: #444;
    background-color: transparent;
    border: none;
    margin: 0 0 1.5em 0;
    overflow: auto;
}

.highlight {
    margin: 0;
    overflow-x: auto;
}

.highlight pre,
.highlighter-rouge pre.highlight {
    margin: 0;
    padding: 0;
}

.highlight code {
    background: transparent;
    border: none;
    padding: 0;
}

/* Rouge syntax highlighting tokens */
.highlight .c { color: #998; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { font-weight: bold } /* Keyword */
.highlight .o { font-weight: bold } /* Operator */
.highlight .cm { color: #998; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999; font-weight: bold } /* Comment.Preproc */
.highlight .c1 { color: #998; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000; background-color: #fdd } /* Generic.Deleted */
.highlight .gd .x { color: #000; background-color: #faa } /* Generic.Deleted.Specific */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #a00 } /* Generic.Error */
.highlight .gh { color: #999 } /* Generic.Heading */
.highlight .gi { color: #000; background-color: #dfd } /* Generic.Inserted */
.highlight .gi .x { color: #000; background-color: #afa } /* Generic.Inserted.Specific */
.highlight .go { color: #888 } /* Generic.Output */
.highlight .gp { color: #555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #aaa } /* Generic.Subheading */
.highlight .gt { color: #a00 } /* Generic.Traceback */
.highlight .kc { font-weight: bold } /* Keyword.Constant */
.highlight .kd { font-weight: bold } /* Keyword.Declaration */
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #458; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #099 } /* Literal.Number */
.highlight .s { color: #d14 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #458; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #900; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #900; font-weight: bold } /* Name.Function */
.highlight .nn { color: #555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbb } /* Text.Whitespace */
.highlight .mf { color: #099 } /* Literal.Number.Float */
.highlight .mh { color: #099 } /* Literal.Number.Hex */
.highlight .mi { color: #099 } /* Literal.Number.Integer */
.highlight .mo { color: #099 } /* Literal.Number.Oct */
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
.highlight .sc { color: #d14 } /* Literal.String.Char */
.highlight .sd { color: #d14 } /* Literal.String.Doc */
.highlight .s2 { color: #d14 } /* Literal.String.Double */
.highlight .se { color: #d14 } /* Literal.String.Escape */
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
.highlight .si { color: #d14 } /* Literal.String.Interpol */
.highlight .sx { color: #d14 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d14 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #099 } /* Literal.Number.Integer.Long */
/* NOTE: GeSHi palette override lives at the END of
   _includes/syntax-highlighting.css (the last-loaded copy) so it wins. */


/* Image captions - Barthelme original */
div.entry-content .wp-caption-text {
    font-style: italic;
    margin: 0.2em auto 1em auto;
    text-align: center;
}

/* Sidebar form controls (search submit, categories select) sit on their own
   line; the container's 28px line-height strut leaves ~5px leading above/below
   each control that live does not show (~20px over the sidebar). Collapse the
   container line-height so the control's text-less line has no strut leading,
   and restore 28px on the heading/label text lines. */
#search form,
#categories-3 {
    line-height: 0;
}
#categories-3 h3,
#categories-3 label {
    line-height: 28px;
}

/* Images */
body img {
    border: none;
}

div.entry-content img {
    overflow: hidden;
    max-width: 99%;
}

/* Live's behavior varies by image-paragraph context:
   - `<p align="center">` (deprecated HTML attr): no descent. va: bottom.
   - `<p style="text-align: center">` NOT in blockquote (epiphany screenshot):
     no descent. va: bottom.
   - `<p style="text-align: center">` IN blockquote (day-4 two-image display):
     descent present. va: baseline (override).
   - Layout-table <td> images (eagle-for-pcb): va: bottom.
   - Image-only paragraphs `<p><img></p>` or `<p><a><img></a></p>`: no descent
     (google-pw, etc). Live's XHTML Transitional doctype triggers "almost
     standards" mode which suppresses the line-box strut; we render under
     HTML5 doctype (full standards) so the strut adds ~7px descent unless
     va is set explicitly.
   Scope these cases rather than the broad `div.entry-content img`. */
div.entry-content p[align="center"] img,
div.entry-content p[style*="text-align: center"] img,
div.entry-content .wp-caption img,
div.entry-content p > img:only-child,
div.entry-content p > a:only-child > img:only-child,
div.entry-content p > object:only-child,
div.entry-content p > object:only-child > embed {
    vertical-align: bottom;
}
/* Layout-table images (eagle-for-pcb's two-col include) AND Shashin gallery
   thumbnails — both need va: bottom (matches live). */
div.entry-content table td img {
    vertical-align: bottom;
}
/* Restore baseline for images inside blockquote-paragraph (higher specificity
   than the centered-p rule above because that uses an attribute selector). */
div.entry-content blockquote p[style*="text-align: center"] img {
    vertical-align: baseline;
}

/* In a "loose" list (an item contains a block, e.g. an explanation paragraph or
   code), Kramdown wraps EVERY item's lead line in a <p>; live keeps that lead
   line as bare text (no <p>, no margin) and only wraps trailing block content.
   Zero the first <p>'s margin in each list item so the lead line sits like
   live's bare text (the gap to following blocks comes from their own margins). */
div.entry-content li > p:first-child {
    margin: 0;
}

/* List styles - Barthelme square bullets */
div.entry-content ul li,
div.entry-content ul.content-column li ul li,
div.entry-content ul.xoxo li ul li {
    list-style: square;
}

div.entry-content ul li ul li,
div.entry-content ul.content-column li ul li ul li,
div.entry-content ul.xoxo li ul li ul li {
    list-style: circle;
}

div.entry-content .alignleft,
img.alignleft {
    float: left;
    margin: 0.5em 1em 0.5em 0;
}

div.entry-content .alignright,
img.alignright {
    float: right;
    margin: 0.5em 0 0.5em 1em;
}

div.entry-content .center,
div.entry-content .aligncenter,
img.aligncenter {
    display: block;
    margin: 0.5em auto;
    text-align: center;
}

/* Navigation */
body.single div#content div.navigation {
    margin: 3em 0;
}

body div.navigation {
    clear: both;
    font-weight: 700;
    text-align: center;
    text-transform: uppercase;
    width: 100%;
}

body div.navigation div {
    width: 45%;
}

body div.navigation div.nav-next {
    float: right;
    text-align: left;
}

body div.navigation div.nav-previous {
    float: left;
    text-align: right;
}

/* Footer */
body div#footer {
    clear: both;
    color: #888;
    font-size: 0.9em;
    padding: 0 0 1.5em 3%;
    width: 90%;
}

div#footer a,
div#footer a:link,
div#footer a:visited {
    color: #888;
    text-decoration: underline;
}

div#footer a:hover {
    color: #2f4e6f;
    text-decoration: none;
}

div#footer span.meta-sep {
    margin: 0 0.5em;
}

/* Accessibility */
body div.access {
    display: none;
}

/* Home Page Specific - duplicate block removed; canonical block above applies */

/* Form Elements */
input#s,
input#searchsubmit {
    cursor: pointer;
}

/* Comment form - Barthelme formcontainer rules */
div.formcontainer form#commentform {
    width: 99%;
}

div.formcontainer div.form-input input,
div.formcontainer div.form-textarea textarea#comment {
    /* Setting an explicit font-family makes the browser drop the special form-
       control font metrics and inherit the normal cascade, so 0.9em resolves
       against the 16px body (=14.4px) exactly like live — without this the
       control keeps its ~13px UA default and fields render ~24px too short. */
    font-family: georgia, times, serif;
    padding: 0.3em;
    width: 50%;
    border: 1px inset #888;
    color: #222;
    margin: 0.5em 0;
    font-size: 0.9em;
}

div.formcontainer div.form-label {
    width: 6em;
    display: inline;
    float: left;
    text-align: right;
    padding: 0.7em 0.5em 0 0;
    font-weight: bold;
    color: #222;
}

div.formcontainer div.form-submit {
    margin: 0 0 0 6.7em;
}

div.formcontainer div.form-textarea textarea#comment {
    overflow: auto;
    /* The explicit georgia font-family above (needed so 0.9em → live's 14.4px
       field height) shifts the inline-block baseline; with overflow:auto the
       textarea is aligned by its bottom-margin-edge, leaving a ~7px line-box
       descent gap below it. That made .form-textarea 168px vs live's 161px,
       pushing the reCAPTCHA/submit/nav/footer 7px low. top-align removes the
       baseline-dependent gap without changing the font (heights stay correct). */
    vertical-align: top;
}

div.formcontainer form#commentform span.req-field {
    color: red;
}

/* Clean up */
.clearer {
    clear: both;
}

/* Comments - Barthelme original styles */
div.comments div#mustlogin,
div.comments div#loggedin,
div.comments div#comment-notes {
    font-style: italic;
    margin: 0 0 1em;
}

div.comments span.unapproved {
    color: #000;
    display: block;
    font-style: italic;
    font-variant: small-caps;
    margin: 1em auto 0;
    text-align: center;
}

div.comments h3 {
    font-size: 1.5em;
    margin: 2em 0 0.5em;
    font-weight: 400;
}

div.comments h3.comment-header {
    margin: 2em 0 1em;
    text-align: center;
}

div.comments h3.comment-header span.comment-count,
body h2.page-title span.archive-meta {
    color: #888;
    display: block;
    font-size: 0.6em;
    font-weight: 700;
    margin: 0 0 0.5em;
    word-spacing: 0.2em;
}

/* Live's WP/Barthelme sets the "{" / "}" meta-sep characters to weight 400
   while the inner content (the comment count digit, the archive-meta count)
   stays at weight 700 from the parent .comment-count rule above. The contrast
   makes the count digit visibly bolder than the curly braces -- without this
   rule the meta-sep inherits 700 and the whole "{ N }" renders uniformly bold. */
div.comments h3.comment-header span.comment-count span.meta-sep,
body h2.page-title span.archive-meta span.meta-sep,
body div.entry-date span.meta-sep {
    font-weight: 400;
}

div.comments ol.commentlist li {
    background: #f6f7f9;
    margin: 1em 3em;
    padding: 0.5em 1em;
}

div.comments ol.commentlist li div.comment-meta {
    color: #000;
    margin: 0 0 -0.3em;
    padding: 0.5em 0 0;
}

div.comments ol.commentlist li div.comment-meta span.comment-author,
div.comments ol.commentlist li div.comment-meta span.pingback-author {
    font-weight: 700;
}

div.comments ol.commentlist li.alt {
    background: #e7eaed;
}

div.comments ol.commentlist li span.vcard img.photo {
    border: 1px solid #999;
    float: right;
    margin: 0 0 1em 1em;
}

div.comments ol.commentlist li.bypostauthor {
    border: 1px solid #aaa;
}

/* OpenID-authenticated comment authors get a small icon next to the
   linked name (from live's wp-openid plugin). Specific comments mark this
   via `author_class: url openid_link url` in their data YAML. */
.openid_link {
    background-image: url('../images/openid.gif');
    background-position: 3px 50%;
    background-repeat: no-repeat;
    padding-left: 21px !important;
}

div.comments ol.commentlist li p,
div.formcontainer form#commentform div#comment-notes {
    margin: 0.5em 0;
}

/* Responsive Design */
/* Mobile-first responsive breakpoints */

/* Small tablets and large phones (768px and down) */
@media (max-width: 768px) {
    /* Reset fixed-width layouts */
    body div#wrapper {
        margin: 0;
    }
    
    body div#container {
        float: none;
        margin: 0;
        width: 100%;
    }
    
    body div#content {
        margin: 0;
        padding: 0 1em;
    }
    
    body.single div#container,
    body.page div#container {
        margin: 0;
    }
    
    body.single div#content,
    body.page div#content {
        margin: 0;
        padding: 0 1em;
    }
    
    /* Stack sidebar below content */
    body div.sidebar {
        float: none;
        width: 100%;
        margin-top: 2em;
        padding: 0 1em;
    }
    
    /* Responsive header */
    body div#header {
        margin: 1em 0;
        padding: 1em;
        text-align: center;
    }
    
    div#header h1#blog-title {
        font-size: 1.8em;
    }
    
    div#header div#blog-description {
        font-size: 1em;
    }
    
    /* Home page responsive layout */
    body.home div#content div.entry-meta,
    body.archive div#content div.entry-meta {
        float: none;
        width: 100%;
        text-align: left;
        margin-bottom: 1em;
    }
    
    body.home div#content div.post-container,
    body.archive div#content div.post-container {
        float: none;
        margin: 0;
        width: 100%;
    }
    
    body.home div#content div.post-content,
    body.archive div#content div.post-content {
        margin: 0;
    }
    
    /* Navigation responsive */
    body div.navigation div {
        width: 100%;
        margin-bottom: 1em;
    }
    
    body div.navigation div.nav-next,
    body div.navigation div.nav-previous {
        float: none;
        text-align: center;
    }
    
    /* Footer responsive */
    body div#footer {
        padding: 1em;
        width: auto;
        text-align: center;
    }
    
    /* Form elements responsive */
    input#s {
        width: 100%;
        max-width: 200px;
    }
}

/* Very small phones (480px and down) */
@media (max-width: 480px) {
    div#header h1#blog-title {
        font-size: 1.5em;
    }
    
    div#header div#blog-description {
        font-size: 0.9em;
    }
    
    body div#header {
        padding: 0.8em;
    }
    
    div#content,
    body.single div#content,
    body.page div#content {
        padding: 0 0.8em;
    }
    
    body div.sidebar {
        padding: 0 0.8em;
    }
    
    /* Footer breaks on separate lines */
    body div#footer span.meta-sep {
        display: none;
    }
    
    body div#footer span {
        display: block;
        margin-bottom: 0.5em;
    }
}

/* Print styles */
@media print {
    body div.sidebar,
    body div#footer,
    body div.navigation {
        display: none;
    }
    
    body div#wrapper,
    body div#container,
    body div#content {
        margin: 0;
        padding: 0;
        width: 100%;
        float: none;
    }
    
    body div#header {
        background: none;
        color: #000;
        margin: 0;
        padding: 1em 0;
    }
    
    div#header h1#blog-title,
    div#header h1#blog-title a,
    div#header div#blog-description {
        color: #000;
    }
}

/* High-DPI screens */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    /* Ensure images scale properly on retina displays */
    div.entry-content img {
        image-rendering: -webkit-optimize-contrast;
        image-rendering: crisp-edges;
    }
}

/* Syntax highlighting styles */
/* Rouge syntax highlighting styles */
/* Based on GitHub theme */

.highlight {
    /* Live renders code as a plain, undecorated <pre> (transparent bg, no border,
       no padding) in courier — not a boxed widget. Match that. */
    background: transparent;
    border: none;
    margin: 1em 0;
    overflow: visible;
    padding: 0;
}

.highlight pre {
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
}

/* Code blocks nested inside a blockquote (Markdown `>     code`): live renders
   these as a tight blockquote>pre (the <pre> margin collapses out, blockquote
   hugs the code). Rouge instead nests div.highlighter-rouge > div.highlight,
   trapping ~29px of .highlight margin INSIDE the blockquote. Zero the wrapper
   margins so the blockquote hugs the code exactly like live. */
.entry-content blockquote .highlighter-rouge,
.entry-content blockquote .highlight {
    margin: 0;
}

.highlight code {
    background: transparent;
    border: none;
    padding: 0;
    font-family: "Monaco", "Menlo", "Consolas", "Courier New", monospace;
    font-size: 0.9em;
    line-height: 1.4;
}

/* Syntax highlighting colors */
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #000000; font-weight: bold } /* Keyword */
.highlight .o { color: #000000; font-weight: bold } /* Operator */
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #999999 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #aaaaaa } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #000000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #000000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #d01040 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
.highlight .nl { color: #990000; font-weight: bold } /* Name.Label */
.highlight .nn { color: #555555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sb { color: #d01040 } /* Literal.String.Backtick */
.highlight .sc { color: #d01040 } /* Literal.String.Char */
.highlight .sd { color: #d01040 } /* Literal.String.Doc */
.highlight .s2 { color: #d01040 } /* Literal.String.Double */
.highlight .se { color: #d01040 } /* Literal.String.Escape */
.highlight .sh { color: #d01040 } /* Literal.String.Heredoc */
.highlight .si { color: #d01040 } /* Literal.String.Interpol */
.highlight .sx { color: #d01040 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d01040 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */

/* Additional code block styling */
pre, code {
    font-family: "Monaco", "Menlo", "Consolas", "Courier New", monospace;
}

p code {
    background: #f1f1f1;
    border: 1px solid #e1e1e1;
    border-radius: 3px;
    padding: 2px 4px;
    font-size: 0.9em;
}

/* WordPress migrated code blocks */
blockquote pre code,
.entry-content pre code {
    background: transparent;
    border: none;
    padding: 0;
}

/* GeSHi palette override — match live wp-syntax (GeSHi) Python token colors.
   Mapped from live blog.mithis.net inline span colors. Scoped to
   `.language-python` so bash/other languages can use their own per-language
   overrides in assets/css/main.css. */
.language-python .highlight .c, .language-python .highlight .ch,
.language-python .highlight .cd, .language-python .highlight .cm,
.language-python .highlight .c1, .language-python .highlight .cs,
.language-python .highlight .cpf { color: #808080; font-style: italic } /* comments */
.language-python .highlight .k, .language-python .highlight .kc,
.language-python .highlight .kd, .language-python .highlight .kn,
.language-python .highlight .kp, .language-python .highlight .kr,
.language-python .highlight .kt { color: #ff7700; font-weight: bold } /* keywords */
.language-python .highlight .nb, .language-python .highlight .bp,
.language-python .highlight .ne { color: #008000 } /* builtins / exceptions */
.language-python .highlight .n, .language-python .highlight .na,
.language-python .highlight .nl, .language-python .highlight .nn,
.language-python .highlight .nx, .language-python .highlight .py,
.language-python .highlight .nv { color: #dc143c } /* names */
.language-python .highlight .s, .language-python .highlight .s1,
.language-python .highlight .s2, .language-python .highlight .sa,
.language-python .highlight .sb, .language-python .highlight .sc,
.language-python .highlight .dl, .language-python .highlight .sd,
.language-python .highlight .sh, .language-python .highlight .si,
.language-python .highlight .sx, .language-python .highlight .sr,
.language-python .highlight .ss { color: #483d8b } /* strings */
.language-python .highlight .se { color: #000099; font-weight: bold } /* string escape */
.language-python .highlight .o, .language-python .highlight .ow,
.language-python .highlight .p { color: #66cc66 } /* operators / punctuation */

/* Header cursor for interactive elements */
body div#header,
body div label,
input#s,
input#submit {
    cursor: pointer;
}

/* ---- Live blog.mithis.net customizations (faithful to served wp-content/themes/barthelme/style.css,
        which my recreation had omitted) ---- */

/* Sidebar Shashin "Me" gallery (#shashinGroup_2_2): live now pins this album to a
   single photo (order=source, limit=1), so the widget markup itself has exactly one
   row — no row-hiding hack is needed anymore (removed 2026-05-24). */

/* Twitter (aktt) sidebar widget: tweets render at 8pt with tight spacing. */
div.sidebar div.aktt_tweets { font-size: 8pt; }
div.sidebar div.aktt_tweets ul li { padding-top: 0.5em; }
div.sidebar div.aktt_tweets a.aktt_tweet_time { width: 100%; text-align: right; display: block; }
div.sidebar p.aktt_more_updates { font-size: 8pt; text-align: center; }

/* Embedded-content box (e.g. cached tweet/video). */
div.embedded_content {
    margin: 1em;
    border-radius: 15px;
    background: #000000;
    float: right;
    padding: 10px;
}

/* Blockquote margins per live. */
div.entry-content blockquote {
    margin-left: 4px;
    margin-right: 0;
}

