/* Seven screens of scroll give the central sculpture room to unfold. */
.bloom-section{height:820svh;min-height:0;overflow:visible;background:#f4f8ff;box-shadow:0 -30px 90px #173e6d0b;isolation:isolate}
.bloom-section::before{display:none}
.bloom-stage{position:sticky;top:0;height:100svh;height:100dvh;min-height:560px;overflow:hidden;color:#09214a;background:#f4f8ff;--bloom-open:0}
.bloom-wash{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 55%,#cfe2ff 0%,#e8f1ff66 37%,#f8fbff 75%);opacity:calc(.35 + var(--bloom-open)*.65)}
.bloom-topline,.bloom-bottom{position:absolute;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:10px;font-weight:700;letter-spacing:1.8px;z-index:5}
.bloom-topline{top:35px;padding-bottom:21px;border-bottom:1px solid #185fc41c}.bloom-topline>span:first-child{font-size:11px;letter-spacing:2px}.bloom-topline>span:last-child{color:#607aa4;font-weight:500}
.bloom-bottom{bottom:30px;font-size:9px;letter-spacing:1.3px;color:#456794}.bloom-scroll{display:flex;align-items:center;gap:18px}.bloom-scroll>span{font-size:22px;font-weight:400}.bloom-percent{font-variant-numeric:tabular-nums;min-width:75px;text-align:right}
.bloom-watermark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(140px,25vw,450px);font-weight:500;letter-spacing:-.085em;line-height:1;color:transparent;-webkit-text-stroke:1px #1863cc17;user-select:none;white-space:nowrap;opacity:.45}
.bloom-visual{position:absolute;inset:0;z-index:2;pointer-events:none;will-change:opacity,transform}.bloom-canvas{display:block;width:100%;height:100%}
.bloom-orbit{position:absolute;z-index:1;left:50%;top:52%;width:52vw;height:52vw;max-width:800px;max-height:800px;border:1px solid #538be515;border-radius:50%;transform:translate(-50%,-50%) rotateX(66deg) rotate(-25deg);pointer-events:none;opacity:0}.bloom-orbit-two{width:64vw;height:64vw;transform:translate(-50%,-50%) rotateX(69deg) rotate(25deg)}
.bloom-copy{position:absolute;z-index:3;left:5%;width:90%;text-align:center;will-change:transform,opacity}
.bloom-intro{top:15%}.bloom-eyebrow{font-size:9px;font-weight:600;letter-spacing:2.8px;color:#6f87ab;margin:0 0 20px}
.bloom-copy h2,.bloom-copy h3{font-size:clamp(32px,4vw,64px);line-height:1.22;letter-spacing:-.065em;font-weight:750;margin:0;word-break:keep-all}.bloom-copy em,.bloom-story em{font-style:normal;color:#1767ed}
.bloom-description{font-size:clamp(12px,1.05vw,16px);line-height:1.8;letter-spacing:-.035em;margin:22px 0 0;color:#536e96;word-break:keep-all}
.bloom-story{position:absolute;z-index:4;top:37%;width:27%;max-width:400px;opacity:0;visibility:hidden;will-change:transform,opacity}
.bloom-people,.bloom-tech{left:6%}.bloom-design{right:5%}
.bloom-index{display:block;font-size:10px;letter-spacing:2px;color:#1767ed;font-weight:650;margin-bottom:26px}
.bloom-story h3{font-size:clamp(26px,2.7vw,44px);line-height:1.35;letter-spacing:-.065em;margin:0;font-weight:750;word-break:keep-all}.bloom-story p{font-size:clamp(12px,1vw,15px);line-height:1.95;letter-spacing:-.025em;color:#536e96;margin:24px 0 28px;word-break:keep-all}.bloom-caption{display:block;padding-top:15px;border-top:1px solid #185fc422;font-size:8px;letter-spacing:1.4px;color:#8195b3}
.bloom-finale{top:auto;bottom:10%;opacity:0;visibility:hidden}.bloom-finale h3{font-size:clamp(31px,3.4vw,54px)}.bloom-finale .bloom-eyebrow{margin-bottom:16px}.bloom-finale .bloom-description{margin-top:16px}
.bloom-link{display:inline-flex;align-items:center;gap:32px;background:none;color:#1767ed;border-bottom:1px solid #1767ed66;padding:10px 0;font-size:11px;font-weight:650;margin-top:12px;transition:color .2s}.bloom-link:hover{color:#072a80}.bloom-link span{font-size:20px}.bloom-link:focus-visible{outline:2px solid #2464ee;outline-offset:5px}
.bloom-progress{position:absolute;z-index:5;bottom:0;left:0;right:0;height:2px;background:#1863cc0d}.bloom-progress i{display:block;height:100%;background:#327df4;transform:scaleX(var(--bloom-progress,0));transform-origin:left}
.bloom-fallback{position:absolute;left:50%;top:47%;width:200px;height:200px;transform:translate(-50%,-50%)}.bloom-fallback i{position:absolute;left:65px;top:0;width:70px;height:130px;border-radius:70% 70% 45% 45%;transform-origin:50% 100%;background:linear-gradient(125deg,#e4f3ff,#5998ff 50%,#1450cd);box-shadow:inset 2px 1px 8px #ffffff88;transform:rotate(calc(var(--i)*45deg))}.bloom-fallback i:nth-child(1){--i:0}.bloom-fallback i:nth-child(2){--i:1}.bloom-fallback i:nth-child(3){--i:2}.bloom-fallback i:nth-child(4){--i:3}.bloom-fallback i:nth-child(5){--i:4}.bloom-fallback i:nth-child(6){--i:5}.bloom-fallback i:nth-child(7){--i:6}.bloom-fallback i:nth-child(8){--i:7}.bloom-ready .bloom-fallback{display:none}
@media(max-width:900px){.bloom-story{width:29%;left:4%}.bloom-design{left:auto;right:4%}.bloom-story h3{font-size:28px}.bloom-story p{font-size:12px}}
@media(max-width:680px){.bloom-section{height:760svh}.bloom-stage{min-height:540px}.bloom-topline{top:25px;left:6%;right:6%;font-size:7px;letter-spacing:1px}.bloom-topline>span:first-child{font-size:9px}.bloom-intro{top:16%;left:7%;width:86%}.bloom-intro h2{font-size:clamp(30px,7.8vw,45px);line-height:1.35}.bloom-intro h2 em{display:block}.bloom-eyebrow{font-size:7px;letter-spacing:1.5px;margin-bottom:18px}.bloom-description{font-size:12px;margin-top:17px}.bloom-story{left:8%;right:auto;top:auto;bottom:12%;width:84%;max-width:none;text-align:left}.bloom-story h3{font-size:30px;line-height:1.3}.bloom-story h3 br{display:none}.bloom-story h3 em{display:block}.bloom-index{font-size:8px;margin-bottom:14px}.bloom-story p{font-size:12px;line-height:1.8;margin:16px 0 0}.bloom-caption{display:none}.bloom-finale{bottom:11%;left:7%;width:86%}.bloom-finale h3{font-size:32px}.bloom-finale .bloom-description{font-size:11px;max-width:290px;margin:14px auto 0}.bloom-finale .bloom-eyebrow{font-size:8px;margin-bottom:14px}.bloom-link{font-size:10px;margin-top:9px;padding:8px 0}.bloom-bottom{bottom:22px;left:6%;right:6%;font-size:7px;letter-spacing:.9px}.bloom-scroll{gap:8px;font-size:7px}.bloom-percent{display:none}.bloom-watermark{font-size:35vw}.bloom-orbit{width:100vw;height:100vw}.bloom-orbit-two{width:120vw;height:120vw}}
@media(max-height:650px) and (min-width:681px){.bloom-stage{min-height:430px}.bloom-intro{top:17%}.bloom-intro h2{font-size:34px}.bloom-story{top:30%}.bloom-story h3{font-size:28px}.bloom-story p{font-size:12px;margin:16px 0}.bloom-finale{bottom:9%}.bloom-finale h3{font-size:30px}.bloom-finale .bloom-eyebrow,.bloom-finale .bloom-description{display:none}}
@media(prefers-reduced-motion:reduce){.bloom-section{height:100svh;min-height:700px}.bloom-stage{min-height:700px}.bloom-intro,.bloom-story,.bloom-scroll{display:none}.bloom-finale{opacity:1;visibility:visible}}
/* Keep a clear reading column on each side of the fixed flower. */
@media(min-width:901px){.bloom-story{width:22%;max-width:340px}.bloom-people,.bloom-tech{left:5%}.bloom-story h3{font-size:clamp(26px,2.4vw,39px)}.bloom-story p{font-size:clamp(12px,.95vw,15px)}}
/* The following chapter rises over the last held frame instead of exposing a blank release. */
.intro-stack + #journey-scroll{margin-top:-100svh;margin-top:-100dvh}
@media(prefers-reduced-motion:reduce){.intro-stack + #journey-scroll{margin-top:0}}
@media(max-height:800px) and (min-width:681px){.bloom-finale{bottom:8%}.bloom-finale h3{font-size:clamp(27px,2.5vw,36px)}.bloom-finale .bloom-eyebrow{font-size:8px;margin-bottom:12px}.bloom-finale .bloom-description{font-size:12px;margin-top:12px}.bloom-finale .bloom-link{font-size:10px;margin-top:6px;padding:6px 0}}
/* Body copy stays comfortably readable at normal browser zoom. */
.bloom-description,.bloom-story p{font-size:16px;line-height:1.85}
.bloom-index{font-size:11px}.bloom-eyebrow{font-size:10px}.bloom-caption{font-size:10px}
.bloom-link{font-size:14px;min-height:44px}.bloom-finale .bloom-description{font-size:16px}
@media(min-width:901px){.bloom-story p{font-size:16px}}
@media(max-width:680px){.bloom-description,.bloom-story p{font-size:15px;line-height:1.8}.bloom-eyebrow,.bloom-index{font-size:10px}.bloom-finale .bloom-description{font-size:14px;max-width:320px}.bloom-finale .bloom-eyebrow{font-size:10px}.bloom-link{font-size:14px}.bloom-story{bottom:10%}.bloom-finale{bottom:9%}}
@media(max-height:800px) and (min-width:681px){.bloom-finale .bloom-eyebrow{font-size:10px}.bloom-finale .bloom-description{font-size:14px}.bloom-finale .bloom-link{font-size:14px}.bloom-finale{bottom:7%}}
/* Alternate the mobile story's reading edge just as on desktop. */
@media(max-width:680px){.bloom-people,.bloom-tech{left:8%;right:auto;text-align:left}.bloom-design{left:auto;right:8%;text-align:right}.bloom-design p{margin-left:auto}}

/* Scroll reveals sunlight behind the flower and copy. */
.bloom-wash{background:radial-gradient(ellipse at 50% 53%,#d6e9ff 0%,#b7d5f466 43%,#edf6ff 83%)}
.bloom-atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1;--sun:0;background:linear-gradient(155deg,#8ab9e333,transparent 55%,#8ccde829)}
.bloom-sunlight{position:absolute;inset:0;opacity:var(--sun);background:radial-gradient(ellipse at 95% 0%,#fff 0%,#fffffff5 14%,#ffffffa6 31%,transparent 66%),repeating-conic-gradient(from 190deg at 100% -8%,transparent 0deg 7deg,#ffffffd9 11deg 15deg,transparent 21deg 30deg);mask-image:linear-gradient(#000,#000 48%,#0009 78%,transparent);transform-origin:90% 0;animation:bloom-sun-breathe 14s ease-in-out infinite alternate;animation-play-state:paused}
.bloom-sunlight::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 83% 16%,#ffffffeb,transparent 48%),radial-gradient(ellipse at 58% 43%,#ffffff73,transparent 60%)}
.bloom-atmosphere.is-running .bloom-sunlight{animation-play-state:running}
@keyframes bloom-sun-breathe{from{transform:scale(1)}to{transform:scale(1.035)}}
@media(prefers-reduced-motion:reduce){.bloom-sunlight{animation:none!important}}
/* A botanical illustration connects this chapter with the world below. */
.bloom-petal-breeze{position:absolute;inset:0;pointer-events:none;opacity:0;--travel:0px}
.bloom-loose-petal{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:calc(var(--size)*1.55);transform:translateY(calc(var(--travel)*var(--depth)))}
.bloom-loose-petal i{display:block;width:100%;height:100%;border-radius:75% 25% 65% 35%;background:linear-gradient(135deg,#edf9ff 5%,#acdafa 43%,#6099d9 88%);box-shadow:inset 1px 1px 3px #ffffffb3,0 2px 4px #2866aa12;animation:bloom-petal-drift var(--duration) ease-in-out var(--delay) infinite alternate;animation-play-state:paused}
.bloom-atmosphere.is-running .bloom-loose-petal i{animation-play-state:running}
@keyframes bloom-petal-drift{from{transform:translate3d(-28px,26px,0) rotate(var(--turn)) rotateY(-35deg)}to{transform:translate3d(45px,-52px,0) rotate(calc(var(--turn) + 105deg)) rotateY(55deg)}}
@media(max-width:680px){.bloom-loose-petal:nth-child(n+9){display:none}.bloom-loose-petal{width:calc(var(--size)*.8);height:calc(var(--size)*1.25)}}
@media(prefers-reduced-motion:reduce){.bloom-petal-breeze{display:none}.bloom-loose-petal i{animation:none}}
.bloom-stage{background:#d7edfc}
.bloom-wash{background:linear-gradient(90deg,#eff8ff8c,transparent 34% 66%,#eff8ff70),url('assets/bloom-garden-v1.webp') center/cover no-repeat;opacity:1;transform:scale(calc(1.035 - var(--bloom-open)*.035));transform-origin:50% 65%}
.bloom-watermark,.bloom-orbit{display:none}
.bloom-atmosphere{background:radial-gradient(ellipse at 50% 48%,#eaf6ff40,transparent 58%)}
.bloom-topline{border-bottom-color:transparent}
.bloom-story,.bloom-copy{text-shadow:0 2px 18px #f5fbffd9}
.bloom-story::before{content:'';position:absolute;inset:-38px -42px;z-index:-1;background:radial-gradient(ellipse,#eff8fff2 15%,#eff8ffc7 48%,transparent 74%);filter:blur(15px);pointer-events:none}
.bloom-story p,.bloom-description{color:#355e84}
.bloom-caption{border-top-color:#527d9c24;color:#547495}
@media(max-width:680px){.bloom-wash{background-image:linear-gradient(180deg,#eaf6ff30 35%,#edf7ffb3 68%,#eff8ffcf 100%),url('assets/bloom-garden-v1.webp');background-position:center,50% 50%;background-size:cover,100% 100%}.bloom-story,.bloom-finale{text-shadow:0 2px 14px #fff}.bloom-story p{color:#355777}}

/* A slightly richer garden, with clearer type and less white haze. */
.bloom-stage{background:#9bc9ee}
.bloom-wash{background-image:linear-gradient(90deg,#eff8ff38,transparent 32% 68%,#eff8ff24),url('assets/bloom-garden-v1.webp');filter:saturate(1.14) contrast(1.07) brightness(.98)}
.bloom-atmosphere{background:none}
.bloom-sunlight{opacity:calc(var(--sun)*.28)}
.bloom-story::before{background:radial-gradient(ellipse,#eff8ffbd 12%,#eff8ff73 45%,transparent 73%);filter:blur(12px)}
.bloom-copy h2{font-size:clamp(36px,4.5vw,72px)}
.bloom-story h3{font-size:clamp(30px,2.8vw,46px)}
.bloom-finale h3{font-size:clamp(35px,3.8vw,60px)}
.bloom-description,.bloom-finale .bloom-description{font-size:18px;color:#274c73}
.bloom-eyebrow{font-size:11px;color:#42658a}
@media(max-width:900px) and (min-width:681px){.bloom-story h3{font-size:32px}}
@media(max-width:680px){
 .bloom-wash{background-image:linear-gradient(180deg,#eaf6ff0d 35%,#edf7ff66 68%,#eff8ff8c 100%),url('assets/bloom-garden-v1.webp');background-size:cover,cover}
 .bloom-intro h2{font-size:clamp(34px,8.5vw,48px)}
 .bloom-story h3{font-size:34px}.bloom-finale h3{font-size:36px}
 .bloom-description,.bloom-finale .bloom-description{font-size:16px}
 .bloom-eyebrow{font-size:10px}
}
@media(max-height:650px) and (min-width:681px){.bloom-copy h2{font-size:38px}.bloom-story h3{font-size:32px}.bloom-finale h3{font-size:34px}}

/* Keep the animated sunlight a gentle accent. */
.bloom-sunlight::after{opacity:.45}

/* Clear garden colours without the milky overlay. */
.bloom-wash{background-image:url('assets/bloom-garden-v1.webp');filter:saturate(1.26) contrast(1.14) brightness(.96)}
.bloom-sunlight{opacity:calc(var(--sun)*.10)}
.bloom-sunlight::after{opacity:.22}
.bloom-story::before{background:radial-gradient(ellipse,#eff8ff55 10%,#eff8ff22 42%,transparent 70%)}
@media(max-width:680px){.bloom-wash{background-image:url('assets/bloom-garden-v1.webp');background-size:cover;background-position:50% 50%}}

/* Unveiled illustration: no white wash, light veil, or blurred copy halo. */
.bloom-sunlight,.bloom-sunlight::after,.bloom-story::before{display:none}
.bloom-story,.bloom-copy{ text-shadow:none }

/* A local reading halo only behind the rising side headings. */
.bloom-story::before{display:block;inset:-28px -34px;background:radial-gradient(ellipse,#f5fbffd9 8%,#f1f8ffa6 43%,#eff8ff40 62%,transparent 78%);filter:blur(12px);pointer-events:none}
