.letter-grid-full {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  max-height: 760px;
  overflow: auto;
  padding-right: 6px;
}

.letter-grid-full .letter-card {
  min-height: 88px;
}

.letter-grid-full .letter-card span:last-child {
  display: none;
}

.bhaasha-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
}

.bhaasha-meta-chip {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255, 247, 232, 0.92);
  border: 1px solid rgba(141, 75, 32, 0.14);
  color: var(--br-accent-deep);
  font-weight: 700;
}

.bhaasha-audience-panel[hidden] {
  display: none;
}

.bhaasha-audience-switch {
  display: grid;
  grid-template-columns: minmax(210px, 250px);
  gap: 10px;
  justify-self: end;
  align-self: center;
}

.bhaasha-audience-choice {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 3px 14px;
  align-items: center;
  padding: 18px;
  border: 1px solid rgba(141, 75, 32, 0.18);
  border-radius: 22px;
  background: rgba(255, 251, 243, 0.84);
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  text-decoration: none;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.bhaasha-audience-choice:hover,
.bhaasha-audience-choice:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(155, 79, 30, 0.5);
  outline: none;
}

.bhaasha-audience-choice.is-active {
  box-shadow: 0 14px 34px rgba(83, 31, 11, 0.12);
}

.bhaasha-audience-children {
  border-color: rgba(31, 111, 120, 0.32);
  background: linear-gradient(145deg, rgba(240, 253, 250, 0.96), rgba(192, 232, 226, 0.76));
}

.bhaasha-audience-children.is-active {
  border-color: #1f6f78;
  box-shadow: 0 0 0 3px rgba(31, 111, 120, 0.12), 0 14px 34px rgba(21, 82, 88, 0.16);
}

.bhaasha-audience-elders {
  border-color: rgba(155, 79, 30, 0.32);
  background: linear-gradient(145deg, rgba(255, 249, 235, 0.98), rgba(255, 218, 145, 0.74));
}

.bhaasha-audience-elders.is-active {
  border-color: #9b4f1e;
  box-shadow: 0 0 0 3px rgba(155, 79, 30, 0.12), 0 14px 34px rgba(83, 31, 11, 0.16);
}

.bhaasha-audience-games {
  border-color: rgba(130, 30, 68, 0.48);
  background: linear-gradient(135deg, #7a173c, #d96527 62%, #efaa22);
  color: #fff;
  box-shadow: 0 12px 28px rgba(111, 31, 38, 0.24);
}
.bhaasha-audience-games > span { background:rgba(255,255,255,.18); color:#fff; font-size:1.55rem; }
.bhaasha-audience-games small { color:#fff2cc; }
.bhaasha-audience-games:hover,.bhaasha-audience-games:focus-visible { border-color:#ffd45e; box-shadow:0 16px 34px rgba(111,31,38,.32),0 0 0 3px rgba(255,212,94,.22); }

.bhaasha-audience-choice > span {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  min-width: 70px;
  min-height: 58px;
  padding: 6px 10px;
  border-radius: 16px;
  background: rgba(155, 79, 30, 0.1);
  color: var(--br-accent-deep);
  font-family: 'Noto Serif Telugu', serif;
  font-size: 1.18rem;
  font-weight: 800;
}

.bhaasha-audience-choice strong {
  font-family: 'Noto Serif Telugu', serif;
  font-size: 1.16rem;
}

.bhaasha-audience-choice small {
  color: var(--br-muted);
  line-height: 1.45;
}

.elder-dictionary {
  background:
    radial-gradient(circle at 90% 6%, rgba(31, 111, 120, 0.12), transparent 28%),
    rgba(255, 252, 246, 0.94);
}

.elder-repository-note {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 18px 0;
  padding: 14px 16px;
  border: 1px solid rgba(31, 111, 120, 0.18);
  border-radius: 16px;
  background: rgba(232, 247, 246, 0.62);
  color: var(--br-muted);
}

.elder-repository-note strong {
  color: #185b62;
}

.elder-dictionary-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.35fr);
  gap: 18px;
  align-items: start;
}

.elder-search-panel,
.elder-detail-panel {
  min-height: 470px;
  padding: 20px;
  border: 1px solid rgba(112, 74, 39, 0.14);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.76);
}

.elder-search-panel label {
  display: block;
  margin-bottom: 9px;
  color: var(--br-accent-deep);
  font-weight: 800;
}

.elder-search-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border: 1px solid rgba(112, 74, 39, 0.24);
  border-radius: 15px;
  background: #fffdf8;
}

.elder-search-wrap:focus-within {
  border-color: #1f6f78;
  box-shadow: 0 0 0 3px rgba(31, 111, 120, 0.12);
}

.elder-search-wrap input {
  width: 100%;
  min-height: 50px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--br-text);
  font: 600 1rem 'Noto Serif Telugu', 'Plus Jakarta Sans', sans-serif;
}

.elder-search-help {
  margin: 9px 2px 14px;
  color: var(--br-muted);
  font-size: 0.88rem;
}

.elder-results {
  display: grid;
  gap: 8px;
  max-height: 440px;
  overflow: auto;
  padding-right: 4px;
}

.elder-result {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px 13px;
  border: 1px solid rgba(112, 74, 39, 0.12);
  border-radius: 14px;
  background: rgba(255, 250, 240, 0.76);
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.elder-result:hover,
.elder-result.is-active,
.elder-result.is-selected {
  border-color: rgba(31, 111, 120, 0.45);
  background: rgba(226, 244, 243, 0.72);
}

.elder-result span {
  display: grid;
  gap: 2px;
}

.elder-result strong {
  font-family: 'Noto Serif Telugu', serif;
  font-size: 1.08rem;
}

.elder-result small {
  color: var(--br-muted);
}

.elder-result em {
  flex: 0 0 auto;
  color: #185b62;
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 800;
}

.elder-empty {
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 420px;
  text-align: center;
}

.elder-empty > span {
  display: grid;
  place-items: center;
  width: 94px;
  height: 94px;
  border-radius: 50%;
  background: rgba(155, 79, 30, 0.1);
  color: var(--br-accent-deep);
  font: 700 3.2rem 'Noto Serif Telugu', serif;
}

.elder-empty h3,
.elder-empty p,
.elder-word-card h3,
.elder-word-card p {
  margin: 0;
}

.elder-empty h3 {
  margin-top: 18px;
}

.elder-empty p {
  margin-top: 7px;
  color: var(--br-muted);
}

.elder-word-card {
  display: grid;
  gap: 18px;
}

.elder-word-card h3 {
  color: var(--br-accent-deep);
  font: 800 clamp(2.7rem, 7vw, 5.2rem) 'Noto Serif Telugu', serif;
  line-height: 1.05;
}

.elder-origin {
  width: fit-content;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(31, 111, 120, 0.1);
  color: #185b62;
  font-weight: 800;
}

.elder-origin-tatsama {
  background: rgba(124, 58, 237, 0.1);
  color: #5b21b6;
}

.elder-origin-tadbhava {
  background: rgba(217, 119, 6, 0.12);
  color: #92400e;
}

.elder-meaning,
.elder-origin-note {
  display: grid;
  gap: 7px;
  padding: 16px;
  border-radius: 16px;
  background: rgba(255, 247, 232, 0.78);
}

.elder-meaning p,
.elder-origin-note p {
  font-family: 'Noto Serif Telugu', serif;
  font-size: 1.08rem;
  line-height: 1.75;
}

.elder-meaning small {
  color: var(--br-muted);
}

.elder-sources {
  border-top: 1px solid rgba(112, 74, 39, 0.14);
  padding-top: 13px;
}

.elder-sources summary {
  cursor: pointer;
  color: var(--br-accent-deep);
  font-weight: 800;
}

.elder-sources a {
  display: block;
  margin-top: 9px;
  color: #185b62;
  line-height: 1.5;
}

.elder-no-results,
.elder-loading {
  color: var(--br-muted);
  line-height: 1.65;
}

.bhaasha-tool-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  padding: 24px;
  border: 1px solid rgba(141, 75, 32, 0.14);
  border-radius: 28px;
  background:
    radial-gradient(circle at 12% 0%, rgba(255, 216, 104, 0.22), transparent 34%),
    linear-gradient(145deg, rgba(255, 253, 248, 0.94), rgba(255, 244, 226, 0.82));
  box-shadow: 0 18px 42px rgba(55, 22, 9, 0.12);
}

.bhaasha-tool-intro > .tool-vedika-title {
  grid-column: 1 / -1;
}

.elder-topic-switch {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.elder-topic {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 2px 13px;
  align-items: center;
  padding: 17px;
  border: 1px solid rgba(112, 74, 39, 0.18);
  border-radius: 19px;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.elder-topic > span {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 14px;
  font-family: 'Noto Serif Telugu', serif;
  font-weight: 800;
}

.elder-topic strong {
  font: 800 1.12rem 'Noto Serif Telugu', serif;
}

.elder-topic small {
  color: var(--br-muted);
}

.elder-topic-dictionary {
  background: rgba(232, 247, 246, 0.78);
  border-color: rgba(31, 111, 120, 0.26);
}

.elder-topic-dictionary > span {
  background: rgba(31, 111, 120, 0.12);
  color: #185b62;
}

.elder-topic-grammar {
  background: rgba(246, 239, 255, 0.8);
  border-color: rgba(124, 58, 237, 0.22);
}

.elder-topic-grammar > span {
  background: rgba(124, 58, 237, 0.1);
  color: #5b21b6;
}

.elder-topic-amarakosha {
  background: rgba(255, 241, 204, 0.82);
  border-color: rgba(180, 113, 16, 0.3);
}

.elder-topic-amarakosha > span {
  background: rgba(180, 113, 16, 0.12);
  color: #8a4b08;
}

.amarakosha-intro {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin: 24px 0 16px;
}

.amarakosha-intro h3,
.amarakosha-intro p {
  margin: 0;
}

.amarakosha-intro h3 {
  margin-top: 5px;
  font: 800 1.75rem 'Noto Serif Telugu', serif;
}

.amarakosha-intro p:last-child {
  margin-top: 8px;
  max-width: 780px;
  color: var(--br-muted);
  line-height: 1.65;
}

.amarakosha-intro .bhaasha-button {
  flex: 0 0 auto;
}

.amarakosha-frame-wrap {
  overflow: hidden;
  border: 1px solid rgba(112, 74, 39, 0.18);
  border-radius: 22px;
  background: #f6f1df;
  box-shadow: 0 16px 34px rgba(55, 22, 9, 0.12);
}

.amarakosha-frame {
  display: block;
  width: 100%;
  height: min(920px, 82vh);
  min-height: 680px;
  border: 0;
  background: #f6f1df;
}

.amarakosha-credit {
  margin: 14px 4px 0;
  color: var(--br-muted);
  font-size: 0.82rem;
  line-height: 1.55;
}

.elder-topic.is-active,
.elder-topic:hover,
.elder-topic:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(31, 111, 120, 0.1), 0 12px 28px rgba(55, 22, 9, 0.1);
  transform: translateY(-1px);
}

.elder-section-prompt {
  display: grid;
  place-items: center;
  min-height: 210px;
  margin-top: 18px;
  padding: 28px;
  border: 1px dashed rgba(112, 74, 39, 0.24);
  border-radius: 20px;
  color: var(--br-muted);
  text-align: center;
}

.elder-section-prompt strong {
  color: var(--br-accent-deep);
  font: 800 1.3rem 'Noto Serif Telugu', serif;
}

.elder-section-prompt p {
  margin: 8px 0 0;
}

.elder-dictionary-intro {
  margin: 24px 0 16px;
}

.elder-dictionary-intro h3,
.elder-dictionary-intro p {
  margin: 0;
}

.elder-dictionary-intro h3 {
  font: 800 1.55rem 'Noto Serif Telugu', serif;
}

.elder-dictionary-intro p {
  margin-top: 7px;
  color: var(--br-muted);
}

.tool-vedika-title {
  justify-self: center;
  margin: 0;
  padding: 8px 18px;
  border: 1px solid rgba(157, 91, 36, 0.24);
  border-radius: 999px;
  color: var(--br-accent-deep);
  background: rgba(255, 249, 238, 0.9);
  box-shadow: 0 12px 28px rgba(83, 31, 11, 0.1);
  font-family: 'Noto Serif Telugu', serif;
  font-size: clamp(1rem, 1.8vw, 1.35rem);
  font-weight: 800;
  text-align: center;
}

.bhaasha-tool-intro h2,
.bhaasha-tool-intro p {
  margin: 0;
}

.bhaasha-tool-intro h2 {
  font-size: clamp(1.5rem, 3vw, 2.4rem);
}

.bhaasha-tool-intro p:last-child {
  margin-top: 8px;
  color: var(--br-muted);
  line-height: 1.7;
}

.bhaasha-tool-guide {
  border: 1px solid rgba(141, 75, 32, 0.14);
  border-radius: 20px;
  background: rgba(255, 251, 243, 0.76);
  overflow: hidden;
}

.bhaasha-tool-guide summary {
  cursor: pointer;
  padding: 15px 18px;
  color: var(--br-accent-deep);
  font-weight: 800;
}

.bhaasha-tool-guide ol {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0 22px 18px 44px;
  color: var(--br-muted);
  line-height: 1.55;
}

.bhaasha-module-one-section {
  position: relative;
}

.bhaasha-module-one-section::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 12% 8%, rgba(255, 197, 66, 0.24), transparent 28%),
    radial-gradient(circle at 86% 10%, rgba(155, 79, 30, 0.14), transparent 26%);
}

.bhaasha-module-one-section > * {
  position: relative;
}

.bhaasha-module-one-heading {
  max-width: 860px;
}

.module-one-callout {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin: 18px 0 20px;
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(155, 79, 30, 0.18);
  background: rgba(255, 248, 235, 0.86);
}

.module-one-callout div {
  display: grid;
  gap: 4px;
}

.module-one-callout strong {
  font-size: 1.16rem;
}

.module-one-callout span {
  color: var(--br-muted);
  line-height: 1.55;
}

.module-one-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.module-one-card {
  display: grid;
  gap: 10px;
  min-height: 260px;
  padding: 20px;
  border: 1px solid rgba(112, 74, 39, 0.14);
  border-radius: 22px;
  background: rgba(255, 251, 243, 0.88);
}

.module-one-card h4,
.module-one-bridge h4 {
  margin: 0;
  font-size: 1.18rem;
}

.module-one-card strong {
  color: var(--br-accent-deep);
}

.module-one-card p,
.module-one-card small,
.module-one-practice,
.module-one-bridge {
  color: var(--br-muted);
  line-height: 1.65;
}

.module-one-card small {
  display: block;
  font-size: 0.92rem;
}

.module-one-number {
  display: inline-flex;
  width: fit-content;
  min-height: 36px;
  align-items: center;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(155, 79, 30, 0.1);
  color: var(--br-accent-deep);
  font-weight: 800;
}

.module-one-bridge {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 14px;
  margin-top: 14px;
}

.module-one-bridge article {
  padding: 20px;
  border-radius: 22px;
  border: 1px solid rgba(112, 74, 39, 0.14);
  background: rgba(255, 251, 243, 0.86);
}

.module-one-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.module-one-chip {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 247, 232, 0.9);
  border: 1px solid rgba(155, 79, 30, 0.14);
}

.module-one-practice {
  margin: 14px 0 0;
  padding-left: 22px;
}

/* Children course: six complete, independently opened learning modules. */
.children-course { display: grid; gap: 24px; }
.child-progress { display: grid; grid-template-columns: minmax(180px, auto) minmax(160px, 1fr) auto; align-items: center; gap: 16px; padding: 16px 18px; border: 1px solid rgba(140, 59, 29, .14); border-radius: 20px; background: rgba(255, 252, 247, .86); }
.child-progress div:first-child { display: grid; gap: 3px; }
.child-progress span { color: var(--br-muted); font-size: .82rem; }
.child-progress-track { height: 10px; overflow: hidden; border-radius: 999px; background: rgba(140, 59, 29, .1); }
.child-progress-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #a34f1f, #d9a43f); transition: width .25s ease; }
.child-progress b { color: var(--br-accent-deep); }
.child-start-guide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.child-start-guide li { display:flex; align-items:center; gap:10px; padding:13px 15px; border:1px solid rgba(140,59,29,.14); border-radius:17px; background:#fffaf1; }
.child-start-guide li > b { display:grid; place-items:center; flex:0 0 34px; height:34px; border-radius:50%; background:#8c3b1d; color:white; }
.child-start-guide span,.child-start-guide strong,.child-start-guide small { display:block; }
.child-start-guide strong { color:#6e2e13; }
.child-start-guide small { margin-top:2px; color:var(--br-muted); line-height:1.35; }
.child-module-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.child-module-card { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 12px; min-height: 220px; padding: 18px; border: 1px solid rgba(140, 59, 29, .14); border-radius: 20px; background: rgba(255, 252, 247, .9); color: var(--br-ink); text-align: left; cursor: pointer; }
.child-module-card:hover, .child-module-card.is-active { border-color: rgba(140, 59, 29, .48); transform: translateY(-1px); box-shadow: 0 14px 30px rgba(88, 45, 20, .1); }
.child-module-card.is-active { background: linear-gradient(145deg, rgba(255, 244, 221, .98), rgba(255, 252, 247, .98)); }
.child-module-card.is-complete { box-shadow: inset 0 -4px #6c8a5b; }
.child-module-index { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #f2e3cf; color: var(--br-accent-deep); font-weight: 800; }
.child-module-card strong, .child-module-card small, .child-module-card em { display: block; }
.child-module-card strong { color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: 1.08rem; }
.child-module-card small { margin-top: 2px; color: var(--br-accent); font-weight: 800; }
.child-module-card em { margin-top: 8px; color: var(--br-muted); font-size: .83rem; font-style: normal; line-height: 1.45; }
.child-module-copy { display:grid; min-height:184px; align-content:start; }
.child-module-do { display:block; margin-top:11px; padding:10px 11px; border-radius:12px; background:#f8eddd; color:#70412b; font-size:.82rem; line-height:1.45; }
.child-module-do b { display:block; margin-bottom:2px; color:#8c3b1d; font-size:.75rem; text-transform:none; }
.child-module-cta { align-self:end; display:block; margin-top:10px; color:#9b431c; font-weight:900; font-size:.85rem; }
.child-module-card.is-active .child-module-cta { color:#456f32; }
.child-lesson { display: grid; gap: 22px; padding: clamp(18px, 4vw, 30px); border: 1px solid rgba(140, 59, 29, .16); border-radius: 28px; background: rgba(255, 253, 248, .94); box-shadow: 0 20px 44px rgba(83, 42, 18, .08); }
.child-lesson-head { max-width: 850px; }
.child-lesson-head h3 { margin: 5px 0 8px; color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: clamp(1.65rem, 3vw, 2.35rem); }
.child-lesson-head > p:last-child { margin: 0; color: var(--br-muted); line-height: 1.75; }
.child-teach-grid, .child-writing-layout { display: grid; grid-template-columns: minmax(250px, .9fr) minmax(320px, 1.1fr); gap: 18px; align-items: start; }
.child-letter-library { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.child-letter, .child-family-letter, .child-trace-picker button, .gunintam-table button, .vottu-grid button, .child-answer-grid button, .child-family-tabs button { border: 1px solid rgba(140, 59, 29, .15); background: rgba(255, 250, 242, .92); color: var(--br-ink); font: inherit; cursor: pointer; }
.child-letter { display: grid; place-items: center; min-height: 76px; border-radius: 17px; }
.child-letter strong { color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: 1.6rem; }
.child-letter small { color: var(--br-muted); }
.child-letter.is-active, .child-family-letter.is-active, .child-trace-picker button.is-active, .gunintam-table button.is-active, .vottu-grid button.is-active { border-color: var(--br-accent); background: #f4e2c9; box-shadow: 0 8px 18px rgba(97, 49, 21, .1); }
.child-focus-card, .child-practice-card, .child-sound-note, .child-equation, .child-cluster-focus, .child-daily-plan, .child-trace-card { border: 1px solid rgba(140, 59, 29, .14); border-radius: 24px; background: rgba(255, 252, 247, .94); padding: 20px; }
.child-focus-card { text-align: center; }
.child-focus-symbol { display: block; color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: clamp(5rem, 13vw, 9rem); line-height: 1.15; }
.child-focus-card h4 { margin: 0; color: var(--br-accent); font-size: 1.3rem; }
.child-focus-card ol, .child-daily-plan ol { color: var(--br-muted); line-height: 1.8; text-align: left; }
.child-rare-note { padding: 9px 12px; border-radius: 12px; background: #fff3d7; color: #7a4c16; font-size: .85rem; }
.child-practice-card { display: grid; gap: 14px; }
.child-practice-card h4 { margin: 0; color: var(--br-accent-deep); font-size: 1.2rem; }
.child-answer-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.child-answer-grid button { min-height: 62px; border-radius: 16px; color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: 1.35rem; font-weight: 800; }
.child-answer-grid button.is-correct { border-color: #638253; background: #e7f2df; }
.child-answer-grid button.is-wrong { border-color: #b04e3d; background: #fde8e2; }
.child-feedback { min-height: 24px; margin: 0; color: var(--br-accent); font-weight: 800; }
.child-family-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.child-family-tabs button { padding: 14px; border-radius: 16px; text-align: left; }
.child-family-tabs strong, .child-family-tabs small { display: block; }
.child-family-tabs strong { color: var(--br-accent-deep); }
.child-family-tabs small { margin-top: 4px; color: var(--br-muted); }
.child-family-tabs button.is-active { border-color: var(--br-accent); background: #f4e2c9; }
.child-family-board { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.child-family-letter { display: grid; place-items: center; min-height: 100px; border-radius: 20px; }
.child-family-letter span { color: var(--br-muted); font-size: .75rem; }
.child-family-letter strong { color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: 2rem; }
.child-family-letter small { color: var(--br-accent); font-weight: 800; }
.child-sound-note, .child-cluster-focus { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.child-sound-note div { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 5px 12px; }
.child-sound-note div > span { grid-row: span 2; font-size: 2rem; }
.child-sound-note p { margin: 0; color: var(--br-muted); }

.sadhana-journey { --journey-a:#7c2d12; --journey-b:#f5c96a; display:grid; gap:20px; }
.sadhana-journey.theme-1 { --journey-a:#1f6f78; --journey-b:#c7e7df; }
.sadhana-journey.theme-2 { --journey-a:#6b3f83; --journey-b:#e6d3ef; }
.sadhana-journey.theme-3 { --journey-a:#8a4f13; --journey-b:#efd49d; }
.sadhana-scene { position:relative; min-height:190px; overflow:hidden; border-radius:26px; background:linear-gradient(180deg, var(--journey-b), #fff8e9 72%); padding:28px 30px; color:#4b2717; }
.sadhana-scene::after { content:""; position:absolute; inset:auto 0 0; height:36px; background:repeating-linear-gradient(90deg, var(--journey-a) 0 36px, transparent 36px 58px); opacity:.16; }
.sadhana-scene > div:last-child { position:relative; z-index:2; max-width:620px; }
.sadhana-scene p { margin:0 0 6px; color:var(--journey-a); font-weight:800; }
.sadhana-scene h4 { margin:0; font-family:'Noto Serif Telugu',serif; font-size:clamp(1.8rem,5vw,3.3rem); color:var(--journey-a); }
.sadhana-scene span { display:block; margin-top:8px; font-weight:700; }
.sadhana-sun { position:absolute; right:40px; top:25px; width:64px; height:64px; border-radius:50%; background:#ffd76a; box-shadow:0 0 0 14px rgba(255,215,106,.22); animation:sadhanaGlow 3s ease-in-out infinite; }
.sadhana-gopuram { position:absolute; right:108px; bottom:30px; font-size:4.5rem; transform-origin:bottom center; animation:sadhanaSway 4s ease-in-out infinite; }
.sadhana-traveller { position:absolute; left:15%; bottom:15px; z-index:3; font-size:2.1rem; animation:sadhanaTravel 8s linear infinite; }
.sadhana-level-map { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.sadhana-level { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:8px; min-height:64px; border:1px solid rgba(140,59,29,.16); border-radius:16px; background:#fffaf1; color:#633018; padding:9px; text-align:left; cursor:pointer; }
.sadhana-level > span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:rgba(140,59,29,.1); font-weight:900; }
.sadhana-level small { line-height:1.25; font-weight:700; }
.sadhana-level b { color:var(--journey-a); font-size:.75rem; }
.sadhana-level.is-active { border-color:var(--journey-a); box-shadow:0 0 0 3px color-mix(in srgb,var(--journey-a) 14%,transparent); }
.sadhana-level.is-locked { opacity:.48; cursor:not-allowed; }
.sadhana-question-card,.sadhana-result { border:1px solid rgba(140,59,29,.16); border-radius:26px; background:rgba(255,252,247,.96); padding:clamp(18px,4vw,30px); }
.sadhana-question-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; color:var(--br-muted); }
.sadhana-question-meta b { border-radius:999px; background:rgba(140,59,29,.09); color:var(--journey-a); padding:6px 10px; }
.sadhana-question-meta em { font-style:normal; font-weight:800; }
.sadhana-progress { height:9px; margin:16px 0 24px; overflow:hidden; border-radius:999px; background:#eee2d6; }
.sadhana-progress span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--journey-a),#e19b3b); transition:width .35s ease; }
.sadhana-question-card h4 { margin:0 0 20px; color:#57240c; font-family:'Noto Serif Telugu',serif; font-size:clamp(1.25rem,3vw,1.8rem); }
.sadhana-answer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.sadhana-answer-grid button { min-height:62px; border:1px solid rgba(140,59,29,.18); border-radius:17px; background:#fffaf3; color:#652b0e; font:700 1.05rem 'Noto Serif Telugu',serif; cursor:pointer; }
.sadhana-answer-grid button:hover:not(:disabled) { transform:translateY(-2px); border-color:var(--journey-a); }
.sadhana-answer-grid button.is-correct { background:#e7f5df; border-color:#6aa84f; color:#315a20; }
.sadhana-answer-grid button.is-wrong { background:#fff0ec; border-color:#c96145; color:#8a2f1b; }
.sadhana-feedback { display:flex; justify-content:space-between; gap:12px; margin-top:16px; border-radius:14px; padding:13px 15px; }
.sadhana-feedback.is-correct { background:#edf8e8; color:#315a20; }
.sadhana-feedback.is-wrong { background:#fff1ed; color:#8a2f1b; }
.sadhana-next { margin-top:16px; width:100%; }
.sadhana-result { text-align:center; }
.sadhana-result-seal { display:block; font-size:3.5rem; animation:sadhanaSway 2.4s ease-in-out infinite; }
.sadhana-result h4 { margin:8px 0; color:var(--journey-a); font-family:'Noto Serif Telugu',serif; font-size:2rem; }
.sadhana-result > strong { display:block; font-size:2.6rem; color:#6c2f10; }
@keyframes sadhanaGlow { 50% { transform:scale(1.08); box-shadow:0 0 0 22px rgba(255,215,106,.12); } }
@keyframes sadhanaSway { 50% { transform:rotate(2deg) translateY(-3px); } }
@keyframes sadhanaTravel { from { transform:translateX(-120px); } to { transform:translateX(min(68vw,760px)); } }
@media (prefers-reduced-motion:reduce) { .sadhana-sun,.sadhana-gopuram,.sadhana-traveller,.sadhana-result-seal { animation:none; } }

/* Telugu Pada Sopaana Pathamu: compact invitation and Vaikuntha Paali board. */
.sopana-invite { position:relative; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:22px; overflow:hidden; margin:16px 0 22px; padding:20px 26px; border:2px solid #d99a2b; border-radius:25px; background:linear-gradient(115deg,#6e1d38,#a83c32 45%,#d88925); color:#fff8dd; box-shadow:0 18px 38px rgba(104,36,29,.22); }
.sopana-invite::after { content:""; position:absolute; inset:auto 0 0; height:9px; background:repeating-linear-gradient(90deg,#f9d772 0 34px,#358a62 34px 68px,#c44a42 68px 102px); }
.sopana-invite-art { position:relative; width:150px; height:78px; }
.sopana-invite-art span,.sopana-invite-art b,.sopana-invite-art em,.sopana-invite-art i { position:absolute; font-style:normal; font-size:2.5rem; filter:drop-shadow(0 4px 3px rgba(0,0,0,.18)); }
.sopana-invite-art span { left:0; top:5px; animation:sopanaFloat 2.2s ease-in-out infinite; }
.sopana-invite-art b { left:42px; bottom:0; transform:rotate(-8deg); }
.sopana-invite-art em { right:25px; top:0; animation:sopanaDice 1.8s ease-in-out infinite; }
.sopana-invite-art i { right:0; bottom:0; }
.sopana-invite p,.sopana-invite h2,.sopana-invite span { margin:0; }
.sopana-invite p { color:#ffe28a; font-weight:900; }
.sopana-invite h2 { margin:3px 0; color:white; font-family:'Noto Serif Telugu',serif; font-size:clamp(1.55rem,3.5vw,2.55rem); }
.sopana-invite > button { position:relative; z-index:2; border:2px solid #fff0b5; border-radius:999px; background:#fff7d9; color:#7b251d; padding:14px 22px; font:900 1rem 'Noto Serif Telugu',serif; cursor:pointer; box-shadow:0 7px 0 #74301f; animation:sopanaPulse 1.8s ease-in-out infinite; }
.sopana-start { display:grid; justify-items:center; gap:18px; padding:clamp(24px,5vw,48px); border-radius:28px; background:radial-gradient(circle at 50% 0,#fff8c8,transparent 38%),linear-gradient(145deg,#f7c552,#c8523b 55%,#6a275c); color:white; text-align:center; }
.sopana-start-art { display:flex; align-items:center; gap:18px; font-size:clamp(3rem,9vw,6rem); }
.sopana-start-art strong { font-size:1.2em; }
.sopana-start h4 { margin:0; color:white; font:800 1.5rem 'Noto Serif Telugu',serif; }
.sopana-player-picker { display:grid; grid-template-columns:repeat(4,minmax(70px,100px)); gap:10px; }
.sopana-player-picker button { display:grid; place-items:center; min-height:76px; border:2px solid rgba(255,255,255,.5); border-radius:18px; background:rgba(255,255,255,.14); color:white; font:900 1.5rem inherit; cursor:pointer; }
.sopana-player-picker button.is-active { background:#fff4bf; color:#742b20; border-color:white; transform:translateY(-4px); }
.sopana-player-picker small { display:block; font-size:.7rem; }
.sopana-persona-setup { display:grid; grid-template-columns:repeat(2,minmax(220px,1fr)); gap:12px; width:min(760px,100%); }
.sopana-persona-setup article { display:grid; gap:8px; border:1px solid rgba(255,255,255,.45); border-radius:18px; background:rgba(74,25,39,.2); padding:12px; }
.sopana-persona-setup article > strong { color:#fff5cf; }
.sopana-persona-setup article > div { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.sopana-persona-setup button { display:grid; place-items:center; min-height:82px; border:2px solid transparent; border-radius:14px; background:rgba(255,255,255,.12); cursor:pointer; }
.sopana-persona-setup button.is-active { border-color:#ffe889; background:#fff8db; transform:translateY(-3px); box-shadow:0 8px 15px rgba(41,17,13,.25); }
.sopana-start-button { min-width:230px; }
.sopana-start > p { max-width:650px; margin:0; color:#fff5d6; }
.sopana-game { display:grid; gap:16px; }
.sopana-players { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.sopana-players > div { display:flex; align-items:center; gap:9px; padding:9px 12px; border:2px solid transparent; border-radius:16px; background:#fff7e8; opacity:.72; }
.sopana-players > div.is-turn { border-color:#dc8d24; background:#fff0b7; opacity:1; box-shadow:0 5px 16px rgba(126,62,20,.12); }
.sopana-avatar { display:block; background-image:url('/assets/telugu-player-personas-v1.png?v=20260918a'); background-repeat:no-repeat; background-size:200% 200%; }
.sopana-avatar.persona-0 { background-position:0 0; }
.sopana-avatar.persona-1 { background-position:100% 0; }
.sopana-avatar.persona-2 { background-position:0 100%; }
.sopana-avatar.persona-3 { background-position:100% 100%; }
.sopana-persona-setup .sopana-avatar { width:58px; height:72px; }
.sopana-players i { width:48px; height:58px; flex:0 0 auto; filter:drop-shadow(0 2px 0 white) drop-shadow(0 0 3px var(--pawn)); }
.sopana-players span { display:grid; color:#612c1b; font-weight:800; }
.sopana-players small { color:#8b6a55; }
.sopana-layout { display:grid; grid-template-columns:minmax(500px,1.15fr) minmax(310px,.85fr); gap:18px; align-items:start; }
.sopana-board-art { position:relative; aspect-ratio:1; overflow:hidden; border-radius:22px; background:#043d43; box-shadow:0 16px 36px rgba(45,35,18,.28); }
.sopana-board-art > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.sopana-board { position:absolute; left:7.65%; right:7.65%; top:11.7%; bottom:7.4%; display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); border:2px solid rgba(88,39,15,.78); overflow:hidden; }
.sopana-cell { position:relative; z-index:2; min-width:0; overflow:visible; border:1px solid rgba(75,34,12,.56); background:rgba(255,246,205,.06); color:#3f1c08; text-shadow:0 1px 0 rgba(255,255,255,.8); }
.sopana-cell b { position:absolute; z-index:5; left:3px; top:1px; display:grid; place-items:center; min-width:18px; min-height:18px; border-radius:50%; background:rgba(255,250,220,.88); font-size:clamp(.55rem,1vw,.75rem); }
.sopana-cell > span { display:none; }
.sopana-cell > em { position:absolute; z-index:7; right:2px; top:1px; font-style:normal; }
.sopana-cell > em small { display:block; margin-top:-5px; border-radius:7px; background:rgba(255,255,255,.75); color:#632616; padding:0 3px; font-size:.55rem; text-align:center; }
.sopana-pawns { position:absolute; z-index:10; left:3px; right:3px; bottom:3px; display:flex; flex-wrap:wrap; gap:2px; justify-content:center; }
.sopana-pawns i { width:34px; height:42px; border:2px solid white; border-radius:45% 45% 38% 38%; background-color:rgba(255,255,255,.2); filter:drop-shadow(0 2px 1px #351408) drop-shadow(0 0 4px var(--pawn)); animation:sopanaLand .45s ease-out; }
.sopana-pawns i.is-current { outline:3px solid #fff2a8; outline-offset:2px; animation:sopanaPawnGlow 1.25s ease-in-out infinite; }
.sopana-paths { position:absolute; z-index:4; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; filter:drop-shadow(0 3px 2px rgba(49,25,8,.32)); }
.painted-ladder line { stroke:#713819; stroke-width:10; stroke-linecap:round; }
.painted-ladder .ladder-rungs { stroke:#f2cc6a; stroke-width:25; stroke-dasharray:3 25; }
.painted-snake path { fill:none; stroke:#337e42; stroke-width:25; stroke-linecap:round; stroke-dasharray:3 5; }
.painted-snake circle { fill:#4b9d4d; stroke:#1f592d; stroke-width:5; }
.painted-snake .snake-eye { fill:#fff7d0; stroke:#30150d; stroke-width:1; }
.painted-snake.snake-1 path,.painted-snake.snake-1 circle { stroke:#b04432; fill:#d4653e; }
.painted-snake.snake-2 path,.painted-snake.snake-2 circle { stroke:#5a3a88; fill:#8966b2; }
.painted-snake.snake-3 path,.painted-snake.snake-3 circle { stroke:#176f76; fill:#3ba4a8; }
.painted-snake.snake-4 path,.painted-snake.snake-4 circle { stroke:#9b651c; fill:#d99b2b; }
.sopana-question,.sopana-winner { display:grid; gap:14px; position:sticky; top:12px; padding:20px; border:2px solid #e2b15a; border-radius:24px; background:#fffaf0; box-shadow:0 12px 28px rgba(94,48,20,.12); }
.sopana-turn { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#7b311b; font-weight:900; }
.sopana-dice { display:grid; place-items:center; width:68px; min-height:68px; border-radius:17px; background:#8b2f27; color:white; font-size:2rem; box-shadow:0 6px 0 #582019; animation:sopanaDice .45s ease-out; }
.sopana-dice small { font-size:.52rem; text-align:center; }
.sopana-dice.is-waiting { background:#e1a932; }
.sopana-question h4 { margin:0; color:#602610; font:800 clamp(1.2rem,2.5vw,1.6rem) 'Noto Serif Telugu',serif; }
.sopana-hint { display:flex; justify-content:space-between; gap:8px; border:1px dashed #a66b28; border-radius:13px; background:#fff1c9; color:#6e3518; padding:11px 13px; font:800 .92rem inherit; cursor:pointer; }
.sopana-hint small { font-weight:600; }
.sopana-dictionary { border-radius:13px; background:#e8f2e3; color:#315a2c; padding:12px 14px; }
.sopana-winner { place-items:center; text-align:center; background:radial-gradient(circle at 50% 0,#fff5ac,#fffaf0 55%); }
.sopana-winner > span { font-size:4rem; animation:sopanaFloat 1.5s ease-in-out infinite; }
.sopana-winner h4 { margin:0; color:#8a2f20; font:900 2rem 'Noto Serif Telugu',serif; }
.sopana-legend { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.sopana-legend span { border-radius:999px; background:#f7ead8; color:#6f3b25; padding:7px 11px; font-size:.82rem; font-weight:800; }
@keyframes sopanaFloat { 50% { transform:translateY(-8px) rotate(4deg); } }
@keyframes sopanaDice { 50% { transform:rotate(12deg) scale(1.08); } }
@keyframes sopanaPulse { 50% { transform:scale(1.05); box-shadow:0 9px 0 #74301f,0 0 24px rgba(255,234,130,.5); } }
@keyframes sopanaLand { from { transform:translateY(-18px) scale(.6); } }
@keyframes sopanaPawnGlow { 50% { transform:translateY(-4px) scale(1.12); filter:drop-shadow(0 3px 2px #351408) drop-shadow(0 0 9px #fff3a3) drop-shadow(0 0 10px var(--pawn)); } }
.child-rule-strip { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; padding: 16px; border-radius: 20px; background: rgba(244, 226, 201, .5); }
.child-rule-strip span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--br-accent-deep); color: white; font-weight: 800; }
.child-rule-strip p { margin: 0; color: var(--br-muted); font-size: .9rem; line-height: 1.5; }
.child-trace-picker { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; max-height: 520px; overflow: auto; }
.child-trace-picker button { min-height: 54px; border-radius: 14px; color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: 1.25rem; }
.child-writing-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 14px; }
.child-writing-steps span { color: var(--br-muted); font-size: .8rem; text-align: center; }
.child-writing-steps b { display: grid; place-items: center; width: 27px; height: 27px; margin: 0 auto 6px; border-radius: 50%; background: #f2e3cf; color: var(--br-accent-deep); }
.child-canvas-wrap { position: relative; overflow: hidden; min-height: 340px; border: 2px dashed rgba(140, 59, 29, .24); border-radius: 22px; background: linear-gradient(rgba(140,59,29,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(140,59,29,.05) 1px, transparent 1px), #fffefb; background-size: 36px 36px; touch-action: none; }
.child-canvas-guide { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(140, 59, 29, .16); font-family: 'Noto Serif Telugu', serif; font-size: clamp(11rem, 28vw, 19rem); line-height: 1; pointer-events: none; }
.child-canvas-guide.is-hidden { opacity: 0; }
#childTraceCanvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.child-selector-row label { display: flex; align-items: center; gap: 10px; color: var(--br-accent-deep); font-weight: 800; }
.child-selector-row select { min-width: 120px; border: 1px solid rgba(140,59,29,.2); border-radius: 12px; padding: 9px 12px; background: white; color: var(--br-accent-deep); font: inherit; font-size: 1.2rem; }
.gunintam-table { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.gunintam-table button { display: grid; gap: 4px; min-height: 96px; padding: 10px; border-radius: 18px; }
.gunintam-table small { color: var(--br-muted); }
.gunintam-table strong { color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: 1.75rem; }
.gunintam-table em { color: var(--br-accent); font-size: .78rem; font-style: normal; font-weight: 800; }
.child-equation { display: grid; grid-template-columns: auto auto auto auto auto 1fr; align-items: center; gap: 12px; }
.child-equation span, .child-equation strong { display: grid; place-items: center; min-width: 58px; min-height: 58px; border-radius: 16px; background: #f4e2c9; color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: 1.8rem; }
.child-equation strong { background: var(--br-accent-deep); color: white; }
.child-equation p { margin: 0; color: var(--br-muted); }
.vottu-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 9px; }
.vottu-grid button { display: grid; gap: 4px; min-height: 104px; padding: 10px; border-radius: 17px; }
.vottu-grid strong { color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: 1.65rem; }
.vottu-grid small { color: var(--br-muted); font-size: .76rem; }
.vottu-grid em { color: var(--br-accent); font-size: .8rem; font-style: normal; }
.child-cluster-focus span { color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: 4.5rem; }
.child-cluster-focus p { margin: 5px 0; }
.child-cluster-focus small { color: var(--br-muted); }
.practice-score { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.practice-score div { display: grid; place-items: center; padding: 18px; border: 1px solid rgba(140,59,29,.14); border-radius: 20px; background: #fffaf2; }
.practice-score strong { color: var(--br-accent-deep); font-size: 2rem; }
.practice-score span { color: var(--br-muted); font-size: .82rem; }
.practice-word { display: flex; align-items: center; gap: 16px; }
.practice-word span { font-size: 2.5rem; }
.practice-word strong { color: var(--br-accent-deep); font-family: 'Noto Serif Telugu', serif; font-size: 2rem; }
.practice-word small { color: var(--br-muted); }
.child-complete-row { display: flex; justify-content: flex-end; flex-wrap:wrap; gap:10px; padding-top: 5px; border-top: 1px solid rgba(140,59,29,.1); }
.child-certificate-backdrop { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:20px; background:rgba(48,26,15,.72); backdrop-filter:blur(6px); }
.child-certificate-dialog { position:relative; width:min(760px,100%); max-height:calc(100vh - 40px); overflow:auto; padding:24px; border-radius:28px; background:#fffaf0; box-shadow:0 26px 80px rgba(43,23,12,.35); }
.child-certificate-close { position:absolute; right:14px; top:12px; z-index:2; width:42px; height:42px; border:0; border-radius:50%; background:#6e2e13; color:#fff; font-size:1.8rem; line-height:1; cursor:pointer; }
.child-certificate-preview { position:relative; display:grid; justify-items:center; gap:5px; padding:26px 22px; border:8px double #b96b20; background:radial-gradient(circle at 50% 0,#fffdf7 0,#fff4d8 70%,#f3d296 100%); text-align:center; }
.child-certificate-preview::before,.child-certificate-preview::after { content:'✦'; position:absolute; top:16px; color:#b96b20; font-size:1.6rem; }
.child-certificate-preview::before { left:20px; } .child-certificate-preview::after { right:20px; }
.child-certificate-identity { display:flex; align-items:center; justify-content:center; gap:16px; }
.child-certificate-preview img { width:88px; height:88px; object-fit:contain; }
.child-certificate-preview img.child-certificate-founder { border:4px solid #b96b20; border-radius:50%; object-fit:cover; object-position:center 28%; }
.child-certificate-preview p { margin:2px 0 0; color:#633018; font-family:'Noto Serif Telugu',serif; font-size:1.35rem; font-weight:700; }
.child-certificate-preview small { color:#835d48; font-weight:700; letter-spacing:.13em; }
.child-certificate-preview h3 { margin:12px 0 2px; color:#9c4c1d; font-family:'Noto Serif Telugu',serif; font-size:clamp(2rem,6vw,3rem); }
.child-certificate-preview > span { color:#735747; }
.child-certificate-preview > strong { width:min(90%,560px); margin:8px 0; padding:7px 16px; border-bottom:2px solid #d79a35; color:#3d2115; font-family:'Noto Serif Telugu',serif; font-size:clamp(1.7rem,5vw,2.5rem); overflow-wrap:anywhere; }
.child-certificate-preview > b { color:#7b3215; font-family:'Noto Serif Telugu',serif; font-size:1.55rem; }
.child-certificate-preview > em { color:#755949; font-style:normal; }
.child-certificate-dialog form { display:grid; gap:10px; margin-top:18px; }
.child-certificate-dialog label { display:grid; gap:7px; color:#6e2e13; font-weight:700; }
.child-certificate-dialog input { width:100%; padding:13px 15px; border:1px solid rgba(140,59,29,.3); border-radius:14px; background:white; color:#3d2115; font:inherit; font-size:1.05rem; }
.child-certificate-help,.child-certificate-status { margin:0; color:var(--br-muted); font-size:.87rem; }
.child-certificate-status { min-height:1.4em; color:#6c5d27; font-weight:700; }
.child-certificate-actions { display:flex; flex-wrap:wrap; gap:9px; }
.child-assessment-dialog { position:relative; width:min(680px,100%); max-height:calc(100vh - 40px); overflow:auto; padding:clamp(22px,4vw,38px); border:3px solid #d8a44c; border-radius:28px; background:#fffaf0; box-shadow:0 26px 80px rgba(43,23,12,.35); }
.child-assessment-dialog h3 { margin:4px 0 14px; color:#6e2e13; font-family:'Noto Serif Telugu',serif; font-size:2rem; }
.child-assessment-dialog h4 { margin:22px 0; color:#3d2115; font-family:'Noto Serif Telugu',serif; font-size:1.45rem; }
.child-assessment-track { height:10px; overflow:hidden; border-radius:999px; background:#eadfce; }
.child-assessment-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#b55c24,#e1a743); transition:width .35s ease; }
.child-assessment-result { padding:22px; margin:18px 0; border-radius:20px; text-align:center; }
.child-assessment-result strong { display:block; font-size:1.6rem; }
.child-assessment-result.is-pass { background:#eaf5e4; color:#315d2c; }
.child-assessment-result.is-retry { background:#fff0dd; color:#81451e; }
.sopana-console-link { display:grid; place-items:center; gap:8px; min-height:260px; padding:28px; border:3px solid #d69b35; border-radius:28px; background:radial-gradient(circle at 50% 0,#fff7cf,#f2c86e 55%,#9e421f); color:#53220f; text-align:center; text-decoration:none; box-shadow:0 16px 35px rgba(91,42,17,.22); }
.sopana-console-link span { font-size:5rem; animation:inviteBob 1.8s ease-in-out infinite; }
.sopana-console-link strong { font-family:'Noto Serif Telugu',serif; font-size:clamp(1.8rem,5vw,3rem); }
.sopana-console-link small { font-size:1.05rem; }

@media (max-width: 900px) {
  .child-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .child-teach-grid, .child-writing-layout { grid-template-columns: 1fr; }
  .vottu-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .child-rule-strip { grid-template-columns: auto 1fr; }
  .sopana-layout { grid-template-columns:1fr; }
  .sopana-question,.sopana-winner { position:static; }
}
@media (max-width: 620px) {
  .child-start-guide { grid-template-columns:1fr; }
  .child-progress { grid-template-columns: 1fr auto; }
  .child-progress-track { grid-column: 1 / -1; grid-row: 2; }
  .child-module-grid { grid-template-columns: 1fr; }
  .child-module-card { min-height: 0; }
  .child-letter-library, .child-answer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .child-family-tabs { grid-template-columns: 1fr; }
  .child-family-board, .gunintam-table { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .child-trace-picker { grid-template-columns: repeat(6, minmax(0, 1fr)); max-height: 230px; }
  .child-writing-steps { grid-template-columns: repeat(2, 1fr); }
  .child-canvas-wrap { min-height: 300px; }
  .child-equation { grid-template-columns: auto auto auto auto auto; }
  .child-equation p { grid-column: 1 / -1; }
  .vottu-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .child-sound-note, .child-cluster-focus { align-items: stretch; flex-direction: column; }
  .sopana-invite { grid-template-columns:1fr auto; padding:17px; }
  .sopana-invite-art { display:none; }
  .sopana-invite > button { grid-column:1/-1; }
  .sopana-player-picker { grid-template-columns:repeat(2,minmax(90px,1fr)); width:100%; }
  .sopana-persona-setup { grid-template-columns:1fr; }
  .sopana-persona-setup button { min-height:68px; }
  .sopana-persona-setup .sopana-avatar { width:44px; height:56px; }
  .sopana-players { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sopana-layout { overflow:hidden; }
  .sopana-board-art { width:100%; border-radius:14px; }
  .sopana-cell b { left:2px; top:1px; }
  .sopana-cell > em small { display:none; }
  .sopana-pawns i { width:25px; height:32px; }
  .child-certificate-backdrop { padding:8px; }
  .child-certificate-dialog { max-height:calc(100vh - 16px); padding:14px; border-radius:20px; }
  .child-certificate-preview { padding:19px 12px; border-width:6px; }
  .child-certificate-preview img { width:68px; height:68px; }
  .child-certificate-actions { display:grid; grid-template-columns:1fr; }
  .child-certificate-actions button { width:100%; }
}

.trace-targets-full {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-height: 540px;
  overflow: auto;
  padding-right: 6px;
}

@media (max-width: 1080px) {
  .letter-grid-full {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    max-height: none;
  }

  .trace-targets-full {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    max-height: none;
  }

  .module-one-grid,
  .module-one-bridge {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 720px) {
  .sadhana-level-map { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sadhana-answer-grid { grid-template-columns:1fr; }
  .sadhana-scene { min-height:220px; padding:22px 18px; }
  .sadhana-gopuram { right:18px; bottom:28px; opacity:.45; }
  .sadhana-question-meta,.sadhana-feedback { align-items:flex-start; flex-direction:column; }
  .bhaasha-tool-intro {
    grid-template-columns: 1fr;
  }

  .bhaasha-tool-intro > .tool-vedika-title {
    grid-column: auto;
  }

  .bhaasha-audience-switch,
  .elder-topic-switch,
  .elder-dictionary-grid {
    grid-template-columns: 1fr;
    width: 100%;
    justify-self: stretch;
  }

  .amarakosha-intro {
    align-items: stretch;
    flex-direction: column;
  }

  .amarakosha-frame {
    height: 760px;
    min-height: 620px;
  }

  .elder-search-panel,
  .elder-detail-panel {
    min-height: 0;
    padding: 16px;
  }

  .elder-results {
    max-height: 330px;
  }

  .elder-empty {
    min-height: 280px;
  }

  .letter-grid-full {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .trace-targets-full {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .module-one-callout,
  .module-one-bridge {
    grid-template-columns: 1fr;
  }

  .module-one-callout {
    align-items: stretch;
    flex-direction: column;
  }

  .module-one-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .bhaasha-audience-choice {
    grid-template-columns: 58px 1fr;
    padding: 14px;
  }

  .bhaasha-audience-choice > span {
    min-width: 52px;
    min-height: 52px;
    font-size: 1rem;
  }

  .letter-grid-full {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .trace-targets-full {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
