
/* Floquy scroll film: a sticky four-chapter demonstration, not a video or copy
   of another company's site. Motion is entirely driven by page scroll. */
.flow-story{position:relative;min-height:96svh;background:#ededdc;color:#173d33;isolation:isolate}
.js-motion .flow-story{height:415svh}
.flow-story__pin{position:sticky;top:0;height:100svh;overflow:hidden}
.flow-story__canvas{height:100%;max-width:1430px;margin:auto;padding:100px clamp(24px,6vw,92px) 32px;display:grid;grid-template-columns:minmax(370px, .93fr) minmax(430px,1.15fr);gap:clamp(18px,5vw,80px);align-items:center}
.flow-story__eyebrow{display:inline-flex;align-items:center;gap:13px;letter-spacing:.19em;font-size:11px;font-weight:800}
.flow-story__spark{color:#9262d2;font-size:25px;display:inline-block;animation:twist 14s linear infinite}
@keyframes twist{to{transform:rotate(360deg)}}
.flow-story__copy{position:relative;z-index:2;min-height:410px;display:flex;flex-direction:column}
.flow-story__progress{width:min(290px,70%);height:3px;background:#ced4c3;border-radius:5px;margin:23px 0 15px;overflow:hidden}
.flow-story__progress i{display:block;height:100%;width:0;background:#9971d9;transform-origin:left;transition:width .12s linear}
.flow-story__counter{font:14px 'DM Sans',sans-serif;font-weight:800;letter-spacing:.13em;opacity:.69}
.flow-story__chapters{position:relative;margin-top:23px;flex:1;min-height:285px}
.flow-story__chapter{position:absolute;inset:0;opacity:0;pointer-events:none;transform:translate3d(0,32px,0);transition:opacity .65s ease,transform .7s cubic-bezier(.17,.8,.25,1)}
.flow-story__chapter.active{opacity:1;pointer-events:auto;transform:translate3d(0,0,0)}
.flow-story__chapter h2{font:400 clamp(42px,5.3vw,77px)/1.06 'DM Serif Display',Georgia,serif;letter-spacing:-.055em;margin:0 0 24px}
.flow-story__chapter h2 em{font-weight:400;color:#865bc2}
.flow-story__chapter p{font-size:clamp(15px,1.4vw,18px);line-height:1.7;max-width:410px}
.flow-story__hint{font-size:12px;font-weight:700;opacity:.75;display:flex;gap:12px;align-items:center}
.flow-story__scroll-icon{border:1px solid #8d9c89;border-radius:999px;width:30px;height:30px;display:grid;place-items:center;animation:scrollbounce 2s ease-in-out infinite}
@keyframes scrollbounce{50%{transform:translateY(7px)}}
.flow-story__scene{height:min(610px,75svh);position:relative;display:flex;align-items:center;justify-content:center;perspective:1200px}
.flow-story__halo{position:absolute;width:min(690px,65vw);height:min(690px,65vw);border:2px solid #cfd4c1;border-radius:50%;box-shadow:0 0 0 65px #c9d3bc50,0 0 0 135px #cbd9c03a;transform:scale(.9);transition:transform .9s cubic-bezier(.16,.8,.2,1),border-radius 1.2s ease}
.flow-story__scene[data-stage="1"] .flow-story__halo{transform:scale(1.08) rotate(10deg)}
.flow-story__scene[data-stage="2"] .flow-story__halo{transform:scale(.93) rotate(-10deg);border-radius:35%}
.flow-story__scene[data-stage="3"] .flow-story__halo{transform:scale(1.16) rotate(5deg)}
.flow-story__orb{position:absolute;border-radius:50%;filter:blur(0);transition:transform 1.25s cubic-bezier(.16,.8,.2,1)}
.orb-one{width:95px;height:95px;background:#e5c2ff;top:4%;right:7%}.orb-two{width:54px;height:54px;background:#ffaf91;bottom:7%;left:5%}
.flow-story__scene[data-stage="1"] .orb-one{transform:translate(-150px,50px)}
.flow-story__scene[data-stage="2"] .orb-two{transform:translate(140px,-135px) scale(1.5)}
.flow-story__scene[data-stage="3"] .orb-one{transform:translate(-220px,180px) scale(.68)}
.flow-story__visual{width:min(100%,585px);min-height:367px;border-radius:24px;background:#fffefa;box-shadow:0 36px 85px #0a322634,0 4px 0 #dfe5ce;position:relative;z-index:1;transform:rotate(-3deg) translateY(10px);transition:transform .9s cubic-bezier(.16,.8,.2,1),box-shadow .8s ease;overflow:hidden;border:1px solid #e4e0d7}
.flow-story__scene[data-stage="1"] .flow-story__visual{transform:rotate(2deg) translateY(-14px)}
.flow-story__scene[data-stage="2"] .flow-story__visual{transform:rotate(-1deg) translateY(2px)}
.flow-story__scene[data-stage="3"] .flow-story__visual{transform:rotate(0deg) translateY(-10px);box-shadow:0 45px 100px #0a322642}
.flow-story__windowbar{height:51px;display:flex;align-items:center;justify-content:space-between;padding:0 19px;background:#f7f7ed;border-bottom:1px solid #e6e6da;font-size:10px;font-weight:800;letter-spacing:.12em;color:#64736c}
.flow-story__lights{display:flex;gap:7px}.flow-story__lights i{display:block;width:10px;height:10px;border-radius:50%;background:#edc5bf}.flow-story__lights i:nth-child(2){background:#f4dca6}.flow-story__lights i:nth-child(3){background:#add5b3}
.flow-story__message{padding:34px 30px 22px;display:flex;gap:14px;align-items:flex-start;min-height:245px}
.flow-story__avatar{flex:none;background:#f5e8ff;width:40px;height:40px;display:grid;place-items:center;border-radius:13px}.flow-story__avatar img{width:26px;height:26px}
.flow-story__bubble{padding:20px 22px;border:1px solid #edeae2;background:#fff;border-radius:4px 20px 20px 20px;box-shadow:0 7px 18px #8a7d6930;flex:1;min-height:170px;transition:background .65s ease,border-color .65s ease}
.flow-story__scene[data-stage="2"] .flow-story__bubble{background:#faf1ff;border-color:#e1c9f7}
.flow-story__scene[data-stage="3"] .flow-story__bubble{background:#f5fbf5;border-color:#d4e6d6}
.flow-story__label{display:block;font-size:10px;font-weight:800;letter-spacing:.14em;color:#9274a2;margin-bottom:12px}
.flow-story__line{font-size:clamp(16px,1.55vw,22px);line-height:1.65;letter-spacing:-.025em;font-weight:500;min-height:104px;transition:opacity .2s}
.flow-story__caret{width:2px;height:22px;background:#9c71d8;display:inline-block;vertical-align:middle;animation:blink 1s steps(1) infinite}
.flow-story__voice{display:flex;align-items:center;justify-content:space-between;gap:13px;padding:14px 26px 19px;border-top:1px solid #edede4;font-size:9px;font-weight:850;color:#587165;letter-spacing:.12em}
.flow-story__wave{height:28px;display:flex;gap:3px;align-items:center}
.flow-story__wave i{display:block;width:4px;border-radius:99px;height:var(--h,12px);background:#985bdc;animation:talk .7s ease-in-out infinite alternate;animation-delay:var(--d,0s)}
.flow-story__wave i:nth-child(2n){--h:23px;--d:.12s}.flow-story__wave i:nth-child(3n){--h:9px;--d:.27s}.flow-story__wave i:nth-child(4n){--h:19px;--d:.4s}
@keyframes talk{to{height:5px;opacity:.5}}
.flow-story__scene[data-stage="3"] .flow-story__wave i{animation-play-state:paused;opacity:.25}
.flow-story__key{border:1px solid #dcded4;border-radius:7px;padding:6px 9px;color:#535f57;letter-spacing:0}
.flow-story__sticky-note{position:absolute;z-index:2;right:-9px;bottom:10px;max-width:200px;background:#ffbe9c;color:#623d2a;box-shadow:0 10px 30px #7a492f36;padding:17px;border-radius:6px;transform:rotate(7deg);font:600 22px/1.1 'Caveat',cursive;transition:transform .8s ease}
.flow-story__sticky-note span{font:20px sans-serif;display:block;color:#7b4a37;margin-bottom:8px}
.flow-story__scene[data-stage="2"] .flow-story__sticky-note{transform:rotate(-6deg) translate(-8px,-25px)}
.flow-story__handwriting{position:absolute;left:0;top:15px;font:600 30px 'Caveat',cursive;color:#7453a0;transform:rotate(-12deg)}
.flow-story__waypoints{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column}
.flow-story__waypoint{flex:1}
@media(max-width:850px){
  .flow-story__canvas{padding:105px 20px 28px;grid-template-columns:1fr;gap:0;align-content:center}
  .flow-story__copy{min-height:260px}
  .flow-story__chapters{margin-top:12px;min-height:160px}
  .flow-story__chapter h2{font-size:clamp(35px,8vw,55px);margin-bottom:10px}
  .flow-story__chapter p{font-size:14px;line-height:1.5}
  .flow-story__progress{margin:12px 0 8px}
  .flow-story__scene{height:350px}
  .flow-story__visual{min-height:265px;max-width:560px}
  .flow-story__message{min-height:180px;padding:14px}
  .flow-story__bubble{min-height:145px;padding:13px 14px}
  .flow-story__line{font-size:16px;min-height:92px}
  .flow-story__voice{padding:9px 15px}
  .flow-story__sticky-note{max-width:150px;bottom:-7px;right:0;font-size:17px}
  .flow-story__handwriting{display:none}
}
@media(max-width:490px){
  .flow-story__copy{min-height:240px}
  .flow-story__chapter h2{font-size:36px}
  .flow-story__hint{font-size:10px}
  .flow-story__scene{height:300px}
  .flow-story__visual{min-height:230px}
  .flow-story__message{min-height:151px}
  .flow-story__bubble{min-height:122px}
  .flow-story__line{font-size:14px;min-height:73px}
  .flow-story__sticky-note{font-size:15px;max-width:123px;padding:10px;bottom:-2px}
  .flow-story__windowbar{height:38px}
}
@media(prefers-reduced-motion:reduce){
  .flow-story{height:auto!important;min-height:auto}
  .flow-story__pin{height:auto;position:relative;overflow:visible}
  .flow-story__canvas{height:auto;padding-top:65px;padding-bottom:90px}
  .flow-story__chapters{min-height:auto}
  .flow-story__chapter{position:relative;opacity:1;transform:none;margin:20px 0;pointer-events:auto}
  .flow-story__chapter:not(.active){display:block}
  .flow-story__hint,.flow-story__waypoints{display:none}
  .flow-story__scene{height:400px}
  .flow-story__visual{transform:none}
}

/* Put the scroll cue below the active chapter, not between its heading and copy. */
.flow-story__copy{min-height:450px}
.flow-story__chapters{flex:0 0 310px;min-height:310px}
.flow-story__hint{margin-top:24px;flex-shrink:0;position:relative;z-index:3}
@media(max-width:850px){.flow-story__copy{min-height:280px}.flow-story__chapters{flex:0 0 175px;min-height:175px}.flow-story__hint{margin-top:14px}}
@media(max-width:490px){.flow-story__copy{min-height:270px}.flow-story__chapters{flex:0 0 178px;min-height:178px}}
