.accessibility-settings-toggle { position:fixed; left:12px; bottom:calc(14px + env(safe-area-inset-bottom,0px)); z-index:25; width:50px; height:50px; padding:0; border:2px solid #fff; border-radius:50%; background:#f00; color:#fff; box-shadow:0 1px 6px #0004; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.accessibility-settings-toggle[hidden] { display:none; }
.accessibility-settings-toggle .asset-icon { display:block; color:inherit; }
.accessibility-settings-toggle circle { stroke:currentColor; stroke-width:2.6; }
.accessibility-settings-toggle path { fill:currentColor; }
.article-settings { position:fixed; inset:auto 0 0; width:100%; max-width:640px; max-height:min(760px,calc(100dvh - 32px)); padding:0; margin:0 auto; border:0; border-radius:12px 12px 0 0; background:var(--white); color:var(--text-black); font:16px/1.25 "Source Sans 3",Arial,sans-serif; }
.article-settings[open] { display:flex; flex-direction:column; }
.article-settings::backdrop { background:#0008; }
.settings-header { display:flex; align-items:center; justify-content:space-between; padding:13px 14px; border-bottom:1px solid var(--border-color); }
.settings-header h2 { margin:0; font-size:18px; }
.settings-header button { background:transparent; border:0; color:var(--muted); width:40px; height:40px; font-size:28px; cursor:pointer; }
.settings-content { padding:20px 24px 24px; overflow:auto; overscroll-behavior:contain; }
.settings-content fieldset { min-width:0; padding:0; border:0; margin:0 0 24px; }
.settings-content fieldset:last-child { margin:0; }
.settings-content legend,.settings-spacing>strong,.settings-toggle strong { display:block; margin-bottom:10px; font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); }
.settings-options { display:flex; gap:12px; }
.settings-options button,.font-controls button { border:1px solid var(--border-color); border-radius:8px; background:var(--white); color:var(--text-black); font:inherit; cursor:pointer; }
.settings-options button { flex:1; min-width:0; padding:10px; }
.settings-options button[data-theme] { min-height:90px; }
.settings-options button span:not(.settings-theme-icon) { display:block; margin-top:8px; font-size:14px; }
.settings-theme-icon { display:block; height:24px; font-size:29px; line-height:24px; }
.settings-moon { font-size:30px; }
.settings-contrast { width:22px; height:22px; margin:auto; border:2px solid currentColor; border-radius:50%; background:linear-gradient(90deg,transparent 50%,currentColor 50%); }
.settings-options button[aria-pressed="true"] { border-color:#0071e3; background:#eef6ff; color:#0066c7; box-shadow:0 2px 5px #0002; }
.font-controls { display:flex; align-items:center; justify-content:space-between; padding:8px; border:1px solid var(--border-color); border-radius:12px; background:var(--settings-panel,#f3f3f3); }
.font-controls output { min-width:48px; text-align:center; text-transform:uppercase; color:var(--muted); font-size:13px; font-weight:600; }
.font-controls button { width:48px; height:48px; font-weight:700; }
.font-controls button:disabled { opacity:.5; cursor:default; }
.settings-accessibility { overflow:hidden; border:1px solid var(--border-color); border-radius:12px; background:var(--settings-panel,#f3f3f3); }
.settings-toggle { display:flex; align-items:center; justify-content:space-between; padding:15px 16px; gap:20px; border-bottom:1px solid var(--border-color); cursor:pointer; }
.settings-toggle strong { margin-bottom:6px; }
.settings-toggle small { display:block; color:var(--muted); font-size:14px; }
.settings-toggle input { appearance:none; flex-shrink:0; width:54px; height:30px; margin:0; border:0; border-radius:15px; background:#c6c6c6; cursor:pointer; }
.settings-toggle input::before { content:""; display:block; width:24px; height:24px; margin:3px; border-radius:50%; background:#fff; box-shadow:0 1px 3px #0003; }
.settings-toggle input:checked { background:#0071e3; }
.settings-toggle input:checked::before { transform:translateX(24px); }
.settings-toggle:last-child { border-bottom:0; }
.settings-spacing { padding:15px 16px; }
.settings-spacing .settings-options { gap:0; padding:6px; border:1px solid var(--border-color); border-radius:12px; }
.settings-spacing .settings-options button { border-color:transparent; background:transparent; font-weight:600; }
.settings-spacing .settings-options button[aria-pressed="true"] { border-color:#0071e3; background:#eef6ff; }
.article-settings button:focus-visible,.settings-toggle input:focus-visible,.accessibility-settings-toggle:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
body.dark-mode .article-settings { --white:#1c1c1c; --text-black:#eee; --border-color:#383838; --muted:#a5a5a5; --settings-panel:#222; background:#181818; }
body.dark-mode .settings-header { background:#1f1f1f; }
body.dark-mode .settings-options button[data-theme],body.dark-mode .font-controls button { background:#303030; color:#eee; }
body.dark-mode .settings-options button[aria-pressed="true"],body.dark-mode .settings-spacing .settings-options button[aria-pressed="true"] { background:#0754a4; border-color:#0754a4; color:#fff; }
body.dark-mode .settings-toggle input { background:#555; }
body.dark-mode .settings-toggle input:checked { background:#0754a4; }
body.high-contrast .article-settings { --settings-panel:#000; border:1px solid #fff; border-radius:0; }
body.high-contrast .settings-header h2 { color:#ff0; text-decoration:underline; }
body.high-contrast .settings-header button { border:1px solid #fff; border-radius:50%; color:#fff; }
body.high-contrast .settings-content legend,body.high-contrast .settings-spacing>strong,body.high-contrast .settings-toggle strong { color:#fff; font-weight:700; }
body.high-contrast .settings-options button,body.high-contrast .font-controls,body.high-contrast .font-controls button,body.high-contrast .settings-accessibility,body.high-contrast .settings-spacing .settings-options { border:1px solid #fff; border-radius:0; }
body.high-contrast .settings-options button,body.high-contrast .font-controls button { background:#000; color:#fff; }
body.high-contrast .settings-options button[aria-pressed="true"],body.high-contrast .settings-spacing .settings-options button[aria-pressed="true"] { background:#ff0; border-color:#ff0; color:#000; box-shadow:none; }
body.high-contrast .settings-spacing .settings-options { gap:6px; }
body.high-contrast .settings-spacing .settings-options button { border-color:#fff; }
body.high-contrast .settings-toggle input { border:1px solid #fff; border-radius:0; background:#000; }
body.high-contrast .settings-toggle input::before { border-radius:0; margin:2px; }
body.high-contrast .settings-toggle input:checked { background:#ff0; }
body.high-contrast .settings-toggle input:checked::before { background:#000; }
body.high-contrast .font-controls output,body.high-contrast .settings-toggle small { color:#fff; }
@media(forced-colors:active) { .settings-toggle input { appearance:auto; } }
body.light-mode { color-scheme:light; --white:#fff; --text-black:#000; --body-text:#242424; --border-color:#ccc; --muted:#6e6e6e; --red:red; }
body.light-mode h1.post-title { color:#000; }
body.light-mode .site-masthead { background:#f00; }
body.light-mode .site-search { background:#fa4949; }
body.light-mode .post-related-wrapper { background:#f7f7f7; }
body.light-mode .share-links a { color:#0c0c0c; }
body.readable-font,body.readable-font .article-settings { font-family:Arial,sans-serif; }
body.spacing-comfortable .post-content p,body.spacing-comfortable .post-content li { line-height:1.75; }
body.spacing-wide .post-content p,body.spacing-wide .post-content li { line-height:2; }
body.highlight-links .post-content a,body.highlight-links .feed-section a { text-decoration:underline; text-underline-offset:3px; }
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
@media(max-width:768px) { .accessibility-settings-toggle { left:10px; bottom:calc(12px + env(safe-area-inset-bottom,0px)); width:48px; height:48px; } }
@media(max-width:768px) { body.light-mode .site-search { background:none; } }
body.high-contrast .accessibility-settings-toggle { background:#ff0; color:#000; border-color:#ff0; }

