/* =========================================================
   FinanceOS — Prompt Library
   Hub + single-prompt styles. Vanilla CSS, BEM-ish.
   Tokens declared inline (no theme dep beyond fonts).
   ========================================================= */

/* Chrome-off mode: keep global nav visible, hide footer, apply warm bg. */
body.fos-no-chrome { background:#fffbf5; }
body.fos-no-chrome .fos-footer { display:none !important; }

.pl{
  --pl-mirage:#1a1a2e;
  --pl-haiti:#0c142b;
  --pl-mid-gray:#5a5a6e;
  --pl-manatee:#8a8aa0;
  --pl-pearl:#e8e4dd;
  --pl-pearl-soft:#efeae3;
  --pl-linen:#faf3e8;
  --pl-ghost:#cfd0d6;
  --pl-rose:#f93576;
  --pl-rose-soft:#fff0f4;
  --pl-sun:#ffa310;
  --pl-cornflower:#6e7cff;
  --pl-meadow:#22c55e;

  --pl-bg-1:#fff9ed;
  --pl-bg-2:#fffbf5;
  --pl-grid-line:rgba(208,208,208,0.18);

  font-family:'Poppins',system-ui,-apple-system,sans-serif;
  color:var(--pl-mirage);
  -webkit-font-smoothing:antialiased;
}
.pl *, .pl *::before, .pl *::after { box-sizing: border-box; }
.pl a{color:inherit;text-decoration:none}
.pl img{display:block;max-width:100%}

.pl-mono{font-family:'JetBrains Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}

/* ---------- HERO ---------- */
.pl-hero{
  position:relative;
  background:linear-gradient(180deg,var(--pl-bg-1),var(--pl-bg-2));
  overflow:hidden;
  /* Hero bg flows up under the transparent nav. See --fos-nav-h pattern. */
  margin-top:calc(-1 * var(--fos-nav-h));
  padding-top:var(--fos-nav-h);
}
.pl-hero::before{
  content:"";
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(transparent 23px, var(--pl-grid-line) 23px),
    linear-gradient(90deg, transparent 79px, var(--pl-grid-line) 79px);
  background-size:80px 24px;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 95%);
          mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 95%);
}
.pl-hero__trail{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 95%);
          mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 95%);
}
.pl-hero__trail > div{
  position:absolute;pointer-events:none;
  width:80px;height:24px;
  background:#e89a2a;opacity:.85;
  transition:opacity 1400ms ease-out, background-color 1400ms ease-out;
}
.pl-hero__trail > div.is-fading{opacity:0;background:#fce4b3}
.pl-hero__inner{
  position:relative;z-index:2;
  max-width:1400px;margin:0 auto;
  padding:120px 24px 120px;
  text-align:center;
}
.pl-hero__title{
  font-weight:400;color:var(--pl-mirage);
  font-size:clamp(40px,5.2vw,56px);
  line-height:1.08;letter-spacing:-.02em;
  margin:0 auto 20px;max-width:820px;
}
.pl-hero__title-text{white-space:pre-wrap;}
.pl-hero__title-cursor{
  display:inline-block;
  width:.06em;
  height:.92em;
  margin-left:.04em;
  vertical-align:-0.08em;
  background:currentColor;
  border-radius:1px;
  animation:pl-caret-blink 1s steps(1) infinite;
}
@keyframes pl-caret-blink{
  0%,49%{opacity:1}
  50%,100%{opacity:0}
}
@media (prefers-reduced-motion: reduce){
  .pl-hero__title-cursor{display:none;}
}
.pl-hero__lede{
  max-width:640px;margin:0 auto;
  font-size:16px;line-height:26px;color:var(--pl-mirage);
}
.pl-keycap{
  position:absolute;
  pointer-events:auto;
  cursor:grab;
  user-select:none;-webkit-user-select:none;
  touch-action:none;
  z-index:5;
  transition:filter .25s ease;
  will-change:transform,left,top;
}
.pl-keycap:active,.pl-keycap.is-grabbing{cursor:grabbing}
.pl-keycap.is-grabbing{
  filter:drop-shadow(0 22px 38px rgba(20,20,40,.32));
  z-index:20;
}
.pl-keycap.is-edge{
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12a9 9 0 1 1-3-6.7'/><polyline points='21 3 21 9 15 9'/></svg>") 14 14, grab;
}
.pl-keycap.is-rotating{cursor:grabbing;}
/* Let pointer events fall through the hero title container so keycaps that
   tuck under the headline are still grabbable. There are no interactive
   children in the inner (just <h1> + <p>) so we can disable on the whole tree. */
.pl-hero__inner,.pl-hero__inner *{pointer-events:none}
.pl-keycap img{
  width:100%;height:100%;object-fit:contain;
  pointer-events:none;
  -webkit-user-drag:none;user-drag:none;
}
.pl-keycap--claude  { left:12%;   top:calc(90px  + var(--fos-nav-h)); width:118px; height:122px; transform:rotate(-14deg) }
.pl-keycap--gemini  { left:20%;   top:calc(200px + var(--fos-nav-h)); width:104px; height:107px; transform:rotate(20deg) }
.pl-keycap--heart   { right:10.5%;top:calc(200px + var(--fos-nav-h)); width:104px; height:107px; transform:rotate(12deg) }
.pl-keycap--openai  { right:14%;  top:calc(40px  + var(--fos-nav-h)); width:114px; height:118px; transform:rotate(0deg) }
.pl-keycap--brand   { right:3%;   top:calc(115px + var(--fos-nav-h)); width:108px; height:112px; transform:rotate(26deg) }

@media (max-width: 1320px) { .pl-keycap--gemini, .pl-keycap--heart { display:none } }
@media (max-width: 1100px) { .pl-keycap--claude, .pl-keycap--openai { display:none } }
@media (max-width: 880px)  { .pl-keycap--brand { display:none } }
@media (max-width: 760px)  {
  .pl-hero__inner { padding:64px 20px 80px }
  /* The typewriter animation erases/retypes the title. On mobile the full
     heading wraps to two rows, so reserve that height to stop the page from
     jumping up and down as the line count changes mid-animation. Keep the
     title's inline flow intact so the typing cursor stays at the end of the
     text rather than being treated as a separate (vertically centered) box. */
  .pl-hero__title {
    min-height: calc(2 * 1.08em);
  }
}

/* ---------- FEATURED ROW ---------- */
.pl-featured{
  max-width:1280px;margin:0 auto;
  padding:48px 32px 52px;
}
.pl-featured__head{
  display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;
  gap:16px;margin-bottom:28px;
}
.pl-featured__title{
  margin:0;color:var(--pl-mirage);
  font-weight:600;font-size:32px;line-height:36.8px;letter-spacing:-.7px;
}
.pl-updated{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'JetBrains Mono',monospace;font-weight:700;font-size:11px;
  color:var(--pl-manatee);letter-spacing:1.2px;text-transform:uppercase;
}
.pl-updated__dot{
  width:6px;height:6px;border-radius:99px;background:var(--pl-meadow);
  box-shadow:0 0 0 3px rgba(34,197,94,.18);
}
.pl-featured__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;
}
.pl-feat{
  display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--pl-pearl);border-radius:16px;
  overflow:hidden;text-decoration:none;
  box-shadow:0 2px 7px rgba(0,0,0,.04);
  transition:transform .2s ease, box-shadow .2s ease;
}
.pl-feat:hover{transform:translateY(-2px);box-shadow:0 14px 36px -18px rgba(0,0,0,.18)}
.pl-feat__image{
  position:relative;height:188px;background:var(--pl-linen);overflow:hidden;
}
.pl-feat__image img{
  position:absolute;left:50%;top:50%;
  width:115%;height:auto;
  transform:translate(-50%,-50%) rotate(-15deg);pointer-events:none;
}
.pl-feat__image::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(12,20,43,.32) 0%,rgba(12,20,43,.08) 80%);
}
.pl-feat__num{
  position:absolute;top:20px;left:22px;z-index:2;
  background:#fff;border-radius:4px;padding:3px 8px;
  box-shadow:0 1px 1px rgba(0,0,0,.06);
  font-family:'JetBrains Mono',monospace;font-weight:700;font-size:10px;
  letter-spacing:1.4px;text-transform:uppercase;
}
.pl-feat--1 .pl-feat__num{color:var(--pl-rose)}
.pl-feat--2 .pl-feat__num{color:var(--pl-sun)}
.pl-feat--3 .pl-feat__num{color:var(--pl-cornflower)}
.pl-feat__dots{
  position:absolute;top:20px;right:22px;z-index:2;
  background:rgba(255,255,255,.85);backdrop-filter:blur(2px);
  padding:16px 6px 11px;border-radius:6px;
  display:flex;gap:3px;align-items:center;
}
.pl-feat__dots span{width:6px;height:6px;border-radius:99px;background:var(--pl-rose)}
.pl-feat--2 .pl-feat__dots span:nth-child(1),
.pl-feat--2 .pl-feat__dots span:nth-child(2){background:var(--pl-sun)}
.pl-feat--2 .pl-feat__dots span:nth-child(3){background:var(--pl-ghost)}
.pl-feat--3 .pl-feat__dots span{background:var(--pl-cornflower)}
.pl-feat__body{
  padding:20px 22px 22px;display:flex;flex-direction:column;gap:12px;flex:1;
}
.pl-tag{
  align-self:flex-start;
  border:1px solid var(--pl-pearl);border-radius:4px;
  padding:3px 9px;background:#fff;
  font-family:'JetBrains Mono',monospace;font-weight:700;font-size:10.5px;
  color:var(--pl-mid-gray);letter-spacing:1px;text-transform:uppercase;
}
.pl-feat__title{
  margin:0;color:var(--pl-mirage);
  font-weight:600;font-size:18px;line-height:23.4px;letter-spacing:-.3px;
}
.pl-feat__desc{margin:0;color:var(--pl-mid-gray);font-size:13.5px;line-height:21.6px}
.pl-feat__meta{
  margin-top:auto;border-top:1px solid var(--pl-pearl-soft);padding-top:11px;
  display:flex;justify-content:space-between;
  font-family:'JetBrains Mono',monospace;font-weight:400;font-size:10.5px;
  color:var(--pl-manatee);letter-spacing:1px;text-transform:uppercase;
}

@media (max-width: 1080px){
  .pl-featured__grid{grid-template-columns:1fr 1fr}
  .pl-featured__grid .pl-feat:nth-child(3){grid-column:span 2}
}
@media (max-width: 680px){
  .pl-featured{padding:24px 20px 40px}
  .pl-featured__grid{grid-template-columns:1fr}
  .pl-featured__grid .pl-feat:nth-child(3){grid-column:auto}
  .pl-featured__title{font-size:24px;line-height:1.2}
}

/* ---------- LIBRARY (sidebar + grid) ---------- */
.pl-library{
  max-width:1280px;margin:0 auto;
  padding:24px 32px 60px;
  display:grid;grid-template-columns:240px 1fr;gap:48px;
  align-items:flex-start;
}
.pl-sidebar{
  position:sticky;top:24px;
  max-height:calc(100vh - 48px);
  overflow-y:auto;
  padding-right:6px;
  display:flex;flex-direction:column;gap:24px;
  scrollbar-width:thin;
  scrollbar-color:var(--pl-pearl) transparent;
}
.pl-sidebar::-webkit-scrollbar{width:6px}
.pl-sidebar::-webkit-scrollbar-track{background:transparent}
.pl-sidebar::-webkit-scrollbar-thumb{background:var(--pl-pearl);border-radius:99px}
.pl-search{
  border:1px solid var(--pl-pearl);background:#fff;border-radius:10px;
  padding:13px 15px;display:flex;align-items:center;gap:10px;
}
.pl-search svg{flex:0 0 auto;color:var(--pl-manatee)}
.pl-search input{
  flex:1;border:0;outline:0;background:transparent;
  font:inherit;font-size:14px;color:var(--pl-mirage);padding:0;
}
.pl-filter-group h4{
  font-family:'JetBrains Mono',monospace;font-weight:700;font-size:11px;
  letter-spacing:1.2px;text-transform:uppercase;color:var(--pl-mid-gray);
  margin:0 0 12px;
}
.pl-filter-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}
.pl-filter-list button{
  display:flex;align-items:flex-start;gap:10px;
  padding:7px 10px;border-radius:8px;border:0;
  background:transparent;cursor:pointer;text-align:left;width:100%;
  font:inherit;transition:background .15s ease;
}
.pl-filter-list button:hover{background:rgba(255,255,255,.6)}
.pl-filter-list button.is-active{
  background:rgba(255,255,255,.6);
  box-shadow:inset 0 0 0 1px var(--pl-pearl);
}
.pl-filter-list .pl-bullet{
  margin-top:4px;width:10px;height:10px;border-radius:3px;
  background:#fff;border:1px solid var(--pl-pearl);
  flex:0 0 auto;
}
.pl-filter-list button.is-active .pl-bullet{
  background:var(--pl-mirage);border-color:var(--pl-mirage);
}
.pl-filter-list .pl-label{
  font-size:14px;color:var(--pl-mid-gray);font-weight:400;line-height:1.4;
}
.pl-filter-list button.is-active .pl-label{color:var(--pl-mirage);font-weight:500}
.pl-filter-list .pl-sub{
  display:block;font-size:12px;color:var(--pl-manatee);font-weight:400;margin-top:1px;
}
.pl-clear{
  align-self:flex-start;padding:6px 12px;border-radius:6px;
  border:1px solid var(--pl-pearl);background:#fff;cursor:pointer;
  font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:700;
  letter-spacing:1.2px;text-transform:uppercase;color:var(--pl-mid-gray);
}

.pl-results{
  display:flex;align-items:center;justify-content:space-between;
  padding-bottom:16px;border-bottom:1px solid var(--pl-pearl);margin-bottom:22px;
}
.pl-results__count{
  font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;
  letter-spacing:1.2px;text-transform:uppercase;color:var(--pl-mid-gray);
}
.pl-results__count strong{color:var(--pl-mirage);font-weight:700}

.pl-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.pl-card{
  display:flex;flex-direction:column;gap:10px;
  padding:23px 24px;background:#fff;
  border:1px solid var(--pl-pearl);border-radius:12px;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  text-decoration:none;
}
.pl-card:hover{
  transform:translateY(-2px);
  border-color:var(--pl-pearl-soft);
  box-shadow:0 14px 28px -22px rgba(0,0,0,.16);
}
.pl-card__head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pl-card__title{
  margin:0;color:var(--pl-mirage);
  font-weight:600;font-size:17px;line-height:1.35;letter-spacing:-.2px;
}
.pl-card__desc{margin:0;color:var(--pl-mid-gray);font-size:13px;line-height:21px;flex:1}
.pl-card__meta{
  border-top:1px solid var(--pl-pearl-soft);padding-top:11px;
  display:flex;justify-content:space-between;
  font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:400;
  color:var(--pl-manatee);letter-spacing:1px;text-transform:uppercase;
}
.pl-readiness{display:inline-flex;align-items:center;gap:3px}
.pl-readiness span{width:6px;height:6px;border-radius:99px;background:var(--pl-ghost)}
.pl-readiness[data-level="1"] span:nth-child(-n+1){background:#22c55e}
.pl-readiness[data-level="2"] span:nth-child(-n+2){background:#ffa310}
.pl-readiness[data-level="3"] span:nth-child(-n+3){background:#f93576}

.pl-hidden{display:none !important}
.pl-empty{padding:80px 0;text-align:center;color:var(--pl-manatee);font-size:14px}

@media (max-width: 880px){
  .pl-library{grid-template-columns:1fr;gap:24px;padding:0 20px 60px}
  .pl-sidebar{position:static}
  .pl-grid{grid-template-columns:1fr}
}

/* ---------- NEWSLETTER ---------- */
.pl-newsletter{
  max-width:720px;margin:60px auto 0;
  padding:36px;
  background:var(--pl-bg-2);border:1px solid var(--pl-pearl);border-radius:18px;
}
.pl-newsletter__eyebrow{
  display:block;
  font-family:'JetBrains Mono',monospace;font-weight:700;font-size:11px;
  letter-spacing:1.2px;text-transform:uppercase;color:var(--pl-rose);
  margin-bottom:10px;
}
.pl-newsletter h3{
  margin:0 0 18px;
  font-weight:600;font-size:22px;line-height:1.25;letter-spacing:-.3px;color:var(--pl-mirage);
}
.pl-newsletter form{display:flex;gap:10px}
.pl-newsletter input{
  flex:1;padding:13px 16px;border:1px solid var(--pl-pearl);border-radius:999px;
  background:#fff;font:inherit;font-size:14px;color:var(--pl-mirage);outline:0;
}
.pl-newsletter button{
  padding:13px 28px;border:0;border-radius:999px;
  background:var(--pl-rose);color:#fff;font:inherit;font-weight:500;font-size:14px;cursor:pointer;
}
@media (max-width: 680px){
  .pl-newsletter{margin:40px 20px 0;padding:24px}
  .pl-newsletter form{flex-direction:column}
}

/* ---------- DETAIL PAGE ---------- */
.pl-detail{
  max-width:760px;margin:0 auto;
  padding:48px 32px 40px;
}
.pl-crumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.5px;
  margin-bottom:28px;
}
.pl-crumb a{color:var(--pl-mid-gray)}
.pl-crumb .pl-sep{color:var(--pl-manatee)}
.pl-crumb .pl-current{color:var(--pl-mirage);font-weight:600}
.pl-detail__title{
  margin:0 0 18px;color:var(--pl-mirage);
  font-weight:600;font-size:44px;line-height:1.15;letter-spacing:-1.1px;
}
.pl-detail__desc{
  margin:0 0 24px;color:var(--pl-mid-gray);
  font-size:18px;line-height:1.6;
}
.pl-meta-strip{
  display:flex;flex-wrap:wrap;align-items:center;gap:16px;
  padding:14px 18px;background:var(--pl-bg-2);border:1px solid var(--pl-pearl);border-radius:10px;
  font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;
  letter-spacing:1.2px;text-transform:uppercase;color:var(--pl-mid-gray);
}
.pl-meta-strip .pl-meta-label{color:var(--pl-manatee);font-weight:600}
.pl-meta-strip .pl-meta-val{color:var(--pl-mirage)}
.pl-meta-strip .pl-meta-sep{color:var(--pl-pearl)}

.pl-section-title{margin:56px 0 18px}
.pl-section-title .pl-eyebrow{
  display:block;
  font-family:'JetBrains Mono',monospace;font-weight:700;font-size:11px;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--pl-rose);margin-bottom:8px;
}
.pl-section-title h2{
  margin:0;color:var(--pl-mirage);
  font-weight:600;font-size:24px;line-height:1.3;letter-spacing:-.3px;
}

.pl-prompt-block{
  position:relative;background:var(--pl-haiti);border-radius:14px;
  padding:24px 28px;color:#e6edf7;
  font-family:'JetBrains Mono',monospace;font-size:13.5px;line-height:1.65;
  overflow:hidden;
}
.pl-prompt-block pre{margin:0;white-space:pre-wrap;color:inherit;font:inherit}
.pl-prompt-block__head{
  display:flex;justify-content:space-between;align-items:center;
  padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid rgba(255,255,255,.08);
  font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:rgba(255,255,255,.5);
}
.pl-copy-btn{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);
  color:#fff;border-radius:6px;padding:5px 11px;cursor:pointer;
  font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:700;
  letter-spacing:1.2px;text-transform:uppercase;
}
.pl-copy-btn:hover{background:rgba(255,255,255,.14)}
.pl-copy-btn.is-copied{background:var(--pl-rose);border-color:var(--pl-rose)}

.pl-sendto{
  margin-top:14px;
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;
}
.pl-sendto__label{
  font-size:11px;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--pl-mid-gray);font-weight:600;
}
.pl-sendto__row{display:flex;flex-wrap:wrap;gap:8px;}
.pl-sendto__btn{
  display:inline-flex;align-items:center;gap:8px;
  background:#fff;border:1px solid var(--pl-pearl);
  color:var(--pl-mirage);
  border-radius:8px;padding:8px 14px;cursor:pointer;
  font-size:13px;font-weight:600;line-height:1;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.pl-sendto__btn:hover{
  border-color:var(--pl-mirage);
  box-shadow:0 4px 14px rgba(20,20,40,.08);
}
.pl-sendto__btn:active{transform:translateY(1px)}
.pl-sendto__btn.is-sent{
  border-color:var(--pl-mirage);
  background:var(--pl-mirage);color:#fff;
}
.pl-sendto__logo{
  width:18px;height:18px;flex:none;
  object-fit:contain;display:inline-block;
}
.pl-sendto__btn.is-sent .pl-sendto__logo{filter:brightness(0) invert(1);}
.pl-sendto__hint{
  font-size:12px;color:var(--pl-mid-gray);
  opacity:0;transition:opacity .25s ease;
  margin-left:auto;
}
.pl-sendto__hint.is-visible{opacity:1}
@media (max-width:640px){
  .pl-sendto__hint{display:none}
}

.pl-body{font-size:16.5px;color:var(--pl-mid-gray);line-height:1.75}
.pl-body p:first-child{margin-top:0}
.pl-body p:last-child{margin-bottom:0}
.pl-body em{color:var(--pl-mirage);font-style:italic}
.pl-body strong{color:var(--pl-mirage)}
.pl-body ol,.pl-body ul{margin:0;padding-left:1.4em}
.pl-body li{margin:0 0 10px}
.pl-body li:last-child{margin-bottom:0}
.pl-body ol li::marker{color:var(--pl-mirage);font-weight:700}
.pl-body code{
  font-family:'JetBrains Mono',monospace;font-size:.86em;
  background:var(--pl-bg-2);border:1px solid var(--pl-pearl);border-radius:5px;
  padding:1px 6px;color:var(--pl-mirage);
}

.pl-example{
  background:#fff;border:1px solid var(--pl-pearl);border-radius:12px;
  padding:24px 28px;font-size:14.5px;line-height:1.65;color:var(--pl-mid-gray);
  white-space:pre-wrap;
}

/* Rich variant — example output rendered as structured HTML (real tables). */
.pl-example--rich{white-space:normal;font-size:15px;line-height:1.6}
.pl-example--rich > *:first-child{margin-top:0}
.pl-example--rich > *:last-child{margin-bottom:0}
.pl-example--rich p{margin:0 0 14px}
.pl-example__cap{font-weight:600;color:var(--pl-mirage)}
.pl-example__h{font-weight:700;color:var(--pl-mirage);margin:18px 0 8px}
.pl-example--rich ul,.pl-example--rich ol{margin:0 0 14px;padding-left:1.35em}
.pl-example--rich li{margin:0 0 6px}
.pl-example__sub{display:block;color:var(--pl-manatee);font-size:.94em;margin-top:2px}
.pl-example__scroll{overflow-x:auto;margin:0 0 16px}
.pl-example table{
  width:100%;border-collapse:collapse;font-size:14px;
  font-variant-numeric:tabular-nums;
}
.pl-example thead th{
  text-align:left;font-weight:700;color:var(--pl-mirage);white-space:nowrap;
  padding:8px 14px 8px 0;border-bottom:2px solid var(--pl-pearl);
}
.pl-example tbody td{
  text-align:left;vertical-align:top;
  padding:8px 14px 8px 0;border-bottom:1px solid var(--pl-pearl);
}
.pl-example table th:last-child,.pl-example table td:last-child{padding-right:0}
.pl-example tbody tr:last-child td{border-bottom:none}
.pl-example__ellipsis{color:var(--pl-manatee);text-align:center;padding:6px 0}

.pl-prereqs{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.pl-prereqs li{display:flex;gap:12px;align-items:flex-start;font-size:16px;color:var(--pl-mid-gray);line-height:1.6}
.pl-prereqs li::before{
  content:"";flex-shrink:0;margin-top:7px;width:7px;height:7px;border-radius:99px;background:var(--pl-rose);
}

/* ---------- LIMITATIONS — dramatic, drama=20 (calm/clinical) ---------- */
.pl-limit{
  position:relative;overflow:hidden;
  margin:24px 0 8px;
  border-radius:13px;
  background:#fffaf2;color:var(--pl-mirage);
  border:1px solid var(--pl-pearl);
  scroll-margin-top:80px;
}
.pl-limit__stripe{
  position:relative;height:4px;
  background:repeating-linear-gradient(135deg,
    var(--pl-rose) 0 7px,
    #fffaf2 7px 14px);
  opacity:.38;
}
.pl-limit__inner{
  position:relative;z-index:1;
  padding:33px 31px 35px;
}
.pl-limit__eyebrow{
  display:inline-block;margin-bottom:13px;
  font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--pl-rose);
}
.pl-limit__headline{
  margin:0 0 22px;max-width:680px;
  font-weight:600;font-style:italic;
  font-size:clamp(26px,3vw,34px);letter-spacing:-.66px;line-height:1.1;
  color:var(--pl-mirage);text-wrap:balance;
}
.pl-limit__accent{color:var(--pl-rose);font-style:italic}
.pl-limit__body{
  font-size:16px;line-height:1.65;color:var(--pl-mid-gray);
  max-width:620px;text-wrap:pretty;
}
.pl-limit__body p{margin:0 0 14px}
.pl-limit__body p:last-child{margin-bottom:0}
.pl-limit__body em{color:var(--pl-mirage);font-style:italic}
.pl-limit__body strong{color:var(--pl-mirage)}

.pl-limit__grid{
  margin-top:24px;padding-top:24px;
  border-top:1px solid var(--pl-pearl-soft);
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
}
.pl-limit__cell{
  padding:0 22px;
  border-right:1px solid var(--pl-pearl-soft);
}
.pl-limit__cell:first-child{padding-left:0}
.pl-limit__cell:last-child{border-right:0;padding-right:0}
.pl-limit__num{
  display:block;margin-bottom:12px;
  font-family:'JetBrains Mono',monospace;font-size:24px;font-weight:700;
  letter-spacing:-1.2px;line-height:1;color:var(--pl-rose);
}
.pl-limit__title{
  margin:0 0 10px;font-size:15px;font-weight:600;
  letter-spacing:-.2px;line-height:1.35;color:var(--pl-mirage);
  text-wrap:balance;
}
.pl-limit__body-cell{
  margin:0;font-size:13.5px;line-height:1.65;color:var(--pl-mid-gray);
  text-wrap:pretty;
}

/* ---------- CTA BANNER ---------- */
.pl-cta{
  position:relative;overflow:hidden;
  margin:56px 0 0;
  border-radius:18px;
  background:var(--pl-haiti);color:#fff;
  box-shadow:0 27px 54px -16px rgba(255,163,16,.18);
}
.pl-cta__glow{
  position:absolute;top:-120px;right:-120px;
  width:320px;height:320px;border-radius:999px;
  background:radial-gradient(circle, rgba(249,53,118,.35), transparent 70%);
  filter:blur(60px);pointer-events:none;
}
.pl-cta__inner{
  position:relative;z-index:1;padding:40px 44px;
}
.pl-cta__eyebrow{
  display:block;margin-bottom:14px;
  font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--pl-rose);
}
.pl-cta__headline{
  margin:0 0 14px;max-width:640px;
  font-size:28px;font-weight:600;line-height:1.25;letter-spacing:-.5px;
  color:#fff;
}
.pl-cta__lede{
  margin:0 0 26px;max-width:580px;
  font-size:15.5px;line-height:1.7;color:rgba(255,255,255,.7);
}
.pl-cta__btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 28px;border-radius:999px;
  background:var(--pl-rose);color:#fff;
  font-size:14.5px;font-weight:500;
  box-shadow:0 6px 20px rgba(249,53,118,.4);
  transition:transform .2s ease, box-shadow .2s ease;
}
.pl-cta__btn:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(249,53,118,.5);
}

@media (max-width: 680px){
  .pl-limit{margin:32px 0 8px;border-radius:14px}
  .pl-limit__inner{padding:36px 24px 40px}
  .pl-limit__headline{font-size:30px;letter-spacing:-.8px}
  .pl-limit__body{font-size:15.5px}
  .pl-limit__grid{grid-template-columns:1fr;margin-top:20px;padding-top:20px}
  .pl-limit__cell{
    padding:18px 0;
    border-right:0;
    border-bottom:1px solid var(--pl-pearl-soft);
  }
  .pl-limit__cell:first-child{padding-top:0}
  .pl-limit__cell:last-child{border-bottom:0;padding-bottom:0}
  .pl-cta{margin:40px 0 0;border-radius:14px}
  .pl-cta__inner{padding:32px 24px}
  .pl-cta__headline{font-size:22px;letter-spacing:-.3px}
  .pl-cta__lede{font-size:14.5px}
}

.pl-related{
  max-width:760px;margin:0 auto 80px;padding:0 32px;
}
.pl-related__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width: 680px){
  .pl-detail{padding:32px 20px 40px}
  .pl-detail__title{font-size:28px;letter-spacing:-.6px}
  .pl-related{padding:0 20px}
  .pl-related__grid{grid-template-columns:1fr}
}
