/* Three distinct scroll chapters; the default layout also works without JavaScript. */
.bluepdf-page .bp-story {
    --story-accent: #a6c0ff;
    --story-top: 85px;
    --story-stage: 2;
    padding: 0;
    position: relative;
    color: #fff;
    background: #10234b;
    transition: background .65s ease;
    isolation: isolate;
}
.bp-story[data-stage="1"] { background: #244ce3; --story-accent: #e3ecff; }
.bp-story[data-stage="2"] { background: #103c43; --story-accent: #b8ffda; }
.bp-story__inner {
    position: relative;
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    grid-template-rows: auto 1fr auto;
    column-gap: 48px;
    padding: 48px 0 40px;
    min-height: 760px;
}
.bp-story__heading { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 14px 28px; padding-bottom: 26px; border-bottom: 1px solid #ffffff26; }
.bp-story__heading .bp-overline { color: var(--story-accent); font-size: 10px; white-space: nowrap; }
.bluepdf-page .bp-story__heading h2 { font-size: 15px; font-weight: 500; margin: 0; color: #e4eaff; letter-spacing: -.02em; }
.bp-story__platform { margin-left: auto; font: 9px var(--bp-mono); letter-spacing: .1em; color: #ffffff99; }
.bp-story__copy { align-self: center; position: relative; z-index: 2; padding: 40px 0; }
.bp-story__counter { display: none; position: relative; height: 146px; overflow: hidden; color: var(--story-accent); margin-bottom: 25px; }
.bp-story__counter > div { transition: transform .75s cubic-bezier(.2,.75,.2,1); transform: translateY(calc(var(--story-stage) * -146px)); }
.bp-story__counter span { display: block; height: 146px; font: 500 170px/.84 var(--bp-mono); font-variant-numeric: tabular-nums; letter-spacing: -.065em; }
.bp-story__counter small { position: absolute; left: 218px; bottom: 10px; font: 12px var(--bp-mono); color: #ffffff85; }
.bp-story__panel { margin-bottom: 30px; }
.bp-story__eyebrow { display: block; margin-bottom: 16px; color: var(--story-accent); font: 11px var(--bp-mono); letter-spacing: .14em; }
.bp-story__panel h3 { color: #fff; font-size: clamp(32px,3.7vw,53px); line-height: 1.24; letter-spacing: -.06em; word-break: keep-all; overflow-wrap: anywhere; text-wrap: balance; margin: 0 0 20px; }
.bp-story__panel p { max-width: 420px; margin: 0; color: #e2eaff; font-size: 16px; line-height: 1.85; }
.bp-story__shortcut { display: flex; align-items: center; gap: 7px; color: #e2eaff; margin-top: 24px; font: 12px var(--bp-mono); }
.bp-story__shortcut kbd { display: inline-grid; place-items: center; min-width: 29px; padding: 5px 7px; border: 1px solid #ffffff40; border-bottom-width: 3px; border-radius: 5px; font: inherit; background: #ffffff09; }
.bp-story__visual { position: relative; align-self: stretch; min-width: 0; min-height: 500px; }
.bp-story__word { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.bp-story__word span { position: absolute; top: 30%; right: 0; font: 700 clamp(100px,13vw,195px)/1 var(--bp-mono); letter-spacing: -.095em; color: transparent; -webkit-text-stroke: 1px #ffffff22; opacity: 0; transform: translateY(40px); transition: opacity .5s, transform .75s; }
.bp-story[data-stage="0"] .bp-story__word span:nth-child(1),
.bp-story[data-stage="1"] .bp-story__word span:nth-child(2),
.bp-story[data-stage="2"] .bp-story__word span:nth-child(3) { opacity: 1; transform: none; }
.bs-scene { position: absolute; top: 50%; left: 50%; width: 600px; height: 520px; transform: translate(-50%,-50%) scale(var(--scene-scale,var(--scene-fallback,.9))); }
.bs-orbit { position: absolute; width: 510px; height: 400px; left: 45px; top: 55px; border: 1px solid #ffffff20; border-radius: 50%; transform: rotate(-25deg); transition: transform 1s; }
.bs-orbit::before { content: ''; position: absolute; inset: 38px -32px; border: 1px solid #ffffff12; border-radius: 50%; transform: rotate(60deg); }
.bp-story[data-stage="1"] .bs-orbit { transform: rotate(30deg) scale(1.12); }
.bp-story[data-stage="2"] .bs-orbit { transform: rotate(65deg) scale(.85); }
.bs-sheet { position: absolute; width: 310px; height: 412px; left: 145px; top: 40px; padding: 27px; border-radius: 5px; background: #fafcff; color: #152640; box-shadow: 0 22px 60px #03133050; transform: translate(0,0) rotate(-3deg); transition: transform .85s cubic-bezier(.2,.75,.2,1), opacity .6s; }
.bs-sheet--back { background: #a5b9e5; transform: translate(23px,9px) rotate(5deg); box-shadow: none; }
.bs-sheet__meta { display: flex; justify-content: space-between; align-items: center; font: 8px var(--bp-mono); padding-bottom: 16px; border-bottom: 1px solid #d5deec; }
.bs-sheet__title { font: 600 40px/.96 var(--bp-mono); letter-spacing: -.06em; margin: 25px 0 16px; }
.bs-sheet__sub { font: 7px var(--bp-mono); letter-spacing: .08em; color: #61728b; }
.bs-sheet__lines { margin-top: 26px; display: grid; gap: 14px; }
.bs-sheet__lines i { height: 5px; background: #dbe4f2; border-radius: 2px; }
.bs-sheet__lines i:nth-child(3n) { width: 64%; }
.bs-sheet__lines i:nth-child(4) { background: #dbe4f2; transition: background .4s; }
.bp-story[data-stage="1"] .bs-sheet__lines i:nth-child(4), .bp-story[data-stage="2"] .bs-sheet__lines i:nth-child(4) { background: #ffe388; }
.bs-check { position: absolute; width: 47px; top: 204px; left: 32px; fill: none; stroke: #2458f5; stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; transform: rotate(-8deg); }
.bs-check path { stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--story-check,1)); }
.bs-seal { position: absolute; width: 124px; height: 124px; right: 22px; bottom: 60px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; border: 4px double #e35356; border-radius: 50%; color: #dc484f; box-shadow: inset 0 0 0 5px #fafcff,inset 0 0 0 6px #e3535670; opacity: 1; transform: rotate(-16deg); transition: opacity .2s, transform .5s cubic-bezier(.15,.8,.3,1.3); }
.bs-seal span { font: 6px var(--bp-mono); letter-spacing: .11em; }
.bs-seal b { border-block: 1px solid #e35356; padding: 4px 0; font: 600 17px var(--bp-mono); }
.bs-sign { position: absolute; width: 210px; left: 28px; bottom: 13px; fill: none; stroke: #2458f5; stroke-width: 2.7; stroke-linecap: round; stroke-linejoin: round; }
.bs-sign path { stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--story-sign,1)); }
.bs-drop { position: absolute; left: 70px; bottom: 3px; width: 460px; height: 150px; border: 1px dashed #a6c0ff99; background: #718fea0e; border-radius: 50%; transform: rotate(-10deg); text-align: center; transition: opacity .35s, transform .7s; }
.bs-drop span { display: block; color: #b2c8ff; font: 60px/1 var(--bp-mono); padding-top: 30px; }
.bs-drop small { font: 8px var(--bp-mono); letter-spacing: .17em; color: #a6c0ff; }
.bs-file { position: absolute; left: 330px; top: 140px; width: 174px; height: 180px; background: #315ffc; border: 1px solid #7b9bff; border-radius: 12px 36px 12px 12px; box-shadow: 0 20px 45px #00135355; padding: 27px 20px; transform: rotate(11deg); transition: opacity .3s, transform .8s cubic-bezier(.2,.75,.2,1); }
.bs-file b { display: block; font: 600 42px var(--bp-mono); letter-spacing: -.06em; }
.bs-file span { display: block; font: 8px var(--bp-mono); margin-top: 24px; }
.bs-file i { position: absolute; right: 16px; bottom: 17px; font: 26px var(--bp-mono); }
.bs-tools { position: absolute; left: 82px; top: 135px; display: grid; gap: 8px; background: #fff; border: 1px solid #cddafa; padding: 10px; border-radius: 12px; box-shadow: 0 14px 32px #091c663a; transform: rotate(-5deg); transition: transform .65s cubic-bezier(.2,.75,.2,1), opacity .4s; }
.bs-tools span { display: grid; place-items: center; color: #668; border-radius: 6px; font: 23px var(--bp-mono); width: 32px; height: 32px; }
.bs-tools .is-selected { background: #2458f5; color: #fff; }
.bs-tools i { display: block; width: 16px; height: 16px; background: #2458f5; border-radius: 50%; margin: 4px auto; }
.bs-note { position: absolute; right: 0; top: 295px; width: 182px; padding: 20px; color: #533b26; background: #ffe6a2; box-shadow: 0 20px 35px #09277840; transform: rotate(7deg); transition: opacity .35s, transform .65s cubic-bezier(.2,.75,.2,1); }
.bs-note span { display: block; font: 9px var(--bp-mono); letter-spacing: .1em; margin-bottom: 16px; }
.bs-note b { font-size: 16px; word-break: keep-all; }
.bs-note i { display: block; height: 3px; width: 90%; background: #bc973760; margin-top: 16px; }
.bs-note i:last-child { width: 55%; margin-top: 8px; }
.bs-cursor { position: absolute; width: 42px; left: 339px; top: 302px; fill: #153382; stroke: white; stroke-width: 2; filter: drop-shadow(0 6px 5px #03133b50); transition: transform .7s, opacity .3s; }
.bs-save { position: absolute; top: 107px; left: 238px; width: 348px; padding: 30px; border: 1px solid #b8ffda80; border-radius: 18px; background: #143f43; box-shadow: 0 25px 60px #031b2b70; transition: opacity .4s, transform .8s cubic-bezier(.2,.75,.2,1); }
.bs-save__check { width: 65px; margin-bottom: 24px; }
.bs-save__check svg { display: block; width: 100%; fill: none; stroke: #b8ffda; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.bs-save__check circle,.bs-save__check path { stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--story-saved,1)); }
.bs-save__label { color: #b8ffda; font-size: 13px; }
.bs-save strong { display: block; margin: 8px 0 25px; font: 600 49px/.95 var(--bp-mono); letter-spacing: -.07em; color: #b8ffda; }
.bs-save__file { display: flex; align-items: center; gap: 10px; background: #ffffff0a; border: 1px solid #b8ffda40; padding: 15px 10px; border-radius: 5px; }
.bs-save__file b { color: #b8ffda; font: 10px var(--bp-mono); }
.bs-save__file code { color: #fff; font: 11px var(--bp-mono); background: transparent; padding: 0; }
.bs-save__file span { color: #b8ffda; margin-left: auto; }
.bs-save__meter { height: 3px; background: #b8ffda20; margin: 18px 0 14px; overflow: hidden; }
.bs-save__meter i { display: block; height: 100%; background: #b8ffda; transform-origin: left; transform: scaleX(var(--story-saved,1)); }
.bs-save small { color: #b8d1d0; font: 7px var(--bp-mono); letter-spacing: .1em; }
.bp-story__visual-label { position: absolute; bottom: 8px; right: 0; color: #ffffff70; font: 8px var(--bp-mono); letter-spacing: .1em; }
.bp-story__visual-label b { font-weight: 400; color: #ffffffa0; }

/* Every chapter changes the document composition, not just its caption. */
.bp-story[data-stage="0"] .bs-sheet { transform: translate(-43px,calc(-38px + var(--story-drift,.5) * 32px)) rotate(calc(-15deg + var(--story-drift,.5) * 6deg)) scale(.86); }
.bp-story[data-stage="0"] .bs-sheet--back { transform: translate(-18px,-28px) rotate(2deg) scale(.86); }
.bp-story[data-stage="0"] .bs-seal { opacity: 0; transform: rotate(-28deg) scale(2); }
.bp-story[data-stage="0"] .bs-check,.bp-story[data-stage="0"] .bs-sign { opacity: 0; }
.bp-story[data-stage="0"] .bs-tools { opacity: 0; transform: translate(-75px,30px) rotate(-15deg); }
.bp-story:not([data-stage="1"]) .bs-note { opacity: 0; transform: translate(55px,50px) rotate(16deg); }
.bp-story:not([data-stage="1"]) .bs-cursor { opacity: 0; transform: translate(60px,60px); }
.bp-story:not([data-stage="0"]) .bs-file { opacity: 0; transform: translate(-155px,-5px) rotate(-3deg) scale(.6); }
.bp-story:not([data-stage="0"]) .bs-drop { opacity: 0; transform: translateY(70px) rotate(-10deg) scale(.8); }
.bp-story:not([data-stage="2"]) .bs-save { opacity: 0; transform: translate(90px,30px) scale(.85); }
.bp-story[data-stage="2"] .bs-sheet { transform: translate(-115px,0) rotate(-13deg) scale(.82); }
.bp-story[data-stage="2"] .bs-sheet--back { transform: translate(-95px,0) rotate(-3deg) scale(.82); }
.bp-story[data-stage="2"] .bs-tools { opacity: 0; transform: translate(-40px,80px) rotate(-10deg); }
.bp-story__footer { grid-column: 1 / -1; display: none; align-items: center; gap: 40px; padding-top: 24px; }
.bp-story__nav { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; width: min(100%,740px); }
.bp-story__step { position: relative; display: flex; align-items: center; gap: 16px; appearance: none; border: 1px solid #ffffff40; border-radius: 6px; padding: 18px; font: inherit; background: #ffffff04; color: #d8e3fc; cursor: pointer; text-align: left; transition: background .35s, color .35s, border-color .35s; }
.bp-story__step b { font: 12px var(--bp-mono); }
.bp-story__step span { font-size: 15px; font-weight: 600; white-space: nowrap; }
.bp-story__step i { margin-left: auto; font-style: normal; }
.bp-story__step::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 3px; background: var(--story-accent); transform: scaleX(0); transform-origin: left; }
.bp-story__step.is-active { color: #152640; background: var(--story-accent); border-color: var(--story-accent); }
.bp-story__step.is-active::after { background: #fff; transform: scaleX(var(--story-chapter-progress,0)); }
.bp-story__step.is-complete::after { transform: scaleX(1); }
.bp-story__step:hover { border-color: #fff; }
.bp-story__step:focus-visible { outline: 3px solid #ffe6a2; outline-offset: 4px; }
.bp-story__hint { margin-left: auto; color: #e2eaff; font-size: 11px; word-break: keep-all; }
.bp-story__hint b { display: inline-block; font-size: 20px; margin-left: 13px; }

/* Progressive enhancement: one readable panel and a manually operable step navigator. */
.bp-story.is-enhanced .bp-story__counter { display: block; }
.bp-story.is-enhanced .bp-story__panels { display: grid; }
.bp-story.is-enhanced .bp-story__panel { grid-area: 1 / 1; margin: 0; visibility: hidden; opacity: 0; transform: translateY(28px); transition: opacity .4s, transform .6s cubic-bezier(.2,.75,.2,1), visibility .4s; pointer-events: none; }
.bp-story.is-enhanced .bp-story__panel.is-active { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }
.bp-story.is-enhanced .bp-story__footer { display: flex; }
.bp-story:not(.is-pinned) .bp-story__hint { display: none; }
.bp-story.is-pinned { height: 300svh; }
.bp-story.is-pinned .bp-story__inner { position: sticky; top: var(--story-top); height: calc(100svh - var(--story-top)); min-height: 0; }
.bp-story.is-pinned .bp-story__visual { min-height: 0; }
.bluepdf-page.bp-story-inview .site-consult-bar { visibility: hidden; transform: translateY(150%); }
.bluepdf-page.bp-story-inview .back-to-top { visibility: hidden; }

@media (max-width:1100px) {
    .bp-story__inner { column-gap: 25px; }
    .bp-story__heading { gap: 12px 20px; }
    .bp-story__panel h3 { font-size: 38px; }
    .bp-story__panel p { font-size: 15px; }
    .bp-story__counter { height: 120px; }
    .bp-story__counter span { height: 120px; font-size: 142px; }
    .bp-story__counter > div { transform: translateY(calc(var(--story-stage) * -120px)); }
    .bp-story__counter small { left: 183px; }
}
@media (max-width:980px) {
    .bp-story__inner { grid-template-columns: 1fr; grid-template-rows: auto auto 1fr auto; padding: 26px 0; min-height: 800px; }
    .bp-story__heading { gap: 8px; padding-bottom: 16px; display: block; }
    .bp-story__heading .bp-overline { display: block; margin-bottom: 8px; font-size: 9px; }
    .bluepdf-page .bp-story__heading h2 { font-size: 13px; }
    .bp-story__platform { display: none; }
    .bp-story__copy { display: flex; align-items: flex-start; gap: 24px; padding: 25px 0 10px; }
    .bp-story__counter { flex: 0 0 130px; height: 90px; margin: 0; }
    .bp-story__counter > div { transform: translateY(calc(var(--story-stage) * -90px)); }
    .bp-story__counter span { height: 90px; font-size: 105px; }
    .bp-story__counter small { display: none; }
    .bp-story__panels { flex: 1; min-width: 0; }
    .bp-story__eyebrow { font-size: 9px; margin-bottom: 10px; }
    .bp-story__panel h3 { font-size: clamp(27px,4.4vw,38px); margin-bottom: 12px; }
    .bp-story__panel p { max-width: 520px; font-size: 14px; line-height: 1.7; }
    .bp-story__shortcut { margin-top: 16px; font-size: 10px; }
    .bp-story__shortcut kbd { padding: 3px 5px; min-width: 23px; }
    .bp-story__visual { min-height: 380px; }
    .bp-story__word span { top: 27%; font-size: 23vw; }
    .bp-story__footer { flex-wrap: wrap; gap: 13px; padding-top: 16px; }
    .bp-story__nav { width: 100%; }
    .bp-story__step { padding: 14px 15px; gap: 12px; }
    .bp-story__hint { margin: 0 auto; font-size: 10px; }
    .bp-story__hint b { font-size: 15px; margin-left: 8px; }
    .bp-story__visual-label { bottom: 2px; font-size: 7px; }
    .bs-scene { --scene-fallback: .65; }
    .bp-story:not(.is-enhanced) .bp-story__copy { display: block; }
    .bp-story:not(.is-enhanced) .bp-story__panel { margin-top: 30px; }
}
@media (max-width:560px) {
    .bp-story__inner { padding: 20px 0; }
    .bp-story__copy { gap: 16px; padding-top: 22px; }
    .bp-story__counter { flex-basis: 84px; height: 61px; }
    .bp-story__counter span { height: 61px; font-size: 72px; }
    .bp-story__counter > div { transform: translateY(calc(var(--story-stage) * -61px)); }
    .bp-story__panel h3 { font-size: 27px; letter-spacing: -.06em; }
    .bp-story__panel p { font-size: 12px; line-height: 1.75; }
    .bp-story__eyebrow { font-size: 8px; }
    .bp-story__shortcut { margin-top: 12px; }
    .bp-story__nav { gap: 7px; }
    .bp-story__step { padding: 14px 11px; gap: 9px; }
    .bp-story__step b { font-size: 10px; }
    .bp-story__step span { font-size: 13px; }
    .bp-story__step i { font-size: 12px; }
    .bp-story__visual { min-height: 290px; }
    .bs-scene { --scene-fallback: .5; }
}
@media (max-width:360px) {
    .bp-story__step { padding-inline: 10px; justify-content: center; gap: 8px; }
    .bp-story__step i { display: none; }
}
@media (max-width:980px) and (max-height:740px) {
    .bp-story.is-pinned .bp-story__inner { padding-block: 12px; }
    .bp-story.is-pinned .bp-story__heading { padding-bottom: 10px; }
    .bp-story.is-pinned .bp-story__heading .bp-overline { margin-bottom: 5px; font-size: 8px; }
    .bp-story.is-pinned .bp-story__heading h2 { font-size: 11px; }
    .bp-story.is-pinned .bp-story__copy { padding-top: 14px; gap: 12px; }
    .bp-story.is-pinned .bp-story__panel h3 { font-size: 25px; margin-bottom: 8px; }
    .bp-story.is-pinned .bp-story__panel p { font-size: 11px; }
    .bp-story.is-pinned .bp-story__shortcut { display: none; }
    .bp-story.is-pinned .bp-story__footer { gap: 8px; padding-top: 10px; }
    .bp-story.is-pinned .bp-story__step { padding-block: 12px; }
}
@media (min-width:981px) and (max-height:850px) {
    .bp-story.is-pinned .bp-story__inner { padding-block: 24px; }
    .bp-story.is-pinned .bp-story__copy { padding-block: 20px; }
    .bp-story.is-pinned .bp-story__counter { height: 112px; margin-bottom: 20px; }
    .bp-story.is-pinned .bp-story__counter span { height: 112px; font-size: 130px; }
    .bp-story.is-pinned .bp-story__counter > div { transform: translateY(calc(var(--story-stage) * -112px)); }
    .bp-story.is-pinned .bp-story__counter small { left: 180px; }
    .bp-story.is-pinned .bp-story__panel h3 { font-size: 40px; }
    .bp-story.is-pinned .bp-story__footer { padding-top: 16px; }
}
@media (prefers-reduced-motion:reduce) {
    .bp-story *, .bp-story { transition: none !important; }
}
