/* Pattern pages: layout on top of the site stylesheet stack. The reference
   entry inside .pattern-reference is styled by psychopathia-styles.css exactly
   as it was on the home page; these rules cover the page frame and the corpus
   sections that follow it. */
.pattern-page-body main { padding-top: 24px; }
.pattern-page__head { padding-bottom: 1.5rem; }
.breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; margin:0 0 1.4rem; font-family:'Poppins',sans-serif; font-size:.9rem; color:#5c6875; }
.breadcrumbs a { color:#466483; text-decoration:none; }
.breadcrumbs a:hover { text-decoration:underline; }
.breadcrumbs span[aria-hidden] { color:#9aa6b2; }
.breadcrumbs [aria-current] { font-weight:600; color:#2c3e50; }
.pattern-hero .eyebrow { margin:0 0 .4rem; color:#466483; font-family:'Poppins',sans-serif; font-size:.85rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.pattern-hero .eyebrow a { color:inherit; text-decoration:none; border-bottom:2px solid rgba(70,100,131,.35); }
.pattern-hero .eyebrow a:hover { border-bottom-color:currentColor; }
.pattern-hero h1 { margin:.1em 0 .1em; font-family:'Poppins',sans-serif; font-size:clamp(2rem,4.5vw,3.2rem); line-height:1.15; letter-spacing:-.01em; }
.pattern-hero .subtitle { margin:0 0 1rem; color:#466483; font-size:1.35rem; font-style:italic; }
.pattern-hero .lede { font-size:1.15rem; line-height:1.65; max-width:60rem; }
.pattern-hero .pattern-illustration { max-width:60rem; margin:1.5rem 0 0; }
.section-links { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.5rem; padding:1rem 0 0; border-top:1px solid rgba(44,62,80,.14); font-family:'Poppins',sans-serif; font-size:.9rem; }
.section-links a { display:inline-flex; align-items:center; min-height:36px; padding:.3rem .85rem; border:1px solid rgba(44,62,80,.18); border-radius:999px; color:#2c3e50; background:#fff; text-decoration:none; transition:background .15s ease, border-color .15s ease; }
.section-links a:hover { background:#eef3f7; border-color:#7b8997; text-decoration:none; }
.pattern-page__reference > section > h2 { scroll-margin-top:5rem; }
.pattern-page__corpus section { position:relative; margin-bottom:1.6rem; padding:1.5rem 1.75rem 1.4rem; border:1px solid #e5ebf0; border-radius:14px; background:#fff; box-shadow:0 1px 2px rgba(23,36,51,.05), 0 10px 24px -18px rgba(23,36,51,.25); scroll-margin-top:5rem; }
.container.blog.pattern-page__corpus section h2 { display:flex; align-items:center; gap:.65rem; margin:0 0 .9rem; padding:0 0 .65rem; border-bottom:1px solid #e5ebf0; font-family:'Poppins',sans-serif; font-size:1.25rem; }
.pattern-page__corpus section h2::before { font-family:'Font Awesome 6 Free'; font-weight:900; font-size:.95em; color:#466483; width:1.5em; text-align:center; flex:0 0 auto; }
.pattern-page__corpus #signals h2::before { content:"\f06e"; }
.pattern-page__corpus #distinctions h2::before { content:"\f24e"; }
.pattern-page__corpus #instances h2::before { content:"\f15c"; }
.pattern-page__corpus #context h2::before { content:"\f518"; }
.pattern-page__corpus #mitigations h2::before { content:"\f0ad"; }
.pattern-page__corpus #related h2::before { content:"\f0c1"; }
.container.blog.pattern-page__corpus section h3 { margin:1.1rem 0 .4rem; font-family:'Poppins',sans-serif; font-size:1rem; color:#2c3e50; }
.pattern-page__corpus .plain-list, .pattern-page__corpus section > ul { margin:0; padding-left:1.35rem; }
.pattern-page__corpus li { margin-bottom:.55rem; line-height:1.6; }
.pattern-page__corpus li::marker { color:#466483; }
.pattern-page__corpus section > p.text { margin:0 0 .5rem; }
.evidence-list { display:grid; gap:.75rem; }
.evidence-list article { padding:.9rem 1.1rem; border:1px solid #e5ebf0; border-radius:10px; background:#f8fafc; }
.evidence-list h3 { margin:0 0 .45rem !important; font-size:.98rem !important; line-height:1.45; font-weight:600; }
.evidence-list details summary { cursor:pointer; font-family:'Poppins',sans-serif; font-size:.88rem; color:#466483; list-style:none; display:inline-flex; align-items:center; gap:.4rem; }
.evidence-list details summary::-webkit-details-marker { display:none; }
.evidence-list details summary::before { content:"\f054"; font-family:'Font Awesome 6 Free'; font-weight:900; font-size:.7em; transition:transform .15s ease; }
.evidence-list details[open] summary::before { transform:rotate(90deg); }
.evidence-list details p { margin:.6rem 0 0; font-size:.95rem; line-height:1.6; }
.compact-dl { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:.75rem; margin:.6rem 0 0; }
.compact-dl > div { padding:.75rem .9rem; border:1px solid #e5ebf0; border-radius:10px; background:#f8fafc; }
.compact-dl dt { margin:0 0 .2rem; font-family:'Poppins',sans-serif; font-size:.78rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#5c6875; }
.compact-dl dd { margin:0; font-family:'Poppins',sans-serif; font-size:1.05rem; font-weight:600; color:#2c3e50; text-transform:capitalize; }
.metadata, .muted { color:#5c6875; font-size:.92rem; }
.related-list { display:flex; flex-wrap:wrap; gap:.5rem; margin:0; padding:0; list-style:none; }
.related-list li { margin:0; }
.related-list a { display:inline-flex; align-items:center; gap:.4rem; padding:.45rem .85rem; border:1px solid #e5ebf0; border-radius:999px; background:#f8fafc; color:#2c3e50; font-family:'Poppins',sans-serif; font-size:.9rem; text-decoration:none; }
.related-list a:hover { border-color:#7b8997; background:#eef3f7; text-decoration:none; }
.related-list a .metadata { font-size:.78rem; padding-left:.35rem; border-left:1px solid #d3dbe3; }
.pattern-pagination { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid rgba(44,62,80,.14); font-family:'Poppins',sans-serif; }
.pattern-pagination a { display:block; padding:.9rem 1.1rem; border:1px solid #e5ebf0; border-radius:12px; background:#fff; color:#2c3e50; text-decoration:none; font-weight:600; line-height:1.4; }
.pattern-pagination a:hover { border-color:#7b8997; text-decoration:none; }
.pattern-pagination a:last-child { text-align:right; }
html.dark .breadcrumbs, html.dark .breadcrumbs span[aria-hidden] { color:#aeb9c4; }
html.dark .breadcrumbs a, html.dark .pattern-hero .eyebrow, html.dark .pattern-hero .eyebrow a, html.dark .pattern-hero .subtitle { color:#a9cbed; }
html.dark .breadcrumbs [aria-current] { color:#edf1f5; }
html.dark .section-links { border-color:rgba(255,255,255,.14); }
html.dark .section-links a { background:#182330; border-color:#3b4b5d; color:#edf1f5; }
html.dark .section-links a:hover { background:#22303f; }
html.dark .pattern-page__corpus section { background:#182330; border-color:#3b4b5d; box-shadow:none; }
html.dark .pattern-page__corpus section h2 { border-color:#3b4b5d; }
html.dark .pattern-page__corpus section h2::before, html.dark .pattern-page__corpus li::marker { color:#a9cbed; }
html.dark .container.blog.pattern-page__corpus section h3, html.dark .container.blog.pattern-page__corpus .evidence-list h3 { color:#edf1f5; }
html.dark .evidence-list article, html.dark .compact-dl > div, html.dark .related-list a, html.dark .pattern-pagination a { background:#101823; border-color:#3b4b5d; color:#edf1f5; }
html.dark .container.blog.pattern-page__corpus .evidence-list article, html.dark .container.blog.pattern-page__corpus .evidence-list article p, html.dark .container.blog.pattern-page__corpus section > p.text, html.dark .container.blog.pattern-page__corpus li, html.dark .container.blog.pattern-page__corpus .compact-dl dd, html.dark .container.blog.pattern-page__corpus .related-list a, html.dark .container.blog.pattern-page__corpus .pattern-pagination a { color:#edf1f5; }
html.dark .evidence-list details summary { color:#a9cbed; }
html.dark .compact-dl dt, html.dark .metadata, html.dark .muted { color:#aeb9c4; }
html.dark .compact-dl dd { color:#edf1f5; }
html.dark .related-list a:hover, html.dark .pattern-pagination a:hover { background:#22303f; }
html.dark .pattern-pagination { border-color:rgba(255,255,255,.14); }
@media (max-width:800px) { .compact-dl { grid-template-columns:1fr; } .pattern-pagination { grid-template-columns:1fr; } .pattern-pagination a:last-child { text-align:left; } .pattern-page__corpus section { padding:1.1rem 1.1rem 1rem; } .pattern-page-body main { padding-top:20px; } }
@media print { .site-nav, .dark-mode-toggle, .section-links, .pattern-pagination, .breadcrumbs { display:none !important; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; transition:none !important; } }
