:root{--web-blue:#1b68d8;--web-line:#9baec2;--web-paper:#f4f7fa}
html{scroll-behavior:smooth;scroll-padding-top:0px}
body{background:var(--web-paper)}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit}
a:focus-visible,button:focus-visible,.web-viewport:focus-visible{outline:2px solid var(--web-blue);outline-offset:5px}
.web-intro{max-width:1440px;margin:auto;padding:70px 5.4% 48px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px}
.web-eyebrow{font:12px var(--mono);letter-spacing:.19em;text-transform:uppercase;color:#637f99;margin-bottom:23px}
.web-intro h1{font-family:'Geist',var(--sans);font-size:clamp(42px,5.3vw,84px);font-weight:500;line-height:1.01;letter-spacing:-.065em;text-wrap:nowrap}
.web-intro h1 span{color:var(--web-blue);background:linear-gradient(110deg,#17478c,#257bf1);background-clip:text;-webkit-text-fill-color:transparent}
.web-intro-side{padding-bottom:3px;max-width:310px;font-size:15px;color:#627487;line-height:1.7}
.web-intro-side a{display:inline-block;margin-top:22px;color:#152c42;border-bottom:1px solid #7c9ab4;text-decoration:none;padding-bottom:4px;font-size:14px}
.proof-web{max-width:1500px;margin:0 auto;border-top:1px solid #dbe3eb;border-bottom:1px solid #dbe3eb;scroll-margin-top:90px}
.web-toolbar{display:flex;align-items:center;justify-content:space-between;padding:15px 5.4%;gap:16px;font:11px var(--mono);color:#496981;background:rgba(244,247,250,.92)}
.web-title{display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.09em}
.live-dot{width:6px;height:6px;background:#2778dc;box-shadow:0 0 10px #75baff;border-radius:50%}
.web-total{color:#8093a5;letter-spacing:0;text-transform:none;margin-left:9px}
.web-tools{display:flex;align-items:center;gap:22px}
.web-tools a{color:#546f87;text-decoration:none;border-bottom:1px solid #b9c8d6;padding:5px 0}
.web-tools button{border:0;background:none;color:#496981;cursor:pointer;font:11px var(--mono);padding:6px 0}
.web-tools button span{margin-left:7px}
.web-stage{position:relative;background:radial-gradient(ellipse at 38% 28%,#fcfdff 0%,#f4f7fa 51%,#edf2f8 100%)}
.web-stage:after{content:none}
.web-viewport{height:clamp(550px,calc(100svh - 150px),780px);overflow:auto;scrollbar-width:none;cursor:grab;overscroll-behavior-x:contain;position:relative;touch-action:pan-x pan-y}
.web-viewport::-webkit-scrollbar{display:none}
.web-viewport.dragging{cursor:grabbing}
.web-sizer{position:relative;margin:0 auto}
.web-world{position:absolute;left:0;top:0;width:2000px;height:2350px;transform-origin:0 0;isolation:isolate}
.connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.edge-base path{stroke:var(--web-line);stroke-width:.75;fill:none;opacity:.58;transition:opacity .7s}
.edge-light path{stroke:#2587ec;stroke-width:4;filter:url(#connection-glow);fill:none;opacity:0;transition:opacity .65s}
.edge-energy path{stroke:#2678d9;stroke-width:1.3;fill:none;opacity:0;stroke-dasharray:20 7;transition:opacity .5s}
.edge-light path.on{opacity:.5}.edge-energy path.on{opacity:.82;animation:signal-travel 14s linear infinite}
.web-world.has-selection .edge-base path{opacity:.28}
.ambient-bricks rect{fill:none;stroke:#9ebddd;stroke-width:.7;opacity:.16}
.receipt-node{position:absolute;display:block;text-decoration:none;color:#304a61;border:0;background:none;cursor:pointer;line-height:1;translate:-50% -50%;transform-origin:center;transition:scale .5s cubic-bezier(.2,.8,.2,1),opacity .65s,filter .5s;z-index:2;padding:0;outline-offset:6px}
.node-picture{display:block;position:relative;border:1px solid #7a92a9;box-shadow:0 3px 9px #234c7214;background:#fff;transition:box-shadow .5s,border-color .4s}
.node-picture img{display:block;width:100%;height:auto;max-width:none;user-select:none;-webkit-user-drag:none}
.node-bricks{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);overflow:visible;pointer-events:none}
.node-bricks rect{fill:none;stroke:#1c74e1;stroke-width:1.8;stroke-dasharray:23 6;opacity:0;filter:drop-shadow(0 0 3px #479ef2);transition:opacity .5s}
.node-id{position:absolute;left:0;top:-14px;font:8px var(--mono);letter-spacing:.07em;color:#687d90;white-space:nowrap}
.node-name{position:absolute;top:calc(100% + 7px);left:0;min-width:100%;width:max-content;max-width:230px;font:10px var(--sans);line-height:1.4;color:#174d87;opacity:0;transform:translateY(3px);transition:opacity .35s,transform .35s;pointer-events:none;background:#f4f7faf2;padding:3px 5px 3px 0}
.receipt-node:hover,.receipt-node:focus-visible{scale:1.12;z-index:6;opacity:1!important;filter:none!important}
.receipt-node:hover .node-picture,.receipt-node:focus-visible .node-picture{box-shadow:0 12px 35px #155aa52c;border-color:#2179dc}
.receipt-node:hover .node-bricks rect,.receipt-node:focus-visible .node-bricks rect,.receipt-node.selected .node-bricks rect{opacity:1}
.receipt-node:hover .node-name,.receipt-node:focus-visible .node-name,.receipt-node.selected .node-name,.entry-node .node-name{opacity:1;transform:translateY(0)}
.entry-node{z-index:3}.entry-node .node-id{color:#1b68c2;font-weight:500}.entry-node .node-picture{border-color:#397dc4;box-shadow:0 10px 35px #3a78b224}
.web-world.has-selection .receipt-node.unrelated{opacity:.36;filter:saturate(.45)}
.receipt-node.selected{scale:1.09;z-index:6}.receipt-node.related .node-picture{border-color:#3d89d8;box-shadow:0 5px 24px #278cf324}
.receipt-node.related .node-bricks rect{opacity:.52}
.text-node{text-align:left;padding:10px 12px;background:#f4f8fcdf;border:1px solid #bed0e1;box-shadow:0 6px 22px #376b9d0a}
.text-node small{display:block;font:7.5px var(--mono);color:#6a859c;margin-bottom:7px;letter-spacing:.01em}
.text-node strong{display:block;font:500 19px 'Geist',var(--sans);letter-spacing:-.05em;color:#215e9e}
.text-node.selected,.text-node.related{border-color:#2e81d3;box-shadow:0 0 20px #2585ed29}
.web-instruction{position:absolute;bottom:19px;left:5.4%;font:10px var(--mono);color:#71889d;z-index:5;pointer-events:none}
.phone-instruction{display:none}
.web-zoom{position:absolute;bottom:12px;right:4%;z-index:8;display:flex;border:1px solid #c3d2df;border-radius:30px;background:#f8fbfedf;box-shadow:0 4px 18px #376b9810;overflow:hidden}
.web-zoom button{min-width:40px;height:37px;background:none;border:0;color:#426e96;font:12px var(--mono);cursor:pointer}
.web-zoom button:hover{background:#e6f0fc}.web-zoom button:first-child,.web-zoom button:last-child{font:20px var(--sans)}
.web-context{max-width:1400px;padding:22px 5.4% 0;margin:auto;font-size:11px;color:#718399;line-height:1.7}
.receipt-detail{position:fixed;inset:108px 28px auto auto;margin:0;width:370px;max-height:calc(100dvh - 136px);overflow:auto;border:1px solid #afc9e1;background:#f8fbfced;border-radius:3px;box-shadow:0 20px 80px #144d8730,0 0 30px #4e9ee71b;backdrop-filter:blur(18px);padding:0;z-index:12;color:var(--ink);scrollbar-width:thin}
.receipt-detail[open]{animation:detail-arrival .55s cubic-bezier(.16,1,.3,1)}
.detail-top{display:flex;justify-content:space-between;align-items:center;padding:13px 19px;border-bottom:1px solid #d0dfe9;color:#617e99;font:9px var(--mono);letter-spacing:.04em;position:sticky;top:0;z-index:2;background:#f6fafeed;backdrop-filter:blur(15px)}
.detail-top button{background:none;border:0;font:26px var(--sans);color:#396789;cursor:pointer;width:32px;height:30px;line-height:1}
.detail-image{position:relative;width:max-content;max-width:calc(100% - 40px);margin:20px auto 0;line-height:0;box-shadow:0 0 24px #2f85df29}
.detail-image img{display:block;max-height:min(32dvh,300px);max-width:100%;width:auto;height:auto;object-fit:contain;border:1px solid #4386d0}
.detail-bricks{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);pointer-events:none;overflow:visible}
.detail-bricks rect{fill:none;stroke:#2d89e9;stroke-width:2;stroke-dasharray:28 7;filter:drop-shadow(0 0 3px #3e9dfb);animation:signal-travel 18s linear infinite}
.detail-copy{padding:23px 24px 15px}
.detail-copy h2{font:500 27px/1.09 'Geist',var(--sans);letter-spacing:-.045em;margin-bottom:12px;text-wrap:pretty}
.detail-copy>p:not(.detail-connected){color:#5c7389;font:14px/1.65 var(--sans)}
.detail-context{border-top:1px solid #d3e1ed;padding-top:13px;margin-top:16px;font:12px/1.65 var(--sans);color:#5b7892}
.detail-context:empty{display:none}
.detail-original{display:inline-block;font:12px var(--sans);color:#2164a7;margin-top:18px;border-bottom:1px solid #8bafcf;text-decoration:none;padding-bottom:4px}
.detail-connected{font:8px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:#8195a9;margin-top:20px}
.detail-navigation{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #d0dfe9;padding:10px 20px;font:10px var(--mono);color:#7089a0}
.detail-navigation button{border:1px solid #c1d3e3;border-radius:50%;width:33px;height:33px;background:none;color:#2b689e;cursor:pointer}
.receipt-detail.no-image .detail-image{display:none}.receipt-detail.no-image .detail-copy{padding-top:32px}
.op-proof{padding-top:90px}.op-proof::before{display:none}#client-stories .op-heading h2{font-family:'Geist',var(--sans);font-size:clamp(30px,4.3vw,62px);font-weight:500;line-height:1.02;letter-spacing:-.055em}
@keyframes signal-travel{to{stroke-dashoffset:-180}}
@keyframes detail-arrival{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
@media(min-width:1500px){.web-intro{padding-top:90px}}
@media(max-width:900px){.web-intro{grid-template-columns:1fr;gap:24px;padding-top:55px}.web-intro h1{font-size:7vw}.web-intro-side{max-width:none;display:flex;justify-content:space-between;align-items:end;font-size:14px}.web-intro-side a{margin:0}.receipt-detail{right:18px;width:340px}.web-total{display:none}}
@media(max-width:600px){
.web-intro{padding:46px 24px 30px;gap:22px}.web-eyebrow{font-size:9px;margin-bottom:18px}.web-intro h1{font-size:clamp(30px,9.75vw,56px)}.web-intro-side{display:block;font-size:13px;line-height:1.65}.web-intro-side a{font-size:12px;margin-top:15px}
.web-toolbar{padding:13px 20px;align-items:start;gap:12px}.web-title{font-size:9px;white-space:nowrap;gap:7px}.web-tools{gap:12px;align-items:center}.web-tools a{font-size:8px;padding:0 0 3px}.web-tools button{font-size:0;padding:0}.web-tools button span{font-size:13px;margin-left:0}.web-tools button:focus-visible{outline-offset:3px}
.web-viewport{height:560px}.web-instruction{left:20px;bottom:21px;font-size:9px}.desktop-instruction{display:none}.phone-instruction{display:inline}.web-zoom{right:18px}.web-zoom button{min-width:33px;height:34px}.web-context{padding:18px 24px 0;font-size:10px}
.receipt-detail{position:fixed;inset:auto 10px 10px;margin:0;width:auto;max-width:none;max-height:86dvh;border-radius:12px;z-index:70;background:#f8fbfcf7}.receipt-detail[open]{animation:detail-arrival .4s ease}.detail-image img{max-height:36dvh}.detail-copy{padding:20px 22px 12px}.detail-copy h2{font-size:28px}.detail-copy>p:not(.detail-connected){font-size:14px}.detail-context{font-size:12px}.detail-connected{margin-top:16px}.detail-original{font-size:13px}.op-proof{padding-top:60px}#client-stories .op-heading h2{font-size:7vw}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.receipt-node{will-change:auto}}

.receipt-detail::backdrop{background:#ecf3fa42;backdrop-filter:blur(1px)}

.ambient-bricks rect{transition:stroke .9s,opacity .9s}.ambient-bricks rect.illuminated{stroke:#378de6;opacity:.44;filter:drop-shadow(0 0 3px #62b0ed85)}

.web-stage{scroll-margin-top:95px}.detail-navigation{position:sticky;bottom:0;background:#f6fafeed;backdrop-filter:blur(12px)}
.detail-original[hidden]{display:none}

/* Direct manipulation: keep drag input on the receipt, and let empty space scroll. */
.receipt-node{touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.receipt-node.is-dragged{cursor:grabbing;z-index:10;scale:1.06;opacity:1!important;filter:none!important}
.receipt-node.is-dragged .node-picture{border-color:#2179dc;box-shadow:0 18px 45px #155aa542}
.receipt-node.is-dragged .node-bricks rect{opacity:1}
.receipt-node.is-dragged .node-name{opacity:1;transform:none}
.web-world.rearranging .edge-base path{stroke:#6597c9;opacity:.65}
.web-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#reset-layout{font-size:20px;border-right:1px solid #d6e2ed}
@media(max-width:600px){.web-instruction{bottom:61px;font-size:8px}.web-zoom{bottom:12px}}
/* Pedigree hierarchy: identity → team → three named branches. */
.identity-node{padding:19px 24px;background:#f6fafff5;border-color:#8fb3d8;box-shadow:0 12px 42px #296baf12}
.identity-node strong{font:500 44px/1.05 'Geist',var(--sans);letter-spacing:-.055em;color:#112d4c}
.identity-years{display:block;font:500 32px/1.1 'Geist',var(--sans);color:#286bc0;margin-top:8px}
.hub-sub{display:block;font:18px/1.5 var(--sans);color:#60788f;margin-top:10px}
.team-node{padding:24px 18px;border-radius:88px;text-align:center;background:#edf5fdf2;border:1.5px solid #79a8d8;box-shadow:0 0 35px #65a5e41f}
.team-node small{font:11px var(--mono);letter-spacing:.04em;margin-bottom:12px}
.team-node strong{font:500 40px/1 'Geist',var(--sans);letter-spacing:-.05em;white-space:nowrap}
.team-node em{font:400 17px var(--sans);font-style:normal;letter-spacing:0;color:#69839b}
.team-node .hub-sub{font-size:13px;margin-top:12px}
.category-node{padding:18px 22px;background:#f7faffef;border-color:#a2bedb}
.category-node strong{font:500 32px/1.05 'Geist',var(--sans);letter-spacing:-.045em;color:#17354f}
.hub-metric{display:block;font:500 44px/1 'Geist',var(--sans);letter-spacing:-.055em;color:#2265bb;margin-top:8px}
.category-node .hub-sub{font-size:19px;line-height:1.35;margin-top:7px}
.category-node .hub-sub span{display:block;font-size:18px;color:#7890a7;margin-top:2px}
.context-node{padding:17px 14px;background:#f4f8fcce}
.context-node small{font-size:9px;line-height:1.35;margin-bottom:8px}
.context-node strong{font-size:24px}
.main-node .node-picture{border-color:#5484b6;box-shadow:0 10px 32px #2564a725}
.main-node .node-id{font-size:10px;color:#356c9f;top:-18px}
.main-node .node-name{font-size:12px;max-width:290px}
.leaderboard-node .node-picture{border-color:#6f9cc6;box-shadow:0 6px 24px #3f7ba71c}
.leaderboard-node .node-id{color:#346fa8;font-size:9px;top:-17px}
.edge-base path.trunk{stroke:#759dbf;stroke-width:1.5;opacity:.8}
.branch-picker select{font:11px var(--mono);color:#315c83;border:1px solid #c3d4e4;background:#f4f8fc;border-radius:5px;padding:7px 26px 7px 10px;cursor:pointer;max-width:200px}
.branch-picker select:focus-visible{outline:2px solid #448eda;outline-offset:3px}
@media(max-width:600px){.web-toolbar{flex-wrap:wrap;align-items:center;gap:12px}.branch-picker{order:3;width:100%}.branch-picker select{width:100%;max-width:none;font-size:11px;padding:9px 10px}.web-tools{margin-left:auto}}

/* The client section rises over the web through the homepage's soft paper feather. */
.proof-web{position:relative;border-bottom:0;--results-feather:clamp(72px,11svh,120px)}
.proof-web::after{content:"";display:block;height:var(--results-feather);pointer-events:none;background:var(--web-paper)}
.web-stage{padding-bottom:0}
.web-viewport{
  --fade-left:0px;--fade-right:0px;--fade-top:0px;--fade-bottom:0px;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 var(--fade-left),#000 calc(100% - var(--fade-right)),transparent),linear-gradient(to bottom,transparent,#000 var(--fade-top),#000 calc(100% - var(--fade-bottom)),transparent);
  mask-image:linear-gradient(to right,transparent,#000 var(--fade-left),#000 calc(100% - var(--fade-right)),transparent),linear-gradient(to bottom,transparent,#000 var(--fade-top),#000 calc(100% - var(--fade-bottom)),transparent);
  -webkit-mask-composite:source-in;mask-composite:intersect;
}
#client-stories{z-index:2;background:#f0f3f7;padding-top:clamp(48px,6vw,84px)}
#client-stories::before{content:"";display:block;position:absolute;left:0;right:0;top:auto;bottom:calc(100% - 1px);width:100%;height:var(--results-feather,clamp(72px,11svh,120px));transform:none;pointer-events:none;background:linear-gradient(to bottom,rgba(240,243,247,0) 0%,rgba(240,243,247,.08) 18%,rgba(240,243,247,.32) 42%,rgba(240,243,247,.7) 70%,#f0f3f7 100%)}
#client-stories .op-heading.rv{transform:translateY(36px);transition:opacity .85s cubic-bezier(.2,.6,.2,1),transform .85s cubic-bezier(.2,.6,.2,1)}
#client-stories .op-heading.rv.in{transform:none}
@media(prefers-reduced-motion:reduce){.proof-web{top:0!important}#client-stories .op-heading.rv{opacity:1;transform:none;transition:none}}

/* Keep small receipts easy to pick at overview scale without enlarging the images. */
.receipt-node::before{content:"";position:absolute;left:50%;top:50%;width:100%;height:100%;min-width:calc(44px / var(--web-scale,1));min-height:calc(44px / var(--web-scale,1));transform:translate(-50%,-50%)}

/* Start inside the photo web; reserve Fit for the optional overview. */
.proof-web{max-width:none}
.web-viewport{height:calc(100svh - 190px);min-height:440px;max-height:none}
@media(max-width:600px){.web-viewport{height:calc(100svh - 255px);min-height:390px}}
/* A photo opens as the main view, with its full proportions preserved. */
.receipt-detail{inset:16px;margin:0;width:calc(100vw - 32px);height:calc(100dvh - 32px);max-width:none;max-height:none;border-radius:12px;background:#f6fafff7;overflow:auto;z-index:70}
.receipt-detail::backdrop{background:#dce8f0b8;backdrop-filter:blur(9px)}
.receipt-detail .detail-top{padding:12px 22px}
.receipt-detail .detail-top button{width:40px;height:40px}
.receipt-detail .detail-image{margin:24px auto 0;max-width:calc(100% - 48px)}
.receipt-detail .detail-image img{max-height:55dvh}
.receipt-detail .detail-navigation{background:#f6faff;z-index:2}
@media(min-width:701px){
.receipt-detail[open]{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,29%);grid-template-rows:65px minmax(0,1fr) 60px;overflow:hidden}
.receipt-detail .detail-top{grid-column:1/-1;grid-row:1;position:relative}
.receipt-detail .detail-image{grid-column:1;grid-row:2;align-self:center;justify-self:center;margin:0;max-width:calc(100% - 56px)}
.receipt-detail .detail-image img{max-height:calc(100dvh - 213px);max-width:100%;object-fit:contain}
.receipt-detail .detail-copy{grid-column:2;grid-row:2;align-self:center;max-height:100%;overflow:auto;padding:32px 30px;border-left:1px solid #d3e1ed}
.receipt-detail .detail-copy h2{font-size:clamp(28px,2.6vw,42px)}
.receipt-detail .detail-navigation{grid-column:1/-1;grid-row:3;position:relative}
.receipt-detail.no-image .detail-copy{grid-column:1/-1;justify-self:center;width:min(700px,100%);border:0}
}
@media(max-width:700px){
.receipt-detail{inset:8px;width:calc(100vw - 16px);height:calc(100dvh - 16px)}
.receipt-detail .detail-top{padding:8px 16px}
.receipt-detail .detail-copy{padding:24px}
.receipt-detail .detail-image{max-width:calc(100% - 40px);margin-top:20px}
}

.receipt-node .node-id{font-size:10px;font-weight:500;color:#174b83;letter-spacing:.02em;top:-21px;background:#eef4fbea;padding:3px 5px;border-radius:3px}
.receipt-node.main-node .node-id{font-size:11px;top:-24px}
