.ppm-section {
  --ppm-forest: var(--forest,#173d32);
  --ppm-muted: var(--muted,#65736d);
  --ppm-line: var(--line,rgba(23,61,50,.16));
  --ppm-paper: var(--paper,#f7f3ea);
  --ppm-sage: var(--sage,#91a681);
  position: relative;
  overflow: hidden;
  padding-block: clamp(72px,9vw,126px);
  background: linear-gradient(180deg,#e4ece1 0%,#f4f0e7 100%);
  color: var(--ppm-forest);
}
.ppm-section::before,.ppm-section::after { content:""; position:absolute; border:1px solid rgba(23,61,50,.1); border-radius:50%; pointer-events:none; }
.ppm-section::before { width:640px; height:640px; top:-310px; right:-260px; }
.ppm-section::after { width:420px; height:420px; bottom:-250px; left:-230px; }
.ppm-shell { position:relative; z-index:1; width:min(1180px,calc(100% - 3rem)); margin-inline:auto; }
.ppm-heading { max-width:820px; margin:0 auto; text-align:center; }
.ppm-index { margin:0 0 1rem; color:#8e674f; font-size:.68rem; font-weight:650; letter-spacing:.13em; text-transform:uppercase; }
.ppm-heading h2 { margin:0; color:var(--ppm-forest); font-family:var(--serif,Georgia,serif); font-size:clamp(2.8rem,5.2vw,5.6rem); line-height:.94; font-weight:400; letter-spacing:-.05em; }
.ppm-heading > p:last-child { max-width:690px; margin:1.6rem auto 0; color:var(--ppm-muted); }
.ppm-tabs { display:flex; justify-content:center; gap:.5rem; margin:2.4rem auto 2rem; }
.ppm-tab { padding:.72rem 1.15rem; border:1px solid var(--ppm-line); border-radius:999px; background:rgba(255,255,255,.55); color:var(--ppm-forest); cursor:pointer; font:inherit; font-size:.78rem; font-weight:650; }
.ppm-tab:hover,.ppm-tab:focus-visible,.ppm-tab.is-active { border-color:var(--ppm-forest); background:var(--ppm-forest); color:#fff; }
.ppm-panel[hidden] { display:none; }
.ppm-breath-stage { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(320px,1.15fr); gap:clamp(2rem,5vw,5rem); align-items:center; padding:clamp(1.5rem,4vw,3rem); border:1px solid var(--ppm-line); border-radius:2rem; background:rgba(255,255,255,.73); }
.ppm-orb-wrap { display:grid; place-items:center; min-height:330px; }
.ppm-orb { display:grid; place-items:center; width:138px; height:138px; border-radius:50%; background:radial-gradient(circle at 35% 30%,#cbd9c7,#6f8f7d); box-shadow:0 0 0 28px rgba(145,166,129,.13),0 20px 45px rgba(23,61,50,.17); color:#fff; text-align:center; transition:transform 1s linear,box-shadow .4s ease; }
.ppm-orb.is-inhale,.ppm-orb.is-hold_full { transform:scale(1.6); }
.ppm-orb.is-exhale,.ppm-orb.is-hold_empty { transform:scale(.86); }
.ppm-orb.is-finished { box-shadow:0 0 0 40px rgba(145,166,129,.09),0 20px 45px rgba(23,61,50,.12); }
.ppm-orb strong { display:block; font-family:var(--serif,Georgia,serif); font-size:1.15rem; font-weight:400; }
.ppm-orb small { display:block; margin-top:.15rem; font-size:.67rem; opacity:.82; }
.ppm-eyebrow { margin:0; color:#557263; font-size:.67rem; font-weight:650; letter-spacing:.12em; text-transform:uppercase; }
.ppm-breath-controls h3 { margin:.4rem 0 .8rem; color:var(--ppm-forest); font-family:var(--serif,Georgia,serif); font-size:clamp(2rem,3vw,3.2rem); line-height:1; font-weight:400; }
.ppm-breath-controls > p:not(.ppm-eyebrow,.ppm-breath-status) { max-width:600px; color:var(--ppm-muted); }
.ppm-breath-controls select { width:100%; padding:.82rem .9rem; border:1px solid var(--ppm-line); border-radius:.7rem; background:#fff; color:var(--ppm-forest); font:inherit; }
.ppm-breath-selection { display:grid; grid-template-columns:1fr auto; gap:.25rem 1rem; margin-top:1rem; padding:.9rem 1rem; border-radius:.8rem; background:rgba(223,232,220,.72); }
.ppm-breath-selection strong { font-family:var(--serif,Georgia,serif); font-size:1.12rem; font-weight:400; }
.ppm-breath-selection span { align-self:center; color:var(--ppm-muted); font-size:.72rem; }
.ppm-breath-selection p { grid-column:1 / -1; margin:.2rem 0 0; color:var(--ppm-muted); font-size:.76rem; }
.ppm-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.7rem; margin-top:1rem; }
.ppm-primary,.ppm-secondary { padding:.78rem 1.12rem; border-radius:999px; cursor:pointer; font:inherit; }
.ppm-primary { border:1px solid var(--ppm-forest); background:var(--ppm-forest); color:#fff; }
.ppm-secondary { border:1px solid var(--ppm-line); background:transparent; color:var(--ppm-forest); }
.ppm-primary:disabled,.ppm-secondary:disabled { cursor:not-allowed; opacity:.45; }
.ppm-breath-status { min-height:1.6rem; margin:1.1rem 0 .7rem; color:var(--ppm-forest); font-family:var(--serif,Georgia,serif); }
.ppm-progress { height:5px; overflow:hidden; border-radius:999px; background:#d7e0d4; }
.ppm-progress i { display:block; width:0; height:100%; background:var(--ppm-forest); }
.ppm-breath-audio-credit { display:flex; flex-direction:column; gap:.12rem; margin-top:.65rem; color:var(--ppm-muted); line-height:1.35; }
.ppm-breath-audio-credit[hidden] { display:none; }
.ppm-breath-audio-credit > span { font-size:.68rem; }
.ppm-breath-audio-credit > small { font-size:.6rem; opacity:.78; }
.ppm-breath-audio-credit a { color:inherit; text-decoration:underline; text-decoration-color:rgba(101,115,109,.38); text-underline-offset:2px; }
.ppm-breath-audio-credit a:hover,.ppm-breath-audio-credit a:focus-visible { color:var(--ppm-forest); text-decoration-color:currentColor; }
.ppm-carousel { margin-top:1rem; }
.ppm-carousel__head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.8rem; color:var(--ppm-muted); font-size:.72rem; }
.ppm-carousel__head > div { display:flex; gap:.35rem; }
.ppm-carousel__head button { display:grid; place-items:center; width:2.45rem; height:2.45rem; border:1px solid var(--ppm-line); border-radius:50%; background:rgba(255,255,255,.72); color:var(--ppm-forest); cursor:pointer; font-size:1rem; }
.ppm-carousel__head button:disabled { cursor:not-allowed; opacity:.35; }
.ppm-carousel__track { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1rem; }
.ppm-carousel.is-carousel .ppm-carousel__track { display:flex; overflow-x:auto; padding:2px 2px 12px; scroll-behavior:smooth; scroll-snap-type:x mandatory; scrollbar-color:#9bad9f transparent; scrollbar-width:thin; }
.ppm-carousel.is-carousel .ppm-card { flex:0 0 calc((100% - 2rem)/3); scroll-snap-align:start; }
.ppm-card { display:flex; flex-direction:column; min-width:0; padding:1.45rem; border:1px solid rgba(23,61,50,.11); border-radius:1.45rem; background:rgba(255,255,255,.82); box-shadow:0 12px 40px rgba(23,61,50,.055); transition:border-color .2s,transform .2s,box-shadow .2s; }
.ppm-card:hover { transform:translateY(-2px); box-shadow:0 16px 44px rgba(23,61,50,.08); }
.ppm-card.is-selected { border-color:var(--ppm-forest); box-shadow:0 0 0 2px rgba(23,61,50,.08); }
.ppm-card__meta { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.ppm-card__meta span { padding:.38rem .58rem; border-radius:999px; background:#dfe8dc; color:var(--ppm-forest); font-size:.63rem; letter-spacing:.09em; text-transform:uppercase; }
.ppm-card__meta small { color:var(--ppm-muted); font-size:.7rem; }
.ppm-card h3 { margin:0 0 .6rem; color:var(--ppm-forest); font-family:var(--serif,Georgia,serif); font-size:1.55rem; line-height:1.12; font-weight:400; }
.ppm-card > p { flex:1 1 auto; min-height:4.4rem; margin:0; color:var(--ppm-muted); font-size:.82rem; }
.ppm-link { align-self:flex-start; margin-top:1rem; padding:.5rem 0; border:0; background:transparent; color:var(--ppm-forest); cursor:pointer; font:inherit; font-size:.76rem; font-weight:650; }
.ppm-link span { display:inline-block; margin-left:.35rem; transition:transform .2s; }
.ppm-link:hover span { transform:translateX(.25rem); }
.ppm-media-cover { position:relative; display:grid; place-items:center; height:160px; overflow:hidden; margin:-.65rem -.65rem 1.1rem; border-radius:1rem; background:linear-gradient(145deg,#8fa38f,#d5c4b5); color:#fff; font-size:2rem; }
.ppm-media-card--video .ppm-media-cover { background:linear-gradient(145deg,#5f776c,#b99c85); }
.ppm-media-cover img { width:100%; height:100%; object-fit:cover; }
.ppm-media-card audio,.ppm-media-card video { width:100%; margin-top:1rem; border-radius:.65rem; }
.ppm-media-card video { aspect-ratio:16/9; background:#173d32; }
.ppm-media-credits { display:flex; flex-direction:column; gap:.12rem; margin-top:.55rem; color:var(--ppm-muted); line-height:1.35; }
.ppm-media-credits span { font-size:.68rem; }
.ppm-media-credits small { font-size:.6rem; opacity:.78; }
.ppm-media-credits a { color:inherit; text-decoration:underline; text-decoration-color:rgba(101,115,109,.38); text-underline-offset:2px; }
.ppm-media-credits a:hover,.ppm-media-credits a:focus-visible { color:var(--ppm-forest); text-decoration-color:currentColor; }
.ppm-awaiting { display:inline-flex; align-self:flex-start; margin-top:1rem; padding:.55rem .75rem; border:1px dashed var(--ppm-line); border-radius:999px; color:var(--ppm-muted); font-size:.7rem; }
.ppm-empty { display:flex; align-items:center; justify-content:center; gap:.8rem; min-height:180px; padding:2rem; border:1px dashed var(--ppm-line); border-radius:1.5rem; color:var(--ppm-muted); text-align:center; }
.ppm-empty span { font-size:2rem; }
.ppm-manage { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:1.6rem; padding:1.2rem 1.4rem; border-radius:1.25rem; background:var(--ppm-forest); color:#fff; }
.ppm-manage strong { font-family:var(--serif,Georgia,serif); font-size:1.15rem; font-weight:400; }
.ppm-manage p { margin:.15rem 0 0; color:rgba(255,255,255,.67); font-size:.75rem; }
.ppm-manage a { flex:0 0 auto; padding:.75rem 1rem; border-radius:999px; background:#fff; color:var(--ppm-forest); text-decoration:none; }
.ppm-sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

@media (max-width:980px) {
  .ppm-breath-stage { grid-template-columns:1fr; }
  .ppm-orb-wrap { min-height:270px; }
  .ppm-carousel.is-carousel .ppm-card { flex-basis:calc((100% - 1rem)/2); }
}
@media (max-width:680px) {
  .ppm-shell { width:min(100% - 2rem,1180px); }
  .ppm-heading h2 { font-size:clamp(2.7rem,13vw,4.4rem); }
  .ppm-tabs { justify-content:flex-start; overflow-x:auto; padding-bottom:.35rem; }
  .ppm-tab { flex:0 0 auto; }
  .ppm-breath-stage { padding:1.1rem; border-radius:1.4rem; }
  .ppm-orb-wrap { min-height:245px; }
  .ppm-carousel.is-carousel .ppm-card { flex-basis:88%; }
  .ppm-manage { align-items:flex-start; flex-direction:column; }
  .ppm-manage a { width:100%; text-align:center; }
}
@media (prefers-reduced-motion:reduce) {
  .ppm-section * { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; }
}
