/* ===== Section 07 "In our customers' words" (.s07w) and 08 "Start with the problem in front of you" (.s08c).
   Namespaced: .s07w / .s08c, s07w- / s08c- classes and ids, --s0708-* variables. No global rules.
   Same world as s03p / s04r / s06: ink canvas, Instrument Sans, Geist Mono, hairlines; yellow only on the primary button and the one travelling dot. ===== */
.s07w,.s08c{--s0708-ink:#07090f;--s0708-y:#ffd100;--s0708-btn-ink:#151b2b;--s0708-ease:cubic-bezier(.22,1,.36,1);
  --s0708-font:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;--s0708-mono:'Geist Mono',ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  position:relative;isolation:isolate;color:#fff;font-family:var(--s0708-font);font-size:16px;line-height:1.4;background:var(--s0708-ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
:where(.s07w,.s08c) *,:where(.s07w,.s08c) *::before,:where(.s07w,.s08c) *::after{box-sizing:border-box}
:where(.s07w,.s08c) :where(h2,h3,h4,p,figure,blockquote,ul,ol,li){margin:0;padding:0}
:where(.s07w,.s08c) :where(ul,ol){list-style:none}
:where(.s07w,.s08c) a{color:inherit;text-decoration:none}
:where(.s07w,.s08c) img{display:block}
:where(.s07w,.s08c) a:focus-visible{outline:1.5px solid rgba(255,255,255,.7);outline-offset:3px;border-radius:6px}

.s07w{padding:104px 0 0;overflow-x:clip}
.s08c{padding:96px 0 120px;overflow:hidden}
.s07w-wrap,.s08c-wrap{position:relative;width:min(1240px,calc(100% - 48px));margin:0 auto}

/* same dither + grain layers as the sections above, so the seams never show */
.s07w-dither,.s08c-dither{position:absolute;inset:0;z-index:-2;pointer-events:none;opacity:.016;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n' x='0' y='0' width='100%' height='100%'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='1' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 2 -.45'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:160px 160px}
.s07w-grain,.s08c-grain{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:.04;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n' x='0' y='0' width='100%' height='100%'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1.2 -.1'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:220px 220px}

/* ================= 07 ================= */
.s07w-h2{font-weight:500;font-size:clamp(32px,3.06vw,44px);line-height:1.06;letter-spacing:-.03em;color:#fff;text-wrap:balance}
.s07w-def{margin-top:18px;max-width:340px;font-size:18px;line-height:1.55;color:rgba(255,255,255,.62);text-wrap:balance}

/* the wall: three columns at desktop. The header takes the first slot so the column bottoms land together. */
.s07w-wall{columns:3;column-gap:20px;margin-bottom:-20px}
.s07w-head{break-inside:avoid;padding:6px 0 0;margin-bottom:68px}
.s07w-brk{break-before:column}
.s07w-card{display:block;break-inside:avoid;margin:0 0 20px;padding:28px;border-radius:16px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.07);transition:border-color .18s ease}
.s07w-card:hover{border-color:rgba(255,255,255,.14)}
.s07w-pull{font-size:20px;font-weight:500;line-height:1.35;letter-spacing:-.012em;color:#fff;text-wrap:pretty}
.s07w-full{margin-top:16px;font-size:15px;line-height:1.6;color:rgba(255,255,255,.62)}
.s07w-hl{color:rgba(255,255,255,.88)}
.s07w-who{display:flex;align-items:center;gap:12px;margin-top:24px}
.s07w-who img{flex:none;width:40px;height:40px;border-radius:50%;object-fit:cover;filter:saturate(.8) contrast(.98);background:#10141f}
.s07w-who span{display:block;min-width:0}
.s07w-who b{display:block;font-size:15px;font-weight:600;line-height:1.25;letter-spacing:-.005em;color:#fff}
.s07w-who i{display:block;margin-top:2px;font-style:normal;font-size:13.5px;line-height:1.35;color:rgba(255,255,255,.52)}

.s07w-more{margin-top:24px;text-align:right}
.s07w-more a{font-size:15px;color:rgba(255,255,255,.7);text-underline-offset:4px}
.s07w-more a:hover{color:#fff;text-decoration:underline}

/* reveal, once */
.s07w.s07w-js .s07w-wall>*{opacity:0;transform:translateY(10px)}
.s07w.s07w-js .s07w-wall.s07w-in>*{opacity:1;transform:none;transition:opacity .7s ease calc(var(--i,0) * 70ms),transform .7s var(--s0708-ease) calc(var(--i,0) * 70ms),border-color .18s ease}
.s07w.s07w-js .s07w-wall.s07w-done>*{transition:border-color .18s ease}

/* ================= 08 ================= */
.s08c-wrap{display:flex;flex-direction:column;align-items:center;text-align:center}
.s08c-wm{display:block;height:44px;width:auto;fill:#fff}
.s08c-h2{margin-top:26px;max-width:900px;font-weight:500;font-size:clamp(40px,5vw,68px);line-height:1.04;letter-spacing:-.03em;color:#fff;text-wrap:balance}
.s08c-lines{margin-top:24px;max-width:680px}
.s08c-lines p{font-size:18px;line-height:1.55;color:rgba(255,255,255,.66);text-wrap:pretty}
.s08c-lines p+p{margin-top:10px;text-wrap:balance}
.s08c-acts{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:36px}
.s08c-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;height:52px;padding:0 28px;border-radius:10px;background:var(--s0708-y);color:var(--s0708-btn-ink);font-size:17px;font-weight:600;letter-spacing:-.005em;white-space:nowrap;transition:background-color .2s ease,border-color .2s ease}
.s08c-btn:hover{background:#ffdc33}
.s08c-btn.s08c-ghost{background:transparent;color:#fff;font-weight:500;border:1px solid rgba(255,255,255,.22)}
.s08c-btn.s08c-ghost:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.45)}
.s08c-btn:focus-visible{outline:1.5px solid #fff;outline-offset:3px}

/* what happens next */
.s08c-next{position:relative;width:100%;max-width:1040px;margin-top:88px}
.s08c-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.s08c-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.s08c-steps li{position:relative;padding:34px 24px 0}
.s08c-steps li::before{content:'';position:absolute;left:50%;top:-4px;width:9px;height:9px;margin-left:-4.5px;border-radius:50%;background:var(--s0708-ink);border:1px solid rgba(255,255,255,.3);z-index:1}
.s08c-n{display:block;font:400 12px/1 var(--s0708-mono);letter-spacing:.04em;color:rgba(255,255,255,.45)}
.s08c-steps h4{margin-top:14px;font-size:17px;font-weight:600;line-height:1.3;letter-spacing:-.008em;color:#fff}
.s08c-steps li p{margin:8px auto 0;max-width:280px;font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.58);text-wrap:balance}
/* one thin line through the three nodes; a yellow dot rides it once and rests on step 3 */
.s08c-line{position:absolute;left:calc(100% / 6);right:calc(100% / 6);top:0;height:1px;display:block}
.s08c-line b{position:absolute;inset:0;background:rgba(255,255,255,.18)}
.s08c-dot{position:absolute;left:calc(100% / 6);top:0;width:7px;height:7px;margin:-3px 0 0 -3.5px;border-radius:50%;background:var(--s0708-y);z-index:2;pointer-events:none}

/* motion: the line draws, the dot rides it, step 3's node takes the dot's place */
.s08c.s08c-js .s08c-line b{transform:scaleX(0);transform-origin:0 50%}
.s08c.s08c-js .s08c-dot{opacity:0;transform:translateX(0)}
.s08c.s08c-js .s08c-steps li{opacity:0;transform:translateY(8px)}
.s08c.s08c-js .s08c-next.s08c-in .s08c-steps li{opacity:1;transform:none;transition:opacity .7s ease,transform .7s var(--s0708-ease)}
.s08c.s08c-js .s08c-next.s08c-in .s08c-steps li:nth-child(1){transition-delay:.05s}
.s08c.s08c-js .s08c-next.s08c-in .s08c-steps li:nth-child(2){transition-delay:.55s}
.s08c.s08c-js .s08c-next.s08c-in .s08c-steps li:nth-child(3){transition-delay:1.05s}
.s08c.s08c-js .s08c-next.s08c-in .s08c-line b{transform:scaleX(1);transition:transform 1.5s cubic-bezier(.45,0,.25,1) .1s}
.s08c.s08c-js .s08c-next.s08c-in .s08c-dot{opacity:1;transform:translateX(var(--run,0px));transition:transform 1.5s cubic-bezier(.45,0,.25,1) .1s,opacity .3s ease .1s}
.s08c.s08c-js .s08c-hd{opacity:0;transform:translateY(12px)}
.s08c.s08c-js.s08c-in .s08c-hd{opacity:1;transform:none;transition:opacity .9s ease calc(var(--i,0) * 90ms),transform .9s var(--s0708-ease) calc(var(--i,0) * 90ms)}
.s08c.s08c-js .s08c-floor{opacity:0}
.s08c.s08c-js.s08c-in .s08c-floor{opacity:1;transition:opacity 2s ease .3s}

/* faint perspective floor, same recipe as s04r: lines recede to a horizon behind the headline, masked to fade */
.s08c-floor{position:absolute;inset:0;z-index:-1;pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 30%,#000 100%);mask-image:linear-gradient(180deg,transparent 0,#000 30%,#000 100%)}
.s08c-fm{position:absolute;inset:0;-webkit-mask-image:radial-gradient(ellipse 62% 70% at 50% 62%,#000 14%,transparent 72%);mask-image:radial-gradient(ellipse 62% 70% at 50% 62%,#000 14%,transparent 72%)}
.s08c-floor svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.s08c-floor line{stroke:rgba(255,255,255,.06);stroke-width:1;shape-rendering:crispEdges}

/* ================= responsive ================= */
@media (max-width:1024px){
  .s07w-wall{columns:2;margin-bottom:0}
  .s07w-brk{break-before:auto}
  .s07w-head{column-span:all;padding:0;margin-bottom:44px}
  .s07w-def{max-width:520px}
}
@media (max-width:759px){
  .s07w{padding-top:80px}
  .s07w-wall{columns:1;margin-bottom:0}
  .s07w-head{margin-bottom:32px}
  .s08c{padding:76px 0 96px}
  .s08c-wrap{width:calc(100% - 40px)}
  .s08c-wm{height:34px}
  .s08c-h2{margin-top:24px}
  .s08c-acts{flex-direction:column;align-items:stretch;width:100%;max-width:300px;margin-top:32px}
  .s08c-btn{width:100%}
  /* steps stack; the line runs down the left */
  .s08c-next{margin-top:64px;max-width:340px;text-align:left}
  .s08c-steps{grid-template-columns:minmax(0,1fr);row-gap:32px}
  .s08c-steps li{padding:0 0 0 36px;text-align:left}
  .s08c-steps li::before{left:0;top:2px;margin-left:0}
  .s08c-steps li p{margin-left:0;max-width:none}
  .s08c-line{left:4px;right:auto;top:6px;bottom:auto;width:1px;height:var(--run,200px)}
  .s08c-line b{transform-origin:50% 0}
  .s08c.s08c-js .s08c-line b{transform:scaleY(0)}
  .s08c.s08c-js .s08c-next.s08c-in .s08c-line b{transform:scaleY(1)}
  .s08c-dot{left:4.5px;top:6px;margin:-3px 0 0 -3.5px}
  .s08c.s08c-js .s08c-dot{transform:translateY(0)}
  .s08c.s08c-js .s08c-next.s08c-in .s08c-dot{transform:translateY(var(--run,0px))}
}

/* reduced motion: everything is simply there; the dot rests on step 3 */
@media (prefers-reduced-motion:reduce){
  .s07w.s07w-js .s07w-wall>*,.s08c.s08c-js .s08c-hd,.s08c.s08c-js .s08c-steps li,.s08c.s08c-js .s08c-floor{opacity:1!important;transform:none!important;transition:none!important}
  .s08c.s08c-js .s08c-line b{transform:none!important;transition:none!important}
  .s08c.s08c-js .s08c-dot{opacity:1!important;transition:none!important}
  .s07w-card{transition:none}
}
