/* DDMind homepage v3. Generated from prototype/v3; do not edit here. */
/* DDMind v3 | Analytics page
   Loaded after ../v3.css (shared by every v3 page; never edited from here). Every rule is scoped under .v3-root
   and every class introduced here starts with v3-an-. Tokens, type, buttons, nav, footer, closing: ../v3.css.

   Idea         the homepage's annotated document: from 900px every section keeps to exhibit (main column) |
                gutter with the trace | margin (annotations), and nothing runs across the gutter.
   Hero         the homepage's film hero. From 900px the headline is one line across the content width, and the
                product film (drawn by assets/anfilm.js in a 1334:1032 frame; 8:5 on desktop windows up to 740px
                tall; 3:4 below 600 and on portrait windows below 768) takes the rest of the
                first screen's height; its margin column starts directly right of it, with the subline as note at
                the top and Get access at the foot.
   Quant        the three figures as a ruled term sheet; from 900px each figure's product point is its pinned
                note in the margin, level with the figure.
   Deliverables the eleven analyses set as text (name in ink, "Analysis" muted, hairlines between) between two
                rules in the main column: one wrapped run without script or with reduced motion; page.js turns
                it into two ruled rows that drift past in opposite directions.
   Enhance      the example table is the one exhibit plate; from 900px the three tools are numbered, pinned notes
                in the margin beside it, keyed to the columns they add; the three insights follow the table.
   Trace        from 900px page.js draws one line: from the stop back above the note into the hero's gutter, down
                past the note's and the film's nodes, with one chamfer under the hero across to the page's gutter
                (where the film is narrower than the main column; the white space under the hero deepens
                for it, as on the homepage), past every pinned note, and with one chamfer out to the closing mark.
                Below 900 the homepage's stubs (../v3.css) and, under the insights, its dotted chain.
   Overrides    rules that change a shared class (.v3-hero, .v3-h1, .v3-h2, .v3-film) name both classes, so they
                win on specificity whatever order the stylesheets load in.                                    */

.v3-root{--v3-an-wash:#F1F2FB}

/* --------- Trace layer (the svg is built by page.js from 900px up) --------- */
.v3-root .v3-an-thread{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;overflow:hidden;pointer-events:none}

/* --------- Hero (phone first) --------- */
/* three lines on phones: Trusted / data-driven / deal analysis. (the line break after "data-driven" is in the
   markup; from 600 ../v3.css keeps the headline from wrapping anywhere else, so it is two lines up to 899 and,
   with the break hidden, one line from 900) */
.v3-root .v3-h1.v3-an-h1{font-size:clamp(40px,calc(var(--v3-w) / 5.85),64px)}
/* the film (assets/anfilm.js draws it into #anFilm): the frame keeps the picture of the earlier product recording
   (1334:1032), so the hero's layout and the trace stay as they were; below 600, and on portrait windows below 768,
   the frame is 3:4 and the film switches to its tall stage (anfilm.js uses the same query), so its text stays
   large on a phone. That stage is drawn no wider than 480px (17px type), so on a portrait tablet (600 to 767) the
   film, its caption and its control row fit the first screen; the row's line keeps to the film's width. On desktop
   windows up to 740px tall (the laptop) the frame is 8:5 and the film switches to its short stage (the same query
   again): drawn wider for the same height, so its type stays at 12px or more and it still fits the first screen. */
.v3-root .v3-film.v3-an-film{aspect-ratio:1334/1032;background:#fff}
@media (max-width:599.98px),(max-width:767.98px) and (orientation:portrait){
  .v3-root .v3-film.v3-an-film{aspect-ratio:3/4;max-width:480px}
  .v3-root.v3-ready .v3-an-hero .v3-film-row{padding-right:max(0px,calc(100% - 480px))}
}
@media (min-width:900px) and (max-height:740px){
  .v3-root .v3-film.v3-an-film{aspect-ratio:8/5}
}
.v3-root .v3-an-anim{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}
/* a drawn film on a white page: one hairline inside the edge, over the picture */
.v3-root .v3-film.v3-an-film::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:2;border:1px solid rgba(14,22,48,.1);border-radius:inherit;pointer-events:none}
/* until anfilm.js has drawn its stage (it comes with the page's script bundle; without script it never does), the
   frame keeps its place but stays out of sight, so the hero never shows an empty box (and nothing moves when the
   film arrives: the frame then fades in with the hero) */
.v3-root .v3-film.v3-an-film:has(> .v3-an-anim:empty){opacity:0;animation:none}
/* the progress line and the pause control show once page.js has found the film's timeline (the row itself keeps
   its place, so the trace's node on it does not move) */
.v3-root.v3-ready .v3-an-hero .v3-film-row .v3-film-bar,.v3-root.v3-ready .v3-an-hero .v3-film-row .v3-film-toggle{visibility:hidden}
.v3-root.v3-ready .v3-an-hero .v3-hero-grid.v3-an-filmon .v3-film-bar,.v3-root.v3-ready .v3-an-hero .v3-hero-grid.v3-an-filmon .v3-film-toggle{visibility:visible}
.v3-root .v3-an-hero .v3-film-fill{transition:none}
.v3-root.v3-ready .v3-an-hero .v3-hero-grid:not(.v3-an-filmon) .v3-film{cursor:default}

/* --------- The film's stage (built by assets/anfilm.js; classes af-) ---------
   Three fixed stages scaled to the frame: 800 x 619 (the frame's 1334:1032 picture), 800 x 500 (8:5, desktop
   windows up to 740px tall) and, below 600 or on a portrait window below 768, 420 x 560 (3:4). Type is set in stage
   pixels and never under 15px: that renders at 13.4px in the 714px frame of a 1440 x 800 window, at 12px or more
   in the short stage's frame (at least 640px wide) and 12.8px on a 390 phone. The caption band never renders below
   12.5px (anfilm.js sets --af-k to the inverse of the scale). */
.v3-root #anFilm *{box-sizing:border-box;margin:0;padding:0}
.v3-root #anFilm .af-stage{position:absolute;left:0;top:0;width:800px;height:619px;transform-origin:0 0;overflow:hidden;font-family:"Inter Variablefont Opsz Wght","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:15px;line-height:1.4;font-weight:400;letter-spacing:0;color:#0E1630;background:#fff;text-align:left;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.v3-root #anFilm .af-stage.af-tall{width:420px;height:560px}
.v3-root #anFilm .af-h0{opacity:0;visibility:hidden}
.v3-root #anFilm i{display:block;font-style:normal}
.v3-root #anFilm b{font-weight:600}

/* DDMind window */
.v3-root #anFilm .af-app{position:absolute;left:16px;top:14px;width:768px;height:514px;border:1px solid #E1E4EA;border-radius:14px;background:#F5F6F8;overflow:hidden}
.v3-root #anFilm .af-tall .af-app{left:12px;top:12px;width:396px;height:486px;border-radius:12px}
.v3-root #anFilm .af-top{height:44px;display:flex;align-items:center;gap:16px;padding:0 16px;color:#454C63}
.v3-root #anFilm .af-tall .af-top{height:36px;gap:12px;padding:0 12px}
.v3-root #anFilm .af-lg{flex:none;width:80px;height:19px;background:url(https://cdn.prod.website-files.com/67daf695223996a51592cfec/6ac8219a7bea6cefb2c129a5_ddmind-logo-v2.svg) left center/contain no-repeat}
.v3-root #anFilm .af-tall .af-lg{width:70px;height:17px}
.v3-root #anFilm .af-crumb{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:500;white-space:nowrap}
.v3-root #anFilm .af-crumb b{color:#0E1630}
.v3-root #anFilm .af-sep{width:6px;height:6px;margin-left:-2px;border-top:1.5px solid #8C93A8;border-right:1.5px solid #8C93A8;transform:rotate(45deg)}
.v3-root #anFilm .af-me{flex:none;margin-left:auto;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#1F2BB4;color:#fff;font-size:15px;font-weight:600}
.v3-root #anFilm .af-tall .af-me{width:26px;height:26px}
.v3-root #anFilm .af-main{display:grid;grid-template-columns:142px minmax(0,1fr);height:calc(100% - 44px);padding:0 10px 10px}
.v3-root #anFilm .af-tall .af-main{grid-template-columns:minmax(0,1fr);height:calc(100% - 36px);padding:0 8px 8px}
.v3-root #anFilm .af-side{min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:2px;padding-right:8px;white-space:nowrap}
.v3-root #anFilm .af-proj{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:6px 8px;border-radius:11px;background:#fff;font-weight:600;box-shadow:0 0 0 1px #E3E5EA}
.v3-root #anFilm .af-proj-ic{flex:none;width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#0E1630;color:#fff;font-size:15px}
.v3-root #anFilm .af-si{height:32px;display:flex;align-items:center;padding:0 10px;border-radius:9px;font-weight:500;color:#454C63}
.v3-root #anFilm .af-si-on{background:#fff;color:#0E1630;box-shadow:0 0 0 1px #E3E5EA}
.v3-root #anFilm .af-ss{height:28px;display:flex;align-items:center;margin-left:8px;padding-left:9px;border-left:1px solid #D3D7E0;font-weight:500;color:#454C63}
.v3-root #anFilm .af-ss-on{color:#1F2BB4;font-weight:600}
.v3-root #anFilm .af-panel{position:relative;min-width:0;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 0 0 1px #E3E5EA}
.v3-root #anFilm .af-v{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;padding:20px 22px}
.v3-root #anFilm .af-tall .af-v{padding:14px}
.v3-root #anFilm .af-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px}
.v3-root #anFilm .af-hd{min-width:0}
.v3-root #anFilm .af-title{font-size:21px;line-height:26px;font-weight:600;letter-spacing:-.02em;white-space:nowrap}
.v3-root #anFilm .af-sub{margin-top:2px;font-size:15px;line-height:19px;color:#535A70;white-space:nowrap}
.v3-root #anFilm .af-tall .af-title{font-size:19px;line-height:24px}
.v3-root #anFilm .af-tall .af-v-res .af-sub{display:none}
/* the file picker */
.v3-root #anFilm .af-sel{position:relative;flex:none;width:336px;height:40px;display:flex;align-items:center;padding:0 38px 0 14px;border:1px solid #D3D7E0;border-radius:10px;background:#fff;color:#535A70;white-space:nowrap}
.v3-root #anFilm .af-tall .af-head:first-child{flex-wrap:wrap;row-gap:8px}
.v3-root #anFilm .af-tall .af-sel{width:100%;height:36px;padding-left:12px}
.v3-root #anFilm .af-sel-f{position:absolute;left:12px;top:0;bottom:0;display:flex;align-items:center;gap:9px;font-weight:500;color:#0E1630}
.v3-root #anFilm .af-chev{position:absolute;right:16px;top:50%;width:8px;height:8px;margin-top:-6px;border-right:1.5px solid #6B7287;border-bottom:1.5px solid #6B7287;transform:rotate(45deg)}
/* the drop zone, then the sheet */
.v3-root #anFilm .af-zone{position:relative;flex:none;height:196px;margin-top:12px}
.v3-root #anFilm .af-tall .af-zone{height:150px;margin-top:10px}
.v3-root #anFilm .af-drop{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #C3C8D6;border-radius:14px;background:#FAFBFC;color:#454C63}
.v3-root #anFilm .af-drop-ic{width:48px;height:52px;margin-bottom:10px}
.v3-root #anFilm .af-drop-ic svg{display:block}
.v3-root #anFilm .af-drop-t{font-size:17px;line-height:22px;font-weight:600;color:#0E1630}
.v3-root #anFilm .af-drop-s{margin-top:3px;font-size:15px;line-height:19px;color:#535A70}
.v3-root #anFilm .af-grid{position:absolute;top:0;left:0;right:0;bottom:0;border:1px solid #E1E4EA;border-radius:12px;background:#fff;overflow:hidden}
.v3-root #anFilm .af-gr{display:grid;grid-template-columns:96px minmax(0,1fr) 76px 72px 84px;column-gap:10px;align-items:center;height:27px;padding:0 14px;border-top:1px solid #EEF0F3;white-space:nowrap}
.v3-root #anFilm .af-tall .af-gr{grid-template-columns:90px minmax(0,1fr) 74px;height:24px;padding:0 10px}
.v3-root #anFilm .af-gr.af-gh{height:32px;border-top:0;background:#F6F7F9;font-weight:600;color:#454C63}
.v3-root #anFilm .af-tall .af-gr.af-gh{height:28px}
.v3-root #anFilm .af-gr > div{overflow:hidden;text-overflow:ellipsis}
.v3-root #anFilm .af-num{text-align:right}
.v3-root #anFilm .af-gr > div:first-child{font-variant-numeric:normal}
.v3-root #anFilm .af-gmore{height:27px;display:flex;align-items:center;padding:0 14px;border-top:1px solid #EEF0F3;color:#535A70}
.v3-root #anFilm .af-tall .af-gmore{height:24px;padding:0 10px}
/* what DDMind read */
.v3-root #anFilm .af-read{flex:none;margin-top:12px;padding:10px 14px;border-radius:12px;background:#F4F5FB}
.v3-root #anFilm .af-tall .af-read{margin-top:10px;padding:9px 12px}
.v3-root #anFilm .af-read-t{display:flex;align-items:center;gap:9px;line-height:20px;font-weight:500;color:#454C63;white-space:nowrap}
.v3-root #anFilm .af-read-t::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:#1F2BB4}
.v3-root #anFilm .af-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:6px}
.v3-root #anFilm .af-tall .af-stats{display:flex;justify-content:space-between;margin-top:4px}
.v3-root #anFilm .af-sv{font-size:22px;line-height:27px;font-weight:600;letter-spacing:-.02em;white-space:nowrap}
.v3-root #anFilm .af-tall .af-sv{font-size:20px;line-height:25px}
.v3-root #anFilm .af-sl{line-height:18px;color:#535A70}
/* recommended analyses */
.v3-root #anFilm .af-rec{flex:none;display:flex;align-items:center;gap:10px;margin-top:12px;white-space:nowrap}
.v3-root #anFilm .af-tall .af-rec{gap:7px;margin-top:10px}
.v3-root #anFilm .af-rec-l{margin-right:4px;font-weight:600;color:#454C63}
.v3-root #anFilm .af-chip{height:36px;display:flex;align-items:center;gap:8px;padding:0 14px;border:1px solid #D3D7E0;border-radius:999px;font-weight:500;color:#454C63}
.v3-root #anFilm .af-chip-on{padding-left:11px;border-color:#B7BDEB;background:#EEF0FB;color:#1F2BB4}
.v3-root #anFilm .af-tall .af-chip{height:34px;gap:7px;padding:0 12px 0 9px}
.v3-root #anFilm .af-ck{width:16px;height:16px;border-radius:50%;background:#1F2BB4;position:relative}
.v3-root #anFilm .af-ck::after{content:"";position:absolute;left:5.5px;top:3.5px;width:4px;height:7px;border-right:1.6px solid #fff;border-bottom:1.6px solid #fff;transform:rotate(40deg)}
.v3-root #anFilm .af-run{margin-left:auto;height:38px;display:flex;align-items:center;padding:0 18px;border-radius:999px;background:#1F2BB4;color:#fff;font-weight:600}
.v3-root #anFilm .af-tall .af-run{height:34px;padding:0 13px}
/* results */
.v3-root #anFilm .af-exp{position:relative;flex:none;height:40px;display:flex;align-items:center;gap:9px;padding:0 15px 0 12px;border:1px solid #CDD2DC;border-radius:10px;background:#fff;font-weight:600;overflow:hidden;white-space:nowrap}
.v3-root #anFilm .af-tall .af-exp{height:34px;padding:0 12px 0 10px}
.v3-root #anFilm .af-exp-t{position:relative}
.v3-root #anFilm .af-exp-b{position:absolute;left:0;top:0}
.v3-root #anFilm .af-exp-p{position:absolute;left:0;bottom:0;width:100%;height:2px;background:#1E7145;transform:scaleX(0);transform-origin:0 50%}
.v3-root #anFilm .af-xi{flex:none;position:relative;width:18px;height:18px;border-radius:4px;background:#1E7145}
.v3-root #anFilm .af-xi::before,.v3-root #anFilm .af-xi::after{content:"";position:absolute;left:8px;top:4px;width:2px;height:10px;border-radius:1px;background:#fff;transform:rotate(32deg)}
.v3-root #anFilm .af-xi::after{transform:rotate(-32deg)}
.v3-root #anFilm .af-tabs{position:relative;flex:none;display:flex;gap:28px;height:38px;margin-top:12px;border-bottom:1px solid #E3E5EA;white-space:nowrap}
.v3-root #anFilm .af-tall .af-tabs{gap:24px;height:34px;margin-top:10px}
.v3-root #anFilm .af-tab{display:flex;align-items:center;font-size:16px;font-weight:500;color:#5A6178}
.v3-root #anFilm .af-tall .af-tab{font-size:15px}
.v3-root #anFilm .af-tab-sb{color:#0E1630}
.v3-root #anFilm .af-ink{position:absolute;left:0;bottom:-1px;width:74px;height:2px;border-radius:1px;background:#1F2BB4}
.v3-root #anFilm .af-panes{position:relative;flex:1;margin-top:16px}
.v3-root #anFilm .af-tall .af-panes{margin-top:12px}
.v3-root #anFilm .af-pane{position:absolute;top:0;left:0;right:0;bottom:0;display:grid;grid-template-columns:352px minmax(0,1fr);column-gap:24px}
.v3-root #anFilm .af-tall .af-pane{display:flex;flex-direction:column}
.v3-root #anFilm .af-sbl,.v3-root #anFilm .af-col{min-width:0}
/* tables */
.v3-root #anFilm .af-tbl{display:grid;align-content:start;font-size:16px}
.v3-root #anFilm .af-sbt{grid-template-columns:127px repeat(5,minmax(0,1fr));font-size:15px}
.v3-root #anFilm .af-tall .af-sbt{grid-template-columns:96px repeat(5,minmax(0,1fr))}
.v3-root #anFilm .af-td{height:33px;display:flex;align-items:center;justify-content:flex-end;border-top:1px solid #EEF0F3;white-space:nowrap}
.v3-root #anFilm .af-tall .af-td{height:23px}
.v3-root #anFilm .af-td.af-tl{justify-content:flex-start;font-size:15px;font-weight:500;color:#454C63}
.v3-root #anFilm .af-td.af-th{height:28px;border-top:0;font-size:15px;font-weight:600;color:#535A70}
.v3-root #anFilm .af-tall .af-td.af-th{height:24px}
.v3-root #anFilm .af-td.af-tot{border-top:1px solid #0E1630;font-weight:600;color:#0E1630}
.v3-root #anFilm .af-kpis{display:flex;gap:28px;margin-top:18px;white-space:nowrap}
.v3-root #anFilm .af-kv{font-size:24px;line-height:30px;font-weight:600;letter-spacing:-.02em}
.v3-root #anFilm .af-kl{line-height:18px;color:#535A70}
/* the cohort table: the first year is plain ink (always 100); the later years take a shade, along the diagonals;
   the empty corner stays empty */
.v3-root #anFilm .af-cot{grid-template-columns:54px repeat(6,minmax(0,1fr));column-gap:3px;row-gap:3px;font-size:15px}
.v3-root #anFilm .af-cot .af-td{height:32px;border-top:0}
.v3-root #anFilm .af-cot .af-td.af-th{height:26px}
.v3-root #anFilm .af-cot .af-td.af-sp{height:22px}
.v3-root #anFilm .af-cot .af-span{grid-column:2 / -1;justify-content:center;border-bottom:1px solid #E3E5EA}
.v3-root #anFilm .af-tall .af-cot{grid-template-columns:52px repeat(6,minmax(0,1fr));column-gap:2px;row-gap:1px}
.v3-root #anFilm .af-tall .af-cot .af-td{height:20px}
.v3-root #anFilm .af-td.af-hc{justify-content:center;border-radius:3px;color:#0E1630}
/* a cohort cell waits as a pale slot; the film gives it its shade (data-h) and its figure along the diagonals */
.v3-root #anFilm .af-cot [data-h]{background:#F6F7FA;color:rgba(14,22,48,0)}
.v3-root #anFilm .af-td.af-th.af-hc{color:#535A70}
.v3-root #anFilm .af-note{margin-top:10px;line-height:19px;color:#535A70}
/* charts */
.v3-root #anFilm .af-ch{position:relative;min-width:0;display:flex;flex-direction:column}
.v3-root #anFilm .af-tall .af-ch{flex:1;margin-top:10px}
.v3-root #anFilm .af-ch-t{line-height:18px;font-weight:600;color:#454C63;white-space:nowrap}
.v3-root #anFilm .af-plot{position:relative;flex:1;margin-top:26px;border-bottom:1px solid #B8BECC}
.v3-root #anFilm .af-tall .af-plot{margin-top:18px}
.v3-root #anFilm .af-cats{position:relative;flex:none;display:flex;height:26px;padding-top:6px;line-height:20px;color:#454C63;white-space:nowrap}
.v3-root #anFilm .af-tall .af-cats{height:22px;padding-top:3px}
.v3-root #anFilm .af-wf .af-cats > div{position:absolute;transform:translateX(-50%)}
.v3-root #anFilm .af-bar{position:absolute;border-radius:3px}
.v3-root #anFilm .af-bt{background:#1F2BB4}
.v3-root #anFilm .af-bu{background:#8F99E3}
.v3-root #anFilm .af-bd{background:#E39A8F}
.v3-root #anFilm .af-bv{position:absolute;transform:translateX(-50%);line-height:16px;font-weight:600;white-space:nowrap}
.v3-root #anFilm .af-cn{position:absolute;height:0;border-top:1px dashed #A9B0C2}
.v3-root #anFilm .af-rc .af-plot{margin-left:42px;border-bottom:0}
.v3-root #anFilm .af-rc .af-cats{margin-left:42px}
.v3-root #anFilm .af-rc .af-cats > div{position:absolute;transform:translateX(-50%)}
.v3-root #anFilm .af-axt{flex:none;margin-left:42px;padding-top:1px;line-height:18px;color:#535A70;text-align:center}
.v3-root #anFilm .af-gl{position:absolute;left:0;right:0;height:0;border-top:1px solid #EEF0F3}
.v3-root #anFilm .af-gl0{border-top:1px dashed #A9B0C2}
.v3-root #anFilm .af-gl span{position:absolute;right:calc(100% + 6px);top:-9px;line-height:18px;color:#535A70}
.v3-root #anFilm .af-ln{position:absolute;top:0;left:0;right:0;bottom:0}
.v3-root #anFilm .af-ln svg{position:absolute;top:0;left:0;width:100%;height:100%;overflow:visible}
.v3-root #anFilm .af-le{position:absolute;width:0;height:0}
.v3-root #anFilm .af-le i{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 2px #fff}
.v3-root #anFilm .af-le span{position:absolute;left:9px;top:-10px;line-height:18px;font-weight:600;color:#0E1630;white-space:nowrap}
.v3-root #anFilm .af-le.af-le-w span{left:auto;right:9px;top:-12px}
.v3-root #anFilm .af-tall .af-rc .af-plot,.v3-root #anFilm .af-tall .af-rc .af-cats,.v3-root #anFilm .af-tall .af-axt{margin-left:40px}
.v3-root #anFilm .af-tall .af-rc .af-plot{margin-top:12px}
.v3-root #anFilm .af-tall .af-gl5 span{display:none}

/* Excel: the export's Snowball sheet (its figures are linked formulas) and its Data sheet */
.v3-root #anFilm .af-xl{position:absolute;left:16px;top:14px;width:768px;height:514px;display:flex;flex-direction:column;border:1px solid #CDD1D9;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 18px 40px -26px rgba(14,22,48,.35)}
.v3-root #anFilm .af-tall .af-xl{left:12px;top:12px;width:396px;height:486px}
.v3-root #anFilm .af-xt{flex:none;height:36px;display:flex;align-items:center;gap:10px;padding:0 14px;background:#1E7145;color:#fff;font-weight:500;white-space:nowrap}
.v3-root #anFilm .af-tall .af-xt{height:34px;padding:0 12px}
.v3-root #anFilm .af-xt-ic{flex:none;position:relative;width:20px;height:20px;border-radius:4px;background:#fff}
.v3-root #anFilm .af-xt-ic::before,.v3-root #anFilm .af-xt-ic::after{content:"";position:absolute;left:9px;top:4px;width:2px;height:12px;border-radius:1px;background:#1E7145;transform:rotate(32deg)}
.v3-root #anFilm .af-xt-ic::after{transform:rotate(-32deg)}
.v3-root #anFilm .af-xt-w{margin-left:auto;display:flex;align-items:center;gap:20px}
.v3-root #anFilm .af-xt-w i{position:relative;width:11px;height:11px}
.v3-root #anFilm .af-xt-w i:first-child{height:1.5px;background:#fff}
.v3-root #anFilm .af-xt-w i:nth-child(2){border:1.5px solid #fff}
.v3-root #anFilm .af-xt-w i:nth-child(3)::before,.v3-root #anFilm .af-xt-w i:nth-child(3)::after{content:"";position:absolute;left:4.75px;top:-1.5px;width:1.5px;height:14px;background:#fff;transform:rotate(45deg)}
.v3-root #anFilm .af-xt-w i:nth-child(3)::after{transform:rotate(-45deg)}
.v3-root #anFilm .af-xr{flex:none;height:34px;display:flex;align-items:flex-end;gap:22px;padding:0 14px;border-bottom:1px solid #E1E3E8;color:#454C63;white-space:nowrap}
.v3-root #anFilm .af-tall .af-xr{height:30px;gap:16px;padding:0 12px}
.v3-root #anFilm .af-xr span{padding-bottom:7px}
.v3-root #anFilm .af-tall .af-xr span{padding-bottom:5px}
.v3-root #anFilm .af-xr .af-on{color:#1E7145;font-weight:600;box-shadow:inset 0 -2px #1E7145}
.v3-root #anFilm .af-xf{flex:none;height:44px;display:flex;align-items:stretch;border-bottom:1px solid #E1E3E8}
.v3-root #anFilm .af-tall .af-xf{height:56px}
.v3-root #anFilm .af-xnb{flex:none;width:72px;display:flex;align-items:center;padding-left:12px;border-right:1px solid #E1E3E8;font-weight:500}
.v3-root #anFilm .af-tall .af-xnb{width:48px;padding-left:9px}
.v3-root #anFilm .af-xfx{flex:none;width:42px;display:flex;align-items:center;justify-content:center;border-right:1px solid #E1E3E8;font-family:Georgia,"Times New Roman",serif;font-size:16px;font-style:italic;color:#535A70}
.v3-root #anFilm .af-tall .af-xfx{width:30px}
.v3-root #anFilm .af-xfm{position:relative;flex:1;min-width:0;overflow:hidden}
.v3-root #anFilm .af-fm{position:absolute;left:14px;right:10px;top:0;bottom:0;display:flex;align-items:center;font-size:17px;line-height:22px;font-weight:500;white-space:nowrap}
.v3-root #anFilm .af-tall .af-fm{left:9px;right:6px;display:block;padding-top:6px;font-size:15px;line-height:21px;white-space:normal}
/* the colours Excel gives each reference while a formula is edited (formula bar, cell and range borders) */
.v3-root #anFilm .af-k1{color:#2B66D9}
.v3-root #anFilm .af-k2{color:#D23F37}
.v3-root #anFilm .af-k3{color:#8A3FC6}
.v3-root #anFilm .af-k4{color:#23884A}
.v3-root #anFilm .af-k5{color:#B97800}
.v3-root #anFilm .af-xgw{position:relative;flex:1;min-height:0}
.v3-root #anFilm .af-xg{position:absolute;top:0;left:0;right:0;bottom:0;display:grid;grid-template-rows:26px;grid-auto-rows:28px;align-content:start;overflow:hidden}
.v3-root #anFilm .af-xgs{grid-template-columns:34px 190px repeat(5,84px) 84px minmax(0,1fr)}
.v3-root #anFilm .af-xgd{grid-template-columns:52px 118px 166px 80px 80px 92px 62px 72px minmax(0,1fr)}
.v3-root #anFilm .af-tall .af-xg{grid-template-rows:24px;grid-auto-rows:27px}
.v3-root #anFilm .af-tall .af-xgs{grid-template-columns:26px 128px repeat(5,45px) minmax(0,1fr)}
.v3-root #anFilm .af-tall .af-xgd{grid-template-columns:50px 66px 70px 82px 52px 66px minmax(0,1fr)}
.v3-root #anFilm .af-xc{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;border-right:1px solid #E6E8EC;border-bottom:1px solid #E6E8EC;white-space:nowrap;overflow:hidden}
.v3-root #anFilm .af-tall .af-xc{padding:0 5px}
.v3-root #anFilm .af-xc.af-xa{justify-content:flex-start}
.v3-root #anFilm .af-xc.af-xo{overflow:visible;position:relative;z-index:1}
.v3-root #anFilm .af-xc.af-xb{font-weight:600}
.v3-root #anFilm .af-xc.af-xh{justify-content:center;padding:0;background:#F3F4F6;color:#535A70}
.v3-root #anFilm .af-xc.af-xfz{border-bottom-color:#A6ACBA}
.v3-root #anFilm .af-xc.af-xnew{background:#EEF0FB}
/* the Data sheet's dates: proportional figures, so the hyphens are not spaced out like tabular ones */
.v3-root #anFilm .af-xc.af-xd{font-variant-numeric:normal}
.v3-root #anFilm .af-xgd .af-xm{background:rgba(43,102,217,0)}
.v3-root #anFilm .af-xhc,.v3-root #anFilm .af-xhr{position:absolute;left:0;top:0;background:rgba(30,113,69,.12)}
.v3-root #anFilm .af-xhc{box-shadow:inset 0 -2px #1E7145}
.v3-root #anFilm .af-xhr{box-shadow:inset -2px 0 #1E7145}
.v3-root #anFilm .af-xsel{position:absolute;left:0;top:0;border:2px solid #1E7145;z-index:3}
.v3-root #anFilm .af-xsel::after{content:"";position:absolute;right:-4px;bottom:-4px;width:6px;height:6px;border:1px solid #fff;background:#1E7145}
/* a cell open for editing: a thin border, no fill handle, the formula left-aligned over the empty cells to its
   right and cut off at the window's edge */
.v3-root #anFilm .af-xed{position:absolute;left:0;top:0;z-index:4;display:flex;align-items:center;padding:0 7px;border:1.5px solid #1E7145;background:#fff;font-weight:500;white-space:nowrap}
.v3-root #anFilm .af-tall .af-xed{padding:0 4px}
.v3-root #anFilm .af-xp{position:absolute;left:0;top:0;border:1.5px solid;z-index:2}
.v3-root #anFilm .af-xp1,.v3-root #anFilm .af-xp6{border-color:#2B66D9}
.v3-root #anFilm .af-xp2{border-color:#D23F37}
.v3-root #anFilm .af-xp3{border-color:#8A3FC6}
.v3-root #anFilm .af-xp4{border-color:#23884A}
.v3-root #anFilm .af-xp5{border-color:#B97800}
.v3-root #anFilm .af-xs{flex:none;height:34px;display:flex;align-items:stretch;gap:2px;padding-left:40px;border-top:1px solid #E1E3E8;background:#F6F7F9;color:#454C63}
.v3-root #anFilm .af-tall .af-xs{height:32px;padding-left:10px}
.v3-root #anFilm .af-xtab{display:flex;align-items:center;padding:0 16px}
.v3-root #anFilm .af-tall .af-xtab{padding:0 12px}
.v3-root #anFilm .af-xtab.af-on{background:#fff;color:#1E7145;font-weight:600;box-shadow:inset 0 -2px #1E7145}
.v3-root #anFilm .af-xplus{display:flex;align-items:center;padding:0 12px;font-size:17px;color:#6B7287}

/* the data cube: three faces of 4 x 4 cells in isometric projection, each face's seams in its own darker tone,
   one row of data lit across both side faces; and its file name */
.v3-root #anFilm .af-cube{position:absolute;left:0;top:0;width:0;height:0;z-index:4}
.v3-root #anFilm .af-cb{position:absolute;left:0;top:0;width:0;height:0}
.v3-root #anFilm .af-shd{position:absolute;left:-74px;top:58px;width:148px;height:34px;border-radius:50%;background:radial-gradient(closest-side,rgba(14,22,48,.2),rgba(14,22,48,0))}
.v3-root #anFilm .af-face{position:absolute;width:68px;height:68px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:1.5px;transform-origin:0 0}
.v3-root #anFilm .af-face i{border-radius:.5px}
.v3-root #anFilm .af-ft{left:0;top:-68px;transform:matrix(.866,.5,-.866,.5,0,0);background:#C3C9EF}
.v3-root #anFilm .af-fl{left:-58.9px;top:-34px;transform:matrix(.866,.5,0,1,0,0);background:#A7AFE6}
.v3-root #anFilm .af-fr{left:0;top:0;transform:matrix(.866,-.5,0,1,0,0);background:#8A94DB}
.v3-root #anFilm .af-ft i{background:#E2E5F8}
.v3-root #anFilm .af-fl i{background:#C6CCF1}
.v3-root #anFilm .af-fr i{background:#A9B1EA}
.v3-root #anFilm .af-fl i.af-ca{background:#5D68CD}
.v3-root #anFilm .af-fr i.af-ca{background:#2F3BBA}
.v3-root #anFilm .af-cube-l{position:absolute;left:0;top:88px;display:flex;align-items:center;gap:9px;padding:8px 13px 8px 10px;border-radius:10px;background:#fff;box-shadow:0 0 0 1px #E1E4EA,0 8px 20px -10px rgba(14,22,48,.3);font-weight:600;white-space:nowrap;transform:translateX(-50%)}

/* cursor and caption band */
.v3-root #anFilm .af-cur{position:absolute;left:0;top:0;width:22px;height:26px;margin:-2px 0 0 -3px;z-index:6;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 26'%3E%3Cpath d='M3 2l15 11-7 1.2 4.3 8-3 1.4-4.2-8L3 20z' fill='%230E1630' stroke='%23fff' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.v3-root #anFilm .af-cap{position:absolute;left:24px;right:24px;top:530px;bottom:0;display:flex;align-items:center;justify-content:center;text-align:center;font-size:max(24px,calc(12.5px * var(--af-k,1)));line-height:1.25;font-weight:500;letter-spacing:-.014em;color:#0E1630;text-wrap:balance}
.v3-root #anFilm .af-tall .af-cap{left:14px;right:14px;top:500px;font-size:max(22px,calc(12.5px * var(--af-k,1)))}

/* the short stage (800 x 500, desktop windows up to 740px tall): the wide layout, same widths and type, with less
   height: the windows 422 tall, the sheet in the drop zone three rows, the snowball and cohort rows closer, the
   results without the file name under their title, Excel nine rows (the Data sheet eight) */
.v3-root #anFilm .af-stage.af-short{height:500px}
.v3-root #anFilm .af-short .af-app,.v3-root #anFilm .af-short .af-xl{top:12px;height:422px}
.v3-root #anFilm .af-short .af-top{height:40px}
.v3-root #anFilm .af-short .af-main{height:calc(100% - 40px)}
.v3-root #anFilm .af-short .af-v{padding:16px 22px}
.v3-root #anFilm .af-short .af-zone{height:136px;margin-top:10px}
.v3-root #anFilm .af-short .af-gr{height:26px}
.v3-root #anFilm .af-short .af-gr.af-gh{height:30px}
.v3-root #anFilm .af-short .af-gmore{height:26px}
.v3-root #anFilm .af-short .af-read{margin-top:10px;padding:8px 14px}
.v3-root #anFilm .af-short .af-stats{margin-top:4px}
.v3-root #anFilm .af-short .af-rec{margin-top:10px}
.v3-root #anFilm .af-short .af-v-res .af-sub{display:none}
.v3-root #anFilm .af-short .af-tabs{height:34px;margin-top:10px}
.v3-root #anFilm .af-short .af-panes{margin-top:12px}
.v3-root #anFilm .af-short .af-td,.v3-root #anFilm .af-short .af-td.af-th{height:26px}
.v3-root #anFilm .af-short .af-kpis{margin-top:12px}
.v3-root #anFilm .af-short .af-kv{font-size:22px;line-height:28px}
.v3-root #anFilm .af-short .af-plot{margin-top:22px}
.v3-root #anFilm .af-short .af-cot{row-gap:2px}
.v3-root #anFilm .af-short .af-cot .af-td{height:23px}
.v3-root #anFilm .af-short .af-cot .af-td.af-th{height:24px}
.v3-root #anFilm .af-short .af-cot .af-td.af-sp{height:22px}
.v3-root #anFilm .af-short .af-note{margin-top:8px;line-height:17px}
.v3-root #anFilm .af-short .af-xt{height:34px}
.v3-root #anFilm .af-short .af-xr{height:30px}
.v3-root #anFilm .af-short .af-xr span{padding-bottom:5px}
.v3-root #anFilm .af-short .af-xf{height:40px}
.v3-root #anFilm .af-short .af-xs{height:32px}
.v3-root #anFilm .af-short .af-cap{top:434px}

/* without GSAP: the still of the snowball analysis */
.v3-root #anFilm .af-static .af-side,.v3-root #anFilm .af-static .af-off{display:none}
.v3-root #anFilm .af-static .af-main{grid-template-columns:minmax(0,1fr)}

/* phones: the section headings keep their designed break ("Uncover hidden patterns / in your data."), so they
   follow the column width, as the homepage's security heading does */
@media (max-width:599.98px){
  .v3-root .v3-h2.v3-an-h2{font-size:min(var(--v3-h2),calc(var(--v3-w) / 11))}
}

/* --------- Quant insights: a ruled term sheet ---------
   One row per figure, ruled like the term sheet on the homepage and like Security's facts (a hairline, no plate).
   The rules run the width of the main column only; from 900px the product point sits in the margin. */
.v3-root .v3-an-figs{margin-top:var(--v3-gap)}
.v3-root .v3-an-fig{position:relative;padding:18px 0 24px}
.v3-root .v3-an-fig::before{content:"";position:absolute;left:0;top:0;width:var(--v3-main);height:1px;background:var(--v3-hair2)}
.v3-root .v3-an-fig:last-child::after{content:"";position:absolute;left:0;bottom:0;width:var(--v3-main);height:1px;background:var(--v3-hair2)}
.v3-root .v3-an-fig-v{font-size:40px;line-height:1;font-weight:600;letter-spacing:-.03em;color:var(--v3-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.v3-root .v3-an-fig-what{margin-top:12px}
.v3-root .v3-an-fig-l{font-size:18px;line-height:26px;font-weight:600;letter-spacing:-.012em;color:var(--v3-ink)}
.v3-root .v3-an-fig-was{font-size:16px;line-height:24px;color:var(--v3-muted)}
.v3-root .v3-an-fig-pt{margin-top:12px;font-size:16px;line-height:24px;font-weight:500;letter-spacing:-.006em;color:var(--v3-ink);text-wrap:pretty}

/* --------- Deliverables: the analyses set as text ---------
   Base (no script, reduced motion): one wrapped run between two rules, a hairline between the names. Each
   hairline sits in the gap before its name; the one before the first name of a line falls outside the list's box
   and is clipped, so no line starts or ends with a rule. */
.v3-root .v3-an-mq{--v3-an-g:32px;--v3-an-f:28px;position:relative;margin-top:var(--v3-gap);border-top:1px solid var(--v3-hair2);border-bottom:1px solid var(--v3-hair2)}
.v3-root .v3-an-dl{display:flex;flex-wrap:wrap;column-gap:var(--v3-an-g);row-gap:8px;padding:16px 0;overflow:hidden}
.v3-root .v3-an-dl-i{position:relative;flex:none;white-space:nowrap;font-size:20px;line-height:32px;font-weight:600;letter-spacing:-.016em;color:var(--v3-ink)}
.v3-root .v3-an-dl-i::before{content:"";position:absolute;left:calc(var(--v3-an-g) / -2 - .5px);top:50%;width:1px;height:20px;margin-top:-10px;background:var(--v3-hair2)}
.v3-root .v3-an-dl-a{color:var(--v3-muted)}
/* With page.js: two rows, each one line, ruled above, between and below (the middle rule is drawn by the box, so
   it stays crisp while the names fade in and out at both ends of a row). Each row holds its names and, for the
   seamless loop, page.js's copies of them, and moves by exactly one set (--v3-an-p) per loop (--v3-an-t, about a
   minute); the second row runs the other way. Hover or keyboard focus holds both; so does leaving the screen. */
.v3-root .v3-an-mq-on::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;margin-top:-.5px;background:var(--v3-hair2)}
.v3-root .v3-an-mq-on:focus-visible{outline:2px solid var(--v3-blue);outline-offset:6px;border-radius:4px}
.v3-root .v3-an-mq-row{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0),#000 var(--v3-an-f),#000 calc(100% - var(--v3-an-f)),rgba(0,0,0,0));mask-image:linear-gradient(90deg,rgba(0,0,0,0),#000 var(--v3-an-f),#000 calc(100% - var(--v3-an-f)),rgba(0,0,0,0))}
.v3-root .v3-an-mq-on .v3-an-dl{flex-wrap:nowrap;width:-webkit-max-content;width:max-content;overflow:visible;animation:v3-an-mq var(--v3-an-t,60s) linear infinite;will-change:transform}
.v3-root .v3-an-mq-row + .v3-an-mq-row .v3-an-dl{animation-direction:reverse}
.v3-root .v3-an-mq-on:hover .v3-an-dl,.v3-root .v3-an-mq-on:focus-within .v3-an-dl,.v3-root .v3-an-mq-off .v3-an-dl{animation-play-state:paused}
@keyframes v3-an-mq{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(var(--v3-an-p,0px) * -1),0,0)}}

/* --------- Enhance the dataset: tools, table, insights --------- */
.v3-root .v3-an-set{margin-top:var(--v3-gap)}
.v3-root .v3-an-tools{display:grid;grid-template-columns:minmax(0,1fr);row-gap:32px}
/* each tool: ruled like the rows above, no plate */
.v3-root .v3-an-tool{display:flex;flex-direction:column;padding-top:16px;border-top:1px solid var(--v3-hair2)}
.v3-root .v3-an-tool-h{display:flex;align-items:center}
.v3-root .v3-an-tool-t{font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.014em;color:var(--v3-ink)}
.v3-root .v3-an-tool-h .v3-mk{margin-left:10px}
.v3-root .v3-an-tool-d{margin-top:4px;margin-bottom:12px;font-size:16px;line-height:24px;color:var(--v3-text);text-wrap:pretty}
.v3-root .v3-an-ex{padding:9px 0 10px;border-top:1px solid var(--v3-hair);font-size:15px;line-height:22px;font-weight:500;color:var(--v3-ink);text-wrap:pretty}

/* the example table: the section's one exhibit plate; the three new columns carry a blue wash and their tool's
   number */
.v3-root .v3-an-dataw{position:relative;margin-top:40px}
.v3-root .v3-an-data{overflow-x:auto;border:1px solid var(--v3-hair);border-radius:var(--v3-r);background:#fff;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.v3-root .v3-an-data:focus-visible{outline:2px solid var(--v3-blue);outline-offset:3px}
/* one set of column tracks for all rows (each row is a subgrid of the table), so the columns always line up;
   below 900 every column is as wide as its content and the table scrolls inside its plate */
.v3-root .v3-an-tbl{display:grid;grid-template-columns:repeat(8,auto);width:-webkit-max-content;width:max-content;min-width:100%;font-size:15px;line-height:20px;color:var(--v3-ink);font-variant-numeric:tabular-nums}
.v3-root .v3-an-tr{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;border-top:1px solid var(--v3-hair)}
@supports not (grid-template-columns:subgrid){
  .v3-root .v3-an-tbl{display:block;width:900px}
  .v3-root .v3-an-tr{grid-template-columns:116px 92px 110px 164px 188px 88px 128px 1fr}
}
.v3-root .v3-an-th{border-top:0}
.v3-root .v3-an-td{display:flex;flex-direction:column;justify-content:center;padding:13px 14px;white-space:nowrap}
.v3-root .v3-an-th .v3-an-td{justify-content:flex-end;padding-top:16px;padding-bottom:12px;font-size:13px;line-height:18px;font-weight:500;color:var(--v3-muted)}
.v3-root .v3-an-new{background:var(--v3-an-wash)}
.v3-root .v3-an-tag{font-size:11px;line-height:14px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--v3-muted)}
.v3-root .v3-an-col{display:flex;align-items:center;margin-top:4px}
.v3-root .v3-an-col-n{font-size:14px;line-height:20px;font-weight:600;color:var(--v3-ink)}
.v3-root .v3-an-col .v3-mk{margin-left:8px}
/* where the table scrolls, the customer column stays put */
.v3-root .v3-an-tr .v3-an-td:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:#fff}
/* below 900 the three new columns come straight after the customer column, so the first screen of the plate
   shows what the exhibit is about; the rest follow. Every row is reordered the same way, so the columns still
   line up (and the header still sits over its cells for screen readers, which read the document order).
   The pinned column gets a hairline edge, so scrolled cells end cleanly against it. */
@media (max-width:899.98px){
  .v3-root .v3-an-tr .v3-an-td{order:2}
  .v3-root .v3-an-tr .v3-an-new{order:1}
  .v3-root .v3-an-tr .v3-an-td:first-child{order:0;box-shadow:1px 0 0 var(--v3-hair)}
  @supports not (grid-template-columns:subgrid){
    .v3-root .v3-an-tbl{width:1044px}
    .v3-root .v3-an-tr{grid-template-columns:116px 164px 188px 156px 92px 110px 88px 1fr}
  }
}
/* plates that still scroll from 900 (the main column is narrow there): the same edge once the table has moved */
.v3-root.v3-ready .v3-an-dataw.v3-an-scrolled .v3-an-tr .v3-an-td:first-child{box-shadow:1px 0 0 var(--v3-hair)}
.v3-root .v3-an-dataw::after{content:"";position:absolute;top:1px;right:1px;bottom:1px;width:48px;border-radius:0 var(--v3-r) var(--v3-r) 0;background:linear-gradient(90deg,rgba(255,255,255,0),#fff);pointer-events:none;opacity:0;transition:opacity .2s ease-out}
.v3-root.v3-ready .v3-an-dataw.v3-an-more::after{opacity:1}

/* the insights: set like the homepage's reviewer questions, a small label, then the sentence */
.v3-root .v3-an-ins{position:relative;margin-top:var(--v3-gap)}
.v3-root .v3-an-in{position:relative}
.v3-root .v3-an-in-k{font-size:14px;line-height:20px;font-weight:500;color:var(--v3-muted)}
.v3-root .v3-an-in-q{max-width:27em;margin-top:4px;font-size:19px;line-height:27px;font-weight:500;letter-spacing:-.012em;color:var(--v3-ink);text-indent:-.4em;text-wrap:pretty}

/* ========= One column (below 900): the homepage's phone chain, from the insights into the closing mark =========
   As Security's term sheet does on the homepage: a dotted chain down the left edge, one node per insight, that
   runs on to the foot of the section, where ../v3.css's closing stub takes it on into the mark. */
@media (max-width:899.98px){
  .v3-root .v3-an-ins{padding-left:28px}
  .v3-root .v3-an-ins::before{content:"";position:absolute;left:3px;top:10px;bottom:calc(var(--v3-sec) * -1);width:1px;background:var(--v3-line)}
  .v3-root .v3-an-in + .v3-an-in{margin-top:24px}
  .v3-root .v3-an-in::before{content:"";position:absolute;left:-28px;top:6.5px;width:7px;height:7px;border-radius:50%;background:var(--v3-blue)}
}

/* ========= Tablet and up (600) ========= */
@media (min-width:600px){
  /* two lines: Trusted data-driven / deal analysis. */
  .v3-root .v3-h1.v3-an-h1{font-size:calc(var(--v3-w) / 8.85)}

  /* the figures as term-sheet rows: the figure | what it measures, with its product point below */
  .v3-root .v3-an-fig{display:grid;grid-template-columns:minmax(0,34%) minmax(0,1fr);column-gap:24px;align-items:baseline;padding:24px 0 26px}
  .v3-root .v3-an-fig-v{grid-column:1;grid-row:1;font-size:44px}
  .v3-root .v3-an-fig-what{grid-column:2;grid-row:1;margin-top:0}
  .v3-root .v3-an-fig-pt{grid-column:2;grid-row:2;margin-top:12px;font-size:17px;line-height:26px}
  .v3-root .v3-an-fig-l{font-size:20px;line-height:28px}
  .v3-root .v3-an-fig-was{font-size:17px;line-height:26px}

  /* the analyses: larger, more air between them */
  .v3-root .v3-an-mq{--v3-an-g:44px;--v3-an-f:48px}
  .v3-root .v3-an-dl{row-gap:8px;padding:20px 0}
  .v3-root .v3-an-dl-i{font-size:26px;line-height:40px}
  .v3-root .v3-an-dl-i::before{height:24px;margin-top:-12px}

  .v3-root .v3-an-in-q{font-size:20px;line-height:28px}
}
/* 700 to 899: the tools side by side, ruled; one row per part, shared across the three, so the examples line up */
@media (min-width:700px) and (max-width:899.98px){
  .v3-root .v3-an-tools{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,auto);column-gap:20px;row-gap:0}
  .v3-root .v3-an-tool{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0}
  .v3-root .v3-an-tool-d{align-self:start}
}
@supports not (grid-template-rows:subgrid){
  @media (min-width:700px) and (max-width:899.98px){
    .v3-root .v3-an-tools{row-gap:16px}
    .v3-root .v3-an-tool{display:flex;grid-row:auto}
    .v3-root .v3-an-tool-d{flex:1 0 auto}
  }
}

/* ========= Desktop (900): exhibit | gutter with the trace | margin ========= */
@media (min-width:900px){
  /* Hero. The headline is one line across the content width (14.3em with its stop; the break in the markup is
     hidden), well above the section headings (1.4 times). The film (a 1334 x 1032 frame) takes the rest
     of the window's height: nav 64 + 20 + headline (1.04) + 24 + film + its control row 28 + 16 spare =
     the window, never under 640 wide, never wider than the main column. Its margin column starts directly right
     of it (../v3.css); where the film is narrower than the main column (--v3-jog), the white space under the
     hero deepens so the trace can step across to the page's gutter with one 45 degree chamfer, exactly as on the
     homepage (and, past a 240px step, does not). The note sits at the top of the margin column (../v3.css).
     At 640 wide (where the main column allows) the film's type renders at 12px. Windows up to 740 tall, where a
     1334:1032 film could not be that wide and still fit, take the 8:5 frame (below). */
  .v3-root .v3-hero.v3-an-hero{
    --v3-an-hs:calc(var(--v3-w) / 14.4);
    --v3-fw:min(var(--v3-main),max(min(var(--v3-main),640px),calc((100vh - 152px - var(--v3-an-hs) * 1.04) * 1.2926)));
    --v3-jog:calc(var(--v3-main) - var(--v3-fw));
    padding-bottom:max(clamp(80px,8.9vw,128px),min(calc(var(--v3-jog) + 40px),calc((240px - var(--v3-jog)) * 999)));
  }
  .v3-root .v3-h1.v3-an-h1{font-size:var(--v3-an-hs)}
  .v3-root .v3-an-h1 br{display:none}
  /* Webflow trims the space before the <br>, so the gap between "data-driven" and "deal" comes from here; next to a kept space it collapses into one */
  .v3-root .v3-an-h1 .v3-nw::after{content:" "}
  /* the trace comes from the stop along the line of the film's top edge and down into the note's node, so
     the note starts a few px below that edge (../v3.css: 5px above it) */
  .v3-root .v3-an-hero .v3-notes{margin-top:6px}
  /* the film row's node, in the hero's gutter (the tick to it comes from ../v3.css) */
  .v3-root.v3-ready .v3-an-hero .v3-hero-grid{position:relative}
  .v3-root.v3-ready .v3-an-hero .v3-hero-grid::after{content:"";position:absolute;left:calc(var(--v3-fw) + var(--v3-gut) / 2 - 3.5px);bottom:10.5px;width:7px;height:7px;border-radius:50%;background:var(--v3-blue)}

  /* Quant: figure | what it measures in the main column (the term sheet's title column is ../v3.css's
     --v3-tcol, the axis of the footer's first column); the product point is the pinned note in the margin,
     its first line on the figure's baseline */
  .v3-root .v3-an-fig{grid-template-columns:var(--v3-tcol) calc(var(--v3-main) - var(--v3-tcol) - 32px) minmax(0,1fr);column-gap:32px;padding:28px 0 30px}
  .v3-root .v3-an-fig-v{font-size:clamp(44px,3.9vw,56px)}
  .v3-root .v3-an-fig-pt{grid-column:3;grid-row:1;max-width:var(--v3-mw);margin:0 0 0 calc(var(--v3-gut) - 32px);font-size:18px;line-height:28px;letter-spacing:-.01em}

  /* Deliverables: the rows keep to the main column (nothing runs across the gutter) */
  .v3-root .v3-an-mq{--v3-an-g:52px;--v3-an-f:72px;max-width:var(--v3-main)}
  .v3-root .v3-an-dl-i{font-size:clamp(26px,2.25vw,32px)}
  .v3-root .v3-an-dl-i::before{height:28px;margin-top:-14px}

  /* Enhance: the table (exhibit) with the insights under it in the main column, the tools in the margin. The
     tools span both rows; the first row is as tall as the table alone, so the insights follow it directly. */
  .v3-root .v3-an-set{display:grid;grid-template-columns:var(--v3-main) minmax(0,var(--v3-mw));grid-template-rows:auto 1fr;column-gap:var(--v3-gut);align-items:start}
  .v3-root .v3-an-tools{grid-column:2;grid-row:1 / span 2;row-gap:40px}
  .v3-root .v3-an-tool{padding-top:0;border-top:0}
  .v3-root .v3-an-dataw{grid-column:1;grid-row:1;margin-top:0}
  /* the columns follow their content, the spare width shared out evenly (header labels wrap only where the plate
     is too narrow for them); the table fits its plate from about 1200 and scrolls inside it below that */
  .v3-root .v3-an-tbl{grid-template-columns:repeat(8,auto);width:auto;min-width:-webkit-min-content;min-width:min-content;font-size:13.5px}
  @supports not (grid-template-columns:subgrid){
    .v3-root .v3-an-tbl{width:auto;min-width:0}
    .v3-root .v3-an-tr{grid-template-columns:1.05fr .85fr 1fr 1.1fr 1.42fr .8fr 1.05fr 1.02fr}
  }
  .v3-root .v3-an-td{padding:14px 9px}
  .v3-root .v3-an-td:first-child{padding-left:14px}
  .v3-root .v3-an-th .v3-an-td{padding-top:16px;padding-bottom:12px;font-size:12.5px;white-space:normal}
  .v3-root .v3-an-col-n{font-size:13px;line-height:18px}
  .v3-root .v3-an-ins{grid-column:1;grid-row:2;margin-top:48px}
  .v3-root .v3-an-in{padding:18px 0 22px;border-top:1px solid var(--v3-hair2)}
  .v3-root .v3-an-in:last-child{border-bottom:1px solid var(--v3-hair2)}
  .v3-root .v3-an-in-q{max-width:32em;margin-top:6px}

  /* where page.js draws the trace, a node and its tick appear as the line reaches them (as on the homepage) */
  .v3-root.v3-an-threaded .v3-pin::before,.v3-root.v3-an-threaded .v3-an-hero .v3-hero-grid::after{opacity:0;transition:opacity .4s ease-out}
  .v3-root.v3-an-threaded .v3-pin::after,.v3-root.v3-ready.v3-an-threaded .v3-an-hero .v3-film-row::after{transform:scaleX(0);transition:transform .5s var(--v3-out) .1s}
  .v3-root.v3-an-threaded .v3-pin.v3-an-lit::before,.v3-root.v3-an-threaded .v3-an-hero .v3-hero-grid.v3-an-lit::after{opacity:1}
  .v3-root.v3-an-threaded .v3-pin.v3-an-lit::after,.v3-root.v3-ready.v3-an-threaded .v3-an-hero .v3-hero-grid.v3-an-lit .v3-film-row::after{transform:none}
}
/* Desktop windows up to 740 tall (the laptop): the 8:5 frame (anfilm.js draws its short stage), sized by the same
   height budget, never under 640 wide: at 1366 x 657 it is about 663 x 415 (type 12.4px) and fits the first screen
   with its control row; at 1280 x 600 it is 640 x 400 (12px) and fits, the control row just below the fold. */
@media (min-width:900px) and (max-height:740px){
  .v3-root .v3-hero.v3-an-hero{--v3-fw:min(var(--v3-main),max(min(var(--v3-main),640px),calc((100vh - 152px - var(--v3-an-hs) * 1.04) * 1.6)))}
}
@media (min-width:1280px){
  .v3-root .v3-an-in-q{font-size:21px;line-height:30px}
}
@media (min-width:1366px){
  .v3-root .v3-an-tbl{font-size:14px}
  .v3-root .v3-an-td{padding-left:11px;padding-right:11px}
  .v3-root .v3-an-td:first-child{padding-left:18px}
  .v3-root .v3-an-th .v3-an-td{font-size:13px}
  .v3-root .v3-an-col-n{font-size:13.5px}
}

/* ========= Reduced motion: everything in its final state ========= */
@media (prefers-reduced-motion:reduce){
  .v3-root .v3-an-mq-on .v3-an-dl{animation:none}
  .v3-root .v3-an-dataw::after{transition:none}
  .v3-root.v3-an-threaded .v3-pin::before,.v3-root.v3-an-threaded .v3-pin::after,.v3-root.v3-an-threaded .v3-an-hero .v3-hero-grid::after,.v3-root.v3-ready.v3-an-threaded .v3-an-hero .v3-film-row::after{transition:none}
}

/* Windows contrast themes: the markers and the trace keep their colours */
@media (forced-colors:active){
  .v3-root.v3-ready .v3-an-hero .v3-hero-grid::after,.v3-root .v3-an-in::before,.v3-root .v3-an-dl-i::before,.v3-root .v3-an-mq-on::after{forced-color-adjust:none}
  .v3-root .v3-an-new{border-left:1px solid CanvasText}
}
