/* Full-width chapters start directly with the animated scenes. */
.use-cases .use-case-grid { display: block; }
.use-cases .use-case-card { display: block; padding: 0; border: 0; }
.supplier-reveal { display: flex; align-items: center; padding: clamp(24px, 4vw, 62px); }
.use-cases.is-supplier-story { height: calc(var(--story-travel) + var(--story-height) + 100px); padding-top: 32px; }
.is-supplier-story > .wrap { position: sticky; top: var(--story-top); }
.is-supplier-story .use-case-grid { height: var(--story-height); position: relative; }
.is-supplier-story .use-case-card { overflow: hidden; }
.is-supplier-story .use-case-investigate {
  position: relative; z-index: 2; width: 100%; height: 100%; background: #fff;
}
.is-supplier-story .use-case-integrate,
.is-supplier-story .use-case-tenders { display: none; }
.is-supplier-story .supplier-reveal {
  display: flex; align-items: center; position: absolute; inset: 0; padding: clamp(24px, 4vw, 62px);
  gap: 0; pointer-events: none;
}
.supplier-copy { width: 43%; flex-shrink: 0; }
.supplier-copy h2 {
  color: var(--ink); margin: 0; max-width: 17ch;
  font: 500 clamp(30px, 3.3vw, 49px)/1.1 Georgia, serif; letter-spacing: -.045em;
}
.use-case-card .supplier-copy p { margin: 24px 0 0; max-width: 34ch; font-size: clamp(15px, 1.4vw, 18px); line-height: 1.6; }
.supplier-copy, .use-case-card .supplier-copy p { text-align: left; }
.supplier-drawing { width: 64%; max-height: 100%; flex-shrink: 0; margin-left: -5%; transform: none; }
.supplier-mask-pull { transform: translate(var(--mask-x, 116px), var(--mask-y, -125px)) rotate(var(--mask-angle, 16deg)); transform-origin: 390px 300px; }
.supplier-hand { opacity: var(--hand-opacity, 1); }
.supplier-records { opacity: var(--records-opacity, 1); }
.supplier-discovery { opacity: var(--discovery-opacity, 1); }
.supplier-hidden-face { opacity: var(--face-opacity, 1); }
@media (max-width: 640px) {
  .is-supplier-story .use-case-grid { display: block; }
  .is-supplier-story .use-case-card { display: flex; align-items: center; text-align: center; }
  .is-supplier-story .use-case-investigate { width: 100%; }
  .is-supplier-story .supplier-reveal { flex-direction: column; justify-content: center; padding: 24px 18px 10px; }
  .supplier-copy { width: 100%; padding-inline: 8px; }
  .supplier-copy h2 { font-size: clamp(26px, 7vw, 35px); max-width: 20ch; }
  .use-case-card .supplier-copy p { font-size: 14px; margin-top: 14px; max-width: 38ch; }
  .supplier-drawing { width: 112%; margin: -6px -6% 0; max-height: 58%; }
}
@media (prefers-reduced-motion: reduce) {
  .use-cases .supplier-reveal { display: flex; align-items: center; padding: 36px; gap: 12px; }
  .use-cases .use-case-investigate { display: flex; flex-wrap: wrap; }
  .use-cases .supplier-reveal { position: relative; }
  .supplier-copy { width: 100%; opacity: 1; transform: none; }
  .supplier-copy h2 { font-size: 25px; }
  .supplier-drawing { width: 100%; margin: 0; transform: none; }
  .use-cases .supplier-reveal { flex-direction: column; }
  .supplier-mask-pull { transform: translate(116px, -125px) rotate(16deg); }
  .supplier-hand, .supplier-records, .supplier-hidden-face, .supplier-discovery { opacity: 1; }
}

/* The second card opens into the next chapter of the same pinned sequence. */
.integration-reveal { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(20px, 2vw, 32px); align-items: center; padding: clamp(24px, 4vw, 62px); }
.is-supplier-story.is-integration-stage .use-case-investigate { transform: translateX(var(--supplier-slide)); pointer-events: none; }
.is-supplier-story.is-integration-stage .use-case-integrate {
  display: flex; position: absolute; top: 0; left: 0; z-index: 4;
  width: 100%; height: 100%; opacity: 1; transform: translateX(var(--integration-slide));
  background: #fff; border-left: 0;
}
.is-integration-stage .integration-reveal {
  display: grid; align-items: center; position: absolute; inset: 0; padding: clamp(24px, 4vw, 62px);
  opacity: var(--integration-reveal); pointer-events: none;
}
.integration-copy { width: 100%; min-width: 0; text-align: left; }
.integration-copy h2 { color: var(--ink); margin: 0; max-width: 18ch; font: 500 clamp(30px, 3.3vw, 49px)/1.1 Georgia, serif; letter-spacing: -.045em; }
.integration-word-change { display: inline; }
.integration-difficult { position: relative; display: inline-block; }
.integration-strike {
  position: absolute; left: -.08em; top: 52%; width: calc(100% + .16em); height: .22em;
  overflow: visible; color: #315cc6; transform: translateY(-50%); pointer-events: none;
  clip-path: inset(0 var(--integration-strike-cover, 100%) 0 0);
}
.integration-simple { display: inline-block; color: #1b4580; opacity: var(--integration-simple, 1); transform: translateY(calc(4px * (1 - var(--integration-simple, 1)))); }
.integration-details { opacity: var(--integration-details, 1); }
.use-case-card .integration-copy p { text-align: left; max-width: 32ch; margin: 24px 0 0; font-size: clamp(15px, 1.4vw, 18px); line-height: 1.6; }
.integration-benefits { display: grid; gap: 12px; list-style: none; padding: 0; margin: 24px 0 0; color: #24405f; font-size: clamp(14px, 1.3vw, 17px); }
.integration-benefits li { display: flex; align-items: center; gap: 10px; }
.integration-benefit-icon { display: block; width: 24px; height: 24px; flex-shrink: 0; object-fit: contain; }
.integration-drawing { position: relative; aspect-ratio: 3 / 2; width: 100%; min-width: 0; max-height: 100%; margin: 0; transform: none; }
.integration-scene, .counter-effects { display: block; position: absolute; inset: 0; width: 100%; height: 100%; }
.counter-complaint-pe { transform-origin: 277px 682px; }
.counter-complaint-co { transform-origin: 759px 697px; }
.counter-complaint-arm { transform: rotate(0deg); }
.is-waiting .counter-complaint-arm { animation: counter-complaint 3.8s ease-in-out infinite; }
.is-waiting .counter-complaint-co { animation-duration: 4.6s; animation-delay: -2.2s; }
@keyframes counter-complaint {
  0%, 14%, 52%, 100% { transform: rotate(0deg); }
  23%, 39% { transform: rotate(-19deg); }
  30%, 46% { transform: rotate(-8deg); }
}
.counter-ready { background: #fff; clip-path: inset(0 0 var(--counter-cover, 0%) 0); }
.counter-effects { z-index: 1; overflow: visible; }
.counter-before-details { opacity: var(--counter-waiting, 0); }
.counter-after-details { opacity: var(--counter-ready, 1); }
.counter-clock-hand, .counter-clock-hour { transform-origin: 1370px 337px; }
.is-waiting .counter-clock-hand { animation: counter-clock-tick 3s linear infinite; }
.is-waiting .counter-clock-hour { animation: counter-clock-tick 36s linear infinite; }
.counter-deliveries { opacity: var(--counter-delivered, 0); }
.counter-delivery { opacity: 0; }
.is-serving .counter-delivery { animation: counter-hand-over 2.4s ease-in-out infinite; }
.is-serving .counter-delivery:nth-child(2) { animation-delay: -.8s; }
.is-serving .counter-delivery:nth-child(3) { animation-delay: -1.6s; }
@keyframes counter-clock-tick { to { transform: rotate(360deg); } }
@keyframes counter-hand-over {
  0%, 12% { opacity: 0; transform: translateY(0); }
  22% { opacity: 1; transform: translateY(8px); }
  60% { opacity: 1; transform: translateY(110px); }
  76%, 100% { opacity: 0; transform: translateY(135px); }
}
@media (max-width: 640px) {
  .is-supplier-story .use-case-integrate { display: none; }
  .is-supplier-story.is-integration-stage .use-case-integrate { display: flex; align-items: center; text-align: center; }
  .is-integration-stage .integration-reveal { display: flex; flex-direction: column; justify-content: center; padding: 24px 18px 10px; }
  .is-integration-stage .integration-copy { position: absolute; top: 24px; left: 18px; width: calc(100% - 36px); padding-inline: 8px; }
  .integration-copy h2 { font-size: clamp(26px, 7vw, 35px); max-width: 20ch; }
  .use-case-card .integration-copy p { font-size: 14px; margin-top: 14px; max-width: 38ch; }
  .integration-benefits { font-size: 13px; margin-top: 16px; gap: 8px; }
  .integration-benefit-icon { width: 22px; height: 22px; }
  .is-integration-stage .integration-drawing { position: absolute; top: var(--integration-drawing-top); left: 50%; width: var(--integration-drawing-width); margin: 0; max-height: none; transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .use-cases .use-case-integrate { display: flex; }
  .use-cases .integration-reveal { display: flex; position: relative; align-items: center; flex-direction: column; padding: 36px; gap: 12px; }
  .integration-copy { width: 100%; opacity: 1; transform: none; }
  .integration-copy h2 { font-size: 25px; }
  .integration-drawing { width: 100%; margin: 0; transform: none; }
  .integration-difficult, .counter-before, .counter-before-details, .counter-deliveries { display: none; }
  .integration-simple, .integration-details { opacity: 1; transform: none; }
  .counter-ready { clip-path: none; }
  .counter-after-details { opacity: 1; }
  .counter-clock-hand, .counter-clock-hour, .counter-delivery, .counter-complaint-arm { animation: none; }
}

/* Third chapter: one fishing scene grows from a rod to an industrial net. */
.tender-reveal { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: clamp(20px, 2vw, 32px); align-items: center; padding: clamp(24px, 4vw, 62px); }
.is-supplier-story.is-tender-stage .use-case-tenders {
  display: flex; position: absolute; inset: 0; z-index: 5; width: 100%; height: 100%;
  opacity: 1; transform: translateX(var(--tender-slide)); background: #fff; border: 0;
}
.is-tender-stage .tender-reveal {
  display: grid; align-items: center; position: absolute; inset: 0;
  padding: clamp(24px, 4vw, 62px); opacity: var(--tender-open); pointer-events: none;
}
.tender-copy { width: 100%; min-width: 0; text-align: left; }
.tender-copy h2 { color: var(--ink); margin: 0; max-width: 16ch; font: 500 clamp(30px, 3.3vw, 49px)/1.1 Georgia, serif; letter-spacing: -.045em; }
.use-case-card .tender-copy p { text-align: left; max-width: 32ch; margin: 24px 0 0; font-size: clamp(15px, 1.4vw, 18px); line-height: 1.6; }
.tender-drawing { width: 100%; min-width: 0; max-height: 100%; margin: 0; overflow: hidden; }
.tender-crane-arrival { transform: translateX(var(--tender-crane-x, 0px)); opacity: var(--tender-crane-opacity, 1); }
.tender-net-lift { transform: translateY(var(--tender-net-y, -30px)); }
.tender-net-sway { transform-origin: 497px 119px; }
.tender-rod-pull { transform-origin: 209px 429px; transform: rotate(var(--tender-rod-angle, 0deg)); }
.tender-fishing-line line { transform-origin: 348px 252px; transform: scaleY(var(--tender-line-scale, .648)); }
.tender-single-pull { transform: translateY(var(--tender-single-y, -100px)); }
.tender-single, .tender-fishing-line { opacity: var(--tender-single-opacity, 0); }
.tender-net-check, .tender-fisherman-smile, .tender-delivered { opacity: var(--tender-success, 1); }
.tender-delivered { translate: 0 calc(18px * (1 - var(--tender-success, 1))); }
.is-fishing .tender-paper-drift { animation: tender-paper-bob 3.6s ease-in-out infinite; }
.tender-unmatched > g:nth-child(2) .tender-paper-drift { animation-delay: -1.3s; }
.tender-unmatched > g:nth-child(3) .tender-paper-drift { animation-delay: -2.1s; }
.tender-matching-papers.is-contained { clip-path: url(#tender-basket-cavity); }
.tender-matching-papers { transform-origin: 497px var(--tender-net-pivot-y, 89px); }
.has-tender-catch .tender-net-sway, .has-tender-catch .tender-matching-papers { animation: tender-basket-sway 5.4s ease-in-out infinite; }
@keyframes tender-paper-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes tender-basket-sway { 0%,100% { transform: rotate(-.6deg); } 50% { transform: rotate(.6deg); } }
@media (max-width: 640px) {
  .is-supplier-story .use-case-tenders { display: none; }
  .is-supplier-story.is-tender-stage .use-case-tenders { display: flex; }
  .is-tender-stage .tender-reveal { display: flex; flex-direction: column; padding: 24px 18px 10px; }
  .is-tender-stage .tender-copy { position: absolute; top: 24px; left: 18px; width: calc(100% - 36px); padding-inline: 8px; }
  .tender-copy h2 { font-size: clamp(26px, 7vw, 35px); max-width: 20ch; }
  .use-case-card .tender-copy p { font-size: 14px; margin-top: 14px; max-width: 38ch; }
  .is-tender-stage .tender-drawing { position: absolute; top: var(--tender-drawing-top); left: 50%; width: var(--tender-drawing-width); max-height: none; margin: 0; transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .use-cases .use-case-tenders { display: flex; flex-wrap: wrap; }
  .use-cases .tender-reveal { display: flex; position: relative; flex-direction: column; align-items: center; padding: 36px; gap: 12px; }
  .tender-copy { position: static; width: 100%; }
  .tender-copy h2 { font-size: 25px; }
  .tender-drawing { position: static; width: 100%; margin: 0; transform: none; }
  .tender-crane-arrival { transform: none; opacity: 1; }
  .tender-net-lift { transform: translateY(-30px); }
  .tender-single, .tender-fishing-line { display: none; }
  .tender-net-check, .tender-fisherman-smile, .tender-delivered { opacity: 1; }
  .tender-delivered { translate: none; }
  .tender-paper-drift, .tender-net-sway, .tender-matching-papers { animation: none; }
  .tender-rod-pull { transform: none; }
}

.use-cases:not(.is-supplier-story) .integration-difficult { display: none; }
@media (max-width: 640px) {
  .use-cases:not(.is-supplier-story) .supplier-reveal,
  .use-cases:not(.is-supplier-story) .integration-reveal,
  .use-cases:not(.is-supplier-story) .tender-reveal { display: flex; flex-direction: column; padding: 24px 18px; gap: 16px; }
  .use-cases:not(.is-supplier-story) .supplier-copy,
  .use-cases:not(.is-supplier-story) .integration-copy,
  .use-cases:not(.is-supplier-story) .tender-copy { position: static; width: 100%; }
  .use-cases:not(.is-supplier-story) .supplier-drawing,
  .use-cases:not(.is-supplier-story) .integration-drawing,
  .use-cases:not(.is-supplier-story) .tender-drawing { position: static; width: 100%; margin: 0; transform: none; }
}
