.pkce-demo{--pkce-paper:#fffcf6;--pkce-ink:#1e2d3d;--pkce-muted:#52616e;--pkce-line:#d9d2c7;--pkce-accent:#1e2d3d;--pkce-soft:#e7ecef;--pkce-warn:#9f3d2a;--pkce-error:#bb4c35;box-sizing:border-box;color:var(--pkce-ink);background:var(--pkce-paper);font:15px/1.6 var(--wp--preset--font-family--sans,"DM Sans","Segoe UI","Helvetica Neue",Arial,sans-serif);border:1px solid var(--pkce-line);border-radius:16px;padding:26px;max-width:100%;margin:32px 0;isolation:isolate}
.pkce-demo *{box-sizing:border-box}.pkce-demo p{margin:0 0 12px}.pkce-demo button{appearance:none;font:inherit;font-size:14px;line-height:1.4;cursor:pointer;padding:10px 14px;color:var(--pkce-ink);background:transparent;border:1px solid var(--pkce-line);border-radius:7px;box-shadow:none;text-transform:none;letter-spacing:normal;min-height:42px}.pkce-demo button:hover{background:var(--pkce-soft)}.pkce-demo button:disabled{opacity:.4;cursor:default}.pkce-demo button:focus-visible,.pkce-demo summary:focus-visible,.pkce-demo svg [tabindex]:focus-visible{outline:3px solid var(--pkce-accent);outline-offset:3px}.pkce-demo button[aria-pressed=true],.pkce-demo [data-action=play]{background:var(--pkce-accent);color:#fff;border-color:var(--pkce-accent)}
.pkce-demo-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.pkce-demo-kicker{font-size:12px;font-weight:650;letter-spacing:1.6px;text-transform:uppercase;color:var(--pkce-accent)}.pkce-demo-badge{font-size:11px;border:1px solid var(--pkce-line);border-radius:20px;padding:3px 10px;color:var(--pkce-muted)}.pkce-chapters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.pkce-chapter-note{color:var(--pkce-muted);font-size:14px;min-height:23px}.pkce-transport{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-bottom:15px;border-bottom:1px solid var(--pkce-line)}.pkce-step-count{margin-left:auto;font-size:12px;font-variant-numeric:tabular-nums;color:var(--pkce-muted)}.pkce-sequence{display:block;width:100%;height:auto;margin:17px 0 8px;overflow:visible}.pkce-sequence text{font-family:var(--wp--preset--font-family--sans,"DM Sans","Segoe UI",Arial,sans-serif);fill:var(--pkce-ink)}.pkce-sequence .pkce-lane{stroke:var(--pkce-line);stroke-dasharray:3 5}.pkce-sequence .pkce-actor{fill:var(--pkce-soft);stroke:var(--pkce-line)}.pkce-sequence .pkce-actor-active{stroke:var(--pkce-accent);stroke-width:1.5}.pkce-sequence .pkce-arrow{stroke:var(--pkce-accent);fill:none;stroke-width:2}.pkce-sequence .pkce-error-arrow{stroke:var(--pkce-error)}.pkce-sequence .pkce-warn-arrow{stroke:var(--pkce-warn)}.pkce-sequence .pkce-marker{fill:var(--pkce-accent)}.pkce-sequence .pkce-marker-error{fill:var(--pkce-error)}.pkce-sequence .pkce-marker-warn{fill:var(--pkce-warn)}.pkce-sequence .pkce-step-label{font-size:12px}.pkce-sequence .pkce-past{opacity:.42}.pkce-sequence .pkce-current-row{cursor:pointer}.pkce-sequence .pkce-hit{fill:transparent}.pkce-sequence .pkce-label-bg{fill:var(--pkce-paper)}.pkce-secret-note{font-size:10px;fill:var(--pkce-accent)!important}.pkce-current{border-top:1px solid var(--pkce-line);padding-top:18px;min-height:115px}.pkce-current-title{font-size:17px;line-height:1.4;font-weight:650;margin-bottom:6px!important}.pkce-current-caption{color:var(--pkce-muted);font-size:14px}.pkce-message-details,.pkce-transcript{border-top:1px solid var(--pkce-line);padding:12px 0;font-size:13px}.pkce-demo summary{cursor:pointer;font-weight:550}.pkce-demo pre{font:12px/1.65 var(--wp--preset--font-family--mono,"DM Mono","SFMono-Regular",Consolas,monospace);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--pkce-soft);padding:14px;border-radius:6px;max-width:100%;margin:12px 0 0}.pkce-demo code{font:inherit;padding:0;background:transparent;color:inherit}.pkce-demo-footnote{font-size:12px;color:var(--pkce-muted);margin:13px 0!important}.pkce-transcript h3{font:600 15px/1.5 var(--wp--preset--font-family--sans,"DM Sans","Segoe UI",Arial,sans-serif);margin:15px 0 6px}.pkce-transcript ol{padding-left:23px;margin:0 0 12px}.pkce-transcript li{margin:5px 0}.pkce-mobile-sequence{display:none}.pkce-mobile-route{display:flex;align-items:center;justify-content:center;gap:13px;margin:24px 0 14px}.pkce-mobile-route span{background:var(--pkce-soft);padding:12px;border-radius:8px;text-align:center;font-weight:550;flex:1;max-width:160px}.pkce-mobile-route i{font-size:23px;font-style:normal;color:var(--pkce-accent)}.pkce-mobile-message{text-align:center;font-size:14px;font-weight:600;margin-bottom:18px}.pkce-mobile-trail{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-bottom:22px}.pkce-mobile-trail button{min-height:44px;min-width:24px;padding:0;border:0;border-radius:3px;flex:1;max-width:24px;position:relative;background:transparent!important;color:var(--pkce-ink)!important}.pkce-mobile-trail button::after{content:'';position:absolute;left:0;right:0;top:20px;height:4px;border-radius:3px;background:var(--pkce-line)}.pkce-mobile-trail button[data-complete=true]::after{background:var(--pkce-accent)}
.pkce-demo .pkce-past{opacity:1}.pkce-demo .pkce-past .pkce-arrow{opacity:.5}.pkce-demo .pkce-past .pkce-step-label{fill:var(--pkce-muted)}.pkce-demo.pkce-compact .pkce-sequence-wrap{display:none}.pkce-demo.pkce-compact .pkce-mobile-sequence{display:block}
@media(max-width:600px){.pkce-demo{padding:18px 15px;border-radius:10px}.pkce-demo-heading{align-items:flex-start}.pkce-demo-badge{display:none}.pkce-chapters{display:grid;grid-template-columns:1fr}.pkce-chapters button{text-align:left}.pkce-step-count{width:100%;margin:6px 0 0}.pkce-current{min-height:135px}.pkce-transport button{padding:9px 11px}.pkce-chapter-note{min-height:46px}}
@media(prefers-reduced-motion:reduce){.pkce-demo *{animation:none!important;transition:none!important}}
@media print{.pkce-chapters,.pkce-transport,.pkce-sequence-wrap,.pkce-mobile-sequence,.pkce-message-details,.pkce-current,.pkce-chapter-note{display:none!important}.pkce-transcript>ol,.pkce-transcript>h3{display:block!important}.pkce-demo{break-inside:auto;padding:15px}}

/* Iteritory theme integration: ink controls, steel-blue paths, vermilion outcomes. */
.pkce-demo{border-radius:2px}
.pkce-demo button{border-radius:999px}
.pkce-demo-kicker,.pkce-step-count,.pkce-demo-badge{font-family:var(--wp--preset--font-family--mono,"DM Mono","SFMono-Regular",Consolas,monospace)}
.pkce-demo-kicker{color:#9f3d2a}
.pkce-sequence .pkce-arrow{stroke:#526b7d}
.pkce-sequence .pkce-marker{fill:#526b7d}
.pkce-sequence .pkce-error-arrow{stroke:#bb4c35}
.pkce-sequence .pkce-warn-arrow{stroke:#9f3d2a}
.pkce-sequence .pkce-marker-error{fill:#bb4c35}
.pkce-sequence .pkce-marker-warn{fill:#9f3d2a}
.pkce-demo button:focus-visible,.pkce-demo summary:focus-visible,.pkce-demo svg [tabindex]:focus-visible{outline-color:#607e93}
.pkce-demo pre{border-radius:0;border:1px solid #33485a;background:#1e3041;color:#eef1ef}
.pkce-demo pre code{color:inherit;background:transparent;font:inherit}

/* Plain-language context for app registration and per-attempt values. */
.pkce-demo .pkce-foundation{border-left:3px solid #607e93;background:var(--pkce-soft);padding:16px 18px;margin:0 0 16px;font-size:14px;overflow-wrap:anywhere}
.pkce-demo .pkce-foundation p:last-child{margin-bottom:0}
.pkce-demo .pkce-reading-hint{font-size:13px;color:var(--pkce-muted)}
.pkce-demo .pkce-roles{font-size:14px;margin:0 0 18px}
.pkce-demo .pkce-roles ul{padding-left:22px;margin:12px 0}
.pkce-demo .pkce-roles li{margin:6px 0}
.pkce-demo .pkce-continue{margin-bottom:16px}
.pkce-demo [hidden]{display:none!important}
@media(max-width:600px){.pkce-demo .pkce-foundation{padding:14px}}
@media print{.pkce-demo .pkce-continue{display:none!important}.pkce-demo .pkce-roles>ul{display:block!important}}
