/* /demo: the Overview taken apart (2026-10-23). On a wide screen the picture
   sits in a stage that stays put while you scroll; demo.js splits it into
   its cards and moves the camera to the one each step is about. The step
   text takes the home page's tiles' voice: the point in ink, the rest grey,
   and a white slice with the working. */
/* As wide as the home page, so the picture reads at about its real size;
   the header and footer follow it. */
:root{--measure:1512px}

/* Without the theatre (a phone, a narrow window, or no script) each step
   shows its part as a still, one after another. */
.story{display:grid;padding-block:24px 40px}
.stage{display:none}
.walk{display:grid}
.step{display:flex;flex-direction:column;gap:14px;padding-block:28px}
.step h1{font-size:34px;line-height:1.05;font-weight:800;letter-spacing:-.035em;order:-1}
.step .lede{font-size:17px;line-height:1.55;color:var(--ink-soft);margin:0;order:-1}
.step h2{font-size:30px;line-height:1.15;font-weight:750;letter-spacing:-.02em}
.step > p{margin:0;font-size:17px;line-height:1.6;color:var(--ink-soft);max-width:34em}
.step > p b{color:var(--ink);font-weight:600}
.step .aside{font-size:14.5px}
.step .whole{display:block;width:100%;height:auto;border:1px solid var(--hairline);border-radius:14px;margin-bottom:8px}
.step .crops{display:grid;gap:10px;margin-bottom:8px}
.crop{background-image:url(/assets/site/tour/default-overview.webp);background-repeat:no-repeat;border-radius:12px;
  box-shadow:0 0 0 1px var(--hairline)}

.work{background:var(--surface);border:1px solid var(--hairline);border-radius:14px;padding:6px 18px;margin-top:6px;
  font-size:15px;font-variant-numeric:tabular-nums;max-width:30em}
.wr{display:flex;align-items:baseline;gap:12px;padding:11px 0;border-top:1px solid var(--hairline)}
.wr:first-child{border-top:0}
.wr span{flex:1;color:var(--ink-soft)}
.wr b{font-weight:600;white-space:nowrap}
.wr em{font-style:normal;color:var(--ink-soft);font-size:13.5px;min-width:5.5em;text-align:right}
.wr.sum{border-top:1.5px solid var(--ink);font-size:16px}
.wr.sum span{color:var(--ink);font-weight:600}
.wr.soft b,.wr.soft span{color:var(--ink-soft);font-weight:400}
.wsub{margin:-6px 0 0;padding-bottom:10px;font-size:13px;color:var(--ink-soft);line-height:1.5}
.end-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}

/* The theatre (demo.js adds .live from 1000px). It was the stage in the
   left 60% of the page beside a column of steps, each most of a screen
   tall: on a laptop a full-width card came out at about a third of its
   real size, and the page took seven screens of scrolling (the owner,
   2026-10-23: "too small", "i need to scroll a bunch"). Now the stage takes
   the whole width of one screen that stays put, the step's words sit in a
   strip under it and change in place, and each step costs about 40% of a
   screen of scroll (demo.js: STEP). */
.story.live{display:block;padding-block:0}
.live .theatre{position:sticky;top:0;height:100vh;min-height:560px;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:18px;padding-block:12px 22px}
.live .stage{display:block;position:relative;border-radius:22px;border:1px solid var(--hairline);overflow:hidden;
  background:var(--paper) radial-gradient(rgb(28 31 39 / 14%) 1.05px,transparent 1.2px) 0 0/20px 20px}
.board{position:absolute;left:0;top:0;transform-origin:0 0;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.pc{position:absolute;background-image:url(/assets/site/tour/default-overview.webp);background-repeat:no-repeat;
  border-radius:var(--r,10px);transition:transform .9s cubic-bezier(.2,.7,.2,1),opacity .5s,box-shadow .5s}
.pc[data-pc="head"]{border-radius:0}
/* No movement until demo.js has placed the board: it slid in from the
   corner on arrival. */
.stage:not(.ready) .board,.stage:not(.ready) .pc{transition:none}
.stage.apart .pc{transform:translate(var(--ex,0),var(--ey,0));box-shadow:0 18px 40px -26px rgb(20 24 30 / 30%)}
.stage.focus .pc{opacity:.16}
.stage.focus .pc.on{opacity:1;box-shadow:0 26px 60px -30px rgb(20 24 30 / 38%),0 0 0 1px rgb(20 24 30 / 6%)}

/* Every step in the same cell, so the strip is as tall as the tallest and
   does not jump; only the current one shows. */
.live .walk{grid-template-columns:minmax(0,1fr)}
.live .step{grid-area:1/1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);column-gap:56px;row-gap:8px;
  align-content:start;padding:0 4px;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}
.live .step.on{opacity:1;visibility:visible;transition:opacity .35s .12s}
.live .step > *{grid-column:1;order:0}
.live .step > .work{grid-column:2;grid-row:1 / span 4;margin-top:0;align-self:start}
.live .step .whole,.live .step .crops{display:none}
.live .step h1{font-size:34px}
.live .step h2{font-size:26px}
.live .step > p,.live .step .lede{font-size:16px;line-height:1.55}
.live .step .aside{font-size:14px}
.live .work{padding:2px 16px;font-size:14px}
.live .wr{padding:6px 0}
/* The savings and investment lines are on the Accounts card itself, under
   "Invest & save"; in the strip they made it nine rows tall and squeezed
   the stage to a quarter of the screen. */
.live .wr.soft{display:none}
.live .wr.sum{font-size:15px}
.live .wsub{margin-top:-3px;padding-bottom:7px;font-size:12.5px}

@media (prefers-reduced-motion:reduce){.board,.pc,.live .step,.live .step.on{transition:none}}
