/* Source artwork stays continuous. Whitespace inside each original is retained. */
.original-flow { --case-width: 1100px; }
.original-flow .case-header,
.original-flow .next-project { max-width: calc(var(--case-width) + 2 * var(--gutter)); margin-inline: auto; }
.original-flow .case-header { padding-block: clamp(2rem, 4vw, 4rem); }
.original-flow .case-header h1 { font-size: clamp(2.5rem, 6vw, 5.5rem); }
.original-flow .campaign-art {
  width: calc(100% - 2 * var(--gutter));
  max-width: var(--case-width);
  margin-inline: auto;
  background: var(--campaign-background, #000);
}
.original-flow .source-module { margin: 0 0 var(--module-gap, 0px); padding: 0; }
.original-flow .source-module:last-child { margin-bottom: 0; }
.original-flow .source-module img { display: block; width: 100%; height: auto; border: 0; border-radius: 0; }
.original-flow .source-film { position: relative; aspect-ratio: 16 / 9; background: #000; }
.original-flow .source-film iframe { display: block; position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.original-flow .project-details {
  width: calc(100% - 2 * var(--gutter)); max-width: var(--case-width);
  margin: clamp(2rem, 5vw, 4rem) auto 0;
}
.original-flow .project-details > summary {
  display: flex; align-items: center; justify-content: space-between;
  padding-block: 1rem; cursor: pointer; list-style: none;
  font: 500 clamp(1.1rem, 2vw, 1.4rem)/1.4 var(--display);
}
.original-flow .project-details > summary::-webkit-details-marker { display: none; }
.original-flow .project-details > summary::after { content: '+'; color: #aaa; font-size: 1.5rem; }
.original-flow .project-details[open] > summary::after { content: '−'; }
.original-flow .project-details > summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.original-flow .project-details .case-story,
.original-flow .project-details .case-results { padding: 2rem 0; max-width: none; }
.original-flow .case-meta { border-top: 0; }
.original-flow .result-grid > div { border-top: 0; }
.original-flow .site-footer { border-top: 0; }
@media (max-width: 650px) {
  .original-flow .campaign-art { width: 100%; }
  .original-flow .case-header > .text-link { margin-bottom: 1.75rem; }
}

/* Shared readable narrative, in each campaign's own palette. */
.original-flow .campaign-copy {
  padding: clamp(2.25rem, 6vw, 4.5rem) clamp(1.25rem, 5vw, 5rem);
  background: var(--copy-background, #000); color: var(--copy-color, #dededb);
}
.original-flow .campaign-copy-inner {
  max-width: 45rem; margin-inline: auto;
  font-family: var(--display); font-size: clamp(1rem, 1.7vw, 1.25rem);
  font-weight: 500; line-height: 1.55; letter-spacing: -.015em;
  overflow-wrap: break-word;
}
.original-flow .campaign-copy p { margin: 0; }
.original-flow .campaign-copy p + p { margin-top: 1.25em; }
.original-flow .art-window { position: relative; overflow: hidden; }
.original-flow .art-window img {
  position: absolute; max-width: none; width: var(--art-width, 100%); height: auto;
  left: var(--art-left, 0); top: var(--art-top, 0);
}
.original-flow .product-copy { display: grid; grid-template-columns: 1fr 32%; align-items: center; gap: clamp(1.5rem, 4vw, 3rem); }
.original-flow .product-copy .art-window { width: 100%; }
.original-flow .source-film { margin-inline: 0; border-radius: 0; }
.original-flow .campaign-credits { width: calc(100% - 2 * var(--gutter)); max-width: 1100px; margin: clamp(2rem, 5vw, 4rem) auto 0; }
.original-flow .campaign-credits .case-meta { margin: 0; max-width: none; }
.original-flow .campaign-credits .case-results { padding: 2rem 0 0; max-width: none; }
.original-flow .campaign-credits .case-results h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
.original-flow .portrait-motion { max-width: 560px; margin-inline: auto; }
.original-flow .source-panel[data-source-module='the-whirl-03'] { background: #071325; }
@media(max-width:650px) {
  .original-flow .product-copy { grid-template-columns: 1fr; }
  .original-flow .product-copy .art-window { width: min(60%, 250px); margin-inline: auto; }
}
/* One understated results language across campaign-native and site-native pages. */
.case-page .campaign-stats {
  width:calc(100% - 2 * var(--gutter)); max-width:1100px;
  margin:clamp(2.5rem,6vw,5rem) auto;
  padding:clamp(2.25rem,5vw,4rem) clamp(1.25rem,5vw,4rem);
  box-sizing:border-box; background:var(--copy-background); color:var(--copy-color);
}
.case-page .campaign-art > .campaign-stats {width:100%;max-width:none;margin:0;}
.case-page .campaign-stats h2 {
  margin:0 0 clamp(1.75rem,4vw,3rem);
  font:500 clamp(1.5rem,2.8vw,2.25rem)/1.15 var(--display);letter-spacing:-.035em;
}
.case-page .campaign-stats h2 span {color:var(--result-accent);}
.case-page .campaign-stats dl {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.25rem 1.5rem;margin:0;}
.case-page .campaign-stats dl > div {min-width:0;}
.case-page .campaign-stats dt {font:500 clamp(2rem,4.4vw,3.5rem)/1.1 var(--display);letter-spacing:-.025em;font-variant-numeric:lining-nums tabular-nums;color:var(--result-accent);}
.case-page .campaign-stats dd {font:400 clamp(.875rem,1.3vw,1rem)/1.5 var(--display);margin:.65rem 0 0;max-width:25ch;}
@media(min-width:900px){
 .case-page .campaign-stats dl {grid-template-columns:repeat(4,minmax(0,1fr));gap:2.5rem;}
 .case-page .campaign-stats.three-stats dl {grid-template-columns:repeat(3,minmax(0,1fr));}
 .case-page .campaign-stats dl:has(> div:nth-child(2):last-child) {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:650px){
 .case-page .campaign-stats {width:100%;}
 .case-page .campaign-stats dl {grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1.25rem;}
}
.original-flow .idea-artboard { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; background:#ae1711; padding:0 4% 4%; gap:2%; }
.original-flow .idea-artboard .idea-frames { grid-column:1/-1; }


/* Explicitly outrank the shared source-module image rule in this later sheet.
   The original 431x232 logo has visible bounds x54 y67 width315 height100. */
.original-flow .source-film.tabii-cover .tabii-cover-brand {
  left:50%; top:50%; width:27.5%; height:auto;
  aspect-ratio:315 / 100; transform:translate(-50%,-50%);
}
.original-flow .source-film.tabii-cover .tabii-cover-brand > img {
  position:absolute; display:block; width:136.825397%; height:232%;
  max-width:none; left:-17.142857%; top:-67%; object-fit:fill;
}

/* One campaign results language: the approved TRT black/orange treatment. */
.case-page .campaign-stats dt {font-weight:500;}
/* Keep the pack connected to the original cast composition at its source scale. */
.original-flow .cubuk-hero {background:#ea1d2e; padding-bottom:4%;}
.original-flow .cubuk-pack {position:relative;width:26.801562%;margin:-5.147320% 0 0 36.208733%;}
/* One rest state on every case, including Vimeo films that used to load directly. */
.case-page [data-case-player] .film-play {
 z-index:2; inset:0; display:flex;align-items:flex-end;justify-content:flex-start;
 padding:clamp(.75rem,2vw,1.5rem);gap:0;background:transparent;
}
.case-page [data-case-player] .film-play[hidden] {display:none;}
.case-page [data-case-player] .film-play .play-icon {
 width:clamp(2.75rem,4vw,3rem);height:clamp(2.75rem,4vw,3rem);
 border:1px solid #ffffff90;background:#0006;border-radius:50%;
}
.case-page [data-case-player] .film-play:hover .play-icon {background:var(--orange);border-color:var(--orange);}
.case-page [data-case-player] > iframe {z-index:3;}
.case-page [data-case-player].is-playing > .case-poster {visibility:hidden;}
.original-flow .source-film.case-player > .case-poster {position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:none;}
.original-flow .tabii-campaign-copy p:last-child {color:inherit;}
