/* =========================================================================
   Junior Sadhaks (v1.3.2 brand; formerly Bal Sanskar) (/kids, /kids/passport)  v1.1.2 kids
   Warm, luminous, picture-book calm. Follows the site theme: Temple Dark (night sky, gold, onyx) by default, a dawn
   parchment in light. Kids' controls are at least 56 px; text is large; motion is gentle and stops under
   prefers-reduced-motion. Illustrations (assets/js/kids-art.js) are inline SVG: crisp at every size up to 4K.
   ========================================================================= */

.kids {
  --k-bg: #FFF8EC;
  --k-bg-2: #FDEFD9;
  --k-surface: #FFFFFF;
  --k-surface-2: #FFF6E6;
  --k-ink: #2B1A14;
  --k-muted: #6A564E;
  --k-line: rgba(217, 119, 6, 0.25);
  --k-gold: #D9930F;
  --k-gold-ink: #8A4B0B;
  --k-rose: #B83250;
  --k-teal: #1F7A7A;
  --k-sky: #3D4F9E;
  --k-glow: rgba(245, 158, 11, 0.22);
  --k-shadow: 0 2px 6px rgba(58, 10, 24, 0.06), 0 18px 40px -22px rgba(136, 19, 55, 0.35);
  --k-radius: 28px;
  --k-wrap: 1240px;
  --k-gutter: clamp(16px, 4vw, 40px);
  --k-sans: "Plus Jakarta Sans", "Jakarta Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;
  --k-serif: "Cormorant Garamond", "Cormorant Fallback", Georgia, serif;
  --k-deva: "Mukta", "Noto Sans Devanagari", "Kohinoor Devanagari", "Devanagari Sangam MN", sans-serif;
  --k-guru: "Noto Sans Gurmukhi", "Mukta Mahee", "Raavi", "Gurmukhi MN", "Gurmukhi Sangam MN", sans-serif;
  display: block;
  background: linear-gradient(180deg, var(--k-bg) 0%, var(--k-bg-2) 100%);
  color: var(--k-ink);
  font-family: var(--k-sans);
  font-size: clamp(1.02rem, 0.95rem + 0.25vw, 1.15rem);
  line-height: 1.6;
  overflow-x: clip;
}
[data-theme="dark"] .kids {
  --k-bg: #0D0B09;
  --k-bg-2: #120E14;
  --k-surface: #1A1513;
  --k-surface-2: #201A16;
  --k-ink: #FCFBF7;
  --k-muted: #C9B8A6;
  --k-line: rgba(245, 158, 11, 0.22);
  --k-gold: #F2B54C;
  --k-gold-ink: #F2B54C;
  --k-rose: #F08AA0;
  --k-teal: #6FD3C8;
  --k-sky: #9FB0F5;
  --k-glow: rgba(245, 158, 11, 0.18);
  --k-shadow: 0 2px 6px rgba(0, 0, 0, 0.35), 0 24px 48px -26px rgba(0, 0, 0, 0.8);
}
.kids *, .kids *::before, .kids *::after { box-sizing: border-box; }
.kids [hidden] { display: none !important; }
.kids-wrap { width: min(100% - 2 * var(--k-gutter), var(--k-wrap)); margin-inline: auto; }
.kids h1, .kids h2, .kids h3 { font-family: var(--k-serif); font-weight: 600; line-height: 1.12; margin: 0 0 0.4em; color: var(--k-ink); letter-spacing: 0.005em; }
.kids h2 { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); }
.kids h3 { font-size: clamp(1.45rem, 1.2rem + 0.8vw, 1.85rem); }
.kids p { margin: 0 0 1em; }
.kids a:not(.kbtn) { color: var(--k-gold-ink); text-underline-offset: 0.2em; }
.kids a.kbtn { text-decoration: none; }
.kids :focus-visible { outline: 3px solid var(--focus, #881337); outline-offset: 3px; border-radius: 12px; }
[data-theme="dark"] .kids :focus-visible { outline-color: #FCD34D; }
.kids [lang="hi"], .kids [lang="sa"] { font-family: var(--k-deva); }
.kids [lang="pa"] { font-family: var(--k-guru); }
.kids-eyebrow { display: inline-flex; align-items: center; gap: 0.5em; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--k-gold-ink); margin: 0 0 0.8em; }
.kids-eyebrow span { color: var(--k-gold); }
.kids-section { padding-block: clamp(56px, 7vw, 110px); position: relative; }
.kids-head { max-width: 46rem; margin-bottom: clamp(28px, 4vw, 48px); }
.kids-head__lead { color: var(--k-muted); font-size: 1.08em; }
.kids-note { color: var(--k-muted); font-size: 0.95rem; border-left: 3px solid var(--k-line); padding: 0.2em 0 0.2em 0.9em; }
.kids-note--soft { border-left-color: transparent; padding-left: 0; }
.kids-note--warn { border-left-color: var(--k-rose); color: var(--k-ink); }

/* ---------- buttons (kids' controls ≥ 56 px) ---------- */
.kbtn {
  -webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: 0.5em;
  min-height: 56px; padding: 0.55em 1.5em; border-radius: 999px; border: 2px solid transparent;
  font: 600 1.02rem/1.15 var(--k-sans); text-decoration: none; cursor: pointer; color: var(--k-ink); background: var(--k-surface);
  transition: transform 0.18s ease, box-shadow 0.25s ease, background-color 0.2s ease; -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.kbtn:active:not(:disabled) { transform: translateY(1px) scale(0.98); }
.kbtn:disabled { opacity: 0.5; cursor: not-allowed; }
.kbtn--gold { background: linear-gradient(135deg, #FFE7A3 0%, #F2B54C 48%, #D98A17 100%); color: #2A120A; box-shadow: 0 10px 26px -12px rgba(217, 119, 6, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.6); }
.kbtn--glass { background: rgba(255, 255, 255, 0.16); color: #FFFFFF; border-color: rgba(255, 255, 255, 0.35); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.kbtn--ghost { background: transparent; border-color: var(--k-line); color: var(--k-ink); }
.kbtn--quiet { background: transparent; color: var(--k-gold-ink); text-decoration: underline; text-underline-offset: 0.25em; padding-inline: 1em; }
.kbtn--lg { min-height: 60px; font-size: 1.08rem; }
.kbtn--xl { min-height: 64px; font-size: 1.15rem; padding-inline: 1.8em; }
.kbtn--sm { min-height: 44px; font-size: 0.92rem; padding-inline: 1.1em; }
.kbtn--round { width: 64px; min-width: 64px; height: 64px; padding: 0; font-size: 2rem; line-height: 1; }
.kbtn--tool { min-height: 56px; padding-inline: 1.05em; font-size: 0.98rem; background: var(--k-surface-2); border-color: var(--k-line); }
.kbtn--tool[aria-pressed="true"] { background: linear-gradient(135deg, #FFE7A3, #F2B54C); color: #2A120A; border-color: transparent; }
@media (hover: hover) and (pointer: fine) {
  .kbtn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 12px 28px -14px rgba(217, 119, 6, 0.6); }
  .kbtn--glass:hover { background: rgba(255, 255, 255, 0.26); }
}

/* ---------- Kids Mode ribbon ---------- */
.kids-ribbon { position: sticky; top: 0; z-index: 30; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.6em 1em; padding: 8px var(--k-gutter); background: linear-gradient(90deg, #3A0A18, #881337); color: #FFF7EE; font-weight: 600; font-size: 0.95rem; text-align: center; }
.kids-ribbon .kbtn--ghost { color: #FFF7EE; border-color: rgba(255, 247, 238, 0.5); }

/* ---------- hero ---------- */
.kids-hero { position: relative; isolation: isolate; min-height: clamp(560px, 82vh, 920px); display: flex; align-items: flex-end; color: #FFFFFF; overflow: hidden; }
.kids-hero__art { position: absolute; inset: 0; z-index: -2; }
.kids-hero__art .kart { width: 100%; height: 100%; }
.kids-hero__veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(13, 11, 9, 0.55) 0%, rgba(13, 11, 9, 0.2) 45%, rgba(13, 11, 9, 0) 70%), linear-gradient(180deg, rgba(13, 11, 9, 0.05) 0%, rgba(13, 11, 9, 0.12) 40%, rgba(13, 11, 9, 0.72) 100%); }
@media (max-width: 767px) { .kids-hero__veil { background: linear-gradient(180deg, rgba(13, 11, 9, 0.15) 0%, rgba(13, 11, 9, 0.45) 45%, rgba(13, 11, 9, 0.82) 100%); } }
.kids-hero__inner { padding-block: clamp(110px, 16vh, 180px) clamp(40px, 6vw, 72px); }
.kids-crumbs ol { display: flex; flex-wrap: wrap; gap: 0.4em; list-style: none; margin: 0 0 1.2em; padding: 0; font-size: 0.9rem; }
.kids-crumbs li + li::before { content: "›"; margin-right: 0.4em; opacity: 0.7; }
.kids .kids-crumbs a { color: inherit; display: inline-flex; min-height: 44px; align-items: center; }
.kids-hero .kids-eyebrow, .kids-hero .kids-eyebrow span { color: #FCD98A; }
.kids-hero__title { color: #FFFFFF !important; font-size: clamp(2.8rem, 2rem + 4.5vw, 5.6rem); text-shadow: 0 4px 30px rgba(0, 0, 0, 0.45); margin-bottom: 0.25em !important; }
.kids-hero__title span { display: block; font-size: 0.52em; font-style: italic; font-weight: 500; color: #FCD98A; margin-top: 0.15em; }
.kids-hero__lead { max-width: 38rem; font-size: clamp(1.1rem, 1rem + 0.5vw, 1.35rem); text-shadow: 0 2px 16px rgba(0, 0, 0, 0.5); }
.kids-hero__go { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; padding: 0; margin: 1.6em 0 0; }
.kids-hero__note { margin-top: 1.2em; font-size: 0.95rem; color: #FFF3DA; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.6); }
.kids-who { margin-top: 1.6em; }
.kids-who__label { font-weight: 600; margin-bottom: 0.5em; }
.kids-who__list { display: flex; flex-wrap: wrap; gap: 10px; }
.kwho { display: inline-flex; align-items: center; gap: 0.5em; min-height: 56px; padding: 0.4em 1.2em 0.4em 0.5em; border-radius: 999px; border: 2px solid rgba(255, 255, 255, 0.4); background: rgba(13, 11, 9, 0.35); color: #FFFFFF; font: 600 1.05rem var(--k-sans); cursor: pointer; }
.kwho__face { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(135deg, #FFE7A3, #F2B54C); color: #2A120A; font-size: 1.15rem; }
.kwho[aria-checked="true"] { background: linear-gradient(135deg, #FFE7A3, #F2B54C); color: #2A120A; border-color: transparent; }
.kwho[aria-checked="true"] .kwho__face { background: #FFFFFF; }

/* ---------- illustrations ---------- */
.kart { display: block; width: 100%; height: 100%; }
.kart-l { transform: translate(calc(var(--px, 0) * var(--d, 0) * 26px + var(--ex, 0) * var(--d, 0) * 240px), calc(var(--py, 0) * var(--d, 0) * 14px)); transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1); }
.kart-drift { animation: kart-drift 46s ease-in-out infinite alternate; }
.kart-drift--slow { animation-duration: 70s; }
.kart-twinkle { animation: kart-twinkle 3.6s ease-in-out infinite; }
.kart-fly { animation: kart-fly 6s ease-in-out infinite; }
.kart-shimmer { animation: kart-shimmer 3.2s ease-in-out infinite; }
.kart-sway { animation: kart-sway 7s ease-in-out infinite alternate; }
.kart-sway--slow { animation-duration: 11s; }
.kart-flame { transform-box: fill-box; transform-origin: 50% 100%; animation: kart-flame 0.9s ease-in-out infinite alternate; }
.kart-glow { animation: kart-glow 4.5s ease-in-out infinite alternate; }
.kart-steam { animation: kart-steam 3.4s ease-in-out infinite; }
.kart-bob { animation: kart-bob 4s ease-in-out infinite alternate; }
.kart-bob--b { animation-delay: -1.3s; } .kart-bob--c { animation-delay: -2.6s; }
.kart-hop { transform-box: fill-box; transform-origin: 50% 100%; animation: kart-hop 1.6s ease-in-out infinite; }
.kart-hop-a { animation: kart-hop-a calc(2.6s + var(--rise, 0) * 5s) ease-in-out infinite; }
.kart-float { animation: kart-float 6s ease-in-out infinite alternate; }
.kart-float--b { animation-delay: -2s; } .kart-float--c { animation-delay: -4s; }
.kart-sun-peek { animation: kart-peek 9s ease-in-out infinite alternate; }
.kart-wobble { animation: kart-wobble 0.5s ease-in-out infinite alternate; }
.kart-bell { animation: kart-bell 3.2s ease-in-out infinite alternate; }
.kart-swing { animation: kart-swing 3.6s ease-in-out infinite alternate; }
.kart-flag { transform-box: fill-box; transform-origin: 0 50%; animation: kart-flag 1.4s ease-in-out infinite alternate; }
.kart-ant { animation: kart-ant 0.5s steps(2) infinite; }
.kart-munch { animation: kart-munch 0.9s ease-in-out infinite alternate; }
.kart-breathe { animation: kart-breathe 4s ease-in-out infinite alternate; }
.kart-zzz { animation: kart-zzz 3s ease-in-out infinite; }
.kart-sparkle { transform-box: fill-box; transform-origin: 50% 50%; animation: kart-sparkle 2.6s ease-in-out infinite; }
.kart-gleam { animation: kart-glow 2s ease-in-out infinite alternate; }
.kart-flock { animation: kart-flock 28s ease-in-out infinite alternate; }
.kart-bird { animation: kart-bird 0.9s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: 50% 50%; }
/* Two Minds: --rise 0…1 (the child's slow breaths) settles the monkey and raises the Inner Sun */
.kart-rising { transform: translateY(calc((1 - var(--rise, 0)) * 300px)); transition: transform 0.8s ease-out; }
.kart-warmth { opacity: calc(var(--rise, 0) * 0.38); transition: opacity 0.8s ease-out; }
.kart-restless, .kart-labels { opacity: calc(1 - var(--rise, 0) * 1.15); transition: opacity 0.6s; }
.kart-rested { opacity: calc((var(--rise, 0) - 0.65) * 3); transition: opacity 0.6s; }
/* v1.3.8: shafts of light that breathe slowly */
.kart-rays { animation: kart-rays 9s ease-in-out infinite alternate; }
@keyframes kart-rays { from { opacity: .65; } to { opacity: 1; } }
.kart-still *, .kart-paused * { animation-play-state: paused !important; }
.kart-still * { animation: none !important; }
@keyframes kart-drift { to { transform: translateX(70px); } }
@keyframes kart-twinkle { 0%, 100% { opacity: 1; } 50% { opacity: 0.25; } }
@keyframes kart-fly { 0%, 100% { transform: translate(0, 0); opacity: 0.4; } 30% { opacity: 1; } 50% { transform: translate(24px, -18px); opacity: 0.9; } 75% { transform: translate(-12px, -30px); opacity: 0.3; } }
@keyframes kart-shimmer { 0%, 100% { opacity: 0.15; transform: translateX(0); } 50% { opacity: 0.7; transform: translateX(14px); } }
@keyframes kart-sway { from { transform: rotate(-0.7deg); } to { transform: rotate(0.7deg); } }
@keyframes kart-flame { from { transform: scale(0.92, 0.95) skewX(-2deg); } to { transform: scale(1.05, 1.1) skewX(2deg); } }
@keyframes kart-glow { from { opacity: 0.65; } to { opacity: 1; } }
@keyframes kart-steam { 0% { transform: translateY(10px); opacity: 0; } 40% { opacity: 0.7; } 100% { transform: translateY(-30px); opacity: 0; } }
@keyframes kart-bob { from { transform: translateY(-3px); } to { transform: translateY(4px); } }
@keyframes kart-hop { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-36px) rotate(-6deg); } 60% { transform: translateY(-30px) rotate(4deg); } }
@keyframes kart-hop-a {
  0%, 12% { transform: translate(0, 0); } 22% { transform: translate(90px, -190px); } 32%, 44% { transform: translate(190px, -120px); }
  56% { transform: translate(60px, -260px); } 66%, 78% { transform: translate(-90px, -170px); } 90% { transform: translate(-40px, -60px); } 100% { transform: translate(0, 0); }
}
@keyframes kart-float { from { transform: translateY(-6px); } to { transform: translateY(8px); } }
@keyframes kart-peek { from { transform: translateY(30px); } to { transform: translateY(0); } }
@keyframes kart-wobble { from { transform: rotate(-4deg); } to { transform: rotate(4deg); } }
@keyframes kart-bell { from { transform: rotate(-3deg); } to { transform: rotate(3deg); } }
@keyframes kart-swing { from { transform: rotate(-7deg); } to { transform: rotate(7deg); } }
@keyframes kart-flag { from { transform: scaleX(0.86) skewY(-3deg); } to { transform: scaleX(1) skewY(3deg); } }
@keyframes kart-ant { to { transform: translateX(3px); } }
@keyframes kart-munch { from { transform: rotate(-1.5deg); } to { transform: rotate(2deg); } }
@keyframes kart-breathe { from { transform: scale(1); } to { transform: scale(1.012); } }
@keyframes kart-zzz { 0% { opacity: 0; transform: translateY(10px); } 30%, 70% { opacity: 1; } 100% { opacity: 0; transform: translateY(-16px); } }
@keyframes kart-sparkle { 0%, 100% { transform: scale(0.6); opacity: 0.4; } 50% { transform: scale(1.15); opacity: 1; } }
@keyframes kart-flock { to { transform: translateX(160px); } }
@keyframes kart-bird { from { transform: scaleY(1); } to { transform: scaleY(0.6); } }

/* ---------- storybook shelf ---------- */
.kids-shelf { background: radial-gradient(1200px 500px at 85% 0%, var(--k-glow), transparent 70%); }
.kshelf { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: clamp(18px, 2.4vw, 28px); list-style: none; margin: 0; padding: 0; }
.kcard { display: flex; flex-direction: column; border-radius: var(--k-radius); background: var(--k-surface); border: 1px solid var(--k-line); box-shadow: var(--k-shadow); overflow: hidden; scroll-margin-top: 90px; }
.kcard__art { aspect-ratio: 16 / 10; background: #E8D5B5; overflow: hidden; }
.kcard__body { display: flex; flex-direction: column; gap: 0.2em; padding: 20px 22px 24px; flex: 1; }
.kcard__value { display: inline-flex; align-self: flex-start; align-items: center; gap: 0.35em; margin: 0 0 0.6em; padding: 0.25em 0.8em; border-radius: 999px; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.04em; background: var(--k-surface-2); border: 1px solid var(--k-line); color: var(--k-gold-ink); }
.kcard__title { margin: 0 0 0.25em; }
.kcard__blurb { color: var(--k-muted); flex: 1; }
.kcard__meta { font-size: 0.9rem; color: var(--k-muted); margin: 0 0 0.9em; }
.kcard__meta .is-done { color: var(--k-teal); font-weight: 600; }
.kcard__open { align-self: flex-start; }
@media (min-width: 900px) {
  .kcard--feature { grid-column: 1 / -1; flex-direction: row; }
  .kcard--feature .kcard__art { flex: 1.35; aspect-ratio: auto; min-height: 380px; }
  .kcard--feature .kcard__body { flex: 1; padding: clamp(28px, 3vw, 48px); justify-content: center; }
  .kcard--feature .kcard__title { font-size: clamp(2rem, 1.4rem + 1.6vw, 2.8rem); }
  .kcard--feature .kcard__blurb { flex: 0 0 auto; font-size: 1.1rem; }
}

/* ---------- the book ---------- */
.kbook { border: 0; padding: 0; margin: auto; width: min(1320px, 96vw); max-width: none; height: min(920px, 94vh); max-height: none; border-radius: 32px; background: transparent; color: var(--k-ink); overflow: visible; }
.kbook::backdrop { background: rgba(8, 6, 14, 0.78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.kbook__frame { height: 100%; display: flex; flex-direction: column; background: var(--k-surface); border-radius: inherit; overflow: hidden; box-shadow: 0 40px 120px -30px rgba(0, 0, 0, 0.7); border: 1px solid var(--k-line); font-family: var(--k-sans); }
.kbook__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 12px 16px 12px 24px; border-bottom: 1px solid var(--k-line); background: var(--k-surface-2); }
.kbook__title { font-family: var(--k-serif); font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem) !important; margin: 0 !important; flex: 1 1 14rem; min-width: 0; }
.kbook__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.kseg { display: inline-flex; padding: 4px; border-radius: 999px; background: var(--k-surface); border: 1px solid var(--k-line); }
.kseg__btn { min-width: 56px; min-height: 48px; border: 0; border-radius: 999px; background: transparent; color: var(--k-ink); font: 600 1rem var(--k-sans); cursor: pointer; }
.kseg__btn[lang="hi"] { font-family: var(--k-deva); font-size: 1.1rem; } .kseg__btn[lang="pa"] { font-family: var(--k-guru); font-size: 1.1rem; }
.kseg__btn[aria-pressed="true"] { background: linear-gradient(135deg, #FFE7A3, #F2B54C); color: #2A120A; }
.kvol { display: inline-flex; align-items: center; min-height: 56px; padding-inline: 6px; }
.kvol input, .krange input { width: 120px; accent-color: #D98A17; height: 32px; }
.kbtn--close { width: 56px; min-width: 56px; height: 56px; font-size: 1.4rem; background: var(--k-surface); border-color: var(--k-line); }
.kbook__body { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; }
.kbook__stage { position: relative; flex: none; aspect-ratio: 16 / 10; max-height: 62%; width: 100%; overflow: hidden; background: #1C1A47; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.kbook__stage .kart { position: absolute; inset: 0; transition: opacity 0.7s ease; }
.kbook__stage .kart.is-leaving { opacity: 0; }
.kbook__page { padding: clamp(18px, 3vw, 36px) clamp(18px, 4vw, 48px) 12px; flex: 1; }
.kbook__text { font-size: clamp(1.3rem, 1.05rem + 1vw, 1.85rem); line-height: 1.65; font-weight: 500; margin: 0 0 0.8em; max-width: 44em; }
.kbook__text[lang="hi"], .kbook__text[lang="pa"] { line-height: 1.85; }
.ks { border-radius: 10px; transition: background-color 0.3s ease, box-shadow 0.3s ease; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.ks.is-reading { background: rgba(242, 181, 76, 0.18); box-shadow: 0 0 0 4px rgba(242, 181, 76, 0.18); }
.kw { border-radius: 8px; transition: background-color 0.15s ease, color 0.15s ease; }
.kw.is-word { background: linear-gradient(135deg, #FFE7A3, #F2B54C); color: #2A120A; box-shadow: 0 0 0 3px #F2B54C; }
.kbook__moral { display: flex; gap: 0.6em; align-items: flex-start; padding: 14px 18px; border-radius: 18px; background: var(--k-surface-2); border: 1px dashed var(--k-gold); font-weight: 600; color: var(--k-gold-ink); font-size: 1.1rem; }
.kbook__nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--k-line); background: var(--k-surface-2); }
.kbtn--turn { background: var(--k-surface); border-color: var(--k-line); font-size: 2.4rem; }
.kbtn--next:not(:disabled) { background: linear-gradient(135deg, #FFE7A3, #F2B54C); color: #2A120A; border-color: transparent; }
.kbook__progress { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.kdots { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; margin: 0; padding: 0; }
.kdots li { width: 12px; height: 12px; border-radius: 50%; background: var(--k-line); transition: transform 0.3s, background-color 0.3s; }
.kdots li.is-done { background: rgba(242, 181, 76, 0.55); }
.kdots li.is-current { background: #F2B54C; transform: scale(1.4); }
.kbook__count { margin: 0; font-size: 0.9rem; color: var(--k-muted); }
@media (max-width: 899px) {
  .kbook { width: 100vw; height: 100vh; height: 100dvh; max-width: 100vw; max-height: 100dvh; border-radius: 0; margin: 0; }
  .kbook__frame { border-radius: 0; border: 0; }
  .kbook__bar { padding: 8px 10px 8px 16px; padding-top: calc(8px + env(safe-area-inset-top)); }
  .kbook__tools { width: 100%; justify-content: flex-start; }
  .kbook__title { flex-basis: calc(100% - 70px); }
  .kbtn--tool span + span { display: none; }
  .kbtn--tool { width: 56px; padding: 0; font-size: 1.3rem; }
  .kvol input { width: 90px; }
  .kbtn--close { position: absolute; top: calc(8px + env(safe-area-inset-top)); right: 10px; }
  .kbook__bar { position: relative; }
  .kbook__stage { max-height: none; }
}
@media (min-width: 900px) and (min-aspect-ratio: 5/4) {
  .kbook__body { flex-direction: row; overflow: hidden; }
  .kbook__stage { width: 58%; max-height: none; height: 100%; aspect-ratio: auto; }
  .kbook__page { width: 42%; overflow-y: auto; display: flex; flex-direction: column; justify-content: center; }
}

/* ---------- choices ---------- */
.kchoice__prompt { font-weight: 700; font-size: 1.15rem; margin-bottom: 0.6em; color: var(--k-gold-ink); }
.kchoice__opts { display: grid; gap: 10px; }
.kopt { display: flex; align-items: center; gap: 0.7em; min-height: 64px; padding: 0.6em 1.2em; border-radius: 20px; border: 2px solid var(--k-line); background: var(--k-surface-2); color: var(--k-ink); font: 600 1.1rem/1.3 var(--k-sans); text-align: start; cursor: pointer; }
.kopt::before { content: ""; flex: none; width: 22px; height: 22px; border-radius: 50%; border: 3px solid var(--k-gold); }
.kopt[aria-pressed="true"]::before { background: var(--k-gold); box-shadow: inset 0 0 0 3px var(--k-surface-2); }
.kopt[lang="hi"] { font-family: var(--k-deva); } .kopt[lang="pa"] { font-family: var(--k-guru); }
.kchoice__fb { margin-top: 14px; padding: 16px 18px; border-radius: 20px; background: var(--k-surface-2); border: 2px solid var(--k-teal); }
.kchoice__fb.is-gentle { border-color: var(--k-gold); }
.kchoice__fb p { font-size: 1.1rem; margin-bottom: 0.8em; }
@media (hover: hover) and (pointer: fine) { .kopt:hover { border-color: var(--k-gold); } }

/* ---------- Two Minds: hold to breathe ---------- */
.ktwo { display: grid; gap: 14px; justify-items: start; }
.khold { position: relative; min-height: 88px; padding: 0.6em 2em 0.6em 0.8em; gap: 0.9em; font-size: 1.15rem; background: linear-gradient(135deg, #FFF3C4, #F2B54C 60%, #D98A17); color: #2A120A; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; touch-action: none; }
.khold__ring { --fill: 0; position: relative; display: inline-block; width: 64px; height: 64px; border-radius: 50%; background: conic-gradient(#881337 calc(var(--fill) * 1turn), rgba(255, 255, 255, 0.55) 0); }
.khold__ring::after { content: "🌞"; position: absolute; inset: 7px; display: grid; place-items: center; border-radius: 50%; background: #FFF6DA; font-size: 1.6rem; }
.khold.is-holding { box-shadow: 0 0 0 6px rgba(242, 181, 76, 0.35), 0 0 40px rgba(242, 181, 76, 0.7); }
.ktwo__breaths { display: flex; gap: 10px; list-style: none; padding: 0; margin: 0; }
.ktwo__breaths li { width: 22px; height: 22px; border-radius: 50%; border: 3px solid var(--k-gold); }
.ktwo__breaths li.is-done { background: var(--k-gold); }
.ktwo__status { font-weight: 600; color: var(--k-teal); min-height: 1.6em; margin: 0; }

/* ---------- Little Sadhak breath ---------- */
.kids-breathe { background: radial-gradient(900px 600px at 70% 50%, rgba(242, 181, 76, 0.16), transparent 70%), linear-gradient(180deg, #0F1430 0%, #1C1A47 55%, #2B1F4A 100%); color: #FFF7EE; }
.kids-breathe h2, .kids-breathe .kids-eyebrow, .kids-breathe .kids-eyebrow span { color: #FFF7EE; }
.kids-breathe .kids-eyebrow { color: #FCD98A; }
.kids-breathe .kids-note { color: #D9CCE6; }
.kids-breathe__grid { display: grid; gap: clamp(28px, 4vw, 64px); align-items: center; }
@media (min-width: 900px) { .kids-breathe__grid { grid-template-columns: 1fr 1.1fr; } }
.kchips { border: 0; padding: 0; margin: 0 0 1em; display: flex; flex-wrap: wrap; gap: 10px; }
.kchips legend { font-weight: 600; margin-bottom: 0.5em; padding: 0; }
.kchip { position: relative; display: inline-flex; }
.kchip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.kchip span { display: inline-flex; align-items: center; min-height: 56px; padding: 0 1.3em; border-radius: 999px; border: 2px solid rgba(252, 217, 138, 0.45); font-weight: 600; }
.kchip input:checked + span { background: linear-gradient(135deg, #FFE7A3, #F2B54C); color: #2A120A; border-color: transparent; }
.kchip input:focus-visible + span { outline: 3px solid #FCD34D; outline-offset: 3px; }
.kswitch { display: inline-flex; align-items: center; gap: 0.7em; min-height: 56px; cursor: pointer; font-weight: 600; margin-bottom: 1em; position: relative; }
.kswitch input { position: absolute; opacity: 0; width: 64px; height: 36px; margin: 0; cursor: pointer; }
.kswitch__track { width: 64px; height: 36px; border-radius: 999px; background: rgba(255, 255, 255, 0.2); position: relative; transition: background-color 0.2s; flex: none; }
.kswitch__track::after { content: ""; position: absolute; top: 4px; left: 4px; width: 28px; height: 28px; border-radius: 50%; background: #FFFFFF; transition: transform 0.2s; }
.kswitch input:checked + .kswitch__track { background: #D98A17; }
.kswitch input:checked + .kswitch__track::after { transform: translateX(28px); }
.kswitch input:focus-visible + .kswitch__track { outline: 3px solid #FCD34D; outline-offset: 3px; }
.kids-breathe__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 1.2em; }
.kids-breathe .kbtn--ghost { color: #FFF7EE; border-color: rgba(252, 217, 138, 0.5); }
.kids-breathe .kbtn--quiet { color: #FCD98A; }
.kids-breathe__stage { position: relative; display: grid; justify-items: center; text-align: center; }
.kids-breathe__lotus { width: min(100%, 520px); aspect-ratio: 600 / 520; }
.klotus { width: 100%; height: 100%; overflow: visible; --open: 0.15; }
.klotus-petal { transform-box: fill-box; transform-origin: 50% 100%; transform: rotate(calc(var(--a) * (0.28 + 0.72 * var(--open)))) scale(calc(0.86 + 0.14 * var(--open))); }
.klotus-ring--back .klotus-petal { opacity: calc(0.55 + 0.45 * var(--open)); }
.klotus-aura { transform-box: fill-box; transform-origin: 50% 50%; transform: scale(calc(0.7 + 0.45 * var(--open))); opacity: calc(0.35 + 0.65 * var(--open)); }
.kids-breathe__phase { font-family: var(--k-serif); font-size: clamp(1.8rem, 1.3rem + 2vw, 2.8rem); margin: 0.2em 0 0.1em; color: #FFF3C4; min-height: 1.3em; }
.kids-breathe__timer { font-size: 1.4rem; font-variant-numeric: tabular-nums; color: #FCD98A; letter-spacing: 0.08em; margin: 0; }
.kids-breathe__done { margin-top: 1em; padding: 16px 22px; border-radius: 22px; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(252, 217, 138, 0.4); display: flex; align-items: center; gap: 14px; text-align: start; }
.kids-breathe__done p { margin: 0; }
.kstar-burst { font-size: 3rem; color: #FCD34D; text-shadow: 0 0 24px rgba(252, 211, 77, 0.9); animation: kstar-pop 0.9s cubic-bezier(0.2, 1.6, 0.4, 1) both; }
@keyframes kstar-pop { from { transform: scale(0.2) rotate(-40deg); opacity: 0; } to { transform: scale(1) rotate(0); opacity: 1; } }

/* ---------- shlokas ---------- */
.kids-shloka { background: radial-gradient(1000px 500px at 10% 10%, var(--k-glow), transparent 70%); }
.ktabs { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.ktab { display: flex; flex-direction: column; align-items: flex-start; min-height: 72px; padding: 10px 22px; border-radius: 22px; border: 2px solid var(--k-line); background: var(--k-surface); color: var(--k-ink); cursor: pointer; text-align: start; }
.ktab__deva { font-family: var(--k-deva); font-size: 1.4rem; font-weight: 600; line-height: 1.25; }
.ktab__en { font-size: 0.9rem; color: var(--k-muted); }
.ktab[aria-selected="true"] { background: linear-gradient(135deg, #FFE7A3, #F2B54C); color: #2A120A; border-color: transparent; }
.ktab[aria-selected="true"] .ktab__en { color: #5A3410; }
.kshloka__verse { padding: clamp(20px, 3vw, 36px); border-radius: var(--k-radius); background: var(--k-surface); border: 1px solid var(--k-line); box-shadow: var(--k-shadow); margin-bottom: 24px; text-align: center; }
.kshloka__line { margin: 0 0 0.9em; }
.kshloka__deva { display: block; font-family: var(--k-deva); font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.3rem); font-weight: 600; line-height: 1.45; color: var(--k-gold-ink); }
.kshloka__iast { display: block; font-style: italic; color: var(--k-muted); font-size: 1.05rem; }
.kshloka__meaning { margin: 1.2em auto 0; max-width: 40rem; color: var(--k-muted); font-size: 0.98rem; }
.kshloka__meaning-label { font-weight: 600; color: var(--k-ink); }
.kshloka__cards { display: grid; gap: 14px; }
.kphrase { display: flex; flex-wrap: wrap; gap: 10px; padding: 10px; border-radius: 24px; border: 2px dashed transparent; transition: border-color 0.3s, background-color 0.3s; }
.kphrase.is-turn { border-color: var(--k-teal); background: rgba(31, 122, 122, 0.08); }
.kword { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-width: 112px; min-height: 104px; padding: 10px 14px; border-radius: 20px; border: 2px solid var(--k-line); background: var(--k-surface); color: var(--k-ink); cursor: pointer; transition: transform 0.2s, background-color 0.2s, box-shadow 0.2s; }
.kword__deva { font-family: var(--k-deva); font-size: 1.6rem; font-weight: 600; line-height: 1.3; }
.kword__iast { font-style: italic; font-size: 1rem; color: var(--k-muted); }
.kword__say { font-size: 0.85rem; font-weight: 600; letter-spacing: 0.04em; color: var(--k-teal); }
.kword.is-lit { background: linear-gradient(135deg, #FFF3C4, #F2B54C); color: #2A120A; border-color: transparent; transform: translateY(-3px) scale(1.04); box-shadow: 0 14px 30px -14px rgba(217, 119, 6, 0.9); }
.kword.is-lit .kword__iast, .kword.is-lit .kword__say { color: #5A3410; }
.kshloka__controls { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 24px; }
.krange { display: inline-flex; align-items: center; gap: 0.6em; min-height: 56px; font-weight: 600; }
.kshloka__turn { min-height: 1.6em; font-weight: 700; font-size: 1.2rem; color: var(--k-teal); margin: 12px 0; }

/* ---------- colouring sheets ---------- */
.ksheets__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-bottom: 22px; }
.kselect { display: inline-flex; align-items: center; gap: 0.6em; font-weight: 600; }
.kselect select { min-height: 56px; padding: 0 2.4em 0 1em; border-radius: 16px; border: 2px solid var(--k-line); background: var(--k-surface) var(--select-arrow) no-repeat right 1em center; color: var(--k-ink); font: 600 1rem var(--k-sans); -webkit-appearance: none; appearance: none; }
.ksheets { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 18px; list-style: none; margin: 0; padding: 0; }
.ksheet { display: flex; flex-direction: column; border-radius: 24px; background: var(--k-surface); border: 1px solid var(--k-line); box-shadow: var(--k-shadow); overflow: hidden; }
.ksheet__thumb { aspect-ratio: 800 / 1060; background: #FFFFFF; padding: 10px; border-bottom: 1px solid var(--k-line); }
.ksheet__thumb svg { width: 100%; height: 100%; display: block; }
.ksheet__body { padding: 14px 16px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.ksheet__title { font-family: var(--k-serif); font-size: 1.35rem; font-weight: 600; margin: 0; line-height: 1.2; }
.ksheet__hint { font-size: 0.92rem; color: var(--k-muted); margin: 0; flex: 1; }
.ksheet__pick { display: inline-flex; align-items: center; gap: 0.6em; min-height: 48px; font-weight: 600; cursor: pointer; }
.ksheet__pick input { width: 26px; height: 26px; accent-color: #D98A17; }
.ksheet__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ksheet__actions .kbtn { flex: 1 1 auto; min-height: 56px; padding-inline: 1em; font-size: 0.95rem; }
.kprint { display: none; }

/* ---------- stars ---------- */
.kids-stars { background: linear-gradient(180deg, transparent, var(--k-glow)); }
.kids-stars__grid { display: grid; gap: 32px; align-items: center; }
@media (min-width: 900px) { .kids-stars__grid { grid-template-columns: 1.4fr 1fr; } }
.kids-stars__art { display: grid; place-items: center; }
.kjar { position: relative; width: 200px; height: 240px; border-radius: 46px 46px 64px 64px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.08)); border: 4px solid rgba(242, 181, 76, 0.65); box-shadow: inset 0 -80px 60px -40px rgba(242, 181, 76, 0.55), 0 30px 60px -30px rgba(217, 119, 6, 0.7); display: grid; place-items: center; }
.kjar::before { content: ""; position: absolute; top: -22px; left: 30px; right: 30px; height: 30px; border-radius: 12px; background: linear-gradient(180deg, #B9771C, #8A4B0B); }
.kjar::after { content: "★ ★ ★"; position: absolute; bottom: 26px; letter-spacing: 0.3em; color: #F2B54C; font-size: 1.4rem; text-shadow: 0 0 14px rgba(242, 181, 76, 0.9); }
.kjar__count { font-family: var(--k-serif); font-size: 4rem; font-weight: 600; color: var(--k-gold-ink); }
.kjar--big { width: 160px; height: 190px; flex: none; }
.kjar--big .kjar__count { font-size: 3.2rem; }
.kstars-kids { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 1em; padding: 0; list-style: none; }
.kstars-kid { display: inline-flex; align-items: center; gap: 0.5em; min-height: 56px; padding: 0.3em 1.1em; border-radius: 999px; background: var(--k-surface); border: 1px solid var(--k-line); font-weight: 600; }
.kstars-kid strong { color: var(--k-gold-ink); }

/* ---------- grown-ups ---------- */
.kids-grown { background: var(--k-surface-2); border-top: 1px solid var(--k-line); }
.kids-grown__grid { display: grid; gap: 32px; }
@media (min-width: 900px) { .kids-grown__grid { grid-template-columns: 1.2fr 1fr; } }
.kgrown { padding: clamp(20px, 3vw, 32px); border-radius: var(--k-radius); background: var(--k-surface); border: 1px solid var(--k-line); box-shadow: var(--k-shadow); align-self: start; }
.kgrown h3 { font-size: 1.5rem; }
.kgrown details { margin-top: 1em; border-top: 1px solid var(--k-line); padding-top: 0.6em; }
.kgrown summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 600; color: var(--k-gold-ink); }
.kfield { display: grid; gap: 6px; margin-bottom: 14px; }
.kfield label { font-weight: 600; }
.kfield input, .kfield textarea { width: 100%; min-height: 52px; padding: 10px 14px; border-radius: 14px; border: 2px solid var(--k-line); background: var(--k-surface-2); color: var(--k-ink); font: 500 1.05rem var(--k-sans); }
.kfield input[type="password"][inputmode="numeric"] { letter-spacing: 0.6em; font-size: 1.4rem; max-width: 12rem; }
.kfield textarea { min-height: 96px; resize: vertical; }
.kfield__opt { font-weight: 400; color: var(--k-muted); }
.kfield__count { margin: 0; font-size: 0.85rem; color: var(--k-muted); text-align: end; }
.kform-msg { min-height: 1.4em; margin: 10px 0 0; font-weight: 600; }
.kform-msg.is-error { color: var(--danger, #B42318); }
.kform-msg.is-ok { color: var(--k-teal); }
.kfield-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- passport ---------- */
.kids--passport { min-height: 70vh; }
.kpass-hero { padding-block: clamp(110px, 14vh, 160px) clamp(20px, 3vw, 36px); background: radial-gradient(900px 400px at 80% 0%, rgba(242, 181, 76, 0.22), transparent 70%), linear-gradient(180deg, #1C1A47, var(--k-bg)); }
.kpass-hero h1 { font-size: clamp(2.6rem, 2rem + 3vw, 4.4rem); color: #FFF7EE; }
[data-theme="light"] .kpass-hero h1 { color: #FFF7EE; text-shadow: 0 2px 20px rgba(28, 26, 71, 0.6); }
.kpass-hero .kids-crumbs { color: #FFF3DA; }
.kpass-hero .kids-eyebrow, .kpass-hero .kids-eyebrow span { color: #FCD98A; }
.kpass-hero__lead { color: #FFF3DA; max-width: 40rem; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.4); }
.kpass { padding-top: clamp(24px, 3vw, 40px); }
.kpass-state { max-width: 44rem; }
.kpass-kids { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
.kpass-kid { display: inline-flex; align-items: center; gap: 0.6em; min-height: 60px; padding: 0.3em 1.4em 0.3em 0.5em; border-radius: 999px; border: 2px solid var(--k-line); background: var(--k-surface); color: var(--k-ink); font: 600 1.1rem var(--k-sans); cursor: pointer; }
.kpass-kid[aria-selected="true"] { background: linear-gradient(135deg, #FFE7A3, #F2B54C); color: #2A120A; border-color: transparent; }
.kpass-kid .kwho__face { width: 46px; height: 46px; }
.kpass-total { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; padding: clamp(20px, 3vw, 32px); border-radius: var(--k-radius); background: var(--k-surface); border: 1px solid var(--k-line); box-shadow: var(--k-shadow); margin-bottom: 20px; }
.kpass-total__name { font-family: var(--k-serif); font-size: 1.8rem; font-weight: 600; margin: 0; }
.kpass-total__num { font-family: var(--k-serif); font-size: 3.4rem; font-weight: 600; line-height: 1; margin: 0.1em 0; color: var(--k-gold-ink); }
.kpass-total__unit { font-size: 1.4rem; }
.kpass-total__today { color: var(--k-muted); margin: 0 0 0.6em; }
.kmeter { width: min(320px, 70vw); height: 16px; border-radius: 999px; background: var(--k-surface-2); border: 1px solid var(--k-line); overflow: hidden; }
.kmeter span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #FFE7A3, #F2B54C, #D98A17); border-radius: inherit; transition: width 0.6s ease; }
.kpass-next p { margin: 6px 0 0; font-size: 0.95rem; color: var(--k-muted); }
.kpass-kinds { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 12px; list-style: none; margin: 0 0 20px; padding: 0; }
.kpass-kinds li { display: grid; justify-items: center; gap: 2px; padding: 16px 10px; border-radius: 22px; background: var(--k-surface); border: 1px solid var(--k-line); text-align: center; }
.kpass-kinds li > span:first-child { font-size: 1.8rem; }
.kpass-kinds strong { font-family: var(--k-serif); font-size: 2rem; color: var(--k-gold-ink); line-height: 1; }
.kpass-kinds li > span:last-child { font-size: 0.9rem; color: var(--k-muted); }
.kpass-cols { display: grid; gap: 20px; margin-bottom: 20px; }
@media (min-width: 1000px) { .kpass-cols { grid-template-columns: 1fr 1.3fr; } }
.kpass-card { padding: clamp(18px, 3vw, 30px); border-radius: var(--k-radius); background: var(--k-surface); border: 1px solid var(--k-line); box-shadow: var(--k-shadow); margin-bottom: 20px; }
.kpass-cols .kpass-card { margin-bottom: 0; }
.kpass-card h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.ksewa-acts { border: 0; padding: 0; margin: 0 0 14px; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.ksewa-act { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 14px 8px; min-height: 104px; border-radius: 20px; border: 2px solid var(--k-line); background: var(--k-surface-2); text-align: center; font-weight: 600; font-size: 0.95rem; cursor: pointer; }
.ksewa-act input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ksewa-act__icon { font-size: 2rem; }
.ksewa-act:has(input:checked) { border-color: var(--k-gold); background: rgba(242, 181, 76, 0.18); }
.ksewa-act.is-checked { border-color: var(--k-gold); background: rgba(242, 181, 76, 0.18); }
.ksewa-act:has(input:focus-visible) { outline: 3px solid var(--focus, #881337); outline-offset: 3px; }
.kjournal { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.kjournal li { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 12px 14px; border-radius: 18px; background: var(--k-surface-2); border: 1px solid var(--k-line); }
.kjournal__icon { font-size: 1.8rem; flex: none; }
.kjournal__body { flex: 1 1 14rem; min-width: 0; }
.kjournal__what { font-weight: 600; margin: 0; }
.kjournal__note { margin: 0; color: var(--k-muted); overflow-wrap: anywhere; }
.kjournal__meta { font-size: 0.85rem; color: var(--k-muted); margin: 0; }
.kjournal__stars { font-weight: 700; color: var(--k-gold-ink); white-space: nowrap; }
.kjournal__rm { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.kjournal__rm input { width: 7.5rem; min-height: 44px; padding: 6px 10px; border-radius: 12px; border: 2px solid var(--k-line); background: var(--k-surface); color: var(--k-ink); font: 600 1.1rem var(--k-sans); letter-spacing: 0.4em; }
.kcerts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.kcerts li { display: grid; justify-items: center; gap: 8px; padding: 18px 12px; border-radius: 22px; border: 2px solid var(--k-line); background: var(--k-surface-2); text-align: center; }
.kcerts li.is-locked { opacity: 0.6; border-style: dashed; }
.kcerts .kseal { width: 72px; height: 86px; }
.kcerts__n { font-family: var(--k-serif); font-size: 1.5rem; font-weight: 600; margin: 0; }
.kcert-print { display: none; }

/* ---------- toast ---------- */
.ktoast { position: fixed; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 2147483000; transform: translate(-50%, 20px); opacity: 0; pointer-events: none; max-width: min(92vw, 34rem); padding: 14px 22px; border-radius: 999px; background: #1C1A47; color: #FFF7EE; font: 600 1.05rem var(--k-sans); box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.7); border: 1px solid rgba(252, 217, 138, 0.5); transition: opacity 0.3s, transform 0.3s; text-align: center; }
.ktoast.is-on { opacity: 1; transform: translate(-50%, 0); }
dialog .ktoast { position: absolute; }

/* ---------- large screens: clamp, don't stretch ---------- */
@media (min-width: 2200px) {
  .kids { --k-wrap: 1560px; font-size: 1.32rem; }
  .kbtn { font-size: 1.2rem; min-height: 64px; }
  .kbook { width: min(1800px, 90vw); height: min(1200px, 90vh); }
  .kbook__text { font-size: 2.2rem; }
  .kword { min-width: 140px; min-height: 128px; }
  .kword__deva { font-size: 2rem; }
}

/* ---------- reduced motion: still frames ---------- */
@media (prefers-reduced-motion: reduce) {
  .kart *, .kstar-burst { animation: none !important; }
  .kart-l, .kart-rising, .kart-warmth, .kart-restless, .kart-rested, .kart-labels, .kbook__stage .kart { transition: none !important; }
  .kbtn, .kword, .kdots li, .kmeter span { transition: none !important; }
}

/* ---------- print: colouring sheets (one per page) and certificates ---------- */
.kprint-root { display: none; }
@media print {
  body.kids-printing { background: #FFFFFF !important; margin: 0 !important; padding: 0 !important; }
  html.kids-printing-html { background: #FFFFFF !important; }
  body.kids-printing > *:not(.kprint-root) { display: none !important; }
  body.kids-printing .kprint-root { display: block !important; color: #000000; }
  .kprint-page { break-after: page; page-break-after: always; break-inside: avoid; display: flex; align-items: center; justify-content: center; height: var(--kprint-h, 250mm); overflow: hidden; }
  .kprint-page:last-child { break-after: auto; page-break-after: auto; }
  .kprint-page svg { width: auto; height: 100%; max-width: 100%; display: block; }
  .kcert { break-inside: avoid; }
}
/* the certificate (rendered for print; the passport shows a preview card) */
.kcert { position: relative; width: 100%; height: var(--kprint-h, 180mm); padding: 10mm 14mm; color: #2B1A14; background: radial-gradient(120% 90% at 50% 0%, #FFF8E6 0%, #FCEFD6 60%, #F6E2BC 100%); border: 3mm double #C8901E; border-radius: 6mm; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; font-family: "Plus Jakarta Sans", Arial, sans-serif; -webkit-print-color-adjust: exact; print-color-adjust: exact; overflow: hidden; }
.kcert__corner { position: absolute; width: 26mm; height: 26mm; color: #C8901E; opacity: 0.85; }
.kcert__corner--tl { top: 5mm; left: 5mm; } .kcert__corner--tr { top: 5mm; right: 5mm; transform: scaleX(-1); }
.kcert__corner--bl { bottom: 5mm; left: 5mm; transform: scaleY(-1); } .kcert__corner--br { bottom: 5mm; right: 5mm; transform: scale(-1, -1); }
.kcert__org { margin: 0; font-size: 11pt; letter-spacing: 0.24em; text-transform: uppercase; color: #8A4B0B; font-weight: 600; }
.kcert__title { margin: 3mm 0 2mm; font-family: "Cormorant Garamond", Georgia, serif; font-size: 34pt; font-weight: 600; color: #881337; line-height: 1.05; }
.kcert__to { margin: 0; font-size: 12pt; color: #6A564E; }
.kcert__name { margin: 2mm 0 1mm; font-family: "Cormorant Garamond", Georgia, serif; font-size: 44pt; font-weight: 600; font-style: italic; color: #2B1A14; border-bottom: 0.6mm solid #C8901E; padding: 0 12mm 1mm; }
.kcert__for { margin: 2mm 0 0; font-size: 13pt; max-width: 180mm; }
.kcert__seal { width: 30mm; height: 36mm; margin: 3mm 0 0; }
.kcert__foot { display: flex; justify-content: space-between; gap: 20mm; width: 100%; max-width: 220mm; margin-top: 4mm; font-size: 10pt; color: #6A564E; }
.kcert__sign { flex: 1; border-top: 0.4mm solid #8A4B0B; padding-top: 1.5mm; }
.kcert__date { margin: 1mm 0 0; font-size: 11pt; color: #6A564E; }

/* v1.3.2: the Storytime Theater promo on /kids (the theater itself: kids-theater.css) */
.kth-promo__row { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.kth-promo__card { display: grid; border-radius: 22px; overflow: hidden; background: var(--k-surface); border: 1px solid var(--k-line); box-shadow: var(--k-shadow); color: var(--k-ink); text-decoration: none; }
.kth-promo__card img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.kth-promo__card span { padding: 12px 16px 16px; font: 600 1.15rem var(--k-serif); }
.kth-promo__card:focus-visible { outline: 3px solid var(--k-gold); outline-offset: 3px; }
