{"id":6895,"date":"2026-08-27T10:10:00","date_gmt":"2026-08-27T10:10:00","guid":{"rendered":"https:\/\/bioprofile.com\/?page_id=6895"},"modified":"2026-09-30T20:27:25","modified_gmt":"2026-09-30T20:27:25","slug":"stress-test","status":"publish","type":"page","link":"https:\/\/bioprofile.com\/en\/stress-test\/","title":{"rendered":"Scan: Stress test"},"content":{"rendered":"\n<div class=\"wp-block-group bp-scan bp-scan--v2 is-layout-flow wp-block-group-is-layout-flow\">\n\n<div id=\"content\" tabindex=\"-1\"><\/div>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;500;600;700&#038;display=swap\">\n<style id=\"bp-scan-design\">\n\/* ===========================================================================\n   BioProfile scan page. One template, eleven instances. T147, built from the\n   T128 spec's section architecture. Tokens: brands\/bioprofile\/brand\/tokens.md.\n   =========================================================================== *\/\n\n.bp-scan {\n  --bp-ink: #212527;\n  --bp-teal: #005859;\n  --bp-teal-deep: #006B62;\n  --bp-emerald: #228A62;\n  --bp-green: #7CA74D;\n  --bp-lime: #B7CB33;\n  --bp-lime-soft: #B7CB3329;\n  --bp-hl-ink: #5E7D2F;\n  \/* the brand highlight ink darkened until it clears WCAG AA at label sizes.\n     Measured 2026-08-21 with Lighthouse on the live page: #7CA74D reads 2.8:1 on\n     white and #5E7D2F reads 4.31:1 on the lime-soft fill, both under 4.5:1 for\n     text below 18.66px. #4F6B28 reads 6.06:1 and 5.53:1. Same hue, same family,\n     one derived value rather than a new brand colour. *\/\n  --bp-green-aa: #4F6B28;\n  --bp-beige: #EDEAE5;\n  --bp-sand: #DBD4CB;\n  --bp-pale-teal: #D9E6E6;\n  --bp-white: #FFFFFF;\n  --bp-foot: #6b6b6b;\n  --bp-grad-dark: linear-gradient(237deg, rgba(0,88,89,0.00) 62.94%, #005859 100%), linear-gradient(90deg, rgba(34,138,98,0.00) 40%, #228A62 100%), #006B62;\n  --bp-font: 'Poppins','Segoe UI',Arial,sans-serif;\n  --bp-fs-h1: 44px; --bp-fs-h2: 31px; --bp-fs-h3: 21px; --bp-fs-eyebrow: 15px;\n  --bp-fs-body: 17px; --bp-fs-small: 14px; --bp-fs-foot: 13px; --bp-fs-btn: 17px;\n  --bp-lh-body: 1.75;\n  --bp-s-1: 4px; --bp-s-2: 8px; --bp-s-3: 12px; --bp-s-4: 16px;\n  --bp-s-5: 24px; --bp-s-6: 32px; --bp-s-7: 44px; --bp-s-8: 72px;\n  --bp-measure: 680px; --bp-prose: 620px; --bp-foot-measure: 560px;\n  --bp-side: 40px;\n  --bp-radius-card: 20px; --bp-radius-btn: 10px; --bp-radius-chip: 999px;\n  --bp-shadow: 0 10px 30px rgba(0,88,89,0.10);\n  --bp-shadow-soft: 0 2px 10px rgba(0,88,89,0.06);\n  font-family: var(--bp-font);\n  font-size: var(--bp-fs-body);\n  line-height: var(--bp-lh-body);\n  color: var(--bp-ink);\n  background: var(--bp-white);\n  -webkit-font-smoothing: antialiased;\n}\n.bp-scan, .bp-scan * { box-sizing: border-box; }\n.bp-scan p, .bp-scan li, .bp-scan h1, .bp-scan h2, .bp-scan h3, .bp-scan a,\n.bp-scan cite, .bp-scan span { overflow-wrap: break-word; min-width: 0; }\n.bp-scan .bp-off { display: none !important; }\n\n\/* THE RIGHT EDGE. T188, 2026-08-31, from Jesse's own screenshot of\n   \/scan-hersteltest\/ on a 375px iPhone: the H1 compound \"ontstekingswaarden\"\n   ran off the screen and was cut mid-word.\n\n   The cause, measured rather than guessed, and it is NOT the rule above. The\n   GRID TRACK was the right size all along: at 375 the hero grid measured 335,\n   exactly the section's content box. What overflowed was the grid ITEM. A grid\n   item's default `min-width: auto` gives it an automatic minimum size equal to\n   its min-content width, and the min-content of the hero's head column is the\n   widest unbreakable word in the H1: `ontstekingswaarden` needs 365px at 34px\n   Poppins Bold. So the item laid out 359 wide inside a 335 track and hung 24px\n   out of it, and by 375 the last of that had crossed the screen, where the body\n   clipped it.\n\n   `overflow-wrap: break-word`, declared on that H1 one line above, cannot help\n   and this is the whole trap: by spec it introduces a soft-wrap opportunity for\n   LINE LAYOUT only, never for INTRINSIC sizing. So it never reduced the item's\n   automatic minimum, and inside the oversized item the word then fitted on a\n   line and had no reason to break.\n\n   Measured on the unfixed build at 320 and 375, one rule injected at a time:\n   `min-width: 0`, `hyphens: auto` and `minmax(0, 1fr)` each take the head column\n   back to the track width on their own. Every DESKTOP grid in this sheet already\n   carries `minmax(0, ...)`; the mobile collapse rules had dropped it, which is\n   the reason the fault only ever showed on a phone.\n\n   Two rules therefore, and they do different jobs:\n\n   1. `min-width: 0` on the block containers that are grid or flex items, so an\n      item can never hand a track a minimum bigger than the space there is. This\n      is the guard that makes the class of fault impossible rather than fixing\n      one instance of it. Named containers only, never every div: `min-width: 0`\n      on a flex chip would let it collapse.\n   2. `hyphens: auto` on headings, so that when a Dutch compound still has to\n      break it breaks at a legal syllable with a hyphen instead of snapping\n      mid-morpheme. The article is inside `<html lang=\"nl-NL\">`, which is what\n      the hyphenation dictionary keys off; this is the same remedy the four\n      column band label already uses further down. *\/\n.bp-scan .bp-scan-hero2 > *, .bp-scan .bp-scan-hero-head,\n.bp-scan .bp-scan-split > *, .bp-scan .bp-scan-cols > *,\n.bp-scan .bp-scan-instgrid > *, .bp-scan .bp-scan-scale > *,\n.bp-scan .bp-scan-verify > *, .bp-scan .bp-scan-author > *,\n.bp-scan .bp-scan-links > * { min-width: 0; }\n.bp-scan h1, .bp-scan h2, .bp-scan h3 { -webkit-hyphens: auto; hyphens: auto; }\n\n\/* WordPress core's flow-layout stylesheet gives every child after the first a\n   24px block-start margin. Inside a normal column that is spacing; inside a grid\n   or a flex row it is a misalignment. Measured on the live page 2026-08-21:\n   band cards two and three sat 24px lower than card one AND lost 24px of their\n   stretched height, so the row read as broken. Zeroing it on the row containers\n   is the fix; core's rule is written with :where() so it carries no specificity\n   and a plain class selector wins. *\/\n.bp-scan .bp-scan-scale > *, .bp-scan .bp-scan-links > *,\n.bp-scan .bp-scan-facts > *, .bp-scan .bp-scan-verify > *,\n.bp-scan .bp-scan-instgrid > * { margin-block: 0; }\n\n\/* the page opens on brand colour, never on grey *\/\n.bp-scan .bp-scan-rule {\n  height: 6px; border: 0; margin-block: 0; max-width: none;\n  background: linear-gradient(90deg, #005859 0%, #006B62 38%, #228A62 66%, #B7CB33 100%);\n}\n\n\/* --- section surfaces. The colour work happens here, so the headings can stay\n       calm and the page still reads section by section. --------------------- *\/\n.bp-scan-sec { position: relative; background: var(--bp-white); margin-block: 0;\n  padding-block: var(--bp-s-8);\n  padding-inline: max(var(--bp-side), calc((100% - var(--bp-measure)) \/ 2)); }\n.bp-scan-sec > *:last-child { margin-block-end: 0; }\n\/* prose is set narrower than the column so a line stays inside a comfortable\n   measure, while cards, scales and buttons keep the full column *\/\n.bp-scan-sec > p, .bp-scan-sec > ul, .bp-scan-sec > ol { max-width: var(--bp-prose); }\n.bp-scan-sec > .bp-scan-legal, .bp-scan-sec > .bp-scan-disclosure,\n.bp-scan .bp-scan-refs { max-width: var(--bp-foot-measure); }\n.bp-scan-sec--wash { background: linear-gradient(180deg, #B7CB331A 0%, #B7CB330D 100%), #FFFFFF; }\n.bp-scan-sec--beige { background: var(--bp-beige); }\n.bp-scan-sec--dark { background: var(--bp-grad-dark); color: var(--bp-white); }\n.bp-scan-sec--dark p, .bp-scan-sec--dark li, .bp-scan-sec--dark cite { color: var(--bp-white); }\n.bp-scan-sec--hero { padding-block: var(--bp-s-7) var(--bp-s-8); }\n.bp-scan--v2 .bp-scan-sec--hero { padding-block: var(--bp-s-7); }\n.bp-scan-sec--tight { padding-block: var(--bp-s-7); }\n.bp-scan-sec--foot { padding-block: var(--bp-s-6);\n  border-top: 1px solid var(--bp-sand); background: var(--bp-white); }\n\n\/* --- CORE BLOCKS BY ELEMENT ------------------------------------------------ *\/\n.bp-scan p { font-size: var(--bp-fs-body); line-height: var(--bp-lh-body);\n  margin-block: 0 var(--bp-s-5); }\n.bp-scan h1 { font-size: var(--bp-fs-h1); font-weight: 700; line-height: 1.25;\n  letter-spacing: -0.01em; margin-block: 0 var(--bp-s-4); color: var(--bp-ink); }\n\/* no orphan words on a heading and no single-word last line in a paragraph.\n   Both degrade to normal wrapping where the browser does not support them. *\/\n.bp-scan h1, .bp-scan h2, .bp-scan h3 { text-wrap: balance; }\n.bp-scan p, .bp-scan li { text-wrap: pretty; }\n\/* an H2 is ink with a lime accent rule above it. Nine of these read as a\n   contents list down the page; nine dark bands would read as a fence. *\/\n.bp-scan h2 { font-size: var(--bp-fs-h2); font-weight: 700; line-height: 1.3;\n  letter-spacing: -0.01em; color: var(--bp-ink);\n  margin-block: 0 var(--bp-s-5); padding-block-start: var(--bp-s-4); position: relative; }\n.bp-scan h2::before { content: \"\"; position: absolute; top: 0; left: 0;\n  width: 56px; height: 4px; border-radius: 2px; background: var(--bp-lime); }\n.bp-scan-sec--dark h2 { color: var(--bp-white); }\n.bp-scan-sec--dark h2::before { background: var(--bp-lime); }\n.bp-scan h3 { font-size: var(--bp-fs-h3); font-weight: 700; line-height: 1.35;\n  color: var(--bp-teal); margin-block: 0 var(--bp-s-3); }\n.bp-scan-sec--dark h3 { color: var(--bp-lime); }\n.bp-scan ul, .bp-scan ol { font-size: var(--bp-fs-body); line-height: var(--bp-lh-body);\n  margin-block: 0 var(--bp-s-5); padding-left: var(--bp-s-5); }\n.bp-scan li { margin-block-end: var(--bp-s-2); }\n.bp-scan a { color: var(--bp-teal); text-decoration: underline;\n  text-underline-offset: 2px; }\n.bp-scan a:hover { color: var(--bp-green); }\n.bp-scan-sec--dark a { color: var(--bp-lime); }\n.bp-scan-sec--dark strong { color: var(--bp-lime); }\n.bp-scan strong { font-weight: 600; }\n.bp-scan .wp-block-separator:not(.bp-scan-rule) { border: 0;\n  border-top: 1px solid var(--bp-sand); margin-block: var(--bp-s-6); }\n\n\/* --- buttons: two classes so core's own rule cannot win -------------------- *\/\n.bp-scan .wp-block-buttons { display: flex; justify-content: flex-start;\n  margin-block: 0 var(--bp-s-3); }\n.bp-scan .wp-block-button__link {\n  display: inline-flex; align-items: center; justify-content: center; min-height: 52px;\n  background: var(--bp-teal); color: var(--bp-white); font-size: var(--bp-fs-btn);\n  font-weight: 700; line-height: 1.2; border-radius: var(--bp-radius-btn);\n  padding: 15px 40px; text-decoration: none; transition: background 250ms ease;\n  box-shadow: var(--bp-shadow);\n}\n.bp-scan .wp-block-button__link:hover { background: var(--bp-green); color: var(--bp-white); }\n.bp-scan-sec--dark .wp-block-button__link { background: var(--bp-lime); color: var(--bp-ink); }\n.bp-scan-sec--dark .wp-block-button__link:hover { background: var(--bp-white); color: var(--bp-teal); }\n\n\/* --- hero ------------------------------------------------------------------ *\/\n.bp-scan .bp-scan-eyebrow {\n  font-size: var(--bp-fs-eyebrow); font-weight: 600; letter-spacing: 0.08em;\n  text-transform: uppercase; color: var(--bp-green-aa); margin-block: 0 var(--bp-s-3);\n}\n.bp-scan .bp-scan-lead { font-size: 19px; line-height: 1.65; color: var(--bp-ink);\n  margin-block: 0 var(--bp-s-5); }\n.bp-scan .bp-scan-facts { display: flex; flex-wrap: wrap; gap: var(--bp-s-2);\n  margin-block: 0 var(--bp-s-6); }\n.bp-scan .bp-scan-fact {\n  font-size: var(--bp-fs-small); font-weight: 500; line-height: 1.4;\n  color: var(--bp-teal); background: var(--bp-pale-teal);\n  border-radius: var(--bp-radius-chip); padding: 7px 16px; margin-block: 0;\n}\n.bp-scan .bp-scan-ctamicro { font-size: var(--bp-fs-small); color: var(--bp-foot);\n  margin-block: 0; }\n.bp-scan-sec--dark .bp-scan-ctamicro { color: rgba(255,255,255,0.82); }\n\n\/* --- what we ask: the items as a counted card list ------------------------- *\/\n.bp-scan .bp-scan-items { list-style: none; padding-left: 0; counter-reset: bpitem;\n  margin-block: 0 var(--bp-s-5); }\n.bp-scan .bp-scan-items li {\n  position: relative; counter-increment: bpitem;\n  padding: var(--bp-s-3) var(--bp-s-4) var(--bp-s-3) 58px;\n  margin-block-end: var(--bp-s-2); border-radius: var(--bp-radius-btn);\n  background: var(--bp-white); border: 1px solid var(--bp-sand);\n  box-shadow: var(--bp-shadow-soft); font-weight: 500;\n}\n.bp-scan .bp-scan-items li::before {\n  content: counter(bpitem); position: absolute; left: var(--bp-s-4); top: 50%;\n  transform: translateY(-50%);\n  width: 28px; height: 28px; border-radius: 50%;\n  background: var(--bp-teal); color: var(--bp-white);\n  font-size: var(--bp-fs-small); font-weight: 700; line-height: 28px; text-align: center;\n}\n.bp-scan .bp-scan-gated { list-style: none; padding-left: 0;\n  margin-block: 0 var(--bp-s-4); }\n.bp-scan .bp-scan-gated li {\n  position: relative; padding-left: 24px; margin-block-end: var(--bp-s-1);\n  font-size: var(--bp-fs-small); color: var(--bp-foot);\n}\n.bp-scan .bp-scan-gated li::before {\n  content: \"\"; position: absolute; left: 4px; top: 10px;\n  width: 8px; height: 2px; border-radius: 1px; background: var(--bp-green);\n}\n\n\/* --- the instrument card: Layer A, one per source -------------------------- *\/\n.bp-scan .bp-scan-inst {\n  background: var(--bp-white); border: 1px solid var(--bp-sand); border-radius: 12px;\n  box-shadow: inset 5px 0 0 var(--bp-lime), var(--bp-shadow-soft);\n  padding: var(--bp-s-5) var(--bp-s-5) var(--bp-s-4) var(--bp-s-6);\n  margin-block: 0 var(--bp-s-4);\n}\n.bp-scan .bp-scan-inst h3 { margin-block: 0 var(--bp-s-2); }\n.bp-scan .bp-scan-inst p { margin-block: 0 var(--bp-s-3); }\n.bp-scan .bp-scan-inst p:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-badge {\n  display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 0.07em;\n  text-transform: uppercase; line-height: 1.6; padding: 3px 12px;\n  border-radius: var(--bp-radius-chip); margin-block: 0 var(--bp-s-3);\n}\n.bp-scan .bp-scan-badge--adopt { background: var(--bp-lime-soft); color: var(--bp-green-aa); }\n.bp-scan .bp-scan-badge--derive { background: var(--bp-pale-teal); color: var(--bp-teal); }\n.bp-scan .bp-scan-badge--reference { background: var(--bp-beige); color: var(--bp-ink); }\n\/* the mandatory sentence. On ten of eleven pages this is the derive caveat and\n   it is the most important line on the page, so it is given weight rather than\n   tucked into a footnote. *\/\n.bp-scan .bp-scan-use {\n  font-size: var(--bp-fs-small); font-weight: 600; line-height: 1.55;\n  color: var(--bp-teal); background: var(--bp-pale-teal);\n  border-radius: var(--bp-radius-btn); padding: var(--bp-s-3) var(--bp-s-4);\n  margin-block: 0 var(--bp-s-3);\n}\n.bp-scan .bp-scan-validfor { font-size: var(--bp-fs-small); color: var(--bp-foot);\n  line-height: 1.6; margin-block: 0 var(--bp-s-2); }\n.bp-scan .bp-scan-cite { font-size: var(--bp-fs-foot); color: var(--bp-foot);\n  line-height: 1.6; margin-block: 0; }\n.bp-scan .bp-scan-cite a { color: var(--bp-foot); }\n\n\/* --- the honest limit: the block that earns the page its right to rank ----- *\/\n.bp-scan .bp-scan-limitcite {\n  font-size: var(--bp-fs-small); line-height: 1.6; max-width: var(--bp-foot-measure);\n  color: rgba(255,255,255,0.85); border-left: 3px solid var(--bp-lime);\n  padding-left: var(--bp-s-4); margin-block: var(--bp-s-5) 0;\n}\n\/* beside the statement rather than under it, and given a surface so a two-line\n   citation reads as the source panel it is instead of as leftover text *\/\n.bp-scan--v2 .bp-scan-sec--dark .bp-scan-cols { align-items: center; }\n.bp-scan--v2 .bp-scan-col > .bp-scan-limitcite {\n  background: rgba(255,255,255,0.08); border-radius: var(--bp-radius-card);\n  padding: var(--bp-s-5) var(--bp-s-5) var(--bp-s-5) var(--bp-s-6);\n  margin-block: 0;\n}\n\n\/* --- the score scale ------------------------------------------------------- *\/\n.bp-scan .bp-scan-scale { display: grid; gap: var(--bp-s-3);\n  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n  margin-block: 0 var(--bp-s-5); }\n.bp-scan .bp-scan-scale .wp-block-group {\n  border-radius: var(--bp-radius-btn); padding: var(--bp-s-4);\n  background: var(--bp-white); border: 1px solid var(--bp-sand);\n  border-top: 5px solid var(--bp-sand);\n}\n.bp-scan .bp-scan-scale .bp-scan-band--ok { border-top-color: var(--bp-green); }\n.bp-scan .bp-scan-scale .bp-scan-band--warn { border-top-color: #C08A1E; }\n.bp-scan .bp-scan-scale .bp-scan-band--alert { border-top-color: #B04A24; }\n.bp-scan .bp-scan-band-range { font-size: 22px; font-weight: 700; line-height: 1.2;\n  color: var(--bp-ink); margin-block: 0 var(--bp-s-1); }\n.bp-scan .bp-scan-band-label { font-size: var(--bp-fs-small); line-height: 1.5;\n  color: var(--bp-foot); margin-block: 0; }\n.bp-scan .bp-scan-bandnote {\n  font-size: var(--bp-fs-small); line-height: 1.65; color: var(--bp-ink);\n  background: var(--bp-lime-soft); border-radius: var(--bp-radius-btn);\n  padding: var(--bp-s-4); margin-block: 0 var(--bp-s-4);\n}\n\n\/* --- verified by. A designed card, never a badge. -------------------------- *\/\n.bp-scan .bp-scan-verify {\n  display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: var(--bp-s-5);\n  align-items: start;\n  background: var(--bp-white); border: 1px solid var(--bp-sand);\n  border-top: 4px solid var(--bp-lime); border-radius: var(--bp-radius-card);\n  box-shadow: var(--bp-shadow); padding: var(--bp-s-5); margin-block: 0 var(--bp-s-4);\n}\n.bp-scan .bp-scan-verify-photo {\n  width: 88px; height: 88px; border-radius: 50%; margin-block: 0;\n  background: var(--bp-pale-teal); border: 2px solid var(--bp-lime);\n  display: flex; align-items: center; justify-content: center; overflow: hidden;\n  font-size: 10px; font-weight: 700; letter-spacing: 0.06em; color: var(--bp-teal);\n  text-align: center;\n}\n.bp-scan .bp-scan-verify-photo img { width: 100%; height: 100%; object-fit: cover;\n  object-position: center; display: block; border-radius: 50%; }\n.bp-scan .bp-scan-verify-body > * { margin-block: 0 var(--bp-s-2); }\n.bp-scan .bp-scan-verify-body > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-verify-role {\n  font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;\n  color: var(--bp-green-aa);\n}\n.bp-scan .bp-scan-verify-name { font-size: 20px; font-weight: 700; line-height: 1.3;\n  color: var(--bp-ink); }\n.bp-scan .bp-scan-verify-cred { font-size: var(--bp-fs-small); color: var(--bp-foot);\n  line-height: 1.6; }\n.bp-scan .bp-scan-verify-stmt { font-size: var(--bp-fs-small); line-height: 1.7;\n  color: var(--bp-ink); }\n.bp-scan .bp-scan-verify-date { font-size: var(--bp-fs-foot); color: var(--bp-foot); }\n\n\/* the internal preview skin. Hazard stripes, a warning strap and bracketed\n   field names: it can read as a form, and it can never read as an endorsement.\n   This skin never reaches a page; push_guard refuses the marker it carries. *\/\n.bp-scan .bp-scan-verify--demo {\n  border: 2px dashed #C0562B; border-top: 4px dashed #C0562B;\n  background: repeating-linear-gradient(135deg, #FFF7F2 0 14px, #FDEDE3 14px 28px);\n  box-shadow: none;\n}\n.bp-scan .bp-scan-verify--demo .bp-scan-verify-photo {\n  background: #FDEDE3; border: 2px dashed #C0562B; color: #C0562B; }\n.bp-scan .bp-scan-verify--demo .bp-scan-verify-role,\n.bp-scan .bp-scan-verify--demo .bp-scan-verify-name { color: #C0562B; }\n.bp-scan .bp-scan-demostrap {\n  font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;\n  line-height: 1.5; color: #FFFFFF; background: #C0562B;\n  border-radius: var(--bp-radius-btn); padding: var(--bp-s-3) var(--bp-s-4);\n  margin-block: 0 var(--bp-s-3);\n}\n\n\/* --- references, disclosure, safety ---------------------------------------- *\/\n.bp-scan .bp-scan-refs { font-size: var(--bp-fs-small); line-height: 1.7;\n  color: var(--bp-ink); padding-left: 22px; margin-block: 0; }\n.bp-scan .bp-scan-refs li { margin-block-end: var(--bp-s-3); }\n.bp-scan .bp-scan-refs a { font-size: var(--bp-fs-foot); overflow-wrap: anywhere;\n  padding-block: 5px; }\n.bp-scan .bp-scan-cite a { padding-block: 5px; }\n.bp-scan .bp-scan-disclosure { font-size: var(--bp-fs-small); line-height: 1.7;\n  color: var(--bp-ink); }\n.bp-scan .bp-scan-safety {\n  background: var(--bp-beige); border-radius: 12px;\n  box-shadow: inset 5px 0 0 var(--bp-teal);\n  padding: var(--bp-s-5) var(--bp-s-5) var(--bp-s-5) var(--bp-s-6);\n  font-size: var(--bp-fs-small); line-height: 1.7; margin-block: 0 var(--bp-s-4);\n}\n.bp-scan .bp-scan-legal { font-size: var(--bp-fs-foot); line-height: 1.7;\n  color: var(--bp-foot); margin-block: 0; }\n\n\/* --- internal link strip: renders only when it has somewhere to point ------ *\/\n.bp-scan .bp-scan-links { display: grid; gap: var(--bp-s-3);\n  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-block: 0; }\n.bp-scan .bp-scan-links .wp-block-group {\n  border: 1px solid var(--bp-sand); border-radius: var(--bp-radius-btn);\n  padding: var(--bp-s-4); background: var(--bp-white); }\n.bp-scan .bp-scan-links p { margin-block: 0; font-size: var(--bp-fs-small); font-weight: 600; }\n\/* T188: on v2 the strip is a row of pills, not a card grid. Seen on the sleep\n   preview 2026-08-27: with ONE live sibling the grid put one 220px card at the\n   left of an empty 1120 row, which is the round-4 strip defect in a new place.\n   Pills sit in a wrapping row; one reads as one link, ten read as ten. *\/\n.bp-scan--v2 .bp-scan-links { display: flex; flex-wrap: wrap; gap: var(--bp-s-3); }\n.bp-scan--v2 .bp-scan-links .wp-block-group { flex: 0 1 auto; padding: 0; }\n\/* the anchor IS the pill, so the tap target is the whole pill (45px) and not a\n   21px line of text inside it: measured 2026-08-27, the one target under 24px\n   on the sleep page *\/\n.bp-scan--v2 .bp-scan-links a { display: block; padding: var(--bp-s-3) var(--bp-s-5); }\n\n\/* T188: the ten derive scans carry FOUR reading bands and page 1 carries three.\n   Four tiles on the base auto-fit grid wrapped three plus one inside the 620\n   column, so \"80 tot 100\" sat alone on a second row (seen on the sleep preview\n   2026-08-27). A scale reads left to right, low to high, so four sit on one\n   row at 1440 and two by two on a phone. The class is only emitted when the\n   count is not three, so page 1's scale is untouched. *\/\n.bp-scan--v2 .bp-scan-scale--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }\n.bp-scan--v2 .bp-scan-scale--n4 .wp-block-group { padding: var(--bp-s-3); }\n\/* T188 batch A: a pack band label can be one word longer than a four-column tile\n   (\"hoge vermoeidheidslast\" on energy broke as \"vermoeidheidsla\" + \"st\" at 1440).\n   Hyphenate instead of breaking anywhere; the tile is inside the nl-NL article. *\/\n.bp-scan--v2 .bp-scan-scale--n4 .bp-scan-band-label { -webkit-hyphens: auto; hyphens: auto; overflow-wrap: normal; }\n@media (max-width: 767px) {\n  .bp-scan--v2 .bp-scan-scale--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n}\n\n\/* --- image slot: holds its aspect ratio empty, and gets out of the way full - *\/\n.bp-scan .bp-scan-slot {\n  display: flex; align-items: center; justify-content: center; text-align: center;\n  aspect-ratio: 16 \/ 9; padding: var(--bp-s-4); margin-block: 0 var(--bp-s-5);\n  border: 2px dashed var(--bp-green); border-radius: var(--bp-radius-card);\n  background: var(--bp-lime-soft); color: var(--bp-teal);\n}\n.bp-scan .bp-scan-slot p { font-size: var(--bp-fs-small); font-weight: 700; margin-block: 0; }\n.bp-scan .wp-block-image { margin-block: 0 var(--bp-s-5); }\n.bp-scan .wp-block-image img { display: block; width: 100%; height: auto;\n  aspect-ratio: 16 \/ 9; object-fit: cover;\n  border-radius: var(--bp-radius-card); box-shadow: var(--bp-shadow); }\n.bp-scan .wp-block-image figcaption { font-size: var(--bp-fs-foot); line-height: 1.6;\n  color: var(--bp-foot); text-align: left; margin-block: var(--bp-s-2) 0; }\n\n\/* --- 767 and below. Not a shrink of desktop: the type scale, the side padding\n       and the button all change, and the verifier card goes to one column. --- *\/\n@media (max-width: 767px) {\n  .bp-scan {\n    --bp-fs-h1: 30px; --bp-fs-h2: 26px; --bp-fs-h3: 19px; --bp-fs-body: 16px;\n    --bp-fs-btn: 16px; --bp-fs-eyebrow: 14px; --bp-side: 20px;\n    --bp-s-8: 48px; --bp-s-7: 36px;\n  }\n  .bp-scan .bp-scan-lead { font-size: 17px; }\n  .bp-scan .bp-scan-band-range { font-size: 20px; }\n  .bp-scan .wp-block-button { width: 100%; }\n  .bp-scan .wp-block-button__link { width: 100%; padding: 15px 20px; }\n  .bp-scan .bp-scan-verify { grid-template-columns: minmax(0, 1fr); gap: var(--bp-s-4); }\n  .bp-scan .bp-scan-items li { padding: var(--bp-s-3) var(--bp-s-3) var(--bp-s-3) 50px; }\n  .bp-scan .bp-scan-items li::before { left: var(--bp-s-3); }\n  .bp-scan .bp-scan-inst { padding: var(--bp-s-4) var(--bp-s-4) var(--bp-s-4) var(--bp-s-5); }\n  .bp-scan .bp-scan-slot { aspect-ratio: 4 \/ 3; }\n}\n@media (prefers-reduced-motion: reduce) { .bp-scan * { transition-duration: 0ms; } }\n\n\n\/* ===========================================================================\n   V2 (T185). The direct-marketing layer, on the same frame.\n\n   Jesse, 2026-08-22: the page has to be a direct-response page as well as an\n   SEO page. A headline on the problem, a hero box that sells the scan with a\n   picture of the RESULT, a problem section, the false solution and the bridge,\n   the solution, and only then the validated half. Every section carries a\n   visual, and the visuals are screenshots of the real software.\n\n   Nothing below replaces a v1 rule: v1 renders unchanged from the same sheet.\n   These are additional components plus two overrides, both marked.\n   =========================================================================== *\/\n\n.bp-scan { --bp-hero-gap: 56px; --bp-screen-w: 380px; --bp-portrait: 132px; }\n\n\/* A <figure> carries a 40px inline margin from the browser's own default sheet,\n   and core\/image is a <figure>. Measured on the v2 preview 2026-08-26: every\n   screenshot rendered 600px wide inside a 680px column, and in the author card\n   the 108px figure resolved to 28px while the portrait inside it stayed 108 and\n   overlapped the name. v1 never showed it because v1 ships no imagery. *\/\n.bp-scan .wp-block-image { margin-inline: 0; }\n\n\/* ONE CONTAINER, TOP TO BOTTOM (T185 round 4).\n   ---------------------------------------------------------------------------\n   Rounds 1 to 3 ran two widths down the same page: 1120 for the hero and the\n   paired sections, 880 for everything else, and inside the 880 sections the\n   620 reading measure was applied as the FOOTPRINT of the whole block rather\n   than as a cap on line length. Measured at 1440 on 2026-08-26, that put seven\n   sections on a left-aligned strip with 260 to 480 pixels of empty page beside\n   them, and the operator's read was the honest one: the page falls apart below\n   the fold.\n\n   The rule now, and `design_selfcheck.py` asserts it: every section's content\n   spans ONE container. A line of prose still never exceeds the measure, but the\n   BLOCK it sits in is laid out across the container (two columns, a grid, a\n   card, a band), never left as a strip with a hole beside it. *\/\n.bp-scan--v2 {\n  \/* 1120 was already the hero's width and the paired sections'. It is now every\n     section's width, so the page has one edge on the left and one on the right\n     from the first pixel to the last. The reading column did NOT move: measured\n     on the live page, 17px body in a 720 column runs 89 characters to the line\n     and in 660 it runs 86, against a 60 to 80 target; 620 measures 74. *\/\n  --bp-measure: 1120px; --bp-prose: 620px;\n  \/* two type steps moved into the house design-pass ranges\n     (agency\/skills\/funnel-page-design-pass, rule 2). v1 keeps its own values, so\n     the page the hub accepted on 2026-08-21 still renders byte for byte. *\/\n  --bp-fs-eyebrow: 13px;\n}\n@media (max-width: 767px) {\n  \/* 34 rather than 32, and the reason is arithmetic rather than taste: with\n     body copy on its 16px readability floor, the offer sentence has to be at\n     least 20px (1.25x body) and at most 62 percent of the H1. Against a 32px H1\n     those two have no overlap at all; against 34 they meet at 21. *\/\n  .bp-scan--v2 { --bp-fs-h1: 34px; --bp-fs-eyebrow: 12px; }\n}\n\/* Sixteen numbered sources. Round 3 gave them a 720 measure in one column, which\n   at 1120 is a strip with 400px of page beside it; they run in two columns now.\n   The number is drawn by a COUNTER rather than by the list marker, because a\n   marker sits in the list's own padding and in a multi-column box that padding\n   belongs to the first column, so every number in the second column would hang\n   outside it. v1 keeps its markers: this is scoped to v2. *\/\n.bp-scan--v2 .bp-scan-refs {\n  max-width: none; columns: 2; column-gap: var(--bp-hero-gap);\n  list-style: none; padding-left: 0; counter-reset: bpref;\n}\n.bp-scan--v2 .bp-scan-refs li {\n  counter-increment: bpref; position: relative; padding-left: 28px;\n  break-inside: avoid; -webkit-column-break-inside: avoid;\n}\n.bp-scan--v2 .bp-scan-refs li::before {\n  content: counter(bpref) \".\"; position: absolute; left: 0; top: 0;\n  font-weight: 600; color: var(--bp-foot);\n}\n\/* A CARD may be as wide as the column; the text inside it may not. At the v2\n   measure the instrument cards ran 101 characters to the line, measured on the\n   live page 2026-08-26, against a 60 to 80 target. The card keeps its width and\n   the reading column inside it is capped. *\/\n.bp-scan--v2 .bp-scan-bridge > p, .bp-scan--v2 .bp-scan-items li,\n.bp-scan--v2 .bp-scan-checks li { max-width: 640px; }\n\/* ONE RADIUS PER ROLE. A card is 20 (`--bp-radius-card`) and a tile or a chip is\n   10 (`--bp-radius-btn`). The instrument and safety cards were on a third value,\n   12, which nothing else on the page used. v1 keeps its own, so the page the hub\n   accepted on 2026-08-21 renders as it did. *\/\n.bp-scan--v2 .bp-scan-inst, .bp-scan--v2 .bp-scan-safety {\n  border-radius: var(--bp-radius-card);\n}\n.bp-scan--v2 .bp-scan-safety { box-shadow: inset 5px 0 0 var(--bp-teal), var(--bp-shadow-soft); }\n\/* ONE CARD PADDING, too: 24 all round, and 32 on the left of the cards that carry\n   an inset bar there. Audited on the built page 2026-08-26, the four card types\n   were on three different paddings, one of them asymmetric top to bottom. *\/\n.bp-scan--v2 .bp-scan-inst {\n  padding: var(--bp-s-5) var(--bp-s-5) var(--bp-s-5) var(--bp-s-6);\n}\n\/* small text fits more characters per pixel, so it needs a narrower column, not\n   the same one: 14px in a 640 column is 93 characters *\/\n.bp-scan--v2 .bp-scan-bandnote,\n\/* named through its parent, because `.bp-scan-authorbody > *` sets max-width to\n   none at the same specificity and later in the sheet *\/\n.bp-scan--v2 .bp-scan-authorbody > .bp-scan-authorbio { max-width: 480px; }\n\n\n\/* --- hero, two columns ----------------------------------------------------- *\/\n.bp-scan .bp-scan-hero2 {\n  display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);\n  grid-template-areas: \"head box\" \"tail box\";\n  grid-template-rows: auto 1fr;\n  column-gap: var(--bp-hero-gap); row-gap: var(--bp-s-5);\n  align-items: start; margin-block: 0;\n}\n.bp-scan .bp-scan-hero2 > * { margin-block: 0; }\n.bp-scan .bp-scan-hero-head { grid-area: head; }\n.bp-scan .bp-scan-herobox { grid-area: box; }\n.bp-scan .bp-scan-hero-tail { grid-area: tail; }\n.bp-scan .bp-scan-hero2 > .wp-block-group > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-hero2 h1 { margin-block: 0; }\n.bp-scan .bp-scan-hero-tail > *:last-child { margin-block-end: 0; }\n\n\/* the box that sells the scan. A card, on the page's own colour, so it reads as\n   the product and not as another paragraph. *\/\n.bp-scan .bp-scan-herobox {\n  display: flex; flex-direction: column;\n  background: linear-gradient(180deg, #FFFFFF 0%, #F7F9F1 100%);\n  border: 1px solid var(--bp-sand); border-radius: var(--bp-radius-card);\n  box-shadow: var(--bp-shadow); padding: var(--bp-s-5); margin-block: 0;\n}\n.bp-scan .bp-scan-herobox > * { margin-block: 0 var(--bp-s-4); }\n.bp-scan .bp-scan-herobox > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-herobox .wp-block-buttons { margin-block: 0; }\n.bp-scan .bp-scan-herobox .wp-block-button { width: 100%; }\n.bp-scan .bp-scan-herobox .wp-block-button__link { width: 100%; }\n.bp-scan .bp-scan-boxeyebrow {\n  font-size: var(--bp-fs-eyebrow); font-weight: 600; letter-spacing: 0.08em;\n  text-transform: uppercase; color: var(--bp-green-aa);\n}\n.bp-scan .bp-scan-boxpitch {\n  font-size: 26px; font-weight: 700; line-height: 1.25; color: var(--bp-ink);\n  letter-spacing: -0.01em;\n}\n.bp-scan .bp-scan-boxlead { font-size: var(--bp-fs-small); line-height: 1.65;\n  color: var(--bp-foot); }\n.bp-scan .bp-scan-boxafter { font-size: var(--bp-fs-foot); line-height: 1.6;\n  color: var(--bp-foot); margin-block: var(--bp-s-4) var(--bp-s-2); }\n\n\/* --- screenshots ----------------------------------------------------------- *\/\n\/* OVERRIDE 1 of 2. v1 crops every image to 16:9 and covers, which is right for\n   photography and destroys a screenshot: it would cut the top off the result\n   card. Inside a shot figure the image keeps its own ratio. *\/\n.bp-scan .bp-scan-shot { margin-block: 0 var(--bp-s-5); }\n.bp-scan .bp-scan-shot img {\n  aspect-ratio: auto; object-fit: contain; width: 100%; height: auto;\n  display: block; border-radius: 14px; border: 1px solid var(--bp-sand);\n  box-shadow: var(--bp-shadow); background: var(--bp-white);\n}\n.bp-scan .bp-scan-shot figcaption {\n  font-size: var(--bp-fs-foot); line-height: 1.6; color: var(--bp-foot);\n  text-align: left; margin-block: var(--bp-s-3) 0; max-width: var(--bp-prose);\n}\n\/* the hero's result crop sits INSIDE the box, so it carries the box's own\n   surface rather than a second card border *\/\n.bp-scan .bp-scan-herobox .bp-scan-shot img { box-shadow: var(--bp-shadow-soft); }\n\/* the hero's screenshot is introduced by the line above it, so its own caption\n   would be the same sentence twice on one picture *\/\n.bp-scan .bp-scan-shot--nocap figcaption { display: none; }\n\n\/* --- FIGURE RHYTHM (T185 round 3) ------------------------------------------\n   The operator's read, 2026-08-26: the caption under the hero picture is stuck\n   to it, and on a phone the start button is stuck to it too. Neither is a spot\n   fix, so this is the rule the whole page obeys and `design_selfcheck.py`\n   asserts at both viewports:\n\n     an image to the line that DESCRIBES it     at least 8px   (--bp-s-2)\n     a figure to the NEXT BLOCK                 at least 24px  (--bp-s-5)\n\n   Two minimums rather than one, because a caption belongs to its picture and a\n   button does not: the caption sits close enough to read as one unit with the\n   image, and the next block sits far enough to read as the next thing. Both\n   numbers are steps on the token scale; his ask was six to eight. A figure's own\n   caption already sits on 12px (the `.bp-scan-shot figcaption` rule above). *\/\n\/* the hero box's lead IS the hero picture's caption. It is simply not inside the\n   <figure>, so it is spaced by hand at the caption minimum. *\/\n.bp-scan .bp-scan-herobox > .bp-scan-screen { margin-block: 0 var(--bp-s-2); }\n.bp-scan .bp-scan-herobox > .bp-scan-boxlead { margin-block: 0 var(--bp-s-5); }\n\n\/* --- the screen frame: a screen, not a floating rectangle ------------------ *\/\n\/* A hairline and a shadow, NOT a bezel. The screenshot already carries the\n   app's own page background and the app's own card inside it, so a padded frame\n   put a third rounded rectangle around two and the hero read as boxes in boxes. *\/\n\/* margin-INLINE only. `margin: 0 auto` here also set margin-bottom to 0, and\n   because this rule sits later in the sheet than the hero box's own child rule\n   it won, so the caption under the hero picture touched it at 1440 and the start\n   button touched it at 390 (measured, both 0px, 2026-08-26). The vertical gap is\n   the figure-rhythm rule's business and is set below. *\/\n.bp-scan .bp-scan-screen {\n  position: relative; max-width: var(--bp-screen-w); margin-inline: auto;\n  border-radius: 16px; border: 1px solid var(--bp-sand);\n  box-shadow: 0 18px 40px rgba(0,88,89,0.14);\n  overflow: hidden;\n}\n\/* the lime rule the app draws across the top of that very screen *\/\n.bp-scan .bp-scan-screen::before {\n  content: \"\"; position: absolute; inset: 0 0 auto 0; height: 4px;\n  background: linear-gradient(90deg, var(--bp-lime) 0%, var(--bp-green) 62%,\n                              rgba(183,203,51,0) 100%);\n}\n.bp-scan .bp-scan-screen .bp-scan-shot { margin-block: 0; }\n.bp-scan .bp-scan-screen .bp-scan-shot img {\n  border-radius: 0; border: 0; box-shadow: none; display: block; }\n\n\/* Display widths. A questionnaire step is a tall screen: printed at the full\n   column it is 1300 pixels of one picture, and nine of those in a row is a\n   scroll rather than a page. The width is per slot, which is also where the\n   variation across the page comes from. *\/\n.bp-scan .bp-scan-shot--wide { max-width: none; }\n.bp-scan .bp-scan-shot--mid { max-width: 700px; }\n.bp-scan .bp-scan-shot--narrow { max-width: 560px; }\n\/* a phone screenshot printed 880 wide stops reading as a phone *\/\n.bp-scan .bp-scan-shot--phone { max-width: 320px; }\n\/* the hero's second screenshot is capped, because the whole first screen has to\n   fit one: the headline, the promise, the button and both pictures of the\n   product. Uncapped it pushed the next section past the fold at 1440x900. *\/\n.bp-scan .bp-scan-hero2 .bp-scan-shot { max-width: 380px; }\n.bp-scan .bp-scan-shots {\n  display: grid; gap: var(--bp-s-4);\n  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));\n  margin-block: 0 var(--bp-s-5);\n}\n.bp-scan .bp-scan-shots > * { margin-block: 0; }\n\n\/* --- TWO COLUMNS WHERE A SECTION CARRIES A SCREENSHOT (T185 round 3) --------\n   Jesse through the operator, 2026-08-26: a section that carries a screenshot\n   is laid out at 1440 as text on one side and the picture on the other.\n\n   THE ARITHMETIC, because it is what decides the ratio. The SECTION widens to\n   the 1120 the hero already uses; the READING COLUMN does not, because a card\n   may be as wide as its column and a line of text may not (the same rule the\n   instrument cards obey). 620 of prose plus the hero's own 56 gap leaves 444\n   for the picture, which is inside 20 percent of the 560 the narrow shots were\n   already printed at, so the pair costs the screenshots almost nothing and\n   takes roughly a third off the section's height.\n\n   Phones stack, text first, and the row gap is the figure minimum. *\/\n.bp-scan .bp-scan-split {\n  display: grid; align-items: center;\n  grid-template-columns: minmax(0, var(--bp-prose)) minmax(0, 1fr);\n  column-gap: var(--bp-hero-gap); row-gap: var(--bp-s-5);\n  margin-block: 0 var(--bp-s-6);\n}\n\/* the two columns sit on their shared middle rather than on their shared top.\n   Round 3 top-aligned them, and where the picture is materially shorter than the\n   text that put the whole difference at the bottom of the picture column as one\n   hole; split in two it reads as a margin. *\/\n\/* an EVEN pair, for a section whose text runs long and whose screen is tall:\n   532 and 532 rather than 620 and 444, so the picture gets 20 percent more\n   height and 20 percent more type size and the two columns end together. *\/\n.bp-scan .bp-scan-split--even { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n.bp-scan .bp-scan-split > * { margin-block: 0; }\n.bp-scan .bp-scan-split > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-split-text > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-sec > .bp-scan-split:last-child { margin-block-end: 0; }\n\/* the picture on the left, the text on the right. Placed rather than reordered,\n   so the markup order stays text-then-picture and a phone gets the right order\n   with no rule of its own. *\/\n.bp-scan .bp-scan-split--flip { grid-template-columns: minmax(0, 1fr) minmax(0, var(--bp-prose)); }\n.bp-scan .bp-scan-split--flip > .bp-scan-split-text { grid-area: 1 \/ 2; }\n.bp-scan .bp-scan-split--flip > .bp-scan-split-media { grid-area: 1 \/ 1; }\n\/* --- two columns of TEXT, for a block that is not a picture ---------------- *\/\n\/* Same container, same gutter as the split, so a section that pairs prose with\n   prose sits on the same edges as one that pairs prose with a screenshot. *\/\n.bp-scan .bp-scan-cols {\n  display: grid; align-items: start;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  column-gap: var(--bp-hero-gap); row-gap: var(--bp-s-5);\n  margin-block: 0 var(--bp-s-5);\n}\n.bp-scan .bp-scan-cols > * { margin-block: 0; }\n.bp-scan .bp-scan-col > * { max-width: none; }\n.bp-scan .bp-scan-col > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-sec > .bp-scan-cols:last-child { margin-block-end: 0; }\n@media (max-width: 900px) {\n  .bp-scan .bp-scan-cols { grid-template-columns: minmax(0, 1fr); }\n}\n\n\/* the figure fills its column: every display width on this page was chosen for\n   the full reading column, and this column is narrower than all of them *\/\n.bp-scan .bp-scan-split-media .bp-scan-shot { max-width: none; margin-block: 0; }\n.bp-scan .bp-scan-split-media > *:last-child { margin-block-end: 0; }\n\/* a heading over a 1120 section would run 120 characters; it keeps a heading\n   measure while the block under it keeps the width *\/\n.bp-scan--v2 .bp-scan-sec > h2 { max-width: 820px; }\n\/* a running note under a block that spans the container: two columns, so it\n   ends where the block above it ends instead of trailing off to the left *\/\n.bp-scan--v2 .bp-scan-sec > .bp-scan-note,\n.bp-scan--v2 .bp-scan-sec > .bp-scan-disclosure {\n  max-width: none; columns: 2; column-gap: var(--bp-hero-gap);\n}\n\n\n\/* --- the three instrument cards, across the container --------------------- *\/\n\/* Stacked, each card ran the full 880 with its text capped at 640 inside it, so\n   the section was a strip with a hole and each card was a card with a hole. Three\n   across the container is one row, equal heights, and the card is now 362 wide so\n   its text fills it. *\/\n.bp-scan .bp-scan-instgrid {\n  display: grid; gap: var(--bp-s-4);\n  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n  align-items: stretch; margin-block: 0 var(--bp-s-5);\n}\n\/* Equal height, and the content is NOT bottom-anchored. Anchoring it was tried\n   on 2026-08-26 and rejected on sight: pushing the mandatory sentence to the\n   bottom of every card lined the three footers up and opened a 200px void in the\n   middle of the short one. Contiguous content inside an equal-height card beats\n   a tidy footer line. *\/\n.bp-scan .bp-scan-instgrid > .bp-scan-inst { margin-block: 0; height: 100%; }\n\n\/* --- the closing CTA as a band ------------------------------------------- *\/\n\/* The page's last beat. A wash section with a left-aligned heading, one line and\n   a button read as another paragraph; a full-bleed teal band with the offer\n   centred in it reads as the end of the page. Teal solid rather than the token\n   gradient, so it does not read as a second copy of the dark honesty section. *\/\n.bp-scan .bp-scan-sec--band {\n  background: var(--bp-teal); color: var(--bp-white);\n  padding-block: var(--bp-s-8); text-align: center;\n}\n.bp-scan .bp-scan-sec--band > * { margin-inline: auto; }\n.bp-scan .bp-scan-sec--band h2 { color: var(--bp-white); }\n.bp-scan .bp-scan-sec--band h2::before { left: 50%; transform: translateX(-50%); }\n.bp-scan .bp-scan-sec--band > p { color: rgba(255,255,255,0.92); max-width: var(--bp-prose); }\n.bp-scan .bp-scan-sec--band .wp-block-buttons { justify-content: center; }\n.bp-scan .bp-scan-sec--band .wp-block-button__link {\n  background: var(--bp-lime); color: var(--bp-ink); box-shadow: 0 10px 30px rgba(0,0,0,0.18);\n}\n.bp-scan .bp-scan-sec--band .wp-block-button__link:hover {\n  background: var(--bp-white); color: var(--bp-teal);\n}\n.bp-scan .bp-scan-sec--band .bp-scan-ctamicro { color: rgba(255,255,255,0.82); }\n@media (max-width: 900px) {\n  .bp-scan .bp-scan-split, .bp-scan .bp-scan-split--flip,\n  .bp-scan .bp-scan-split--even { grid-template-columns: minmax(0, 1fr); }\n  .bp-scan .bp-scan-split--flip > .bp-scan-split-text { grid-area: 1 \/ 1; }\n  .bp-scan .bp-scan-split--flip > .bp-scan-split-media { grid-area: 2 \/ 1; }\n}\n\n\/* --- problem, false solution, bridge --------------------------------------- *\/\n.bp-scan .bp-scan-kicker {\n  font-size: 19px; line-height: 1.55; font-weight: 600; color: var(--bp-green-aa);\n  margin-block: calc(var(--bp-s-5) * -1 + var(--bp-s-2)) var(--bp-s-5);\n}\n.bp-scan .bp-scan-bridge {\n  background: var(--bp-white); border: 1px solid var(--bp-sand);\n  border-radius: var(--bp-radius-card);\n  box-shadow: inset 5px 0 0 var(--bp-teal), var(--bp-shadow-soft);\n  padding: var(--bp-s-5) var(--bp-s-5) var(--bp-s-5) var(--bp-s-6);\n  margin-block: 0 var(--bp-s-5);\n}\n.bp-scan .bp-scan-bridge > * { margin-block: 0 var(--bp-s-3); max-width: none; }\n.bp-scan .bp-scan-bridge > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-bridgelead {\n  font-size: var(--bp-fs-h3); font-weight: 700; line-height: 1.3;\n  color: var(--bp-teal);\n}\n\/* the bridge that CLOSES the evidence runs the whole container, so its button\n   goes on the same line as its sentence rather than under it at the far left *\/\n.bp-scan .bp-scan-bridge--row {\n  display: flex; flex-wrap: wrap; align-items: center;\n  justify-content: space-between; gap: var(--bp-s-4) var(--bp-s-6);\n}\n.bp-scan .bp-scan-bridge--row > * { margin-block: 0; }\n.bp-scan .bp-scan-bridge-text > * { margin-block: 0 var(--bp-s-2); max-width: none; }\n.bp-scan .bp-scan-bridge-text > *:last-child { margin-block-end: 0; }\n@media (max-width: 767px) {\n  .bp-scan .bp-scan-bridge--row .wp-block-buttons { width: 100%; }\n}\n\n\/* --- what you get, as a checked list --------------------------------------- *\/\n.bp-scan .bp-scan-checks { list-style: none; padding-left: 0; margin-block: 0 var(--bp-s-5); }\n.bp-scan .bp-scan-checks li {\n  position: relative; padding-left: 36px; margin-block-end: var(--bp-s-3);\n  font-size: var(--bp-fs-body); line-height: 1.6;\n}\n.bp-scan .bp-scan-checks li::before {\n  content: \"\"; position: absolute; left: 0; top: 7px; width: 20px; height: 20px;\n  border-radius: 50%; background: var(--bp-lime-soft);\n  border: 2px solid var(--bp-green-aa);\n}\n.bp-scan .bp-scan-checks li::after {\n  content: \"\"; position: absolute; left: 6px; top: 12px; width: 8px; height: 4px;\n  border-left: 2px solid var(--bp-green-aa); border-bottom: 2px solid var(--bp-green-aa);\n  transform: rotate(-45deg);\n}\n\n\/* --- the evidence section: reference marks --------------------------------- *\/\n.bp-scan .bp-scan-sup { font-size: 0.68em; line-height: 0; vertical-align: super; }\n\/* the hit area is padded out to clear 24px in both directions and the padding\n   is pulled straight back off with a negative margin, so the mark stays a\n   superscript and stops being a 15px tap target. Measured on the live page\n   2026-08-26: 17 targets under 24px before this, 0 after. *\/\n.bp-scan .bp-scan-sup a { text-decoration: none; font-weight: 700;\n  color: var(--bp-teal); padding: 9px 7px; margin: -9px -7px; }\n.bp-scan .bp-scan-sup a:hover { text-decoration: underline; }\n\/* a run of marks is ONE superscript holding several linked numbers, so the\n   separator is a real comma in the markup rather than a CSS pseudo-element on an\n   adjacent sibling: the sibling combinator skips text nodes and put a comma in\n   front of every second mark in a paragraph (live page, 2026-08-26) *\/\n.bp-scan .bp-scan-sup a + a { margin-left: 1px; }\n\/* THE EVIDENCE, AS CARDS IN TWO BALANCED COLUMNS (round 4).\n   Five blocks of uneven length. A two-column GRID would leave the fifth alone in\n   the left column with a hole beside it, which is the defect this round exists to\n   remove; CSS columns balance the five by height instead, so both columns end\n   together and no card is orphaned. `break-inside: avoid` keeps a card whole. *\/\n.bp-scan .bp-scan-scigrid { columns: 2; column-gap: var(--bp-hero-gap);\n  margin-block: 0 var(--bp-s-6); }\n.bp-scan .bp-scan-scigrid > * { margin-block: 0 var(--bp-s-4); }\n.bp-scan .bp-scan-sci {\n  break-inside: avoid; -webkit-column-break-inside: avoid;\n  background: var(--bp-white); border: 1px solid var(--bp-sand);\n  border-radius: var(--bp-radius-card); box-shadow: var(--bp-shadow-soft);\n  padding: var(--bp-s-5);\n}\n.bp-scan .bp-scan-sci > * { max-width: none; }\n.bp-scan .bp-scan-sci h3 { margin-block: 0 var(--bp-s-3); }\n.bp-scan .bp-scan-sci > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-srclead { font-size: var(--bp-fs-small); line-height: 1.7;\n  color: var(--bp-foot); margin-block: 0 var(--bp-s-5); max-width: var(--bp-foot-measure); }\n\/* Lighthouse 12.8.2 on the live page, 2026-08-26: --bp-foot (#6b6b6b) on the\n   beige surface reads 4.44:1 at 14px, just under the 4.5 AA floor. Ink on beige\n   reads 12.88:1. Same fix T147 made for the reference badge, same reason. *\/\n.bp-scan .bp-scan-sec--beige .bp-scan-srclead { color: var(--bp-ink); }\n\/* A SECTION DECK is the line under the heading that says what the section is for.\n   It was 14px, which put it BELOW the body copy it introduces and upside down\n   against a 31px heading. Body size now, in the footnote ink, on the reading\n   measure: one role, one size, wherever it appears. It has to sit AFTER the base\n   rule above or it loses to it at the same specificity. *\/\n.bp-scan--v2 .bp-scan-srclead {\n  font-size: var(--bp-fs-body); line-height: 1.7; max-width: var(--bp-prose);\n}\n\n\/* --- author block ---------------------------------------------------------- *\/\n\/* THREE ZONES ACROSS THE CARD (round 4b): the portrait, the identity rail, the\n   bio, and the metadata row spanning under all three. Two zones left the bio at\n   its 480px reading measure inside a 938px column, so 458 by 95 pixels of the\n   card was empty and the role and the name held 200 pixels of type on a 938\n   pixel line. Named areas rather than auto-placement, because the card has to\n   fold twice: three columns at 1024 and up, the identity and the bio stacked\n   beside the portrait on a tablet, everything stacked on a phone. *\/\n.bp-scan .bp-scan-author {\n  display: grid;\n  grid-template-columns: var(--bp-portrait) minmax(0, 260px) minmax(0, 1fr);\n  grid-template-areas: \"photo id bio\" \"meta meta meta\";\n  gap: var(--bp-s-5) var(--bp-s-6);\n  \/* the figure is sized explicitly rather than left to the grid track, because a\n     <figure> with the UA default margin does not fill its track *\/\n  align-items: start; background: var(--bp-white); border: 1px solid var(--bp-sand);\n  border-radius: var(--bp-radius-card); box-shadow: var(--bp-shadow-soft);\n  padding: var(--bp-s-5); margin-block: 0 var(--bp-s-4); max-width: none;\n}\n.bp-scan .bp-scan-author > * { margin-block: 0; }\n.bp-scan .bp-scan-author > .wp-block-image { grid-area: photo; }\n.bp-scan .bp-scan-authorid { grid-area: id; }\n.bp-scan .bp-scan-author > .bp-scan-authorbody { grid-area: bio; }\n.bp-scan .bp-scan-author > .bp-scan-authormeta { grid-area: meta; }\n.bp-scan .bp-scan-authorid > * { margin-block: 0 var(--bp-s-2); max-width: none; }\n.bp-scan .bp-scan-authorid > *:last-child { margin-block-end: 0; }\n@media (max-width: 1023px) {\n  .bp-scan .bp-scan-author {\n    grid-template-columns: var(--bp-portrait) minmax(0, 1fr);\n    grid-template-areas: \"photo id\" \"photo bio\" \"meta meta\";\n  }\n}\n\/* OVERRIDE 2 of 2. Same reason as the screenshots: the portrait is a real\n   photograph in its own ratio and 16:9 cover would crop the face. *\/\n.bp-scan .bp-scan-author .wp-block-image { margin: 0; width: var(--bp-portrait); }\n.bp-scan .bp-scan-author .wp-block-image img {\n  aspect-ratio: 1 \/ 1; object-fit: cover; object-position: 50% 12%;\n  width: var(--bp-portrait); height: var(--bp-portrait); border-radius: 50%;\n  background: var(--bp-pale-teal); border: 2px solid var(--bp-lime);\n  box-shadow: none;\n}\n.bp-scan .bp-scan-authorbody > * { margin-block: 0 var(--bp-s-2); max-width: none; }\n.bp-scan .bp-scan-authorbody > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-authorname { font-size: 20px; font-weight: 700; line-height: 1.3;\n  color: var(--bp-ink); }\n.bp-scan .bp-scan-authorrole {\n  font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;\n  color: var(--bp-green-aa);\n}\n.bp-scan .bp-scan-authorbio { font-size: var(--bp-fs-small); line-height: 1.7; }\n\/* the bio has a column of its own now: 1072 of card inside its padding, less the\n   132 portrait, the 260 rail and two 32 gutters, is 616. At 14px that reads 100\n   characters to the line, so the bio goes to body size, where 616 measures 72. *\/\n.bp-scan--v2 .bp-scan-authorbody > .bp-scan-authorbio {\n  font-size: var(--bp-fs-body); line-height: var(--bp-lh-body); max-width: none;\n}\n\/* the author's own link measured 20px tall, under the 24px floor *\/\n.bp-scan .bp-scan-authorbody a, .bp-scan .bp-scan-authormeta a {\n  display: inline-block; padding-block: 4px;\n}\n\/* the link and the two dates on ONE row, ruled off the bio, so a card that runs\n   the whole container is anchored on its right edge instead of trailing off *\/\n.bp-scan .bp-scan-authormeta {\n  display: flex; flex-wrap: wrap; align-items: baseline;\n  justify-content: space-between; gap: var(--bp-s-2) var(--bp-s-5);\n  border-top: 1px solid var(--bp-sand);\n  \/* no top margin of its own: the card's grid row gap already puts 24 above the\n     rule, and adding another 16 made the row float *\/\n  padding-block-start: var(--bp-s-4); margin-block: 0;\n}\n.bp-scan .bp-scan-authormeta > * { margin-block: 0; max-width: none; }\n.bp-scan .bp-scan-dates { font-size: var(--bp-fs-foot); line-height: 1.6;\n  color: var(--bp-foot); margin-block: 0 var(--bp-s-4); }\n\n\/* --- the sticky CTA bar, phones only --------------------------------------- *\/\n\/* A page this long needs the offer within reach. It is one bar for the whole\n   page rather than a button per section, it never shows while the hero is on\n   screen (the hero has its own button), and the page reserves its height at the\n   bottom so the bar cannot cover the last line of the legal text. *\/\n.bp-scan .bp-scan-cta-bar { display: none; }\n@media (max-width: 767px) {\n  .bp-scan .bp-scan-cta-bar {\n    display: block; position: fixed; inset: auto 0 0 0; z-index: 40;\n    margin-block: 0; padding: var(--bp-s-3) var(--bp-side)\n      calc(var(--bp-s-3) + env(safe-area-inset-bottom, 0px));\n    background: rgba(255,255,255,0.94);\n    -webkit-backdrop-filter: saturate(150%) blur(10px);\n    backdrop-filter: saturate(150%) blur(10px);\n    border-top: 1px solid var(--bp-sand);\n    box-shadow: 0 -6px 22px rgba(0,88,89,0.10);\n    transform: translateY(105%); transition: transform 220ms ease;\n    pointer-events: none;\n  }\n  .bp-scan .bp-scan-cta-bar--on { transform: translateY(0); pointer-events: auto; }\n  .bp-scan .bp-scan-cta-bar .wp-block-buttons { margin-block: 0; }\n  .bp-scan .bp-scan-cta-bar .wp-block-button,\n  .bp-scan .bp-scan-cta-bar .wp-block-button__link { width: 100%; }\n  .bp-scan .bp-scan-cta-bar .wp-block-button__link { min-height: 48px; }\n}\n@media (prefers-reduced-motion: reduce) {\n  .bp-scan .bp-scan-cta-bar { transition-duration: 0ms; }\n}\n\n\/* --- 900 and below: the hero stops being two columns before it gets thin ---- *\/\n@media (max-width: 900px) {\n  .bp-scan { --bp-hero-gap: 36px; }\n  \/* one column, and the picture of the result comes SECOND: headline, result,\n     button, then the detail *\/\n  .bp-scan .bp-scan-hero2 {\n    grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto;\n    grid-template-areas: \"head\" \"box\" \"tail\"; row-gap: var(--bp-s-5);\n  }\n  .bp-scan .bp-scan-hero2 .wp-block-buttons { margin-block: 0 var(--bp-s-3); }\n  \/* on a phone the caption goes UNDER the button, so the button is whole on the\n     first screen instead of a teal sliver at the bottom edge. Nothing is hidden\n     and no word is dropped; three lines of caption change places with a button. *\/\n  .bp-scan .bp-scan-herobox .wp-block-buttons { order: 1; margin-block: 0; }\n  .bp-scan .bp-scan-herobox .bp-scan-boxlead { order: 2; margin-block: var(--bp-s-3) 0; }\n  \/* and because the button is now what follows the picture, the gap under the\n     picture is the NEXT-BLOCK minimum rather than the caption minimum. This is\n     the second half of the operator's read: the start button was touching the\n     result picture at 390 (measured 0px, 2026-08-26). *\/\n  .bp-scan .bp-scan-herobox > .bp-scan-screen { margin-block: 0 var(--bp-s-5); }\n  .bp-scan .bp-scan-herobox { padding: var(--bp-s-4); }\n}\n@media (max-width: 767px) {\n  .bp-scan .bp-scan-boxpitch { font-size: 21px; }\n  .bp-scan .bp-scan-kicker { font-size: 17px; }\n  \/* one column here, so the gap between the portrait and the name stops being\n     the card's inner column gap and becomes a VERTICAL gap between a figure and\n     the block under it: the figure-rhythm minimum (measured 16px, 2026-08-26) *\/\n  .bp-scan .bp-scan-author {\n    grid-template-columns: minmax(0, 1fr);\n    grid-template-areas: \"photo\" \"id\" \"bio\" \"meta\";\n    gap: var(--bp-s-5);\n  }\n  .bp-scan .bp-scan-shot img { border-radius: 10px; }\n}\n\n\/* --- EVERY MULTI-COLUMN BLOCK COLLAPSES ON A SMALL SCREEN ------------------\n   In ONE block, and at the END of the sheet, because a `columns: 1` written\n   beside its own component loses to the `columns: 2` that is declared later at\n   the same specificity. That is the same trap the sticky bar's footer\n   reservation hit in round 2, and it cost a mobile page 2,900 pixels here before\n   it was measured: five evidence cards were rendering in two 150px columns.\n   Two columns of 260px would put six words on a line. *\/\n@media (max-width: 900px) {\n  .bp-scan .bp-scan-scigrid,\n  .bp-scan--v2 .bp-scan-refs,\n  .bp-scan--v2 .bp-scan-sec > .bp-scan-note,\n  .bp-scan--v2 .bp-scan-sec > .bp-scan-disclosure { columns: 1; }\n  .bp-scan .bp-scan-sci { padding: var(--bp-s-4) var(--bp-s-5); }\n  .bp-scan .bp-scan-scigrid > * { margin-block: 0 var(--bp-s-3); }\n}\n@media (max-width: 767px) {\n  \/* a card's 24px side padding is 14 percent of a 350px column and buys nothing\n     a phone needs, since the cards are one per row anyway. Measured: 16px all\n     round gives the evidence section 84 pixels back. *\/\n  .bp-scan .bp-scan-sci { padding: var(--bp-s-4); }\n}\n\n\/* --- the site's own header and footer (T229, Jesse 2026-09-05) --------------\n   The page has no header, no nav and no footer of its own any more: the theme\n   renders the site's on every page whose template is elementor_header_footer,\n   and this page is one of them. Nothing here styles them; the two rules below\n   are the join.\n\n   The sticky CTA bar is `position: fixed` at the bottom of the viewport, so the\n   page has to reserve its height at the very END of the document or the bar\n   covers the last thing on the page. That used to be this page's own footer;\n   it is the site's footer now. The rule lives in THIS page's stylesheet, so it\n   applies on the scan pages and nowhere else, and the site's footer template is\n   not touched (the same reasoning as the rule it replaces, measured live\n   2026-08-26). 80 is 48 plus 32, both scale steps, against a bar of 74. *\/\n@media (max-width: 767px) {\n  footer.elementor-location-footer {\n    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));\n  }\n}\n<\/style>\n<script id=\"bp-scan-attribution\">\n(function () {\n  var HOST = \"app.bioprofile.com\";\n  var KEYS = [\"utm_source\", \"utm_medium\", \"utm_campaign\", \"utm_content\", \"utm_term\", \"bp_pl\"];\n  function forward() {\n    var q = new URLSearchParams(window.location.search);\n    var carry = [];\n    KEYS.forEach(function (k) {\n      var v = q.get(k);\n      if (v) { carry.push([k, v]); }\n    });\n    if (!carry.length) { return; }\n    var links = document.getElementsByTagName(\"a\");\n    Array.prototype.forEach.call(links, function (a) {\n      var u;\n      try { u = new URL(a.href); } catch (e) { return; }\n      if (u.hostname !== HOST) { return; }\n      carry.forEach(function (kv) { u.searchParams.set(kv[0], kv[1]); });\n      a.setAttribute(\"href\", u.toString());\n    });\n  }\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", forward);\n  } else {\n    forward();\n  }\n})();\n<\/script>\n<script id=\"bp-scan-stickycta\">\n(function () {\n  function arm() {\n    var bar = document.getElementById(\"bp-scan-cta-bar\");\n    var hero = document.querySelector(\".bp-scan-sec--hero\");\n    if (!bar || !hero || typeof IntersectionObserver === \"undefined\") { return; }\n    var io = new IntersectionObserver(function (rows) {\n      rows.forEach(function (row) {\n        bar.classList.toggle(\"bp-scan-cta-bar--on\", !row.isIntersecting);\n      });\n    }, { rootMargin: \"0px\" });\n    io.observe(hero);\n  }\n  \/\/ this block is the FIRST thing in the page, so the hero does not exist yet\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", arm);\n  } else {\n    arm();\n  }\n})();\n<\/script>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"WebPage\",\n  \"@id\": \"https:\/\/bioprofile.com\/scan-stresstest\/\",\n  \"url\": \"https:\/\/bioprofile.com\/scan-stresstest\/\",\n  \"name\": \"Stresstest: je stressscore in 3 minuten | BioProfile\",\n  \"description\": \"Gewone drukte of het begin van een burn-out? Vijf vragen, gemodelleerd naar de meest gebruikte stressschaal, zetten er een getal op. Gratis, 3 minuten.\",\n  \"isPartOf\": {\n    \"@id\": \"https:\/\/bioprofile.com\/#website\"\n  },\n  \"about\": {\n    \"@type\": \"Thing\",\n    \"name\": \"Stressbestendigheid\"\n  },\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Jesse van der Velde\",\n    \"jobTitle\": \"Oprichter van BioProfile\",\n    \"url\": \"https:\/\/nl.linkedin.com\/in\/jessevdv\",\n    \"image\": \"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/07\/author-jesse-round-320.jpg\"\n  },\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"BioProfile\",\n    \"url\": \"https:\/\/bioprofile.com\/\"\n  },\n  \"citation\": [\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Cohen S, Kamarck T, Mermelstein R. A global measure of perceived stress. Journal of Health and Social Behavior, 1983.\",\n      \"url\": \"https:\/\/doi.org\/10.2307\/2136404\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Cohen en collega's, 1983, Stress Immunity Disease Lab, Carnegie Mellon University.\",\n      \"url\": \"https:\/\/www.cmu.edu\/dietrich\/psychology\/stress-immunity-disease-lab\/scales\/index.html\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Lee EH. Review of the psychometric evidence of the Perceived Stress Scale. Asian Nursing Research, 2012.\",\n      \"url\": \"https:\/\/doi.org\/10.1016\/j.anr.2012.08.004\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Terluin B, van Marwijk HWJ, Ad\u00e8r HJ, et al. The Four-Dimensional Symptom Questionnaire (4DSQ): a validation study of a multidimensional self-report questionnaire to assess distress, depression, anxiety and somatization. BMC Psychiatry, 2006.\",\n      \"url\": \"https:\/\/doi.org\/10.1186\/1471-244X-6-34\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Schaufeli WB, Desart S, De Witte H. Burnout Assessment Tool (BAT): development, validity, and reliability. International Journal of Environmental Research and Public Health, 2020.\",\n      \"url\": \"https:\/\/doi.org\/10.3390\/ijerph17249495\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Maslach C, Schaufeli WB, Leiter MP. Job burnout. Annual Review of Psychology, 2001.\",\n      \"url\": \"https:\/\/doi.org\/10.1146\/annurev.psych.52.1.397\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Russell G, Lightman S. The human stress response. Nature Reviews Endocrinology, 2019.\",\n      \"url\": \"https:\/\/doi.org\/10.1038\/s41574-019-0228-0\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Sonnentag S, Fritz C. The Recovery Experience Questionnaire: development and validation of a measure for assessing recuperation and unwinding from work. Journal of Occupational Health Psychology, 2007.\",\n      \"url\": \"https:\/\/doi.org\/10.1037\/1076-8998.12.3.204\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Sonnentag S, Fritz C. Recovery from job stress: the stressor-detachment model as an integrative framework. Journal of Organizational Behavior, 2015.\",\n      \"url\": \"https:\/\/doi.org\/10.1002\/job.1924\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Kivim\u00e4ki M, Nyberg ST, Batty GD, et al. Job strain as a risk factor for coronary heart disease: a collaborative meta-analysis of individual participant data. The Lancet, 2012.\",\n      \"url\": \"https:\/\/doi.org\/10.1016\/S0140-6736(12)60994-5\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Keller A, Litzelman K, Wisk LE, et al. Does the perception that stress affects health matter? The association with health and mortality. Health Psychology, 2012.\",\n      \"url\": \"https:\/\/doi.org\/10.1037\/a0026743\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Prior A, Fenger-Gr\u00f8n M, Larsen KK, et al. The association between perceived stress and mortality among people with multimorbidity: a prospective population-based cohort study. American Journal of Epidemiology, 2016.\",\n      \"url\": \"https:\/\/doi.org\/10.1093\/aje\/kwv324\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Nielsen NR, Kristensen TS, Schnohr P, Gr\u00f8nb\u00e6k M. Perceived stress and cause-specific mortality among men and women: results from a prospective cohort study. American Journal of Epidemiology, 2008.\",\n      \"url\": \"https:\/\/doi.org\/10.1093\/aje\/kwn157\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Cohen S, Janicki-Deverts D, Doyle WJ, et al. Chronic stress, glucocorticoid receptor resistance, inflammation, and disease risk. Proceedings of the National Academy of Sciences, 2012.\",\n      \"url\": \"https:\/\/doi.org\/10.1073\/pnas.1118355109\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Van Laethem M, Beckers DGJ, Kompier MAJ, Dijksterhuis A, Geurts SAE. Psychosocial work characteristics and sleep quality: a systematic review of longitudinal and intervention research. Scandinavian Journal of Work, Environment and Health, 2013.\",\n      \"url\": \"https:\/\/doi.org\/10.5271\/sjweh.3376\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Hassard J, Teoh KRH, Visockaite G, Dewe P, Cox T. The cost of work-related stress to society: a systematic review. Journal of Occupational Health Psychology, 2018.\",\n      \"url\": \"https:\/\/doi.org\/10.1037\/ocp0000069\"\n    }\n  ],\n  \"datePublished\": \"2026-08-27\",\n  \"dateModified\": \"2026-08-27\"\n}\n<\/script>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity bp-scan-rule\"\/>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--hero is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-hero2 is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-hero-head is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-eyebrow wp-block-paragraph\">BioProfile analysis \u00b7 stress scan<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">You wonder whether this is still busyness or a burnout. Five questions put a number on it.<\/h1>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-herobox is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-boxpitch wp-block-paragraph\">Your result in 3 minutes<\/p>\n\n\n\n<div class=\"wp-block-group bp-scan-screen is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--nocap is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"768\" height=\"510\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72-768x510.webp\" alt=\"The result screen of the BioProfile stress scan on a phone, with a stress score of 45 and the reading band on noticeable\" class=\"wp-image-5077\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72-768x510.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72-300x199.webp 300w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72.webp 800w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n<\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-boxlead wp-block-paragraph\">Your stress score over the past two weeks, with the reading band it falls in and, for each question, the number that pulled your score down or up. All of it on your own screen, in your dashboard, and again in two weeks.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=stress&amp;lang=en\">Start the stress scan<\/a><\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-hero-tail is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-lead wp-block-paragraph\">Five questions about the past two weeks, modelled on the most widely used scale for perceived stress. You get a stress score from 0 to 100 with the reading band alongside it. An analysis of your answers, never a diagnosis.<\/p>\n\n\n\n<div class=\"wp-block-group bp-scan-facts is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-fact wp-block-paragraph\">Free<\/p>\n\n\n\n<p class=\"bp-scan-fact wp-block-paragraph\">5 questions<\/p>\n\n\n\n<p class=\"bp-scan-fact wp-block-paragraph\">About 3 minutes<\/p>\n\n\n\n<p class=\"bp-scan-fact wp-block-paragraph\">Score from 0 to 100<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=stress&amp;lang=en\">Start the stress scan<\/a><\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-ctamicro wp-block-paragraph\">Fill in your first name and email address, and your stress score is in your dashboard.<\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--wash is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Five questions that lay bare why you are still keeping going, and what that costs you<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-split is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-kicker wp-block-paragraph\">(and the scientifically supported reason why it is precisely these five)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You get it done. That is the problem. The emails, the deadlines, the children, the parents, the house: it all runs, and nobody sees that it runs because you are lying awake at six with a list in your head. In the evening you cannot switch it off, at the weekend you do not come loose, and the question you are not asking yourself is the only one that counts: is this still ordinary busyness, or am I crossing a line somewhere?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The hard thing about stress is that you are in the middle of it. From the outside it is invisible, on the inside it has become normal, and the only reference point you have is yesterday, when things were busy too. There is no blood value for how unpredictable your life feels, and burnout is not a moment but a slope: you only notice it once you are already some way down.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So researchers who wanted to measure stress did not go for the number of things you have to do, but for how it feels: how often you feel you have lost control, how often things pile up, how much confidence you have in tackling problems, how often things go the way you want, and whether you manage to switch off at the end of the day. Five questions about two weeks, added up into a score from 0 to 100. Not a diagnosis. But a number. And a number is something you can follow.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--mid is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"709\" height=\"1024\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-vraag-7b0b578c-709x1024.webp\" alt=\"The first two questions of the BioProfile stress scan, about the feeling of control and things piling up, each with five answer options\" class=\"wp-image-5079\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-vraag-7b0b578c-709x1024.webp 709w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-vraag-7b0b578c-208x300.webp 208w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-vraag-7b0b578c-768x1109.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-vraag-7b0b578c-1064x1536.webp 1064w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-vraag-7b0b578c.webp 1360w\" sizes=\"(max-width: 709px) 100vw, 709px\" \/><figcaption class=\"wp-element-caption\">Question 1 and 2 of 5. For each question you pick the answer that comes closest to your days over the past two weeks.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Most people start at the solution<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-split bp-scan-split--flip is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\">A meditation app. A mindfulness course, a weekend away, a book about boundaries, stopping work earlier on Friday. All sensible, and all of them start in the same place: with what you are going to do about it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So a month later you still do not know whether it did anything. You never recorded how heavy it was when you started, and stress is exactly the feeling that keeps making itself normal again. Without a starting value, every change is a feeling about a feeling.<\/p>\n\n\n\n<div class=\"wp-block-group bp-scan-bridge is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-bridgelead wp-block-paragraph\">We analyse the real cause first<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At BioProfile we turn the order around. First measure what is there now, with questions modelled on a scale someone else has validated, and only then talk about what you do with it. Analyse first, advise after.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The stress scan is the first step of that analysis, and one of the shortest.<\/p>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--narrow is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"768\" height=\"860\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-doelvraag-871a4fa9-768x860.webp\" alt=\"The question about what you would most like to improve, in the BioProfile scan, with general vitality ticked\" class=\"wp-image-5080\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-doelvraag-871a4fa9-768x860.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-doelvraag-871a4fa9-268x300.webp 268w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-doelvraag-871a4fa9-914x1024.webp 914w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-doelvraag-871a4fa9.webp 1360w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">The scan starts with what you want to improve.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--wash is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">What you get back in about three minutes<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-split is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\">You start with eight short questions about yourself. They do not count towards your score; they make sure we can read the rest properly. One of them you may skip.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then come the five stress questions, about the past two weeks: the feeling of control, things piling up, your confidence in dealing with problems, things going the way you want, and switching off at the end of the day. Each question has five answers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You fill in your first name and email address. You see a first picture straight away, and with one tap on your dashboard your stress score is on your screen, with the reading band alongside it. Your email holds a login link, so you can find your result again later and extend your scan into your full BioProfile.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--wide is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"448\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-startscherm-33cdccd6-768x448.webp\" alt=\"Start screen of the BioProfile stress scan with the button to begin\" class=\"wp-image-5081\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-startscherm-33cdccd6-768x448.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-startscherm-33cdccd6-300x175.webp 300w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-startscherm-33cdccd6-1024x597.webp 1024w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-startscherm-33cdccd6.webp 1360w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Where you land when you click the button on this page.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split bp-scan-split--flip is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\">This is what is on your screen after about three minutes:<\/p>\n\n\n\n<ul class=\"wp-block-list bp-scan-checks\">\n\n<li>Your stress score from 0 to 100, over the past two weeks<\/li>\n\n\n<li>The reading band your score falls into, from high load to low load<\/li>\n\n\n<li>For each question, how heavily it weighed on your score, from low to high, so you can see where the trouble lies<\/li>\n\n\n<li>An honest limit: what a questionnaire about stress can and cannot say<\/li>\n\n\n<li>A login link in your email, so you can keep your result and repeat it in two weeks<\/li>\n\n<\/ul>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--narrow is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"576\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-aanmelden-33995ff1-768x576.webp\" alt=\"The screen where you fill in your first name and email address to see your result\" class=\"wp-image-5082\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-aanmelden-33995ff1-768x576.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-aanmelden-33995ff1-300x225.webp 300w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-aanmelden-33995ff1-1024x768.webp 1024w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-aanmelden-33995ff1.webp 1360w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">First name and email address, and your first picture is on your screen.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Take the scan again in two weeks and you no longer have a feeling about your load, you have two numbers.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=stress&amp;lang=en\">Start the stress scan<\/a><\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-ctamicro wp-block-paragraph\">Fill in your first name and email address, and your stress score is in your dashboard.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">What we ask you<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-split is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\">This scan is about the past two weeks. You get five questions about how your life feels and for each question you choose the answer that comes closest to your days.<\/p>\n\n\n\n<ul class=\"wp-block-list bp-scan-items\">\n\n<li>The sense of control<\/li>\n\n\n<li>Things piling up<\/li>\n\n\n<li>Confidence in tackling problems<\/li>\n\n\n<li>Things going the way you want<\/li>\n\n\n<li>Switching off at the end of the day<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Every question counts equally. The software then reads your answers back to you question by question, from low to high, so you can see which of the five pulled your score down the most.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--split is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"863\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-latere-vragen-126d751c-768x863.webp\" alt=\"Questions 3 and 4 of the BioProfile stress scan: confidence in dealing with problems and things going the way you want\" class=\"wp-image-5083\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-latere-vragen-126d751c-768x863.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-latere-vragen-126d751c-267x300.webp 267w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-latere-vragen-126d751c-911x1024.webp 911w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-latere-vragen-126d751c.webp 1080w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Question 3 and 4. The same two weeks, two other sides of your strain.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--wash is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">What this scan is based on<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-instgrid is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-inst is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-badge bp-scan-badge--derive wp-block-paragraph\">modelled on<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Perceived Stress Scale<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ten questions, scored from 0 to 40, with an internal consistency between 0.85 and 0.91. It measures how unpredictable and overloading life feels, set against norms from the general population. The person who built it deliberately published no clinical cut-off value, and that is why we give you a position on the scale and not a label.<\/p>\n\n\n\n<p class=\"bp-scan-use wp-block-paragraph\">Modelled on, not validated as, this instrument.<\/p>\n\n\n\n<p class=\"bp-scan-validfor wp-block-paragraph\">Validated for: perceived stress against norms from the general population.<\/p>\n\n\n\n<p class=\"bp-scan-cite wp-block-paragraph\"><a href=\"https:\/\/www.cmu.edu\/dietrich\/psychology\/stress-immunity-disease-lab\/scales\/index.html\">Cohen and colleagues, 1983, Stress Immunity Disease Lab, Carnegie Mellon University.<\/a><\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--dark is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">What this scan cannot tell you<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-cols is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-col is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">Perceived stress, honestly measured<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Self-report is the right and validated way to measure perceived stress, because the experience is the construct. What it cannot do is measure your physiological stress response, establish anxiety or point to the cause. Our questions are worded by us and modelled on the published scale rather than a licensed copy of it, so we give you a position and never a clinical label. Heart rate variability from a wearable is the layer that lifts this beyond questionnaire data.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-col is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-limitcite wp-block-paragraph\">BioProfile scoring rules, measurement class A, reliability capped at medium on the basis of questionnaire data alone.<\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">How your score is built up<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-split bp-scan-split--flip is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\">Each of the five questions gets 0 to 4 points, from little load to a lot of load. The points are added up and converted into a stress score from 0 to 100. Higher is better.<\/p>\n\n\n\n<div class=\"wp-block-group bp-scan-scale bp-scan-scale--n4 is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-band bp-scan-band--alert is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-band-range wp-block-paragraph\">0 to 39<\/p>\n\n\n\n<p class=\"bp-scan-band-label wp-block-paragraph\">high strain<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-band bp-scan-band--warn is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-band-range wp-block-paragraph\">40 to 59<\/p>\n\n\n\n<p class=\"bp-scan-band-label wp-block-paragraph\">noticeable<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-band bp-scan-band--mild is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-band-range wp-block-paragraph\">60 to 79<\/p>\n\n\n\n<p class=\"bp-scan-band-label wp-block-paragraph\">manageable<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-band bp-scan-band--ok is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-band-range wp-block-paragraph\">80 to 100<\/p>\n\n\n\n<p class=\"bp-scan-band-label wp-block-paragraph\">low strain<\/p>\n\n<\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-bandnote wp-block-paragraph\">Reading bands, not clinical cut-off values. Your questions about stress resilience are worded by us and modelled on validated instruments, so there is no published cut-off value for precisely this score. Higher is always healthier.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This scan falls into measurement class A: a questionnaire is the usual way of measuring here, because perceived stress is exactly what is measured, and even so the reliability of your score stays capped at average as long as only your answers count. What lifts that ceiling is heart rate variability from a wearable, and you can add a wearable in your full BioProfile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On your results screen that reliability appears as a label next to your score: medium reliability, symptom based. That label is not an aside; it tells you exactly how much weight you may put on the number.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--split is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"951\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-score-a6bbcf47-768x951.webp\" alt=\"The stress questions read back on the result screen of the BioProfile scan, each with your answer and a score from 0 to 100\" class=\"wp-image-5078\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-score-a6bbcf47-768x951.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-score-a6bbcf47-242x300.webp 242w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-score-a6bbcf47-827x1024.webp 827w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-score-a6bbcf47.webp 880w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">This is how the software builds your score: each question gets its own number from 0 to 100, the lowest at the top.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--wash is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">What the science says about this<\/h2>\n\n\n\n<p class=\"bp-scan-srclead wp-block-paragraph\">This page describes a measuring instrument, so below you can read where that instrument comes from and what has been studied about it. Every claim points to the source it appears in.<\/p>\n\n\n\n<div class=\"wp-block-group bp-scan-scigrid is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-sci is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">Stress can be measured, and the yardstick is forty years old<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cohen, Kamarck and Mermelstein published the Perceived Stress Scale in 1983, a scale that does not count what happens to you, but how unpredictable, uncontrollable and overloaded your life feels.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">1<\/a>,<a href=\"#bronnen\">2<\/a><\/sup> In 2012 Lee lined up nineteen studies of the scale: the version with ten questions came out best, better than the one with fourteen and much better than the one with four.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">3<\/a><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the Netherlands and Flanders a tradition of its own grew up alongside. Terluin and colleagues developed the Vierdimensionale Klachtenlijst in general practice and tested it in ten studies: the distress scale, the most general expression of psychological strain, picked out with an accuracy of 0.79 who came to the GP with a psychosocial problem, and was linked to sickness absence.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">4<\/a><\/sup> In 2020 Schaufeli and colleagues built the Burnout Assessment Tool on interviews with 49 practitioners and tested it in 1,500 Flemish employees: exhaustion, mental distance, and reduced emotional and cognitive control as the core.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">5<\/a><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Four scales, one thought: stress is what you experience, and that can be measured. That is the reason this scan exists.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sci is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">Why how you feel in the middle of a busy stretch is a poor yardstick<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In 2001 Maslach, Schaufeli and Leiter summed up twenty-five years of research: burnout is a prolonged response to chronic emotional and interpersonal strain at work, with exhaustion, cynicism and the feeling of no longer getting anything done as the three features.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">6<\/a><\/sup> Prolonged, then: it is not a bad week, it is a pattern that builds up week after week while you are in the middle of it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 2019 Russell and Lightman described what is going on inside your body in the meantime: cortisol is released in pulses, rises with acute stress, and with prolonged strain the pattern shifts.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">7<\/a><\/sup> That is not something you measure with a feeling about yesterday. So the questions in this scan follow the same thinking as the scale they are modelled on: a pattern across two weeks, broken down into the parts that matter.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sci is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">Why these five questions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Perceived Stress Scale measures the feeling of control, things piling up, confidence in dealing with problems and whether things go the way you want; that is four of our five.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">2<\/a><\/sup> The fifth, switching off at the end of the day, comes from recovery research: in 2007 Sonnentag and Fritz showed in 930 people that recovery from work consists of four experiences, and that mentally detaching from work is the first.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">8<\/a><\/sup> In 2015 they worked that out into a model with that detachment as the pivot.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">9<\/a><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Our five questions follow the construct and the look-back period of that scale, in our own words. They are not a copy of it, and the card above says so in as many words. The maker of the scale deliberately published no clinical cut-off value, and that is why we give you a position on the reading bands and not a label.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sci is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">What a low score means, and above all what it does not mean<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A low stress score is a picture of perceived load. It is not a diagnosis of an anxiety disorder, it does not measure cortisol, and it says nothing about the cause. Terluin&#8217;s work shows why that distinction matters: general distress, low mood and anxiety are related but different things, and the GP is the one who tells them apart.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">4<\/a><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A low score means that looking further makes sense, and nothing more. If worrying or a low mood affects your daily life, that is a conversation with a doctor and not a number to optimise, and only a doctor can make a diagnosis.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sci is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">Why stress is worth measuring<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kivim\u00e4ki and colleagues followed 197,473 working people without heart complaints across thirteen European cohorts, for an average of seven and a half years; 15 per cent reported stress at work, and that group was 1.23 times as likely to have a first myocardial infarction, an effect that is smaller than the effect of smoking and that comes on top of it.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">10<\/a><\/sup> Keller and colleagues followed 28,753 Americans for eight years: people who had a lot of stress and believed that this stress was harming their health were 43 per cent more likely to die early.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">11<\/a><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prior and colleagues followed 118,410 Danes for four years: mortality rose step by step with the level of perceived stress, up to 1.51 times for the highest quintile against the lowest.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">12<\/a><\/sup> In Copenhagen, Nielsen and colleagues saw 1.32 times as much mortality in men with high stress, among 12,128 people over more than twenty years.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">13<\/a><\/sup> In 2012 Cohen and colleagues showed in 276 healthy volunteers how that works: people who had been through prolonged stress responded less to their own stress hormone, and caught a cold more often after exposure to a virus.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">14<\/a><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 2013 Van Laethem and colleagues found across twenty studies that a high workload and little room to decide for yourself predict poorer sleep.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">15<\/a><\/sup> In 2018 Hassard and colleagues added up fifteen cost studies: work stress costs societies between 221 million and 187 billion dollars a year, and 70 to 90 per cent of that is lost productivity.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">16<\/a><\/sup> That is a connection, not a cause, and that is how those studies put it too. What it does say: stress is not the soft part of health that you get round to looking at later.<\/p>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-bridge bp-scan-bridge--row is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-bridge-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-bridgelead wp-block-paragraph\">This is what the scan stands on. Now your stress score.<\/p>\n\n\n\n<p class=\"bp-scan-ctamicro wp-block-paragraph\">Fill in your first name and email address, and your stress score is in your dashboard.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=stress&amp;lang=en\">Start the stress scan<\/a><\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--tight is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Written by<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-author is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"320\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/07\/author-jesse-round-320.jpg\" alt=\"Jesse van der Velde\" class=\"wp-image-4815\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/07\/author-jesse-round-320.jpg 320w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/07\/author-jesse-round-320-300x300.jpg 300w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/07\/author-jesse-round-320-150x150.jpg 150w\" sizes=\"(max-width: 320px) 100vw, 320px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group bp-scan-authorid is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-authorrole wp-block-paragraph\">Founder of BioProfile<\/p>\n\n\n\n<p class=\"bp-scan-authorname wp-block-paragraph\">Jesse van der Velde<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-authorbody is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-authorbio wp-block-paragraph\">Since 2006 they have guided people towards a new body and optimal health, and have written or co-written fifteen books on nutrition and health. Forever Young (2012) and Superfood Recipes (2013) both reached number 1 in the Netherlands.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-authormeta is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-authorbio wp-block-paragraph\"><a href=\"https:\/\/nl.linkedin.com\/in\/jessevdv\">LinkedIn<\/a><\/p>\n\n\n\n<p class=\"bp-scan-dates wp-block-paragraph\">Published on 27 August 2026 \u00b7 Last updated on 27 August 2026<\/p>\n\n<\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-disclosure wp-block-paragraph\">This page was written by BioProfile. BioProfile sells health products and this scan is free: no purchase comes with it. The Perceived Stress Scale is not ours and not free to use. That is why we ask our own five questions, modelled on that instrument, and nowhere do we call them a validated copy of it.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--tight bp-scan-sec--beige is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\" id=\"bronnen\">Sources<\/h2>\n\n\n\n<p class=\"bp-scan-srclead wp-block-paragraph\">Every source below was checked on the day this page was published. The numbering follows the text: source 1 is the first one the text refers to, and the instrument the scan is built on sits among them at the point where it comes up.<\/p>\n\n\n\n<ol class=\"wp-block-list bp-scan-refs\">\n\n<li>Cohen S, Kamarck T, Mermelstein R. A global measure of perceived stress. Journal of Health and Social Behavior, 1983. <a href=\"https:\/\/doi.org\/10.2307\/2136404\">doi.org\/10.2307\/2136404<\/a><\/li>\n\n\n<li>Cohen and colleagues, 1983, Stress Immunity Disease Lab, Carnegie Mellon University. <a href=\"https:\/\/www.cmu.edu\/dietrich\/psychology\/stress-immunity-disease-lab\/scales\/index.html\">cmu.edu<\/a><\/li>\n\n\n<li>Lee EH. Review of the psychometric evidence of the Perceived Stress Scale. Asian Nursing Research, 2012. <a href=\"https:\/\/doi.org\/10.1016\/j.anr.2012.08.004\">doi.org\/10.1016\/j.anr.2012.08.004<\/a><\/li>\n\n\n<li>Terluin B, van Marwijk HWJ, Ad\u00e8r HJ, et al. The Four-Dimensional Symptom Questionnaire (4DSQ): a validation study of a multidimensional self-report questionnaire to assess distress, depression, anxiety and somatization. BMC Psychiatry, 2006. <a href=\"https:\/\/doi.org\/10.1186\/1471-244X-6-34\">doi.org\/10.1186\/1471-244X-6-34<\/a><\/li>\n\n\n<li>Schaufeli WB, Desart S, De Witte H. Burnout Assessment Tool (BAT): development, validity, and reliability. International Journal of Environmental Research and Public Health, 2020. <a href=\"https:\/\/doi.org\/10.3390\/ijerph17249495\">doi.org\/10.3390\/ijerph17249495<\/a><\/li>\n\n\n<li>Maslach C, Schaufeli WB, Leiter MP. Job burnout. Annual Review of Psychology, 2001. <a href=\"https:\/\/doi.org\/10.1146\/annurev.psych.52.1.397\">doi.org\/10.1146\/annurev.psych.52.1.397<\/a><\/li>\n\n\n<li>Russell G, Lightman S. The human stress response. Nature Reviews Endocrinology, 2019. <a href=\"https:\/\/doi.org\/10.1038\/s41574-019-0228-0\">doi.org\/10.1038\/s41574-019-0228-0<\/a><\/li>\n\n\n<li>Sonnentag S, Fritz C. The Recovery Experience Questionnaire: development and validation of a measure for assessing recuperation and unwinding from work. Journal of Occupational Health Psychology, 2007. <a href=\"https:\/\/doi.org\/10.1037\/1076-8998.12.3.204\">doi.org\/10.1037\/1076-8998.12.3.204<\/a><\/li>\n\n\n<li>Sonnentag S, Fritz C. Recovery from job stress: the stressor-detachment model as an integrative framework. Journal of Organizational Behavior, 2015. <a href=\"https:\/\/doi.org\/10.1002\/job.1924\">doi.org\/10.1002\/job.1924<\/a><\/li>\n\n\n<li>Kivim\u00e4ki M, Nyberg ST, Batty GD, et al. Job strain as a risk factor for coronary heart disease: a collaborative meta-analysis of individual participant data. The Lancet, 2012. <a href=\"https:\/\/doi.org\/10.1016\/S0140-6736(12)60994-5\">doi.org\/10.1016\/S0140-6736(12)60994-5<\/a><\/li>\n\n\n<li>Keller A, Litzelman K, Wisk LE, et al. Does the perception that stress affects health matter? The association with health and mortality. Health Psychology, 2012. <a href=\"https:\/\/doi.org\/10.1037\/a0026743\">doi.org\/10.1037\/a0026743<\/a><\/li>\n\n\n<li>Prior A, Fenger-Gr\u00f8n M, Larsen KK, et al. The association between perceived stress and mortality among people with multimorbidity: a prospective population-based cohort study. American Journal of Epidemiology, 2016. <a href=\"https:\/\/doi.org\/10.1093\/aje\/kwv324\">doi.org\/10.1093\/aje\/kwv324<\/a><\/li>\n\n\n<li>Nielsen NR, Kristensen TS, Schnohr P, Gr\u00f8nb\u00e6k M. Perceived stress and cause-specific mortality among men and women: results from a prospective cohort study. American Journal of Epidemiology, 2008. <a href=\"https:\/\/doi.org\/10.1093\/aje\/kwn157\">doi.org\/10.1093\/aje\/kwn157<\/a><\/li>\n\n\n<li>Cohen S, Janicki-Deverts D, Doyle WJ, et al. Chronic stress, glucocorticoid receptor resistance, inflammation, and disease risk. Proceedings of the National Academy of Sciences, 2012. <a href=\"https:\/\/doi.org\/10.1073\/pnas.1118355109\">doi.org\/10.1073\/pnas.1118355109<\/a><\/li>\n\n\n<li>Van Laethem M, Beckers DGJ, Kompier MAJ, Dijksterhuis A, Geurts SAE. Psychosocial work characteristics and sleep quality: a systematic review of longitudinal and intervention research. Scandinavian Journal of Work, Environment and Health, 2013. <a href=\"https:\/\/doi.org\/10.5271\/sjweh.3376\">doi.org\/10.5271\/sjweh.3376<\/a><\/li>\n\n\n<li>Hassard J, Teoh KRH, Visockaite G, Dewe P, Cox T. The cost of work-related stress to society: a systematic review. Journal of Occupational Health Psychology, 2018. <a href=\"https:\/\/doi.org\/10.1037\/ocp0000069\">doi.org\/10.1037\/ocp0000069<\/a><\/li>\n\n<\/ol>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--cta bp-scan-sec--band is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Start your stress scan<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Five questions, about three minutes, and your stress score is in your dashboard. Your answers stay private (GDPR).<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=stress&amp;lang=en\">Start the stress scan<\/a><\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-ctamicro wp-block-paragraph\">Fill in your first name and email address, and your stress score is in your dashboard.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--tight bp-scan-sec--beige is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Other scans<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-links is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/scan-wellbeing-test\/\">Wellbeing test (WHO-5)<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/scan-slaaptest\/\">Sleep test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/brain-fog-test\/\">Brain fog test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/scan-fatigue-test\/\">Fatigue test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/scan-lifestyle-test\/\">Lifestyle test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/scan-hormone-test\/\">Hormone test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/\">Gut complaints test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/heart-self-test\/\">Heart and vascular test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/scan-recovery-test\/\">Recovery test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/metabolism-test\/\">Metabolism test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/free-health-check-tests\/\">All scans<\/a><\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--foot is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-cols is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-col is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-safety wp-block-paragraph\"><strong>What this does not say.<\/strong> This is a picture of perceived stress, not a diagnosis of an anxiety disorder, and it does not measure cortisol or any other stress hormone. A low score here is not a judgement about your mental health. If worrying or a low mood affects your daily life, that is a conversation with a doctor and not a number to optimise.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-col is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-legal wp-block-paragraph\">BioProfile analyses your health status to guide you and your coach. It does not make a diagnosis, only a doctor can do that. Built on validated health questionnaires; the combined BioProfile score is not itself a validated clinical instrument yet. Your answers stay private (GDPR).<\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-cta-bar is-layout-flow wp-block-group-is-layout-flow\" id=\"bp-scan-cta-bar\">\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=stress&amp;lang=en\">Start the stress scan<\/a><\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>BioProfile analysis \u00b7 stress scan You wonder whether this is still busyness or a burnout. Five questions put a number on it. Your result in 3 minutes Your stress score over the past two weeks, with the reading band it falls in and, for each question, the number that pulled your score down or up. [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_yoast_wpseo_title":"Stressed out or burnt out? The stress test: your stress score in 3 minutes | BioProfile","_yoast_wpseo_metadesc":"Ordinary busyness or the start of burnout? Five questions, modelled on the most widely used stress scale, put a number on it. Free, 3 minutes.","_yoast_wpseo_meta-robots-noindex":"2","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_opengraph-image-id":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_twitter-image-id":"","inline_featured_image":false,"footnotes":""},"class_list":["post-6895","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Stressed out or burnt out? The stress test: your stress score in 3 minutes | BioProfile<\/title>\n<meta name=\"description\" content=\"Ordinary busyness or the start of burnout? Five questions, modelled on the most widely used stress scale, put a number on it. Free, 3 minutes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bioprofile.com\/en\/stress-test\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stressed out or burnt out? The stress test: your stress score in 3 minutes | BioProfile\" \/>\n<meta property=\"og:description\" content=\"Ordinary busyness or the start of burnout? Five questions, modelled on the most widely used stress scale, put a number on it. Free, 3 minutes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bioprofile.com\/en\/stress-test\/\" \/>\n<meta property=\"og:site_name\" content=\"Bioprofile.com\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-30T20:27:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"531\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/stress-test\\\/\",\"url\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/stress-test\\\/\",\"name\":\"Stressed out or burnt out? The stress test: your stress score in 3 minutes | BioProfile\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/stress-test\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/stress-test\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bioprofile.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72-768x510.webp\",\"datePublished\":\"2026-08-27T10:10:00+00:00\",\"dateModified\":\"2026-09-30T20:27:25+00:00\",\"description\":\"Ordinary busyness or the start of burnout? Five questions, modelled on the most widely used stress scale, put a number on it. Free, 3 minutes.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/stress-test\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bioprofile.com\\\/en\\\/stress-test\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/stress-test\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bioprofile.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72-768x510.webp\",\"contentUrl\":\"https:\\\/\\\/bioprofile.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72-768x510.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/stress-test\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/home-2026\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Scan: Stress test\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/\",\"name\":\"Bioprofile.com\",\"description\":\"Live longer, stay younger\",\"publisher\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#organization\",\"name\":\"Bioprofile.com\",\"url\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/bioprofile.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/bioprofile.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/logo.svg\",\"width\":173,\"height\":48,\"caption\":\"Bioprofile.com\"},\"image\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Stressed out or burnt out? The stress test: your stress score in 3 minutes | BioProfile","description":"Ordinary busyness or the start of burnout? Five questions, modelled on the most widely used stress scale, put a number on it. Free, 3 minutes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bioprofile.com\/en\/stress-test\/","og_locale":"en_US","og_type":"article","og_title":"Stressed out or burnt out? The stress test: your stress score in 3 minutes | BioProfile","og_description":"Ordinary busyness or the start of burnout? Five questions, modelled on the most widely used stress scale, put a number on it. Free, 3 minutes.","og_url":"https:\/\/bioprofile.com\/en\/stress-test\/","og_site_name":"Bioprofile.com","article_modified_time":"2026-09-30T20:27:25+00:00","og_image":[{"width":800,"height":531,"url":"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bioprofile.com\/en\/stress-test\/","url":"https:\/\/bioprofile.com\/en\/stress-test\/","name":"Stressed out or burnt out? The stress test: your stress score in 3 minutes | BioProfile","isPartOf":{"@id":"https:\/\/bioprofile.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bioprofile.com\/en\/stress-test\/#primaryimage"},"image":{"@id":"https:\/\/bioprofile.com\/en\/stress-test\/#primaryimage"},"thumbnailUrl":"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72-768x510.webp","datePublished":"2026-08-27T10:10:00+00:00","dateModified":"2026-09-30T20:27:25+00:00","description":"Ordinary busyness or the start of burnout? Five questions, modelled on the most widely used stress scale, put a number on it. Free, 3 minutes.","breadcrumb":{"@id":"https:\/\/bioprofile.com\/en\/stress-test\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bioprofile.com\/en\/stress-test\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bioprofile.com\/en\/stress-test\/#primaryimage","url":"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72-768x510.webp","contentUrl":"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-stresstest-resultaat-telefoon-ebf9bf72-768x510.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/bioprofile.com\/en\/stress-test\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bioprofile.com\/en\/home-2026\/"},{"@type":"ListItem","position":2,"name":"Scan: Stress test"}]},{"@type":"WebSite","@id":"https:\/\/bioprofile.com\/en\/#website","url":"https:\/\/bioprofile.com\/en\/","name":"Bioprofile.com","description":"Live longer, stay younger","publisher":{"@id":"https:\/\/bioprofile.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bioprofile.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/bioprofile.com\/en\/#organization","name":"Bioprofile.com","url":"https:\/\/bioprofile.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bioprofile.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/bioprofile.com\/wp-content\/uploads\/2024\/08\/logo.svg","contentUrl":"https:\/\/bioprofile.com\/wp-content\/uploads\/2024\/08\/logo.svg","width":173,"height":48,"caption":"Bioprofile.com"},"image":{"@id":"https:\/\/bioprofile.com\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/pages\/6895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/comments?post=6895"}],"version-history":[{"count":4,"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/pages\/6895\/revisions"}],"predecessor-version":[{"id":7414,"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/pages\/6895\/revisions\/7414"}],"wp:attachment":[{"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/media?parent=6895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}