/* Public extension of the accepted session, console and founder materials.
   Route-scoped and loaded last; established product/runtime contracts stay native. */
html:has(.pg-public) { background:#fff; scrollbar-color:#b7bab8 #f3f1ed; }
body.pg.pg-public {
  --paper:#fff; --plate:#f3f1ed; --fg:#151719; --fg-dim:#5e625f;
  --fg-faint:#5e625f; --fg-inv:#fff; --line:#e1e1de; --line-2:#b7bab8;
  --hue:#2e4633; --hue-soft:#edf0e7; --sq-l:#eee9d9; --sq-d:#83916f;
  --public-green:#2e4633; --public-sage:#edf0e7; --public-rail:#f3f1ed;
  --gut:clamp(20px,4vw,56px); --col:1180px;
  background:var(--paper); color:var(--fg); font:400 16px/1.65 var(--sans);
}
.pg-public ::selection { background:#dae2d0; color:var(--fg); }
.pg-public :is(a,button,summary,input):focus-visible { outline:3px solid var(--public-green); outline-offset:4px; }
body.pg-public .pg-nav { padding:14px 32px; background:var(--public-rail); border-bottom:1px solid var(--line); }
body.pg-public .pg-links a { display:inline-flex; align-items:center; min-height:44px; border-radius:12px; font-size:13px; }
body.pg-public .pg-links a:is(:hover,[aria-current='page']) { background:#e0e7d7; color:var(--public-green); }
body.pg-public .pg-crumbs { display:none; }
body.pg-public .cta {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:46px; padding:12px 22px; border:1px solid transparent; border-radius:28px;
  background:var(--public-green); color:#fff; box-shadow:none; font:500 14px/1.4 var(--sans);
  transition:background 180ms ease-out,border-color 180ms ease-out;
}
body.pg-public .cta:hover { background:#233a28; color:#fff; transform:none; box-shadow:none; }
body.pg-public .cta.ghost { color:var(--public-green); background:transparent; border-color:var(--line-2); }
body.pg-public .cta.ghost:hover { background:var(--public-sage); border-color:var(--public-green); }
body.pg-public .cta::before, body.pg-public .cta::after { display:none; }
body.pg-public .mono { font-family:var(--sans); font-size:12px; letter-spacing:0; text-transform:none; line-height:1.5; }
body.pg-public .num { font-family:var(--display); font-variant-numeric:tabular-nums; }
body.pg-public :is(h1,h2) { letter-spacing:-.03em; text-wrap:balance; }
body.pg-public h1 { font-size:clamp(36px,4.5vw,64px); line-height:1.08; font-weight:700; max-width:20ch; }
body.pg-public h2 { font-size:clamp(27px,3vw,38px); line-height:1.18; font-weight:500; max-width:32ch; margin-bottom:22px; }
body.pg-public h3 { font-size:19px; line-height:1.35; }
body.pg-public .lead { font-size:18px; line-height:1.65; max-width:65ch; }
body.pg-public .pg-sec { padding-block:64px; border-color:var(--line); }
body.pg-public .pg-sec:has(> .pg-wrap > .pg-cta-row) { padding-block:64px; }
body.pg-public :is(.pg-hero,.billing-hero) { padding-block:52px; background:var(--public-sage); }
body.pg-public :is(.pg-hero,.billing-hero) .lead { margin-top:24px; }
body.pg-public .pg-kick, body.pg-public .pg-coord { display:none; }
body.pg-public .pg-cta-row { gap:12px; margin-top:28px; }
body.pg-public .pg-figs { margin-top:32px; border-color:#c9cebf; gap:20px; }
body.pg-public .pg-figs b { font:500 28px/1.2 var(--display); }
body.pg-public .pg-figs span { font-size:13px; }
body.pg-public .pg-note { border:0; padding:20px 24px; background:var(--public-sage); border-radius:16px; color:var(--fg-dim); }
body.pg-public .pg-note-t { color:var(--public-green); }
body.pg-public .pg-plate { background:var(--public-rail); border:0; border-radius:16px; box-shadow:none; }
body.pg-public .pg-quote { padding:30px; background:var(--public-sage); border:0; border-radius:16px; }
body.pg-public .pg-quote blockquote { font:italic 400 clamp(24px,2.5vw,34px)/1.35 Georgia,serif; color:var(--public-green); }
body.pg-public .pg-table { font-size:15px; border-color:var(--line); }
body.pg-public .pg-table caption { text-align:left; color:var(--fg-dim); font:400 13px/1.5 var(--sans); padding-block:12px; }
body.pg-public .pg-table thead { background:var(--public-rail); }
body.pg-public .pg-table :is(th,td) { padding:18px 16px; border-color:var(--line); }
body.pg-public .pg-table thead th { font:500 13px/1.5 var(--sans); text-transform:none; letter-spacing:0; }
body.pg-public .pg-table .n { font-family:var(--sans); white-space:normal; }
body.pg-public .pg-steps .s-n { background:var(--public-sage); color:var(--public-green); border:0; border-radius:50%; width:40px; height:40px; display:grid; place-items:center; font-size:14px; }
body.pg-public .pg-way { border:1px solid var(--line-2); border-radius:24px; min-height:44px; padding:10px 18px; background:#fff; font:500 14px/1.4 var(--sans); }
body.pg-public .pg-way[aria-pressed='true'] { background:var(--public-green); color:#fff; border-color:var(--public-green); }
body.pg-public .pg-track { background:var(--public-rail); padding:24px; border:0; border-radius:16px; }
body.pg-public .pg-track-bar { gap:8px; }
body.pg-public .pg-track-note { border-color:var(--line); }
body.pg-public .pg-track-note b { font-size:16px; }
body.pg-public .pg-chip { background:var(--public-sage); color:var(--public-green); border:0; border-radius:20px; font:400 11px/1.4 var(--sans); padding:4px 8px; }
body.pg-public .pg-chip.is-free { background:#dae2d0; }
body.pg-public .pg-from { font:400 13px/1.6 var(--sans); letter-spacing:0; text-transform:none; }
/* Contents navigation is server-rendered. On phones it scrolls within its own rail. */
.public-contents { position:sticky; top:0; z-index:10; display:flex; align-items:center; gap:24px; padding:10px 32px; background:#fff; border-bottom:1px solid var(--line); }
.public-contents > p { flex:none; font-size:12px; color:var(--fg-dim); }
.public-contents ol { display:flex; gap:8px; list-style:none; padding:0; margin:0; overflow:auto; scrollbar-width:thin; }
.public-contents li { flex:none; }
.public-contents a { display:flex; align-items:center; min-height:44px; padding:8px 12px; font-size:13px; line-height:1.4; border-radius:12px; }
.public-contents a:hover { background:var(--public-sage); color:var(--public-green); }
.pg-public [id] { scroll-margin-top:100px; }
.public-hero-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr); align-items:center; gap:56px; }
.public-hero-copy { min-width:0; }
.public-lesson-preview, .public-pathway { min-width:0; background:#fff; padding:24px; border-radius:20px; }
.public-preview-heading { display:flex; justify-content:space-between; gap:12px; color:var(--fg-dim); font-size:12px; margin-bottom:12px; }
.public-preview-heading > span:last-child { background:#dae2d0; color:var(--public-green); padding:3px 9px; border-radius:16px; }
body.pg-public .public-preview-title { font:500 23px/1.3 var(--display); letter-spacing:-.02em; margin-bottom:20px; color:var(--public-green); }
.public-lesson-preview figure { margin:0; }
.public-preview-board { display:grid; grid-template-columns:repeat(8,1fr); aspect-ratio:1; width:100%; max-width:264px; margin:auto; border-radius:8px; overflow:hidden; }
.public-preview-board > span { background:var(--sq-l); position:relative; display:grid; place-items:center; }
.public-preview-board > .is-dark { background:var(--sq-d); }
.public-preview-board > .is-rook-line:not(:has(img))::after { content:''; width:18%; aspect-ratio:1; border-radius:50%; background:var(--public-green); opacity:.6; }
.public-preview-board img { width:90%; height:90%; }
.public-lesson-preview figcaption { margin:12px 0 18px; font-size:13px; color:var(--fg-dim); text-align:center; }
.public-preview-link { display:flex; justify-content:space-between; gap:16px; align-items:center; border-top:1px solid var(--line); min-height:48px; padding-top:12px; font-size:14px; color:var(--public-green); }
.public-preview-link:hover { text-decoration:underline; text-underline-offset:4px; }
.public-pathway ol { list-style:none; margin:0 0 18px; padding:0; }
.public-pathway li { display:flex; align-items:center; gap:10px; padding:10px 0; border-top:1px solid var(--line); font-size:15px; }
.public-stage-number { margin-left:auto; color:var(--fg-dim); font-size:12px; }
/* Long lists become editorial rows instead of repeated numbered cards. */
body.pg-public :is(.ro-dec,.ro-vary) { display:block; }
body.pg-public :is(.ro-dec,.ro-vary) > li { display:grid; grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr) minmax(0,1fr); gap:24px; padding:24px 0; border-color:var(--line); }
body.pg-public :is(.ro-dn,.ro-vn) { font:500 17px/1.4 var(--display); }
body.pg-public :is(.ro-dn,.ro-vn) .num { display:none; }
body.pg-public :is(.ro-dw,.ro-dy,.ro-vp,.ro-vf) { padding:0; margin:0; border:0; font-size:15px; }
body.pg-public .ro-dy { color:var(--public-green); }
body.pg-public .pg-swap { gap:24px; }
body.pg-public .pg-swap > div { padding:24px; border:0; border-radius:16px; background:var(--public-rail); }
body.pg-public .pg-swap > .is-after { background:var(--public-sage); }
body.pg-public .pg-swap-l { font:500 14px/1.8 var(--sans); text-transform:none; letter-spacing:0; flex-wrap:wrap; }
/* About takes its expressive opening from the founder poster. */
body.pg-public-about .pg-hero { background:var(--public-green); }
body.pg-public-about .pg-hero h1 { color:#f4f3e9; font:italic 400 clamp(40px,5.4vw,76px)/1.1 Georgia,serif; letter-spacing:-.035em; max-width:20ch; }
body.pg-public-about .pg-hero .lead { color:#d5dfcf; }
body.pg-public-about .ab-word { background:var(--public-sage); border-radius:20px; padding:36px; color:var(--public-green); }
body.pg-public-about .ab-word > p { color:var(--public-green); }
/* Legal pages use a quiet reading rail and retain the authored policy wording. */
.pg-public-legal .public-document-layout { max-width:1180px; margin:auto; display:grid; grid-template-columns:220px minmax(0,1fr); gap:64px; padding:40px 32px 72px; align-items:start; }
.pg-public-legal .public-contents { display:block; top:24px; padding:20px; border:0; border-radius:16px; background:var(--public-rail); }
.pg-public-legal .public-contents > p { margin-bottom:12px; }
.pg-public-legal .public-contents ol { display:block; overflow:visible; }
.pg-public-legal .public-contents a { padding:10px 0; font-size:14px; }
.pg-public-legal .public-contact { border-top:1px solid var(--line-2); margin-top:16px; color:var(--public-green); }
body.pg-public-legal .pg-sec { padding:30px 0; border:0; }
body.pg-public-legal .pg-wrap { width:100%; padding:0; margin:0; max-width:72ch; }
body.pg-public-legal .pg-sec:first-of-type { padding-top:0; padding-bottom:36px; border-bottom:1px solid var(--line); }
body.pg-public-legal h1 { font-size:clamp(36px,4vw,54px); }
body.pg-public-legal h2 { font-size:26px; margin-bottom:16px; }
body.pg-public-legal .pg-sec p + p { margin-top:16px; }
body.pg-public-legal .pg-sec a { color:var(--public-green); text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
body.pg-public-legal .pg-kick { display:block; font:400 13px/1.5 var(--sans); margin-bottom:16px; letter-spacing:0; }
body.pg-public-legal .pg-kick .dot { display:none; }
body.pg-public-legal .lead { font-size:17px; }
/* Pricing retains live frequency/checkout hooks; all plans sit on a shared baseline. */
body.pg-public-paywall .billing-hero { padding-block:40px; }
body.pg-public-paywall .billing-hero h1 { max-width:24ch; }
body.pg-public-paywall .billing-hero .lead { max-width:80ch; font-size:16px; margin-top:18px; }
body.pg-public-paywall .billing-proof { margin-top:22px; }
body.pg-public-paywall .billing-plans { padding-top:36px; }
body.pg-public-paywall .billing-section-head h2 { font-size:30px; }
body.pg-public-paywall .billing-grid { gap:18px; }
body.pg-public-paywall .billing-card { background:var(--public-rail); border:0; border-radius:16px; padding:26px; }
body.pg-public-paywall .billing-card.is-recommended { background:var(--public-sage); border:0; box-shadow:none; transform:none; }
body.pg-public-paywall .billing-card.is-invert { background:var(--public-green); color:#fff; --fg-dim:#d5dfcf; --fg-faint:#d5dfcf; --line:#64765e; --line-2:#91a186; --hue:#e0e7d7; }
body.pg-public-paywall .billing-card.is-invert .billing-price strong { color:#fff; }
body.pg-public-paywall .billing-card.is-invert .billing-cta { background:#fff; color:var(--public-green); }
body.pg-public-paywall .billing-card.is-invert .billing-cta:hover { background:#e0e7d7; }
body.pg-public-paywall .billing-name { font-size:25px; }
body.pg-public-paywall .billing-price strong { font:500 42px/1.2 var(--display); letter-spacing:-.03em; }
body.pg-public-paywall .billing-mark { background:#dae2d0; color:var(--public-green); padding:4px 9px; border-radius:16px; }
body.pg-public-paywall .billing-items li::before { content:''; width:6px; height:6px; top:7px; border-radius:50%; background:currentColor; }
body.pg-public-paywall .billing-frequency { background:var(--public-rail); border:0; border-radius:28px; padding:4px; }
body.pg-public-paywall .billing-frequency button { min-height:44px; border:0; border-radius:24px; font-size:14px; }
body.pg-public-paywall .billing-frequency button[aria-pressed='true'] { background:var(--public-green); color:#fff; box-shadow:none; }
body.pg-public-paywall .billing-ledger { background:var(--public-sage); border:0; border-radius:16px; padding:24px; }
/* Session detail and catalogue share the actual ivory/sage board and warm rail. */
body.pg-public-inside-a-session .is-sec { background:var(--public-rail); }
body.pg-public-inside-a-session .is-shot { border:0; border-radius:16px; overflow:hidden; box-shadow:none; }
body.pg-public-inside-a-session .is-hour { gap:0; }
body.pg-public-inside-a-session .is-hour > li { border:0; border-top:1px solid var(--line); border-radius:0; background:#fff; padding:22px; }
body.pg-public-inside-a-session .is-hour > li:nth-child(even) { background:var(--public-rail); }
body.pg-public-inside-a-session :is(.is-clock,.is-gate) { border:0; border-radius:16px; background:var(--public-sage); padding:24px; }
body.pg-public-inside-a-session .is-p { border:0; border-radius:16px; background:#fff; box-shadow:none; }
body.pg-public-inside-a-session .is-ask li { border-color:var(--line); }
body.pg-public-curriculum .cu-mini { background:#fff; padding:24px; border-radius:20px; }
body.pg-public-curriculum .cu-mb i { background:var(--public-green); }
body.pg-public-curriculum .cu-shape { gap:0; background:var(--public-rail); border-radius:16px; padding:12px; }
body.pg-public-curriculum .cu-shape > div { background:transparent; border:0; border-right:1px solid var(--line-2); }
body.pg-public-curriculum .cu-shape > div:last-child { border-right:0; }
body.pg-public-curriculum .cu-grid { grid-template-columns:220px minmax(0,1fr); gap:40px; }
body.pg-public-curriculum .cu-rail { background:var(--public-rail); border-radius:16px; padding:20px; }
body.pg-public-curriculum .cu-rail > ol > li > a { border-left:0; border-radius:12px; min-height:48px; padding:10px; }
body.pg-public-curriculum .cu-rail > ol > li.is-on > a { background:var(--public-green); color:#fff; }
body.pg-public-curriculum .cu-rail > ol > li.is-on :is(.cu-rn,.cu-rt,.cu-rc) { color:#fff; }
body.pg-public-curriculum .cu-bh { padding:24px; border:0; border-radius:16px; background:var(--public-sage); }
body.pg-public-curriculum .cu-bh h2 { font-size:30px; }
body.pg-public-curriculum .cu-s { border-left:0; padding:14px 12px; border-radius:0; }
body.pg-public-curriculum .cu-s:hover { background:var(--public-sage); border-radius:10px; }
body.pg-public-curriculum .cu-s.is-gate { background:var(--public-sage); }
body.pg-public-curriculum .cu-s :is(.cu-p,.cu-n) { font-size:13px; }
body.pg-public-curriculum .cu-s .cu-t { font-size:16px; }
body.pg-public-curriculum .cu-uh { padding:12px; background:var(--public-rail); border:0; }
body.pg-public-curriculum .cu-fc { border:0; background:var(--public-sage); }
body.pg-public-curriculum .cu-fc:hover { box-shadow:none; transform:none; outline:1px solid var(--public-green); }
/* Footer matches the warm founder/console shell. */
body.pg-public .pg-foot { --paper:#f3f1ed; --plate:#fff; --fg:#151719; --fg-dim:#5e625f; --fg-faint:#5e625f; --fg-inv:#fff; --line:#e1e1de; --line-2:#b7bab8; background:var(--public-rail); color:var(--fg); border-top:1px solid var(--line); padding:52px var(--gut) 28px; }
body.pg-public .pg-foot::before { display:none; }
body.pg-public .pg-foot-top { padding-top:0; }
body.pg-public .pg-foot .pg-foot-brand .word { font-size:34px; }
body.pg-public .pg-foot-col a { min-height:32px; display:inline-flex; align-items:center; color:var(--fg); }
body.pg-public .pg-foot a:hover { color:var(--public-green); text-decoration:underline; text-underline-offset:4px; }
body.pg-public .pg-foot-fine { font:400 12px/1.6 var(--sans); color:var(--fg-dim); }
/* Readable from first paint even when the older heading enhancer runs. */
body.pg-public :is(.ui-reveal-word,.pg-reveal) { opacity:1 !important; filter:none !important; transform:none !important; animation:none !important; }
@media (max-width:1000px) {
  body.pg-public .pg-nav { padding:12px 20px; }
  .public-hero-grid { gap:30px; grid-template-columns:minmax(0,1.3fr) minmax(240px,.8fr); }
  .public-contents { padding-inline:20px; gap:12px; }
  .pg-public-legal .public-document-layout { grid-template-columns:190px minmax(0,1fr); gap:32px; padding-inline:24px; }
  body.pg-public-curriculum .cu-grid { grid-template-columns:minmax(0,1fr); }
  body.pg-public-curriculum .cu-rail { position:static; }
}
@media (max-width:700px) {
  body.pg-public .pg-nav { gap:12px; }
  body.pg-public .pg-links { gap:4px; }
  body.pg-public .pg-links a { padding:8px; font-size:12px; }
  body.pg-public :is(.pg-hero,.billing-hero) { padding-block:32px; }
  body.pg-public .pg-sec, body.pg-public .pg-sec:has(> .pg-wrap > .pg-cta-row) { padding-block:40px; }
  body.pg-public .lead { font-size:16px; }
  body.pg-public h1 { font-size:38px; }
  body.pg-public h2 { font-size:28px; }
  .public-contents { position:relative; gap:8px; padding:6px 20px; }
  .public-contents > p { display:none; }
  .public-contents a { font-size:12px; }
  .public-hero-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
  .public-lesson-preview { display:grid; grid-template-columns:minmax(0,1fr) 124px; gap:12px 20px; padding:20px; }
  .public-preview-heading { flex-direction:column; align-items:start; margin:0; }
  body.pg-public .public-preview-title { font-size:21px; margin:0; }
  .public-lesson-preview figure { grid-column:2; grid-row:1 / span 3; }
  .public-lesson-preview figcaption { font-size:11px; margin:8px 0 0; }
  .public-lesson-preview .public-preview-link { grid-column:1; font-size:13px; }
  body.pg-public :is(.ro-dec,.ro-vary) > li { grid-template-columns:minmax(0,1fr); gap:10px; padding-block:22px; }
  body.pg-public :is(.ro-dn,.ro-vn) { font-size:19px; }
  .pg-public-legal .public-document-layout { display:block; padding:24px 20px 48px; }
  .pg-public-legal .public-contents { position:relative; top:auto; margin-bottom:32px; padding:16px; }
  .pg-public-legal .public-contents > p { display:block; }
  .pg-public-legal .public-contents ol { display:flex; flex-wrap:wrap; gap:0 16px; }
  .pg-public-legal .public-contents a { font-size:13px; }
  body.pg-public-legal .pg-sec { padding-block:24px; }
  body.pg-public .pg-table { display:block; max-width:100%; overflow-x:auto; }
  body.pg-public .pg-table :is(th,td) { min-width:120px; padding:14px 12px; }
  body.pg-public-curriculum .cu-shape { display:block; }
  body.pg-public-curriculum .cu-shape > div { border-right:0; border-bottom:1px solid var(--line-2); }
  body.pg-public-curriculum .cu-shape > div:last-child { border-bottom:0; }
  body.pg-public-curriculum .cu-bh { padding:20px; }
  body.pg-public-paywall .billing-section-head { align-items:start; flex-direction:column; }
  body.pg-public-paywall .billing-note { text-align:left; max-width:none; }
  body.pg-public-paywall .billing-card { padding:24px; }
  body.pg-public .pg-foot { padding-top:40px; }
}
@media (max-width:360px) {
  body.pg-public h1 { font-size:33px; }
  .public-lesson-preview { grid-template-columns:minmax(0,1fr); }
  .public-lesson-preview figure { display:none; }
  body.pg-public .cta { padding-inline:18px; }
}
@media (prefers-reduced-motion:reduce) {
  html:has(.pg-public) { scroll-behavior:auto; }
  .pg-public *, .pg-public *::before, .pg-public *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
@media print {
  .public-contents, .public-lesson-preview, .public-pathway { display:none; }
  .pg-public-legal .public-document-layout { display:block; padding:0; }
  body.pg-public .pg-sec { background:#fff; color:#151719; padding-block:20px; }
}
