.pp-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  color: #14121a;
  font-family: Nunito, "Segoe UI", Helvetica, Arial, sans-serif;
}
.pp-shell main { flex: 1; }
.pp-shell a { color: inherit; text-decoration: none; }
.pp-bar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #fff;
  border-bottom: 1px solid #eee;
}
.pp-bar-inner {
  max-width: 72rem;
  margin: 0 auto;
  min-height: 4.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 1.25rem;
}
.pp-word { font-size: 1.35rem; font-weight: 800; letter-spacing: -0.04em; color: #14121a; }
.pp-nav { display: none; align-items: center; gap: 1.35rem; }
.pp-navlink { font-size: 1rem; font-weight: 800; color: #3a3a3a; }
.pp-navlink.is-on { color: #14121a; box-shadow: inset 0 -3px 0 #ffe14a; }
.pp-bar-actions { display: flex; align-items: center; gap: 0.25rem; }
.pp-signin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 1rem;
  border-radius: 999px;
  background: #14121a;
  color: #fff;
  font-size: 0.95rem;
  font-weight: 800;
}
.pp-burger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  color: #14121a;
}
.pp-drawer { display: flex; flex-direction: column; border-top: 1px solid #eee; padding: 0.35rem 0.75rem 0.8rem; background: #fff; }
.pp-drawer a { display: flex; align-items: center; min-height: 48px; padding: 0 0.6rem; font-size: 1.05rem; font-weight: 800; }
@media (min-width: 768px) {
  .pp-nav { display: flex; gap: 0.85rem; }
  .pp-navlink { font-size: 0.92rem; }
  .pp-burger, .pp-drawer { display: none; }
}
@media (min-width: 1100px) {
  .pp-nav { gap: 1.35rem; }
  .pp-navlink { font-size: 1rem; }
}
.pp-foot { background: #fff; color: #14121a; border-top: 1px solid #eee; }
.pp-foot-inner {
  max-width: 72rem;
  margin: 0 auto;
  padding: 1.4rem 1.25rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
}
.pp-foot-name { font-weight: 800; font-size: 1.05rem; margin-right: auto; }
.pp-foot nav { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; }
.pp-foot a { font-weight: 800; font-size: 0.9rem; color: #3a3a3a; }
.pp-social { display: flex; gap: 0.25rem; }
.pp-social a { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; }
.pp-copy { width: 100%; color: #6b6b6b; font-size: 0.8rem; font-weight: 700; }

:root {
  --brand-navy: #14121a;
  --brand-purple: #6d28d9;
  --brand-purple-dark: #5b21b6;
  --brand-gold: #ffe14a;
  --brand-gold-light: #fff3a3;
  --brand-lilac: #ffffff;
  --brand-cream: #ffffff;
  --app-font-heading: Nunito, "Segoe UI", Helvetica, Arial, sans-serif;
  --app-font-sans: Nunito, "Segoe UI", Helvetica, Arial, sans-serif;
}
body, .font-heading {
  font-family: Nunito, "Segoe UI", Helvetica, Arial, sans-serif;
}

/* Leftover guide heroes: same left type as the homepage, no fake owl */
.pp-shell section.from-brand-navy {
  background: #fff !important;
  background-image: none !important;
  color: #14121a !important;
  text-align: left !important;
  position: relative;
  overflow: visible !important;
  max-width: 72rem;
  margin: 0 auto;
  padding: 2.2rem 1.25rem 0.4rem !important;
  display: block !important;
  min-height: 0 !important;
}
.pp-shell section.from-brand-navy > .absolute { display: none !important; }
.pp-shell section.from-brand-navy::before,
.pp-shell section.from-brand-navy::after { content: none !important; display: none !important; }
.pp-shell section.from-brand-navy .text-white,
.pp-shell section.from-brand-navy .text-white\/80,
.pp-shell section.from-brand-navy .text-white\/70,
.pp-shell section.from-brand-navy .text-white\/75,
.pp-shell section.from-brand-navy h1,
.pp-shell section.from-brand-navy p {
  color: #14121a !important;
}
.pp-shell section.from-brand-navy .max-w-3xl,
.pp-shell section.from-brand-navy .max-w-4xl,
.pp-shell section.from-brand-navy .max-w-5xl,
.pp-shell section.from-brand-navy .max-w-6xl,
.pp-shell section.from-brand-navy .max-w-2xl,
.pp-shell section.from-brand-navy .max-w-xl,
.pp-shell section.from-brand-navy .text-center {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
  text-align: left !important;
}
.pp-shell section.from-brand-navy h1 {
  font-size: clamp(2rem, 4.4vw, 3.05rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  line-height: 1.05 !important;
  max-width: 18em;
  margin: 0.75rem 0 0 !important;
}
.pp-shell section.from-brand-navy .text-white\/80,
.pp-shell section.from-brand-navy .text-white\/75,
.pp-shell section.from-brand-navy .text-white\/70 {
  display: block;
  max-width: 36em !important;
  margin-top: 0.7rem !important;
  font-size: 1.08rem !important;
  font-weight: 650 !important;
  line-height: 1.45 !important;
  letter-spacing: -0.015em;
  color: #14121a !important;
}
.pp-shell section.from-brand-navy .bg-white\/10,
.pp-shell section.from-brand-navy .bg-white\/5 {
  background: #ffe14a !important;
  color: #14121a !important;
  border-color: transparent !important;
  font-weight: 800 !important;
  border-radius: 8px !important;
}
.pp-shell section.from-brand-navy .text-brand-gold {
  color: #14121a !important;
  background: none !important;
  padding: 0 !important;
}
.pp-shell section.bg-brand-navy {
  background: #fff !important;
  color: #14121a !important;
  border-top: 0 !important;
  text-align: left !important;
  max-width: 72rem;
  margin: 0 auto;
  padding: 2.4rem 1.25rem 0.4rem !important;
}
.pp-shell section.bg-brand-navy > div,
.pp-shell section.bg-brand-navy > .max-w-xl {
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  max-width: none !important;
  margin: 0 !important;
  text-align: left !important;
}
.pp-shell section.bg-brand-navy .text-white,
.pp-shell section.bg-brand-navy .text-white\/75,
.pp-shell section.bg-brand-navy .text-white\/70,
.pp-shell section.bg-brand-navy h2,
.pp-shell section.bg-brand-navy p {
  color: #14121a !important;
}
.pp-shell section.bg-brand-navy h2 {
  font-size: clamp(2rem, 4vw, 3rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.045em;
  line-height: 1;
  margin-bottom: 0.35rem !important;
}
.pp-shell section.bg-brand-navy .rounded-full {
  background: #14121a !important;
  color: #fff !important;
  box-shadow: none !important;
}

.pp-shell .bg-brand-gold,
button.bg-brand-gold,
a.bg-brand-gold {
  background-color: #14121a !important;
  background-image: none !important;
  color: #fff !important;
}
.pp-shell .bg-slate-50,
.pp-shell .bg-brand-lilac\/60 { background: #fff !important; }
.pp-shell .border-l-4.border-brand-gold {
  background: #fff6cc !important;
  border-left-color: #14121a !important;
  border-radius: 0 16px 16px 0 !important;
}
.pp-shell a.text-brand-purple {
  color: #14121a !important;
  text-decoration-color: #ffe14a;
}

/* App buttons, titles, login, dashboards */
.bg-gradient-to-r.from-brand-gold {
  background-image: none !important;
  background-color: #14121a !important;
  color: #fff !important;
}
.bg-gradient-to-br.from-brand-purple {
  background-image: none !important;
  background-color: #ffe14a !important;
  color: #14121a !important;
}
.bg-gradient-to-br.from-brand-purple .text-white,
.bg-gradient-to-br.from-brand-purple .text-white\/75,
.bg-gradient-to-br.from-brand-purple .text-white\/70 {
  color: #14121a !important;
}
.from-brand-purple.bg-clip-text,
.from-pink-500.bg-clip-text {
  background-image: none !important;
  -webkit-text-fill-color: #14121a;
  color: #14121a !important;
}
.min-h-screen.bg-brand-lilac { background: #fff !important; }
.min-h-screen.bg-brand-lilac .h-2.bg-brand-purple { background: #ffe14a !important; }
button.bg-brand-purple,
a.bg-brand-purple,
.bg-brand-purple.rounded-full,
.bg-brand-purple.rounded-xl {
  background-color: #14121a !important;
  color: #fff !important;
}
.min-h-screen.bg-slate-50 { background: #fff !important; }
.min-h-screen.bg-slate-50 .rounded-2xl.border-2,
.min-h-screen.bg-slate-50 .rounded-xl.border,
.min-h-screen.bg-slate-50 .rounded-xl.border-2 {
  border-color: #eee !important;
  box-shadow: none !important;
}
.min-h-screen.bg-slate-50 [style*="#5e17eb"] {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0.2rem 0 0.4rem !important;
  color: #14121a !important;
}
.min-h-screen.bg-slate-50 [style*="#5e17eb"] h1 {
  font-size: clamp(2.8rem, 6vw, 4.4rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.05em !important;
  line-height: 0.92 !important;
  max-width: 12ch;
  color: #14121a !important;
}
.min-h-screen.bg-slate-50 [style*="#5e17eb"] p,
.min-h-screen.bg-slate-50 [style*="#5e17eb"] .text-white,
.min-h-screen.bg-slate-50 [style*="#5e17eb"] .text-white\/85,
.min-h-screen.bg-slate-50 [style*="#5e17eb"] .text-white\/80,
.min-h-screen.bg-slate-50 [style*="#5e17eb"] .text-white\/75,
.min-h-screen.bg-slate-50 [style*="#5e17eb"] .text-white\/70 {
  color: #3a3a3a !important;
  font-weight: 700;
}
.min-h-screen.bg-slate-50 .sm\:grid-cols-6 > div:nth-child(3n+1) { background: #ffe14a; border-radius: 16px; }
.min-h-screen.bg-slate-50 .sm\:grid-cols-6 > div:nth-child(3n+2) { background: #bfe9ff; border-radius: 16px; }
.min-h-screen.bg-slate-50 .sm\:grid-cols-6 > div:nth-child(3n+3) { background: #c6f5a4; border-radius: 16px; }
.min-h-screen.bg-slate-50 nav .bg-primary {
  background: #14121a !important;
  color: #fff !important;
  font-weight: 800;
}
.min-h-screen.bg-slate-50 .rounded-full.bg-brand-lilac {
  background: #ffe14a !important;
  color: #14121a !important;
}
.min-h-screen.bg-slate-50 .h-full.rounded-full.bg-brand-purple,
.min-h-screen.bg-slate-50 .h-2 .bg-brand-purple {
  background: #14121a !important;
}
.min-h-screen.bg-brand-lilac h1,
.min-h-screen.bg-slate-50 h1 {
  letter-spacing: -0.045em;
  font-weight: 800;
}

.pp-home { padding-bottom: 2.5rem; color: #14121a; }
.pp-hero {
  max-width: 72rem;
  margin: 0 auto;
  padding: 1.4rem 1.25rem 0;
  display: grid;
  gap: 0.25rem;
  align-items: center;
}
.pp-hero .pp-word { display: inline-block; margin: 0 0 0.85rem; }
.pp-kicker {
  display: inline-block;
  margin: 0;
  background: #ffe14a;
  color: #14121a;
  font-weight: 800;
  font-size: 1rem;
  line-height: 1.2;
  padding: 0.28rem 0.55rem;
  border-radius: 8px;
}
.pp-hero h1 {
  margin: 0.75rem 0 0;
  max-width: 18em;
  font-size: clamp(2rem, 4.4vw, 3.05rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.05;
  color: #14121a;
}
.pp-lead {
  margin: 0.7rem 0 0;
  max-width: 38em;
  font-size: clamp(1.02rem, 2.1vw, 1.2rem);
  font-weight: 650;
  line-height: 1.45;
  letter-spacing: -0.015em;
  color: #2c2c2c;
}
.pp-ctas { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.15rem; }
.pp-go {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 1.25rem;
  border-radius: 999px;
  background: #14121a;
  color: #fff;
  font-weight: 800;
  font-size: 1.05rem;
}
.pp-fine { margin: 0.7rem 0 0; font-size: 1rem; font-weight: 800; color: #14121a; }
.pp-owl { position: relative; height: 340px; margin-top: 0.25rem; }
.pp-owl::before {
  content: "";
  position: absolute;
  width: min(78%, 340px);
  aspect-ratio: 1;
  left: 50%;
  top: 58%;
  transform: translate(-50%, -50%);
  background: #ffe14a;
  border-radius: 50%;
}
.pp-owl img, .pp-owl video, .pp-owl .pp-owl-vid {
  position: relative;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  display: block;
}
.pp-owl video { pointer-events: none; background: transparent; }

.pp-loop { display: grid; margin-top: 0.5rem; }
.pp-loop article { padding: 1.5rem 1.35rem 1.7rem; min-height: 200px; }
.pp-loop article:nth-child(1) { background: #ffe14a; }
.pp-loop article:nth-child(2) { background: #bfe9ff; }
.pp-loop article:nth-child(3) { background: #c6f5a4; }
.pp-loop em { font-style: normal; font-weight: 800; font-size: 0.8rem; letter-spacing: 0.06em; text-transform: uppercase; }
.pp-loop h2 {
  margin-top: 0.45rem;
  font-size: clamp(2rem, 4vw, 2.7rem);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 1;
}
.pp-loop p { margin-top: 0.55rem; max-width: none; font-size: 1.05rem; font-weight: 700; line-height: 1.35; }

.pp-for, .pp-wrap, .pp-end { max-width: 72rem; margin-left: auto; margin-right: auto; }
.pp-for { padding: 2.6rem 1.25rem 0; display: grid; gap: 1.2rem; }
.pp-home h2, .pp-for h2, .pp-wrap h2, .pp-end h2 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; letter-spacing: -0.045em; line-height: 1; }
.pp-for ul { display: grid; gap: 0; }
.pp-for li { border-top: 2px solid #14121a; padding: 0.8rem 0; font-weight: 800; font-size: 1.15rem; }
.pp-for li span { display: block; margin-top: 0.15rem; font-weight: 700; font-size: 0.98rem; color: #3a3a3a; }
.pp-aside { margin-top: 0.8rem; font-weight: 700; color: #5c5c5c; }

.pp-wrap { padding: 2.6rem 1.25rem 0; }
.pp-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; margin-top: 1rem; }
.pp-tiles > a { display: contents; }
.pp-tile {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 120px;
  border-radius: 18px;
  padding: 0.95rem;
  color: #fff;
}
.pp-tile b { font-size: 1.35rem; font-weight: 800; letter-spacing: -0.03em; }
.pp-tile span { margin-top: 0.15rem; font-weight: 700; opacity: 0.92; font-size: 0.9rem; }
.pp-maths { background: #2457e6; }
.pp-english { background: #e23b78; }
.pp-science { background: #128a4e; }
.pp-history { background: #e25a12; }
.pp-geography { background: #0e8a84; }
.pp-life { background: #6d28d9; }

.pp-search-wrap { position: relative; margin-top: 1.15rem; max-width: 36rem; }
.pp-search {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  height: 52px;
  padding: 0 0.35rem 0 0.9rem;
  background: #fff;
  border: 2px solid #14121a;
  border-radius: 14px;
}
.pp-search svg { flex: none; }
.pp-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  font-size: 1rem;
  font-weight: 700;
}
.pp-search input::placeholder { color: #8a8a8a; font-weight: 700; }
.pp-search button {
  height: 40px;
  padding: 0 0.9rem;
  border: 0;
  border-radius: 10px;
  background: #14121a;
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.pp-results {
  position: absolute;
  z-index: 30;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  background: #fff;
  border: 2px solid #14121a;
  border-radius: 14px;
  padding: 0.3rem;
}
.pp-hit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 46px;
  padding: 0.45rem 0.65rem;
  border-radius: 10px;
  font-weight: 800;
}
.pp-hit:hover { background: #fff6cc; }
.pp-hit small { font-weight: 800; white-space: nowrap; color: #3a3a3a; }
.pp-empty { padding: 0.8rem; font-weight: 700; }

.pp-end {
  padding: 2.4rem 1.25rem 0.4rem;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}
.pp-end p { margin-top: 0.4rem; font-weight: 700; color: #3a3a3a; }

@media (min-width: 1024px) {
  .pp-loop { grid-template-columns: 1fr 1fr 1fr; }
  .pp-for { grid-template-columns: 0.85fr 1.15fr; align-items: start; gap: 2rem; }
  .pp-tiles { grid-template-columns: repeat(3, 1fr); }
  .pp-tile { min-height: 148px; }
  .pp-tile b { font-size: 1.55rem; }
  .pp-years { grid-template-columns: 1fr 1fr 1fr; }
  .pp-cards { grid-template-columns: 1fr 1fr 1fr; }
}
@media (min-width: 960px) {
  .pp-landing .pp-hero,
  .pp-login-page .pp-hero { grid-template-columns: 1.15fr 0.85fr; padding-top: 1.2rem; padding-bottom: 1.25rem; min-height: 540px; align-items: end; }
  .pp-landing .pp-owl,
  .pp-login-page .pp-owl { height: 420px; margin: 0; display: block; }
  .pp-landing .pp-owl::before,
  .pp-login-page .pp-owl::before { width: 420px; }
  .pp-landing .pp-hero h1 {
    max-width: 11ch;
    font-size: clamp(3.1rem, 8vw, 5.4rem);
    letter-spacing: -0.055em;
    line-height: 0.9;
  }
  .pp-landing .pp-lead {
    max-width: 22em;
    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.03em;
    color: #14121a;
  }
}

button.pp-go, a.pp-go { border: 0; cursor: pointer; font: inherit; }
.pp-go-line { background: #fff !important; color: #14121a !important; box-shadow: inset 0 0 0 2px #14121a; }
button.pp-tile { border: 0; cursor: pointer; text-align: left; font: inherit; color: #fff; width: 100%; }
.pp-tile.is-on { box-shadow: inset 0 0 0 4px #14121a; }
.pp-years { display: grid; gap: 1.4rem; margin-top: 1.2rem; }
.pp-years h3 { font-size: 1.35rem; font-weight: 800; letter-spacing: -0.03em; }
.pp-years ul { margin-top: 0.45rem; }
.pp-years li { border-top: 2px solid #14121a; padding: 0.55rem 0; font-weight: 800; }
.pp-price { background: #ffe14a; padding: 1.7rem 1.25rem 1.9rem; }
.pp-price-inner { max-width: 72rem; margin: 0 auto; }
.pp-plans { max-width: 72rem; margin: 0 auto; display: grid; gap: 0.75rem; }
.pp-plan { background: #fff; color: #14121a; border-radius: 16px; padding: 1.05rem 1.1rem 1.15rem; }
.pp-plan.is-once { background: #14121a; color: #fff; }
.pp-plan p { margin: 0; font-weight: 800; }
.pp-price .pp-plan strong { display: block; margin: 0.15rem 0 0.35rem; font-size: clamp(2.5rem, 8vw, 3.6rem); font-weight: 800; letter-spacing: -0.05em; line-height: 0.95; color: inherit; }
.pp-plan s { display: block; margin: 0 0 0.35rem; font-weight: 800; color: inherit; opacity: 0.65; text-decoration-thickness: 2px; }
.pp-plan .pp-go { margin-top: 0.9rem; width: 100%; }
.pp-plan.is-once .pp-go { background: #ffe14a; color: #14121a; }
@media (min-width: 800px) { .pp-plans { grid-template-columns: 1fr 1fr; } }
.pp-price p { font-weight: 800; }
.pp-price strong { display: block; margin-top: 0.2rem; font-size: clamp(3.2rem, 8vw, 5.2rem); font-weight: 800; letter-spacing: -0.055em; line-height: 0.9; }
.pp-price .pp-plan strong,
.pp-price .pp-plan strong span { color: inherit !important; opacity: 1 !important; }
.pp-price .pp-plan s { color: inherit !important; opacity: 0.7; }
.pp-login { max-width: 32rem; background: transparent !important; border: 0 !important; box-shadow: none !important; }
.pp-guide-nav { max-width: 72rem; margin: 0 auto; padding: 0.2rem 1.25rem 0; display: flex; flex-wrap: wrap; gap: 0.45rem 1.15rem; }
.pp-guide-nav a { font-weight: 800; box-shadow: inset 0 -3px 0 #ffe14a; }
.pp-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; margin-top: 1rem; }
@media (min-width: 1024px) {
  .pp-years { grid-template-columns: 1fr 1fr 1fr; }
  .pp-cards { grid-template-columns: 1fr 1fr 1fr; }
}

.pp-back { display: none; }
.pp-login-page .pp-kicker,
.pp-login-page .pp-word,
.pp-login-page .pp-back,
.pp-login-page:not(.pp-role) .pp-lead { display: none !important; }
.pp-proof {
  margin: 0 0 0.15rem;
  text-align: center;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #14121a;
}
.pp-login-page .pp-login button[class*="rounded-full"] {
  border-radius: 999px !important;
  box-shadow: none !important;
  font-weight: 800 !important;
}
.pp-login-page .space-y-3 > button:first-child {
  border: 2px solid #14121a !important;
  background: #fff !important;
  color: #14121a !important;
}
.pp-login-page .space-y-3 > button:nth-child(2) {
  border: 1.5px solid #e4e4e7 !important;
  background: #fff !important;
  color: #14121a !important;
}
.pp-login-page input {
  border: 1.5px solid #e4e4e7 !important;
  border-radius: 999px !important;
  background: #fff !important;
  box-shadow: none !important;
}
.pp-login-page input:focus,
.pp-login-page input:focus-visible {
  border-color: #14121a !important;
  box-shadow: 0 0 0 3px #ffe14a !important;
  outline: none !important;
}
.pp-login-page button[type="submit"] {
  background: #14121a !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
}
.pp-login-page button[type="submit"] {
  background: #14121a !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Phone sign-in fills the screen. Tablets and desktops get the normal page. */
@media (max-width: 699px) {
  body:has(.pp-login-page) { overflow: hidden; height: 100svh; }
  .pp-shell:has(.pp-login-page) {
    height: 100svh;
    max-height: 100svh;
    min-height: 0;
    overflow: hidden;
  }
  .pp-shell:has(.pp-login-page) .pp-bar,
  .pp-shell:has(.pp-login-page) .pp-foot { display: none; }
  .pp-shell:has(.pp-login-page) main {
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .pp-login-page.pp-home {
    height: 100svh;
    max-height: 100svh;
    min-height: 100svh;
    padding: 0.7rem 1.15rem max(0.7rem, env(safe-area-inset-bottom));
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.35rem;
    overflow: hidden;
  }
  .pp-login-page .pp-word,
  .pp-login-page .pp-lead,
  .pp-login-page .pp-back,
  .pp-login-page .pp-kicker { display: none !important; }
  .pp-login-page .pp-hero {
    flex: 0 0 auto;
    min-height: 0;
    padding: 0;
    gap: 0.15rem;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .pp-login-page .pp-hero > div:first-child {
    display: block;
  }
  .pp-login-page.pp-role .pp-lead {
    display: block !important;
    text-align: center;
    margin: 0.4rem 0 0;
    max-width: 22rem;
    margin-left: auto;
    margin-right: auto;
    font-size: 0.98rem;
    line-height: 1.35;
  }
  .pp-login-page.pp-role .pp-hero h1 {
    font-size: min(2.15rem, calc((100vw - 2.6rem) / 11.2));
    white-space: nowrap;
  }
  .pp-login-page .pp-hero h1 {
    margin: 0.2rem 0 0;
    max-width: none;
    text-align: center;
    font-size: clamp(2.15rem, 9vw, 2.7rem);
    line-height: 0.95;
  }
  .pp-login-page .pp-owl {
    flex: none;
    height: 168px;
    width: 168px;
    min-height: 0;
    max-height: 168px;
    margin: 0.2rem auto 0;
  }
  .pp-login-page .pp-owl::before { content: none; display: none; }
  .pp-login-page .pp-owl video { object-position: center; }
  .pp-login-page .pp-wrap {
    padding: 0;
    margin: 0;
    flex: 0 0 auto;
  }
  .pp-login-page .pp-login { width: 100%; }
  .pp-login-page .pp-login .px-8 {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .pp-login-page .space-y-5 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.45rem !important; }
  .pp-login-page .space-y-4 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.4rem !important; }
  .pp-login-page .space-y-3 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.35rem !important; }
  .pp-login-page .space-y-1\.5 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.15rem !important; }
  .pp-login-page .pp-login .h-12 { height: 2.65rem; }
  .pp-login-page .pp-login .h-11 { height: 2.45rem; }
  .pp-login-page .pp-fine {
    margin: 0.65rem 0 0 !important;
    padding: 0 !important;
    max-width: none !important;
    font-size: 0.78rem !important;
    line-height: 1.4 !important;
    font-weight: 500 !important;
    color: #6a6a6a !important;
    text-align: center !important;
  }
}

/* Owl: desktop homepage, the phone homepage hero, and the sign-in page. */
.pp-owl { display: none; }
.pp-login-page .pp-owl { display: block; }
.pp-login-page .pp-owl::before,
.pp-landing .pp-owl::before { content: none !important; display: none !important; }

@media (max-width: 959px) {
  .pp-landing .pp-hero {
    display: flex;
    flex-direction: column;
    padding-top: 0.6rem;
  }
  .pp-landing .pp-owl {
    display: block;
    order: -1;
    height: 228px;
    margin: 0 0 0.15rem;
  }
  .pp-landing .pp-owl::before {
    width: min(54vw, 220px);
    top: 54%;
  }
  .pp-landing .pp-hero h1 {
    max-width: none;
    white-space: nowrap;
    font-size: min(2.05rem, calc((100vw - 2.7rem) / 13.6));
    letter-spacing: -0.05em;
    line-height: 1.05;
  }
  .pp-landing .pp-lead {
    max-width: 22em;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.3;
    color: #14121a;
  }
  .pp-landing .pp-loop article { min-height: 0; }
  h1.text-5xl, h1.text-6xl, h1.text-7xl,
  .pp-shell section.from-brand-navy h1 {
    font-size: 2.05rem !important;
    line-height: 1.08 !important;
    letter-spacing: -0.04em;
    max-width: none;
  }
}

.pp-toast {
  position: fixed;
  left: 50%;
  bottom: 1.15rem;
  z-index: 80;
  transform: translateX(-50%) translateY(8px);
  background: #111;
  color: #fff;
  font-weight: 800;
  font-size: 0.95rem;
  padding: 0.7rem 1.05rem;
  border-radius: 999px;
  opacity: 0;
  pointer-events: none;
  transition: 0.2s ease;
}
.pp-toast.on { opacity: 1; transform: translateX(-50%) translateY(0); }

/* Tablet: iPad portrait and small laptops, between the phone layout and the desktop grid. */
@media (min-width: 700px) and (max-width: 1023px) {
  .pp-landing .pp-hero { align-items: center; text-align: center; }
  .pp-landing .pp-hero h1 {
    font-size: clamp(2.5rem, 5.2vw, 3.5rem);
    white-space: normal;
    margin-left: auto;
    margin-right: auto;
  }
  .pp-landing .pp-lead,
  .pp-landing .pp-fine,
  .pp-landing .pp-ctas { margin-left: auto; margin-right: auto; justify-content: center; }
  .pp-landing .pp-owl { height: 280px; }
  .pp-login-page {
    max-width: 36rem;
    margin: 0 auto;
    padding-bottom: 2.5rem;
  }
  .pp-login-page .pp-hero { justify-items: center; text-align: center; }
  .pp-login-page .pp-hero h1 { text-align: center; font-size: 2.7rem; }
  .pp-login-page .pp-owl { height: 240px; width: min(100%, 280px); margin: 0 auto; }
  .pp-login-page .pp-wrap { width: 100%; }
}
img, video { max-width: 100%; }
.pp-read-owl { display: none !important; }
.pp-read-title {
  margin: 0 0 0.85rem;
  font-size: clamp(1.55rem, 6.2vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.08;
  color: #14121a;
}
.pp-read-kicker { margin-top: 0.15rem; }
@keyframes pp-hop {
  0%, 100% { transform: translateY(0); }
  38% { transform: translateY(-16px); }
  52% { transform: translateY(0); }
  68% { transform: translateY(-7px); }
  82% { transform: translateY(0); }
}
.pp-result-owl {
  width: 128px;
  height: 128px;
  object-fit: contain;
  margin: 0 auto 0.15rem;
  display: block;
  animation: pp-hop 1.15s ease-in-out infinite;
}
.pp-read-kicker {
  margin: 0 0 0.4rem;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.pp-read-copy .prose { max-width: none; }
.pp-read-copy .prose p {
  margin: 0.55rem 0;
  font-size: 1.05rem;
  line-height: 1.55;
  color: #1a1a1a;
}
@media (max-width: 959px) {
  .pp-quiz {
    display: flex;
    flex-direction: column;
    min-height: calc(100svh - 8.75rem);
  }
  .pp-quiz .mb-8 { margin-bottom: 0.45rem !important; }
  .pp-quiz .min-h-\[200px\] { min-height: 0 !important; padding: 0.7rem 0.85rem !important; }
  .pp-quiz h2 { font-size: 1.08rem !important; line-height: 1.25 !important; }
  .pp-quiz .min-h-16 { min-height: 2.55rem !important; padding-top: 0.35rem !important; padding-bottom: 0.35rem !important; font-size: 0.95rem !important; }
  .pp-quiz .gap-4 { gap: 0.35rem !important; }
  .pp-quiz .p-8 { padding: 0.7rem 0.85rem !important; }
  .pp-quiz .shadow-md { box-shadow: none !important; }
  .pp-quiz .mt-6 {
    margin-top: auto !important;
    position: sticky;
    bottom: 0.25rem;
    background: #fff;
    padding-top: 0.35rem;
    z-index: 6;
  }
  .pp-quiz .space-y-4 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.35rem !important; }
  .pp-quiz .border-brand-green { border-color: #111 !important; background: #fff6c2 !important; color: #111 !important; }
  .pp-quiz .text-green-800, .pp-quiz .text-brand-green { color: #111 !important; }
}

/* Parent dashboard: same flat language as the homepage, not cards inside cards. */
.pp-parent { color: #14121a; }
.pp-dash-hero {
  background: #ffe14a !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #14121a !important;
  box-shadow: none !important;
}
.pp-dash-hero h1,
.pp-dash-hero p { color: #14121a !important; }
.pp-dash-hero button,
.pp-dash-hero [role="combobox"] {
  background: #14121a !important;
  color: #fff !important;
  border-color: #14121a !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}
.pp-parent .bg-brand-lilac\/40 {
  background: transparent !important;
  border: 0 !important;
  border-top: 2px solid #14121a !important;
  border-bottom: 2px solid #14121a !important;
  border-radius: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.pp-parent .bg-brand-purple,
.pp-parent button.bg-brand-purple {
  background: #14121a !important;
  border-radius: 999px !important;
}
.pp-parent .bg-brand-lilac {
  background: #ffe14a !important;
  color: #14121a !important;
}
.pp-syllabus {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.pp-parent .bg-slate-50.rounded-xl.p-1 {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  gap: 0.5rem !important;
}
.pp-parent .bg-slate-50.rounded-xl.p-1 button {
  border-radius: 999px !important;
  border: 2px solid #14121a !important;
  box-shadow: none !important;
  background: #fff !important;
  color: #14121a !important;
}
.pp-parent .bg-slate-50.rounded-xl.p-1 button.bg-white {
  background: #14121a !important;
  color: #fff !important;
}
.pp-subject {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 1.4rem;
  padding: 0.15rem 0 0.35rem;
  background: transparent;
  border: 0;
}
.pp-lessons { margin: 0; padding: 0; border: 0; }
.pp-lesson {
  padding: 0.8rem 0 0.85rem;
  border: 0;
  border-top: 2px solid #14121a;
  border-radius: 0;
  background: transparent;
}
.pp-lesson.is-off { opacity: 0.45; }
.pp-lesson p { font-size: 1.05rem !important; font-weight: 800 !important; letter-spacing: -0.02em; }
.pp-parent button[data-state="checked"] { background: #14121a !important; }
.pp-lesson button.border-2 {
  border-radius: 999px !important;
  border-color: #14121a !important;
  color: #14121a !important;
  background: #fff !important;
}
.pp-paid { background: transparent; border: 0; box-shadow: none; text-align: center; }
.pp-paid h1 {
  margin: 0.35rem 0 0.6rem;
  font-size: clamp(2rem, 8vw, 2.7rem);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 1.02;
  color: #14121a;
}
.pp-paid-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.2rem;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  background: #ffe14a;
  color: #14121a;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.pp-paid-copy {
  max-width: 34ch;
  margin: 0 auto 1rem;
  color: #3a3642;
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.45;
}
.pp-paid-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  margin: 0 auto 1rem;
  color: #14121a;
  font-size: 0.92rem;
  font-weight: 800;
}
.pp-paid-go {
  width: 100%;
  height: 3.25rem !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #14121a !important;
  color: #fff !important;
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  box-shadow: none !important;
}
.pp-school .pp-hero h1 { max-width: 12ch; }
.pp-school .pp-price {
  max-width: none;
  margin-top: 2.6rem;
  background: #ffe14a;
  padding: 2rem 1.25rem 2.15rem;
}
.pp-school .pp-price > * { max-width: 72rem; margin-left: auto; margin-right: auto; }
.pp-school .pp-faqs { margin-top: 0.8rem; border-top: 2px solid #14121a; }
.pp-school-form { max-width: 42rem; margin-top: 1.1rem; }
#school-trial input,
#school-trial select,
#school-trial textarea {
  width: 100%;
  border: 2px solid #14121a !important;
  border-radius: 14px !important;
  background-color: #fff !important;
  min-height: 3rem;
  padding: 0.7rem 0.85rem;
  font: inherit;
  font-weight: 700;
  color: #14121a;
  box-shadow: none !important;
}
#school-trial select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #14121a 50%), linear-gradient(135deg, #14121a 50%, transparent 50%);
  background-position: calc(100% - 18px) calc(50% - 3px), calc(100% - 12px) calc(50% - 3px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 2rem;
}
#school-trial textarea { min-height: 7.5rem; }
#school-trial button[type="submit"] {
  border-radius: 999px !important;
  box-shadow: none !important;
}

/* Dashboards: fewer icons, one type style, flat rows. */
.pp-parent svg.text-brand-purple,
.pp-parent .bg-brand-purple\/10.rounded-full,
.pp-child .bg-brand-lilac.rounded-full { display: none !important; }
.pp-child .rounded-2xl.border-2.bg-white {
  border: 0 !important;
  border-top: 2px solid #14121a !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.pp-rewards h1 {
  font-size: clamp(1.8rem, 7vw, 2.4rem);
  letter-spacing: -0.04em;
  color: #14121a;
}
.pp-rewards h2 svg,
.pp-rewards h1 svg { display: none !important; }
.pp-rewards button.bg-brand-purple,
.pp-rewards button.bg-brand-green,
.pp-reward-dialog button[type="submit"] {
  background: #14121a !important;
  color: #fff !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}
.pp-rewards .border-2 {
  border-color: #14121a !important;
  box-shadow: none !important;
}
.pp-reward-dialog {
  border: 0 !important;
  border-radius: 20px !important;
  padding: 1.35rem 1.2rem 1.2rem !important;
  font-family: Nunito, "Segoe UI", Helvetica, Arial, sans-serif;
}
.pp-reward-dialog h2 {
  font-size: 1.7rem !important;
  letter-spacing: -0.04em;
  text-align: left;
  color: #14121a !important;
}
.pp-reward-dialog label { color: #14121a !important; letter-spacing: -0.02em; }
.pp-reward-dialog input {
  height: 3rem;
  border: 2px solid #14121a !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  outline: none !important;
  font-weight: 700;
}
.pp-reward-dialog input:focus,
.pp-reward-dialog input:focus-visible {
  border-color: #14121a !important;
  box-shadow: 0 0 0 3px #ffe14a !important;
  outline: none !important;
  --tw-ring-shadow: 0 0 #0000 !important;
  --tw-ring-color: transparent !important;
}

/* Every dialog, including link, quiz, rewards, delete and trial. */
.pp-pop {
  border: 0 !important;
  border-radius: 20px !important;
  background: #fff !important;
  color: #14121a !important;
  box-shadow: 0 24px 70px rgba(20, 18, 26, 0.2) !important;
  font-family: Nunito, "Segoe UI", Helvetica, Arial, sans-serif;
}
.pp-pop h1, .pp-pop h2 {
  background-image: none !important;
  color: #14121a !important;
  -webkit-text-fill-color: #14121a !important;
  letter-spacing: -0.04em;
}
.pp-pop .bg-brand-purple\/10 { display: none !important; }
.pp-pop button.bg-brand-purple,
.pp-pop button.bg-brand-green,
.pp-pop button.bg-brand-navy,
.pp-pop button[class*="bg-brand-purple"] {
  background: #14121a !important;
  color: #fff !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}
.pp-pop button[class*="outline"] { border-radius: 999px !important; border-color: #14121a !important; }
.pp-pop input, .pp-pop textarea {
  border: 2px solid #14121a !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}
.pp-pop input:focus, .pp-pop input:focus-visible, .pp-pop textarea:focus {
  box-shadow: 0 0 0 3px #ffe14a !important;
  outline: none !important;
  --tw-ring-shadow: 0 0 #0000 !important;
}
.pp-pop .bg-brand-lilac,
.pp-pop .bg-brand-lilac\/30 {
  background: #fff8d6 !important;
  border-color: #14121a !important;
}

.pp-chat-panel { border: 0 !important; border-radius: 22px !important; box-shadow: 0 24px 60px rgba(20,18,26,.28) !important; }
.pp-chat-panel .bg-brand-purple { background: #14121a !important; color: #fff !important; }
.pp-chat-panel input,
.pp-chat-panel textarea {
  border: 2px solid #14121a !important;
  border-radius: 999px !important;
  background: #fff !important;
  box-shadow: none !important;
}
.pp-chat-panel button.bg-brand-purple,
.pp-chat-panel button[class*="bg-brand-purple"] {
  background: #14121a !important;
  color: #fff !important;
  border-radius: 999px !important;
}
@media (max-width: 699px) {
  .pp-chat-on {
    inset: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    z-index: 80 !important;
    background: #14121acc;
    display: flex !important;
    flex-direction: column;
    justify-content: flex-end;
    align-items: stretch !important;
    padding: 0.85rem 0.85rem max(0.9rem, env(safe-area-inset-bottom));
    gap: 0.65rem;
  }
  .pp-chat-on .pp-chat-panel {
    width: 100% !important;
    max-width: none !important;
    max-height: min(72dvh, 560px) !important;
    flex: 1 1 auto;
  }
}

div.fixed.inset-0[class*="z-[60]"] {
  background: rgba(20, 18, 26, 0.88) !important;
}
.pp-preview {
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #14121a !important;
  box-shadow: none !important;
  gap: 0.75rem !important;
}
@media (max-width: 699px) {
  .pp-preview {
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    width: 100% !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding: 0.85rem 1rem max(1rem, env(safe-area-inset-bottom)) !important;
  }
}
@media (min-width: 700px) {
  .pp-preview {
    border-radius: 22px !important;
    box-shadow: 0 24px 70px rgba(20, 18, 26, 0.28) !important;
  }
}
.pp-preview-note {
  margin: 0.35rem 0 0;
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.35;
  color: #14121a;
}
.pp-preview .bg-purple-100,
.pp-preview .bg-blue-100,
.pp-preview .bg-green-100,
.pp-preview .bg-amber-100,
.pp-preview .bg-teal-100,
.pp-preview .bg-orange-100 {
  background: #fff !important;
  color: #14121a !important;
  border: 1.5px solid #14121a !important;
}
.pp-preview .text-brand-purple,
.pp-preview .fill-brand-purple { color: #14121a !important; fill: #14121a !important; }
.pp-preview .bg-brand-purple { background: #14121a !important; }
.pp-preview .bg-green-400 { background: #14121a !important; }
.pp-preview .bg-slate-200 { background: #ffe14a !important; }
.pp-preview-copy {
  color: #14121a;
  font-weight: 650;
  line-height: 1.45;
}
.pp-preview-copy .text-brand-purple,
.pp-preview-copy h3 { color: #14121a !important; }
.pp-preview .border-slate-100 { border-color: #eee !important; }
.pp-preview .flex.items-center.gap-2 > svg { display: none !important; }
.pp-parent .bg-purple-100,
.pp-parent .bg-blue-100,
.pp-parent .bg-green-100,
.pp-parent .bg-amber-100,
.pp-parent .bg-teal-100,
.pp-parent .bg-orange-100 {
  background: #fff !important;
  color: #14121a !important;
  border: 1.5px solid #14121a !important;
}

.pp-chat-panel > div:first-child {
  background: #14121a !important;
  color: #fff !important;
  min-height: 3.25rem;
  flex: none;
}
.pp-chat-panel > div:first-child span,
.pp-chat-panel > div:first-child button,
.pp-chat-panel > div:first-child svg { color: #fff !important; }
.pp-chat-on .pp-chat-launch { display: none !important; }
.pp-chat-panel .bg-slate-50 { background: #fff !important; }
.pp-chat-panel .self-end .rounded-2xl {
  background: #14121a !important;
  color: #fff !important;
  border: 0 !important;
}
.pp-chat-panel .self-start .rounded-2xl {
  background: #fff6cc !important;
  color: #14121a !important;
  border: 0 !important;
}
@media (max-width: 699px) {
  .pp-chat-on .pp-chat-panel {
    flex: 0 1 auto !important;
    width: 100% !important;
    max-height: min(68dvh, 520px) !important;
    min-height: 280px;
  }
}

@media (min-width: 700px) {
  .pp-landing .pp-hero {
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
    align-items: center !important;
    text-align: left !important;
    min-height: 0 !important;
    padding: 1.5rem 2rem 0.5rem !important;
    gap: 1.5rem;
  }
  .pp-landing .pp-owl {
    display: flex !important;
    order: 0 !important;
    height: auto !important;
    min-height: 0;
    margin: 0 !important;
    align-items: center;
    justify-content: center;
  }
  .pp-landing .pp-owl img {
    width: min(100%, 440px);
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 50%;
    background: transparent;
  }
  .pp-landing .pp-hero h1 {
    max-width: 11ch !important;
    white-space: normal !important;
    text-align: left !important;
    margin-left: 0 !important;
    font-size: clamp(3rem, 4.6vw, 4.8rem) !important;
    line-height: 0.92 !important;
  }
  .pp-landing .pp-lead,
  .pp-landing .pp-fine,
  .pp-landing .pp-ctas,
  .pp-landing .pp-kicker {
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
    justify-content: flex-start !important;
  }
  .pp-landing .pp-lead {
    max-width: 18em !important;
    font-size: clamp(1.15rem, 1.6vw, 1.45rem) !important;
  }
}

.pp-chat-panel > div:first-child {
  background: #14121a !important;
  color: #fff !important;
  min-height: 3.25rem;
  flex: none;
}
.pp-chat-panel > div:first-child span,
.pp-chat-panel > div:first-child button,
.pp-chat-panel > div:first-child svg { color: #fff !important; }
.pp-chat-on .pp-chat-launch { display: none !important; }
.pp-chat-panel .bg-slate-50 { background: #fff !important; }
.pp-chat-panel .self-end .rounded-2xl {
  background: #14121a !important;
  color: #fff !important;
  border: 0 !important;
}
.pp-chat-panel .self-start .rounded-2xl {
  background: #fff6cc !important;
  color: #14121a !important;
  border: 0 !important;
}
@media (max-width: 699px) {
  .pp-chat-on .pp-chat-panel {
    flex: 0 1 auto !important;
    width: 100% !important;
    max-height: min(68dvh, 520px) !important;
    min-height: 280px;
  }
}

@media (min-width: 700px) {
  .pp-landing .pp-hero {
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
    align-items: center !important;
    text-align: left !important;
    min-height: 0 !important;
    padding: 1.5rem 2rem 0.5rem !important;
    gap: 1.5rem;
  }
  .pp-landing .pp-owl {
    display: flex !important;
    order: 0 !important;
    height: auto !important;
    min-height: 0;
    margin: 0 !important;
    align-items: center;
    justify-content: center;
  }
  .pp-landing .pp-owl img {
    width: min(100%, 440px);
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 50%;
    background: transparent;
  }
  .pp-landing .pp-hero h1 {
    max-width: 11ch !important;
    white-space: normal !important;
    text-align: left !important;
    margin-left: 0 !important;
    font-size: clamp(3rem, 4.6vw, 4.8rem) !important;
    line-height: 0.92 !important;
  }
  .pp-landing .pp-lead,
  .pp-landing .pp-fine,
  .pp-landing .pp-ctas,
  .pp-landing .pp-kicker {
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
    justify-content: flex-start !important;
  }
  .pp-landing .pp-lead {
    max-width: 18em !important;
    font-size: clamp(1.15rem, 1.6vw, 1.45rem) !important;
  }
}


@media (min-width: 700px) {
  .pp-shell:has(.pp-login-page) main {
    min-height: calc(100svh - 4.25rem);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .pp-login-page {
    width: min(100%, 26rem);
    max-width: 26rem;
    margin: 0 auto;
    padding: 1.5rem 1.25rem;
    text-align: center;
  }
  .pp-login-page .pp-hero {
    display: flex !important;
    flex-direction: column;
    grid-template-columns: none !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: center !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    gap: 0.15rem;
  }
  .pp-login-page .pp-hero h1 {
    text-align: center !important;
    max-width: none !important;
    font-size: 2.6rem !important;
    margin: 0 auto !important;
  }
  .pp-login-page .pp-owl {
    display: block !important;
    order: 0 !important;
    height: 200px !important;
    width: 200px !important;
    margin: 0.4rem auto 0 !important;
  }
  .pp-login-page .pp-wrap { width: 100%; padding-top: 0.75rem; }
  .pp-login-page .pp-fine {
    margin: 0.9rem auto 0 !important;
    padding: 0 !important;
    max-width: 22rem !important;
    font-size: 0.84rem !important;
    line-height: 1.45 !important;
    font-weight: 500 !important;
    color: #6a6a6a !important;
    text-align: center !important;
  }
  .pp-login-page button.bg-brand-purple {
    background: #14121a !important;
    color: #fff !important;
    border: 0 !important;
  }
}

/* Homepage hero photo. Full-bleed on a phone. */
.pp-home .pp-hero-photo {
  display: block !important;
}
.pp-home .pp-hero-photo::before,
.pp-login-page .pp-owl::before {
  content: none !important;
  display: none !important;
  background: none !important;
}
.pp-home .pp-hero-photo img {
  display: block;
  width: 100%;
  height: 248px;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center 42%;
  border-radius: 0;
  background: #efe8dc;
  box-shadow: none;
}
@media (max-width: 699px) {
  .pp-landing .pp-hero {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    gap: 0.9rem;
  }
  .pp-landing .pp-hero > div:first-child {
    padding: 0 1.25rem;
  }
  .pp-home .pp-hero-photo {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    order: -1;
  }
  .pp-home .pp-hero-photo img {
    width: 100% !important;
    max-width: none !important;
    height: 250px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
}
@media (min-width: 700px) {
  .pp-landing .pp-hero {
    padding-right: 0 !important;
  }
  .pp-home .pp-hero-photo {
    display: flex !important;
    order: 0 !important;
    height: auto !important;
    margin: 0 !important;
    align-items: stretch;
    justify-content: flex-end;
  }
  .pp-home .pp-hero-photo img {
    width: 100%;
    height: 100%;
    min-height: 420px;
    max-height: 560px;
    aspect-ratio: auto;
    border-radius: 0;
    object-position: center 38%;
  }
}
.pp-login-page .pp-owl {
  background: transparent !important;
}
.pp-login-page .pp-owl img {
  object-fit: contain !important;
  background: transparent !important;
}
.pp-card-note {
  max-width: 76rem;
  margin: 0 auto;
  padding: 0.9rem 1.25rem 0;
  font-size: 0.92rem;
  font-weight: 600;
  color: #5c5c5c;
}
.pp-card-showcase { text-align: center; padding-top: 1.1rem; }
.pp-card-showcase .pp-real-grid { text-align: left; }
.pp-collect {
  margin: 1.35rem auto 0;
  max-width: 22rem;
  min-height: 56px;
  padding: 0.7rem 1.2rem;
  white-space: normal;
  line-height: 1.25;
  text-align: center;
}
.pp-real-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem 0.7rem;
  margin-top: 1rem;
}
.pp-real-grid .pp-real-card {
  width: 100%;
  margin: 0;
}
.pp-real-name {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  text-align: left;
  color: #14121a;
}
@media (min-width: 700px) {
  .pp-real-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1100px) {
  .pp-real-grid { grid-template-columns: repeat(4, 1fr); }
}
.pp-real-card {
  display: block;
  width: min(100%, 340px);
  margin: 1.1rem auto 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.pp-real-card img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
  box-shadow: 0 18px 40px -24px rgba(20, 18, 26, 0.65);
}
.pp-draft h2, .pp-draft .pp-aside { text-align: left; }
.pp-draft-card {
  display: block;
  width: min(100%, 360px);
  margin: 1.15rem auto 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  perspective: 1400px;
}
.pp-foil {
  display: block;
  position: relative;
  aspect-ratio: 2 / 3;
  border-radius: 26px;
  padding: 9px;
  background: conic-gradient(from 140deg, #9ae7ff, #fff6b0, #ff8ad4, #9d8bff, #7dffc3, #9ae7ff);
  box-shadow: 0 22px 40px -28px rgba(20, 18, 26, 0.7);
  transform-style: preserve-3d;
  transition: transform 0.6s ease;
}
.pp-foil.is-flipped { transform: rotateY(180deg); }
.pp-face {
  position: absolute;
  inset: 9px;
  border-radius: 18px;
  overflow: hidden;
  background: #141821;
  color: #fff;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.pp-front img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 68%;
  transform: scale(1.18);
}
.pp-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(8,10,18,.82) 0%, rgba(8,10,18,.28) 34%, rgba(8,10,18,.05) 52%, rgba(8,10,18,.72) 78%, rgba(8,10,18,.92) 100%);
}
.pp-top, .pp-subject, .pp-banner, .pp-badges, .pp-plate, .pp-meta, .pp-back ul, .pp-earned {
  position: relative;
  z-index: 1;
}
.pp-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.7rem 0.75rem 0;
}
.pp-top b {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}
.pp-top em, .pp-plate em {
  font-style: normal;
  font-family: "Bebas Neue", Impact, sans-serif;
  font-size: 1.7rem;
  letter-spacing: 0.03em;
  line-height: 1;
}
.pp-subject {
  display: block;
  margin: 0.15rem 0.7rem 0;
  font-family: "Bebas Neue", Impact, sans-serif;
  font-size: 4.3rem;
  font-weight: 400;
  line-height: 0.82;
  letter-spacing: 0.03em;
  background: linear-gradient(180deg, #fff 0%, #d5dbe3 42%, #8e97a6 62%, #f7f8fb 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 3px 0 #12141c);
}
.pp-subject-sm { font-size: 2.7rem; margin-top: 0.35rem; }
.pp-banner {
  display: block;
  width: fit-content;
  margin: 0.35rem auto 0;
  padding: 0.28rem 0.85rem 0.22rem;
  border-radius: 8px;
  background: linear-gradient(180deg, #3aa0ff, #1563d8);
  font-family: "Bebas Neue", Impact, sans-serif;
  font-size: 1.25rem;
  letter-spacing: 0.08em;
  box-shadow: 0 6px 0 #0c3f8f;
}
.pp-badges {
  position: absolute;
  left: 0.55rem;
  top: 38%;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.pp-badges i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.6rem;
  min-height: 2.15rem;
  padding: 0.2rem;
  border-radius: 10px;
  background: rgba(10, 14, 24, 0.78);
  border: 1px solid rgba(255,255,255,.18);
  font-style: normal;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-align: center;
}
.pp-plate {
  position: absolute;
  left: 0.55rem;
  right: 0.55rem;
  bottom: 2.55rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.65rem 0.7rem;
  border-radius: 12px;
  background: rgba(255,255,255,.94);
  color: #14121a;
}
.pp-plate p {
  margin: 0;
  flex: 1;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.25;
  text-align: left;
}
.pp-plate em { color: #1563d8; font-size: 2rem; }
.pp-meta {
  position: absolute;
  left: 0.7rem;
  right: 0.7rem;
  bottom: 0.55rem;
  display: flex;
  justify-content: space-between;
  font-family: "Bebas Neue", Impact, sans-serif;
  font-size: 1.25rem;
  letter-spacing: 0.06em;
}
.pp-back { transform: rotateY(180deg); background: radial-gradient(120% 80% at 50% 0%, #24304a, #10131c 55%); }
.pp-back ul {
  margin: 0.9rem 0.85rem 0;
  padding: 0;
  list-style: none;
  text-align: left;
}
.pp-back li {
  padding: 0.42rem 0;
  border-bottom: 1px solid rgba(255,255,255,.12);
  font-size: 0.98rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.pp-earned {
  position: absolute;
  left: 0.85rem;
  right: 0.85rem;
  bottom: 0.7rem;
  font-family: "Bebas Neue", Impact, sans-serif;
  font-size: 1.35rem;
  letter-spacing: 0.08em;
  color: #ffe14a;
}
.pp-desk-break { display: none; }
@media (max-width: 699px) {
  .pp-landing .pp-lead {
    max-width: 20em;
    font-size: 1.02rem;
  }
}
@media (min-width: 700px) {
  .pp-landing .pp-hero h1 { max-width: none !important; }
  .pp-landing .pp-hero h1 .pp-desk-break { display: block; }
  .pp-landing .pp-lead { max-width: 17em !important; }
}

@media (min-width: 700px) {
  .pp-home .pp-hero:has(.pp-hero-photo) {
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
    align-items: stretch !important;
    text-align: left !important;
    gap: 1.5rem 2rem;
    max-width: 76rem;
    padding: 1.25rem 0 0.25rem 2rem !important;
    min-height: 0 !important;
  }
  .pp-home:not(.pp-landing) .pp-hero:has(.pp-hero-photo) h1 {
    max-width: 12em !important;
    text-align: left !important;
    font-size: clamp(2.5rem, 3.8vw, 3.8rem) !important;
    line-height: 0.98 !important;
  }
  .pp-home:not(.pp-landing) .pp-lead,
  .pp-home:not(.pp-landing) .pp-fine,
  .pp-home:not(.pp-landing) .pp-ctas,
  .pp-home:not(.pp-landing) .pp-kicker {
    margin-left: 0 !important;
    text-align: left !important;
    justify-content: flex-start !important;
  }
  .pp-home:not(.pp-landing) .pp-lead { max-width: 22em !important; }
}
@media (max-width: 699px) {
  .pp-home .pp-hero:has(.pp-hero-photo) {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    gap: 0.9rem;
  }
  .pp-home .pp-hero:has(.pp-hero-photo) > div:first-child {
    padding: 0 1.25rem;
  }
}

/* Header, homepage hero and the three steps. These win over the older breakpoints. */
.pp-bar {
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: saturate(1.15) blur(12px);
  border-bottom: 1px solid #eceae6;
}
.pp-bar-inner {
  max-width: 76rem;
  min-height: 3.7rem;
  padding: 0 1.5rem;
}
.pp-word {
  font-size: 1.22rem;
  font-weight: 800;
  letter-spacing: -0.055em;
}
.pp-navlink {
  font-weight: 700;
  color: #5c5c5c;
  letter-spacing: -0.015em;
}
.pp-navlink:hover { color: #14121a; }
.pp-navlink.is-on {
  color: #14121a;
  box-shadow: inset 0 -2px 0 #ffe14a;
}
.pp-signin {
  min-height: 36px;
  padding: 0 0.95rem;
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
@media (min-width: 768px) and (max-width: 1099px) {
  .pp-nav { gap: 0.85rem; }
  .pp-navlink { font-size: 0.86rem; }
}

@media (min-width: 700px) {
  .pp-landing .pp-hero {
    max-width: 76rem !important;
    margin: 0 auto !important;
    min-height: 0 !important;
    align-items: center !important;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.9fr) !important;
    padding: 1.6rem 1.5rem 1.75rem !important;
    gap: 2.25rem !important;
  }
  .pp-landing .pp-hero h1 {
    font-size: clamp(3rem, 4.2vw, 4.4rem) !important;
    line-height: 0.92 !important;
    max-width: 8em !important;
  }
  .pp-landing .pp-lead {
    max-width: 18em !important;
    font-size: clamp(1.05rem, 1.5vw, 1.28rem) !important;
    font-weight: 700;
    line-height: 1.3 !important;
  }
  .pp-landing .pp-owl,
  .pp-landing .pp-hero-photo {
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
  }
  .pp-landing .pp-hero-photo::before { content: none !important; display: none !important; }
  .pp-landing .pp-hero-photo img {
    width: 100% !important;
    height: clamp(300px, 34vw, 440px) !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center 30% !important;
    border-radius: 22px !important;
  }
  .pp-landing .pp-loop {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr;
    margin-top: 0;
  }
  .pp-landing .pp-loop article {
    min-height: 0 !important;
    padding: 1.15rem 1.25rem 1.3rem;
  }
  .pp-landing .pp-loop h2 {
    margin-top: 0;
    font-size: clamp(1.45rem, 2vw, 1.85rem);
  }
  .pp-landing .pp-loop p {
    margin-top: 0.35rem;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.35;
  }
}

@media (max-width: 699px) {
  .pp-bar-inner {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .pp-landing .pp-hero > div:first-child,
  .pp-home .pp-hero:has(.pp-hero-photo) > div:first-child {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
  .pp-landing .pp-loop article {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
  .pp-landing .pp-for,
  .pp-landing .pp-wrap,
  .pp-landing .pp-end {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .pp-landing .pp-fine {
    font-weight: 500 !important;
    color: #6a6a6a !important;
  }
}

/* Child and parent dashboards: full-width type, no binder chrome. */
html, body { overflow-x: clip; }
.pp-parent .pp-dash-hero button.h-12.w-12 { display: none !important; }
.pp-child .pp-dash-hero,
.pp-parent .pp-dash-hero {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 1.35rem 1.15rem 1.25rem !important;
  box-sizing: border-box;
}
.pp-child .pp-dash-hero h1,
.pp-parent .pp-dash-hero h1 {
  font-size: 2.15rem !important;
  font-weight: 800 !important;
  letter-spacing: -0.045em !important;
  line-height: 1.02 !important;
}
.pp-child .pp-dash-hero p,
.pp-parent .pp-dash-hero p {
  font-size: 1.08rem !important;
  font-weight: 650 !important;
  line-height: 1.3 !important;
}
.pp-child h2,
.pp-parent h2 {
  font-size: 1.45rem !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em;
}
.pp-child h3 { font-size: 1.2rem !important; line-height: 1.2 !important; }
.pp-child .text-sm,
.pp-parent .text-sm { font-size: 1.02rem !important; }
.pp-child .text-xs,
.pp-parent .text-xs { font-size: 0.95rem !important; }
.pp-child .text-lg { font-size: 1.45rem !important; }
.pp-child .text-\[11px\],
.pp-child .text-\[10px\] { font-size: 0.85rem !important; }
.pp-child .rounded-2xl,
.pp-child .rounded-xl,
.pp-parent .rounded-2xl,
.pp-parent .rounded-xl {
  border-radius: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-top: 2px solid #14121a !important;
  box-shadow: none !important;
  background: transparent !important;
  background-image: none !important;
}
.pp-child .pp-dash-hero.rounded-2xl,
.pp-parent .pp-dash-hero.rounded-2xl {
  border-top: 0 !important;
  background: #ffe14a !important;
  background-image: none !important;
}
.pp-child .pp-rewards {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.pp-child .pp-rewards svg { display: none !important; }
.pp-child .pp-rewards .text-base { font-size: 1.45rem !important; font-weight: 800 !important; }
.pp-binder h2 { margin: 0.2rem 0 0.15rem; }
.pp-binder-note {
  margin: 0 0 0.7rem;
  color: #3a3642;
  font-size: 1rem;
  font-weight: 650;
}
.pp-card-row {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: 0.15rem 1.15rem 0.4rem;
  box-sizing: border-box;
}
.pp-card-row figure {
  flex: 0 0 min(17rem, 74vw);
  margin: 0;
  scroll-snap-align: center;
}
.pp-card-row img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 14px;
}
.pp-card-row figcaption {
  margin-top: 0.45rem;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #14121a;
}
.pp-child .shadow-sm,
.pp-child .shadow-md,
.pp-child .hover\:shadow-md,
.pp-parent .shadow-sm,
.pp-parent .shadow-md { box-shadow: none !important; }
.pp-child h2 svg,
.pp-child summary svg,
.pp-parent h2 svg { display: none !important; }
.pp-child .h-1\.5,
.pp-child .h-2\.5,
.pp-parent .h-1\.5,
.pp-parent .h-2\.5 { background: #efece4 !important; border: 0 !important; }
.pp-child .h-1\.5 > div,
.pp-child .h-2\.5 > div,
.pp-parent .h-1\.5 > div,
.pp-parent .h-2\.5 > div { background: #14121a !important; }
.pp-child span.rounded-full {
  background: transparent !important;
  border-color: transparent !important;
  padding-left: 0 !important;
  color: #5c5c5c !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.pp-child .bg-brand-purple,
.pp-child button.bg-brand-purple,
.pp-parent .bg-brand-purple,
.pp-parent button.bg-brand-purple {
  background: #14121a !important;
  border-color: #14121a !important;
  color: #fff !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}

.pp-missing {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2.2rem 1.25rem 3rem;
  background: #fff;
  color: #14121a;
}
.pp-missing-owl {
  width: min(16rem, 70vw);
  height: auto;
  margin: 0 0 0.2rem;
  mix-blend-mode: normal;
  -webkit-mask-image: radial-gradient(circle at 50% 48%, #000 54%, transparent 71%);
  mask-image: radial-gradient(circle at 50% 48%, #000 54%, transparent 71%);
}
.pp-missing h1 {
  margin: 0;
  font-size: clamp(2rem, 6vw, 2.7rem);
  line-height: 1.02;
  letter-spacing: -0.045em;
  font-weight: 800;
}
.pp-missing p {
  margin: 0.6rem 0 1.25rem;
  max-width: 22rem;
  color: #3a3644;
  font-size: 1.05rem;
  font-weight: 650;
}
.pp-missing-actions { display: flex; gap: 0.6rem; }
.pp-missing button {
  height: 2.85rem;
  padding: 0 1.25rem;
  border-radius: 999px;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.pp-missing button:first-child {
  background: #fff;
  color: #14121a;
  border: 2px solid #14121a;
}
.pp-missing button:last-child {
  background: #14121a;
  color: #fff;
  border: 2px solid #14121a;
}
.pp-missing-owl,
.pp-login-page .pp-owl img,
.pp-login-page .pp-owl video {
  mix-blend-mode: darken;
  background: transparent !important;
}
.pp-home.pp-login-page .pp-fine {
  display: block;
  max-width: 28rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  font-weight: 500 !important;
  color: #6a6a6a !important;
}
@media (min-width: 700px) {
  .pp-child .pp-dash-hero,
  .pp-parent .pp-dash-hero {
    padding: 1.8rem 2rem 1.6rem !important;
  }
  .pp-child .pp-dash-hero h1,
  .pp-parent .pp-dash-hero h1 {
    font-size: clamp(2.35rem, 3vw, 3rem) !important;
  }
  .pp-card-row figure { flex-basis: min(18rem, 42vw); }
}
@media (min-width: 1100px) {
  .pp-child .pp-dash-hero,
  .pp-parent .pp-dash-hero,
  .pp-card-row {
    padding-left: max(2rem, calc(50vw - 38rem)) !important;
    padding-right: max(2rem, calc(50vw - 38rem)) !important;
  }
  .pp-child, .pp-parent {
    max-width: 76rem;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 380px) {
  .pp-real-grid { grid-template-columns: 1fr !important; }
  .pp-real-grid .pp-real-card { max-width: 17rem; margin-left: auto; margin-right: auto; }
  .pp-real-name { font-size: 1rem; }
}

/* ------------------------------------------------------------------ */
/* Pre-production responsiveness pass                                  */
/* ------------------------------------------------------------------ */

html { scroll-padding-top: 4.75rem; }
.pp-shell [id] { scroll-margin-top: 4.75rem; }

.pp-bar-inner > a:first-child {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  min-width: 44px;
}
.pp-signin {
  min-height: 44px;
  padding: 0 1rem;
}
.pp-foot a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.pp-social a {
  width: 44px;
  height: 44px;
}
.pp-search {
  min-height: 52px;
  height: auto;
  align-items: stretch;
}
.pp-search input {
  height: auto;
  min-height: 44px;
  align-self: stretch;
}
.pp-search button {
  height: 44px;
  min-height: 44px;
  min-width: 44px;
  align-self: center;
}
.pp-toast {
  max-width: calc(100vw - 1.5rem);
  text-align: center;
  box-sizing: border-box;
}

@media (max-width: 699px) {
  .pp-landing .pp-hero h1 {
    white-space: normal;
    font-size: clamp(2.15rem, 12vw, 2.75rem);
    line-height: 0.94;
    letter-spacing: -0.045em;
    max-width: 11ch;
  }
  .pp-landing .pp-lead {
    font-size: 1.08rem;
    line-height: 1.35;
    max-width: 34em;
  }
  .pp-landing .pp-ctas {
    flex-direction: column;
    align-items: stretch;
  }
  .pp-landing .pp-ctas .pp-go { width: 100%; }
  .pp-drawer {
    max-height: calc(100dvh - 3.8rem);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .pp-tile b { font-size: 1.2rem; }
  .pp-tile span { font-size: 0.95rem; line-height: 1.3; }
  .pp-plan,
  .pp-tile,
  .pp-loop article,
  .pp-for li,
  .pp-shell h1,
  .pp-shell h2,
  .pp-shell h3 { overflow-wrap: anywhere; }
  .pp-shell table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .pp-shell pre { max-width: 100%; overflow-x: auto; }
  .pp-login-page .pp-login .h-11,
  .pp-login-page .pp-login .h-12,
  .pp-login-page .pp-login button[type="submit"],
  .pp-login-page .space-y-3 > button {
    height: 2.75rem;
    min-height: 2.75rem;
  }
  .pp-login-page .pp-fine { font-size: 0.9rem !important; }
  .pp-login-page.pp-role .pp-hero h1 {
    white-space: normal;
    font-size: clamp(1.7rem, 8vw, 2.15rem);
    max-width: 12em;
  }
}

@media (max-width: 359px) {
  .pp-tiles,
  .pp-cards { grid-template-columns: 1fr; }
  .pp-bar-inner {
    padding-left: 0.8rem;
    padding-right: 0.55rem;
    gap: 0.25rem;
  }
  .pp-signin { padding: 0 0.75rem; font-size: 0.88rem; }
  .pp-word { font-size: 1.12rem; }
}

@media (min-width: 768px) and (max-width: 1099px) {
  .pp-bar-inner {
    padding-left: 1rem;
    padding-right: 1rem;
    gap: 0.5rem;
  }
  .pp-nav { gap: 0.15rem 0.65rem; flex-wrap: nowrap; }
  .pp-navlink { font-size: 0.92rem; white-space: nowrap; }
  .pp-signin { padding: 0 0.75rem; font-size: 0.88rem; }
}

@media (max-height: 520px) {
  .pp-login-page .pp-owl,
  .pp-login-page .pp-owl img,
  .pp-login-page .pp-owl video {
    height: 72px !important;
    width: 72px !important;
    max-height: 72px !important;
  }
  .pp-login-page .pp-hero h1 { font-size: 1.55rem !important; margin-top: 0.1rem !important; }
  .pp-login-page .pp-hero { gap: 0.1rem !important; min-height: 0 !important; padding-top: 0.25rem !important; padding-bottom: 0 !important; }
  .pp-landing .pp-hero { padding-top: 0.35rem !important; padding-bottom: 0.25rem !important; gap: 0.5rem !important; min-height: 0 !important; }
  .pp-landing .pp-hero h1 { font-size: clamp(1.7rem, 5vw, 2.15rem) !important; }
  .pp-landing .pp-hero-photo img,
  .pp-landing .pp-owl { height: 110px !important; max-height: 30vh !important; }
}

@media (max-width: 899px) and (max-height: 520px) {
  body:has(.pp-login-page) { overflow: auto; height: auto; }
  .pp-shell:has(.pp-login-page),
  .pp-shell:has(.pp-login-page) main,
  .pp-login-page.pp-home {
    height: auto;
    max-height: none;
    min-height: 100svh;
    overflow: visible;
    justify-content: flex-start;
    padding-top: 0.45rem;
    gap: 0.2rem;
  }
  .pp-login-page .pp-owl { display: none !important; }
  .pp-login-page .pp-hero { padding-top: 0 !important; }
  .pp-login-page .pp-hero h1 { font-size: 1.35rem !important; margin: 0 !important; }
  .pp-login-page .pp-proof { margin: 0.15rem 0 0 !important; font-size: 0.82rem !important; }
  .pp-login-page .space-y-3 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.35rem !important; }
  .pp-login-page .space-y-1\.5 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.1rem !important; }
}

.pp-login-page .relative > button {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  right: 0.15rem;
}
.pp-login-page #password { padding-right: 3rem !important; }
.pp-login-page button.text-xs {
  font-size: 0.9rem !important;
  min-height: 44px;
  padding: 0 0.2rem;
}
.pp-login-page button.text-sm { min-height: 44px; }

.pp-child .pp-dash-hero,
.pp-parent .pp-dash-hero {
  width: auto;
  max-width: none;
  margin-left: calc(50% - 50dvw) !important;
  margin-right: calc(50% - 50dvw) !important;
}
.pp-card-row {
  width: auto;
  max-width: none;
  margin-left: calc(50% - 50dvw);
  margin-right: calc(50% - 50dvw);
}
@media (max-width: 767px) {
  .pp-child button,
  .pp-parent button,
  .pp-child a[class*="rounded-full"],
  .pp-parent a[class*="rounded-full"] {
    min-height: 44px !important;
    min-width: 44px;
  }
  .pp-child .grid > *,
  .pp-parent .grid > * { min-width: 0; }
}

.pp-foil-card {
  display: block;
  width: 100%;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.pp-foil-card .backface-hidden {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.pp-real-name { overflow-wrap: anywhere; }
.pp-card-showcase .pp-real-grid { margin-top: 0.85rem; }

/* Child dashboard header.
   The yellow greeting used a viewport breakout. Next to the sidebar that
   pulls it over the menu and off the right edge of an iPad. From phone
   through iPad landscape, use the top bar. On a wide desktop, keep the
   sidebar and let the greeting fill the content column only. */
@media (max-width: 1180px) {
  .min-h-screen.bg-slate-50 > header.sticky.top-0 {
    display: flex !important;
    align-items: center;
    min-height: 4.25rem;
    padding-left: 1.15rem !important;
    padding-right: 1rem !important;
    box-sizing: border-box;
  }
  .min-h-screen.bg-slate-50 > header.sticky.top-0 .pp-word {
    font-size: 1.35rem;
    line-height: 1;
  }
  .min-h-screen.bg-slate-50 > aside.sticky.top-0 {
    display: none !important;
  }
  .min-h-screen.bg-slate-50.flex.flex-col {
    flex-direction: column !important;
  }
}
@media (min-width: 1181px) {
  .min-h-screen.bg-slate-50 > aside.sticky.top-0 { z-index: 40; }
  .pp-child .pp-dash-hero,
  .pp-parent .pp-dash-hero {
    width: auto !important;
    max-width: none !important;
    margin-left: -2rem !important;
    margin-right: -2rem !important;
  }
  .pp-card-row {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* Homepage Lesson / Quiz / Progress bands stay inside the page column. */
.pp-landing .pp-loop {
  width: 100%;
  max-width: 76rem;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  gap: 0.75rem;
  box-sizing: border-box;
}
.pp-landing .pp-loop article {
  border-radius: 18px;
}
@media (max-width: 699px) {
  .pp-landing .pp-loop {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    gap: 0.55rem;
  }
}
