/* Promise Pals feature pack styles. Solid colors only (no multicolor stripes). */

.pavatar{width:40px;height:40px;border-radius:50%;object-fit:contain;background:#fff8ec;border:2px solid #e8c9ae;flex:none}
.pavatar.tiny{width:32px;height:32px}
.who-row .whobtn{display:inline-flex;align-items:center;gap:8px;min-height:52px}
.whoname{font-size:1rem}
.person .pavatar{margin-right:6px;vertical-align:middle}
.avpick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:6px 0 4px}
.avbtn{min-width:56px;min-height:56px;border-radius:18px;border:3px solid transparent;background:#fff8ec;padding:6px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 0 #e8c9ae}
.avbtn img{width:44px;height:44px;object-fit:contain}
.avbtn.on{border-color:var(--teal);background:#e6f4f1}

.bonuskicker{margin-top:18px}
.bonusstack .bonuschap{display:flex;justify-content:space-between;align-items:center;text-align:left;gap:10px}
.bonusstack .bonuschap > span:first-child{display:flex;flex-direction:column;gap:2px}
.bonusstack .bonuschap small{font-size:1rem;font-weight:400}
.bonusstack .bonuschap .fine{font-size:1rem}

.stickerearn{display:flex;align-items:center;gap:14px;margin:18px 0 6px;padding:12px 14px;border-radius:20px;background:#fff4d8;box-shadow:0 6px 0 #e0b56a}
.stickerearn img{width:64px;height:64px;object-fit:contain;flex:none}
.stickerearn .kicker{font-size:1rem;letter-spacing:.04em;text-transform:none}
.stickerearn .stickline{margin:4px 0 0;font-size:1rem}
.talkcard{margin:18px 0 8px;padding:16px 18px;border-radius:20px;background:#e6f4f1;box-shadow:0 6px 0 #bcdcd6}
.talkcard .kicker{font-size:1rem;letter-spacing:.04em;text-transform:none}
.talkcard ol{margin:10px 0 10px 1.2em;padding:0}
.talkcard li{margin:0 0 8px;font-size:1rem;line-height:1.4}
.talkcard q{display:block;font-style:italic;font-size:1rem;line-height:1.4}
.talkcard .ref{margin:6px 0 0;font:700 1rem/1.3 system-ui,sans-serif;color:var(--teal-d)}

.playsheet .ptabs{display:flex;gap:10px;margin:0 0 8px}
.playsheet .ptabs .btn{flex:1}
.pstage{position:relative;width:100%;aspect-ratio:16/9;border-radius:22px;overflow:hidden;background:#cfe3c4 center/cover no-repeat;box-shadow:0 6px 0 #e8c9ae;touch-action:none;user-select:none;-webkit-user-select:none}
.pstage.house{background:#cfe6ef}
.ppiece{position:absolute;transform:translate(-50%,-50%);min-width:56px;min-height:56px;padding:0;border:0;background:none;box-shadow:none;touch-action:none;cursor:grab;display:flex;flex-direction:column;align-items:center}
.ppiece img{width:56px;height:56px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 2px rgba(0,0,0,.25))}
.ppiece.pal img{width:60px;height:60px;border-radius:50%;object-fit:cover;border:3px solid #fff;background:#fff}
.ppiece .pname{font:700 1rem/1.1 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:#3a2a22;background:#fff8ec;border-radius:999px;padding:2px 8px;margin-top:2px;pointer-events:none}
.ppiece.lifted{cursor:grabbing}
.ppiece.lifted img{transform:scale(1.12)}
.ptray{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:12px 0 4px;padding:10px;border-radius:20px;background:#fff4e2;min-height:76px}
.ptile{width:60px;height:60px;min-width:56px;min-height:56px;padding:4px;border-radius:16px;background:#fff;box-shadow:0 4px 0 #e8c9ae;display:flex;align-items:center;justify-content:center}
.ptile img{width:46px;height:46px;object-fit:contain}
.ptile.locked{background:#ece4da;box-shadow:0 4px 0 #d6c8b8}
.ptile.placed{opacity:.55}
.lockq{font:700 1.4rem/1 "Fredoka",system-ui,sans-serif;color:#8a7a6a}
.houseph,canvas.stagepaint{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:1;transform:translateZ(0)}
.housetag{position:absolute;left:12px;top:12px;display:flex;align-items:center;gap:6px;background:#fff8ec;border-radius:999px;padding:4px 12px 4px 4px;font-size:1rem}

.recdot{font-weight:700;color:#b33a2a;font-size:1rem}
.pstage.street{aspect-ratio:1280/930}

/* UI fix 1: full-body pals on Play Street and My house */
.pstage{container-type:inline-size}
.ppiece.pal img{width:auto;height:clamp(84px,26cqw,220px);border-radius:0;border:0;background:none;object-fit:contain;filter:drop-shadow(0 4px 3px rgba(0,0,0,.28))}
.ppiece.pal .pname{margin-top:-4px;box-shadow:0 2px 0 rgba(58,42,34,.18)}
.ptray .palrow{flex:1 1 100%;display:flex;justify-content:center;gap:10px;flex-wrap:wrap;padding-bottom:10px;margin-bottom:2px;border-bottom:2px dashed #ecd6bb}
.ptile.paltile{width:72px;height:auto;min-height:88px;flex-direction:column;gap:2px;padding:6px 4px}
.ptile.paltile img{width:auto;height:56px;max-width:60px}
.ptile.paltile .tilename{font:700 16px/1.1 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:#3a2a22}
/* UI fix 2: big centered titles, Congratulations sticker, ending cheer, verse link */
.scenetitle{margin:4px 0 14px;text-align:center;font:700 clamp(1.9rem,6.4vw,2.6rem)/1.15 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:var(--ink);letter-spacing:.01em}
.endcheer{margin:6px 0 2px;text-align:center;font:700 1.35rem/1.3 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:var(--teal-d)}
.recaplabel{margin:4px 0 6px;font:700 1.05rem/1.3 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:var(--teal-d)}
.stickerearn.congrats,.stickerearn{display:block;margin:0 0 18px;text-align:left}
.stickerearn .stickrow{display:flex;align-items:center;gap:14px}
.stickerearn .congratshead{margin:0 0 8px;text-align:center;font:700 1.7rem/1.2 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:#b5651d}
.stickerearn.congrats img{width:84px;height:84px}
.linkbtn{display:block;margin:12px auto 4px;padding:10px 12px;min-height:44px;background:none;border:0;color:var(--teal-d);font:600 1rem/1.3 system-ui,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.talkcard .talkcta{margin:8px 0 0;font:700 1.05rem/1.35 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:var(--ink)}
/* endingfix: tappable sticker card + matching verse card */
button.stickerearn.endcard{display:block;width:100%;border:0;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none;touch-action:manipulation;text-align:left}
button.stickerearn.endcard:focus,button.stickerearn.endcard:focus-visible:not(:hover){outline:none}
button.stickerearn.endcard:active{transform:translateY(3px);box-shadow:0 3px 0 #e0b56a}
.stickerearn .congratshead,.versecardend .congratshead{display:block}
.stickerearn .stickcopy,.stickerearn .stickcopy span{display:block}
.endcardcue{display:block;margin:10px 0 0;text-align:right;font:700 1rem/1.2 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:#b5651d}
.versecardend{margin:0 0 18px;padding:12px 14px;border-radius:20px;background:#fff4d8;box-shadow:0 6px 0 #e0b56a;text-align:center}
.versecardend .congratshead{margin:0 0 8px;font:700 1.35rem/1.2 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:#b5651d}
.versecardend q{display:block;font-size:1.1rem;line-height:1.45}
.versecardend .ref{margin:6px 0 0;font-weight:700;color:#8a5a20}
.sticktile.newstick{animation:newstick 1.2s ease-in-out 4;box-shadow:0 0 0 4px #f2b33d,0 0 18px #f2b33d}
@keyframes newstick{50%{transform:scale(1.12)}}
.feedbackcard{margin:18px 0}
.sharepreview{white-space:pre-wrap;font:1rem/1.45 inherit;font-family:inherit;background:#fff4d8;border-radius:20px;box-shadow:0 6px 0 #e0b56a;padding:12px 14px;margin:0 0 18px;max-height:50vh;overflow:auto}
button.stickerearn.endcard,.stickerearn.endcard{margin-top:30px}
/* Play Street on one screen: title, tabs, hint, stage (scaled to fit), tray */
.screen.playstreet{height:100dvh;max-height:100dvh;overflow:hidden;width:min(1180px,100%)}
.playsheet{display:flex;flex-direction:column;min-height:0;overflow:hidden;flex:1 1 auto;padding-top:8px!important;padding-bottom:calc(8px + var(--safe-b))!important}
.playsheet .kicker.funtitle{text-align:center;margin:0 0 6px!important;font-size:clamp(30px,4.2vw,44px)!important}
.playsheet .ptabs{flex:0 0 auto;margin:0 0 6px}
.playsheet .ptabs .btn{min-height:48px;padding:8px 12px}
.playsheet .phint{flex:0 0 auto;margin:0 0 6px;font-size:16px;line-height:1.3}
.pstagewrap{flex:1 1 0;min-height:120px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.pstagewrap .pstage{flex:0 0 auto;aspect-ratio:auto}
.playsheet .ptray{flex:0 1 auto;overflow:auto;margin:8px 0 0;gap:8px;padding:8px}
.playsheet .ptray .palrow{padding-bottom:8px}
.playsheet .ptile{width:54px;height:54px;min-width:54px;min-height:54px}
.playsheet .ptile img{width:42px;height:42px}
.playsheet .ptile.paltile{width:64px;min-height:78px}
.playsheet .ptile.paltile img{height:48px}
/* Picked piece: size via --s, soft glow, no focus ring */
.ppiece{transform:translate(-50%,-50%) scale(var(--s,1));-webkit-tap-highlight-color:transparent;outline:none}
.ppiece:focus,.ppiece:focus-visible{outline:none}
.ppiece.picked img{filter:drop-shadow(0 0 6px #fff3a0) drop-shadow(0 0 12px rgba(255,214,90,.95))}
.peditbar{position:absolute;right:10px;top:10px;z-index:100000;display:flex;gap:10px;padding:8px;border-radius:20px;background:rgba(255,248,236,.94);box-shadow:0 4px 0 #e0b56a}
.pedit{width:56px;height:56px;border:0;border-radius:16px;background:#fff;box-shadow:0 4px 0 #e8c9ae;font:700 30px/1 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:#3a2a22;display:flex;align-items:center;justify-content:center;padding:0;-webkit-tap-highlight-color:transparent;outline:none}
.pedit.ptrash{font-size:26px}
.pedit:disabled{opacity:.4}
.pedit:active{transform:translateY(3px);box-shadow:0 1px 0 #e8c9ae}
/* Memory Verse: a small rolled scroll (parchment with wooden rolls top and bottom), never card-shaped,
   so it cannot be confused with Bible Pairs cards. Same margins/shadow weight as the sticker card. */
.mvscroll{position:relative;border-radius:6px!important;background:linear-gradient(90deg,#f3e2bd 0%,#fbf1d9 12%,#fff8e8 50%,#fbf1d9 88%,#f3e2bd 100%)!important;box-shadow:0 6px 0 rgba(140,96,40,.22)!important;margin-top:22px!important;margin-bottom:30px!important;padding:18px 18px 16px!important;min-height:0!important}
.mvscroll::before,.mvscroll::after{content:""!important;position:absolute;left:-8px;right:-8px;height:16px;border-radius:8px;background:linear-gradient(180deg,#c98a4a 0%,#e7b77a 35%,#a8682e 100%)!important;box-shadow:0 2px 0 rgba(90,50,20,.25);display:block}
.mvscroll::before{top:-10px}
.mvscroll::after{bottom:-10px}
.vcard.mvscroll.locked{background:linear-gradient(90deg,#e8dcc2,#f3ead6 50%,#e8dcc2)!important;color:#6b5a50;box-shadow:0 6px 0 rgba(140,96,40,.15)!important}
.vcard.mvscroll.locked .fine{color:#8a7a6a}
.vcard.mvscroll.locked::before,.vcard.mvscroll.locked::after{background:linear-gradient(180deg,#b89a7a,#d8c0a0 40%,#9a7c5c)!important}
.book .vcard.mvscroll{margin:14px 6px 18px!important}
.versepick .vpname{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.versepick .plantedtag{font:600 14px/1.2 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:#2f7a4a}
.versepick .newsprout{margin-right:6px;padding:1px 7px;border-radius:999px;background:#e3f3df;color:#2b6e3a;font-weight:700}
.growmore{margin-top:14px;text-align:center}
/* Two reward cards in a row get the same air as the card above the board. */
.stickerearn.endcard + .stickerearn.endcard{margin-top:16px}
.newpicture{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:10px 14px;border-radius:18px;background:#fff;box-shadow:0 5px 0 #e8c9ae;font:700 1.1rem/1.3 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:var(--teal-d)}
.newpicture img{width:56px;height:56px;object-fit:contain;flex:none}
.phint{text-align:center!important;margin-left:auto;margin-right:auto}
/* The glow is a plain radial gradient (no filter). Do not contain:paint or translateZ the stage:
   that layer kept the flat fallback color and hid the house, street, and pal bitmaps on top of it. */
.pstage{isolation:isolate}
.ptile img,.pavatar,.avbtn img,.ppiece img{position:relative;z-index:1;transform:translateZ(0)}
.ppiece{transform:translate3d(-50%,-50%,0) scale(var(--s,1));will-change:transform,left,top;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.ppiece img{filter:none!important}
.ppiece::before{content:"";position:absolute;left:50%;top:28px;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;pointer-events:none;z-index:-1;background:radial-gradient(closest-side,rgba(0,0,0,.18),rgba(0,0,0,0));transform:translateY(4px)}
.ppiece.picked::before{width:96px;height:96px;margin:-48px 0 0 -48px;background:radial-gradient(closest-side,rgba(255,243,160,.95),rgba(255,214,90,.55) 60%,rgba(255,214,90,0));transform:none}
.ppiece{isolation:isolate}
/* Bouncy titles: room for descenders (y, g, p) and the tilted letters' shadow so nothing below touches them. */
.kicker.funtitle{padding-bottom:.18em!important}
.playsheet .kicker.funtitle{padding-bottom:.24em!important;margin-bottom:4px!important}
.playsheet .ptabs{margin-bottom:14px!important}
.stickerearn.wincard .stickrow + .stickrow{margin-top:8px}
.stickerearn.wincard > .stickline,.stickerearn.endcard > .stickline{display:block;margin-top:8px}
div.stickerearn.wincard{cursor:default}
.toy .toyrank{white-space:nowrap;overflow:hidden;text-overflow:clip}
@media (max-width:430px){.toy .toyrank{font-size:clamp(12px,3.6vw,15px)!important;letter-spacing:-.01em}}
.toy .toyrank .rshort{display:none}
@media (max-width:430px){.toy .toyrank .rlong{display:none}.toy .toyrank .rshort{display:inline}.toy .toyrank{font-size:13px!important;letter-spacing:0}}
/* Phones: show the hub art from its very top (sky above the "Promise Pals" title) down past the kids' faces. */
@media (max-width:699px){.hero.hub.arthero{height:calc(100vw * 1.1)!important;max-height:none!important;min-height:0!important;background-position:center top!important}}
/* Promise Street pick screen: one screen, no scrolling, on phones (Safari toolbar shown) and iPad portrait. */
html,body{overflow-x:hidden}
.pickscreen{overflow-x:clip;max-width:100vw}
.pickscreen .orb{overflow:hidden}
.pickscreen .orbitart{transform:scale(1.5);border-radius:0}
@media (max-width:699px), (orientation:portrait) and (max-width:1100px){
  .pickscreen{min-height:0!important}
  .pickscreen .hero.tall{min-height:0!important;padding:calc(60px + var(--safe-t,0px)) 14px 30px!important}
  .pickscreen .hero.tall .logo{padding:10px 18px 12px!important;max-width:100%}
  .pickscreen .mark{width:clamp(56px,calc(18svh - 60px),150px)!important;height:clamp(56px,calc(18svh - 60px),150px)!important}
  .pickscreen .logo .kicker{margin:4px 0 0!important;font-size:clamp(13px,1.9svh,18px)!important}
  .pickscreen .logo h1{font-size:clamp(34px,min(11.5vw,7.4svh),84px)!important;line-height:1.02!important;margin:0!important}
  .pickscreen .title-sheet{padding-top:14px!important;padding-bottom:max(10px,var(--safe-b,0px))!important;margin-top:-20px!important;--face:min(calc((100cqi - 30px) / 4),clamp(58px,11svh,150px))!important}
  .pickscreen .invite{margin:0 0 6px!important}
  .pickscreen .cast{margin:4px 0 6px!important;gap:6px 10px!important}
  .pickscreen .orbits{margin:6px 0 4px!important}
  .pickscreen .orbit{width:clamp(54px,9svh,120px)!important}
  .pickscreen .toy .name,.pickscreen .orbit .name{font-size:clamp(16px,2.4svh,22px)!important;margin-top:4px!important}
}
@media (max-width:699px) and (max-height:600px){
  .pickscreen .mark{display:none!important}
  .pickscreen .hero.tall{padding-top:calc(58px + var(--safe-t,0px))!important;padding-bottom:26px!important}
}
@media (max-width:699px){.pickscreen .title-sheet > p:last-child,.pickscreen .title-sheet .fine:last-child{font-size:15px!important;line-height:1.25!important;margin:4px 0 0!important}}
@media (max-width:699px) and (max-height:600px){.pickscreen .hero.tall{padding-top:calc(52px + var(--safe-t,0px))!important;padding-bottom:22px!important}.pickscreen .orbit .fine{margin-top:0!important}}
@media (min-width:700px) and (orientation:portrait) and (max-width:1100px){.pickscreen .toy .toyrank{font-size:clamp(15px,1.9vw,16px)!important}}
/* Story ending: title + rating, one strip of reward chips, a short recap, ONE big question, then buttons. */
.endsheet .endhead{display:flex;align-items:center;gap:12px;margin:0 0 10px}
.endsheet .endhead .avatar{width:64px;height:64px;flex:none}
.endsheet .endheadcopy{min-width:0}
.endsheet .endheadcopy .endmark{margin:0 0 2px}
.endsheet .endtitle{margin:0!important;font-size:clamp(24px,3.2vw,32px)!important;line-height:1.15}
.endsheet .endheadcopy .kicker{margin:2px 0 0}
.rstrip{display:flex;align-items:center;gap:10px;margin:4px 0 12px;padding:8px 10px;border-radius:18px;background:#fff;box-shadow:0 4px 0 #e8c9ae;overflow-x:auto;scrollbar-width:none}
.rstrip::-webkit-scrollbar{display:none}
.rstriplabel{flex:none;font:700 15px/1.1 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:var(--teal-d,#14645d)}
.rchips{display:flex;gap:8px;flex-wrap:nowrap}
.rchip{flex:none;display:flex;align-items:center;gap:6px;height:44px;padding:0 12px 0 6px;border:0;border-radius:999px;background:#fff6e4;box-shadow:0 3px 0 #e8c9ae;font:700 15px/1 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:#3a2a22;-webkit-tap-highlight-color:transparent;outline:none;white-space:nowrap}
.rchip:focus,.rchip:focus-visible{outline:none}
.rchip:active{transform:translateY(2px);box-shadow:0 1px 0 #e8c9ae}
.rchip img{width:34px;height:34px;object-fit:cover;border-radius:50%;background:#fff}
.rchip-sticker img,.rchip-extra img,.rchip-picture img{object-fit:contain;border-radius:0;background:none}
.rchipicon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:22px}
.endrecap p{margin:0 0 8px;font-size:clamp(17px,2.2vw,20px);line-height:1.4}
.talkbig{margin:12px 0 0;padding:16px 18px;border-radius:22px;background:#e6f4f1;box-shadow:0 5px 0 #b9dcd5}
.talkbig .kicker{margin:0 0 6px;color:var(--teal-d,#14645d)}
.talkbig .talkq1{margin:0;font:700 clamp(20px,2.8vw,26px)/1.3 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:#2d2320}
.endsheet .endstack{margin-top:30px!important}
.endsheet .endstack .btn{width:100%;min-height:56px}
.endmore{margin-top:26px}
.endpop{text-align:center}
.endpop .poppic{width:140px;height:140px;object-fit:contain;display:block;margin:0 auto 8px}
.endpop .endmark{display:flex;justify-content:center}
@media (max-width:699px){
  .screen:has(.endsheet) .endhero{min-height:0!important;height:clamp(110px,20svh,190px)!important;aspect-ratio:auto!important}
  .endsheet .endhead .avatar{width:52px;height:52px}
}
@media (min-width:700px) and (orientation:portrait){.screen:has(.endsheet) .endhero{min-height:0!important;height:28svh!important;aspect-ratio:auto!important}}
@media (max-width:699px){
  .rstrip{padding:6px 8px;gap:8px}
  .rstrip.many .rstriplabel{display:none}
  .rstrip.many .rchips{width:100%;justify-content:space-between}
  .rstrip.many .rchip{padding:0 5px;height:48px;width:48px;justify-content:center}
  .rstrip.many .rchip .rchiplabel{display:none}
  .rstrip.many .rchip img,.rstrip.many .rchipicon{width:38px;height:38px}
}
.rchip,.rstriplabel{font-size:16px!important}
.pickscreen .orbit .fine,.pickscreen .title-sheet .fine{font-size:16px!important}
/* Chapters list: rating pills read naturally ("Try Again" on one line, same build as "Great"). */
.chap .rankmark,.bonuschap .rankmark{flex:none!important;width:auto!important}
.chap .rankmark > span,.bonuschap .rankmark > span{flex:none!important;min-width:0}
.chap .rankmark .markword,.bonuschap .rankmark .markword{display:inline!important;white-space:nowrap;word-spacing:normal;text-align:left;letter-spacing:.01em}
/* The Continue button sits below the list, never over the last card. */
.chapcontinue{display:block;width:100%;margin:28px 0 calc(16px + var(--safe-b,0px))!important}
/* Verses/Lights icons are full-bleed art now; a tiny overscale hides any edge softness inside the ring. */
.pickscreen .orbitart{transform:scale(1.06)!important;object-fit:cover!important;width:100%!important;height:100%!important}
/* Kid labels: show the full wording when it fits; JS switches to the short form only when it would clip,
   and the short form may wrap to a second line rather than ever being cut off. */
.pickscreen .toy .toyrank .rlong{display:inline!important}
.pickscreen .toy .toyrank .rshort{display:none!important}
.pickscreen .toy .toyrank.useshort .rlong{display:none!important}
.pickscreen .toy .toyrank.useshort .rshort{display:inline!important}
.pickscreen .toy .toyrank.usewrap{white-space:normal!important;overflow:visible!important;line-height:1.1!important}
.pickscreen .toy .toyrank{text-overflow:clip;overflow:hidden}
/* Air between the title card and the "Who do you want to be?" panel */
@media (max-width:699px), (orientation:portrait) and (max-width:1100px){.pickscreen .title-sheet{margin-top:-14px!important}}
@media (max-width:699px) and (max-height:600px){
  .pickscreen .hero.tall{padding-bottom:30px!important}
  .pickscreen .logo h1{font-size:30px!important}
  .pickscreen .logo .kicker{display:none!important}
  .pickscreen .title-sheet{--face:min(calc((100cqi - 30px) / 4),54px)!important}
}
/* Bible Pairs header: centered title, one small count line, a slim line for the Bible note (fixed height, no jumping). */
.playcard.matchplay .kicker.funtitle{text-align:center!important;margin:0 0 2px!important}
.playcard.matchplay .pairscount{text-align:center;margin:0 0 8px!important;font-size:16px}
.playcard.matchplay .pairnote{display:flex!important;align-items:center;gap:10px;height:60px!important;min-height:60px!important;max-height:60px;margin:0 0 10px!important;padding:6px 12px!important;border-radius:16px;box-sizing:border-box;overflow:hidden;background:#fff;box-shadow:0 3px 0 #e8c9ae}
.playcard.matchplay .pairnote.empty{background:transparent!important;box-shadow:none!important}
.playcard.matchplay .pairnote img{width:44px!important;height:44px!important;flex:none;object-fit:contain}
.playcard.matchplay .pairnotecopy{min-width:0;display:block;font-size:15px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.playcard.matchplay .pairnotecopy strong{margin-right:6px}
.playcard.matchplay .pairnotecopy .pairline{display:inline}
.playcard.matchplay .pairnotecopy .ref{display:inline;margin-left:6px;font-weight:700;color:var(--teal-d,#14645d)}
/* Phones: 4 cards per row on every board (same card size on 8/12/16/20). */
@media (max-width:699px){
  .matchgrid,.matchgrid.n18{--cols:4!important;--gap:8px;--cw:calc((min(100vw,760px) - 64px - 3 * 8px) / 4)!important}
}
/* The chapter pill inherited the emoji font (wide space glyph made "Try    Again"); words use the story font. */
.chap .rankmark .markword,.bonuschap .rankmark .markword{font-family:"Iowan Old Style",Palatino,Georgia,serif!important;font-weight:700}
/* Pair note: text may trim to two lines, the Bible reference always shows on its own line. */
.playcard.matchplay .pairnote{height:78px!important;min-height:78px!important;max-height:78px}
.playcard.matchplay .pairnotecopy{display:flex!important;flex-direction:column;gap:2px;-webkit-line-clamp:unset}
.playcard.matchplay .pairtext{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14.5px;line-height:1.25}
.playcard.matchplay .pairnotecopy .ref{display:block!important;margin:0!important;font-size:14px;line-height:1.1}
.playcard.matchplay .pairnote{height:86px!important;min-height:86px!important;max-height:86px}
.playcard.matchplay .pairtext{font-size:16px;line-height:1.2}
.playcard.matchplay .pairnotecopy .ref{font-size:16px}
.playcard.matchplay .pairnote.showtext{height:auto!important;min-height:44px!important;max-height:none!important;overflow:visible!important}
.playcard.matchplay .pairnote.showtext .pairline,.playcard.matchplay .pairnote.showtext .pairtext{display:block!important;white-space:normal;overflow:visible!important;-webkit-line-clamp:unset!important}
.gardenfeedback{margin:8px 0 10px;padding:10px 12px;border-radius:16px;background:#fff8ef;box-shadow:0 4px 0 #e8c9ae;color:#3a2a22;font:700 16px/1.35 "Fredoka","Trebuchet MS",system-ui,sans-serif;text-align:center}
@media (max-width:699px){
  .pickscreen .title-sheet > p:last-child,.pickscreen .title-sheet .fine:last-child,.pickscreen .orbit .fine{font-size:16px!important}
  .pickscreen .toy .toyrank{font-size:15px!important}
}
@media (max-width:699px) and (min-height:601px) and (max-height:720px){
  .pickscreen .hero.tall{padding-top:calc(54px + var(--safe-t,0px))!important}
  .pickscreen .logo h1{font-size:clamp(32px,min(11vw,6.6svh),60px)!important}
  .pickscreen .mark{width:clamp(48px,calc(16svh - 60px),120px)!important;height:clamp(48px,calc(16svh - 60px),120px)!important}
}
/* iPhone ending picture: aim at the kid (lower middle of the art), a little taller. */
@media (max-width:699px){.screen:has(.endsheet) .endhero{background-position:center 65%!important;height:clamp(130px,24svh,220px)!important}}
.endsheet .endheadcopy,.endsheet .endheadcopy .endtitle,.endsheet .endheadcopy .endmark{text-align:left!important;justify-content:flex-start}
/* features: locked Memory Verse scrolls stay small */
.book{align-items:start}
.book .vcard.mvscroll.locked{padding:10px 14px 8px!important;min-height:0!important;height:auto!important;align-self:start;margin-top:14px!important;margin-bottom:16px!important}
.book .vcard.mvscroll.locked p{margin:0;font-size:16px}
.verseplay .funtitle{margin-bottom:2px}
/* features A: verse of the week on home */
.hubverse{display:block;margin:2px 0 8px;padding:8px 12px;border-radius:14px;background:#fff6dc;border:2px solid #f1d27a;text-align:center;line-height:1.25}
.hubverse .hvlabel{display:block;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#17786f}
.hubverse .hvtext{display:block;font-size:16px;color:#3a2e28;quotes:"\201C" "\201D"}
.hubverse .hvref{display:block;font-size:14px;font-weight:700;color:#7a5a20;margin-top:2px}
/* grown-ups extras */
.progresscard .progrow{margin:6px 0 10px}
.progresscard .proglist{margin:4px 0 0;padding-left:20px;font-size:16px;line-height:1.35}
.prayercard .prayertext{font-size:18px;line-height:1.4;margin:4px 0}
.printtabs{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.printtabs .btn.on{background:#17786f;color:#fff}
.printcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:10px 0}
.printcard{border:2px dashed #b89a7a;border-radius:14px;padding:12px 14px;background:#fffaf0;break-inside:avoid;page-break-inside:avoid}
.printcard .printkid{font-weight:800;color:#17786f;margin:0 0 4px}
.printcard ol{margin:0 0 8px;padding-left:20px;font-size:16px;line-height:1.35}
.printcard q{display:block;font-style:italic;font-size:15px}
.printcard .ref{margin:2px 0 0;font-size:14px;font-weight:700}
@media print{
  body *{visibility:hidden}
  .talkprint,.talkprint *{visibility:visible}
  .talkprint{position:absolute;left:0;top:0;width:100%}
  .talkprint .appbar,.talkprint .noprint,.talkprint header{display:none!important}
  .printcards{grid-template-columns:1fr 1fr}
  .printcard{background:#fff}
}
.hubverse{margin:0 0 6px;padding:5px 10px 6px;line-height:1.2}
.hubverse .hvlabel{font-size:13px}
.hubverse .hvref{display:inline;font-size:13px;margin:0;color:#7a5a20;text-transform:none;letter-spacing:0}
.hubverse .hvtext{font-size:16px;line-height:1.25}
.book .vcard.mvscroll.locked{width:min(84vw,340px);box-sizing:border-box;text-align:center}
@media (min-width:700px){.book .vcard.mvscroll.locked{width:auto}}
.hubverse .hvlabel,.hubverse .hvref{font-size:16px}
.hubverse .hvlabel{letter-spacing:.02em}
/* features B */
.pickscreen .orbits.four{gap:clamp(10px,3.2vw,40px)!important}
.pickscreen .orbits.four .orbit{width:clamp(54px,8.4svh,110px)!important}
.pickscreen .orbits.four .orbit .name{white-space:nowrap}
.orbit-x .orbitart{object-fit:contain;background:#fff6dc;padding:12%;box-sizing:border-box}
.dailyverse{display:block;width:100%;text-align:left;margin:8px 0 10px;padding:10px 14px;border-radius:16px;border:2px solid #f1d27a;background:#fff6dc;color:#3a2e28;font:inherit;cursor:pointer;box-shadow:0 4px 0 #e5c25d}
.dailyverse.done{border-color:#9fd3cb;background:#e8f6f3;box-shadow:0 4px 0 #9fd3cb}
.dailyverse .dvtop{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap}
.dailyverse strong{font-size:18px}
.dailyverse .dvstreak{font-size:16px;font-weight:800;color:#17786f}
.dailyverse .dvname{display:block;font-size:16px;margin-top:2px}
.dailyverse .dvnote{display:block;font-size:16px;color:#6b5a50;margin-top:2px}
.dailynote{font-size:18px;font-weight:800;color:#17786f;text-align:center;margin:6px 0}
.kindlamps{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:8px 0}
.klamp{width:22px;height:22px;border-radius:50%;background:#d9cdbd;box-shadow:inset 0 -2px 0 rgba(0,0,0,.12)}
.klamp.on{background:radial-gradient(circle at 40% 35%,#fffbe8,#ffd15a 52%,#f0a000);box-shadow:0 0 8px 2px rgba(255,196,70,.85)}
.kindlamps.onstreet{position:absolute;inset:0;margin:0;pointer-events:none;z-index:4}
.kindlamps.onstreet .pathlamp{position:absolute;width:18px;height:18px;transform:translate(-50%,-50%);opacity:1}
.kindlamps.onstreet .pathlamp:not(.on){background:rgba(28,22,40,.55);box-shadow:inset 0 0 0 2px rgba(255,214,150,.45)}
.kindlamps.onstreet .pathlamp.on{box-shadow:0 0 10px 3px rgba(255,196,70,.9),0 0 2px 1px rgba(255,236,190,.95)}
.kindlamps.kept-sections{position:absolute;left:6%;right:6%;bottom:8px;z-index:5;display:flex;justify-content:center;gap:8px;margin:0;pointer-events:none;flex-wrap:wrap}
.kindlamps.kept-inline{margin-top:0}
.ksection{display:inline-flex;gap:3px;padding:3px 6px;border-radius:999px;background:rgba(24,18,40,.28)}
.ksection .klamp{width:10px;height:10px}
.kmore{align-self:center;font:700 13px/1 "Fredoka","Trebuchet MS",system-ui,sans-serif;color:#fff8ef;background:rgba(24,18,40,.45);border-radius:999px;padding:3px 8px}
.gamecard > img.thumbfit{object-fit:contain;object-position:center center;background:#f6efe6;width:96px;height:96px;aspect-ratio:1;flex:0 0 auto}
@media (min-width:700px){.gamecard > img.thumbfit{width:120px;height:120px}}
.kindgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.kindgrid .kindbtn{min-height:64px;height:100%;font-size:17px;line-height:1.2;white-space:normal}
.kindgrid .kindbtn.on{background:#fff2c2;box-shadow:0 4px 0 #e5c25d;color:#3a2e28}
.kindgrid .kindbtn.on::before{content:"\2714\FE0E  ";color:#17786f}
.kindcount{text-align:center}
.albumcount{font-size:20px;font-weight:800;text-align:center;color:#17786f;margin:2px 0 8px}
.albumkicker{margin-top:14px}
.albumgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.albumcell{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;border-radius:14px;background:#fffaf0;box-shadow:0 3px 0 #eadcc6;text-align:center}
.albumcell .albumart{width:72px;height:72px;object-fit:contain}
.albumcell.locked .albumart{filter:grayscale(1) brightness(1.1);opacity:.35}
.albumcell .albumname{font-size:16px;line-height:1.15}
.albumcell.locked .albumname{color:#8a7a6a}
.backupcode,.importcode{width:100%;box-sizing:border-box;font:15px/1.3 ui-monospace,Menlo,monospace;word-break:break-all;min-height:80px;margin:6px 0}
.importfile{position:relative;overflow:hidden;cursor:pointer}
.importfile .hiddenfile{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.kindgrid{grid-auto-rows:1fr}
.pickscreen .orbits.four{gap:clamp(4px,2.4vw,40px)!important}
.pickscreen .orbits.four .orbit{width:clamp(78px,11svh,130px)!important}
.pickscreen .orbits.four .orb{width:clamp(54px,8.4svh,110px)!important}

/* Play Street: the house name tag always reads in full, above any sticker, and never wider than the scene. */
.pstage .housetag{z-index:9999;pointer-events:none;max-width:calc(100% - 20px);box-sizing:border-box;left:10px;top:10px;font-size:clamp(13px,4cqw,17px)}
.pstage .housetag b{white-space:normal;overflow-wrap:anywhere;line-height:1.1;min-width:0}
.pstage .housetag img{flex:none}
/* Ending: one Talk card (kid question + Go deeper), small notes in the recap */
.talkbig .talkdiv{border:0;border-top:1px solid #b9dcd5;margin:12px 0 8px}
.talkbig .godeeper{font-size:14px!important;margin:0 0 4px;letter-spacing:.04em}
.talkbig ol.talkq{margin:4px 0 8px 1.2em;padding:0}
.talkbig ol.talkq li{font-size:16px;line-height:1.4;margin:0 0 6px}
.talkbig q{display:block;font-style:italic;font-size:15px;line-height:1.4}
.talkbig .ref{margin:4px 0 0;font:700 14px/1.3 system-ui,sans-serif;color:var(--teal-d)}
.talkbig + .endstack{margin-top:18px}
/* Reward modal */
.rewardmodal{align-items:center}
.rewardpop{text-align:center;padding:22px 18px 16px;max-width:340px}
.rewardpop .rpx{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;border-radius:22px;background:#f3e6d8;color:#3b2a20;font-size:26px;line-height:44px;cursor:pointer;padding:0}
.rewardpop .rpbig{width:170px;height:170px;object-fit:contain;display:block;margin:6px auto 8px}
.rewardpop .rpname{font:700 1.35rem/1.25 "Fredoka","Trebuchet MS",system-ui,sans-serif;margin:0 0 6px}
.rewardpop .rpline{font-size:17px;line-height:1.4;margin:0 0 12px}
.rewardpop .rplink{border:0;background:none;color:var(--teal-d,#14645d);font:700 16px/1.3 system-ui,sans-serif;padding:10px 12px;cursor:pointer;text-decoration:underline}
.rewardpop button:focus,.rewardpop button:focus-visible{outline:none}
/* Never crop pictures: whole image (contain) on every layout, gaps filled by a blurred, dimmed copy of the same image. */
.hero.hero.hero.hero.hero.hero{background-size:contain!important;background-position:center center!important;background-repeat:no-repeat!important;isolation:isolate;overflow:hidden}
.hero::before{content:"";position:absolute;inset:-30px;z-index:-1;background-image:inherit;background-size:cover;background-position:center;background-repeat:no-repeat;filter:blur(22px) brightness(.82) saturate(.95);pointer-events:none}
/* Tablets: Play Street picture is the hero; page scrolls to the tray; pieces scale with the stage. */
@media (min-width:700px){
  .playsheet{overflow:auto!important}
  .playsheet .ptray{flex:0 0 auto!important;overflow:visible!important}
  .pstage .ppiece:not(.pal) img{width:clamp(56px,8.5cqw,120px);height:clamp(56px,8.5cqw,120px)}
  .pstage .ppiece{min-width:clamp(56px,8.5cqw,120px);min-height:clamp(56px,8.5cqw,120px)}
  .pstage .ppiece .pname{font-size:clamp(1rem,1.8cqw,1.4rem)}
}
button.house:focus-visible{outline:none!important}
/* sharp, whole picture on top of the blur (the element's own background paints beneath negative z-index layers) */
.hero.hero.hero.hero.hero.hero::after{content:"";position:absolute;inset:0;z-index:-1;background-image:inherit;background-size:contain;background-position:center center;background-repeat:no-repeat;pointer-events:none}
/* Layout B (chosen 10/22): 60/40 split in landscape; whole picture centered, blur of the same picture fills the column above and below */
@media (min-width:1020px){
 .screen:not(.bleed):has(> .hero.scenehero){grid-template-columns:minmax(0,60fr) minmax(0,40fr)!important}
}
/* Portrait + phone: picture box matches the 16:9 art, so it sits flush under the header, full width, no blur band, no crop */
@media (max-width:1019px),(orientation:portrait){
 .screen:not(.bleed) > .hero.hero.hero.hero.hero.hero.scenehero{aspect-ratio:16/9!important;height:auto!important;min-height:0!important;max-height:none!important;width:100%!important;margin-top:0!important}
}

/* Oct 22: full-frame heroes, no blurred bands (home hub + Promise Street title) */
.hero.hero.hero.hero.hero.hero.hub.arthero,.hero.hero.hero.hero.hero.hero.titlehero{background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important}
.hero.hub.arthero::before,.hero.hub.arthero::after,.hero.titlehero::before,.hero.titlehero::after{display:none!important}
.hero.titlehero{background-image:url('art/street-title-wide.jpg?v=3')}
.hero.titlehero .veil{display:none}
@media (orientation:landscape) and (min-width:900px){.hero.titlehero{background-image:url('art/street-title-tall.jpg?v=3')}}
/* Memory Verse scroll pop-up: no teal accent line at the top roller; equal space above and below the Keep button */
.cardmodal .verse.mvscroll{border-top:0!important;padding-top:30px!important;padding-bottom:40px!important}
.cardmodal .verse.mvscroll > button{margin-bottom:0!important}
.cardmodal .verse.mvscroll > button:focus,.cardmodal .verse.mvscroll > button:focus-visible{outline:none!important}
/* Ending "You earned" row: chips wrap so every name shows in full; no sideways scroll (all widths) */
.rstrip.rstrip{flex-wrap:wrap;overflow:visible!important;align-items:center}
.rstrip .rchips.rchips{flex-wrap:wrap!important;width:auto!important;flex:1 1 0;min-width:0;justify-content:flex-start!important}
.rstrip .rchip.rchip{flex:0 1 auto;max-width:100%;width:auto!important;height:auto!important;min-height:44px;padding:4px 12px 4px 6px!important;justify-content:flex-start}
.rstrip .rchip .rchiplabel{display:inline!important;white-space:normal;text-align:left;line-height:1.15}
.rstrip.many .rstriplabel{display:inline!important}
.rstrip .rchip img,.rstrip .rchipicon{width:34px!important;height:34px!important;flex:none}
@media (max-width:699px){.rstrip .rstriplabel{flex:1 0 100%}}
/* Oct 22: low-horizon title art; give portrait/phone a strip of street below the card */
@media (max-width:699px){.pickscreen .hero.tall.titlehero{padding-bottom:96px!important}}
@media (min-width:700px) and (orientation:portrait){.pickscreen .hero.tall.titlehero{padding-bottom:130px!important}}

/* 10/22 choice buttons: size to the question text (min 64px), answers never stretch them;
   after a pick only the chosen answer (compact, checked) and its result card stay. */
.stack .choice .inner{position:relative}
.stack .choice .face.front{min-height:64px}
.stack .choice:not(.flipped) .face.back{position:absolute;inset:0;overflow:hidden;min-height:0!important}
.stack .choice.off{display:none!important}
.stack .choice.flipped .inner{transform:none!important;display:flex!important;flex-direction:column;gap:12px;animation:none!important}
.stack .choice.flipped .face{transform:none!important;backface-visibility:visible;position:static;min-height:0!important}
.stack .choice.flipped .face.front{display:flex!important;min-height:0!important;padding:10px 16px;font-size:.95em;opacity:.85}
.stack .choice.flipped .face.front::before{content:"\2713";flex:0 0 auto;margin-right:10px;width:26px;height:26px;border-radius:50%;background:var(--teal,#2eb8b0);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.stack .choice:focus,.stack .choice:focus-visible{outline:none!important}

/* sweep-oct22 contrast: white text on the light pal colors was hard to read (teal 2.4:1, yellow 1.8:1). */
.btn:not(.alt){text-shadow:0 1px 2px rgba(0,0,0,.35)}
.kid-vale .btn:not(.alt){color:#3d2a06;text-shadow:none}

/* Oct 22 (RJ): taller 4:3 scene art. Wide screens show the whole 4:3 picture filling the panel; phones center-crop the same file to 16:9. */
@media (min-width:700px){
 .screen:not(.bleed) > .hero.hero.hero.hero.hero.hero.scenehero.tall43:not(.endhero){aspect-ratio:4/3!important;height:auto!important;min-height:0!important;max-height:none!important;width:100%!important;background-size:cover!important;background-position:center center!important}
 .hero.scenehero.tall43:not(.endhero)::after{background-size:cover!important}
}
@media (max-width:699px){
 .screen:not(.bleed) > .hero.hero.hero.hero.hero.hero.scenehero.tall43:not(.endhero){aspect-ratio:16/9!important;background-size:cover!important;background-position:center center!important}
 .hero.scenehero.tall43:not(.endhero)::after{background-size:cover!important;background-position:center center!important}
}

/* oct23b: Jack button teal darkened for 4.5:1 white text (logo unchanged) */
.kid-theo .btn:not(.alt){background:#17786f;box-shadow:0 8px 0 #0f5a53}
.kid-theo .btn:not(.alt):active{box-shadow:0 3px 0 #0f5a53}
/* oct23c: Wes green + Emma purple buttons darkened for 4.5:1 white text */
.kid-wes .btn:not(.alt){background:#2b7a55;box-shadow:0 8px 0 #1d5a3e}
.kid-wes .btn:not(.alt):active{box-shadow:0 3px 0 #1d5a3e}
.kid-hana .btn:not(.alt){background:#8a4fbf;box-shadow:0 8px 0 #643a8c}
.kid-hana .btn:not(.alt):active{box-shadow:0 3px 0 #643a8c}

/* oct23 r5 (RJ): never crop the 4:3 scene art. Any screen size shows the whole picture; blur of the same picture fills any extra space. */
.screen:not(.bleed) > .hero.hero.hero.hero.hero.hero.scenehero.tall43:not(.endhero){aspect-ratio:4/3!important;height:auto!important;min-height:0!important;max-height:none!important;width:100%!important;background-size:contain!important;background-position:center center!important;align-self:start!important}
.hero.scenehero.tall43:not(.endhero)::after{background-size:contain!important;background-position:center center!important}
/* v36 (RJ): home hub + title art fill their panel edge to edge (cover, no side bands). Panel shape is kept close to the art so only a little sky/ground is trimmed, never the kids, houses or tree. */
@media (min-width:700px){.hero.hero.hero.hero.hero.hero.hub.arthero{background-size:cover!important;background-position:center 45%!important}.hero.hero.hero.hero.hero.hero.titlehero{background-size:cover!important;background-position:center 70%!important}.hero.hub.arthero::before,.hero.hub.arthero::after,.hero.titlehero::before,.hero.titlehero::after{display:none!important}}
@media (min-width:700px) and (max-width:1019px),(min-width:700px) and (orientation:portrait){.hero.hero.hero.hero.hero.hero.hub.arthero{aspect-ratio:4/5!important;height:auto!important;max-height:none!important;min-height:0!important}}

/* v37 (RJ): tall 2:3 scene art = original 16:9 picture + outpainted strips above/below. The picture always spans the full panel width and is centered vertically on the 16:9 core; only the extra strips are cropped. No side crop, no blur fill, no empty space. */
.screen:not(.bleed) > .hero.hero.hero.hero.hero.hero.scenehero.talls.talls.tall43,.hero.hero.hero.hero.hero.hero.scenehero.talls.talls.tall43{background-size:100% auto!important;background-position:center center!important;background-repeat:no-repeat!important;max-height:none!important}
.hero.hero.hero.hero.hero.hero.scenehero.talls.talls.tall43::before,.hero.hero.hero.hero.hero.hero.scenehero.talls.talls.tall43::after{display:none!important}
/* v38 (RJ): side-by-side layout. The picture box stretches to the full left panel height (under the header to the bottom of the card) instead of a fixed 4:3 box at the top.
   Tall 2:3 art: scaled to panel width (16:9 core spans the full width), centered vertically on the core, outpainted strips fill above/below.
   (cover = width-fit for 2:3 in a landscape panel.) Art without a tall file: cover the panel (only fallback, some side crop). No blur layers, no empty space. */
@media (min-width:1020px) and (orientation:landscape){
 .screen:not(.bleed) > .hero.hero.hero.hero.hero.hero.scenehero:not(.endhero),
 .screen:not(.bleed) > .hero.hero.hero.hero.hero.hero.scenehero.tall43:not(.endhero){aspect-ratio:auto!important;height:auto!important;min-height:0!important;max-height:none!important;align-self:stretch!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important}
 .hero.hero.hero.hero.hero.hero.scenehero:not(.endhero)::before,.hero.hero.hero.hero.hero.hero.scenehero:not(.endhero)::after{display:none!important}
 .screen:not(.bleed) > .hero.hero.hero.hero.hero.hero.scenehero.talls.talls.tall43:not(.endhero),.hero.hero.hero.hero.hero.hero.scenehero.talls.talls.tall43:not(.endhero){background-size:cover!important;background-position:center center!important}
}
/* Hub welcome art sets its own height from the picture, so the card cannot cover the kids' feet. */
.hero.hub.arthero{height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;overflow:hidden;background:none!important;background-image:none!important}
.hero.hub.arthero .hubart{display:block;width:100%;height:auto}
.hubsheet{margin-top:0!important}
@media (min-width:1020px) and (orientation:landscape){
  .screen:has(.hero.hub) > .hero.hub.arthero{height:100%!important;min-height:0!important;display:flex;align-items:center;justify-content:center;background:#f6e2cc!important}
  .screen:has(.hero.hub) > .hero.hub.arthero .hubart{width:100%;height:100%;object-fit:contain;object-position:center center}
}
