.consensus-page{background:var(--paper);color:var(--ink)}
.consensus-page main{max-width:1680px;margin:auto;padding:0 clamp(20px,4.5vw,78px)}
.consensus-hero{min-height:calc(100svh - 72px);display:grid;grid-template-columns:minmax(320px,.88fr) minmax(480px,1.25fr);gap:clamp(45px,7vw,120px);align-items:center;padding:clamp(70px,9vh,120px) 0;border-bottom:1px solid var(--line)}
.consensus-intro>span,.section-label{color:var(--muted)}
.consensus-intro h1{font:400 clamp(4rem,6.9vw,8.5rem)/.82 'Instrument Serif',serif;letter-spacing:-.065em;margin:clamp(35px,5vh,65px) 0 30px;text-transform:uppercase}
.consensus-intro h1 em{font-weight:400;color:var(--accent)}
.consensus-intro>p,.section-copy p,.consensus-step p,.signal-card p{font:500 .83rem/1.58 'DM Mono',monospace;letter-spacing:.015em;text-transform:uppercase}
.consensus-intro>p{max-width:580px;color:var(--muted)}
.model-dots{display:flex;gap:12px;margin-top:28px}.model-dots i{width:18px;height:18px;border-radius:50%;background:#20b981}.model-dots i:nth-child(2){background:#3988f7}.model-dots i:nth-child(3){background:#f27942}
.live-app{position:relative;display:block;box-shadow:0 28px 75px rgba(23,23,21,.1);overflow:hidden}.live-app img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .8s cubic-bezier(.2,.75,.2,1),filter .5s}.live-app>span{position:absolute;right:18px;bottom:18px;background:var(--ink);color:var(--paper);padding:16px 19px;font:500 .75rem 'DM Mono',monospace;letter-spacing:.05em;transition:background .35s,transform .5s cubic-bezier(.2,.75,.2,1)}.live-app>span b{font-size:1.1rem;margin-left:18px}.live-app:hover img,.live-app:focus-visible img{transform:scale(1.035);filter:brightness(.88)}.live-app:hover>span,.live-app:focus-visible>span{background:var(--accent);transform:translate(-5px,-5px)}
.consensus-section{display:grid;grid-template-columns:18% 1fr;gap:clamp(25px,5vw,85px);padding:clamp(75px,10vw,150px) 0;border-bottom:1px solid var(--line)}
.consensus-section h2{font:400 clamp(3.2rem,6.5vw,8rem)/.88 'Instrument Serif',serif;letter-spacing:-.06em;text-transform:uppercase;margin:0;max-width:1050px}.consensus-section h2 em{font-weight:400;color:var(--accent)}
.idea-section,.learned-section{grid-template-columns:18% minmax(420px,1.1fr) minmax(280px,.7fr)}.idea-section h2,.learned-section h2{grid-column:2}.idea-section .section-copy,.learned-section .section-copy{grid-column:3;display:grid;align-content:center;gap:20px;color:var(--muted)}.section-copy p{margin:0}
.process-section,.signal-section{grid-template-columns:18% 1fr}.process-grid,.signal-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.consensus-step{padding:24px 24px 45px;border-right:1px solid var(--line);min-height:240px}.consensus-step:last-child{border-right:0}.consensus-step b{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;font:500 .7rem 'DM Mono',monospace}.consensus-step h3,.signal-card h3{font:400 clamp(1.8rem,2.6vw,3.3rem)/.95 'Instrument Serif',serif;letter-spacing:-.04em;margin:45px 0 14px}.consensus-step p,.signal-card p{color:var(--muted);margin:0}
.signal-grid{grid-template-columns:repeat(3,1fr)}.signal-card{padding:30px;min-height:330px;border-right:1px solid var(--line);position:relative;overflow:hidden}.signal-card:last-child{border-right:0}.signal-card .mono{display:block;margin-top:42px;color:var(--muted)}.signal-card h3{margin:15px 0}.signal-mark{height:56px;display:flex;align-items:center}.signal-mark i{display:block;width:56px;height:56px;border-radius:50%;background:#39bd88}.signal-two .signal-mark i{background:#4a98f4;opacity:.55}.signal-two .signal-mark i+ i{margin-left:-22px}.signal-split .signal-mark{gap:9px}.signal-split .signal-mark i{background:#39bd88}.signal-split .signal-mark i:nth-child(2){background:#4a98f4}.signal-split .signal-mark i:nth-child(3){background:#f27942}.signal-card{transition:background .55s,transform .65s cubic-bezier(.2,.75,.2,1)}.signal-card:hover{background:white;transform:translateY(-10px)}
.consensus-cta{min-height:62vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:42px}.consensus-cta>a{font:400 clamp(4rem,10vw,11rem)/.8 'Instrument Serif',serif;letter-spacing:-.06em;text-transform:uppercase;transition:color .35s,transform .7s cubic-bezier(.2,.75,.2,1)}.consensus-cta>a:hover{color:var(--accent);transform:translateX(12px)}
@media(prefers-reduced-motion:no-preference){.consensus-intro{animation:caseInLeft 1.1s both}.live-app{animation:caseInRight 1.1s .18s both}@keyframes caseInLeft{from{opacity:0;transform:translateX(-55px)}to{opacity:1;transform:none}}@keyframes caseInRight{from{opacity:0;transform:translateX(55px)}to{opacity:1;transform:none}}}
@media(max-width:900px){.consensus-hero{grid-template-columns:1fr;min-height:auto}.idea-section,.learned-section,.consensus-section{grid-template-columns:1fr}.idea-section h2,.learned-section h2,.idea-section .section-copy,.learned-section .section-copy{grid-column:auto}.process-grid{grid-template-columns:1fr 1fr}.signal-grid{grid-template-columns:1fr}.signal-card{border-right:0;border-bottom:1px solid var(--line)}}
@media(max-width:640px){.consensus-page main{padding:0 18px}.consensus-hero{padding:65px 0 75px;gap:45px}.consensus-intro h1{font-size:15vw}.live-app img{aspect-ratio:4/3}.live-app>span{right:10px;bottom:10px;padding:13px}.consensus-section{padding:75px 0}.consensus-section h2{font-size:13vw}.process-grid{grid-template-columns:1fr}.consensus-step{border-right:0;border-bottom:1px solid var(--line);min-height:auto;padding:25px 0 45px}.consensus-step h3{margin-top:28px}.signal-card{padding:28px 0}.consensus-cta{min-height:55vh}.consensus-cta>a{font-size:17vw}}
/* Compact editorial rhythm for the expanded case study. */
.consensus-hero{min-height:auto;grid-template-columns:minmax(350px,.9fr) minmax(440px,1.15fr);gap:clamp(28px,4vw,72px);padding:clamp(48px,6vw,92px) 0 clamp(42px,5vw,76px)}
.consensus-intro h1{font-size:clamp(3.7rem,5.4vw,7rem);margin:25px 0 24px;line-height:.88}
.consensus-intro>p{font:400 1rem/1.55 'Space Grotesk',sans-serif;text-transform:none;letter-spacing:0;color:var(--ink);margin:0 0 14px;max-width:580px}
.consensus-intro>p+p{color:var(--muted)}
.case-button{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;margin-top:17px;padding:15px 19px;background:var(--accent);color:white;font:500 .78rem 'DM Mono',monospace;letter-spacing:.05em;transition:background .25s,transform .25s}
.case-button:hover,.case-button:focus-visible{background:var(--ink);transform:translateY(-3px)}
.live-app img{aspect-ratio:1363/936;object-fit:cover}
.case-next{display:flex;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid var(--ink);color:var(--muted)}.case-next a{color:var(--accent)}.case-next a:hover{text-decoration:underline}
.consensus-section{grid-template-columns:18% 1fr;gap:clamp(24px,3vw,55px);padding:clamp(50px,5.5vw,90px) 0;scroll-margin-top:25px}
.idea-section,.insight-section,.failure-section,.learned-section,.next-section{grid-template-columns:18% minmax(0,1fr) minmax(280px,.75fr)}
.idea-section h2,.insight-section h2,.failure-section h2,.learned-section h2,.next-section h2{grid-column:2}
.idea-section .section-copy,.insight-section .section-copy,.failure-section .section-copy,.learned-section .section-copy,.next-section .section-copy{grid-column:3;display:grid;align-content:center;gap:16px}
.consensus-section h2{font-size:clamp(3.2rem,5vw,6.7rem);line-height:.9}
.section-copy p,.consensus-step p,.signal-card p{font:400 1rem/1.55 'Space Grotesk',sans-serif;letter-spacing:0;text-transform:none;color:#44443f}
.section-copy p strong{color:var(--ink);font-weight:600}
.process-grid,.signal-grid{min-width:0}
.consensus-step{padding:21px 19px 30px;min-height:0}.consensus-step h3{font-size:clamp(1.7rem,2.3vw,3rem);margin:35px 0 12px}
.signal-card{min-height:0;padding:25px 25px 36px}.signal-card .mono{margin-top:25px}.signal-card h3{margin:13px 0}
.consensus-cta{min-height:40vh;gap:25px;padding:70px 0}.consensus-cta>a{font-size:clamp(3.5rem,8vw,9rem)}
@media(max-width:1180px){.idea-section,.insight-section,.failure-section,.learned-section,.next-section{grid-template-columns:18% 1fr}.idea-section h2,.insight-section h2,.failure-section h2,.learned-section h2,.next-section h2,.idea-section .section-copy,.insight-section .section-copy,.failure-section .section-copy,.learned-section .section-copy,.next-section .section-copy{grid-column:2}.process-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.consensus-hero{grid-template-columns:1fr}.consensus-section,.idea-section,.insight-section,.failure-section,.learned-section,.next-section{grid-template-columns:1fr}.idea-section h2,.insight-section h2,.failure-section h2,.learned-section h2,.next-section h2,.idea-section .section-copy,.insight-section .section-copy,.failure-section .section-copy,.learned-section .section-copy,.next-section .section-copy{grid-column:1}.consensus-section{gap:24px}.process-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.consensus-hero{padding:42px 0 36px;gap:30px}.consensus-intro h1{font-size:12.5vw;margin:24px 0}.case-next{font-size:.65rem}.case-next span{max-width:48%}.consensus-section{padding:48px 0}.consensus-section h2{font-size:12vw}.process-grid{grid-template-columns:1fr}.consensus-step{padding:20px 0 28px}.signal-card{padding:25px 0}.consensus-cta{min-height:35vh;padding:50px 0}}
/* Case navigation and the four-column systems layout. */
.case-back{display:inline-flex;align-items:center;gap:11px;margin-top:28px;color:var(--accent);font-size:.76rem;letter-spacing:.06em;border-bottom:1px solid currentColor;padding-bottom:7px;transition:gap .3s,color .3s}.case-back:hover,.case-back:focus-visible{gap:18px;color:var(--ink)}.case-back span{font:400 1.35rem/1 'Instrument Serif',serif}.case-back-bottom{margin:12px 0 50px}
.consensus-hero{padding-top:36px}
.process-grid{grid-template-columns:repeat(4,minmax(0,1fr));transition:grid-template-columns .55s cubic-bezier(.2,.75,.2,1)}
.consensus-step{border-right:0;border-left:1px solid var(--line);min-width:0;min-height:340px;transition:background .4s,padding .55s}.consensus-step:first-child{border-left:0}.consensus-step:hover{background:#fff}.consensus-step h3{transition:color .3s,transform .55s cubic-bezier(.2,.75,.2,1)}.consensus-step:hover h3{color:var(--accent);transform:translateX(5px)}
.signal-grid{border-bottom:1px solid var(--line)}.signal-card,.signal-card:last-child{border-right:0}.signal-card+ .signal-card{border-left:1px solid var(--line)}.signal-card:hover h3{color:var(--accent)}.signal-card h3{transition:color .3s}
.consensus-section h2{font-size:clamp(2.9rem,4.2vw,5.8rem)}
.roll-line{display:block;overflow:hidden;padding-bottom:.07em;margin-bottom:-.07em}.roll-line>span{display:block}
@media(prefers-reduced-motion:no-preference){
  .case-motion-ready .consensus-section .roll-line>span{transform:translateY(110%);opacity:.25;transition:transform 1s cubic-bezier(.2,.75,.2,1),opacity .7s}
  .case-motion-ready .consensus-section.case-in-view .roll-line>span{transform:none;opacity:1}
  .case-motion-ready .consensus-section .roll-line:nth-child(2)>span{transition-delay:.14s}
  .case-motion-ready .consensus-section .roll-line:nth-child(3)>span{transition-delay:.28s}
  .case-motion-ready .consensus-section .section-copy p{opacity:0;transform:translateY(28px);transition:opacity .75s,transform .9s cubic-bezier(.2,.75,.2,1)}
  .case-motion-ready .consensus-section.case-in-view .section-copy p{opacity:1;transform:none}
  .case-motion-ready .consensus-section .section-copy p:nth-child(1){transition-delay:.28s}
  .case-motion-ready .consensus-section .section-copy p:nth-child(2){transition-delay:.43s}
  .case-motion-ready .consensus-section .section-copy p:nth-child(3){transition-delay:.58s}
}
@media(hover:hover) and (min-width:1181px){
  .process-grid:has(.consensus-step:nth-child(1):hover){grid-template-columns:1.35fr .88fr .88fr .88fr}
  .process-grid:has(.consensus-step:nth-child(2):hover){grid-template-columns:.88fr 1.35fr .88fr .88fr}
  .process-grid:has(.consensus-step:nth-child(3):hover){grid-template-columns:.88fr .88fr 1.35fr .88fr}
  .process-grid:has(.consensus-step:nth-child(4):hover){grid-template-columns:.88fr .88fr .88fr 1.35fr}
}
@media(max-width:1180px){.process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.consensus-step:nth-child(3){border-left:0;border-top:1px solid var(--line)}.consensus-step:nth-child(4){border-top:1px solid var(--line)}.consensus-step{min-height:290px}}
@media(max-width:640px){.case-back{margin-top:22px}.consensus-hero{padding-top:30px}.process-grid{grid-template-columns:1fr}.consensus-step,.consensus-step:nth-child(3),.consensus-step:nth-child(4){border-left:0;border-top:0;border-bottom:1px solid var(--line);min-height:0}.signal-card+ .signal-card{border-left:0}.signal-card{border-bottom:1px solid var(--line)}.consensus-section h2{font-size:11vw}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.case-motion-ready .consensus-section.case-in-view h2:hover .roll-line>span{transform:translateX(10px)}.consensus-section .section-label{transition:color .3s,letter-spacing .4s}.consensus-section:hover .section-label{color:var(--accent);letter-spacing:.12em}}
/* Give the headings room to read as full editorial lines. */
.idea-section,.insight-section,.failure-section,.learned-section,.next-section{grid-template-columns:18% minmax(0,1fr)}
.idea-section h2,.insight-section h2,.failure-section h2,.learned-section h2,.next-section h2,.idea-section .section-copy,.insight-section .section-copy,.failure-section .section-copy,.learned-section .section-copy,.next-section .section-copy{grid-column:2}
.consensus-section h2{font-size:clamp(3rem,4.2vw,6rem);max-width:1100px}
.idea-section .section-copy,.insight-section .section-copy,.failure-section .section-copy,.learned-section .section-copy,.next-section .section-copy{max-width:700px;margin-left:clamp(0px,13vw,190px);margin-top:5px}
.consensus-hero{align-items:start}.live-app{align-self:start;margin-top:42px;padding:7px;border:1px solid var(--ink);box-shadow:none;background:#fff}.live-app img{aspect-ratio:4/3;object-fit:cover;object-position:center top}
.card-consensus .card-image img{object-position:center 20%}
@media(max-width:900px){.idea-section h2,.insight-section h2,.failure-section h2,.learned-section h2,.next-section h2,.idea-section .section-copy,.insight-section .section-copy,.failure-section .section-copy,.learned-section .section-copy,.next-section .section-copy{grid-column:1}.idea-section .section-copy,.insight-section .section-copy,.failure-section .section-copy,.learned-section .section-copy,.next-section .section-copy{margin-left:0}.live-app{margin-top:0}}
@media(max-width:640px){.consensus-section h2{font-size:10.5vw}.live-app{padding:4px}}
/* A clean image frame with its action outside the screenshot. */
.case-visual{align-self:start;margin-top:42px;min-width:0}.case-visual .live-app{margin-top:0}.case-image-link{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 2px 10px;border-bottom:1px solid var(--ink);color:var(--accent);font-size:.78rem;letter-spacing:.07em;transition:padding .3s,color .3s}.case-image-link span{font-size:1.2rem}.case-image-link:hover,.case-image-link:focus-visible{padding-left:10px;color:var(--ink)}
/* Offset the second headline line, echoing the portfolio's type movement. */
@media(min-width:901px){.idea-section .roll-line:nth-child(2)>span{white-space:nowrap}.insight-section .roll-line:nth-child(2),.learned-section .roll-line:nth-child(2),.next-section .roll-line:nth-child(2){margin-left:clamp(35px,10vw,155px)}}
@media(max-width:900px){.case-visual{margin-top:0}}
@media(max-width:640px){.insight-section .roll-line:nth-child(2),.learned-section .roll-line:nth-child(2),.next-section .roll-line:nth-child(2){margin-left:8vw}}
/* Headlines flow naturally; only wrapped lines take an editorial indent. */
.consensus-section h2{font-size:clamp(2.8rem,3.7vw,5.3rem);line-height:.96;letter-spacing:-.075em;max-width:none;text-wrap:balance}
@media(min-width:901px){.consensus-section h2{padding-left:clamp(40px,7vw,95px);text-indent:calc(-1 * clamp(40px,7vw,95px))}}
@media(max-width:900px){.consensus-section h2{padding-left:6vw;text-indent:-6vw}}
@media(max-width:640px){.consensus-section h2{font-size:clamp(2.5rem,9vw,4.1rem)}}
@media(prefers-reduced-motion:no-preference){.case-motion-ready .consensus-section h2{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(22px);transition:clip-path 1.05s cubic-bezier(.2,.75,.2,1),transform 1.05s cubic-bezier(.2,.75,.2,1),opacity .8s}.case-motion-ready .consensus-section.case-in-view h2{opacity:1;clip-path:inset(0);transform:none}}

/* Give the case study's explanation the same visual weight as its headlines. */
.consensus-page main{max-width:2100px}
.consensus-intro>p{font-size:1.23rem;line-height:1.5;max-width:720px}
.section-copy p,.consensus-step p,.signal-card p{font-size:1.18rem;line-height:1.52}
.section-label,.consensus-page .mono,.case-next,.case-image-link,.case-button{font-size:.9rem}
.consensus-step{padding:28px 25px 39px}.consensus-step h3{margin-top:37px}
.signal-card{padding:32px 30px 42px}
@media(max-width:640px){.consensus-intro>p,.section-copy p,.consensus-step p,.signal-card p{font-size:1.05rem}.consensus-step{padding:26px 0 38px}.signal-card{padding:28px 0}.case-next{font-size:.78rem}}
/* Shared reading floor and word spacing. */
.consensus-section h2,.consensus-step h3,.signal-card h3,.consensus-hero h1{letter-spacing:-.035em;word-spacing:.12em;font-kerning:normal;font-feature-settings:'kern' 1;text-rendering:optimizeLegibility}
.consensus-intro>p{color:rgba(23,23,21,.85)}
.consensus-section .section-copy p,.consensus-step p,.signal-card p{line-height:1.55;max-width:72ch}
.consensus-page .section-label,.consensus-page .mono{font-size:max(12px,.9rem)}
/* The final desktop editorial grid must collapse before mobile headings render. */
@media(max-width:900px){
  .consensus-page .consensus-section,.consensus-page .idea-section,.consensus-page .insight-section,.consensus-page .failure-section,.consensus-page .learned-section,.consensus-page .next-section{grid-template-columns:minmax(0,1fr)}
  .consensus-page .consensus-section>.section-label,.consensus-page .consensus-section>h2,.consensus-page .consensus-section>.section-copy,.consensus-page .consensus-section>.process-grid,.consensus-page .consensus-section>.signal-grid{grid-column:1;min-width:0}
  .consensus-page .consensus-section h2{padding-left:0;text-indent:0;overflow-wrap:normal}
  .consensus-page .consensus-section h2 .roll-line{overflow:visible}
  .consensus-page .consensus-section h2 .roll-line>span{white-space:normal}
}
