.fb {
  --teal:#2cc1d0; --royal:#1d4ed8; --coral:#f87960; --deep:#005f73; --ocean:#00a8cc;
  --amber:#f59e0b; --success:#10B981;
  --g900:#1f2937; --g800:#1f2a37; --g700:#374151; --g600:#4b5563; --g500:#6b7280;
  --g400:#9ca3af; --g300:#d1d5db; --g200:#e5e7eb; --border:#e5e7eb; --page:#f8fafc; --white:#fff;
  --grad-primary:linear-gradient(135deg,#2cc1d0,#1d4ed8);
  --grad-purple:linear-gradient(135deg,#f87960,#1d4ed8);
  --grad-coral:linear-gradient(135deg,#ff8a75,#f87960,#f56048);
  --grad-warm:linear-gradient(135deg,#f59e0b,#f87960);
  --sh-sm:0 1px 2px rgba(0,0,0,.05); --sh:0 4px 20px rgba(0,0,0,.08);
  --sh-lg:0 12px 40px rgba(0,0,0,.12); --sh-purple:0 8px 30px rgba(248,121,96,.25);
  --r:16px; --r-lg:20px; --r-xl:24px; --r-pill:9999px;
  font-family:'Montserrat',system-ui,-apple-system,sans-serif; color:var(--g900); line-height:1.6;
  color-scheme: light only;
}
.fb *,.fb *::before,.fb *::after{box-sizing:border-box;}
/* Hard floor on option text color so it can never read as white-on-white.
   (Selected Likert stays white-on-teal via the more specific :checked rule below.) */
.fb .fb-choice, .fb .fb-choice span, .fb .fb-tt{ color:var(--g700); }
.fb .fb-scale-btn{ color:var(--g600); }
.fb h1,.fb h2,.fb h3,.fb h4{font-family:'Poppins',sans-serif; line-height:1.2; margin:0;}

/* layout */
.fb-bleed{position:relative; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); width:100vw;}
.fb-wrap{max-width:1024px; margin:0 auto; padding:0 24px;}
.fb-section{padding:40px 0; background:linear-gradient(180deg,var(--white) 0%,var(--page) 100%);}

/* hero */
.fb-hero{text-align:center; padding:56px 0 8px;}
.fb-badge{display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:var(--r-pill);
  background:rgba(44,193,208,.1); color:var(--deep); font-weight:700; font-size:.85rem; margin-bottom:18px;}
.fb-badge i{color:var(--teal);}
.fb-title{font-size:clamp(2rem,5vw,3.1rem); font-weight:900; background:var(--grad-primary);
  -webkit-background-clip:text; background-clip:text; color:transparent; margin-bottom:16px;}
.fb-sub{font-size:clamp(1rem,2vw,1.18rem); color:var(--g600); max-width:640px; margin:0 auto 8px;}

/* card */
.fb-card{width:min(880px,calc(100% - 32px)); margin:0 auto; padding:clamp(22px,4vw,40px);
  background:var(--white); border-radius:var(--r-xl); box-shadow:var(--sh-lg); position:relative;}

/* steps strip */
.fb-steps{display:flex; justify-content:center; gap:8px; margin:18px auto 0; flex-wrap:wrap;}
.fb-step{display:flex; align-items:center; gap:8px; font-size:.82rem; font-weight:700; color:var(--g400);
  padding:6px 12px; border-radius:var(--r-pill); background:var(--page); border:1px solid var(--border);}
.fb-step.is-active{color:var(--deep); background:rgba(44,193,208,.1); border-color:transparent;}
.fb-step.is-done{color:var(--success);}
.fb-step .n{display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px;
  border-radius:50%; background:var(--g300); color:var(--white); font-size:.72rem;}
.fb-step.is-active .n{background:var(--teal);} .fb-step.is-done .n{background:var(--success);}

/* progress */
.fb-prog{width:100%; height:10px; background:var(--g300); border-radius:var(--r-pill); overflow:hidden; margin-bottom:8px;}
.fb-prog__bar{height:100%; width:0%; background:var(--grad-primary); border-radius:var(--r-pill); transition:width .3s ease;}
.fb-counter{text-align:center; font-size:.85rem; color:var(--g500); font-weight:600; margin-bottom:22px;}

/* question */
.fb-q{text-align:center; font-family:'Poppins',sans-serif; font-size:clamp(1.15rem,2.5vw,1.45rem);
  font-weight:700; color:var(--g900); margin:0 auto 22px; max-width:580px; line-height:1.35;}
.fb-q .kicker{display:block; font-family:'Montserrat',sans-serif; font-size:.78rem; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase; color:var(--teal); margin-bottom:8px;}

/* likert scale */
.fb-scale-labels{display:flex; justify-content:space-between; max-width:560px; margin:0 auto 12px;
  font-size:.8rem; color:var(--g500); font-weight:600;}
.fb-scale{display:flex; justify-content:center; gap:18px; flex-wrap:wrap; margin:0 auto 8px; max-width:560px;}
.fb-scale-opt{position:relative;}
.fb-scale-opt input{position:absolute; opacity:0; pointer-events:none;}
.fb-scale-btn{display:flex; align-items:center; justify-content:center; min-width:64px; height:54px; padding:0 8px;
  border:2px solid var(--g300); border-radius:var(--r-pill); background:var(--white); font-weight:700;
  font-size:1.05rem; color:var(--g600); cursor:pointer; transition:all .15s ease;}
.fb-scale-btn:hover{border-color:var(--teal); background:rgba(44,193,208,.05);}
.fb-scale-opt input:checked + .fb-scale-btn{border-color:var(--teal); background:var(--teal); color:#fff; box-shadow:0 4px 12px rgba(44,193,208,.3);}

/* choice cards (modality / strengths) */
.fb-choices{display:grid; grid-template-columns:1fr 1fr; gap:12px; max-width:620px; margin:0 auto;}
.fb-choice{display:flex; align-items:center; gap:12px; text-align:left; padding:16px 18px; border:2px solid var(--g300);
  border-radius:var(--r); background:var(--white); cursor:pointer; transition:all .15s ease; font-size:.98rem;
  font-weight:600; color:var(--g700); width:100%;}
.fb-choice:hover{border-color:var(--teal); background:rgba(44,193,208,.04); transform:translateY(-1px);}
.fb-choice.is-sel{border-color:var(--teal); background:rgba(44,193,208,.08); box-shadow:0 4px 14px rgba(44,193,208,.18);}
.fb-choice .ico{flex-shrink:0; width:40px; height:40px; border-radius:12px; display:flex; align-items:center;
  justify-content:center; background:rgba(44,193,208,.12); color:var(--deep); font-size:1.1rem;}
.fb-choice.is-sel .ico{background:var(--teal); color:#fff;}

/* this/that (dials) */
.fb-thisthat{display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:620px; margin:0 auto;}
.fb-tt{padding:22px 18px; border:2px solid var(--g300); border-radius:var(--r-lg); background:var(--white);
  cursor:pointer; text-align:center; font-weight:700; color:var(--g700); transition:all .15s ease; font-size:1.02rem;}
.fb-tt:hover{border-color:var(--coral); background:rgba(248,121,96,.05); transform:translateY(-2px);}
.fb-tt.is-sel{border-color:var(--coral); background:rgba(248,121,96,.08); box-shadow:0 6px 18px rgba(248,121,96,.18);}

/* buttons */
.fb-actions{display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:26px;}
.fb-btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; border:none; cursor:pointer;
  border-radius:var(--r-pill); font-family:'Montserrat',sans-serif; font-weight:800; font-size:1rem;
  padding:14px 28px; transition:all .15s ease;}
.fb-btn--secondary{background:var(--grad-coral); color:#fff; box-shadow:0 4px 15px rgba(248,121,96,.25);}
.fb-btn--secondary:hover:not([disabled]){transform:translateY(-2px); box-shadow:0 6px 20px rgba(248,121,96,.35);}
.fb-btn--primary{background:var(--grad-purple); color:#fff; box-shadow:var(--sh-purple);}
.fb-btn--primary:hover:not([disabled]){transform:translateY(-2px); box-shadow:0 12px 35px rgba(248,121,96,.4);}
.fb-btn--ghost{background:var(--white); color:var(--g700); border:2px solid var(--border);}
.fb-btn--ghost:hover:not([disabled]){border-color:var(--g400); background:var(--page);}
.fb-btn--big{font-size:1.1rem; padding:16px 36px;}
.fb-btn[disabled]{opacity:.5; cursor:not-allowed; transform:none!important;}
.fb-linkbtn{background:none; border:none; color:var(--royal); font-weight:700; cursor:pointer; font-size:.95rem;
  text-decoration:underline; font-family:'Montserrat',sans-serif; margin-top:14px;}

/* screens */
.fb-screen{display:none;}
.fb-screen.is-active{display:block; animation:fbfade .3s ease;}
@keyframes fbfade{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;}}

/* intro mode toggle / setup */
.fb-toggle{display:grid; grid-template-columns:1fr 1fr; gap:12px; max-width:560px; margin:0 auto 8px;}
.fb-toggle .fb-tt{font-size:.98rem;}
.fb-field{text-align:left; max-width:420px; margin:0 auto 14px;}
.fb-field label{display:block; font-weight:700; font-size:.9rem; color:var(--g700); margin-bottom:6px;}
.fb-input,.fb-select{width:100%; padding:13px 15px; border:2px solid var(--border); border-radius:var(--r);
  font-family:'Montserrat',sans-serif; font-size:1rem; color:var(--g900); background:var(--white);}
.fb-input:focus,.fb-select:focus{outline:none; border-color:var(--teal);}

/* result bars */
.fb-bars{max-width:520px; margin:0 auto 8px; text-align:left;}
.fb-bar{margin-bottom:14px;}
/* printable learning-type poster (2026-09-29) */
#fbPoster{display:none;}
@media print{
  body.fb-print-poster > *:not(#fbPoster){display:none !important;}
  body.fb-print-poster #fbPoster{display:block !important;}
  html:has(body.fb-print-poster),body.fb-print-poster{background:#fff !important;background-image:none !important;}
  body.fb-print-poster .fb-poster *{animation:none !important;transition:none !important;}
  body.fb-print-poster .fb-poster .fb-pcard,body.fb-print-poster .fb-poster .fb-pcard *{opacity:1 !important;visibility:visible !important;}
  @page{size:letter portrait;margin:0.25in;}   /* 2026-10-09: poster fills the page (Brandon) */
}
.fb-poster{font-family:'Figtree',system-ui,sans-serif;color:#12303a;text-align:center;border:6px solid var(--fam,#0b3c49);border-radius:32px;padding:28px 38px;height:10.48in;width:100%;-webkit-print-color-adjust:exact;print-color-adjust:exact;overflow:hidden;box-sizing:border-box;display:flex;flex-direction:column;break-inside:avoid;page-break-inside:avoid;background:#fff;}
.fb-poster h1{font:800 52px/1 'Bricolage Grotesque','Figtree',sans-serif;color:#0b3c49;margin:6px 0 0;}
.fb-poster .pp-kicker{font:700 16px 'Figtree',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--fam,#0b3c49);}
.fb-poster .fb-pcard{width:5.3in;max-width:none;margin:0 auto;}
.fb-poster ul{align-content:start;}
.fb-poster--coloring .pp-foot img{filter:grayscale(1);}
.fb-poster .pp-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;text-align:left;}
.fb-poster .pp-cols ul{max-width:none;margin:0;width:100%;}
.fb-poster--coloring .fb-pbase{filter:none !important;}
.fb-poster--coloring .fb-pbadge{border-color:#111 !important;box-shadow:none !important;background:#fff !important;}
.fb-poster--coloring li{background:#fff !important;border:2px solid #111;}
.fb-poster--coloring{border-color:#111 !important;}
.fb-poster--coloring .fb-pbanner text{fill:#111 !important;}
.fb-poster--coloring .pp-kicker{color:#111 !important;}
/* 2026-10-01 (Brandon): coloring pages are monochrome: every bit of text black */
.fb-poster--coloring h1,.fb-poster--coloring h2,.fb-poster--coloring li,.fb-poster--coloring li b,.fb-poster--coloring .pp-verse,.fb-poster--coloring .pp-foot{color:#000 !important;}
.fb-poster h2{font:800 22px 'Bricolage Grotesque','Figtree',sans-serif;color:#0b3c49;margin:8px 0 6px;}
/* 2026-10-01 (Brandon): kid pages in M2H Math's Baloo 2 (name, headings, label, banner) */
.fb-poster h1{font:800 60px/1 'Baloo 2','Bricolage Grotesque',sans-serif;}
.fb-poster h2{font:800 26px/1.15 'Baloo 2','Bricolage Grotesque',sans-serif;}
.fb-poster .pp-kicker{font:700 18px 'Baloo 2','Figtree',sans-serif;letter-spacing:.08em;}
.fb-poster .fb-pbanner text{font-family:'Baloo 2','Poppins',sans-serif;font-weight:800;}
/* coloring page: the name and banner letters are hollow outlines, drawn by an SVG filter (grow the letter shapes, cut the letters
   out) so the font's overlapping inner pieces never show as stray lines (10/10). Earlier: centers were transparent/none, not white:
   with "Background graphics" off, Chrome darkens light text for paper and filled the white letters in (Brandon, 10/9). */
.fb-poster--coloring h1{color:#000 !important;-webkit-text-stroke:0;filter:url(#fbHollowName);}
.fb-poster--coloring .fb-pbanner text{fill:#000 !important;stroke:none !important;filter:url(#fbHollowBanner);}
.fb-poster ul{list-style:none;margin:0 auto;padding:0;max-width:5.6in;text-align:left;display:grid;gap:6px;}
.fb-poster li{font-size:17px;line-height:1.3;padding:6px 14px;border-radius:14px;background:#eef5f2;}
.fb-poster .pp-verse{margin:auto 0 0;padding-top:10px;font-style:italic;font-size:16px;color:#4f6b73;}
.fb-poster .pp-foot{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:10px;font-size:13px;color:#4f6b73;}
.fb-poster .pp-foot img{height:34px;width:auto;}
.fb-err{margin:6px 0 0;color:#b42318;font-size:.88rem;font-weight:600;text-align:left;}
/* locked teaser (mandatory opt-in, 2026-09-29) */
.fb-bar--locked .fb-bar__meta span{color:var(--g400);}
.fb-bar--locked .fb-bar__track{background:repeating-linear-gradient(135deg,#eef2f4 0 8px,#e3e9ec 8px 16px);}
.fb-locked{max-width:520px;margin:10px auto 4px;padding:18px 20px;border:2px dashed #cfdde1;border-radius:18px;background:#f6fafb;text-align:left;}
.fb-locked h4{margin:0 0 8px;font-size:1rem;color:var(--g700);display:flex;align-items:center;gap:8px;}
.fb-locked ul{margin:0;padding-left:1.1em;color:var(--g600);font-size:.95rem;line-height:1.6;}
.fb-saved{max-width:520px;margin:0 auto 14px;padding:12px 16px;border-radius:14px;background:#e6f6ee;color:#14532d;font-weight:600;text-align:center;}
.fb-bar__meta{display:flex; justify-content:space-between; font-weight:700; font-size:.9rem; margin-bottom:6px; color:var(--g700);}
.fb-bar__track{width:100%; height:12px; background:var(--g200); border-radius:var(--r-pill); overflow:hidden;}
.fb-bar__fill{height:100%; width:0%; background:var(--grad-primary); border-radius:var(--r-pill); transition:width .8s ease;}
.fb-bar--coral .fb-bar__fill{background:var(--grad-coral);}

/* dial spectrums */
.fb-dials{max-width:560px; margin:0 auto;}
.fb-dial{margin-bottom:20px; text-align:left;}
.fb-dial__ends{display:flex; justify-content:space-between; font-size:.82rem; font-weight:700; color:var(--g500); margin-bottom:6px;}
.fb-dial__ends .on{color:var(--deep);}
.fb-dial__track{position:relative; height:10px; background:linear-gradient(90deg,rgba(44,193,208,.25),rgba(248,121,96,.25));
  border-radius:var(--r-pill);}
.fb-dial__dot{position:absolute; top:50%; width:22px; height:22px; border-radius:50%; background:#fff;
  border:4px solid var(--royal); transform:translate(-50%,-50%); box-shadow:var(--sh); transition:left .8s ease;}
.fb-dial__cap{font-size:.85rem; color:var(--g600); margin-top:8px;}

/* result hero */
.fb-rhero{text-align:center; margin-bottom:8px;}
.fb-rhero .spark{font-size:1.8rem; color:var(--coral); animation:fbpulse 1s ease infinite;}
@keyframes fbpulse{0%,100%{transform:scale(1);}50%{transform:scale(1.12);}}
.fb-rname{font-family:'Poppins',sans-serif; font-size:clamp(1.4rem,3vw,1.9rem); font-weight:900; color:var(--g900);}
.fb-rname--grad{background:var(--grad-primary); -webkit-background-clip:text; background-clip:text; color:transparent;}
.fb-rdesc{max-width:560px; margin:8px auto 22px; color:var(--g600); font-size:1.02rem;}

/* chips */
.fb-chips{display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:14px auto;}
.fb-chip{padding:7px 14px; border-radius:var(--r-pill); background:rgba(245,158,11,.12); color:#92400e;
  font-weight:700; font-size:.85rem; display:inline-flex; gap:6px; align-items:center;}

/* disclaimer / note */
.fb-note{background:linear-gradient(135deg,rgba(44,193,208,.08),rgba(29,78,216,.08)); border-left:4px solid var(--teal);
  border-radius:0 var(--r) var(--r) 0; padding:16px 20px; margin:20px auto; max-width:600px; text-align:left;
  font-size:.92rem; color:var(--g700);}
.fb-note strong{color:var(--deep);}

/* benefits / gate */
.fb-benefits{background:var(--page); border-radius:var(--r); padding:18px 22px; margin:0 auto 22px; max-width:520px; text-align:left;}
.fb-benefits h4{font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; color:var(--g700); margin-bottom:10px;}
.fb-benefits ul{list-style:none; margin:0; padding:0; display:grid; gap:9px;}
.fb-benefits li{display:flex; gap:10px; align-items:flex-start; font-size:.94rem; color:var(--g700);}
.fb-benefits i{color:var(--success); margin-top:3px;}
.fb-form-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.fb-check{display:flex; gap:12px; align-items:flex-start; text-align:left; margin:14px auto; max-width:520px;}
.fb-check input{width:20px; height:20px; margin-top:2px; accent-color:var(--teal); flex-shrink:0;}
.fb-check label{font-size:.88rem; color:var(--g600); line-height:1.5; cursor:pointer;}
.fb-privacy{text-align:center; color:var(--g500); font-size:.83rem; margin-top:14px;}
.fb-hint{display:none; color:#dc2626; font-size:.85rem; margin-top:6px; text-align:center;}

/* report */
.fb-report{}
.fb-fit{text-align:center; padding:26px 22px; border-radius:var(--r-xl); color:#fff; margin-bottom:24px;
  background:var(--grad-primary);}
.fb-fit--great{background:var(--grad-primary);} .fb-fit--good{background:var(--grad-warm);}
.fb-fit--comp{background:var(--grad-purple);}
.fb-fit .lbl{font-size:.8rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; opacity:.9;}
.fb-fit h3{font-size:clamp(1.4rem,3vw,1.9rem); font-weight:900; margin:6px 0 10px;}
.fb-fit p{max-width:620px; margin:0 auto; opacity:.96; font-size:1rem;}
.fb-twocol{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:24px;}
.fb-mini{background:var(--page); border:1px solid var(--border); border-radius:var(--r-lg); padding:18px 20px; text-align:left;}
.fb-mini .tag{font-size:.74rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--teal);}
.fb-mini h4{font-size:1.15rem; margin:4px 0 6px; color:var(--g900);}
.fb-mini p{font-size:.92rem; color:var(--g600); margin:0;}
.fb-block{margin-bottom:24px; text-align:left;}
.fb-block > h3{font-size:1.25rem; color:var(--g900); margin-bottom:14px; display:flex; align-items:center; gap:10px;}
.fb-block > h3 i{color:var(--teal);}
.fb-tiplist{display:grid; gap:12px;}
.fb-tip{display:flex; gap:14px; padding:16px 18px; border-radius:var(--r); background:var(--white);
  border:1px solid var(--border); box-shadow:var(--sh-sm);}
.fb-tip .ic{flex-shrink:0; width:38px; height:38px; border-radius:11px; display:flex; align-items:center;
  justify-content:center; font-size:1rem;}
.fb-tip--win .ic{background:rgba(16,185,129,.12); color:var(--success);}
.fb-tip--watch .ic{background:rgba(245,158,11,.14); color:#b45309;}
.fb-tip--do .ic{background:rgba(44,193,208,.12); color:var(--deep);}
.fb-tip--next .ic{background:rgba(29,78,216,.1); color:var(--royal);}
.fb-tip p{margin:0; font-size:.95rem; color:var(--g700);}
.fb-tip p strong{color:var(--g900);}
.fb-tip .fix{display:block; margin-top:6px; font-size:.9rem; color:var(--g600);}
.fb-tip .fix b{color:var(--coral);}

/* verse */
.fb-verse{text-align:center; font-style:italic; color:var(--g600); max-width:600px; margin:8px auto 0;
  padding:18px; border-top:1px solid var(--border);}
.fb-verse cite{display:block; font-style:normal; font-weight:700; color:var(--deep); margin-top:6px; font-size:.85rem;}

/* social proof */
.fb-proof{text-align:center; padding:26px 0; color:var(--g600); font-size:.95rem;}
.fb-proof i{color:var(--coral); margin-right:6px;}
.fb-proof strong{color:var(--g800);}

/* spinner / error */
.fb-spin{display:none; width:18px; height:18px; border:3px solid rgba(255,255,255,.3); border-top-color:#fff;
  border-radius:50%; animation:fbspin .8s linear infinite;}
@keyframes fbspin{to{transform:rotate(360deg);}}
#fbError{display:none; text-align:center; padding:24px; color:#dc2626; font-weight:600;}

/* responsive */
@media (max-width:640px){
  .fb-choices{grid-template-columns:1fr;}
  .fb-twocol{grid-template-columns:1fr;}
  .fb-form-row{grid-template-columns:1fr;}
  .fb-scale-btn{min-width:52px; height:46px; font-size:.95rem;}
  .fb-scale{gap:8px;}
  .fb-card{padding:20px 16px;}
  .fb-toggle{grid-template-columns:1fr;}
  .fb-thisthat{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  .fb-rhero .spark{animation:none!important;} .fb *{transition-duration:.01ms!important;}
  .fb-char,.fb-char--sm,.fb-report .fb-block{animation:none!important;}
}

/* fun layer: characters + motion */
.fb-char{width:130px;height:130px;margin:0 auto 6px;display:flex;align-items:center;justify-content:center;animation:fbpop .5s ease both, float 3s ease-in-out .5s infinite;}
.fb-char img{width:130px;height:130px;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.16));}
.fb-char--icon{border-radius:50%;background:var(--grad-primary);box-shadow:0 10px 26px rgba(29,78,216,.28);}
.fb-char--icon i{font-size:3.4rem;color:#fff;}
.fb-char--sm{width:60px;height:60px;margin:0 0 8px;animation:fbpop .5s ease both;}
.fb-char--sm img{width:60px;height:60px;object-fit:contain;}
.fb-char--sm.fb-char--icon i{font-size:1.5rem;}
@keyframes fbpop{0%{transform:scale(.6);opacity:0;}60%{transform:scale(1.08);}100%{transform:scale(1);opacity:1;}}
@keyframes float{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}
@keyframes fbrise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

/* archetype family accents (brand palette) */
.fb-fam-planner{--fam:#1d4ed8;--fam-bg:rgba(29,78,216,.09);}
.fb-fam-builder{--fam:#005f73;--fam-bg:rgba(0,95,115,.09);}
.fb-fam-dreamer{--fam:#f56048;--fam-bg:rgba(248,121,96,.12);}
.fb-fam-tinkerer{--fam:#f59e0b;--fam-bg:rgba(245,158,11,.13);}
.fb-rname--fam{color:var(--fam,var(--deep));-webkit-background-clip:unset;background:none;}
.fb-typechips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:10px auto 4px;}
.fb-typechip{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:var(--r-pill);
  background:var(--fam-bg,rgba(44,193,208,.1));color:var(--fam,var(--deep));font-weight:800;font-size:.82rem;}
.fb-typechip img{width:22px;height:22px;object-fit:contain;}

/* persona reveal card (spec: art/ART-DIRECTION.md — badges + rings + curved SVG banner) */
.fb-pcard{position:relative;width:min(340px,86vw);margin:0 auto;}
.fb-pcard .fb-pbase{display:block;width:88%;margin:0 auto;filter:drop-shadow(0 10px 18px rgba(0,0,0,.14));}
.fb-pbadge{position:absolute;bottom:17%;width:26%;aspect-ratio:1;background:#fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;box-shadow:0 6px 14px rgba(20,40,60,.33);
  border:3px solid var(--fam,#1d4ed8);}
.fb-pbadge img{width:72%;height:72%;object-fit:contain;}
.fb-pbadge--l{left:2%;transform:rotate(-18deg);}
.fb-pbadge--r{right:2%;transform:rotate(18deg);}
.fb-pbanner{position:relative;z-index:2;display:block;width:86%;margin:-13% auto 0;
  filter:drop-shadow(0 6px 8px rgba(20,40,60,.35));}
.fb-pbanner text{font-family:'Poppins',sans-serif;font-weight:700;fill:#fff;}
.fb-pcard--sm{width:110px;}
.fb-pcard--sm .fb-pbadge{border-width:2px;box-shadow:0 3px 7px rgba(20,40,60,.3);}

/* confetti burst (one-shot, reduced-motion aware) */
.fb-conf{position:absolute;left:50%;top:42%;width:9px;height:9px;border-radius:2px;opacity:0;pointer-events:none;
  animation:fbconf 1.2s ease-out forwards;}
@keyframes fbconf{0%{opacity:0;transform:translate(0,0) rotate(0deg) scale(.6);}12%{opacity:1;}
  100%{opacity:0;transform:translate(var(--cx,0),var(--cy,-80px)) rotate(var(--cr,180deg)) scale(1);}}
@media (prefers-reduced-motion:reduce){.fb-conf{display:none!important;}}
.fb-report .fb-block{animation:fbrise .5s ease both;}
.fb-report .fb-block:nth-of-type(1){animation-delay:.04s;}.fb-report .fb-block:nth-of-type(2){animation-delay:.11s;}
.fb-report .fb-block:nth-of-type(3){animation-delay:.18s;}.fb-report .fb-block:nth-of-type(4){animation-delay:.25s;}
.fb-report .fb-block:nth-of-type(5){animation-delay:.32s;}.fb-report .fb-block:nth-of-type(6){animation-delay:.39s;}
.fb-choice--kid{font-size:1.08rem;padding:20px 18px;}
.fb-choice .ico .emoji{font-size:1.5rem;line-height:1;}
.fb-choice--kid .ico{width:46px;height:46px;}

/* print */
@media print{
  .fb-noprint{display:none!important;}
  .fb-card{box-shadow:none; width:100%; padding:0;}
  .fb-section{background:#fff; padding:0;}
  .fb-tip,.fb-mini{break-inside:avoid;}
  .fb-fit{-webkit-print-color-adjust:exact; print-color-adjust:exact;}
}

/* two doors (relaunch 2026-10): style only / style + kids */
.fb-doors{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; max-width:640px; margin:26px auto 14px;}
.fb-door{position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:6px; text-align:left; cursor:pointer;
  background:var(--white); border:2px solid var(--g200); border-radius:var(--r-lg); padding:22px 20px 18px; font:inherit; color:var(--g900);
  box-shadow:var(--sh-sm); transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;}
.fb-door:hover,.fb-door:focus-visible{transform:translateY(-2px); border-color:var(--teal); box-shadow:var(--sh); outline:none;}
.fb-door--map{border-color:rgba(29,78,216,.35);}
.fb-door--map:hover,.fb-door--map:focus-visible{border-color:var(--royal);}
.fb-door__ico{width:44px; height:44px; border-radius:14px; display:grid; place-items:center; font-size:1.2rem; color:#fff; background:var(--teal); margin-bottom:6px;}
.fb-door--map .fb-door__ico{background:var(--royal);}
.fb-door__t{font-family:'Poppins',sans-serif; font-weight:800; font-size:1.12rem; line-height:1.25;}
.fb-door__s{font-size:.92rem; color:var(--g600);}
.fb-door__go{margin-top:8px; font-weight:800; font-size:.92rem; color:var(--deep);}
.fb-door--map .fb-door__go{color:var(--royal);}
.fb-door__tag{position:absolute; top:14px; right:14px; background:#fff4e5; color:#92400e; font-weight:800; font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; padding:4px 10px; border-radius:var(--r-pill);}

/* boy/girl always side by side (2026-09-29) */
#csAvatar.fb-toggle{display:grid !important;grid-template-columns:1fr 1fr;gap:10px;margin-left:auto;margin-right:auto;}
.fb-poster .pp-cols li{width:100%;box-sizing:border-box;}

/* 2026-10-09: one button per child above the per-child part of the report */
.fb-kidswitch{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;margin:22px 0 16px;}
.fb-kidswitch span{font-weight:700;color:var(--g600);width:100%;text-align:center;}

/* 2026-10-10: printed family report (menu: whole family / one child). Each part on its own page; nothing splits. */
#fbPrintReport{display:none;}
.fb-printmenu{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;width:100%;margin:10px 0 0;}
@media print{
  body.fb-print-report > *:not(#fbPrintReport){display:none !important;}
  body.fb-print-report #fbPrintReport{display:block !important;background:#fff;padding:0;margin:0;max-width:none;box-shadow:none;}
  html:has(body.fb-print-report),body.fb-print-report{background:#fff !important;background-image:none !important;}
  #fbPrintReport *{animation:none !important;transition:none !important;}
  #fbPrintReport .pr-page{break-before:page;}
  #fbPrintReport .pr-page:first-child{break-before:auto;}
  #fbPrintReport .pr-map{height:10.2in;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden;}
  #fbPrintReport .pr-map svg{width:100% !important;height:auto !important;max-height:8.7in;}
  /* never split an element (tip, bar, slider, card); a section may continue between elements, heading kept with its first */
  #fbPrintReport .fb-tip,#fbPrintReport .fb-mini,#fbPrintReport .fb-fit,#fbPrintReport .fb-rhero,#fbPrintReport .fb-dial,
  #fbPrintReport .fb-twocol,#fbPrintReport .fb-bar,#fbPrintReport .fb-note,#fbPrintReport .fb-verse,#fbPrintReport .fb-famap{break-inside:avoid;}
  #fbPrintReport h2,#fbPrintReport h3,#fbPrintReport h4{break-after:avoid;}
  #fbPrintReport .fb-rhero .fb-pcard{width:2.5in;}
  /* reveal animations start invisible; with animations off they'd stay hidden (empty map page, 10/10) */
  #fbPrintReport *{opacity:1 !important;}
  /* fit each child into 1 to 2 pages, the style section onto one */
  #fbPrintReport .pr-child{zoom:0.72;}
  #fbPrintReport .pr-style,#fbPrintReport .pr-sibs{zoom:0.72;}
  #fbPrintReport, #fbPrintReport *{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}

/* 2026-10-10: ask boy/girl when a saved child has none */
.fb-askkind{border:2px solid var(--coral);border-radius:var(--r,16px);padding:14px 16px;margin:14px 0;background:var(--white,#fff);text-align:center;}
.fb-askkind p{margin:0 0 8px;}
.fb-askkind--nudge{box-shadow:0 0 0 4px rgba(248,121,96,.25);}

/* 2026-10-19: helper line under the kids' pick-one questions */
.fb-qhelp{text-align:center; color:var(--g600,#4f6b73); font-size:.92rem; margin:-6px auto 12px; max-width:520px;}
