/* PKCE article presentation using the supplied Iteritory 1.3.6 palette and typefaces.
   All article rules are scoped to this post's Gutenberg Group. */
.pkce-wp-post {
  --pkce-post-paper:#f5f1e8; --pkce-post-ink:#1e2d3d; --pkce-post-line:#d9d2c7;
  --pkce-post-sans:var(--wp--preset--font-family--sans,"DM Sans","Segoe UI","Helvetica Neue",Arial,sans-serif);
  --pkce-post-serif:var(--wp--preset--font-family--serif,"Newsreader",Georgia,serif);
  --pkce-post-mono:var(--wp--preset--font-family--mono,"DM Mono","SFMono-Regular",Consolas,monospace);
  box-sizing:border-box; width:100%; max-width:760px; margin-inline:auto;
  color:#44535f; background:var(--pkce-post-paper); font:400 16px/1.9 var(--pkce-post-sans);
  text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased;
}
.pkce-wp-post * { box-sizing:border-box; }
.pkce-wp-post > p { margin:0 0 1.2em; }
.pkce-wp-post > p:nth-of-type(1) { margin-bottom:20px; color:#9f3d2a; font:400 11px/1.6 var(--pkce-post-mono); letter-spacing:.1em; text-transform:uppercase; }
.pkce-wp-post > p:nth-of-type(2) { margin-bottom:27px; color:#66727c; font:400 21px/1.55 var(--pkce-post-serif); }
.pkce-wp-post > p:nth-of-type(3) { margin-bottom:38px; padding-top:17px; border-top:1px solid var(--pkce-post-line); font:400 11px/1.7 var(--pkce-post-mono); }
.pkce-wp-post > p:nth-of-type(3) small { font:inherit; }
.pkce-wp-post > p:nth-of-type(1) em, .pkce-wp-post > p:nth-of-type(2) em { font-style:normal; }
.pkce-wp-post > h2, .pkce-wp-post > h3 { color:var(--pkce-post-ink); font-family:var(--pkce-post-serif); font-weight:400; line-height:1.2; letter-spacing:-.035em; scroll-margin-top:110px; }
.pkce-wp-post > h2 { margin:2.2em 0 .65em; font-size:clamp(30px,4vw,38px); }
.pkce-wp-post > h3 { margin:1.4em 0 .65em; font-size:clamp(23px,3vw,29px); }
.pkce-wp-post a { color:#9f3d2a; text-decoration-color:rgb(187 76 53 / 42%); text-underline-offset:3px; }
.pkce-wp-post a:hover { text-decoration-color:currentColor; }
.pkce-wp-post :focus-visible { outline:3px solid #607e93; outline-offset:3px; }
.pkce-wp-post strong { font-weight:600; }
.pkce-wp-post sup { margin-left:4px; white-space:nowrap; font:400 10px/1 var(--pkce-post-mono); }
.pkce-wp-post .wp-block-quote { margin:32px 0; padding:.2rem 0 .2rem 1.4rem; border-left:2px solid #bb4c35; color:#314353; font:400 24px/1.5 var(--pkce-post-serif); }
.pkce-wp-post .wp-block-quote p { margin:0; }
.pkce-wp-post .wp-block-table { max-width:100%; margin:24px 0; overflow-x:auto; }
.pkce-wp-post table { display:table; color:inherit; width:100%; min-width:420px; border-collapse:collapse; font:400 14px/1.8 var(--pkce-post-sans); }
.pkce-wp-post th, .pkce-wp-post td { padding:.65rem .8rem; border:1px solid var(--pkce-post-line); text-align:left; vertical-align:top; }
.pkce-wp-post th { background:rgb(231 236 239 / 45%); font-weight:600; }
.pkce-wp-post figcaption { margin-top:.7rem; color:#6e7882; font:400 11px/1.7 var(--pkce-post-mono); }
.pkce-wp-post pre { max-width:100%; margin:1.7rem 0; padding:1.2rem 1.3rem; border:1px solid #33485a; border-radius:0; background:#1e3041; color:#eef1ef; font:400 13px/1.8 var(--pkce-post-mono); white-space:pre-wrap; overflow-wrap:anywhere; }
.pkce-wp-post code { padding:.12em .3em; border-radius:0; background:#eae5db; color:#172738; font:400 .86em/1.7 var(--pkce-post-mono); overflow-wrap:anywhere; }
.pkce-wp-post pre code { padding:0; background:transparent; color:inherit; font:inherit; }
.pkce-wp-post > .wp-block-list { margin:24px 0; padding-left:25px; }
.pkce-wp-post > .wp-block-list > li { padding-left:7px; margin-bottom:18px; }
.pkce-wp-post > .wp-block-list > li p { margin:0; }
.pkce-wp-post > .wp-block-list > li::marker { color:#9f3d2a; font-family:var(--pkce-post-mono); }
.pkce-wp-post > details { padding:17px 0; border-top:1px solid var(--pkce-post-line); font:400 15px/1.9 var(--pkce-post-sans); }
.pkce-wp-post > details > summary { font-weight:600; cursor:pointer; }
.pkce-wp-post > details > p { margin:14px 0 0; }
.pkce-wp-post .pkce-technical { margin-top:40px; }
.pkce-wp-post .pkce-references { margin-top:42px; border-top:1px solid var(--pkce-post-line); color:#52616e; font:400 13px/1.8 var(--pkce-post-sans); }
.pkce-wp-post .pkce-references h2 { margin:23px 0 15px; color:var(--pkce-post-ink); letter-spacing:0; font:500 13px/1.5 var(--pkce-post-mono); }
.pkce-wp-post .pkce-references ol { padding-left:19px; }
.pkce-wp-post .pkce-references li { margin-bottom:11px; padding-left:5px; }
.pkce-wp-post .pkce-demo { width:100%; max-width:100%; margin:36px 0; }
.pkce-wp-post figure img { display:block; max-width:100%; height:auto; }
/* A browser-opened post fragment has an unclassified body. WordPress supplies body classes. */
body:not([class]):has(> .pkce-wp-post) { margin:0; padding:40px 28px 70px; background:#f5f1e8; }
@media (max-width:600px) {
  body:not([class]):has(> .pkce-wp-post) { padding:25px 22px 56px; }
  .pkce-wp-post > h2 { font-size:30px; }
  .pkce-wp-post > h3 { font-size:25px; }
  .pkce-wp-post > p:nth-of-type(2) { font-size:19px; }
  .pkce-wp-post pre { padding:16px; font-size:12px; }
  .pkce-wp-post .wp-block-quote { font-size:23px; }
}
@media print {
  .pkce-wp-post { max-width:none; background:white; color:#1e2d3d; font-size:11pt; }
  .pkce-wp-post > h2, .pkce-wp-post > h3 { break-after:avoid; }
  .pkce-wp-post > details > * { display:block; }
}

/* The standalone HTML displays its title; WordPress supplies the published post title. */
.pkce-wp-post > .pkce-wp-preview-title { display:none; margin:0 0 24px; color:#1e2d3d; font:400 clamp(44px,6.4vw,80px)/.99 var(--pkce-post-serif); letter-spacing:-.055em; text-wrap:pretty; }
body:not([class]):has(> .pkce-wp-post) .pkce-wp-preview-title { display:block; }
@media(max-width:600px) { .pkce-wp-post > .pkce-wp-preview-title { font-size:clamp(39px,10vw,52px); letter-spacing:-.045em; } }
