/* PinePress Studio 1.1 — warm paper, quiet chrome, room to read. */
:root {
  --desktop:#dce4d1; --paper:#f8f6ee; --surface:#fffdf8;
  --ink:#283229; --muted:#5d6857; --line:#daddd0; --border:#68715f;
  --accent:#ed7544; --accent-ink:#171f19; --orange:#f4c9ad;
  --green:#dce7c9; --blue:#d5e2eb; --purple:#e2dcee; --yellow:#f4e2a5; --pink:#efd8cf;
  --shadow:3px 4px 0 #37432d16; --focus:#7852ad;
  --chrome:#eef0e5; --dot:#6474562e; --space:clamp(24px,4.3vw,64px);
}
html[data-color=dark] {
  --desktop:#1d2822; --paper:#28332c; --surface:#303c32;
  --ink:#f4f1e5; --muted:#d0dac8; --line:#4a584b; --border:#849580;
  --orange:#614c3d; --green:#43563a; --blue:#3c505a; --purple:#4e465e;
  --yellow:#615a35; --pink:#594940; --shadow:3px 4px 0 #0c150e55;
  --chrome:#344033; --dot:#a8ba9019; --focus:#d6b7ff;
}
body {font-size:16px;line-height:1.75;background-image:radial-gradient(var(--dot) .8px,transparent .8px);background-size:8px 8px;overflow-wrap:break-word}
body.has-desktop-wallpaper {background-image:url('wallpaper.svg'),radial-gradient(var(--dot) .8px,transparent .8px);background-size:cover,8px 8px;background-attachment:fixed}
a {text-underline-offset:.25em}
a:hover {color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible {outline:3px solid var(--focus);outline-offset:4px}
button:disabled {opacity:.6;cursor:wait}
#main-content:focus {outline:none}
.pp-icon {stroke-width:1.6}
.eyebrow {font-size:11px;letter-spacing:.12em;color:var(--muted)}
h1,h2,h3 {text-wrap:balance}
p {text-wrap:pretty}
.topbar {min-height:64px;padding:10px 24px;gap:28px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 1px 0 #fff4}
.topbar-home {gap:9px;width:auto;min-height:40px;flex-shrink:0;font-size:16px;font-weight:800;white-space:nowrap}
.topbar-home img {width:25px;height:30px;object-fit:contain}
.topbar-home span {max-width:160px;overflow:hidden;text-overflow:ellipsis}
.nav-list {gap:24px}
.nav-list li {font-size:13px;font-weight:550}
.nav-list a {padding:8px 0}
.nav-list a:hover {text-decoration:underline}
.nav-list .current-menu-item>a {color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:3px}
.nav-list .sub-menu {border-radius:4px;box-shadow:4px 5px 0 #37432d16;padding:10px 16px}
.nav-list li.submenu-open>.sub-menu {display:block}
.topbar-actions {gap:12px}
.icon-button {min-width:40px;min-height:40px;border-radius:4px}
.icon-button:hover {background:var(--green)}
.search-trigger {gap:10px;min-height:38px;padding:6px 10px;border:1px solid var(--line);background:var(--surface);border-radius:4px;font-size:12px}
.search-trigger kbd {margin-left:14px}
kbd {min-width:19px;display:inline-block;text-align:center;padding:1px 5px;font-size:10px;border-radius:3px;border-color:var(--line);box-shadow:0 1px 0 var(--line);background:var(--paper)}
.sun-symbol {display:none;font-size:26px;line-height:1}
html[data-color=dark] .color-toggle>.pp-icon {display:none}
html[data-color=dark] .color-toggle>.sun-symbol {display:block}
.button,.pp-button {border:1px solid var(--border);border-radius:4px;padding:12px 22px;min-height:48px;font-size:14px;gap:12px;box-shadow:0 3px 0 var(--border);transition:transform .16s,box-shadow .16s,background-color .16s}
.button:hover,.pp-button:hover {transform:translateY(1px);box-shadow:0 2px 0 var(--border)}
.button:active,.pp-button:active {transform:translateY(3px);box-shadow:none}
.button-orange,.pp-button {color:var(--accent-ink);background:var(--accent);border-color:#495040;box-shadow:0 3px 0 #495040}
.button-orange:hover,.pp-button:hover {color:var(--accent-ink);box-shadow:0 2px 0 #495040}
.button-small {min-height:37px;padding:7px 14px;font-size:12px;box-shadow:0 2px 0 var(--border)}
.desktop-dock {top:94px;left:14px;width:78px;bottom:48px;gap:17px}
.dock-item {width:78px;min-height:72px;padding:7px 4px;gap:8px;font-size:11px;border-radius:6px;border:1px solid transparent;transition:background .15s,transform .15s}
.dock-item:hover {background:#f8f9ec52;transform:translateY(-2px)}
.dock-item[aria-current=page] {border-color:var(--line);background:var(--paper);box-shadow:2px 2px 0 #34432c0f}
.dock-icon {width:38px;height:38px;border:1px solid var(--border);border-radius:5px;box-shadow:inset 0 2px 0 #fff5,2px 3px 0 #37432d1c}
.dock-icon .pp-icon {width:24px;height:24px}
.site-window {margin:30px 38px 52px 114px;max-width:1440px;border:1px solid var(--border);border-radius:9px 9px 5px 5px;box-shadow:0 12px 32px #28342410,6px 7px 0 #4556390f;overflow:clip}
.window-chrome {height:40px;background:var(--chrome);border-color:var(--line);padding:0 14px;border-radius:8px 8px 0 0}
.window-dots {gap:7px}
.window-dots i {width:10px;height:10px;border-color:#6f775e88}
.window-path {font-size:11px;color:var(--muted)}
.window-chrome .icon-button {min-height:30px;min-width:30px}
.window-chrome .pp-icon {width:15px;height:15px}
.desktop-status {padding:9px 26px;font-size:10px;background:var(--desktop);border-top:1px solid var(--line)}
.desktop-status>span:first-child {display:flex;gap:8px;align-items:center}
.desktop-status i {width:6px;height:6px;background:#788f61;border-radius:50%}
.status-divider {margin:0 9px;color:var(--border)}
.section-wrap {padding:64px var(--space)}
.announcement {padding:11px 24px;min-height:42px;font-size:11px;border-bottom:1px solid var(--line);background:var(--surface);gap:10px}
.announcement a {margin-left:10px;color:var(--muted)}
.status-dot {flex-shrink:0;width:6px;height:6px;background:#768d58;box-shadow:0 0 0 3px #98af7222}
.portal-hero {min-height:510px;grid-template-columns:1fr 1fr;gap:44px;padding-top:45px;padding-bottom:55px;position:relative}
.hero-edition {display:flex;align-items:center;gap:9px;margin-bottom:32px;font-size:12px;letter-spacing:.07em;color:var(--muted)}
.edition-mark {font-size:21px;color:#768b5d;line-height:1}
.edition-tag {border:1px solid var(--line);padding:2px 6px;font-size:9px;letter-spacing:.03em;margin-left:2px;background:var(--surface)}
.portal-hero-copy>.eyebrow {font-size:10px;line-height:1.7;margin:0 0 16px;letter-spacing:.075em}
.portal-hero h1 {font-size:clamp(40px,4.5vw,66px);line-height:1.28;letter-spacing:-.055em;margin:0 0 23px;position:relative;z-index:2}
.hero-highlight {position:relative;z-index:0;display:inline-block}
.hero-highlight:after {content:'';height:.2em;position:absolute;left:0;right:0;bottom:.08em;background:var(--green);z-index:-1;transform:rotate(-1.2deg)}
.portal-hero .hero-description {font-size:15px;line-height:1.95;max-width:440px;margin-bottom:0;color:var(--muted)}
.portal-hero .hero-actions {margin:27px 0 19px;gap:22px;align-items:center}
.portal-hero .button {min-height:48px;font-size:14px;padding:12px 22px}
.hero-secondary {font-size:13px;text-decoration:none;border-bottom:1px solid var(--border);padding-block:7px}
.hero-secondary:hover {border-color:var(--accent)}
.hero-note {font-size:11px;line-height:1.8;color:var(--muted);display:flex;gap:8px;align-items:center;margin:0}
.hero-note>span {font-size:18px;color:#839369}
.portal-art {height:375px;max-width:480px;width:100%;align-self:center}
.desk-label {position:absolute;top:38px;left:3px;font-size:10px;letter-spacing:.1em;color:var(--muted);transform:rotate(-6deg)}
.desk-label>span {display:block;font-size:33px;text-align:center;line-height:1.4}
.portal-note {right:17px;top:-4px;padding:20px 28px 28px;background:var(--yellow);border:1px solid #9d906e;transform:rotate(7deg);box-shadow:2px 6px 9px #493f2b13;z-index:3;min-width:185px}
.portal-note:before {width:61px;height:21px;left:calc(50% - 30px);top:-12px;transform:rotate(-3deg);background:#ddd8b8a8;border-inline:1px dashed #cac4a4}
.portal-note .mono {font-size:10px;letter-spacing:.06em;color:var(--muted);margin:0 0 14px}
.portal-note strong {font-size:25px;letter-spacing:.03em;line-height:1.5}
.note-sketch {font-size:29px;right:12px;bottom:3px;line-height:1}
.explorer-window {top:144px;left:5px;right:16px;transform:rotate(-3deg);border-radius:5px;box-shadow:5px 7px 0 #37432d18;overflow:hidden}
.explorer-window .art-title {font-size:11px;padding:9px 12px;background:var(--blue);border-color:var(--border);letter-spacing:.02em}
.explorer-path {font-size:10px;padding:9px 13px;background:var(--paper)}
.explorer-folders {padding:28px 22px 24px;gap:22px;background:var(--surface)}
.explorer-folders a {font-size:11px;gap:12px;padding:5px 7px;transition:transform .16s;min-width:72px}
.explorer-folders a:hover {transform:translateY(-4px);color:inherit}
.folder-icon {width:62px;height:47px;border-radius:0 3px 3px 3px;box-shadow:2px 3px 0 #37432d22}
.folder-icon:before {width:24px;height:8px;top:-8px;border-radius:3px 3px 0 0}
.folder-icon .pp-icon {width:23px;height:23px}
.explorer-status {padding:7px 12px;font-size:9px;background:var(--paper)}
.portal-mascot {width:116px;right:-28px;bottom:-20px;transform:rotate(4deg);pointer-events:none;z-index:4}
.portal-art-caption {font-size:9px;letter-spacing:.04em;left:18px;bottom:-34px;color:var(--muted)}
.portal-art .orbit-one {left:120px;top:64px;font-size:32px;color:#8e9f70;transform:rotate(9deg)}
.portal-quicklinks {border-color:var(--line);background:var(--surface)}
.portal-quicklinks>a {padding:23px 21px;gap:13px;min-height:99px;border-right-color:var(--line);transition:background .18s}
.quick-icon {width:42px;height:42px;border:1px solid var(--border);border-radius:5px;background:var(--tone);box-shadow:2px 2px 0 #37432d15}
.quick-icon .pp-icon {width:22px;height:22px}
.portal-quicklinks strong {font-size:14px;font-weight:650;letter-spacing:.01em}
.portal-quicklinks small {font-size:11px;line-height:1.5;margin-top:6px;color:var(--muted)}
.quick-arrow {color:var(--muted);font-size:18px}
.portal-content {grid-template-columns:minmax(0,1fr) 250px;gap:36px;padding-top:53px;padding-bottom:60px}
.feed-heading {margin-bottom:24px;align-items:center}
.feed-heading .eyebrow {font-size:10px;letter-spacing:.12em;margin-bottom:12px}
.feed-heading h2 {font-size:29px;line-height:1.35;letter-spacing:-.045em}
.heading-dot {margin-left:2px;color:var(--accent);font-size:1.2em;line-height:0}
.view-toggles {display:flex;border-color:var(--line);border-radius:4px;overflow:hidden;flex-shrink:0}
.view-toggle {min-width:38px;min-height:36px;padding:8px}
.view-toggle .pp-icon {width:17px;height:17px}
.view-toggle+button {border-left:1px solid var(--line)}
.view-toggle[aria-pressed=true] {background:var(--green);box-shadow:inset 0 -2px 0 var(--border)}
.feed-filters {gap:6px;margin-bottom:13px;flex-wrap:wrap;border-color:var(--line)}
.feed-filters a {font-size:12px;padding:10px 12px;border-bottom-width:3px;white-space:nowrap}
.feed-filters a[aria-current=page] {color:var(--ink);border-color:var(--accent)}
.feed-filters a:hover {background:var(--surface)}
.feed-toolbar {display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 0 24px;color:var(--muted)}
.feed-count {font-size:11px}
.feed-sort {display:flex;gap:6px;align-items:center;font-size:11px}
.feed-sort label {position:absolute;clip-path:inset(50%);height:1px;width:1px;overflow:hidden}
.feed-sort select {padding:5px 24px 5px 7px;min-height:34px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:3px;font-size:11px}
.feed-sort button {min-width:32px;min-height:34px;border:1px solid var(--line);border-radius:3px;background:var(--surface)}
.post-grid {gap:26px;grid-template-columns:repeat(3,minmax(0,1fr))}
.portal-posts {gap:26px;grid-template-columns:repeat(2,minmax(0,1fr))}
.post-card {border:1px solid var(--line);border-radius:5px;overflow:hidden;box-shadow:0 2px 0 #34442e0a;display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s,border-color .18s}
.post-card:hover {transform:translateY(-4px);border-color:var(--border);box-shadow:4px 5px 0 #34442e17}
.post-card:focus-within {border-color:var(--border)}
.post-cover {border-color:var(--line);aspect-ratio:1.85;flex-shrink:0}
.post-cover img {transition:transform .35s ease}
.post-card:hover .post-cover img {transform:scale(1.025)}
.cover-badge {left:12px;top:12px;padding:4px 8px;font-size:10px;border-color:#747d64;background:#fffdf0eb;color:#37402f;border-radius:3px;box-shadow:1px 2px 0 #37432d15}
.post-card-body {padding:21px;display:flex;flex-direction:column;flex:1}
.post-card-top {font-size:11px;margin-bottom:12px;gap:12px}
.post-card-top>span {font-weight:600;color:var(--ink)}
.post-card-top>span>a:before {content:'';display:inline-block;width:5px;height:5px;background:var(--tone);border:1px solid var(--border);margin-right:6px;vertical-align:2px}
.post-card h3 {font-size:20px;line-height:1.55;margin:0 0 12px;letter-spacing:-.035em;text-wrap:pretty}
.post-card h3 a:hover {text-decoration:underline;text-decoration-thickness:1px}
.post-card p {font-size:13px;line-height:1.85;margin:0 0 21px;min-height:3.6em}
.post-card-meta {margin-top:auto;font-size:10px;padding-top:14px;border-top:1px solid var(--line);gap:8px;flex-wrap:wrap}
.post-card-meta>span {font-size:10px;white-space:nowrap}
.post-card-meta>span>span {display:inline;margin-left:4px}
.tiny-avatar {width:22px;height:22px;font-size:10px;border-color:var(--line);border-radius:3px}
.portal-posts.is-list {grid-template-columns:1fr}
.portal-posts.is-list .post-card {display:grid;grid-template-columns:180px minmax(0,1fr)}
.portal-posts.is-list .post-cover {height:100%;border-bottom:0;border-right:1px solid var(--line);aspect-ratio:auto;min-height:195px}
.portal-posts.is-list .post-card-body {padding:20px}
.portal-posts.is-list .post-card p {margin-bottom:15px}
.portal-sidebar {padding-top:2px}
.sidebar-box {border:1px solid var(--line);border-radius:5px;overflow:hidden;background:var(--surface);margin-bottom:26px}
.box-title {font:11px var(--mono);padding:12px 15px;background:var(--chrome);border-bottom:1px solid var(--line)}
.welcome-content {padding:26px 21px;text-align:left}
.welcome-content>img {width:40px;height:46px;margin-bottom:15px}
.welcome-content h3 {font-size:17px;margin:0 0 13px;line-height:1.6}
.welcome-content p {font-size:12px;line-height:1.95;margin:0 0 20px}
.welcome-content .button {font-size:11px;min-height:38px;padding:8px 10px;display:flex}
.site-stats {padding:18px 7px;border-top:1px solid var(--line)}
.site-stats>span {font-size:10px;flex:1}
.site-stats>span+span {border-left:1px solid var(--line)}
.site-stats b {font:550 22px var(--mono);margin-bottom:7px}
.sidebar-note {padding:25px 23px;background:var(--yellow);border-color:#bca97f;border-radius:2px;transform:rotate(-1.5deg);box-shadow:3px 4px 0 #37432d0c;overflow:visible;margin-block:30px}
.sidebar-note:before {content:'';position:absolute;top:-9px;left:calc(50% - 24px);width:48px;height:17px;background:#dedabdbb;transform:rotate(4deg)}
.sidebar-note .eyebrow {font-size:9px;margin-bottom:17px;letter-spacing:.06em}
.sidebar-note h3 {font-size:25px;line-height:1.5;margin:0 0 17px}
.sidebar-note p:not(.eyebrow) {font-size:12px;line-height:1.9}
.sidebar-note .text-link {font-size:12px}
.note-pin {right:14px;bottom:18px;font-size:29px;opacity:.7}
.popular-posts {padding:5px 17px}
.popular-posts li {padding:17px 0;gap:13px;border-bottom:1px solid var(--line)}
.popular-posts li:before {font:12px var(--mono);padding-top:3px;color:var(--muted)}
.popular-posts a {font-size:12px;line-height:1.9}
.popular-posts a:hover {text-decoration:underline}
.popular-posts small {font-size:10px;margin-top:5px}
.tag-cloud {padding:18px;gap:8px}
.tag-cloud a {font-size:11px!important;padding:5px 9px;border-radius:3px;background:var(--paper)}
.tag-cloud a:hover {background:var(--green);border-color:var(--border)}
.rss-link {font-size:11px;padding:10px 0}
.resources-preview {margin-top:45px;border-top:1px dashed var(--line);padding-top:34px}
.resource-list {border:1px solid var(--line);border-radius:5px;overflow:hidden}
.resource-list>a {padding:19px;gap:16px;transition:background .16s}
.resource-list>a:hover {background:var(--green)}
.resource-list strong {font-size:14px;line-height:1.6}
.resource-list small {font-size:10px;margin-top:7px;line-height:1.6}
.resource-go {border:1px solid var(--line);background:var(--paper);width:30px;height:30px;display:grid;place-items:center;border-radius:50%;flex-shrink:0}
.text-link {font-size:13px;line-height:1.7}
.pagination,.pp-pagination,.nav-links {display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin:32px 0 0}
.pagination a,.pagination .page-numbers,.pp-pagination .page-numbers {min-width:37px;min-height:37px;border:1px solid var(--line);background:var(--surface);padding:6px 12px;border-radius:4px;display:inline-grid;place-items:center;font:12px/1.8 var(--mono)}
.pagination .current,.pp-pagination .current {background:var(--green);border-color:var(--border)}
.pagination a:hover,.pp-pagination a:hover {border-color:var(--border)}
.site-footer {padding:45px var(--space) 24px;background:var(--surface);border-color:var(--line)}
.brand {gap:11px}
.brand>span,.footer-top .brand>span {font-size:24px;line-height:1.1}
.brand small {font-size:9px;letter-spacing:.06em;line-height:1.5;margin-top:6px}
.footer-top .brand img {width:32px;height:38px}
.footer-top {margin-bottom:35px;gap:40px}
.footer-top p {font-size:12px;margin-top:16px}
.footer-links .nav-list li {font-size:12px}
.footer-links .nav-list {gap:6px 24px}
.footer-bottom {font-size:10px;padding-top:20px;align-items:center;gap:16px}
.footer-bottom .mono {font-size:9px;letter-spacing:.035em}
.footer-bottom a {margin-left:14px;display:inline-block;padding:5px 0}
/* Reading: deliberately quieter than the desktop. */
.page-heading {padding-top:51px;padding-bottom:32px;border-bottom:1px solid var(--line);background:var(--surface)}
.page-heading h1 {font-size:clamp(32px,3.4vw,50px);line-height:1.4;max-width:920px;margin:0 0 18px;letter-spacing:-.045em;overflow-wrap:anywhere}
.page-heading>.eyebrow {font-size:10px;letter-spacing:.08em;margin-bottom:20px}
.page-heading>p,.archive-description {font-size:15px;line-height:1.9;color:var(--muted);max-width:700px;margin-bottom:12px}
.entry-meta {display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;font-size:12px;line-height:1.8;color:var(--muted)}
.entry-meta a {text-decoration:underline;text-decoration-color:var(--line)}
.featured-image {margin-top:30px;max-width:900px;border:1px solid var(--line);border-radius:5px;overflow:hidden}
.featured-image img {width:100%;height:auto;display:block}
.reading-layout {display:grid;grid-template-columns:minmax(0,760px) minmax(190px,240px);gap:48px;align-items:start;padding-top:40px}
.reading-layout>div {min-width:0}
.entry-content {font-size:17px;line-height:2.05;overflow-wrap:anywhere}
.entry-content p {margin:0 0 1.5em}
.entry-content h2 {font-size:28px;line-height:1.5;letter-spacing:-.025em;margin:1.6em 0 .85em}
.entry-content h3 {font-size:23px;line-height:1.55;margin:1.5em 0 .7em}
.article-body>:first-child {margin-top:0}
.entry-content a:not(.button):not(.pp-button) {text-decoration-thickness:1px;text-underline-offset:.23em}
.entry-content blockquote {margin:30px 0;padding:22px 25px;border-left:3px solid #9eb386;background:var(--green);border-radius:0 4px 4px 0;font-size:17px}
.entry-content blockquote p:last-child {margin:0}
.entry-content ul,.entry-content ol {padding-left:1.6em}
.entry-content li {margin:.5em 0}
.entry-content table {border-collapse:collapse;width:100%;font-size:14px;line-height:1.8}
.entry-content th,.entry-content td {border:1px solid var(--line);padding:12px 15px;text-align:left}
.entry-content th {background:var(--green);font-weight:650}
.entry-content figure {margin:30px 0;max-width:100%}
.entry-content .wp-block-table,.table-scroll {overflow:auto;max-width:100%}
.entry-content figcaption {font-size:12px;color:var(--muted);text-align:center;line-height:1.8;margin-top:10px}
.entry-content code {font:13px/1.8 var(--mono);background:var(--chrome);padding:3px 6px;border:1px solid var(--line);border-radius:3px;overflow-wrap:anywhere}
.entry-content pre {margin:28px 0;padding:23px;background:#253229;color:#e2edcf;border:1px solid #485740;border-radius:5px;position:relative;overflow:auto;font:13px/1.95 var(--mono);max-width:100%;tab-size:2}
.entry-content pre code {background:none;border:0;color:inherit;padding:0;white-space:pre;word-break:normal;overflow-wrap:normal}
.code-block {position:relative;margin:28px 0}
.code-block pre {margin:0;padding-top:54px}
.code-copy {position:absolute;right:12px;top:11px;z-index:1;font:11px/1.5 var(--mono);padding:6px 10px;background:#42543c;color:#f4f5e8;border:1px solid #708561;border-radius:3px;min-height:30px}
.code-caption {position:absolute;left:21px;top:15px;color:#acbd9c;font:10px var(--mono);letter-spacing:.08em;z-index:1}
.reading-sidebar {position:sticky;top:93px;color:var(--muted);font-size:12px}
.reading-sidebar>div {padding:23px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}
.reading-sidebar>div+div {margin-top:22px}
.reading-sidebar h2 {font:11px/1.7 var(--mono);letter-spacing:.06em;margin-bottom:17px;color:var(--ink)}
.reading-sidebar p {font-size:13px;line-height:1.9;margin-bottom:17px}
.toc-list,.doc-tree {list-style:none;margin:0;padding:0;max-height:55vh;overflow-y:auto}
.toc-list li,.doc-tree li {margin:0}
.toc-list a,.doc-tree a {display:block;font-size:12px;padding:8px 10px;border-left:2px solid var(--line);line-height:1.75;text-decoration:none!important}
.toc-list .toc-sub a {padding-left:22px;font-size:11px}
.toc-list a:hover,.toc-list a[aria-current=location],.doc-tree .current a {background:var(--green);border-left-color:var(--border);color:var(--ink)}
.article-footer {margin-top:35px;padding-top:22px;border-top:1px solid var(--line);gap:14px;align-items:center;flex-wrap:wrap;display:flex;justify-content:space-between}
.article-footer>div {display:flex;gap:8px;flex-wrap:wrap}
.article-footer a {font-size:11px;padding:4px 9px;border:1px solid var(--line);background:var(--surface);border-radius:3px}
.share-copy {font-size:12px;min-height:40px;padding:8px 0}
.post-navigation {margin:30px 0}
.post-navigation .nav-links {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0}
.post-navigation .nav-links>div {border:1px solid var(--line);border-radius:4px;background:var(--surface);padding:17px;font-size:13px;line-height:1.8}
.post-navigation .nav-next {text-align:right}
.reading-progress {height:3px;top:64px;z-index:31}
.archive-content {padding-top:38px;min-height:350px}
.filters {display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.filters a {font-size:12px;padding:7px 13px;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.filters a:hover {background:var(--green)}
.card-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:0;gap:24px}
.content-card {border:1px solid var(--line);border-radius:5px;overflow:hidden;box-shadow:var(--shadow)}
.card-hit {padding:27px}
.card-copy h3 {font-size:21px;line-height:1.5;margin:14px 0}
.card-copy p {font-size:13px;line-height:1.9}
.card-icon {width:44px;height:44px;border-radius:5px}
.card-copy .eyebrow {font-size:10px}
.timeline {margin:0;border-left:1px solid var(--line);padding-left:34px}
.timeline-entry {padding:0 0 42px;position:relative}
.timeline-entry:before {content:'';position:absolute;width:9px;height:9px;border-radius:50%;border:1px solid var(--border);background:var(--green);left:-39px;top:7px}
.timeline-entry time {font:11px var(--mono);color:var(--muted)}
.timeline-entry h2 {font-size:27px;line-height:1.5;margin:18px 0}
.timeline-entry p {font-size:14px;color:var(--muted)}
/* Comments and native forms. */
.comments-area {margin-top:40px;padding-top:30px;border-top:1px solid var(--line)}
.comments-area>h2 {font-size:26px}
.comment-list {list-style:none;padding:0;margin:26px 0}
.comment-list .children {list-style:none;padding-left:25px;border-left:1px solid var(--line);margin-left:10px}
.comment-body {padding:22px 0;border-bottom:1px solid var(--line);font-size:14px}
.comment-author {font-size:13px;display:flex;gap:8px;align-items:center;line-height:1.5}
.comment-author img {border-radius:4px}
.comment-metadata {font:10px/1.7 var(--mono);color:var(--muted);margin:10px 0 15px}
.comment-content p {margin:0 0 15px;line-height:1.9}
.comment-reply-link {font-size:12px;text-decoration:underline}
.comment-respond {margin-top:30px;padding:25px;background:var(--surface);border:1px solid var(--line);border-radius:5px}
.comment-reply-title {font-size:22px;line-height:1.6}
.comment-reply-title small {font-size:12px;margin-left:12px}
.comment-form label {display:block;font-size:13px;font-weight:600;margin-bottom:8px}
.comment-form input:not([type=checkbox]):not([type=submit]),.comment-form textarea {width:100%;max-width:100%;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:11px 13px;border-radius:4px;font-size:16px;line-height:1.8}
.comment-form textarea {min-height:145px;resize:vertical}
.comment-form p {margin:0 0 18px}
.comment-notes,.logged-in-as {font-size:12px;color:var(--muted)}
.comment-form-cookies-consent {display:flex;gap:9px;align-items:flex-start;font-size:12px;line-height:1.8}
.comment-form-cookies-consent label {font-size:12px;font-weight:400}
.comment-form input[type=checkbox] {margin-top:5px;accent-color:#657e50}
.comment-form .submit {border:1px solid #495040;border-radius:4px;box-shadow:0 3px 0 #495040;background:var(--accent);color:var(--accent-ink);font-size:13px;padding:11px 20px;min-height:45px;cursor:pointer}
.required {color:var(--muted)}
/* Command search. */
.search-dialog {width:min(660px,calc(100% - 32px));max-height:85dvh;margin:12vh auto auto;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);box-shadow:0 20px 80px #14251840;overflow:auto}
.search-dialog::backdrop {background:#1d2a2466;backdrop-filter:blur(5px)}
.search-heading {padding:26px 28px 19px;display:flex;align-items:flex-start;gap:20px;border:0;margin:0}
.search-heading h2 {font-size:27px;line-height:1.5;margin:0}
.search-heading .eyebrow {font-size:9px;margin-bottom:10px}
.search-heading .icon-button {margin-left:auto;background:var(--paper);border:1px solid var(--line)}
.search-dialog .search-form {margin:0 28px;gap:10px;display:flex}
.search-form {max-width:760px;gap:12px;align-items:center;display:flex}
.search-form label {flex:1;min-width:0}
.search-field {width:100%;border:1px solid var(--border);background:var(--paper);color:var(--ink);border-radius:4px;font-size:15px;min-height:48px;padding:10px 13px;line-height:1.8;min-width:0}
.search-submit {padding:11px 17px;min-height:48px;font-size:13px;white-space:nowrap;box-shadow:0 2px 0 var(--border)}
.search-discover {padding:24px 28px}
.search-discover>p {font-size:11px;color:var(--muted);margin:0 0 13px}
.search-suggestions {display:flex;flex-wrap:wrap;gap:9px}
.search-suggestions button {font-size:12px;border:1px solid var(--line);border-radius:4px;padding:6px 11px;background:var(--paper);min-height:35px}
.search-suggestions button:hover {background:var(--green)}
.live-search-results {padding:9px 17px;min-height:25px}
.live-search-results:empty {display:none}
.live-search-results>a {display:flex;align-items:center;gap:20px;justify-content:space-between;padding:13px 12px;border:1px solid transparent;border-bottom-color:var(--line);border-radius:4px;font-size:14px;line-height:1.65}
.live-search-results>a:hover,.live-search-results>a:focus {background:var(--green);border-color:var(--border);outline-offset:1px}
.live-search-results small {font-size:10px;color:var(--muted);background:var(--paper);border:1px solid var(--line);padding:2px 6px;border-radius:3px;white-space:nowrap}
.live-search-results>p {padding:20px 11px;color:var(--muted);font-size:13px;margin:0}
.search-hint {display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:10px;padding:15px 28px;margin:6px 0 0;border-top:1px solid var(--line);background:var(--paper);color:var(--muted)}
.empty-state,.pp-empty {padding:42px 30px;background:var(--surface);border:1px dashed var(--line);border-radius:5px;text-align:center;font-size:14px;line-height:1.9;min-height:160px;display:grid;place-content:center;color:var(--muted)}
.empty-state:before,.pp-empty:before {content:'✳';font-size:34px;line-height:1;color:#8d9f70;margin-bottom:20px;display:block}
.empty-state p,.pp-empty p {margin:8px 0}
.empty-state a,.pp-empty a {color:var(--ink);text-decoration:underline}
.not-found {text-align:center;padding-block:75px}
.not-found h1 {font-size:34px;line-height:1.45}
.not-found>p {font-size:15px;color:var(--muted)}
.not-found .search-form {margin:30px auto;max-width:500px}
.error-code {font:700 clamp(90px,13vw,170px)/1.1 var(--mono);color:var(--green);-webkit-text-stroke:1px var(--border);letter-spacing:-.09em;margin:0 0 25px}
.pp-toast {position:fixed;bottom:46px;left:50%;transform:translateX(-50%);max-width:calc(100% - 36px);padding:12px 21px;border:1px solid var(--border);border-radius:5px;background:var(--ink);color:var(--paper);box-shadow:0 5px 25px #1b241c2b;font-size:13px;z-index:90;text-align:center}
.mobile-dock {display:none}
/* Companion surfaces inherit exactly the same typography and color tokens. */
.pp-account-welcome {min-height:420px;border-color:var(--line);border-radius:6px;overflow:hidden;grid-template-columns:1fr 1fr;box-shadow:var(--shadow)}
.pp-account-welcome>div:first-child {padding:40px;border-color:var(--line);position:relative;background-color:var(--green);background-image:radial-gradient(var(--dot) 1px,transparent 1px);background-size:10px 10px}
.pp-eyebrow {font-size:10px;letter-spacing:.09em;color:var(--muted)}
.pp-account-welcome h2 {font-size:34px!important;line-height:1.4;letter-spacing:-.04em;margin:28px 0 18px!important}
.pp-account-welcome p {font-size:14px;line-height:1.95}
.pp-large-acorn {margin-top:35px;font-size:75px;transform:rotate(10deg);opacity:.65}
.pp-login-box {padding:35px 40px}
.pp-login-box label {font-size:13px;font-weight:600}
.pp-login-box input:not([type=checkbox]):not([type=submit]) {border:1px solid var(--line);border-radius:4px;min-height:48px;padding:10px 13px;font-size:16px;background:var(--paper);line-height:1.6}
.pp-login-box input[type=submit] {width:100%;min-height:46px;background:var(--accent);color:var(--accent-ink);border:1px solid #495040;border-radius:4px;box-shadow:0 3px 0 #495040;font-size:13px}
.pp-login-box .login-remember label {font-size:12px;display:flex;gap:8px;align-items:center}
.pp-account-links {font-size:12px;margin-top:23px;gap:10px}
.password-wrap {position:relative}
.password-wrap input {padding-right:64px!important}
.password-toggle {position:absolute;right:6px;bottom:6px;min-height:36px;padding:5px 8px;font-size:11px;color:var(--muted);background:var(--chrome);border:1px solid var(--line);border-radius:3px}
.pp-account-head {padding:28px;border:1px solid var(--line);border-radius:5px;background:var(--surface);gap:23px;margin-bottom:22px;align-items:center}
.pp-avatar {width:65px;height:68px;font-size:30px;background:var(--yellow);border:1px solid var(--border);border-radius:5px;box-shadow:2px 3px 0 #37432d15}
.pp-account-head h2 {font-size:26px;margin:0 0 7px!important;line-height:1.5}
.pp-account-head p {font-size:12px;line-height:1.9}
.pp-logout {font-size:12px}
.pp-account-stats {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:5px;background:var(--surface);margin:0 0 23px;overflow:hidden}
.pp-account-stat {padding:21px 24px;border-right:1px solid var(--line);font-size:11px;color:var(--muted);line-height:1.7}
.pp-account-stat:last-child {border:0}
.pp-account-stat strong {display:block;font:550 28px/1.3 var(--mono);color:var(--ink);margin-bottom:7px}
.pp-checkin {border:1px solid var(--line);border-radius:5px;background:var(--green);padding:19px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}
.pp-checkin>div>strong {font-size:15px;line-height:1.7}
.pp-checkin p {font-size:12px!important;color:var(--muted);margin:5px 0 0!important;line-height:1.8}
.pp-checkin button {min-height:40px;white-space:nowrap;font-size:12px;padding:8px 17px;flex-shrink:0}
.pp-checkin button:disabled {opacity:.8;cursor:default;background:var(--surface);color:var(--ink);box-shadow:none;border-color:var(--border)}
.pp-account-nav {border-color:var(--line);border-radius:5px;overflow:hidden;margin:0 0 25px;background:var(--surface)}
.pp-account-nav a {font-size:13px;padding:14px 21px;border-right:1px solid var(--line)}
.pp-account-nav a[aria-current=page] {background:var(--green);box-shadow:inset 0 -2px 0 var(--border)}
.pp-account-item {border:1px solid var(--line);border-radius:5px;background:var(--surface);padding:24px;margin-bottom:15px}
.pp-account-item>span,.pp-account-item small {font-size:10px}
.pp-account-item h3 {font-size:21px;line-height:1.55;margin:12px 0}
.pp-account-item p {font-size:14px;line-height:1.9}
.pp-form {max-width:760px;padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:5px}
.pp-form label {font-size:13px;font-weight:600;line-height:1.8;margin-bottom:23px}
.pp-form input:not([type=checkbox]),.pp-form textarea,.pp-form select {font-size:16px;min-height:46px;padding:11px 13px;line-height:1.8;border:1px solid var(--line);border-radius:4px;background:var(--paper);margin-top:9px}
.pp-form textarea {resize:vertical;min-height:100px}
.pp-form .pp-consent {font-size:12px;flex-wrap:nowrap;gap:10px;align-items:flex-start;line-height:1.8;font-weight:400}
.pp-consent input {flex-shrink:0;margin-top:3px;width:17px;height:17px}
.pp-consent a {white-space:nowrap}
.pp-small {font-size:12px!important;line-height:1.85!important}
.pp-form .pp-button {font-size:13px;min-height:46px;padding:11px 22px}
.pp-draft-bar {display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 15px;background:var(--green);border:1px solid var(--line);border-radius:4px;margin-bottom:22px;font-size:11px}
.pp-draft-bar label {display:flex;align-items:center;gap:7px;font-size:11px;font-weight:400;margin:0}
.pp-draft-bar input {accent-color:#6a8252}
.pp-draft-state {margin-left:auto;font-size:10px;color:var(--muted)}
.pp-draft-clear {padding:3px 6px;min-height:30px;font-size:11px;text-decoration:underline}
.pp-counter {display:block;text-align:right;font-size:11px;font-weight:400;color:var(--muted);margin-top:8px}
.pp-notice {font-size:13px;border-color:var(--line);border-radius:5px;padding:16px 20px;line-height:1.9}
.pp-reactions {border:1px solid var(--line);background:var(--surface);padding:18px;border-radius:5px;gap:12px}
.pp-reaction {font-size:13px;padding:10px 18px;border:1px solid var(--line);border-radius:4px;min-height:43px;transition:background .16s}
.pp-reaction:hover {border-color:var(--border)}
.pp-reaction[aria-pressed=true] {background:var(--green);border-color:var(--border);box-shadow:none}
.pp-count {font-size:11px}
.pp-reaction-message {font-size:12px;line-height:1.7;flex-basis:100%}
.pp-reaction-message:empty {display:none}
.pp-download {padding:30px;border-color:var(--line);border-radius:5px;background:var(--green);gap:22px}
.pp-download h3 {font-size:25px;line-height:1.5;margin:0 0 12px}
.pp-download p {font-size:13px;line-height:1.9}
.pp-download-symbol {border-color:var(--border);border-radius:5px}
.pp-download .pp-button {font-size:13px;padding:11px 19px}
.pp-locked {padding:36px 25px;border:1px dashed var(--border);background:var(--surface);border-radius:5px;text-align:center}
.pp-locked h3 {font-size:25px;margin:17px 0 13px;line-height:1.5}
.pp-locked p {font-size:14px;line-height:1.9}
.pp-locked .pp-button {font-size:13px}
.pp-lock-mark {font-size:29px;width:57px;height:57px;margin:0 auto 16px;line-height:57px;border:1px solid var(--line);border-radius:50%;background:var(--green);color:var(--ink)}
.pp-topic-grid {gap:25px}
.pp-topic {border:1px solid var(--line);border-radius:5px;padding:30px;box-shadow:0 3px 0 #34442e10;transition:transform .18s,box-shadow .18s}
.pp-topic:hover {transform:translateY(-3px);box-shadow:3px 5px 0 #34442e17}
.pp-topic h3 {font-size:25px;line-height:1.5;margin:22px 0 16px}
.pp-topic p {font-size:14px;line-height:1.9}
.pp-topic small {font-size:12px;line-height:1.8}
.pp-topic-symbol {font-size:38px;color:var(--muted)}
.pp-faq summary {font-size:15px;padding:23px 35px 23px 0;line-height:1.8}
.pp-faq details {border-color:var(--line)}
.pp-faq details>div {font-size:14px;line-height:1.95}
.pp-faq summary:after {top:23px}
.pp-billing button {font-size:13px;min-height:44px}
.pp-plan-grid {border-color:var(--line);border-radius:5px;overflow:hidden}
.pp-plan {border-color:var(--line);padding:30px}
.pp-plan h3 {font-size:26px}
.pp-plan p,.pp-plan ul {font-size:14px;line-height:1.9}
.pp-plan ul {list-style:none}
.pp-plan .pp-button {font-size:13px}
.pp-price b {font-size:42px}
.pp-price small {font-size:12px}
/* Layout changes follow available content width, not smaller body text. */
@media(min-width:1650px) {
  .site-window {margin-inline:auto;max-width:1420px}
  .portal-content {grid-template-columns:minmax(0,1fr) 270px;gap:42px}
  .portal-posts {grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-hero h1 {font-size:65px}
}
@media(max-width:1180px) {
  .topbar {gap:20px;padding-inline:20px}
  .nav-list {gap:19px}
  .topbar-home span {display:none}
  .search-trigger span,.search-trigger kbd {display:none}
  .search-trigger {min-width:38px;justify-content:center}
  .site-window {margin-left:100px;margin-right:25px}
  .desktop-dock {left:9px}
  .section-wrap {padding-inline:34px}
  .portal-hero {gap:27px}
  .portal-hero h1 {font-size:48px}
  .portal-hero .hero-description {font-size:14px}
  .portal-art {height:350px}
  .portal-note {right:5px;min-width:160px;padding:18px 23px 23px}
  .portal-note strong {font-size:22px}
  .explorer-window {left:0;right:5px;top:136px}
  .explorer-folders {padding:27px 10px 22px;gap:7px}
  .explorer-folders a {min-width:61px;padding-inline:3px;font-size:10px}
  .folder-icon {width:54px;height:44px}
  .portal-mascot {width:102px;right:-16px;bottom:-24px}
  .portal-art-caption {font-size:8px;bottom:-36px;left:5px}
  .portal-quicklinks>a {padding:20px 14px;gap:10px}
  .portal-quicklinks small {font-size:10px;display:block}
  .portal-quicklinks strong {font-size:13px}
  .portal-content {grid-template-columns:minmax(0,1fr) 215px;gap:25px}
  .portal-posts {gap:20px}
  .post-card-body {padding:18px}
  .post-card h3 {font-size:18px}
  .post-card p {font-size:12px}
  .post-card-meta {font-size:10px}
  .feed-heading h2 {font-size:25px}
  .welcome-content {padding:23px 17px}
  .welcome-content h3 {font-size:16px}
  .welcome-content .button {font-size:10px}
  .post-card-meta>a {gap:5px}
  .sidebar-note {padding:24px 18px}
  .sidebar-note h3 {font-size:23px}
  .reading-layout {grid-template-columns:minmax(0,1fr) 200px;gap:30px}
  .reading-sidebar>div {padding:18px}
  .footer-bottom .mono {display:none}
}
@media(max-width:960px) {
  .topbar {gap:15px}
  .nav-list {gap:17px}
  .nav-list li {font-size:12px}
  .topbar-actions {gap:8px}
  .desktop-dock {display:none}
  .site-window {margin:22px 25px 50px;max-width:none}
  .portal-hero {padding:40px 35px 50px;min-height:490px}
  .portal-hero h1 {font-size:48px}
  .portal-hero .hero-actions {gap:17px}
  .hero-secondary {font-size:12px}
  .portal-content {grid-template-columns:minmax(0,1fr) 210px;gap:24px;padding:40px 30px}
  .portal-posts {grid-template-columns:1fr}
  .portal-posts .post-card {display:grid;grid-template-columns:125px minmax(0,1fr)}
  .portal-posts .post-cover {height:100%;aspect-ratio:auto;border-right:1px solid var(--line);border-bottom:0;min-height:190px}
  .portal-posts .post-card p {font-size:12px;min-height:0}
  .post-card h3 {font-size:18px}
  .feed-toolbar {align-items:flex-start}
  .feed-count {max-width:130px}
  .view-toggles {display:none}
  .post-grid:not(.portal-posts),.card-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .pp-account-welcome>div:first-child {padding:30px}
  .pp-login-box {padding:30px}
  .pp-account-stat {padding:19px}
  .pp-account-nav a {padding:13px 16px;font-size:12px}
  .pp-plan-grid {grid-template-columns:1fr}
  .pp-plan {padding:30px}
}
@media(max-width:720px) {
  html {scroll-padding-top:80px}
  body {font-size:15px;background-size:10px 10px;padding-bottom:74px}
  body.has-desktop-wallpaper {background-image:radial-gradient(var(--dot) .8px,transparent .8px);background-size:8px 8px}
  .topbar {min-height:59px;padding:8px 15px;gap:12px;flex-wrap:nowrap}
  .topbar-home {order:0;margin-right:auto;min-width:0;flex:1;font-size:15px}
  .topbar-home span {display:block;max-width:120px}
  .topbar-home img {width:23px;height:29px}
  .mobile-toggle {display:inline-flex;order:3;min-width:38px;min-height:38px}
  .topbar-actions {order:2;gap:4px}
  .topbar-cta {display:none}
  .search-trigger {padding:4px;min-width:38px;min-height:38px;border:0;background:none}
  .color-toggle {min-width:38px;min-height:38px}
  .site-nav {display:none;position:absolute;top:100%;left:10px;right:10px;padding:15px 20px;background:var(--surface);border:1px solid var(--border);border-radius:5px;box-shadow:3px 5px 0 #24302122;max-height:calc(100dvh - 150px);overflow:auto}
  .site-nav.is-open {display:block}
  .site-nav .nav-list {display:block}
  .site-nav .nav-list li {font-size:14px;padding:3px 0;border-bottom:1px solid var(--line)}
  .site-nav .nav-list>li:last-child {border-bottom:0}
  .site-nav .nav-list a {padding:11px 4px}
  .site-nav .sub-menu {position:static;width:auto;box-shadow:none;border:0;border-left:1px solid var(--line);margin-left:5px;border-radius:0;padding:0 0 0 18px}
  .site-nav li:hover>.sub-menu {display:none}
  .site-nav li.submenu-open>.sub-menu,.site-nav li:focus-within>.sub-menu {display:block}
  .submenu-toggle {padding:13px;min-width:40px;min-height:40px;float:right}
  .site-window,.is-expanded .site-window {margin:12px 10px 20px;max-width:none;border-radius:6px;box-shadow:3px 4px 0 #45563913}
  .window-chrome {height:35px;padding:0 10px}
  .window-dots {gap:5px}
  .window-dots i {width:8px;height:8px}
  .window-path {font-size:9px;max-width:70%}
  .window-chrome .expand-toggle {display:none}
  .desktop-status {display:none}
  .mobile-dock {display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;padding:6px 14px max(6px,env(safe-area-inset-bottom));min-height:64px;background:var(--paper);border-top:1px solid var(--border);z-index:40;box-shadow:0 -5px 20px #2b362009}
  .mobile-dock a {min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:10px;line-height:1.3;border-radius:5px;position:relative}
  .mobile-dock .pp-icon {width:21px;height:21px}
  .mobile-dock a[aria-current=page] {background:var(--green);color:var(--ink)}
  .announcement {justify-content:flex-start;padding:11px 16px;font-size:10px;gap:9px;line-height:1.7}
  .announcement a {margin-left:auto;white-space:nowrap;font-size:10px}
  .section-wrap {padding:36px 24px}
  .portal-hero {display:flex;flex-direction:column;gap:10px;padding:30px 25px 58px;min-height:0;overflow:hidden}
  .portal-hero-copy {width:100%;max-width:530px}
  .hero-edition {font-size:11px;gap:8px;margin-bottom:23px}
  .edition-tag {font-size:8px;padding:1px 5px}
  .edition-mark {font-size:19px}
  .portal-hero-copy>.eyebrow {font-size:9px;letter-spacing:.04em;margin-bottom:13px}
  .portal-hero h1 {font-size:clamp(35px,9.6vw,54px);line-height:1.27;margin-bottom:21px;letter-spacing:-.06em}
  .portal-hero .hero-description {font-size:14px;line-height:1.95;max-width:440px}
  .portal-hero .hero-actions {margin:23px 0 16px;gap:20px;flex-wrap:wrap}
  .portal-hero .button {font-size:13px;min-height:45px;padding:11px 17px}
  .hero-secondary {font-size:12px;line-height:1.7}
  .hero-note {font-size:10px;gap:7px;line-height:1.7}
  .portal-art {height:332px;max-width:360px;width:100%;margin-top:25px;align-self:center}
  .portal-note {right:12px;top:3px;min-width:150px;padding:17px 22px 23px}
  .portal-note strong {font-size:23px}
  .portal-note .mono {font-size:9px;margin-bottom:12px}
  .desk-label {font-size:9px;left:4px;top:25px}
  .portal-art .orbit-one {font-size:30px;left:85px;top:77px}
  .explorer-window {top:143px;left:2px;right:12px}
  .explorer-window .art-title {font-size:10px;padding:8px 10px}
  .explorer-path {font-size:9px;padding:8px 10px}
  .explorer-folders {padding:26px 12px 20px;gap:9px}
  .explorer-folders a {min-width:59px;font-size:10px;gap:10px;padding:3px}
  .folder-icon {width:53px;height:41px}
  .folder-icon .pp-icon {width:22px;height:22px}
  .explorer-status {font-size:8px;padding:6px 10px}
  .portal-mascot {width:96px;right:-18px;bottom:-34px}
  .portal-art-caption {font-size:7px;left:9px;bottom:-47px;letter-spacing:.03em}
  .portal-quicklinks {grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-quicklinks>a {padding:20px 17px;gap:10px;min-height:91px;border-color:var(--line)}
  .portal-quicklinks>a:nth-child(2) {border-right:0}
  .portal-quicklinks>a:nth-child(3),.portal-quicklinks>a:nth-child(4) {border-bottom:0}
  .portal-quicklinks strong {font-size:13px}
  .portal-quicklinks small {font-size:10px;display:block;margin-top:5px}
  .portal-quicklinks .quick-icon {width:34px;height:36px;border-radius:4px}
  .portal-quicklinks .pp-icon {width:20px;height:20px}
  .quick-arrow {display:none}
  .portal-content {grid-template-columns:1fr;padding:37px 20px;gap:38px}
  .feed-heading h2 {font-size:26px;letter-spacing:-.05em;line-height:1.4}
  .feed-heading .eyebrow {font-size:9px;margin-bottom:10px}
  .feed-heading {gap:10px;margin-bottom:21px}
  .view-toggles {display:flex}
  .view-toggle {min-width:33px;min-height:34px;padding:7px}
  .view-toggle .pp-icon {width:15px;height:15px}
  .feed-filters {gap:3px;margin-bottom:14px}
  .feed-filters a {font-size:11px;padding:10px 9px}
  .feed-count {max-width:none;font-size:10px;padding-top:8px}
  .feed-toolbar {margin-bottom:21px;gap:10px}
  .feed-sort select {font-size:11px}
  .portal-posts,.post-grid:not(.portal-posts),.card-grid {grid-template-columns:1fr;gap:23px}
  .portal-posts .post-card {display:flex;flex-direction:column}
  .portal-posts .post-cover {height:auto;aspect-ratio:1.85;border-right:0;border-bottom:1px solid var(--line);min-height:0}
  .post-card-body,.portal-posts .post-card-body {padding:21px}
  .post-card h3 {font-size:21px;line-height:1.5}
  .post-card p,.portal-posts .post-card p {font-size:13px;line-height:1.85;margin-bottom:20px}
  .post-card-top {font-size:11px}
  .post-card-meta,.post-card-meta>span {font-size:10px}
  .post-card-meta>span>span {display:inline}
  .cover-badge {font-size:10px;left:12px;top:12px}
  .portal-posts.is-list .post-card {display:grid;grid-template-columns:105px minmax(0,1fr)}
  .portal-posts.is-list .post-cover {min-height:170px;height:100%;aspect-ratio:auto;border-right:1px solid var(--line);border-bottom:0}
  .portal-posts.is-list .post-card-body {padding:14px}
  .portal-posts.is-list .post-card h3 {font-size:16px;line-height:1.6;margin-bottom:13px}
  .portal-posts.is-list .post-card p {display:none}
  .portal-posts.is-list .post-card-meta {font-size:9px}
  .portal-posts.is-list .cover-badge {font-size:8px;padding:3px 4px;top:7px;left:7px}
  .portal-sidebar {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
  .portal-sidebar .sidebar-box {margin:0}
  .welcome-box,.portal-sidebar .sidebar-note,.portal-sidebar>.sidebar-box:has(.tag-cloud) {grid-column:1/-1}
  .portal-sidebar>.sidebar-box:has(.popular-posts) {grid-column:1/-1}
  .welcome-content {padding:27px;text-align:center}
  .welcome-content h3 {font-size:20px}
  .welcome-content p {font-size:13px;max-width:350px;margin-inline:auto}
  .welcome-content .button {display:inline-flex;font-size:12px;min-height:43px;padding:10px 17px}
  .site-stats {padding:20px}
  .site-stats b {font-size:24px}
  .site-stats>span {font-size:11px}
  .sidebar-note {padding:28px;transform:rotate(-.7deg)}
  .sidebar-note h3 {font-size:28px}
  .sidebar-note p:not(.eyebrow) {font-size:13px;max-width:350px}
  .sidebar-note .eyebrow {font-size:10px}
  .sidebar-note .text-link {font-size:13px}
  .note-pin {display:block;right:24px;bottom:26px}
  .popular-posts {padding:5px 23px}
  .popular-posts li {padding:17px 0;gap:15px}
  .popular-posts a {font-size:13px}
  .popular-posts small {font-size:10px}
  .popular-posts li:before {font-size:12px}
  .box-title {font-size:11px;padding:13px 18px}
  .rss-link {grid-column:1/-1;font-size:11px}
  .resource-list>a {padding:17px 15px;gap:12px}
  .resource-list strong {font-size:13px}
  .resource-list small {font-size:10px}
  .resource-list .quick-icon {width:36px;height:39px}
  .resource-go {width:27px;height:27px}
  .resources-preview {margin-top:30px}
  .site-footer {padding:32px 24px 23px}
  .footer-top {display:block;margin-bottom:23px}
  .footer-links {margin-top:24px}
  .footer-links .nav-list {justify-content:flex-start;gap:5px 22px}
  .footer-links .nav-list li {font-size:12px}
  .footer-top p {font-size:12px}
  .footer-bottom {font-size:10px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
  .footer-bottom a {margin-left:0;margin-right:14px;padding:6px 0}
  .page-heading {padding:34px 24px 26px}
  .page-heading h1 {font-size:31px;line-height:1.5;margin-bottom:17px}
  .page-heading>.eyebrow {font-size:9px;letter-spacing:.04em;margin-bottom:16px}
  .page-heading>p,.archive-description {font-size:14px}
  .entry-meta {font-size:11px;gap:8px 13px}
  .reading-layout {display:flex;flex-direction:column;gap:30px;padding:30px 22px}
  .reading-layout>div {width:100%}
  .reading-sidebar {position:static;width:100%;font-size:12px}
  .reading-sidebar .toc-box {display:none}
  .reading-sidebar>div {padding:23px}
  .entry-content {font-size:16px;line-height:2}
  .entry-content h2 {font-size:25px;line-height:1.55;margin-top:1.6em}
  .entry-content h3 {font-size:21px;line-height:1.55}
  .entry-content blockquote {font-size:16px;padding:20px;margin-block:25px}
  .entry-content pre {font-size:12px;padding-inline:16px}
  .entry-content code {font-size:12px}
  .article-body>:first-child {margin-top:0}
  .article-footer {margin-top:30px;gap:12px}
  .article-footer>div {gap:7px}
  .post-navigation .nav-links {grid-template-columns:1fr}
  .post-navigation .nav-links>div {font-size:13px;text-align:left;padding:17px}
  .reading-progress {top:59px}
  .comment-respond {padding:21px 17px}
  .comments-area>h2 {font-size:25px;line-height:1.4}
  .comment-reply-title {font-size:21px}
  .comment-list .children {padding-left:16px;margin-left:0}
  .comment-body {font-size:14px}
  .comment-author {font-size:12px}
  .search-dialog {margin:8vh auto auto;max-height:80dvh;width:calc(100% - 24px)}
  .search-heading {padding:22px 21px 17px;gap:12px}
  .search-heading h2 {font-size:25px}
  .search-heading .eyebrow {font-size:9px}
  .search-dialog .search-form {margin-inline:21px;gap:9px}
  .search-field {font-size:16px;min-height:46px;padding:9px 11px}
  .search-submit {min-height:46px;padding:10px 13px;font-size:12px}
  .search-discover {padding:23px 21px}
  .live-search-results {padding-inline:12px}
  .live-search-results>a {font-size:13px;padding:13px 9px}
  .search-hint {padding:14px 21px;font-size:9px}
  .not-found {padding:50px 24px}
  .not-found h1 {font-size:28px}
  .not-found .search-form {flex-wrap:nowrap}
  .pp-toast {bottom:85px;font-size:12px;padding:11px 17px}
  .pp-account-welcome {grid-template-columns:1fr}
  .pp-account-welcome>div:first-child {padding:28px;border-right:0;border-bottom:1px solid var(--line)}
  .pp-account-welcome h2 {font-size:30px!important;margin:19px 0 16px!important}
  .pp-account-welcome p {font-size:13px}
  .pp-large-acorn {position:absolute;right:25px;bottom:26px;font-size:43px;opacity:.3;margin:0}
  .pp-login-box {padding:27px}
  .pp-login-box label {font-size:13px}
  .pp-account-head {padding:23px;gap:15px;align-items:center;flex-wrap:wrap}
  .pp-avatar {width:48px;height:52px;font-size:25px}
  .pp-account-head h2 {font-size:22px;line-height:1.5}
  .pp-account-head p {font-size:11px}
  .pp-logout {font-size:11px;margin-left:auto}
  .pp-account-stats {grid-template-columns:repeat(2,minmax(0,1fr))}
  .pp-account-stat {padding:20px;text-align:center;font-size:11px}
  .pp-account-stat strong {font-size:26px}
  .pp-account-stat:nth-child(2) {border-right:0}
  .pp-account-stat:nth-child(-n+2) {border-bottom:1px solid var(--line)}
  .pp-checkin {padding:19px;gap:14px;flex-wrap:wrap}
  .pp-checkin>div>strong {font-size:14px}
  .pp-checkin p {font-size:11px!important}
  .pp-checkin button {min-height:40px}
  .pp-account-nav a {font-size:12px;padding:12px 15px}
  .pp-account-item {padding:21px}
  .pp-account-item h3 {font-size:19px}
  .pp-account-item p {font-size:13px}
  .pp-form {padding:23px 19px}
  .pp-form-row {grid-template-columns:1fr;gap:0}
  .pp-form label {font-size:13px}
  .pp-form .pp-consent {font-size:11px;flex-wrap:wrap;gap:7px}
  .pp-form input:not([type=checkbox]),.pp-form textarea,.pp-form select {font-size:16px}
  .pp-draft-bar {padding:12px;font-size:10px;gap:8px}
  .pp-draft-state {margin-left:0}
  .pp-topic-grid {grid-template-columns:1fr}
  .pp-topic {padding:27px}
  .pp-topic h3 {font-size:25px}
  .pp-topic p {font-size:14px}
  .pp-topic small {font-size:11px}
  .pp-reactions {padding:16px;gap:10px}
  .pp-reaction {font-size:12px;padding:10px 15px}
  .pp-reaction-message {font-size:11px}
  .pp-download {padding:24px 19px;gap:15px}
  .pp-download h3 {font-size:23px;line-height:1.5}
  .pp-download p {font-size:12px}
  .pp-download-symbol {width:35px;height:39px}
  .pp-download .pp-button {font-size:12px;padding:10px 13px}
  .pp-locked h3 {font-size:24px;line-height:1.5}
  .pp-locked p {font-size:13px}
  .pp-faq summary {font-size:14px}
  .pp-faq details>div {font-size:13px}
  .timeline-entry h2 {font-size:24px;line-height:1.5}
  .archive-content {padding-top:29px}
  .card-copy h3 {font-size:22px}
}
@media(max-width:380px) {
  .topbar {padding-inline:10px;gap:5px}
  .topbar-home span {font-size:14px;max-width:100px}
  .site-window {margin-inline:7px}
  .announcement {padding-inline:12px;flex-wrap:wrap;gap:5px 8px}
  .announcement a {margin-left:14px}
  .portal-hero {padding-inline:19px}
  .portal-hero h1 {font-size:36px}
  .portal-hero .hero-description {font-size:13px}
  .hero-edition {font-size:10px;gap:7px}
  .portal-hero-copy>.eyebrow {font-size:8px}
  .portal-hero .hero-actions {gap:16px}
  .portal-hero .button {padding:11px 15px;font-size:12px}
  .hero-secondary {font-size:11px}
  .portal-quicklinks>a {padding:17px 12px;gap:9px}
  .portal-quicklinks strong {font-size:12px}
  .portal-quicklinks small {font-size:9px}
  .portal-quicklinks .quick-icon {width:30px;height:32px}
  .portal-content {padding-inline:17px}
  .feed-heading h2 {font-size:23px}
  .view-toggle {min-width:30px;padding:6px}
  .feed-count {font-size:9px}
  .feed-sort select {font-size:10px;padding-right:18px}
  .post-card-body {padding:18px}
  .post-card h3 {font-size:19px}
  .portal-sidebar {grid-template-columns:1fr}
  .portal-sidebar>* {grid-column:1!important}
  .pp-account-head {padding:20px}
  .pp-account-head h2 {font-size:20px}
  .entry-content {font-size:16px}
  .page-heading h1 {font-size:28px}
}
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  *,*:before,*:after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media(max-width:782px) {.admin-bar .topbar{top:46px}.admin-bar .reading-progress{top:110px}}
@media(max-width:720px) {.admin-bar .reading-progress{top:105px}}
@media(max-width:600px) {.admin-bar .topbar{top:0}.admin-bar .reading-progress{top:59px}}
@media print {
  body {padding:0;background:white!important;color:#222}
  .site-window {margin:0;max-width:none;border:0;box-shadow:none;background:white}
  .mobile-dock,.pp-toast,.topbar,.desktop-dock,.desktop-status,.window-chrome,.reading-sidebar,.reading-progress,.site-footer,.pp-reactions,.article-footer,.comments-area,.search-dialog {display:none!important}
  .reading-layout {display:block;padding:0}
  .section-wrap {padding:20px 0}
  .page-heading {background:white}
  .article-body {font-size:12pt;line-height:1.8}
  .article-body h2,.article-body h3 {break-after:avoid}
  .article-body pre,.article-body blockquote,.article-body figure {break-inside:avoid}
  a[href]:after {content:none!important}
  .code-copy {display:none}
}
.mobile-toc{display:none}
@media(max-width:720px){.mobile-toc{display:block;border:1px solid var(--line);border-radius:4px;background:var(--surface);margin:0 0 28px}.mobile-toc summary{font-size:13px;padding:14px 17px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;list-style:none;min-height:48px}.mobile-toc summary::-webkit-details-marker{display:none}.mobile-toc[open] summary{border-bottom:1px solid var(--line)}.mobile-toc[open] summary span{transform:rotate(45deg)}.mobile-toc-list{list-style:none;padding:10px 16px 15px;margin:0}.mobile-toc-list a{font-size:13px;padding:9px 10px;display:block;border-left:2px solid var(--line);text-decoration:none}.mobile-toc-list .toc-sub a{padding-left:22px;font-size:12px}.mobile-toc-list a[aria-current=location]{background:var(--green);border-left-color:var(--border)}}
@media print{.mobile-toc{display:none!important}}
