/* A short native-scroll bridge. All content remains visible without scripting. */
.convergence{position:relative;padding:0.75rem 0 1.375rem;isolation:isolate}
.convergence-track{position:relative}
.convergence-pin{position:relative;padding:1.625rem 1.75rem 1.125rem;border:1px solid var(--hair);border-radius:1.125rem;background:var(--paper);background-image:radial-gradient(ellipse at 50% 65%,rgba(36,56,240,.06),transparent 60%),radial-gradient(var(--hair) .6px,transparent .6px);background-size:auto,1.125rem 1.125rem}
.convergence-heading{text-align:center;position:relative;z-index:2;margin-bottom:0.875rem}
.convergence-eyebrow{font:500 0.6875rem/1.5 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--ink2)}
.convergence-heading h2{font:400 clamp(2.125rem,3.8vw,3.125rem)/1.08 var(--serif);letter-spacing:-.025em;margin-top:0.5rem}
.convergence-heading em{color:var(--blue);font-weight:400}
.convergence-stage{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,21.25rem));justify-content:center;align-content:start;gap:1.5rem clamp(1.25rem,8vw,8rem);padding-top:0.75rem;max-width:62.5rem;margin:0 auto}
.convergence-paths{position:absolute;inset:0;width:100%;height:25rem;fill:none;stroke:var(--blue);stroke-width:1;stroke-dasharray:3 5;opacity:.3}
.convergence-plus{position:absolute;left:50%;top:5.3125rem;transform:translateX(-50%);font:400 2.5rem/1 var(--serif);color:var(--blue)}
.convergence-input{position:relative;min-width:0;z-index:2;background:var(--card);border:1px solid var(--hair2);border-radius:0.625rem;box-shadow:0 0.4375rem 1rem -0.75rem rgba(22,21,17,.35);padding:1.3125rem 1.375rem;transform-origin:center;line-height:1.4}
.convergence-ai{transform:rotate(-3deg);border-top:2px solid #B8694E}
.convergence-agency{transform:rotate(3deg);border-top:2px solid var(--ink)}
.convergence-card-head{display:flex;align-items:center;gap:0.5625rem;margin-bottom:0.75rem}
.convergence-icon{width:2.125rem;height:2.125rem;display:grid;place-items:center;flex:none;border-radius:0.4375rem}
.convergence-ai-icon{color:#A04F36;background:#F2E3D8;font:400 1.875rem/1 var(--ui)}
.convergence-agency-icon{background:var(--ink);color:var(--paper)}
.convergence-icon svg{width:1.375rem;height:1.375rem}
.convergence-label{font:500 0.6875rem/1.4 var(--mono);letter-spacing:.025em;text-transform:uppercase;color:var(--ink2)}
.convergence-input h3{font:500 1.5625rem/1.2 var(--ui);letter-spacing:-.045em;margin:0 0 0.75rem}
.convergence-ai h3>span{color:#A04F36;font-weight:400}
.convergence-price{display:block;font:500 1.75rem/1.2 var(--mono);letter-spacing:-.06em;margin-top:2px}
.convergence-price small{font:400 0.75rem var(--mono);letter-spacing:0;margin-left:0.25rem;color:var(--ink2)}
.convergence-input ul{display:grid;gap:0.3125rem;font:400 0.9375rem/1.5 var(--ui);color:var(--ink2)}
.convergence-input li::before{content:'+';display:inline-block;color:var(--blue);margin-right:0.5rem;font-family:var(--mono)}
.convergence-input .convergence-missing{margin-top:1rem;padding-top:0.75rem;border-top:1px solid var(--hair);font:400 0.875rem/1.5 var(--ui);color:#A04F36;gap:0.25rem}
.convergence-missing li{position:relative;padding-left:0.875rem}
.convergence-input .convergence-missing li::before{content:'−';position:absolute;left:0;margin:0;color:currentColor}
.convergence-effort{grid-column:1/-1;justify-self:center;width:min(100%,25rem);padding:1.0625rem 1.25rem;display:flex;align-items:center;gap:0.75rem;background:var(--paper2);border-style:dashed;box-shadow:none}
.convergence-clock{color:var(--ink2);flex:none}.convergence-clock svg{width:2rem;height:2rem}
.convergence-effort h3{font-size:1.125rem;letter-spacing:-.01em;margin-bottom:0.25rem}
.convergence-effort p{font-size:0.875rem;color:var(--ink2);margin:0}
.convergence-result{position:relative;grid-column:1/-1;justify-self:center;width:min(100%,45rem);z-index:3;text-align:center;background:var(--dk);color:var(--dktxt);padding:2rem 1.75rem 1.75rem;border-radius:0.875rem;box-shadow:0 1.125rem 2.375rem -1.625rem rgba(10,11,14,.6)}
.convergence-result-brand{display:flex;align-items:center;justify-content:center;gap:0.75rem;font:500 3.5rem/1 var(--ui);letter-spacing:-.065em}
.convergence-result-brand img{display:block;width:3.625rem;height:3.625rem}
.convergence-result-line{font:400 2.25rem/1.15 var(--serif);margin:1.375rem 0 1.25rem;letter-spacing:-.015em}
.convergence-result-line em{font-style:italic;color:var(--grn-hi)}
.convergence-result-line>span{display:inline-block}
.convergence-result-parts{display:flex;align-items:center;justify-content:center;gap:0.75rem;font:400 0.8125rem/1.5 var(--mono);color:var(--dktxt);letter-spacing:.02em}
.convergence-result-parts>span{padding:0.25rem 0.5625rem;border:1px solid var(--dkline2);border-radius:0.25rem}.convergence-result-parts i{font-style:normal;color:var(--grn)}
.convergence-result-boundary{font-size:0.875rem;line-height:1.5;color:var(--dktxt2);margin-top:0.625rem}
.convergence-effects{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.convergence-halo{display:none;position:absolute;width:15rem;height:15rem;left:calc(50% - 7.5rem);top:4rem;border-radius:50%;border:1px solid rgba(36,56,240,.38);background:radial-gradient(circle,rgba(36,56,240,.13),transparent 70%);pointer-events:none}
.convergence:not(.is-motion) .convergence-stage{row-gap:1rem}
.convergence:not(.is-motion) .convergence-result{padding-block:0.875rem}
.convergence:not(.is-motion) .convergence-result-line{margin:1rem 0 0.875rem}
.convergence.is-motion .convergence-track{height:var(--convergence-height)}
.convergence.is-motion .convergence-pin{position:sticky;top:var(--convergence-top)}
.convergence.is-motion .convergence-stage{min-height:26.25rem}
.convergence.is-motion .convergence-result{position:absolute;left:50%;top:3.375rem;opacity:0;transform:translateX(-50%) translateY(1.125rem) scale(.88)}
.convergence.is-motion .convergence-halo{display:block;opacity:0}
@media(max-width:820px){
  .convergence>.container{padding-inline:1rem}
  .convergence-pin{padding:1.375rem 0.8125rem 0.625rem;border-radius:0.875rem}
  .convergence-heading{margin-bottom:1.375rem}.convergence-heading h2{font-size:2.25rem}.convergence-eyebrow{font-size:0.625rem;letter-spacing:.09em}
  .convergence-stage{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.125rem;padding-inline:2px}.convergence.is-motion .convergence-stage{min-height:23.75rem}
  .convergence-input{padding:0.9375rem 0.625rem;border-radius:0.5rem}
  .convergence-ai{transform:rotate(-2deg)}.convergence-agency{transform:rotate(2deg)}
  .convergence-card-head{gap:0.375rem;align-items:flex-start;margin-bottom:0.75rem}
  .convergence-icon{width:1.6875rem;height:1.6875rem;border-radius:0.3125rem}.convergence-ai-icon{font-size:1.4375rem}.convergence-icon svg{width:1.125rem;height:1.125rem}
  .convergence-label{font-size:0.75rem;line-height:1.4;max-width:14ch}
  .convergence-input h3{font-size:clamp(1.0625rem,4.7vw,1.4375rem);letter-spacing:-.04em;line-height:1.25;margin-bottom:0.75rem}
  .convergence-price{font-size:1.4375rem;margin-top:1px}.convergence-price small{font-size:0.625rem;margin-left:2px}
  .convergence-input ul{font-size:0.875rem;line-height:1.5;gap:0.3125rem}.convergence-input li::before{margin-right:0.25rem}
  .convergence-effort{width:min(100%,20.625rem);padding:0.9375rem 0.875rem;gap:0.625rem}
  .convergence-effort h3{font-size:1.125rem;margin-bottom:0.25rem}.convergence-effort p{font-size:0.8125rem}
  .convergence-plus{top:6.25rem;font-size:1.375rem}.convergence-paths{opacity:.2}
  .convergence-result{padding:1.75rem 0.75rem 1.5rem;border-radius:0.625rem}
  .convergence.is-motion .convergence-result{top:4.125rem}
  .convergence-result-brand{font-size:2.625rem;gap:0.625rem}.convergence-result-brand img{width:2.75rem;height:2.75rem}
  .convergence-result-line{font-size:1.875rem;margin:1.25rem 0 1.125rem}.convergence-result-parts{font-size:0.6875rem;gap:0.5rem}.convergence-result-parts>span{padding:0.25rem 0.4375rem}
  .convergence-result-boundary{font-size:0.75rem}
}
@media(prefers-reduced-motion:reduce){
  .convergence.is-motion .convergence-track{height:auto}
  .convergence.is-motion .convergence-pin{position:relative;top:auto}
  .convergence.is-motion .convergence-stage{min-height:0}
  .convergence-input,.convergence-result{transform:none!important;opacity:1!important}
  .convergence.is-motion .convergence-result,.convergence-result{position:relative;left:auto;top:auto;transform:none!important}
  .convergence-halo{display:none!important}
}

.convergence-plan{display:flex;align-items:baseline;gap:0.3125rem;margin:-2px 0 0.875rem;color:var(--ink2);font-size:0.8125rem;flex-wrap:wrap;line-height:1.25}
.convergence-plan b{font:500 1.5rem/1.25 var(--mono);color:var(--ink);letter-spacing:-.05em}
@media(max-width:820px){.convergence-plan{font-size:0.6875rem;gap:0.1875rem;margin-bottom:0.75rem}.convergence-plan b{font-size:1.25rem}}
@media(max-width:380px){
  .convergence-pin{padding-top:0.875rem;padding-bottom:0.5rem}
  .convergence-heading{margin-bottom:0.875rem}
  .convergence-heading h2{font-size:2.125rem}
  .convergence-stage{row-gap:1rem}
  .convergence-ai,.convergence-agency{padding-block:0.75rem}
  .convergence-input .convergence-missing{margin-top:0.75rem}
  .convergence-effort{gap:0.5rem;padding-inline:0.625rem}.convergence-effort h3{font-size:1.0625rem}
  .convergence-clock svg{width:1.6875rem;height:1.6875rem}
}

/* Phones and touch devices keep the complete equation in the document.
   Browser toolbar resizing must never add or remove a pinned scroll runway. */
@media(max-width:900px),(pointer:coarse){
  .convergence.is-motion .convergence-track{height:auto}
  .convergence.is-motion .convergence-pin{position:relative;top:auto}
  .convergence.is-motion .convergence-stage{min-height:0}
  .convergence-input,.convergence-result{transform:none!important;opacity:1!important}
  .convergence.is-motion .convergence-result{position:relative;left:auto;top:auto}
  .convergence-plus,.convergence-paths,.convergence-halo{display:none!important}
}

/* Portrait phones get the desktop merger back, driven by native scroll over a sticky
   panel. Must stay identical to the matchMedia query in landing-convergence.js and to
   the walkthrough's in landing-mobile.css: none of its conditions can change because a
   phone's address bar grew or shrank. The runway is pure CSS in svh, so it is right at
   first paint (html.js is set synchronously in <head>); the controller only freezes it
   in px, scales the panel to fit, and writes --conv-move/--conv-alpha each frame. With
   no controller (html.conv-static, set by <head> if it never starts) the static
   equation above applies. */
@media screen and (max-width:600px) and (orientation:portrait) and (prefers-reduced-motion:no-preference){
  html.js:not(.conv-static) .convergence-track{
    /* 700px is about as tall as the panel's content gets on a phone, so a tall screen does
       not pin the equation in a band of empty paper. */
    --conv-panel:min(calc(100svh - var(--nav-h) - 20px),700px);
    --conv-run:min(80svh,540px);
    height:calc(var(--conv-panel) + var(--conv-run));
  }
  html.js:not(.conv-static) .convergence-pin{position:sticky;top:calc(var(--nav-h) + 10px);height:var(--conv-panel);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding-block:0.75rem}
  /* A little tighter than the static stack, so a 360px phone pins at a readable scale. */
  html.js:not(.conv-static) .convergence-heading{margin-bottom:0.875rem}
  html.js:not(.conv-static) .convergence-stage{padding-top:0.375rem;row-gap:0.75rem}
  html.js:not(.conv-static) .convergence-card-head,html.js:not(.conv-static) .convergence-input h3{margin-bottom:0.5rem}
  html.js:not(.conv-static) .convergence-input .convergence-missing{margin-top:0.625rem;padding-top:0.5rem}
  html.js:not(.conv-static) .convergence-effort{padding-block:0.75rem}
  /* Scaled text lays out in a box 1/fit as wide, then shrinks back to the panel's width. */
  html.js:not(.conv-static) .convergence-fit{flex:none;width:calc(100% / var(--conv-fit,1));transform:scale(var(--conv-fit,1))}
  html.js:not(.conv-static) .convergence-input{transform:var(--conv-move,rotate(var(--conv-tilt,0deg)))!important;opacity:var(--conv-alpha,1)!important}
  html.js:not(.conv-static) .convergence-ai{--conv-tilt:-2deg}
  html.js:not(.conv-static) .convergence-agency{--conv-tilt:2deg}
  html.js:not(.conv-static) .convergence-result{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) var(--conv-move,translateY(1.125rem) scale(.88))!important;opacity:var(--conv-alpha,0)!important}
  html.js:not(.conv-static) .convergence-plus{display:block!important;opacity:var(--conv-alpha,1)}
  html.js:not(.conv-static) .convergence-paths{display:block!important;opacity:var(--conv-alpha,.2)}
  html.js:not(.conv-static) .convergence-halo{display:block!important;top:calc(50% - 7.5rem);opacity:var(--conv-alpha,0);transform:var(--conv-move,scale(.4))}
}
