/* ============================================================
   PETITE GENIUS ACADEMY — immersive blog-post layer
   Shared by every blog-*.html post. Pairs with blog-immersive.js.
   Brand variables (--cream, --terra, etc.) come from styles.css.
   Posts must set <body class="imm"> and link styles.css first.
   ============================================================ */

/* hero: two columns, text and art never overlap (stacks on mobile) */
.imm-hero{background:linear-gradient(#e9f6f1,#FBF4E6);border-bottom:4px solid var(--brown);overflow:hidden;}
.hero-inner{max-width:1120px;margin:0 auto;padding:14px 26px 0;display:grid;grid-template-columns:1.05fr .95fr;gap:34px;align-items:center;}
.hero-copy{padding:26px 0 36px;}
.hero-copy .eyebrow2{font-family:var(--font-hand);color:var(--terra);font-size:clamp(18px,2.2vw,23px);}
.hero-copy h1{font-size:clamp(32px,5vw,58px);line-height:1.04;margin:8px 0 0;color:var(--ink);}
.hero-copy .hero-lead{font-family:var(--font-hand);font-size:clamp(19px,2.4vw,27px);color:var(--brown);max-width:30ch;margin-top:12px;}
.hero-art{align-self:end;}
.hero-art svg{width:100%;height:auto;display:block;}

/* reading body builds on .article from styles.css */
.imm .article p{font-size:18.5px;}
.imm .post-meta{font-size:15px;color:var(--brown-soft);margin:26px 0 0;}
.imm .firstline{font-size:21px;color:var(--ink);font-weight:600;}

/* drawn vignettes inside the article */
.scene-fig{margin:34px 0;}
.scene-fig svg{display:block;width:100%;height:auto;border:3px solid var(--brown);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);background:#fff;}
.scene-fig figcaption{font-family:var(--font-hand);text-align:center;color:var(--brown-soft);font-size:17px;margin-top:10px;}

/* gut-check / answer / try boxes */
.qbox{position:relative;border:3px solid var(--brown);border-radius:var(--radius-card);padding:22px 24px 24px;margin:32px 0;box-shadow:var(--shadow-sm);}
.qbox.q{background:#fff4d4;}
.qbox.a{background:#e4f5ee;}
.qbox.try{background:#fdeaee;}
.qbox .qlabel{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-hand);font-size:19px;color:var(--brown);background:#fff;border:2px solid var(--brown);border-radius:999px;padding:4px 15px;box-shadow:0 3px 0 rgba(90,59,31,.16);margin-bottom:13px;}
.qbox h3{font-size:21px;color:var(--ink);margin-bottom:8px;}
.qbox p{font-size:17px;color:var(--brown-soft);margin-bottom:0;}
.qbox p + p{margin-top:12px;}
.choices{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 2px;}
.choice{flex:1;min-width:200px;display:flex;align-items:center;gap:10px;background:#fff;border:2px solid var(--brown);border-radius:16px;padding:12px 16px;font-weight:600;color:var(--ink);}
.choice .pick{flex:none;width:28px;height:28px;border-radius:50%;background:var(--amber);border:2px solid var(--brown);display:flex;align-items:center;justify-content:center;font-family:var(--font-hand);font-size:17px;}
.qbox.a .reveal-pill{display:inline-block;background:var(--teal);color:#fff;border:2px solid var(--brown);border-radius:999px;padding:3px 13px;font-weight:700;font-size:15px;margin-bottom:6px;}

/* scroll reveal (paired with blog-immersive.js) */
.rise{opacity:0;transform:translateY(28px);transition:opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1);}
.rise.in{opacity:1;transform:none;}
.rise.d1{transition-delay:.09s;}.rise.d2{transition-delay:.18s;}

/* ambient motion (off for reduced-motion users).
   NOTE: animated elements (.sun-pulse,.sway) must be WRAPPED in a
   separate <g transform="translate(...)"> so the CSS transform does
   not clobber their SVG position. transform-box:fill-box keeps the
   origin on the element's own box. */
@media (prefers-reduced-motion: no-preference){
  .cloud{animation:drift 18s ease-in-out infinite alternate;}
  .cloud.c2{animation-duration:26s;}
  .sun-pulse{transform-box:fill-box;transform-origin:center;animation:sunpulse 6s ease-in-out infinite;}
  .sway{transform-box:fill-box;transform-origin:bottom center;animation:sway 6s ease-in-out infinite;}
  .sway.s2{animation-duration:7.5s;animation-delay:-1.5s;}
  .sway.s3{animation-duration:5.4s;animation-delay:-.8s;}
  .twinkle{animation:twinkle 3.2s ease-in-out infinite;}
  .twinkle.t2{animation-delay:-1.6s;}
  @keyframes drift{from{transform:translateX(-16px);}to{transform:translateX(16px);}}
  @keyframes sunpulse{0%,100%{transform:scale(1);}50%{transform:scale(1.05);}}
  @keyframes sway{0%,100%{transform:rotate(-2deg);}50%{transform:rotate(2deg);}}
  @keyframes twinkle{0%,100%{opacity:.5;}50%{opacity:1;}}
}
@media (prefers-reduced-motion: reduce){
  .rise{opacity:1;transform:none;transition:none;}
}
@media (max-width:820px){
  .hero-inner{grid-template-columns:1fr;gap:4px;}
  .hero-copy{padding:8px 0 14px;}
  .hero-art{max-width:440px;margin:0 auto;}
}
@media (max-width:560px){
  .choice{min-width:100%;}
}
