/* Slide Practice — THE SCENE STYLESHEET (RUN 47). anim.js is the timing half.
   Scenes are positioned divs in BRAND.md's motif language: 1.5px ink strokes,
   one field fill each, hairlines, standard radii, no gradients. A scene is a
   DRAWING, aria-hidden, story in the caption beside it. */
.scene,.hero47{--rk:var(--radius-card);--rc:var(--radius-control);--hl:var(--hairline);--sr:var(--surface-raised);--fd:var(--font-display,inherit)}
.scene{margin:0;position:relative}
.sc-box{position:relative;aspect-ratio:var(--ar,4/3);background:var(--page);border:1px solid var(--hl);border-radius:var(--rk);overflow:hidden;box-shadow:var(--shadow-1);}
.sc-stage{position:absolute;inset:0;contain:layout paint;font-family:var(--font-ui,inherit);color:var(--ink);-webkit-font-smoothing:antialiased;}
.sc-fb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:calc(var(--rk) - 1px)}
.scene.is-still .sc-stage{display:none}
.sc-cap{margin-top:10px;font-size:var(--text-sm);line-height:1.5;color:var(--ink-muted);}
.sc-replay{display:none;position:absolute;right:10px;top:10px;z-index:6;align-items:center;gap:6px;padding:4px 12px;font:500 var(--text-xs)/1 var(--font-ui,inherit);letter-spacing:.02em;color:var(--ink-muted);background:transparent;border:1px solid var(--hl);border-radius:var(--radius-pill);cursor:pointer;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background-color var(--dur) var(--ease);}
.scene.is-live .sc-replay{display:inline-flex;background:var(--sr)}
.sc-replay:hover{color:var(--ink);border-color:var(--hairline-strong);background:var(--page)}
.sc-replay:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.sc-replay:active{color:var(--ink)}
.sc-replay::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--meadow-solid);flex:none}
/* 2. the alphabet */
.sc-stage *{box-sizing:border-box}
.sc-stage [data-a="wipe"]{transform-origin:0 50%}
.sc-stage [data-a="growy"]{transform-origin:50% 100%}
.sc-card{background:var(--sr);border:1px solid var(--hl);border-radius:var(--rk);padding:12px 14px;}
.sc-row{display:flex;align-items:center;gap:8px}
.sc-lbl{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--butter-deep);line-height:1}
.sc-lbl.is-ink{color:var(--ink-faint)}
.sc-t{font-size:12px;line-height:1.35;color:var(--ink-body)}
.sc-t.is-sm{font-size:10.5px;color:var(--ink-faint)}
/* display:block is load-bearing. `i` is inline, and height does not apply to an
   inline box, so every skeleton line NOT inside a flex parent collapsed to
   nothing: the hero recap sheet was an empty card from RUN 47 to RUN 48. */
.sc-skel{display:block;height:5px;border-radius:3px;background:var(--hl);width:100%}
.sc-skel.is-dark{background:var(--hairline-strong)}
.sc-skel.w9{width:90%}.sc-skel.w8{width:80%}.sc-skel.w7{width:70%}
.sc-skel.w6{width:60%}.sc-skel.w5{width:50%}.sc-skel.w4{width:40%}
.sc-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font-size:9.5px;line-height:1.4;border-radius:var(--radius-pill);border:1px solid var(--hl);color:var(--ink-body);background:var(--sr);white-space:nowrap;}
.sc-chip.is-on{background:var(--meadow-field);border-color:var(--meadow-deep);color:var(--meadow-deep)}
.sc-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;font-size:10.5px;font-weight:500;line-height:1.3;color:var(--butter-on);background:var(--butter-solid);border:1px solid var(--butter-deep);border-radius:var(--rc);}
.sc-btn.is-ghost{background:transparent;color:var(--ink);border-color:var(--hairline-strong)}
.sc-av{width:30px;height:30px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:12px;background:var(--surface-ink);color:var(--page);}
.sc-av.f-sky{background:var(--sky-solid);color:var(--sky-on)}
.sc-av.f-lilac{background:var(--lilac-solid);color:var(--lilac-on)}
.sc-av.f-leaf{background:var(--leaf-solid);color:var(--leaf-on)}
.sc-dot{width:6px;height:6px;border-radius:50%;background:var(--hairline-strong);flex:none}
.sc-tick{width:14px;height:14px;flex:none;color:var(--meadow-deep)}
.sc-tick svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.sc-cbox{width:12px;height:12px;flex:none;border:1.5px dashed var(--hairline-strong);border-radius:3px;position:relative}
.sc-cbox.is-done{border-style:solid;border-color:var(--meadow-deep)}
.sc-cbox.is-done::after{content:"";position:absolute;left:2px;top:2.5px;width:6px;height:3px;
  border-left:1.5px solid var(--meadow-deep);border-bottom:1.5px solid var(--meadow-deep);transform:rotate(-45deg)}
.sc-fill{position:absolute;inset:0;border-radius:inherit;background:var(--butter-field)}
.sc-fill.f-meadow{background:var(--meadow-field)}
.sc-cursor{position:absolute;left:0;top:0;width:10px;height:10px;border-radius:50%;background:var(--ink);opacity:.6;pointer-events:none;z-index:5;}
/* 3. the hero: ambient art behind, a FLAT paper overlay (--scrim) between, the
   copy on top at full ink. An overlay, which BRAND.md permits. */
.hero47{position:relative;min-height:100svh;display:flex;align-items:center;overflow:clip}
.hero47 > .wrap{position:relative;z-index:2;width:100%;padding-top:var(--sp-5,40px);padding-bottom:var(--sp-5,40px)}
.h47-art{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.h47-art .sc-stage{contain:layout paint}
.h47-veil{position:absolute;inset:0;z-index:1;pointer-events:none;background:var(--scrim)}
.h47-copy{max-width:44rem}
.hero47 .trust-strip{margin-top:var(--sp-4)}
/* Ghosting is on the five GROUPS, not the parts inside, so no two opacities
   multiply, and under reduce or with JS off this layer is still the assembled
   composition at --scene-idle. */
.h47-art .amb-mark,.h47-art .amb-week,.h47-art .amb-book,
.h47-art .amb-sheet,.h47-art .amb-portal,.h47-art .amb-find{opacity:var(--scene-idle)}
/* --k is how big the drawing is drawn. The founder's Chrome renders at 67 to 80
   percent, so art tuned at 1440 is two thirds the size there. It scales with the
   viewport and the stroke with it: a 1.5px line at 22 percent opacity seen at 70
   percent zoom is not a line. */
.h47-art{--k:1.2;--amb-s:2px}
@media (min-width:1400px){.h47-art{--k:1.4;--amb-s:2.5px}}
@media (min-width:1700px){.h47-art{--k:1.66;--amb-s:3px}}
/* BRAND.md's 512 grid at 132px: pills 200x76 r38 at (196,118) meadow,
   (156,218) butter, (116,318) coral, x 132/512. Never redrawn by eye. */
.amb-mark{position:absolute;right:7%;top:9%;width:calc(132px*var(--k));height:calc(132px*var(--k))}
.amb-bar{position:absolute;width:calc(52px*var(--k));height:calc(20px*var(--k));border-radius:calc(10px*var(--k))}
.amb-bar.b1{left:calc(51px*var(--k));top:calc(30px*var(--k));background:var(--meadow-solid)}
.amb-bar.b2{left:calc(40px*var(--k));top:calc(56px*var(--k));background:var(--butter-solid)}
.amb-bar.b3{left:calc(30px*var(--k));top:calc(82px*var(--k));background:var(--coral-solid)}
.amb-week{position:absolute;right:7%;top:33%;display:flex;gap:calc(9px*var(--k))}
.amb-day{width:calc(38px*var(--k));height:calc(52px*var(--k));border:var(--amb-s) solid var(--ink);border-radius:calc(10px*var(--k));display:flex;align-items:flex-end;justify-content:center;padding-bottom:calc(8px*var(--k));background:var(--surface-sunk)}
.amb-day .sc-dot{background:var(--meadow-solid);width:calc(7px*var(--k));height:calc(7px*var(--k))}
.amb-day.is-today{background:var(--meadow-field);border-color:var(--meadow-deep)}
.amb-book{position:absolute;right:8%;bottom:12%;width:calc(212px*var(--k))}
.amb-slot{height:calc(22px*var(--k));border:var(--amb-s) solid var(--ink);border-radius:calc(8px*var(--k));margin-bottom:calc(7px*var(--k));position:relative;overflow:hidden;background:var(--surface-sunk)}
.amb-slot .sc-fill{background:var(--butter-solid)}
.amb-sheet{position:absolute;left:53%;top:19%;width:calc(210px*var(--k))}
.amb-portal{position:absolute;left:53%;bottom:14%;width:calc(206px*var(--k))}
/* The sixth beat, the one the headline is about: a practitioner found in the
   directory, identity verified, booked. All of it is shipped, so nothing here
   depicts a capability the product lacks. It fills the 55 to 80 percent band
   that read as blank cream at 1820 and 2133. */
.amb-find{position:absolute;display:none;left:auto;right:4%;top:52%;width:calc(215px*var(--k));flex-direction:column;gap:calc(9px*var(--k))}
/* Three arrangements: a fixed one either overlaps itself on a small laptop or
   hugs the bleed on a wide screen. Checked box against box at 1024 to 2133.
   901 to 1023: the week and the recap only. 1024 to 1399: five in one right
   column. 1400 up: two columns, all six. */
@media (max-width:1023px){.amb-mark,.amb-book,.amb-portal{display:none}}
@media (min-width:901px){
 .amb-mark{left:auto;right:4%;top:6%}
 .amb-week{left:auto;right:4%;top:28%}
 .amb-sheet{left:auto;right:4%;top:36%}
 .amb-book{left:auto;right:4%;bottom:18%}
 .amb-portal{left:auto;right:4%;bottom:2%}
}
@media (max-width:1023px){.amb-week{top:30%}.amb-sheet{top:52%}}
@media (min-width:1400px){
 .amb-find{display:flex;right:5%;top:32%}
 .amb-mark{left:49%;right:auto;top:8%}
 .amb-week{right:5%;top:10%}
 .amb-sheet{left:52%;right:auto;top:32%}
 .amb-book{left:52%;right:auto;bottom:12%}
 .amb-portal{left:auto;right:5%;bottom:12%}
}
.amb-find .af-row{display:flex;align-items:center;gap:calc(10px*var(--k))}
.amb-find .af-av{width:calc(34px*var(--k));height:calc(34px*var(--k));border-radius:50%;flex:none;background:var(--sky-solid)}
.amb-find .af-lines{flex:1;display:flex;flex-direction:column;gap:calc(6px*var(--k))}
.amb-find .af-chip{height:calc(18px*var(--k));width:calc(96px*var(--k));border-radius:var(--radius-pill);background:var(--meadow-field);border:var(--amb-s) solid var(--meadow-deep)}
.amb-find .af-btn{height:calc(24px*var(--k));width:calc(70px*var(--k));border-radius:var(--rc);background:var(--butter-solid);border:var(--amb-s) solid var(--butter-deep)}
.amb-find .af-foot{display:flex;align-items:center;gap:calc(9px*var(--k))}
/* Under a 26 percent paper scrim a hairline reaches the eye at a tenth of its
   contrast, so the hero draws in ink tints instead: the only reason it survives
   being ghosted AND viewed at 70 percent zoom. */
.h47-art .sc-skel{height:calc(6px*var(--k));background:var(--ink-faint)}
.h47-art .sc-skel.is-dark{background:var(--ink)}
.h47-art .sc-dot{background:var(--meadow-solid)}
.h47-art .sc-cbox{border-width:var(--amb-s);border-color:var(--ink-faint)}
.h47-art .sc-tick{width:calc(16px*var(--k));height:calc(16px*var(--k))}
.h47-art .sc-cbox{width:calc(14px*var(--k));height:calc(14px*var(--k))}
.h47-art .sc-card{border:var(--amb-s) solid var(--ink);background:var(--surface-sunk);padding:calc(12px*var(--k)) calc(14px*var(--k))}
/* One field fill per object, and each object keeps the same one everywhere:
   the recap sheet is sky, the client portal is lilac, the directory card is
   leaf. Butter stays where BRAND.md puts it, on the thing you press. */
.h47-art .amb-sheet{background:var(--sky-field)}
.h47-art .amb-portal{background:var(--lilac-field);border:var(--amb-s) solid var(--ink);border-radius:var(--rk);padding:calc(12px*var(--k)) calc(14px*var(--k))}
.h47-art .amb-find{background:var(--leaf-field);border:var(--amb-s) solid var(--ink);border-radius:var(--rk);padding:calc(12px*var(--k)) calc(14px*var(--k))}
.h47-grid{display:block}
/* six stages are one centred column: said once */
.sc-s1,.sc-s2,.sc-s4,.sc-s7,.sc-s8,.sc-s9{display:flex;flex-direction:column;justify-content:center}
/* 4. S1 the directory */
.sc-s1{padding:16px 18px;gap:10px}
.s1-filters{display:flex;gap:6px;flex-wrap:wrap}
.s1-list{display:flex;flex-direction:column;gap:9px;margin-top:2px;flex:1}
.s1-card{position:relative;display:flex;gap:10px;align-items:center;flex:1;padding:10px 12px;background:var(--sr);border:1px solid var(--hl);border-radius:var(--rk)}
.s1-card.is-pick{border-color:var(--hairline-strong);box-shadow:var(--shadow-2)}
.s1-meta{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}
.s1-rate{font-size:10px;color:var(--ink-faint)}
.s1-book{position:absolute;right:12px;bottom:10px}
/* 5. S2 booking: no card form, no processing UI, ever */
.sc-s2{padding:14px 18px;gap:9px}
.s2-rates{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.s2-rate{position:relative;overflow:hidden;padding:8px 9px;border:1.5px solid var(--hl);border-radius:var(--rc);text-align:left}
.s2-rate.is-sel{border-color:var(--ink)}
.s2-rate > *{position:relative}
.s2-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.s2-day{height:19px;border-radius:6px;border:1px solid var(--hl);position:relative;overflow:hidden}
.s2-times{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.s2-slot{position:relative;overflow:hidden;height:24px;border:1.5px solid var(--hl);border-radius:var(--rc);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--ink-body)}
.s2-slot span{position:relative}
.s2-pay{display:flex;align-items:center;gap:7px;margin-top:2px}
/* 6. S3 the write-up doing itself */
.sc-s3{padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.s3-wave{display:flex;align-items:flex-end;gap:3px;height:26px;flex:none;padding:0 2px}
.s3-wave i{flex:1;background:var(--meadow-solid);border-radius:2px;transform-origin:50% 100%;height:55%}
.s3-wave i:nth-child(6n+1){height:38%}
.s3-wave i:nth-child(6n+2){height:82%}
.s3-wave i:nth-child(6n+3){height:60%}
.s3-wave i:nth-child(6n+4){height:100%}
.s3-wave i:nth-child(6n+5){height:46%}
.s3-wave i:nth-child(6n){height:70%}
.s3-sheet{position:relative;flex:1;min-height:0;background:var(--sr);border:1px solid var(--hl);border-radius:var(--rk);padding:10px 12px;display:flex;flex-direction:column;justify-content:center;gap:5px;box-shadow:var(--shadow-artifact)}
.s3-sheet::after{content:"";position:absolute;left:8px;right:8px;bottom:-5px;height:6px;background:var(--sr);border:1px solid var(--hl);border-top:0;border-radius:0 0 var(--rk) var(--rk);z-index:-1}
.s3-bul{display:flex;align-items:center;gap:7px}
.s3-bul .sc-dot{background:var(--butter-solid)}
.s3-send{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:none}
/* 7. S4 the client portal */
.sc-s4{padding:16px 18px;gap:10px}
.s4-rows{display:flex;flex-direction:column;gap:8px}
.sc-s4 .sc-chip{align-self:flex-start}
.s4-row{display:flex;align-items:center;gap:9px;padding:9px 11px;background:var(--sr);border:1px solid var(--hl);border-radius:var(--rc)}
.s4-row .sc-skel{flex:1}
/* 8. S5 the money odometers */
.sc-s5{padding:18px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.s5-row{display:flex;align-items:baseline;gap:10px}
/* The column RESTS on its final value: a still reads 15, not 0. */
.sc-odow{display:inline-block;overflow:hidden;height:1em;vertical-align:bottom}
.s5-n{font-family:var(--fd);font-size:34px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.sc-odo{display:block;transform:translateY(calc(-100% + 1em))}
.sc-odo i{display:block;height:1em;line-height:1;font-style:normal}
.s5-u{font-size:11px;color:var(--ink-muted)}
.s5-price{align-self:flex-start;position:relative;overflow:hidden;padding:8px 14px;border-radius:var(--rc);border:1.5px solid var(--butter-deep)}
.s5-price span{position:relative;font-family:var(--fd);font-size:24px;color:var(--ink)}
/* 9. S6 the founding ident */
.sc-s6{display:flex;align-items:center;padding:20px 22px}
.s6-mark{position:absolute;right:9%;top:18%;width:132px;height:132px;opacity:var(--scene-idle)}
.s6-plan{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.s6-cap{font-family:var(--fd);font-size:42px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
/* 10. S8 the day-one dashboard */
.sc-s8{padding:16px 18px;gap:11px}
.s8-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.s8-tile{display:flex;flex-direction:column;gap:3px;padding:10px 11px;background:var(--sr);border:1px solid var(--hl);border-radius:var(--rc)}
.s8-n{font-family:var(--fd);font-size:24px;line-height:1;color:var(--ink)}
.s8-next{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:11px 12px;background:var(--surface-sunk);border-radius:var(--rc)}
.s8-next .sc-skel{width:100%}
/* 11. S7 Growth: no numeric outcome claims, ever */
.sc-s7{padding:16px 18px;gap:11px}
.s7-dial{position:relative;height:8px;border-radius:4px;background:var(--surface-sunk);overflow:hidden}
.s7-dial i{position:absolute;inset:0;width:38%;background:var(--butter-solid);border-radius:4px;transform-origin:0 50%}
.s7-reach{display:flex;align-items:flex-end;gap:6px;height:44px}
.s7-reach i{flex:1;background:var(--lilac-field);border:1px solid var(--lilac-deep);border-radius:3px 3px 0 0;transform-origin:50% 100%}
.s7-lead{display:flex;align-items:center;gap:9px;padding:9px 11px;background:var(--sr);border:1px solid var(--hl);border-radius:var(--rc)}
/* 11b. S10 the Pro plan, for the /pricing hero. It replaced a screenshot of the
   compare-plans legal panel, which is what the founder was looking at when he
   said the first page was selling fine print. */
.sc-s10{padding:16px 18px;display:flex;flex-direction:column;justify-content:center;gap:9px}
.s10-top{display:flex;align-items:center;gap:11px}
.s10-rows{display:flex;flex-direction:column;gap:7px;margin-top:2px}
/* 12. S9 the week, for /demo */
.sc-s9{padding:16px 18px;gap:12px}
.s9-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.s9-day{display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px 0;border:1.5px solid var(--hl);border-radius:10px}
.s9-day.is-today{background:var(--meadow-field);border-color:var(--meadow-deep)}
.s9-day .sc-dot{background:var(--meadow-solid)}
.s9-next{display:flex;align-items:center;gap:9px;padding:10px 11px;background:var(--sr);border:1px solid var(--hl);border-radius:var(--rc)}
.s9-next .sc-skel{flex:1}
/* 13. variants */
.scene.is-tall .sc-box{--ar:5/4}
.scene.is-tall .sc-cap{font-size:var(--text-sm)}
.scene.is-compact .sc-box{--ar:5/4}
.scene.is-portrait .sc-box{--ar:4/5}
.scene.is-compact .sc-stage{font-size:.94em}
.scene.is-compact .sc-s1,.scene.is-compact .sc-s2,
.scene.is-compact .sc-s3,.scene.is-compact .sc-s4,
.scene.is-compact .sc-s7{padding:12px 13px;gap:7px}
/* 14. viewports. On a phone the art becomes a BAND under the copy: behind a
   3-line headline at 390 no space is not text. Beats 2 and 4 survive. */
@media (max-width:900px){.amb-mark,.amb-book,.amb-portal,.amb-find{display:none}.h47-art{top:auto;bottom:0;height:176px}.amb-week{right:auto;left:50%;transform:translateX(-50%);top:10px;gap:6px}.amb-day{width:32px;height:40px;padding-bottom:6px}.amb-sheet{left:50%;margin-left:-120px;top:66px;bottom:auto;width:240px;padding:9px 11px}.amb-sheet i:nth-child(n+6){display:none}.amb-sheet .sc-btn{display:none}.hero47{min-height:auto;padding:var(--sp-5,40px) 0 194px}.h47-copy{max-width:none}.h47-veil{top:auto;bottom:0;height:176px}}
@media (max-width:900px){.faqband .fb-art .scene + .scene,.faqband .fb-art .scene + .cropshot,.faqband .fb-art .cropshot + .scene{display:none}.uspband .scene .sc-cap{display:none}}
@media (max-width:720px){.sc-box{--ar:16/10}.scene.is-compact .sc-box{--ar:16/10}.scene.is-tall .sc-box{--ar:16/10}.scene.is-portrait .sc-box{--ar:16/10}.sc-stage{font-size:.92em}.s2-times{grid-template-columns:repeat(3,1fr)}.sc-cursor{display:none}.s5-n{font-size:28px}.s6-cap{font-size:34px}.s6-mark{right:4%;top:12%}}
/* 14b. RUN 48: THE DRAWING FILLS ITS CARD. A scene rests on its final frame, so
   that frame is what almost everyone sees. Stages drawn in fixed px inside a box
   sized from the COLUMN width filled a narrow card and floated in a wide one:
   S8 was 33 percent blank above AND below. run48-density.mjs fails over 25
   percent. Blocks now grow into the space instead of huddling. */
.sc-s2,.sc-s4,.sc-s6,.sc-s7,.sc-s8,.sc-s9,.sc-s10{justify-content:space-between}
.sc-s10 .s10-rows{flex:1 1 auto;justify-content:space-between}
.sc-s10 .s5-row{flex:0 0 auto}
.sc-s2 .s2-rates,.sc-s2 .s2-times{align-items:stretch}
.sc-s2 .s2-days,.sc-s2 .s2-times,.sc-s2 .s2-rates{flex:1 1 auto}
.s2-day{height:auto;min-height:19px}
.s2-slot{height:auto;min-height:24px}
.s2-rate{display:flex;flex-direction:column;justify-content:center}
.sc-s4 .s4-rows{flex:1 1 auto;justify-content:space-between}
.sc-s4 .s4-row{flex:1 1 auto}
.sc-s6{align-items:stretch}
.sc-s6 .s6-plan{flex:1 1 auto;justify-content:space-between}
.sc-s7 .s7-reach{flex:1 1 auto;height:auto;min-height:44px}
.sc-s7 .s7-lead{flex:0 0 auto}
.sc-s8 .s8-tiles{flex:1 1 auto}
.sc-s8 .s8-tile{justify-content:center}
.sc-s8 .s8-next{flex:1 1 auto;justify-content:center}
.sc-s9 .s9-week{flex:1 1 auto}
.sc-s9 .s9-day{justify-content:center;flex:1 1 auto}
.sc-s9 .s9-next{flex:0 0 auto}
/* 15. safety net: a scene mounted under reduce stops assembled. */
@media (prefers-reduced-motion:reduce){.sc-stage *,.h47-art *{animation:none!important;transition:none!important}.sc-replay{display:none!important}}
