{"id":3489,"date":"2026-10-25T10:30:00","date_gmt":"2026-10-25T09:30:00","guid":{"rendered":"https:\/\/equilibriumpsychotherapy.net\/values-compass\/"},"modified":"2026-11-02T15:00:01","modified_gmt":"2026-11-02T14:00:01","slug":"values-compass","status":"publish","type":"post","link":"https:\/\/equilibriumpsychotherapy.net\/hr\/values-compass\/","title":{"rendered":"The Values Compass"},"content":{"rendered":"\n<style>\n\/* The accent is a light-background device. Inside a reversed-out panel it stops\n   being emphasis and becomes unreadable - coral on the Matrix closing panel\n   measured 2.0:1 - so the mark falls back to the panel's own text colour and\n   lets weight alone carry it. gOpen tags those panels .eq-ondark. *\/\n.eqp .eq-ondark .eqb{color:inherit}\n\/* House rule: bold emphasis is set in the article's own accent colour, so a\n   marked phrase belongs to the piece it sits in rather than importing a\n   site-wide highlight. v3-emph.js inserts a strong element of class eqb; theme() has\n   already declared --eqp-accent for this post. Italics deliberately stay ink,\n   and nothing inside a component that exists to make a line stand out is\n   coloured, because that is emphasis on emphasis. *\/\n.eqp .eqb{color:var(--eqp-accent)}\n\/* A separator between a short answer and the caveat that belongs on the same\n   line. Muted and given real air on both sides, so it reads as a mark between\n   two statements rather than as punctuation inside one. A dash cannot be used\n   here: the house rule bans em and en dashes, and wptexturize rewrites a spaced\n   hyphen into an en dash on render. *\/\n.eqp .eq-tld{color:var(--eqp-muted);padding:0 .58em;font-weight:400}\n\/* A short answer standing against the caveat on the same line. Same accent as\n   an emphasis mark, but a different class, because it is a label rather than a\n   mark inside a sentence and must not count against the emphasis budget. *\/\n.eqp .eq-ans{color:var(--eqp-accent)}\n.eqp .eq-ondark .eq-ans{color:inherit}\n:root{--eqp-accent:#00373e;--eqp-accent2:#005f8d;--eqp-muted:#8d9695;--eqp-dot:#cfdcdb;--eqp-line:#dde8e7;--eqp-line2:#c3d6d4;--eqp-gold:#b08d68;--eqp-body:#4a6665;--eqp-sel:#d7e6e4;--eqp-shadow:rgba(0,55,62,.16)}\n.eqp{--teal:#00373e;--navy:#0b1f30;--blue:#005f8d;--ink:#26302f;--muted:#8d9695;\n  --cream:#fbf6f1;--creamE:#ecdcc9;--mist:#f3f7f6;--mistE:#dde8e7;--amber:#b08d68}\n\n\/* ---- reading progress ---- *\/\n#eqp-rail{position:fixed;top:0;left:0;right:0;height:2px;z-index:9999;pointer-events:none;background:transparent}\n#eqp-rail i{display:block;height:100%;background:var(--eqp-accent);transform:scaleX(0);transform-origin:0 50%;\n  will-change:transform}\n@supports (animation-timeline:scroll()){\n  #eqp-rail i{animation:eqp-grow linear both;animation-timeline:scroll(root block)}\n}\n@keyframes eqp-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}\n\n\/* ---- part rail ---- *\/\n#eqp-parts{position:fixed;left:26px;top:50%;transform:translateY(-50%);z-index:60;display:none}\n@media(min-width:1280px){#eqp-parts{display:block}}\n#eqp-parts a{display:flex;align-items:center;gap:11px;padding:7px 0;text-decoration:none;color:inherit}\n#eqp-parts .dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--eqp-dot);\n  transition:background .2s ease,transform .2s ease}\n#eqp-parts .lbl{white-space:nowrap;font:700 11px\/1 \"Work Sans\",sans-serif;letter-spacing:.1em;\n  text-transform:uppercase;color:var(--eqp-muted);opacity:0;transform:translateX(-4px);\n  transition:opacity .2s ease,transform .2s ease;pointer-events:none}\n#eqp-parts:hover .lbl{opacity:1;transform:none}\n#eqp-parts a:focus-visible .lbl{opacity:1;transform:none}\n#eqp-parts a.on .dot{background:var(--eqp-accent);transform:scale(1.45)}\n#eqp-parts a.on .lbl{color:var(--eqp-accent)}\n\n\/* ---- back to top ---- *\/\n#eqp-top{position:fixed;right:26px;bottom:26px;z-index:60;display:inline-flex;align-items:center;gap:8px;\n  padding:11px 17px;border-radius:999px;border:1.5px solid var(--eqp-line);background:#fff;\n  color:var(--eqp-accent);font:600 14px\/1 \"Work Sans\",sans-serif;cursor:pointer;\n  box-shadow:0 2px 14px var(--eqp-shadow);\n  opacity:0;visibility:hidden;transform:translateY(8px);\n  transition:opacity .25s ease,transform .25s ease,visibility .25s}\n#eqp-top.on{opacity:1;visibility:visible;transform:none}\n#eqp-top:hover{color:var(--eqp-accent2);border-color:var(--eqp-line2)}\n#eqp-top svg{width:13px;height:13px}\n\n\/* ---- scroll reveal ----\n   Gated on [data-eqp], which the script sets before any of these elements are\n   parsed. No script, no hiding: the article never depends on JS to be visible. *\/\n[data-eqp] .eq-rev{opacity:0;transform:translateY(12px);\n  transition:opacity .38s cubic-bezier(.22,.61,.36,1),transform .38s cubic-bezier(.22,.61,.36,1)}\n[data-eqp] .eq-rev.in{opacity:1;transform:none}\n\n\/* ---- drop cap ---- *\/\n.eq-drop::first-letter{float:left;font-family:\"Playfair Display\",Georgia,serif;font-weight:800;\n  font-size:4.4em;line-height:.84;margin:.06em .10em 0 0;color:var(--eqp-accent)}\n\n\/* ---- focus + selection, applied inside the article only ---- *\/\n.eqp ::selection{background:var(--eqp-sel);color:var(--eqp-accent)}\n\n@media(max-width:520px){\n  .eq-drop::first-letter{font-size:3.5em}\n  #eqp-top{right:14px;bottom:14px;padding:10px 14px}\n}\n@media(prefers-reduced-motion:reduce){\n  .eq-rev,#eqp-top,#eqp-parts .dot,#eqp-parts .lbl{transition:none!important}\n  .eq-rev{opacity:1!important;transform:none!important}\n  #eqp-rail i{animation:none!important}\n}\n\n\/* ---- print ---- *\/\n@media print{\n  #eqp-rail,#eqp-parts,#eqp-top{display:none!important}\n  .eq-rev{opacity:1!important;transform:none!important}\n  h2,h3{break-after:avoid;page-break-after:avoid}\n  a{text-decoration:none;color:#000}\n  .eqp{font-size:11pt}\n}\n\n\/* eq-phone-fixes-13oct:start (per post; same rules as the site-wide sweep fixes)\n   Three fixes for every post, from the 12 Oct sweeps.\n   1. The 2px reading-progress line (#eqp-rail) sat 24px below the top of the window,\n      because the block layout gives every child of the post a 24px top margin. It\n      crossed the text like a strikethrough. It now sits at the very top.\n   2. Phone: text inside boxes (evidence boxes, \"worth being clear about\", panels)\n      stayed at the fluid minimum, 14.6px, while plain paragraphs are lifted to 17px\n      by the eq-phone-fixes rule (which only reaches direct children). Figures keep\n      their own sizes.\n   3. Tablet (641 to 899px, and any touch screen above that): contents rows get the\n      same 44px tap height the phone rows already have (they were 19 to 26px),\n      including the part rows with no sub-items (.flat). *\/\n#eqp-rail{margin:0!important}\n@media (max-width:640px){\n  body.single-post .eqp .has-background p[style*=\"21px)\"]:not(figure p){font-size:17px!important;line-height:1.62!important}\n}\n@media (min-width:641px) and (max-width:899px),(min-width:641px) and (hover:none){\n  body .eqp .eq-toc li{margin:0}\n  body .eqp .eq-toc li a{display:block;box-sizing:border-box;min-height:44px;padding:10px 0}\n  body .eqp .eq-toc summary .ttl{padding:11px 0;margin:-11px 0}\n  body .eqp .eq-toc .flat > a{display:flex;align-items:center;box-sizing:border-box;min-height:44px}\n}\n\/* 13 Oct, Luka approved:\n   4. Contents box on phones and tablets: the 11px open arrow moves to the right edge of each\n      part row with a 44px tap area, so opening the subsections no longer competes with the\n      title link; the minutes line lines up under the title on phones.\n   5. Working with this panel on phones: both buttons full width, same pill shape, stacked\n      with an even gap; Book a session stays filled, Get in touch outlined. *\/\n@media (max-width:899px),(hover:none){\n  body .eqp .eq-toc details>summary{position:relative;padding-right:56px!important}\n  body .eqp .eq-toc details>summary .chev{position:absolute;right:0;top:calc(50% - 22px);width:16px;height:16px;padding:14px;box-sizing:content-box;margin:0!important}\n  body .eqp .eq-toc .flat{padding-right:56px!important}\n  body .eqp .eq-toc .flat > .chev{display:none!important}\n}\n@media (max-width:640px){\n  body .eqp .eq-toc details>summary .cnt,body .eqp .eq-toc .flat .cnt{padding-left:0!important}\n  body .eq-ondark .wp-block-buttons{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important}\n  body .eq-ondark .wp-block-button{width:100%!important;margin:0!important}\n  body .eq-ondark .wp-block-button__link{display:flex!important;justify-content:center;align-items:center;width:100%!important;box-sizing:border-box;min-height:52px;border-radius:999px!important;text-align:center}\n}\n\/* eq-phone-fixes-13oct:end *\/\n\n<\/style><style>\n\/* ---- table of contents ---- *\/\n\/* Every contents link and every part-rail link lands its target flush against\n   the top edge of the window. There is no sticky header to clear, so this is\n   only air, but a heading jammed into the browser chrome reads as a page that\n   has jumped rather than one that has arrived. *\/\n.eqp [id]{scroll-margin-top:28px}\n\n\/* The border belongs to the container, not to details:last-of-type: as soon as\n   a part with no subsections is allowed to be a plain row, the last row can be\n   one of those and the list ends with no line under it. *\/\n.eq-toc{margin:0;border-bottom:1px solid var(--eqp-line)}\n.eq-toc details,.eq-toc .flat{border-top:1px solid var(--eqp-line);margin:0}\n.eq-toc summary,.eq-toc .flat{display:flex;align-items:baseline;gap:15px;padding:17px 2px;\n  cursor:pointer;list-style:none;transition:color .18s ease}\n.eq-toc summary::-webkit-details-marker{display:none}\n.eq-toc summary:hover,.eq-toc .flat:hover{color:var(--eqp-accent2)}\n.eq-toc summary:focus-visible{outline:2px solid var(--eqp-accent2);outline-offset:3px;border-radius:5px}\n.eq-toc .num{flex:0 0 auto;font:700 12px\/1 \"Work Sans\",sans-serif;letter-spacing:.13em;color:var(--eqp-gold);\n  min-width:56px;font-variant-numeric:tabular-nums}\n\/* A part with no subsections keeps the chevron's footprint but not the chevron,\n   so every PART number stays on the same vertical line. *\/\n.eq-toc .chev.hide{visibility:hidden}\n.eq-toc .ttl{flex:1 1 auto;font:700 19px\/1.3 \"Work Sans\",sans-serif;color:var(--eqp-accent);\n  text-decoration:none;border-bottom:1px solid transparent;\n  transition:color .18s ease,border-color .18s ease}\n.eq-toc .ttl:hover{color:var(--eqp-accent2);border-bottom-color:var(--eqp-line2)}\n.eq-toc .ttl:focus-visible{outline:2px solid var(--eqp-accent2);outline-offset:2px;border-radius:3px}\n.eq-toc .cnt{flex:0 0 auto;font:400 13.5px\/1 \"Work Sans\",sans-serif;color:var(--eqp-muted);\n  font-variant-numeric:tabular-nums;white-space:nowrap}\n.eq-toc .chev{flex:0 0 auto;width:11px;height:11px;transition:transform .22s ease;color:var(--eqp-muted)}\n.eq-toc details[open] .chev{transform:rotate(90deg)}\n.eq-toc details[open] .ttl{color:var(--eqp-accent2)}\n.eq-toc ul{list-style:none;margin:0;padding:0 0 16px 71px}\n.eq-toc li{margin:0 0 9px}\n.eq-toc li a{font:400 15.5px\/1.5 \"Work Sans\",sans-serif;color:var(--eqp-body);text-decoration:none;\n  border-bottom:1px solid transparent;transition:color .18s ease,border-color .18s ease}\n.eq-toc li a:hover{color:var(--eqp-accent2);border-bottom-color:var(--eqp-line2)}\n.eq-toc li a:focus-visible{outline:2px solid var(--eqp-accent2);outline-offset:2px;border-radius:3px}\n\n@media(max-width:820px){\n  .eq-toc ul{padding-left:56px}\n  .eq-toc .sec,.eq-toc .sep{display:none}\n  .eq-toc .num{min-width:44px}\n}\n@media(prefers-reduced-motion:reduce){\n  .eq-toc .chev{transition:none!important}\n}\n@media print{\n  .eq-toc details{border-color:#bbb}\n  .eq-toc ul{display:block!important}\n}\n<\/style><style>:root{--eqp-accent:#562b60;--eqp-accent2:#401d48;--eqp-muted:#6b6259;--eqp-dot:#dfc8e4;--eqp-line:#e8e1d5;--eqp-line2:#ebe4d6;--eqp-gold:#a85514;--eqp-body:#4a433c;--eqp-sel:#efe2f2;--eqp-shadow:rgba(64,29,72,.14)}<\/style><style>\n\/* The Values Compass. Every rule is scoped under .eqp and every class starts vc-.\n   House rules: no ampersand, no spaced hyphen, no minus inside calc. *\/\n.eqp{--vc-ink:#2a2622;--vc-lede:#35302a;--vc-mute:#6b6259;--vc-line:#e8e1d5;--vc-paper:#faf8f3;--vc-papere:#ebe4d6;--vc-cream:#fbf4e6;--vc-creame:#eedcb9;--vc-plum:#562b60;--vc-plumd:#401d48;--vc-plumm:#754481;--vc-plume:#dfc8e4;--vc-plumw:#f5edf7;--vc-saff:#a85514;--vc-saffe:#f3ccad;--vc-saffw:#fdf3ea;--vc-care:#6d3576;--vc-care-t:#6d3576;--vc-care-w:#f7eff8;--vc-root:#3e5a1b;--vc-root-t:#3e5a1b;--vc-root-w:#f2f7ee;--vc-free:#167e8f;--vc-free-t:#0e6978;--vc-free-w:#edf6f8;--vc-well:#a46600;--vc-well-t:#8a5600;--vc-well-w:#fcf5e9}\n.eqp [hidden]{display:none!important}\n.eqp .eq-subtitle{text-transform:uppercase}\n.eqp .eqb{color:#a85514;font-weight:700}\n.eqp .eq-ondark .eqb{color:inherit}\n.eqp p a,.eqp .vc-golink{color:var(--vc-saff);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;text-decoration-color:var(--vc-saffe)}\n.eqp p a:hover,.eqp .vc-golink:hover{color:var(--vc-saff);text-decoration-color:var(--vc-saff)}\n.eqp .vc-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}\n\n\/* ---- the short version ---- *\/\n.eqp .vc-sv{box-sizing:border-box;background:var(--vc-plumw);border:1.5px solid var(--vc-plume);border-radius:20px;padding:34px 38px;margin:40px 0 0;font-family:\"Work Sans\",system-ui,sans-serif}\n.eqp .vc-sv .vc-eye{margin:0 0 20px}\n.eqp .vc-sv .rows{list-style:none;margin:0;padding:0;display:grid;gap:20px}\n.eqp .vc-sv .rows li{display:grid;grid-template-columns:8px minmax(0,1fr);gap:16px;align-items:start;margin:0;padding:0}\n.eqp .vc-sv .d{width:8px;height:8px;border-radius:50%;margin-top:.72em}\n.eqp .vc-sv .rows p{margin:0;font-size:clamp(16.5px,calc(13.4px + .62vw),18.5px);line-height:1.55;color:var(--vc-ink)}\n.eqp .vc-sv .rows p a{color:var(--vc-ink)!important;text-decoration:none!important}\n.eqp .vc-sv .rows p a:hover,.vc-sv .rows p a:focus-visible{color:var(--vc-ink)!important;text-decoration:underline!important;text-decoration-thickness:1.5px!important;text-underline-offset:4px;text-decoration-color:var(--vc-plume)!important}.vc-sv .rows p a .go{display:inline-block;margin-left:.45em;font-size:.8em;font-weight:700;letter-spacing:.04em;color:var(--vc-plum);white-space:nowrap;text-decoration:none!important}\n@media(max-width:620px){.eqp .vc-sv{padding:26px 22px}}\n\n\/* ---- the part head: a small compass whose needle turns to a new bearing in each part ---- *\/\n.eqp .vc-ph{display:grid;grid-template-columns:76px minmax(0,1fr);gap:22px;align-items:center;padding:0 0 16px;border-bottom:1.5px solid var(--vc-papere);font-family:\"Work Sans\",system-ui,sans-serif}\n.eqp .vc-ph .cmp{display:block;width:76px;height:76px}\n.eqp .vc-ph .nd{transform:rotate(var(--vc-to,0deg));transform-origin:38px 38px}\n.eqp .vc-ph .lb{margin:0 0 6px;font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--vc-plum);line-height:1.3}\n.eqp .vc-ph h2{font-family:\"Playfair Display\",Georgia,serif!important;font-size:clamp(26px,2.8vw,31px);font-weight:700;line-height:1.2;color:var(--vc-plumd);margin:0}\n.eqp .vc-ph h2:focus{outline:none}\n.eqp .vc-ph .sb{margin:8px 0 0;font-size:16.5px;line-height:1.45;color:#6b5a6e}\n@media(max-width:640px){.eqp .vc-ph{grid-template-columns:56px minmax(0,1fr);gap:16px}.eqp .vc-ph .cmp{width:56px;height:56px}}\n\n\/* ---- the tool figures ---- *\/\n.eqp .vc-fig{box-sizing:border-box;max-width:900px;margin-left:auto;margin-right:auto;font-family:\"Work Sans\",system-ui,sans-serif;color:var(--vc-ink);font-size:17px;line-height:1.5}\n\/* the live theme widens every figure by 4px a side on a phone; this post keeps its figures flush with the text column *\/\n@media(max-width:640px){body.single-post .eqp figure.vc-fig:not(figure figure){margin-left:0!important;margin-right:0!important}}\n.eqp :where(.vc-fig p){margin:0}\n.eqp .vc-fig figcaption{margin:24px 0 0;font-size:15.5px;line-height:1.6;color:var(--vc-mute)}\n.eqp .vc-eye{display:block;margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--vc-plum);line-height:1.4}\n.eqp .vc-eye.sm{margin:0 0 10px}\n.eqp .vc-opt{display:inline;margin-left:6px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--vc-plumm)}\n.eqp h4.vc-h4{font-family:\"Work Sans\",system-ui,sans-serif!important;font-size:19px;font-weight:700;line-height:1.3;color:var(--vc-plum);margin:0 0 8px}\n.eqp .vc-hint{font-size:16.5px;line-height:1.55;color:var(--vc-mute)}\n.eqp .vc-empty{font-size:15.5px;color:var(--vc-mute)}\n.eqp .vc-line{margin:10px 0 0;font-size:15.5px;line-height:1.55;color:var(--vc-mute)}\n.eqp .vc-status{margin:10px 0 0;font-size:15.5px;line-height:1.5;color:var(--vc-mute)}\n.eqp .vc-status:empty{display:none}\n.eqp .vc-golink{display:inline-flex;align-items:center;min-height:44px;min-width:44px}\n\n\/* buttons, links, chips *\/\n.eqp .vc-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:10px 20px;background:#fff;color:var(--vc-plum);border:1.5px solid var(--vc-plum);border-radius:9px;font-family:\"Work Sans\",system-ui,sans-serif;font-size:16px;font-weight:600;line-height:1.3;letter-spacing:normal;text-transform:none;text-align:center;box-shadow:none;cursor:pointer;-webkit-appearance:none;appearance:none}\n.eqp .vc-btn:hover{background:var(--vc-plumw);color:var(--vc-plum)}\n.eqp .vc-btn.solid{background:var(--vc-plum);color:#fff}\n.eqp .vc-btn.solid:hover{background:var(--vc-plumd);color:#fff}\n.eqp .vc-btn:disabled{cursor:default;color:#8b7f8e;border-color:#cbbfce;background:#faf8f3}\n.eqp .vc-btn.solid:disabled{background:#d7cddb;border-color:#d7cddb;color:#fff}\n.eqp .vc-link{box-sizing:border-box;display:inline-flex;align-items:center;min-height:44px;min-width:44px;margin-left:-6px;padding:0 6px;background:none;border:0;border-radius:6px;color:var(--vc-plumm);font-family:\"Work Sans\",system-ui,sans-serif;font-size:15.5px;font-weight:600;line-height:1.3;text-decoration:underline;text-underline-offset:3px;cursor:pointer;-webkit-appearance:none;appearance:none;box-shadow:none}\n.eqp .vc-link:hover{color:var(--vc-plum)}\n.eqp .vc-link:disabled{cursor:default;opacity:.5;text-decoration:none}\n.eqp .vc-chips{display:flex;flex-wrap:wrap;gap:8px}\n.eqp .vc-chip{box-sizing:border-box;display:inline-flex;align-items:center;gap:8px;min-height:44px;min-width:44px;padding:10px 16px;background:#fff;color:var(--vc-plum);border:1.5px solid var(--vc-plumm);border-radius:999px;font-family:\"Work Sans\",system-ui,sans-serif;font-size:16px;font-weight:600;line-height:1.2;letter-spacing:normal;text-transform:none;text-align:left;box-shadow:none;cursor:pointer;-webkit-appearance:none;appearance:none}\n.eqp .vc-chip:hover{background:var(--vc-plumw)}\n.eqp .vc-chip[aria-pressed=\"true\"]{background:var(--vc-plum);border-color:var(--vc-plum);color:#fff}\n.eqp .vc-chip[aria-pressed=\"true\"]::before{content:\"\";flex:none;box-sizing:border-box;width:7px;height:12px;margin:-3px 3px 0 1px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}\n.eqp .vc-chip.static{min-height:0;padding:6px 13px;background:var(--vc-paper);border-color:var(--vc-papere);color:var(--vc-ink);font-size:15px;font-weight:500;cursor:default}\n.eqp .vc-chip.static:hover{background:var(--vc-paper)}\n@media(max-width:640px){.eqp .vc-btn{min-height:52px}.eqp .vc-link{min-height:52px}.eqp .vc-chip{min-height:52px}.eqp .vc-chip.static{min-height:0}.eqp .vc-golink{min-height:52px}}\n\n\/* fields and the phone drop-downs *\/\n.eqp .vc-field{margin:0 0 18px}\n.eqp .vc-fld,.eqp .vc-sel{box-sizing:border-box;display:block;width:100%;min-height:48px;padding:10px 14px;background:#fff;color:var(--vc-ink);border:1.5px solid var(--vc-plumm);border-radius:9px;font-family:\"Work Sans\",system-ui,sans-serif;font-size:17px;line-height:1.3;box-shadow:none;-webkit-appearance:none;appearance:none}\n.eqp .vc-fld::placeholder{color:#6b6259;opacity:1}\n.eqp select.vc-fld,.eqp .vc-sel{padding-right:44px;background:#fff url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='M2 2l6 6 6-6' fill='none' stroke='%23562b60' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\") no-repeat right 14px center}\n.eqp .vc-sel{display:none;border-color:var(--vc-plum)}\n.eqp textarea.vc-fld{min-height:0;resize:vertical;font-size:15px;line-height:1.5}\n@media(max-width:640px){.eqp .vc-sel{display:block;height:52px}.eqp .vc-chipset{display:none}.eqp .vc-fld{min-height:52px}.eqp textarea.vc-fld{min-height:0}.eqp select.vc-fld{height:52px}}\n.eqp .vc-set{margin:16px 0 0}\n.eqp .vc-set .vc-eye{margin-bottom:10px}\n.eqp .vc-tool :focus-visible{outline:3px solid #401d48;outline-offset:2px;box-shadow:0 0 0 2px #fff}\n\n\/* ---- the compass ---- *\/\n.eqp .vc-compass{position:relative;width:100%;max-width:440px;aspect-ratio:1\/1;margin:0 auto}\n.eqp .vc-compass svg{position:absolute;left:0;top:0;width:100%;height:100%;display:block;overflow:visible}\n.eqp .vc-sec[data-act]{cursor:pointer}\n.eqp .vc-badge{position:absolute;box-sizing:border-box;width:30px;height:30px;margin:0;transform:translate(-50%,-50%);border-radius:50%;background:var(--vc-plum);color:#fff;font-size:15px;font-weight:700;line-height:30px;text-align:center;pointer-events:none;box-shadow:0 0 0 2px #fff}\n.vc-compass .vc-pull{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-family:\"Work Sans\",system-ui,sans-serif;font-size:13px;font-weight:600;line-height:1;padding:5px 8px;border:1px solid;pointer-events:none}\n.eqp .vc-badge.own{background:#fff;color:var(--vc-ink);border:2px solid var(--vc-ink);line-height:26px}\n.eqp .vc-qlab{box-sizing:border-box;position:absolute;display:flex;align-items:center;gap:7px;max-width:28%;min-height:44px;margin:0;padding:6px 8px;background:none;border:0;border-radius:10px;font-family:\"Work Sans\",system-ui,sans-serif;font-size:14px;font-weight:700;line-height:1.25;text-transform:lowercase;text-align:left;letter-spacing:normal;box-shadow:none;cursor:default;-webkit-appearance:none;appearance:none}\n.eqp button.vc-qlab{cursor:pointer}\n.eqp button.vc-qlab:hover{background:rgba(86,43,96,.07)}\n.eqp .vc-qlab.on{box-shadow:inset 0 0 0 2px currentColor}\n.eqp .vc-qlab .sw{flex:none;width:12px;height:12px;border-radius:3px}\n.eqp .vc-qlab.c-tl{left:0;top:0}\n.eqp .vc-qlab.c-tr{right:0;top:0;flex-direction:row-reverse;text-align:right}\n.eqp .vc-qlab.c-bl{left:0;bottom:0}\n.eqp .vc-qlab.c-br{right:0;bottom:0;flex-direction:row-reverse;text-align:right}\n.eqp .vc-qgrid{display:none}\n@media(max-width:640px){\n  .eqp .vc-compass{max-width:358px}\n  .eqp .vc-badge{width:28px;height:28px;font-size:15px;line-height:28px}\n  .eqp .vc-badge.own{line-height:24px}\n  .eqp .vc-compass .vc-qlab{display:none}\n  .eqp .vc-qgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 0}\n  .eqp .vc-qgrid .vc-qlab{display:flex;position:static;max-width:none;min-height:52px;padding:6px 12px;border:1.5px solid var(--vc-line);background:#fff;font-size:15px}\n  .eqp .vc-qgrid .vc-qlab.on{border-color:currentColor;box-shadow:none;background:#fff}\n  .eqp .vc-qgrid p.vc-qlab{min-height:0;padding:4px 2px;border:0;background:none}\n}\n.eqp #vcKeyPanel{margin-top:24px}\n.eqp .vc-qname{font-size:23px;font-weight:700;line-height:1.25;margin:0 0 6px}\n.eqp .vc-blurb{font-size:17.5px;line-height:1.5;color:var(--vc-ink);margin:0 0 16px}\n.eqp .vc-across{margin:16px 0 0;font-size:16px;line-height:1.55;color:var(--vc-ink)}\n\n\/* ---- Tool A, the deck ---- *\/\n.eqp #vcDeckBody{max-width:760px;margin:0 auto}\n.eqp .vc-prog{height:4px;margin:0 0 10px;background:var(--vc-plume);border-radius:2px;overflow:hidden}\n.eqp .vc-prog i{display:block;height:100%;width:0;background:var(--vc-plum)}\n.eqp .vc-count{margin:0 0 12px;font-size:15.5px;line-height:1.4;color:var(--vc-mute)}\n.eqp .vc-card{box-sizing:border-box;min-height:196px;padding:28px 30px;background:var(--vc-paper);border:1.5px solid var(--vc-papere);border-left:5px solid var(--vc-plum);border-radius:18px}\n.eqp .vc-qtag{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:13px;font-weight:600;line-height:1.3;text-transform:lowercase}\n.eqp .vc-qtag i{flex:none;width:10px;height:10px;border-radius:50%}\n.eqp .vc-name{margin:0 0 8px;font-size:30px;font-weight:700;line-height:1.2;color:var(--vc-plumd)}\n.eqp .vc-name:focus{outline:none}\n.eqp .vc-mean{margin:0 0 8px;font-size:19px;line-height:1.5;color:var(--vc-ink)}\n.eqp .vc-mean:last-child{margin-bottom:0}\n@media(max-width:640px){.eqp .vc-card{min-height:232px;padding:24px 22px}.eqp .vc-name{font-size:26px}.eqp .vc-mean{font-size:17.5px}}\n.eqp .vc-pilebtns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 0}\n.eqp .vc-pile{justify-content:space-between;width:100%}\n.eqp .vc-pile .n{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:26px;height:26px;padding:0 6px;box-sizing:border-box;border-radius:13px;background:var(--vc-plumw);color:var(--vc-plum);font-size:14px;font-weight:700;line-height:1}\n.eqp .vc-pile:hover .n{background:#fff}\n@media(max-width:640px){.eqp .vc-pilebtns{grid-template-columns:1fr}}\n.eqp .vc-sub{display:flex;gap:14px;margin:6px 0 0}\n.eqp #vcPiles{margin-top:34px}\n.eqp .vc-grp{margin:18px 0 0}\n.eqp .vc-mover{margin:12px 0 0;padding:14px 16px;background:var(--vc-paper);border:1.5px solid var(--vc-papere);border-radius:14px}\n.eqp .vc-mover p{margin:0 0 10px;font-size:16px}\n.eqp .vc-row2{display:flex;flex-wrap:wrap;gap:8px;align-items:center}\n.eqp .vc-own{margin:28px 0 0;background:var(--vc-paper);border:1.5px solid var(--vc-papere);border-radius:14px}\n.eqp .vc-own summary{box-sizing:border-box;display:flex;align-items:center;min-height:48px;padding:0 18px;color:var(--vc-plum);font-size:16px;font-weight:600;cursor:pointer}\n.eqp .vc-own[open] summary{border-bottom:1.5px solid var(--vc-papere)}\n.eqp .vc-ownbody{padding:18px 18px 4px}\n.eqp .vc-own .vc-btn{margin:0 0 18px 18px}\n.eqp .vc-own .vc-status{margin:0 18px 16px}\n.eqp .vc-full{margin:16px 18px;font-size:16px;color:var(--vc-ink)}\n@media(max-width:640px){.eqp .vc-own summary{min-height:52px}}\n.eqp .vc-startover{display:flex;justify-content:flex-end;margin:16px 0 0}\n.eqp .vc-confirm{width:100%;padding:14px 16px;background:var(--vc-paper);border:1.5px solid var(--vc-papere);border-radius:14px}\n.eqp .vc-confirm p{margin:0 0 10px;font-size:16px;line-height:1.5}\n\n\/* ---- Tool B and B2 ---- *\/\n.eqp #vcPickChips{margin:0 0 4px}\n.eqp #vcPickChips .vc-grp:first-child{margin-top:0}\n.eqp #vcCount{margin:16px 0 28px;font-size:16px;color:var(--vc-ink)}\n.eqp ol.vc-legend{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:8px}\n.eqp ol.vc-legend li{display:flex;align-items:center;gap:12px;margin:0;font-size:16.5px;line-height:1.4}\n.eqp .vc-lbadge{flex:none;box-sizing:border-box;width:26px;height:26px;border-radius:50%;background:var(--vc-plum);color:#fff;font-size:14px;font-weight:700;line-height:26px;text-align:center}\n.eqp .vc-lbadge.own{background:#fff;color:var(--vc-ink);border:2px solid var(--vc-ink);line-height:22px}\n.eqp #vcCheck .vc-q,.eqp #vcRoom .vc-q{margin:0 0 14px;font-size:20px;font-weight:600;line-height:1.4;color:var(--vc-plumd)}\n.eqp .vc-row{box-sizing:border-box;margin:0 0 10px;padding:16px 18px;background:#fff;border:1.5px solid var(--vc-line);border-radius:14px}\n.eqp .vc-rowhead{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px}\n.eqp .vc-rname{font-size:18px;font-weight:700;line-height:1.3;color:var(--vc-ink)}\n.eqp .vc-qt{font-size:13px;font-weight:600;line-height:1.3;text-transform:lowercase}\n.eqp .vc-chk{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px}\n.eqp .vc-ans{display:flex;flex-wrap:wrap;gap:8px}\n.eqp .vc-note{grid-column:1\/-1;padding:14px 16px;background:var(--vc-paper);border:1.5px solid var(--vc-papere);border-radius:12px}\n.eqp .vc-note p{margin:0 0 10px;font-size:16px;line-height:1.5}\n@media(max-width:640px){\n  .eqp .vc-chk{display:block}\n  .eqp .vc-ans{display:grid;grid-template-columns:1fr 1fr;margin:12px 0 0}\n  .eqp .vc-ans .vc-chip{justify-content:center;padding:8px 10px;font-size:15.5px;text-align:center}\n  .eqp .vc-note{margin-top:12px}\n}\n\n\/* ---- Tool C, room last week ---- *\/\n.eqp .vc-two{display:block}\n.eqp .vc-two .vc-compass{max-width:440px}\n.eqp .vc-two .vc-eye+.vc-compass{margin-top:6px}\n@media(min-width:900px){\n  .eqp .vc-two{display:grid;grid-template-columns:400px minmax(0,1fr);column-gap:40px;align-items:start}\n  .eqp .vc-two .vc-compass{max-width:400px}\n  .eqp .vc-two figcaption{grid-column:1\/-1}\n}\n.eqp .vc-two>div+div{margin-top:30px}\n@media(min-width:900px){.eqp .vc-two>div+div{margin-top:0}}\n.eqp .vc-rate{display:flex;gap:8px;margin:14px 0 0}\n.eqp .vc-rate button{box-sizing:border-box;flex:none;width:48px;height:48px;padding:0;background:#fff;color:var(--vc-plum);border:1.5px solid var(--vc-plumm);border-radius:10px;font-family:\"Work Sans\",system-ui,sans-serif;font-size:17px;font-weight:600;line-height:1;cursor:pointer;box-shadow:none;-webkit-appearance:none;appearance:none}\n.eqp .vc-rate button:hover{background:var(--vc-plumw)}\n.eqp .vc-rate button[aria-pressed=\"true\"]{background:var(--vc-plum);border-color:var(--vc-plum);color:#fff}\n@media(max-width:640px){.eqp .vc-rate button{width:52px;height:52px}}\n.eqp .vc-ends{display:flex;justify-content:space-between;width:272px;margin:6px 0 0;font-size:13.5px;line-height:1.3;color:var(--vc-mute)}\n@media(max-width:640px){.eqp .vc-ends{width:292px}}\n.eqp .vc-rlab{margin:10px 0 0;font-size:15px;line-height:1.4;color:var(--vc-mute)}\n.eqp .vc-resp{margin:10px 0 0;min-height:24px;font-size:16px;line-height:1.5;color:var(--vc-ink)}\n.eqp .vc-resp:empty{display:none}\n\n\/* ---- Tool D and E ---- *\/\n.eqp .vc-plan{margin:0 0 18px;font-size:17.5px;font-weight:600;line-height:1.45;color:var(--vc-plumd)}\n.eqp .vc-plan:empty{display:none}\n.eqp .vc-block{margin:0 0 24px}\n.eqp .vc-switch{position:relative;display:flex;align-items:center;gap:14px;min-height:52px;cursor:pointer;font-size:17px;font-weight:600;color:var(--vc-ink)}\n.eqp .vc-switch input{position:absolute;left:0;top:0;width:56px;height:52px;margin:0;opacity:0;cursor:pointer}\n.eqp .vc-switch .trk{position:relative;flex:none;width:56px;height:32px;background:#d9d0c1;border:2px solid #b9ad9a;border-radius:999px;box-sizing:border-box}\n.eqp .vc-switch .trk::after{content:\"\";position:absolute;top:2px;left:2px;width:24px;height:24px;background:#fff;border-radius:50%;box-shadow:0 0 0 1px #b9ad9a}\n.eqp .vc-switch input:checked+.trk{background:var(--vc-plum);border-color:var(--vc-plum)}\n.eqp .vc-switch input:checked+.trk::after{transform:translateX(24px);box-shadow:none}\n.eqp .vc-switch input:focus-visible+.trk{outline:3px solid #401d48;outline-offset:3px}\n.eqp .vc-switch input:disabled+.trk{opacity:.5}\n.eqp .vc-switch input:disabled~.tx{color:var(--vc-mute)}\n.eqp .vc-wk-wrap{margin:14px 0 0;max-width:100%}\n@media(max-width:899px){.eqp .vc-wk-wrap{overflow-x:auto}}\n.eqp table.vc-weeks{border-collapse:collapse;font-size:14px;line-height:1.3;margin:0;width:auto}\n.eqp .vc-weeks th,.eqp .vc-weeks td{padding:0;border:0;background:none;font-weight:400}\n.eqp .vc-weeks th.nm{box-sizing:border-box;width:110px;padding:4px 8px 4px 0;text-align:left;font-weight:600;color:var(--vc-ink);overflow-wrap:anywhere}\n.eqp .vc-weeks thead th{box-sizing:border-box;width:28px;padding:0 0 6px;text-align:center;font-size:12px;font-weight:600;line-height:1.15;color:var(--vc-mute)}\n.eqp .vc-weeks thead th.nm{width:110px}\n.eqp .vc-weeks td{box-sizing:border-box;width:28px;height:28px;text-align:center;vertical-align:bottom;border-bottom:1.5px solid var(--vc-line)}\n.eqp .vc-weeks tbody th{border-bottom:1.5px solid var(--vc-line)}\n.eqp .vc-bar{display:inline-block;width:10px;vertical-align:bottom;border-radius:2px 2px 0 0}\n.eqp .vc-bar.z{height:2px!important}\n.eqp .vc-dot{display:inline-block;width:6px;height:6px;margin-bottom:11px;border-radius:50%;background:var(--vc-mute)}\n\n\/* ---- motion: only for people who have not asked for less ---- *\/\n@media(prefers-reduced-motion:no-preference){\n  .eqp .vc-card.vc-in{animation:vc-in 180ms ease-out both}\n  .eqp .vc-needle.vc-grow{animation:vc-grow 260ms ease-out both}\n  .eqp .vc-tip.vc-grow-tip{animation:vc-tipin 260ms ease-out both}\n  .eqp .vc-ph .nd{transition:transform 700ms cubic-bezier(.3,.7,.2,1)}\n  .eqp .vc-chip,.eqp .vc-btn,.eqp .vc-rate button{transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease}\n  @keyframes vc-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}\n  @keyframes vc-grow{from{stroke-dashoffset:var(--vc-len)}to{stroke-dashoffset:0}}\n  @keyframes vc-tipin{from{opacity:0}to{opacity:1}}\n}\n@media(prefers-reduced-motion:reduce){\n  .eqp .vc-card,.eqp .vc-needle,.eqp .vc-tip,.eqp .vc-ph .nd,.eqp .vc-chip,.eqp .vc-btn,.eqp .vc-rate button,.eqp .vc-switch .trk,.eqp .vc-switch .trk::after{transition:none!important;animation:none!important}\n}\n\n\/* ---- print: the controls go, the legends and the copied text stay ---- *\/\n@media print{\n  .eqp .vc-btn,.eqp .vc-link,.eqp .vc-chipset,.eqp .vc-sel,.eqp .vc-pilebtns,.eqp .vc-sub,.eqp .vc-rate,.eqp .vc-ends,.eqp .vc-startover,.eqp .vc-own,.eqp .vc-switch{display:none!important}\n  .eqp .vc-fig{break-inside:avoid}\n}\n\n\/* scroll anchoring off while this tool is on the page: a tap that grows the figure must never move the reader's place, so nothing is allowed to scroll the page behind a tap *\/\nhtml:has(.eqp .vc-tool){overflow-anchor:none}\n\n\/* the part rail (laptop only): its links are as wide as their hidden labels, so on a wide screen the invisible labels sat over the left of the page and caught taps meant for the tool. Only the dots take a tap now. *\/\n#eqp-parts,#eqp-parts a,#eqp-parts .lbl{pointer-events:none}\n#eqp-parts .dot{position:relative;pointer-events:auto}\n#eqp-parts .dot::after{content:\"\";position:absolute;left:-8px;right:-8px;top:-8px;bottom:-8px}\n\n\/* the series line above the title: plain text, no link, as on the Too Afraid to Ask posts *\/\n.eqp .ra-series{display:flex;align-items:center;gap:14px;font-family:\"Work Sans\",sans-serif!important;font-weight:700!important;letter-spacing:.2em!important;text-transform:uppercase}\n.eqp .ra-series::before{content:\"\";flex:0 0 auto;display:block;width:46px;height:2px;background:#bf9bc8}\n@media(max-width:560px){.eqp .ra-series{gap:10px}.eqp .ra-series::before{width:28px}}\n\n\/* part 3 when all forty are in not for me right now: a kind line, a way on, and a way to the help box *\/\n.eqp .vc-hinta{margin:0 0 14px}\n.eqp .vc-hintb{margin:18px 0 0}\n.eqp .vc-hintc{margin:0}\n\n\/* read next, the house card *\/\n.eqp a.wt-next{display:block;text-decoration:none;background:#fff;border:1.5px solid var(--vc-line);border-left:5px solid var(--vc-plum);border-radius:18px;padding:26px 30px;transition:border-color .2s ease,transform .2s ease}\n.eqp a.wt-next:hover{border-color:var(--vc-plume);transform:translateY(-2px)}\n.eqp a.wt-next .eyb{display:block;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--vc-mute);margin:0 0 10px}\n.eqp a.wt-next .ti{display:block;font-size:clamp(21px,2.4vw,25px);font-weight:700;line-height:1.25;color:var(--vc-plum);margin:0 0 9px;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;text-decoration-color:var(--vc-plume)}\n.eqp a.wt-next .wy{display:block;font-size:17px;line-height:1.6;color:var(--vc-mute)}\n.eqp a.wt-next:focus-visible{outline:2px solid var(--vc-plum);outline-offset:3px}\n@media(prefers-reduced-motion:reduce){.eqp a.wt-next{transition:none!important}.eqp a.wt-next:hover{transform:none}}\n@media(max-width:560px){.eqp a.wt-next{padding:22px 20px}}\n<\/style><style>\n\/* ---- phones: tap targets, back to top, small text (30 Sep 2026) ----\n   Everything here sits inside phone or touch media queries, so tablet and\n   laptop layouts are untouched. No colours are changed. *\/\n@media (hover:none),(max-width:640px){\n.eqp button,.eqp summary,.eqp select,.eqp input,.eqp textarea,.eqp label,.eqp a,.eqp [role=button],.eqp [tabindex],#eqp-top{-webkit-tap-highlight-color:rgba(86,43,96,.16)}\n}\n@media (max-width:640px){\n#eqp-top{min-height:44px;padding-top:0;padding-bottom:0;bottom:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));right:14px;right:calc(14px + env(safe-area-inset-right,0px))}\n#eqp-top.eqp-top-off{opacity:0!important;visibility:hidden!important;pointer-events:none!important}\nbody .eqp .eq-toc li{margin:0}\nbody .eqp .eq-toc li a{display:block;box-sizing:border-box;min-height:44px;padding:10px 0}\nbody .eqp .eq-toc summary .ttl,body .eqp .eq-toc .flat .ttl{padding:11px 0;margin:-11px 0}\nbody .eqp p.eq-lastrev{font-size:12px!important}\n}\n@media(max-width:480px){.eqp ol.wp-block-list{padding-left:18px}.eqp ol.wp-block-list li{overflow-wrap:anywhere}}\n@media(max-width:640px){.eqp .eq-ondark{padding:36px 26px!important}}\n<\/style><div id=\"eqp-rail\" aria-hidden=\"true\"><i><\/i><\/div><nav id=\"eqp-parts\" aria-hidden=\"true\"><a href=\"#part-1\" data-i=\"1\" tabindex=\"-1\"><span class=\"dot\"><\/span><span class=\"lbl\">What a value is, and what it isn&#8217;t<\/span><\/a><a href=\"#part-2\" data-i=\"2\" tabindex=\"-1\"><span class=\"dot\"><\/span><span class=\"lbl\">Sort the deck<\/span><\/a><a href=\"#part-3\" data-i=\"3\" tabindex=\"-1\"><span class=\"dot\"><\/span><span class=\"lbl\">Choose your few<\/span><\/a><a href=\"#part-4\" data-i=\"4\" tabindex=\"-1\"><span class=\"dot\"><\/span><span class=\"lbl\">How much room last week gave your values<\/span><\/a><a href=\"#part-5\" data-i=\"5\" tabindex=\"-1\"><span class=\"dot\"><\/span><span class=\"lbl\">One small step, and coming back<\/span><\/a><\/nav><button id=\"eqp-top\" type=\"button\" aria-label=\"Back to the top of the article\"><svg viewBox=\"0 0 12 12\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M6 10.5V2M2 5.5 6 1.5l4 4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>Top<\/button><script>(function(){document.documentElement.setAttribute(\"data-eqp\",\"on\");function init(){var RM=false;if(window.matchMedia){RM=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;}var bar=document.querySelector(\"#eqp-rail i\");var hasST=false;if(window.CSS){if(CSS.supports){hasST=CSS.supports(\"animation-timeline\",\"scroll()\");}}if(bar){if(!hasST){  var tick=function(){    var h=document.documentElement.scrollHeight-window.innerHeight;    var p=h>0?window.scrollY\/h:0;    if(p<0)p=0; if(p>1)p=1;    bar.style.transform=\"scaleX(\"+p+\")\";  };  addEventListener(\"scroll\",tick,{passive:true});addEventListener(\"resize\",tick);tick();}}var rev=document.querySelectorAll(\".eq-rev\");if(RM||!(\"IntersectionObserver\" in window)){  Array.prototype.forEach.call(rev,function(n){n.classList.add(\"in\");});}else{  var ro=new IntersectionObserver(function(es){    es.forEach(function(e){if(e.isIntersecting){e.target.classList.add(\"in\");ro.unobserve(e.target);}});  },{rootMargin:\"0px 0px -8% 0px\",threshold:0.08});  Array.prototype.forEach.call(rev,function(n){ro.observe(n);});}var bands=document.querySelectorAll(\".eq-range .band\");if(RM||!(\"IntersectionObserver\" in window)){  Array.prototype.forEach.call(bands,function(n){n.classList.add(\"in\");});}else{  var bo=new IntersectionObserver(function(es){    es.forEach(function(e){      if(!e.isIntersecting)return;      var d=parseInt(e.target.getAttribute(\"data-d\")||\"0\",10);      setTimeout(function(){e.target.classList.add(\"in\");},d);      bo.unobserve(e.target);    });  },{threshold:0.3});  Array.prototype.forEach.call(bands,function(n){bo.observe(n);});}var figs=document.querySelectorAll(\"[data-eq-anim]\");if(RM||!(\"IntersectionObserver\" in window)){  Array.prototype.forEach.call(figs,function(n){n.classList.add(\"eq-on\");});}else{  var fo=new IntersectionObserver(function(es){    es.forEach(function(e){      var vh=window.innerHeight||document.documentElement.clientHeight;      var b=e.target.getBoundingClientRect();      var tall=b.height>vh*0.6;      var ok=tall?(b.top<vh*0.7?(b.bottom>0):false):(e.intersectionRatio>=0.35);      if(!ok)return;      e.target.classList.add(\"eq-on\");      fo.unobserve(e.target);    });  },{threshold:[0,0.15,0.35,0.6]});  Array.prototype.forEach.call(figs,function(n){fo.observe(n);});}var links=[].slice.call(document.querySelectorAll(\"#eqp-parts a\"));var tops=links.map(function(a){return document.getElementById(a.getAttribute(\"href\").slice(1));});var btn=document.getElementById(\"eqp-top\");var last=-1;var sync=function(){  var y=window.scrollY+window.innerHeight*0.32, cur=-1;  for(var i=0;i<tops.length;i++){ if(tops[i]){ if(tops[i].getBoundingClientRect().top+window.scrollY<=y) cur=i; } }  if(cur!==last){    links.forEach(function(a,i){a.classList.toggle(\"on\",i===cur);});    last=cur;  }  if(btn){    var h=document.documentElement.scrollHeight-window.innerHeight;    var far=false; if(h>0){far=window.scrollY\/h>0.35;}    btn.classList.toggle(\"on\",far);  }};addEventListener(\"scroll\",sync,{passive:true});addEventListener(\"resize\",sync);sync();if(btn)btn.addEventListener(\"click\",function(){  window.scrollTo({top:0,behavior:RM?\"auto\":\"smooth\"});});}if(document.readyState===\"loading\"){document.addEventListener(\"DOMContentLoaded\",init);}else{init();}})();<\/script><script>(function(){\nif(window.eqTopFix){return;}\nwindow.eqTopFix=1;\nvar MQ=null;\nif(window.matchMedia){MQ=window.matchMedia(\"(max-width: 640px)\");}\nvar OFF=\"eqp-top-off\";\nvar SELQ=\".eqp a[href],.eqp button,.eqp input,.eqp select,.eqp textarea,.eqp summary,.eqp label,.eqp [role=button],.eqp [role=tab],.eqp [role=slider],.eqp .gl,.eqp .eq-term,.eqp .hnd\";\nvar busy=false,typing=false;\nfunction phone(){\nif(MQ){return MQ.matches;}\nreturn false;\n}\nfunction field(el){\nif(!el){return false;}\nvar t=el.tagName;\nif(t===\"TEXTAREA\"){return true;}\nif(t===\"SELECT\"){return true;}\nif(el.isContentEditable){return true;}\nif(t===\"INPUT\"){\nvar ty=(el.getAttribute(\"type\")||\"text\").toLowerCase();\nif(ty===\"range\"){return false;}\nif(ty===\"checkbox\"){return false;}\nif(ty===\"radio\"){return false;}\nif(ty===\"button\"){return false;}\nif(ty===\"submit\"){return false;}\nif(ty===\"reset\"){return false;}\nreturn true;\n}\nreturn false;\n}\nfunction tail(){\nvar p=document.querySelector(\".eqp p.eq-lastrev\");\nvar n=null;\nif(p){\nif(p.parentNode){n=p.parentNode.nextElementSibling;}\n}\nwhile(n){\nif(n.tagName!==\"STYLE\"){\nif(n.tagName!==\"SCRIPT\"){break;}\n}\nn=n.nextElementSibling;\n}\nif(n){\nif(n.getBoundingClientRect().top<window.innerHeight){return true;}\n}\nvar f=document.querySelector(\"footer\");\nif(f){\nif(f.getBoundingClientRect().top<window.innerHeight){return true;}\n}\nreturn false;\n}\nfunction blocked(btn){\nvar r=btn.getBoundingClientRect();\nif(r.width<1){return false;}\nvar list=document.querySelectorAll(SELQ),i,q,e,ix,iy;\nfor(i=0;i<list.length;i++){\ne=list[i];\nif(e===btn){continue;}\nif(e.tagName===\"LABEL\"){\nif(!e.querySelector(\"input,select,textarea\")){continue;}\n}\nq=e.getBoundingClientRect();\nif(q.width<1){continue;}\nif(q.height<1){continue;}\nif(q.bottom<r.top){continue;}\nif(q.top>r.bottom){continue;}\nix=Math.min(r.right,q.right)-Math.max(r.left,q.left);\niy=Math.min(r.bottom,q.bottom)-Math.max(r.top,q.top);\nif(ix>1){\nif(iy>1){\nif(window.getComputedStyle(e).visibility!==\"hidden\"){return true;}\n}\n}\n}\nreturn false;\n}\nfunction sync(){\nbusy=false;\nvar b=document.getElementById(\"eqp-top\");\nif(!b){return;}\nvar h=document.documentElement.scrollHeight-window.innerHeight;\nvar far=false;\nif(h>0){far=window.scrollY\/h>0.35;}\nb.classList.toggle(\"on\",far);\nvar off=false;\nif(phone()){\nif(typing){off=true;}\nelse if(tail()){off=true;}\nelse if(blocked(b)){off=true;}\n}\nb.classList.toggle(OFF,off);\n}\nfunction ask(){\nif(busy){return;}\nbusy=true;\nif(window.requestAnimationFrame){window.requestAnimationFrame(sync);}\nelse{window.setTimeout(sync,50);}\n}\nwindow.addEventListener(\"scroll\",ask,{passive:true});\nwindow.addEventListener(\"resize\",ask);\nwindow.addEventListener(\"orientationchange\",ask);\nwindow.addEventListener(\"load\",ask);\ndocument.addEventListener(\"focusin\",function(e){typing=field(e.target);ask();});\ndocument.addEventListener(\"focusout\",function(){typing=false;ask();});\nif(MQ){\nif(MQ.addEventListener){MQ.addEventListener(\"change\",ask);}\nelse if(MQ.addListener){MQ.addListener(ask);}\n}\nask();\n})();<\/script>\n\n\n\n<div class=\"wp-block-group alignfull eqp has-global-padding is-layout-constrained wp-container-core-group-is-layout-69fa9525 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding:0px 22px\">\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n<div style=\"color:#6b6259;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.455), 18px);font-style:normal;font-weight:400;margin-top:54px;margin-bottom:0\" class=\"has-link-color wp-elements-1 wp-block-post-date has-text-color has-work-sans-regular-font-family\"><time datetime=\"2026-10-25T10:30:00+01:00\">25 listopada, 2026<\/time><\/div>\n\n<div style=\"color:#6b6259;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.455), 18px);font-style:normal;font-weight:700;text-transform:uppercase;margin-top:0;margin-bottom:0\" class=\"taxonomy-category has-link-color wp-elements-2 wp-block-post-terms has-text-color has-work-sans-regular-font-family\"><a href=\"https:\/\/equilibriumpsychotherapy.net\/hr\/category\/body-and-mind\/\" rel=\"tag\">Body and Mind<\/a><span class=\"wp-block-post-terms__separator\">, <\/span><a href=\"https:\/\/equilibriumpsychotherapy.net\/hr\/category\/pocket-tools\/\" rel=\"tag\">Pocket Tools<\/a><\/div>\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family ra-series wp-block-paragraph\" style=\"color:#562b60;margin-top:24px;margin-bottom:0;font-size:12.5px;font-weight:700;letter-spacing:0.2em;line-height:1.4\">Pocket Tools<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-text-color has-playfair-display-font-family\" id=\"top\" style=\"color:#2a2622;margin-top:8px;margin-bottom:10px;font-size:clamp(24.034px, 1.502rem + ((1vw - 3.2px) * 1.814), 40px);font-style:normal;font-weight:800;line-height:1.15\">The Values Compass<\/h1>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family eq-subtitle wp-block-paragraph\" style=\"color:#562b60;margin-top:0;margin-bottom:20px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.114), 15px);font-weight:600;letter-spacing:.14em;line-height:1.5\">What matters to you, and which way to walk<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#524a42;margin-top:0;margin-bottom:0;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.55\">Learn what a value is and isn&#8217;t, sort a deck of forty, choose the few that are truly yours, take a kind look at how much room last week gave them, and pick one small step for this week.<\/p>\n\n\n\n<p class=\"eq-credit\" style=\"--eq-credit-ac:#562b60\">Written by <a href=\"\/our-team-ivana\/\" rel=\"author\">Ivana<\/a>, psychologist and psychotherapist<\/p>\n\n\n<\/div>\n\n\n\n<!-- eq-post-top -->\n<div class=\"pt-on\" hidden data-src=\"https:\/\/equilibriumpsychotherapy.net\/wp-content\/uploads\/2026\/10\/values-compass-post-top.jpg\" data-w=\"470\" data-aspect=\"0.551\" data-side=\"right\" data-bleed=\"\"><\/div>\n<script>\n\/* Post tops: turns the post's masthead group into the cream band and adds the\n   drawing beside the words. It runs as soon as the masthead's words are in, before\n   the post's own scripts measure anything (the Plain words switch keeps its place on\n   screen, so a band built later scrolled the page). Anything the page adds to the\n   masthead after this point is moved out below the band once the page has loaded.\n   The post's settings ride on the .pt-on marker, which the site CSS also keys on. *\/\n(function () {\n  function run() {\n    var cfg = document.querySelector('.pt-on');\n    var mh = document.querySelector('.eqp > .wp-block-group');\n    if (!cfg || !mh || mh.classList.contains('pt-band')) return !!mh;\n    var d = cfg.dataset, aspect = +d.aspect;\n    \/\/ Some posts run the story on inside the masthead group: stop at the drop-cap paragraph.\n    var words = document.createElement('div');\n    words.className = 'pt-words';\n    while (mh.firstElementChild && !mh.firstElementChild.matches('.eq-drop')) words.appendChild(mh.firstElementChild);\n    var rest = document.createDocumentFragment();\n    while (mh.firstElementChild) rest.appendChild(mh.firstElementChild);\n    mh.appendChild(words);\n    if (rest.childNodes.length) mh.parentNode.insertBefore(rest, mh.nextSibling);\n    var fig = document.createElement('figure');\n    fig.className = 'pt-art';\n    \/\/ Width and height reserve the drawing's space, so the band never grows when it arrives.\n    fig.innerHTML = '<img alt=\"\" decoding=\"async\" width=\"1000\" height=\"' + Math.round(1000 * aspect) + '\" src=\"' + d.src + '\">';\n    \/\/ A second scene (same size) takes over on hover; a tap switches it on touch screens.\n    if (d.src2) {\n      fig.insertAdjacentHTML('beforeend', '<img alt=\"\" decoding=\"async\" width=\"1000\" height=\"' + Math.round(1000 * aspect) + '\" src=\"' + d.src2 + '\">');\n      fig.classList.add('pt-two');\n      fig.addEventListener('pointerup', function (e) { if (e.pointerType !== 'mouse') fig.classList.toggle('pt-swap'); });\n    }\n    mh.appendChild(fig);\n    mh.classList.add('pt-band', 'pt-' + d.side);\n    (d.bleed || '').split('').forEach(function (e) { mh.classList.add('pt-b' + e); });\n    var hdr = document.querySelector('.wp-site-blocks > header .is-style-header-fixed');\n    function fit() {\n      \/\/ The header lies over the top of the page down to tablet width: clear it.\n      mh.style.setProperty('--pt-hh', hdr && getComputedStyle(hdr).position === 'absolute' ? hdr.offsetHeight + 'px' : '0px');\n      mh.style.setProperty('--pt-lift', '0px');\n      if (getComputedStyle(fig).display === 'none') return;\n      \/\/ At least 70% as tall as the words, at most 44% of the band.\n      var cs = getComputedStyle(mh), room = mh.clientWidth - parseFloat(cs.paddingLeft) - parseFloat(cs.paddingRight), w = +d.w;\n      for (var i = 0; i < 2; i++) {\n        w = Math.min(Math.max(+d.w, 0.7 * words.offsetHeight \/ aspect), room * 0.44);\n        mh.style.setProperty('--pt-w', Math.round(w) + 'px');\n      }\n      \/\/ Optical centre: of the cream left beside the words, 40% goes above and 60% below. Measured on the\n      \/\/ drawing's row, not the band: story paragraphs still loading into the masthead sit below it for a moment.\n      var fs = getComputedStyle(fig);\n      var slack = fig.offsetHeight + parseFloat(fs.marginTop) + parseFloat(fs.marginBottom) - words.offsetHeight;\n      mh.style.setProperty('--pt-lift', Math.max(0, Math.round(slack * 0.1)) + 'px');\n    }\n    fit();\n    addEventListener('resize', fit);\n    \/\/ The text grows when the site's fonts arrive: measure again then.\n    if (document.fonts) document.fonts.ready.then(fit);\n    addEventListener('load', fit);\n    function tidy() {\n      var after = document.createDocumentFragment();\n      while (fig.nextSibling) after.appendChild(fig.nextSibling);\n      mh.parentNode.insertBefore(after, mh.nextSibling);\n      \/\/ The part dots sit at the left edge, over a drawing there: they fade in once the band is behind them.\n      var rail = document.getElementById('eqp-parts');\n      if (!rail) return;\n      function dots() { rail.classList.toggle('pt-hide', mh.getBoundingClientRect().bottom > rail.getBoundingClientRect().top); }\n      addEventListener('scroll', dots, { passive: true });\n      addEventListener('resize', dots);\n      dots();\n    }\n    if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', tidy); else tidy();\n    return true;\n  }\n  if (!run()) document.addEventListener('DOMContentLoaded', run);\n})();\n<\/script>\n<!-- \/eq-post-top -->\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family eq-drop wp-block-paragraph\" style=\"color:#35302a;margin-top:46px;margin-bottom:26px;font-size:clamp(14.642px, 0.915rem + ((1vw - 3.2px) * 0.836), 22px);line-height:1.62\">What matters to you, really? Not what you think should matter, and not what matters most to the people around you, but what you&#8217;d want your life to keep heading toward. Psychologists call those things values, and the handful that matter most to you are often called your core values. Knowing yours won&#8217;t make the hard parts of life go away, but it gives you something to steer by when you don&#8217;t know which way to turn.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">I&#8217;m bringing you one of my favorite techniques from ACT, aka acceptance and commitment therapy, and you can use it right here, on this page. The tool itself takes no longer than ten minutes the first time, and a couple of minutes when you come back. There&#8217;s no score at the end, and nobody is grading you!<\/p>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<section class=\"vc-sv\" aria-labelledby=\"vc-sv-h\"><p class=\"vc-eye\" id=\"vc-sv-h\">Before you set out<\/p><ul class=\"rows\"><li><span class=\"d\" aria-hidden=\"true\" style=\"background:#6d3576\"><\/span><p><a href=\"#part-1\">A value is a direction you choose to keep walking in, like being honest or staying close to family, not a goal you tick off, a rule you follow to keep others happy, or a feeling you wait for. Values fall into four quarters, and opposite ones pull against each other.<span class=\"go\">part 1 \u203a<\/span><\/a><\/p><\/li><li><span class=\"d\" aria-hidden=\"true\" style=\"background:#3e5a1b\"><\/span><p><a href=\"#part-2\">Sorting forty cards into three piles lets you see what matters to you right now, and choosing duty, faith or family counts just as much as choosing freedom or adventure.<span class=\"go\">part 2 \u203a<\/span><\/a><\/p><\/li><li><span class=\"d\" aria-hidden=\"true\" style=\"background:#167e8f\"><\/span><p><a href=\"#part-3\">Three to five values are enough to steer by, and a good test of whether one is really yours is whether it would still matter if no one ever knew.<span class=\"go\">part 3 \u203a<\/span><\/a><\/p><\/li><li><span class=\"d\" aria-hidden=\"true\" style=\"background:#a46600\"><\/span><p><a href=\"#part-4\"><strong class=\"eqb\">Living your values matters more than which ones you pick, and a hard week shrinks the room for all of them,<\/strong> so a short needle tells you about the week, not about you.<span class=\"go\">part 4 \u203a<\/span><\/a><\/p><\/li><li><span class=\"d\" aria-hidden=\"true\" style=\"background:#562b60\"><\/span><p><a href=\"#part-5\">One small step with a when and a where beats a big plan, and coming back each week, then re-sorting after big changes, keeps the compass pointing somewhere true.<span class=\"go\">part 5 \u203a<\/span><\/a><\/p><\/li><\/ul><\/section>\n<div class=\"vc-go\" id=\"vcGo\"><p id=\"vcGoT\">Short on time? Start with the cards. The rest of the page is here whenever you want it.<\/p><a class=\"vc-btn solid\" id=\"vcGoBtn\" href=\"#vcDeck\">Start sorting<\/a><\/div><style>.eqp .vc-back{box-sizing:border-box;max-width:840px;margin:14px auto 0;font-family:\"Work Sans\",system-ui,sans-serif;font-size:17px;line-height:1.5;color:var(--vc-mute)}<\/style><p class=\"vc-back\">Coming back? Go straight to <a class=\"vc-golink\" href=\"#vcRoom\">part 4<\/a>.<\/p>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div class=\"wp-block-group has-background has-global-padding is-layout-constrained wp-container-core-group-is-layout-02683cec wp-block-group-is-layout-constrained\" style=\"border-color:#e8e1d5;border-width:1.5px;border-style:solid;border-radius:22px;background-color:#faf8f3;margin-top:28px;margin-bottom:20px;padding:30px 34px\">\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#6b6259;margin-top:0;margin-bottom:22px;font-size:12px;font-weight:700;letter-spacing:0.16em;line-height:1.4\">THE FIVE BEARINGS<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\">\n<div class=\"eq-toc\"><details><summary><svg class=\"chev\" viewBox=\"0 0 12 12\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 2l4 4-4 4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"num\">01<\/span><a class=\"ttl\" href=\"#part-1\">What a value is, and what it isn&#8217;t<\/a><span class=\"cnt\"><span class=\"sec\">3 sections<\/span><span class=\"sep\"> &middot; <\/span>4 min<\/span><\/summary><ul><li><a href=\"#a-direction-not-a-destination\">A direction, not a destination<\/a><\/li><li><a href=\"#four-things-values-get-confused-with\">Four things values get confused with<\/a><\/li><li><a href=\"#the-four-quarters-of-the-compass\">The four quarters of the compass<\/a><\/li><\/ul><\/details><details><summary><svg class=\"chev\" viewBox=\"0 0 12 12\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 2l4 4-4 4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"num\">02<\/span><a class=\"ttl\" href=\"#part-2\">Sort the deck<\/a><span class=\"cnt\"><span class=\"sec\">1 section<\/span><span class=\"sep\"> &middot; <\/span>6 min<\/span><\/summary><ul><li><a href=\"#why-the-cards-are-worded-the-way-they-are\">Why the cards are worded the way they are<\/a><\/li><\/ul><\/details><details><summary><svg class=\"chev\" viewBox=\"0 0 12 12\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 2l4 4-4 4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"num\">03<\/span><a class=\"ttl\" href=\"#part-3\">Choose your few<\/a><span class=\"cnt\"><span class=\"sec\">1 section<\/span><span class=\"sep\"> &middot; <\/span>4 min<\/span><\/summary><ul><li><a href=\"#is-it-yours-or-is-it-a-should\">Is it yours, or is it a should?<\/a><\/li><\/ul><\/details><details><summary><svg class=\"chev\" viewBox=\"0 0 12 12\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 2l4 4-4 4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"num\">04<\/span><a class=\"ttl\" href=\"#part-4\">How much room last week gave your values<\/a><span class=\"cnt\"><span class=\"sec\">2 sections<\/span><span class=\"sep\"> &middot; <\/span>5 min<\/span><\/summary><ul><li><a href=\"#what-got-in-the-way\">What got in the way<\/a><\/li><li><a href=\"#being-kind-about-the-gap\">Being kind about the gap<\/a><\/li><\/ul><\/details><details><summary><svg class=\"chev\" viewBox=\"0 0 12 12\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 2l4 4-4 4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"num\">05<\/span><a class=\"ttl\" href=\"#part-5\">One small step, and coming back<\/a><span class=\"cnt\"><span class=\"sec\">3 sections<\/span><span class=\"sep\"> &middot; <\/span>4 min<\/span><\/summary><ul><li><a href=\"#toward-or-away\">Toward or away<\/a><\/li><li><a href=\"#coming-back-to-it\">Coming back to it<\/a><\/li><li><a href=\"#keep-it-or-copy-it\">Keep it, or copy it<\/a><\/li><\/ul><\/details><\/div>\n<\/div>\n\n\n<\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:92px;margin-bottom:34px\"><div class=\"vc-ph\"><svg class=\"cmp\" viewBox=\"0 0 76 76\" aria-hidden=\"true\" focusable=\"false\"><circle cx=\"38\" cy=\"38\" r=\"34\" fill=\"#ffffff\" stroke=\"#dfc8e4\" stroke-width=\"3\"\/><line x1=\"38.0\" y1=\"4.0\" x2=\"38.0\" y2=\"9.5\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"72.0\" y1=\"38.0\" x2=\"66.5\" y2=\"38.0\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"38.0\" y1=\"72.0\" x2=\"38.0\" y2=\"66.5\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"4.0\" y1=\"38.0\" x2=\"9.5\" y2=\"38.0\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><g class=\"nd\" data-to=\"0\" style=\"--vc-to:0deg\"><polygon points=\"38,9 42,38 34,38\" fill=\"#a85514\"\/><polygon points=\"38,67 34,38 42,38\" fill=\"#562b60\"\/><\/g><circle cx=\"38\" cy=\"38\" r=\"3.2\" fill=\"#401d48\"\/><\/svg><div class=\"tx\"><p class=\"lb\">Bearing 1 of 5<\/p><h2 id=\"part-1\">What a value is, and what it isn&#8217;t<\/h2><p class=\"sb\">A direction you keep walking in, and the four quarters it can point to<\/p><\/div><\/div><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"a-direction-not-a-destination\" style=\"color:#562b60;margin-top:80px;margin-bottom:20px;font-size:clamp(16.293px, 1.018rem + ((1vw - 3.2px) * 0.989), 25px);font-style:normal;font-weight:700;line-height:1.28\">A direction, not a destination<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Think of the difference between being a good friend and going to your friend&#8217;s birthday dinner on Saturday. You can go to the dinner, and then it&#8217;s done. You can&#8217;t finish being a good friend, because tomorrow there&#8217;s another chance to show up for them, and the day after that another one.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">That&#8217;s what a value is: a direction you choose to keep walking in, never a place you arrive. In acceptance and commitment therapy, or ACT, values are the qualities you want your actions to have, meaning how you want to treat people, what you want to stand for, and who you want to be over time. <strong class=\"eqb\">They&#8217;re about what you do, not what you get.<\/strong><\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">That&#8217;s also why you can live a value on a terrible day. Honesty fits into one sentence. Kindness fits into a text message. Courage fits into the one phone call you&#8217;ve been putting off for a month. You don&#8217;t need to feel ready first, and you don&#8217;t need the rest of your life sorted out before you start.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"four-things-values-get-confused-with\" style=\"color:#562b60;margin-top:80px;margin-bottom:20px;font-size:clamp(16.293px, 1.018rem + ((1vw - 3.2px) * 0.989), 25px);font-style:normal;font-weight:700;line-height:1.28\">Four things values get confused with<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Values get mixed up with four other things, and each mix-up makes them a little harder to live by.<\/p>\n\n\n\n<ul class=\"wp-block-list has-text-color has-work-sans-regular-font-family\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.7\">\n<li>A goal can be finished. Running a race is a goal, and caring for your body is the value it serves. When the race is over, the value is still there, pointing somewhere new.<\/li>\n\n\n\n<li>A rule comes with pressure. &#8220;I should call my mother every Sunday&#8221; is a rule. Staying close to her is the value, and on a busy week it might mean a voice message instead of a call.<\/li>\n\n\n\n<li>A feeling isn&#8217;t something you can choose. You can&#8217;t decide to feel confident, but you can choose to act with courage while you still feel unsure.<\/li>\n\n\n\n<li>Something you want from other people, like being admired or loved, depends on them and on luck. A value describes your part of it: treating people with respect, or being someone you can respect.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">One quick question spots a goal: can you tick it off as done? Then it&#8217;s a goal, and it&#8217;s worth asking what it&#8217;s for. Part 3 has a second question, for telling a value that&#8217;s yours from a should.<\/p>\n\n\n\n<style>.eqp .eq-ff{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#fff;border:1.5px dashed #f3ccad;border-radius:18px;padding:20px 24px;margin:6px 0 34px}.eqp .eq-ff .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#f5edf7;color:#562b60;display:flex;align-items:center;justify-content:center}.eqp .eq-ff .mk svg{width:22px;height:22px}.eqp .eq-ff .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#562b60;margin:2px 0 4px}.eqp .eq-ff .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(14px,calc(10.2px + .62vw),18px);line-height:1.6;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-ff{grid-template-columns:minmax(0,1fr);padding:18px}.eqp .eq-ff .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-ff\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3.5l1.9 5.1 5.1 1.9-5.1 1.9L12 17.5l-1.9-5.1-5.1-1.9 5.1-1.9zM18.5 15.5l.8 2 2 .8-2 .8-.8 2-.8-2-2-.8 2-.8z\"\/><\/svg><\/span><p class=\"k\">Worth noting<\/p><p class=\"t\">In one study, students who added a short online values exercise to their goal setting got better grades the following semester. Goal setting on its own made no difference.<\/p><\/aside>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"the-four-quarters-of-the-compass\" style=\"color:#562b60;margin-top:80px;margin-bottom:20px;font-size:clamp(16.293px, 1.018rem + ((1vw - 3.2px) * 0.989), 25px);font-style:normal;font-weight:700;line-height:1.28\">The four quarters of the compass<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Here&#8217;s something I find fascinating: all over the world, people&#8217;s values arrange themselves into the same shape.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">The psychologist Shalom Schwartz and his colleagues asked people in more than 80 countries what mattered to them, and the answers kept falling into the same circle. Values that sit next to each other on it tend to get along. Values on opposite sides pull against each other.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Two tensions run across that circle. One is between caring for others and doing well for yourself. The other is between freedom and change on one side, and tradition, safety and belonging on the other. Those two lines split the circle into four quarters, and they&#8217;re the four quarters of this compass: caring and fairness, roots and belonging, freedom and discovery, and doing well and enjoying.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Because opposite quarters pull against each other, <strong class=\"eqb\">nobody lives every value fully at once.<\/strong> Time runs out, and a month spent chasing adventure leaves less of it for keeping traditions alive. Values work that way for everyone, and it matters later, when you look at the gap between what matters to you and what last week actually held.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">The circle says something hopeful about people, too. Across countries, people agree about what matters more than they differ, and most of the differences sit between individuals rather than between nations. So there&#8217;s no right list for where you come from. Choosing duty to your family, your faith or keeping the peace is just as much a valued choice as choosing adventure or independence. Your list doesn&#8217;t have to look like anyone else&#8217;s!!<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Tap a quarter of the compass to see the ten cards that sit in it, and the quarter it pulls against.<\/p>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:30px;margin-bottom:46px\"><figure class=\"vc-fig vc-tool\" id=\"vcKey\"><div class=\"vc-compass\" data-mode=\"key\"><\/div><div class=\"vc-qgrid\"><\/div><div class=\"vc-keypanel\" id=\"vcKeyPanel\"><\/div><figcaption>The four quarters of the compass. Values next to each other tend to get along, and values on opposite sides pull against each other: caring and fairness sits across from doing well and enjoying, and roots and belonging sits across from freedom and discovery.<\/figcaption><\/figure><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<style>.eqp .eq-ff{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#fff;border:1.5px dashed #f3ccad;border-radius:18px;padding:20px 24px;margin:6px 0 34px}.eqp .eq-ff .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#f5edf7;color:#562b60;display:flex;align-items:center;justify-content:center}.eqp .eq-ff .mk svg{width:22px;height:22px}.eqp .eq-ff .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#562b60;margin:2px 0 4px}.eqp .eq-ff .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(14px,calc(10.2px + .62vw),18px);line-height:1.6;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-ff{grid-template-columns:minmax(0,1fr);padding:18px}.eqp .eq-ff .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-ff\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3.5l1.9 5.1 5.1 1.9-5.1 1.9L12 17.5l-1.9-5.1-5.1-1.9 5.1-1.9zM18.5 15.5l.8 2 2 .8-2 .8-.8 2-.8-2-2-.8 2-.8z\"\/><\/svg><\/span><p class=\"k\">Fun fact<\/p><p class=\"t\">Across more than 50 countries, caring for the people close to you comes out as the most important value on average. Having power over others comes near the bottom.<\/p><\/aside>\n\n\n\n<style>.eqp .eq-kp{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#f5edf7;border:0;border-left:4px solid #562b60;border-radius:4px 18px 18px 4px;padding:20px 26px;margin:6px 0 34px}.eqp .eq-kp .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#fff;color:#562b60;display:flex;align-items:center;justify-content:center}.eqp .eq-kp .mk svg{width:21px;height:21px}.eqp .eq-kp .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#562b60;margin:2px 0 4px}.eqp .eq-kp .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(15px,calc(10.6px + .72vw),19px);font-weight:500;line-height:1.55;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-kp{grid-template-columns:minmax(0,1fr);padding:18px 20px}.eqp .eq-kp .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-kp\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2.8l2.2 6.9 6.9 2.3-6.9 2.2L12 21.2l-2.2-7-6.9-2.2 6.9-2.3z\"\/><\/svg><\/span><p class=\"k\">True north<\/p><p class=\"t\">A value is a direction you choose, not a place you arrive. You can&#8217;t finish it, and you can always take a small step toward it, even on a bad day.<\/p><\/aside>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:92px;margin-bottom:34px\"><div class=\"vc-ph\"><svg class=\"cmp\" viewBox=\"0 0 76 76\" aria-hidden=\"true\" focusable=\"false\"><circle cx=\"38\" cy=\"38\" r=\"34\" fill=\"#ffffff\" stroke=\"#dfc8e4\" stroke-width=\"3\"\/><line x1=\"38.0\" y1=\"4.0\" x2=\"38.0\" y2=\"9.5\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"72.0\" y1=\"38.0\" x2=\"66.5\" y2=\"38.0\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"38.0\" y1=\"72.0\" x2=\"38.0\" y2=\"66.5\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"4.0\" y1=\"38.0\" x2=\"9.5\" y2=\"38.0\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><g class=\"nd\" data-to=\"72\" style=\"--vc-to:72deg\"><polygon points=\"38,9 42,38 34,38\" fill=\"#a85514\"\/><polygon points=\"38,67 34,38 42,38\" fill=\"#562b60\"\/><\/g><circle cx=\"38\" cy=\"38\" r=\"3.2\" fill=\"#401d48\"\/><\/svg><div class=\"tx\"><p class=\"lb\">Bearing 2 of 5<\/p><h2 id=\"part-2\">Sort the deck<\/h2><p class=\"sb\">Forty cards, three piles, and no wrong answers<\/p><\/div><\/div><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Now it&#8217;s your turn. Each card names a value and says what living it might look like, in the first person. Put each one in the pile that feels true for you today: matters a lot, matters some, or not for me right now.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Go with your first reaction. If you catch yourself wondering which pile you&#8217;re supposed to pick, that&#8217;s worth noticing, and <strong class=\"eqb\">go with the one that feels true rather than the one that sounds good.<\/strong> Nothing is locked in. When you&#8217;ve been through the deck, you can move any card to another pile.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">The last pile is called &#8220;not for me right now&#8221; on purpose. A card that doesn&#8217;t speak to you today might next year. Putting it there isn&#8217;t a judgment of the value, or of anyone who holds it.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">If something that matters to you is missing, write your own. You can add up to three.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Tap the pile each card belongs in. Back undoes the last card, and Skip moves a card to the end of the deck. Nothing you sort is saved or sent anywhere unless you choose to keep it on this device in part 5.<\/p>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:30px;margin-bottom:46px\"><figure class=\"vc-fig vc-tool\" id=\"vcDeck\"><p class=\"vc-eye\">The deck<\/p><div id=\"vcDeckBody\"><\/div><div id=\"vcPiles\" hidden><\/div><details class=\"vc-own\" id=\"vcOwn\"><summary>Missing a value? Write your own<\/summary><\/details><div class=\"vc-startover\" id=\"vcStartOver\"><\/div><\/figure><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<style>.eqp .eq-ff{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#fff;border:1.5px dashed #f3ccad;border-radius:18px;padding:20px 24px;margin:6px 0 34px}.eqp .eq-ff .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#f5edf7;color:#562b60;display:flex;align-items:center;justify-content:center}.eqp .eq-ff .mk svg{width:22px;height:22px}.eqp .eq-ff .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#562b60;margin:2px 0 4px}.eqp .eq-ff .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(14px,calc(10.2px + .62vw),18px);line-height:1.6;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-ff{grid-template-columns:minmax(0,1fr);padding:18px}.eqp .eq-ff .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-ff\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3.5l1.9 5.1 5.1 1.9-5.1 1.9L12 17.5l-1.9-5.1-5.1-1.9 5.1-1.9zM18.5 15.5l.8 2 2 .8-2 .8-.8 2-.8-2-2-.8 2-.8z\"\/><\/svg><\/span><p class=\"k\">Worth remembering<\/p><p class=\"t\">The more big life changes people go through, the more their values shift. Age on its own makes little difference.<\/p><\/aside>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"why-the-cards-are-worded-the-way-they-are\" style=\"color:#562b60;margin-top:80px;margin-bottom:20px;font-size:clamp(16.293px, 1.018rem + ((1vw - 3.2px) * 0.989), 25px);font-style:normal;font-weight:700;line-height:1.28\">Why the cards are worded the way they are<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Every card is written as something you do, in the first person, because that&#8217;s the part you can choose. You might have expected cards like being loved, being attractive or having plenty of money. Those depend on other people and on luck, so the deck offers the value hiding inside each of them instead. Being loved became closeness, which is about sharing your inner world and making room for someone else&#8217;s. Having money became providing, which is about making sure the people who rely on you are secure.<\/p>\n\n\n\n<style>.eqp .vc-all{margin:6px 0 34px;font-family:\"Work Sans\",system-ui,sans-serif;color:var(--vc-ink)}.eqp .vc-all .vc-eye{margin:0 0 6px}.eqp .vc-all .vc-ah{display:flex;align-items:center;gap:10px;margin:28px 0 14px;padding:18px 0 0;border-top:1.5px solid var(--vc-papere);font-size:19px;line-height:1.3;text-transform:lowercase}.eqp .vc-all .vc-eye+.vc-ah{margin-top:14px;padding-top:0;border-top:0}.eqp .vc-all .vc-ah i{flex:none;width:10px;height:10px;border-radius:50%;background:currentColor}.eqp .vc-all .q-care{color:var(--vc-care-t)}.eqp .vc-all .q-root{color:var(--vc-root-t)}.eqp .vc-all .q-free{color:var(--vc-free-t)}.eqp .vc-all .q-well{color:var(--vc-well-t)}.eqp .vc-all .vc-al{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 40px}.eqp .vc-all .vc-al li{margin:0;padding:0}.eqp .vc-all .vc-an{display:block;margin:0 0 2px;font-size:17px;font-weight:600;line-height:1.35;color:var(--vc-ink)}.eqp .vc-all .vc-at{display:block;font-size:16px;line-height:1.55;color:var(--vc-mute)}@media(max-width:640px){.eqp .vc-all .vc-al{grid-template-columns:minmax(0,1fr);gap:14px}}<\/style><details class=\"vc-allx\"><summary>See all forty cards, by quarter<\/summary><section class=\"vc-all\" aria-labelledby=\"vc-all-h\"><p class=\"vc-eye\" id=\"vc-all-h\">All forty cards, by quarter<\/p>\n<h4 class=\"vc-h4 vc-ah q-care\"><i aria-hidden=\"true\"><\/i>caring and fairness<\/h4>\n<ul class=\"vc-al\"><li><span class=\"vc-an\">kindness<\/span><span class=\"vc-at\">I treat people gently, and I count myself as one of those people.<\/span><\/li><li><span class=\"vc-an\">caring<\/span><span class=\"vc-at\">I look after people who need me, like a child, a parent getting older or a friend who&#8217;s ill.<\/span><\/li><li><span class=\"vc-an\">closeness<\/span><span class=\"vc-at\">I share my inner world with the people I love, and I listen when they share theirs.<\/span><\/li><li><span class=\"vc-an\">loyalty<\/span><span class=\"vc-at\">I stand by my people when things get hard.<\/span><\/li><li><span class=\"vc-an\">honesty<\/span><span class=\"vc-at\">I tell the truth, and I think about how it will land.<\/span><\/li><li><span class=\"vc-an\">forgiveness<\/span><span class=\"vc-at\">I let go of grudges when I&#8217;m ready, including the ones I hold against myself.<\/span><\/li><li><span class=\"vc-an\">generosity<\/span><span class=\"vc-at\">I share what I have, whether that&#8217;s time, attention, food, money or skills.<\/span><\/li><li><span class=\"vc-an\">gratitude<\/span><span class=\"vc-at\">I notice what others give me, and I say thank you.<\/span><\/li><li><span class=\"vc-an\">fairness<\/span><span class=\"vc-at\">I play fair, and I speak up when something is unjust.<\/span><\/li><li><span class=\"vc-an\">care for the earth<\/span><span class=\"vc-at\">I look after the land, water and animals, in what I buy, use and throw away.<\/span><\/li><\/ul>\n<h4 class=\"vc-h4 vc-ah q-root\"><i aria-hidden=\"true\"><\/i>roots and belonging<\/h4>\n<ul class=\"vc-al\"><li><span class=\"vc-an\">family<\/span><span class=\"vc-at\">I make time and space for the people I call family, by birth or by choice.<\/span><\/li><li><span class=\"vc-an\">belonging<\/span><span class=\"vc-at\">I show up for the groups I&#8217;m part of, like a team, a neighborhood or a club.<\/span><\/li><li><span class=\"vc-an\">heritage<\/span><span class=\"vc-at\">I keep alive the language, customs and stories I come from.<\/span><\/li><li><span class=\"vc-an\">faith<\/span><span class=\"vc-at\">I live by my faith or spiritual practice, in whatever form it takes for me.<\/span><\/li><li><span class=\"vc-an\">respect<\/span><span class=\"vc-at\">I treat everyone with dignity, from my elders to people I disagree with.<\/span><\/li><li><span class=\"vc-an\">harmony<\/span><span class=\"vc-at\">I keep the peace, and I think about how what I do affects the people around me.<\/span><\/li><li><span class=\"vc-an\">duty<\/span><span class=\"vc-at\">I keep my promises and do my part, for my family, my community or my work.<\/span><\/li><li><span class=\"vc-an\">safety<\/span><span class=\"vc-at\">I keep myself and the people close to me safe, and I build a life that feels steady.<\/span><\/li><li><span class=\"vc-an\">self-discipline<\/span><span class=\"vc-at\">I do what I decided to do, even when I don&#8217;t feel like it.<\/span><\/li><li><span class=\"vc-an\">balance<\/span><span class=\"vc-at\">I aim for enough, not too much, in work, spending and screen time.<\/span><\/li><\/ul>\n<h4 class=\"vc-h4 vc-ah q-free\"><i aria-hidden=\"true\"><\/i>freedom and discovery<\/h4>\n<ul class=\"vc-al\"><li><span class=\"vc-an\">curiosity<\/span><span class=\"vc-at\">I ask questions and follow what interests me.<\/span><\/li><li><span class=\"vc-an\">learning<\/span><span class=\"vc-at\">I keep studying and picking up new skills, in a classroom or out of one.<\/span><\/li><li><span class=\"vc-an\">creativity<\/span><span class=\"vc-at\">I make things, ideas or solutions that weren&#8217;t there before.<\/span><\/li><li><span class=\"vc-an\">freedom<\/span><span class=\"vc-at\">I make my own choices about how I live and how I spend my time.<\/span><\/li><li><span class=\"vc-an\">being myself<\/span><span class=\"vc-at\">I let people see the real me, even when it isn&#8217;t the popular thing.<\/span><\/li><li><span class=\"vc-an\">adventure<\/span><span class=\"vc-at\">I try new places, foods, people and experiences.<\/span><\/li><li><span class=\"vc-an\">courage<\/span><span class=\"vc-at\">I do the hard or frightening thing when it matters.<\/span><\/li><li><span class=\"vc-an\">awe<\/span><span class=\"vc-at\">I make time for things that make me feel small in a good way, like nature, music or the sky.<\/span><\/li><li><span class=\"vc-an\">meaning<\/span><span class=\"vc-at\">I spend my time on things that connect me to something bigger than myself.<\/span><\/li><li><span class=\"vc-an\">self-respect<\/span><span class=\"vc-at\">I take my own needs and limits seriously, and I&#8217;m willing to say no.<\/span><\/li><\/ul>\n<h4 class=\"vc-h4 vc-ah q-well\"><i aria-hidden=\"true\"><\/i>doing well and enjoying<\/h4>\n<ul class=\"vc-al\"><li><span class=\"vc-an\">doing things well<\/span><span class=\"vc-at\">I put real care and effort into my work or my craft.<\/span><\/li><li><span class=\"vc-an\">achievement<\/span><span class=\"vc-at\">I set myself challenges and see them through.<\/span><\/li><li><span class=\"vc-an\">growth<\/span><span class=\"vc-at\">I keep stretching, and I learn from what goes wrong.<\/span><\/li><li><span class=\"vc-an\">providing<\/span><span class=\"vc-at\">I earn and manage money well, so my household has what it needs.<\/span><\/li><li><span class=\"vc-an\">leadership<\/span><span class=\"vc-at\">I step up and help a group find its way when that&#8217;s needed.<\/span><\/li><li><span class=\"vc-an\">good name<\/span><span class=\"vc-at\">I live in a way that does my family and community proud, seen or unseen.<\/span><\/li><li><span class=\"vc-an\">health<\/span><span class=\"vc-at\">I give my body the movement, sleep and food it needs.<\/span><\/li><li><span class=\"vc-an\">enjoyment<\/span><span class=\"vc-at\">I let myself enjoy the good things, like a long meal, a favorite song or a slow morning.<\/span><\/li><li><span class=\"vc-an\">playfulness<\/span><span class=\"vc-at\">I play, I get silly, and I look for things to laugh about.<\/span><\/li><li><span class=\"vc-an\">being present<\/span><span class=\"vc-at\">When I&#8217;m with someone or doing something, I try to really be there.<\/span><\/li><\/ul>\n<\/section><\/details>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">The cards are also written to work wherever you live, whatever you believe and whoever you love. Faith means any faith or spiritual practice, or the search for one. Family means the people you call family, by birth or by choice. Respect includes your elders, because for much of the world that&#8217;s where respect starts.<\/p>\n\n\n\n<style>.eqp .eq-kp{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#f5edf7;border:0;border-left:4px solid #562b60;border-radius:4px 18px 18px 4px;padding:20px 26px;margin:6px 0 34px}.eqp .eq-kp .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#fff;color:#562b60;display:flex;align-items:center;justify-content:center}.eqp .eq-kp .mk svg{width:21px;height:21px}.eqp .eq-kp .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#562b60;margin:2px 0 4px}.eqp .eq-kp .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(15px,calc(10.6px + .72vw),19px);font-weight:500;line-height:1.55;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-kp{grid-template-columns:minmax(0,1fr);padding:18px 20px}.eqp .eq-kp .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-kp\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2.8l2.2 6.9 6.9 2.3-6.9 2.2L12 21.2l-2.2-7-6.9-2.2 6.9-2.3z\"\/><\/svg><\/span><p class=\"k\">True north<\/p><p class=\"t\">There are no right piles. &#8220;Not for me right now&#8221; is an honest answer, and it&#8217;s allowed to change.<\/p><\/aside>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:92px;margin-bottom:34px\"><div class=\"vc-ph\"><svg class=\"cmp\" viewBox=\"0 0 76 76\" aria-hidden=\"true\" focusable=\"false\"><circle cx=\"38\" cy=\"38\" r=\"34\" fill=\"#ffffff\" stroke=\"#dfc8e4\" stroke-width=\"3\"\/><line x1=\"38.0\" y1=\"4.0\" x2=\"38.0\" y2=\"9.5\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"72.0\" y1=\"38.0\" x2=\"66.5\" y2=\"38.0\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"38.0\" y1=\"72.0\" x2=\"38.0\" y2=\"66.5\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"4.0\" y1=\"38.0\" x2=\"9.5\" y2=\"38.0\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><g class=\"nd\" data-to=\"144\" style=\"--vc-to:144deg\"><polygon points=\"38,9 42,38 34,38\" fill=\"#a85514\"\/><polygon points=\"38,67 34,38 42,38\" fill=\"#562b60\"\/><\/g><circle cx=\"38\" cy=\"38\" r=\"3.2\" fill=\"#401d48\"\/><\/svg><div class=\"tx\"><p class=\"lb\">Bearing 3 of 5<\/p><h2 id=\"part-3\">Choose your few<\/h2><p class=\"sb\">Three to five values to steer by, and a gentle check that they&#8217;re yours<\/p><\/div><\/div><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">A compass with forty needles doesn&#8217;t point anywhere. From your &#8220;matters a lot&#8221; pile, choose the three to five that feel most like you right now. Those are your core values, the few you&#8217;ll steer by. If it&#8217;s hard to narrow down, imagine a friend describing you at your best, years from now. Which words would you most want them to use?<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Three to five isn&#8217;t a rule from research. It&#8217;s enough to give you a direction, and few enough to keep in mind on a busy day, and you can choose fewer if fewer is true.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">As you choose, each value takes its place on the compass, in its own quarter. If they all land in one quarter, that&#8217;s fine. It&#8217;s a picture of what matters to you now, and nothing needs evening out.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Tap three to five cards from your &#8220;matters a lot&#8221; pile. Tap a card again to put it back.<\/p>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:30px;margin-bottom:46px\"><figure class=\"vc-fig vc-tool\" id=\"vcPick\"><div id=\"vcPickChips\"><\/div><p class=\"vc-count\" id=\"vcCount\"><\/p><p class=\"vc-eye\">Your bearings<\/p><div class=\"vc-compass\" data-mode=\"bearings\"><\/div><div class=\"vc-qgrid\"><\/div><ol class=\"vc-legend\" id=\"vcLegend\"><\/ol><figcaption>Your bearings. Each value you choose points out from the center of the compass, in its own quarter. The order of the numbers is the order you chose them in, not a ranking.<\/figcaption><p class=\"vc-next\" id=\"vcNextPick\" hidden><a class=\"vc-golink\" href=\"#vcCheck\">Next: check they&#8217;re yours<\/a><\/p><\/figure><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<style>.eqp .eq-ff{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#fff;border:1.5px dashed #f3ccad;border-radius:18px;padding:20px 24px;margin:6px 0 34px}.eqp .eq-ff .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#f5edf7;color:#562b60;display:flex;align-items:center;justify-content:center}.eqp .eq-ff .mk svg{width:22px;height:22px}.eqp .eq-ff .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#562b60;margin:2px 0 4px}.eqp .eq-ff .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(14px,calc(10.2px + .62vw),18px);line-height:1.6;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-ff{grid-template-columns:minmax(0,1fr);padding:18px}.eqp .eq-ff .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-ff\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3.5l1.9 5.1 5.1 1.9-5.1 1.9L12 17.5l-1.9-5.1-5.1-1.9 5.1-1.9zM18.5 15.5l.8 2 2 .8-2 .8-.8 2-.8-2-2-.8 2-.8z\"\/><\/svg><\/span><p class=\"k\">Fun fact<\/p><p class=\"t\">In laboratory studies, people who first did an exercise about what matters to them kept their hand in icy water for longer than people who didn&#8217;t (yes, researchers really ask people to do this).<\/p><\/aside>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"is-it-yours-or-is-it-a-should\" style=\"color:#562b60;margin-top:80px;margin-bottom:20px;font-size:clamp(16.293px, 1.018rem + ((1vw - 3.2px) * 0.989), 25px);font-style:normal;font-weight:700;line-height:1.28\">Is it yours, or is it a should?<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Some values arrive from outside. A parent who always said work comes first, a workplace that treats being busy as a virtue, a feed full of people waking up at five. There&#8217;s nothing wrong with values you learned from other people, and many of the best ones come that way. The question is whether they&#8217;re yours now.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Researchers who study goals have found that the ones that fit a person&#8217;s own interests and values get steadier effort, are reached more often, and leave people feeling better when they get there. The same seems to go for values: ones held mainly to avoid guilt or disapproval tend to feel heavy, and they&#8217;re harder to keep going.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">So for each of your picks, the compass asks one gentle question: <strong class=\"eqb\">would this still matter to you if no one ever knew?<\/strong> If the answer is &#8220;yes, it&#8217;s mine&#8221;, keep walking. If it&#8217;s &#8220;maybe it&#8217;s a should&#8221;, you can swap it for another card, or keep it and see how it sits with you over the next few weeks. Either is fine, and noticing it doesn&#8217;t mean you&#8217;ve done anything wrong.<\/p>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:30px;margin-bottom:46px\"><figure class=\"vc-fig vc-tool\" id=\"vcCheck\"><p class=\"vc-eye\">Optional<\/p><p class=\"vc-q\">Would this still matter to you if no one ever knew?<\/p><div id=\"vcCheckRows\"><\/div><p class=\"vc-next\" id=\"vcNextCheck\" hidden><a class=\"vc-golink\" href=\"#vcRoom\">Next: how much room last week gave them<\/a><\/p><\/figure><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<style>.eqp .eq-kp{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#f5edf7;border:0;border-left:4px solid #562b60;border-radius:4px 18px 18px 4px;padding:20px 26px;margin:6px 0 34px}.eqp .eq-kp .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#fff;color:#562b60;display:flex;align-items:center;justify-content:center}.eqp .eq-kp .mk svg{width:21px;height:21px}.eqp .eq-kp .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#562b60;margin:2px 0 4px}.eqp .eq-kp .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(15px,calc(10.6px + .72vw),19px);font-weight:500;line-height:1.55;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-kp{grid-template-columns:minmax(0,1fr);padding:18px 20px}.eqp .eq-kp .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-kp\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2.8l2.2 6.9 6.9 2.3-6.9 2.2L12 21.2l-2.2-7-6.9-2.2 6.9-2.3z\"\/><\/svg><\/span><p class=\"k\">True north<\/p><p class=\"t\">Choose the few that would still matter if no one ever knew. Those are the ones most likely to carry you on a hard day.<\/p><\/aside>\n\n\n\n<div class=\"vc-fig\" id=\"vcPdf\" style=\"margin-top:30px;margin-bottom:46px\"><p style=\"margin:0 0 14px\">Prefer paper? The Values Compass also comes as a printable PDF, with a page to write down your own few values and all 40 value cards on the other.<\/p><a class=\"vc-btn solid\" style=\"text-decoration:none\" href=\"https:\/\/equilibriumpsychotherapy.net\/wp-content\/uploads\/2026\/10\/values-compass.pdf\" download type=\"application\/pdf\">Download the printable PDF<\/a><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:92px;margin-bottom:34px\"><div class=\"vc-ph\"><svg class=\"cmp\" viewBox=\"0 0 76 76\" aria-hidden=\"true\" focusable=\"false\"><circle cx=\"38\" cy=\"38\" r=\"34\" fill=\"#ffffff\" stroke=\"#dfc8e4\" stroke-width=\"3\"\/><line x1=\"38.0\" y1=\"4.0\" x2=\"38.0\" y2=\"9.5\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"72.0\" y1=\"38.0\" x2=\"66.5\" y2=\"38.0\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"38.0\" y1=\"72.0\" x2=\"38.0\" y2=\"66.5\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"4.0\" y1=\"38.0\" x2=\"9.5\" y2=\"38.0\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><g class=\"nd\" data-to=\"216\" style=\"--vc-to:216deg\"><polygon points=\"38,9 42,38 34,38\" fill=\"#a85514\"\/><polygon points=\"38,67 34,38 42,38\" fill=\"#562b60\"\/><\/g><circle cx=\"38\" cy=\"38\" r=\"3.2\" fill=\"#401d48\"\/><\/svg><div class=\"tx\"><p class=\"lb\">Bearing 4 of 5<\/p><h2 id=\"part-4\">How much room last week gave your values<\/h2><p class=\"sb\">A kind look at the distance, and what got in the way<\/p><\/div><\/div><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Knowing your values is the start. What makes the difference is living them, and this is where it&#8217;s easy to get stuck, because looking at the gap between what matters to you and what you actually did can feel awful.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Here&#8217;s what the research says, and it&#8217;s kinder than you might expect. How important you rate a value says little about how you feel. Living it says more, and it works in both directions. When researchers followed people in Europe, India and T\u00fcrkiye day by day, living some of their values lifted the next day, and a good day made it easier to live their values the next. Another study found the same thing from the other end: a low day tends to come before a day with less room for what matters. <strong class=\"eqb\">A hard week shrinks the room for everything, so a short needle tells you about the week, not about you.<\/strong><\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">That&#8217;s why this compass doesn&#8217;t ask how well you did. It asks how much room last week gave you, and there&#8217;s no score, no total and nothing marked in red.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">One more thing is worth knowing. People who keep the closest eye on their valued actions, and find them the most effortful, tend to feel more distressed overall. In the moment, though, noticing a valued action goes with more meaning a few hours later. So noticing can help, as long as it doesn&#8217;t turn into keeping score. Look at your needles the way you&#8217;d look at a weather report: useful to know, and not a measure of your worth.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">For each value, tap how much room last week gave you to live it: 0 is no room at all, and 4 is plenty. Its needle grows toward the edge of the compass. Then, if you like, choose what got in the way.<\/p>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:30px;margin-bottom:46px\"><figure class=\"vc-fig vc-tool vc-two\" id=\"vcRoom\"><div><p class=\"vc-eye\">Last week<\/p><div class=\"vc-compass\" data-mode=\"room\"><\/div><div class=\"vc-qgrid\"><\/div><\/div><div><p class=\"vc-q\">How much room did last week give you to live this?<\/p><div id=\"vcRoomRows\"><\/div><p class=\"vc-next\" id=\"vcNextRoom\" hidden><a class=\"vc-golink\" href=\"#vcStep\">Next: one small step for this week<\/a><\/p><\/div><figcaption>How much room last week gave you. Each needle grows from the center toward the edge, from no room at all to plenty of room. There&#8217;s no total and no target, and the needles aren&#8217;t compared with each other.<\/figcaption><\/figure><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"what-got-in-the-way\" style=\"color:#562b60;margin-top:80px;margin-bottom:20px;font-size:clamp(16.293px, 1.018rem + ((1vw - 3.2px) * 0.989), 25px);font-style:normal;font-weight:700;line-height:1.28\">What got in the way<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">One reason in that list deserves a closer look. If another value came first, nothing went wrong. Remember the quarters: opposite values pull against each other, and an evening spent sitting with a friend who&#8217;s struggling is an evening not spent on your own project. <strong class=\"eqb\">A short needle on one value can be the cost of living another.<\/strong> That&#8217;s a choice, not a failure!<\/p>\n\n\n\n<style>.eqp .eq-kp{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#fdf3ea;border:0;border-left:4px solid #a85514;border-radius:4px 18px 18px 4px;padding:20px 26px;margin:6px 0 34px}.eqp .eq-kp .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#fff;color:#a85514;display:flex;align-items:center;justify-content:center}.eqp .eq-kp .mk svg{width:21px;height:21px}.eqp .eq-kp .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#a85514;margin:2px 0 4px}.eqp .eq-kp .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(15px,calc(10.6px + .72vw),19px);font-weight:500;line-height:1.55;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-kp{grid-template-columns:minmax(0,1fr);padding:18px 20px}.eqp .eq-kp .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-kp\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M14.6 6.9l-5.2 10.2\"\/><circle cx=\"12\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" stroke=\"none\"\/><\/svg><\/span><p class=\"k\">Off course is still a course<\/p><p class=\"t\">A week off course doesn&#8217;t move your values. They&#8217;re still there, pointing the same way, and noticing where you drifted is already a way of steering.<\/p><\/aside>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"being-kind-about-the-gap\" style=\"color:#562b60;margin-top:80px;margin-bottom:20px;font-size:clamp(16.293px, 1.018rem + ((1vw - 3.2px) * 0.989), 25px);font-style:normal;font-weight:700;line-height:1.28\">Being kind about the gap<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">It&#8217;s tempting to turn your values into a stick to beat yourself with. I value my health, so why can&#8217;t I just get to the gym? I value my family, so what kind of person misses dinner three nights in a row? When that happens, values stop working as values and become one more way to feel not good enough.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Perfectionism goes with more distress, and a large analysis of students in the US, Canada and the UK found it has been rising for decades, so if your inner voice is harsh, you&#8217;re far from alone. <strong class=\"eqb\">Kindness here isn&#8217;t letting yourself off the hook. It&#8217;s what keeps you walking.<\/strong> If being kind to yourself feels hard, our article on <a href=\"https:\/\/equilibriumpsychotherapy.net\/self-compassion\/\">self-compassion<\/a> explains why it&#8217;s so difficult, and what helps.<\/p>\n\n\n\n<style>.eqp .eq-ff{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#fff;border:1.5px dashed #f3ccad;border-radius:18px;padding:20px 24px;margin:6px 0 34px}.eqp .eq-ff .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#f5edf7;color:#562b60;display:flex;align-items:center;justify-content:center}.eqp .eq-ff .mk svg{width:22px;height:22px}.eqp .eq-ff .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#562b60;margin:2px 0 4px}.eqp .eq-ff .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(14px,calc(10.2px + .62vw),18px);line-height:1.6;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-ff{grid-template-columns:minmax(0,1fr);padding:18px}.eqp .eq-ff .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-ff\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3.5l1.9 5.1 5.1 1.9-5.1 1.9L12 17.5l-1.9-5.1-5.1-1.9 5.1-1.9zM18.5 15.5l.8 2 2 .8-2 .8-.8 2-.8-2-2-.8 2-.8z\"\/><\/svg><\/span><p class=\"k\">Worth remembering<\/p><p class=\"t\">In a series of experiments, people who were kind to themselves after a mistake were more motivated to make up for it and to improve, and they studied longer after failing a test.<\/p><\/aside>\n\n\n\n<style>.eqp .eq-kp{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#f5edf7;border:0;border-left:4px solid #562b60;border-radius:4px 18px 18px 4px;padding:20px 26px;margin:6px 0 34px}.eqp .eq-kp .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#fff;color:#562b60;display:flex;align-items:center;justify-content:center}.eqp .eq-kp .mk svg{width:21px;height:21px}.eqp .eq-kp .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#562b60;margin:2px 0 4px}.eqp .eq-kp .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(15px,calc(10.6px + .72vw),19px);font-weight:500;line-height:1.55;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-kp{grid-template-columns:minmax(0,1fr);padding:18px 20px}.eqp .eq-kp .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-kp\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2.8l2.2 6.9 6.9 2.3-6.9 2.2L12 21.2l-2.2-7-6.9-2.2 6.9-2.3z\"\/><\/svg><\/span><p class=\"k\">True north<\/p><p class=\"t\">Living your values matters more than which ones you pick, and a hard week shrinks the room for all of them. A short needle is information, not a verdict.<\/p><\/aside>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:92px;margin-bottom:34px\"><div class=\"vc-ph\"><svg class=\"cmp\" viewBox=\"0 0 76 76\" aria-hidden=\"true\" focusable=\"false\"><circle cx=\"38\" cy=\"38\" r=\"34\" fill=\"#ffffff\" stroke=\"#dfc8e4\" stroke-width=\"3\"\/><line x1=\"38.0\" y1=\"4.0\" x2=\"38.0\" y2=\"9.5\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"72.0\" y1=\"38.0\" x2=\"66.5\" y2=\"38.0\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"38.0\" y1=\"72.0\" x2=\"38.0\" y2=\"66.5\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"4.0\" y1=\"38.0\" x2=\"9.5\" y2=\"38.0\" stroke=\"#754481\" stroke-width=\"2\" stroke-linecap=\"round\"\/><g class=\"nd\" data-to=\"288\" style=\"--vc-to:288deg\"><polygon points=\"38,9 42,38 34,38\" fill=\"#a85514\"\/><polygon points=\"38,67 34,38 42,38\" fill=\"#562b60\"\/><\/g><circle cx=\"38\" cy=\"38\" r=\"3.2\" fill=\"#401d48\"\/><\/svg><div class=\"tx\"><p class=\"lb\">Bearing 5 of 5<\/p><h2 id=\"part-5\">One small step, and coming back<\/h2><p class=\"sb\">Something small for this week, and why it&#8217;s worth returning<\/p><\/div><\/div><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Big plans have a way of waiting for a better week. Small steps don&#8217;t. Pick one of your values and one thing you could do for it this week, <strong class=\"eqb\">small enough that you could manage it on a low day.<\/strong> It might be a message to a friend you miss, ten minutes outside before work, or saying no to one thing so there&#8217;s room for another.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Some therapies are built on exactly this. Behavioral activation for depression, for example, plans small activities that fit a person&#8217;s values, one week at a time.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Then give your step a when and a where. &#8220;If it&#8217;s Sunday after dinner, then I&#8217;ll call my brother&#8221; is more likely to happen than &#8220;I&#8217;ll call my brother more&#8221;. This kind of if-then plan has a lot of research behind it, and our article on <a href=\"https:\/\/equilibriumpsychotherapy.net\/if-then-plans\/\">if-then plans<\/a> shows how to build one that holds up in a real week.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">You can also tag your step with the part of life it belongs to, like family and home, or rest and play. Over a few weeks, the tags can make a pattern easier to spot.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Choose a value, write one small step, and, if you like, when you&#8217;ll do it and the part of life it belongs to.<\/p>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:30px;margin-bottom:46px\"><figure class=\"vc-fig vc-tool\" id=\"vcStep\"><div id=\"vcStepBody\"><\/div><p class=\"vc-next\" id=\"vcNextStep\" hidden><a class=\"vc-golink\" href=\"#vcMine\">Next: your compass card<\/a><\/p><\/figure><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<style>.eqp .eq-ff{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#fff;border:1.5px dashed #f3ccad;border-radius:18px;padding:20px 24px;margin:6px 0 34px}.eqp .eq-ff .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#f5edf7;color:#562b60;display:flex;align-items:center;justify-content:center}.eqp .eq-ff .mk svg{width:22px;height:22px}.eqp .eq-ff .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#562b60;margin:2px 0 4px}.eqp .eq-ff .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(14px,calc(10.2px + .62vw),18px);line-height:1.6;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-ff{grid-template-columns:minmax(0,1fr);padding:18px}.eqp .eq-ff .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-ff\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3.5l1.9 5.1 5.1 1.9-5.1 1.9L12 17.5l-1.9-5.1-5.1-1.9 5.1-1.9zM18.5 15.5l.8 2 2 .8-2 .8-.8 2-.8-2-2-.8 2-.8z\"\/><\/svg><\/span><p class=\"k\">Worth noting<\/p><p class=\"t\">Across more than 600 tests, adding an &#8220;if this happens, then I&#8217;ll do that&#8221; plan helped people follow through on what they intended. For everyday habits the boost is small, but it&#8217;s reliable.<\/p><\/aside>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"toward-or-away\" style=\"color:#562b60;margin-top:80px;margin-bottom:20px;font-size:clamp(16.293px, 1.018rem + ((1vw - 3.2px) * 0.989), 25px);font-style:normal;font-weight:700;line-height:1.28\">Toward or away<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Through the week you&#8217;ll meet small moments where you can take a step toward what matters to you, or a step away from it, often to escape a hard feeling for a while. It might be scrolling instead of calling, staying late instead of going home, or saying yes when you meant no.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Both kinds of step are human, and everyone takes both. The aim is to notice, more and more often, which way you&#8217;re facing, and to turn back when you can.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"coming-back-to-it\" style=\"color:#562b60;margin-top:80px;margin-bottom:20px;font-size:clamp(16.293px, 1.018rem + ((1vw - 3.2px) * 0.989), 25px);font-style:normal;font-weight:700;line-height:1.28\">Coming back to it<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Values are fairly steady, but they aren&#8217;t set in stone. The cards you&#8217;d choose after a move, a loss, a new baby or a new country might be different from the ones you chose today, and that&#8217;s healthy. <strong class=\"eqb\">It&#8217;s worth sorting the whole deck again after a big life change, or every few months.<\/strong><\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Between those, come back once a week if you can, and rate how much room the week gave each value. It takes a minute or two. Over a few weeks you may start to see what tends to crowd your values out, and what makes room for them.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">Below, you can keep your compass on this device, or copy it as text and keep it wherever you like.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"keep-it-or-copy-it\" style=\"color:#562b60;margin-top:80px;margin-bottom:20px;font-size:clamp(16.293px, 1.018rem + ((1vw - 3.2px) * 0.989), 25px);font-style:normal;font-weight:700;line-height:1.28\">Keep it, or copy it<\/h3>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:30px;margin-bottom:46px\"><figure class=\"vc-fig vc-tool\" id=\"vcMine\"><div id=\"vcMineBody\"><\/div><\/figure><\/div>\n<div style=\"margin-top:30px;margin-bottom:46px\"><figure class=\"vc-fig vc-tool\" id=\"vcKeep\"><div id=\"vcKeepBody\"><\/div><\/figure><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d12c95ff wp-block-group-is-layout-constrained\">\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:26px;font-size:clamp(14.082px, 0.88rem + ((1vw - 3.2px) * 0.786), 21px);line-height:1.68\">There&#8217;s no finish line here, and that&#8217;s the point. A compass doesn&#8217;t tell you where you&#8217;ll end up. It tells you which way you&#8217;re facing, and whenever you lose your bearings, it&#8217;s still there to look at again.<\/p>\n\n\n\n<style>.eqp .eq-kp{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;background:#f5edf7;border:0;border-left:4px solid #562b60;border-radius:4px 18px 18px 4px;padding:20px 26px;margin:6px 0 34px}.eqp .eq-kp .mk{grid-row:1\/3;width:40px;height:40px;border-radius:50%;background:#fff;color:#562b60;display:flex;align-items:center;justify-content:center}.eqp .eq-kp .mk svg{width:21px;height:21px}.eqp .eq-kp .k{font-family:\"Work Sans\",sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#562b60;margin:2px 0 4px}.eqp .eq-kp .t{font-family:\"Work Sans\",sans-serif;font-size:clamp(15px,calc(10.6px + .72vw),19px);font-weight:500;line-height:1.55;color:#2a2622;margin:0}@media(max-width:560px){.eqp .eq-kp{grid-template-columns:minmax(0,1fr);padding:18px 20px}.eqp .eq-kp .mk{grid-row:auto;width:34px;height:34px}}<\/style><aside class=\"eq-kp\"><span class=\"mk\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2.8l2.2 6.9 6.9 2.3-6.9 2.2L12 21.2l-2.2-7-6.9-2.2 6.9-2.3z\"\/><\/svg><\/span><p class=\"k\">True north<\/p><p class=\"t\">One small step, with a when and a where, is enough for this week. Come back next week and look again.<\/p><\/aside>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div class=\"wp-block-group has-background vc-pn has-global-padding is-layout-constrained wp-container-core-group-is-layout-f16228b7 wp-block-group-is-layout-constrained\" style=\"background-color:#faf8f3;border-color:#dfc8e4;border-width:1.5px;border-style:solid;border-radius:20px;margin-top:46px;margin-bottom:0;padding:34px 38px\">\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#562b60;margin-top:0;margin-bottom:12px;font-size:12px;font-weight:700;letter-spacing:0.16em;line-height:1.4\">A NOTE ON THE EVIDENCE<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"well-studied-as-a-practice-not-yet-tested-as-a-card-sort\" style=\"color:#2a2622;margin-top:0;margin-bottom:14px;font-size:clamp(15.197px, 0.95rem + ((1vw - 3.2px) * 0.887), 23px);font-style:normal;font-weight:700;line-height:1.28\">Well studied as a practice, not yet tested as a card sort<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:18px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.625), 19.5px);line-height:1.65\">Working with values is one of the better-studied parts of acceptance and commitment therapy. ACT as a whole has been tested in many trials, summarized in twenty reviews, for anxiety, depression, chronic pain, substance use and more. It works better than no treatment or usual care, and about as well as cognitive behavioral therapy.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:18px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.625), 19.5px);line-height:1.65\">In laboratory studies, values exercises help people stay with discomfort, and exercises people actually do work better than explanations alone, which is why this compass is something you do rather than something you read. The World Health Organization&#8217;s self-help course for stress has a whole part on acting on your values, and it has been tested with refugees in Uganda, T\u00fcrkiye and Western Europe. All three trials found real benefits, though in Western Europe they had faded by six months.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:18px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.625), 19.5px);line-height:1.65\"><strong class=\"eqb\">The card sort itself hasn&#8217;t been tested on its own,<\/strong> so there&#8217;s no good evidence yet about this exact tool. That isn&#8217;t evidence against it. Testing one small piece of a therapy is slow and expensive, and research hasn&#8217;t caught up with this format yet. Most values studies so far are also small, short and based on what people report about themselves. A 2026 review of 50 trials found that working on your values lifted mood, closeness and a sense of meaning more reliably than it eased anxiety or depression, and that it helped most when people went on to act on their values.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:18px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.625), 19.5px);line-height:1.65\">There&#8217;s also a well-known exercise in which people write for a few minutes about a value that matters to them. It has a small but reliable effect on health habits. Its effects on school results were much smaller in large repeat studies than in the first ones, and sometimes absent. So this compass doesn&#8217;t promise that naming your values changes anything by itself. Living them is the part that matters.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:18px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.625), 19.5px);line-height:1.65\">The compass is our own tool, built on other people&#8217;s ideas. Sorting values into piles comes from the Personal Values Card Sort, a public-domain tool used in motivational interviewing, a way of counseling that helps people find their own reasons to change. Rating how much you lived each value over the past week comes from the Valued Living Questionnaire. Looking at the distance from what matters comes from the Bull&#8217;s-Eye Values Survey, and keeping progress separate from what got in the way comes from the Valuing Questionnaire. Noticing small steps toward or away from what matters comes from the choice point, an idea from Russ Harris and colleagues.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:0;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.625), 19.5px);line-height:1.65\">The four quarters follow Shalom Schwartz&#8217;s theory of basic human values. Which quarter each card sits in is our own best fit, since his research sorted broad values, not these exact cards. The words, the cards and the drawing are all our own. This is a tool for reflection, and it isn&#8217;t therapy or a diagnosis.<\/p>\n\n\n<\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div class=\"wp-block-group has-background vc-pn has-global-padding is-layout-constrained wp-container-core-group-is-layout-f16228b7 wp-block-group-is-layout-constrained\" style=\"background-color:#fbf4e6;border-color:#eedcb9;border-width:1.5px;border-style:solid;border-radius:20px;margin-top:46px;margin-bottom:0;padding:34px 38px\">\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#562b60;margin-top:0;margin-bottom:12px;font-size:12px;font-weight:700;letter-spacing:0.16em;line-height:1.4\">IF EVERYTHING FEELS FAR AWAY<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"when-nothing-seems-to-matter\" style=\"color:#2a2622;margin-top:0;margin-bottom:14px;font-size:clamp(15.197px, 0.95rem + ((1vw - 3.2px) * 0.887), 23px);font-style:normal;font-weight:700;line-height:1.28\">When nothing seems to matter<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:18px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.625), 19.5px);line-height:1.65\">Sometimes the hard part isn&#8217;t choosing your values. It&#8217;s that nothing feels like it matters at all, every card looks gray, and the future feels empty. If that&#8217;s where you are, please don&#8217;t treat this as an exercise you&#8217;re failing. Feeling that way for weeks can be a sign of depression, and you deserve real support with it.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:18px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.625), 19.5px);line-height:1.65\">A doctor is often a good first step, partly because they can check whether something physical is involved. Not everyone can see one, and for some people it isn&#8217;t affordable or safe. A counselor at school, college or work, a community mental health service, a free helpline or chat service, or one person you trust can all be a way in.<\/p>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#2a2622;margin-top:0;margin-bottom:0;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.625), 19.5px);line-height:1.65\">If you&#8217;re having thoughts of ending your life, you don&#8217;t have to wait until it&#8217;s an emergency to talk to someone. You can find the crisis lines and emergency numbers for your country on <a href=\"https:\/\/equilibriumpsychotherapy.net\/crisis-helplines\/\">our helplines page<\/a>, and our article on <a href=\"https:\/\/equilibriumpsychotherapy.net\/suicidal-thoughts\/\">suicidal thoughts<\/a> explains what helps and how to start that conversation. If you might act on those thoughts, or you&#8217;re in danger right now, call your local emergency number.<\/p>\n\n\n<\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div class=\"wp-block-group has-background has-global-padding is-layout-constrained wp-container-core-group-is-layout-cfa769b3 wp-block-group-is-layout-constrained\" style=\"background-color:#faf8f3;border-color:#e8e1d5;border-width:1.5px;border-style:solid;border-radius:18px;margin-top:60px;margin-bottom:44px;padding:30px 34px\">\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#6b6259;margin-top:0;margin-bottom:14px;font-size:12px;font-weight:700;letter-spacing:0.16em;line-height:1.4\">REFERENCES<\/p>\n\n\n\n<ol class=\"wp-block-list has-text-color has-work-sans-regular-font-family\" style=\"color:#524a42;margin-top:0;margin-bottom:0;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.17), 15.5px);line-height:1.7\">\n<li><a href=\"https:\/\/doi.org\/10.1002\/wps.20939\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Acarturk, C., Uygun, E., Ilkkursun, Z., Carswell, K., Tedeschi, F., Batu, M., Eskici, S., Kurt, G., Anttila, M., Au, T., Baumgartner, J., Churchill, R., Cuijpers, P., Becker, T., Koesters, M., Lantta, T., Nos\u00e8, M., Ostuzzi, G., Popa, M., . . . Barbui, C. (2022). Effectiveness of a WHO self-help psychological intervention for preventing mental disorders among Syrian refugees in Turkey: A randomized controlled trial. <em>World Psychiatry, 21<\/em>(1), 88-95.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1159\/000365764\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">A-Tjak, J. G. L., Davis, M. L., Morina, N., Powers, M. B., Smits, J. A. J., &amp; Emmelkamp, P. M. G. (2015). A meta-analysis of the efficacy of acceptance and commitment therapy for clinically relevant mental and physical health problems. <em>Psychotherapy and Psychosomatics, 84<\/em>(1), 30-36.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1037\/a0016617\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Bardi, A., Lee, J. A., Hofmann-Towfigh, N., &amp; Soutar, G. (2009). The structure of intraindividual value change. <em>Journal of Personality and Social Psychology, 97<\/em>(5), 913-929.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1016\/j.jpain.2009.01.001\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Branstetter-Rost, A., Cushing, C., &amp; Douleh, T. (2009). Personal values and pain tolerance: Does a values intervention add to acceptance? <em>The Journal of Pain, 10<\/em>(8), 887-892.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1177\/0146167212445599\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Breines, J. G., &amp; Chen, S. (2012). Self-compassion increases self-improvement motivation. <em>Personality and Social Psychology Bulletin, 38<\/em>(9), 1133-1143.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1016\/j.jcbs.2013.08.002\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Chase, J. A., Houmanfar, R., Hayes, S. C., Ward, T. A., Vilardaga, J. P., &amp; Follette, V. (2013). Values are not just goals: Online ACT-based values training adds to goal setting in improving undergraduate college student performance. <em>Journal of Contextual Behavioral Science, 2<\/em>(3-4), 79-84.<\/a><\/li>\n\n\n\n<li>Ciarrochi, J., Bailey, A., &amp; Harris, R. (2014). <em>The weight escape: How to stop dieting and start living<\/em>. Shambhala.<\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1126\/science.1128317\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Cohen, G. L., Garcia, J., Apfel, N., &amp; Master, A. (2006). Reducing the racial achievement gap: A social-psychological intervention. <em>Science, 313<\/em>(5791), 1307-1310.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1037\/bul0000138\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Curran, T., &amp; Hill, A. P. (2019). Perfectionism is increasing over time: A meta-analysis of birth cohort differences from 1989 to 2016. <em>Psychological Bulletin, 145<\/em>(4), 410-429.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1037\/hea0000116\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Epton, T., Harris, P. R., Kane, R., van Koningsbruggen, G. M., &amp; Sheeran, P. (2015). The impact of self-affirmation on health-behavior change: A meta-analysis. <em>Health Psychology, 34<\/em>(3), 187-196.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1177\/0022022110381429\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Fischer, R., &amp; Schwartz, S. H. (2011). Whence differences in value priorities? Individual, cultural, or artifactual sources. <em>Journal of Cross-Cultural Psychology, 42<\/em>(7), 1127-1144.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1016\/j.jcbs.2020.09.009\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Gloster, A. T., Walder, N., Levin, M. E., Twohig, M. P., &amp; Karekla, M. (2020). The empirical status of acceptance and commitment therapy: A review of meta-analyses. <em>Journal of Contextual Behavioral Science, 18<\/em>, 181-192.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1016\/S0065-2601(06)38002-1\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Gollwitzer, P. M., &amp; Sheeran, P. (2006). Implementation intentions and goal achievement: A meta-analysis of effects and processes. In M. P. Zanna (Ed.), <em>Advances in experimental social psychology<\/em> (Vol. 38, pp. 69-119). Academic Press.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1016\/j.jcbs.2021.03.006\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Gr\u00e9goire, S., Doucerain, M., Morin, L., &amp; Finkelstein-Fox, L. (2021). The relationship between value-based actions, psychological distress and well-being: A multilevel diary study. <em>Journal of Contextual Behavioral Science, 20<\/em>, 79-88.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1111\/jopy.12869\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Hanel, P. H. P., Tun\u00e7, H., Bhasin, D., Litzellachner, L. F., &amp; Maio, G. R. (2024). Value fulfillment and well-being: Clarifying directions over time. <em>Journal of Personality, 92<\/em>(4), 1037-1049.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1037\/edu0000141\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Hanselman, P., Rozek, C. S., Grigg, J., &amp; Borman, G. D. (2017). New evidence on self-affirmation effects and theorized sources of heterogeneity from large-scale replications. <em>Journal of Educational Psychology, 109<\/em>(3), 405-424.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1016\/j.brat.2005.06.006\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Hayes, S. C., Luoma, J. B., Bond, F. W., Masuda, A., &amp; Lillis, J. (2006). Acceptance and commitment therapy: Model, processes and outcomes. <em>Behaviour Research and Therapy, 44<\/em>(1), 1-25.<\/a><\/li>\n\n\n\n<li>Hayes, S. C., Strosahl, K. D., &amp; Wilson, K. G. (2012). <em>Acceptance and commitment therapy: The process and practice of mindful change<\/em> (2nd ed.). Guilford Press.<\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1177\/0145445510390929\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Lejuez, C. W., Hopko, D. R., Acierno, R., Daughters, S. B., &amp; Pagoto, S. L. (2011). Ten year revision of the Brief Behavioral Activation Treatment for Depression: Revised treatment manual. <em>Behavior Modification, 35<\/em>(2), 111-161.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1016\/j.beth.2012.05.003\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Levin, M. E., Hildebrandt, M. J., Lillis, J., &amp; Hayes, S. C. (2012). The impact of treatment components suggested by the psychological flexibility model: A meta-analysis of laboratory-based component studies. <em>Behavior Therapy, 43<\/em>(4), 741-756.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1002\/jclp.22435\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Limburg, K., Watson, H. J., Hagger, M. S., &amp; Egan, S. J. (2017). The relationship between perfectionism and psychopathology: A meta-analysis. <em>Journal of Clinical Psychology, 73<\/em>(10), 1301-1326.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1016\/j.cbpra.2012.01.004\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Lundgren, T., Luoma, J. B., Dahl, J., Strosahl, K., &amp; Melin, L. (2012). The Bull\u2019s-Eye Values Survey: A psychometric evaluation. <em>Cognitive and Behavioral Practice, 19<\/em>(4), 518-526.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.ijpsy.com\/volumen20\/num3\/557.html\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Matheus Rahal, G., &amp; Caserta Gon, M. C. (2020). A systematic review of values interventions in acceptance and commitment therapy. <em>International Journal of Psychology &amp; Psychological Therapy, 20<\/em>(3), 355-372.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.motivationalinterviewing.org\/sites\/default\/files\/valuescardsort_0.pdf\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Miller, W. R., C\u2019de Baca, J., Matthews, D. B., &amp; Wilbourne, P. L. (2001). <em>Personal values card sort<\/em>. University of New Mexico.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1080\/17439760.2026.2714053\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Napier, A. D., &amp; Mangat, A. (2026). The well-being and ill-being impacts of values clarification: A systematic review of randomised controlled trials. <em>The Journal of Positive Psychology<\/em>. Advance online publication.<\/a><\/li><li><a href=\"https:\/\/doi.org\/10.1177\/1948550616646426\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Protzko, J., &amp; Aronson, J. (2016). Context moderates affirmation effects on the ethnic achievement gap. <em>Social Psychological and Personality Science, 7<\/em>(6), 500-507.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1159\/000517504\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Purgato, M., Carswell, K., Tedeschi, F., Acarturk, C., Anttila, M., Au, T., Bajbouj, M., Baumgartner, J., Biondi, M., Churchill, R., Cuijpers, P., Koesters, M., Gastaldon, C., Ilkkursun, Z., Lantta, T., Nos\u00e8, M., Ostuzzi, G., Papola, D., Popa, M., . . . Barbui, C. (2021). Effectiveness of Self-Help Plus in preventing mental disorders in refugees and asylum seekers in Western Europe: A multinational randomized controlled trial. <em>Psychotherapy and Psychosomatics, 90<\/em>(6), 403-414.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1146\/annurev-psych-020821-125100\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Sagiv, L., &amp; Schwartz, S. H. (2022). Personal values across cultures. <em>Annual Review of Psychology, 73<\/em>(1), 517-546.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1111\/aphw.70151\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Sarri\u00f3n, P., Cebolla, A., Santamaria-Rincon, M., Llinares-Monllor, C., Desdentado, L., &amp; Ba\u00f1os, R. (2026). Advancing our understanding of valued living: An ecological momentary assessment of behavioral and experiential aspects of valued actions, well-being, and emotional distress. <em>Applied Psychology: Health and Well-Being, 18<\/em>(3), Article e70151.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1016\/S0065-2601(08)60281-6\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Schwartz, S. H. (1992). Universals in the content and structure of values: Theoretical advances and empirical tests in 20 countries. In M. P. Zanna (Ed.), <em>Advances in experimental social psychology<\/em> (Vol. 25, pp. 1-65). Academic Press.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.9707\/2307-0919.1116\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Schwartz, S. H. (2012). An overview of the Schwartz theory of basic values. <em>Online Readings in Psychology and Culture, 2<\/em>(1).<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1177\/0022022101032003002\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Schwartz, S. H., &amp; Bardi, A. (2001). Value hierarchies across cultures: Taking a similarities perspective. <em>Journal of Cross-Cultural Psychology, 32<\/em>(3), 268-290.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1080\/10463283.2024.2334563\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Sheeran, P., Listrom, O., &amp; Gollwitzer, P. M. (2025). The when and how of planning: Meta-analysis of the scope and components of implementation intentions in 642 tests. <em>European Review of Social Psychology, 36<\/em>(1), 162-194.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1037\/0022-3514.76.3.482\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Sheldon, K. M., &amp; Elliot, A. J. (1999). Goal striving, need satisfaction, and longitudinal well-being: The self-concordance model. <em>Journal of Personality and Social Psychology, 76<\/em>(3), 482-497.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1177\/0145445518782402\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Smith, B. M., Villatte, J. L., Ong, C. W., Butcher, G. M., Twohig, M. P., Levin, M. E., &amp; Hayes, S. C. (2019). The influence of a personal values intervention on cold pressor-induced distress tolerance. <em>Behavior Modification, 43<\/em>(5), 688-710.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1016\/j.jcbs.2014.06.001\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Smout, M., Davies, M., Burns, N., &amp; Christie, A. (2014). Development of the Valuing Questionnaire (VQ). <em>Journal of Contextual Behavioral Science, 3<\/em>(3), 164-172.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1016\/S2214-109X(19)30504-2\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Tol, W. A., Leku, M. R., Lakin, D. P., Carswell, K., Augustinavicius, J., Adaku, A., Au, T. M., Brown, F. L., Bryant, R. A., Garcia-Moreno, C., Musci, R. J., Ventevogel, P., White, R. G., &amp; van Ommeren, M. (2020). Guided self-help to reduce psychological distress in South Sudanese female refugees in Uganda: A cluster randomised trial. <em>The Lancet Global Health, 8<\/em>(2), e254-e263.<\/a><\/li>\n\n\n\n<li>Wilson, K. G., &amp; Murrell, A. R. (2004). Values work in acceptance and commitment therapy: Setting a course for behavioral treatment. In S. C. Hayes, V. M. Follette, &amp; M. M. Linehan (Eds.), <em>Mindfulness and acceptance: Expanding the cognitive-behavioral tradition<\/em> (pp. 120-151). Guilford Press.<\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1007\/BF03395706\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Wilson, K. G., Sandoz, E. K., Kitchens, J., &amp; Roberts, M. (2010). The Valued Living Questionnaire: Defining and measuring valued action within a behavioral framework. <em>The Psychological Record, 60<\/em>(2), 249-272.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.who.int\/publications\/i\/item\/9789240003927\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">World Health Organization. (2020). <em>Doing what matters in times of stress: An illustrated guide<\/em>.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.who.int\/news-room\/fact-sheets\/detail\/depression\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">World Health Organization. (2026, September 11). <em>Depressive disorder (depression)<\/em> [Fact sheet].<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/doi.org\/10.1111\/josi.12415\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Wu, Z., Spreckelsen, T. F., &amp; Cohen, G. L. (2021). A meta-analysis of the effect of values affirmation on academic achievement. <em>Journal of Social Issues, 77<\/em>(3), 702-750.<\/a><\/li>\n<\/ol>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#6b6259;margin-top:30px;margin-bottom:14px;font-size:12px;font-weight:700;letter-spacing:0.16em;line-height:1.4\">BOOKS FROM OUR SHELF<\/p>\n\n\n\n<ol class=\"wp-block-list has-text-color has-work-sans-regular-font-family\" style=\"color:#524a42;margin-top:0;margin-bottom:0;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.17), 15.5px);line-height:1.7\">\n<li><a href=\"https:\/\/www.shambhala.com\/the-happiness-trap-1631726130.html\" target=\"_blank\" rel=\"noopener\" style=\"color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#f3ccad\">Harris, R. (2022). <em>The happiness trap: How to stop struggling and start living<\/em> (2nd ed.). Shambhala Publications.<\/a><\/li>\n<\/ol>\n\n\n\n<p class=\"eq-lastrev\" style=\"margin:22px 0 0;font-family:&quot;Work Sans&quot;,sans-serif;font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;line-height:1.5;color:#6b6259\">Last reviewed October 2026<\/p>\n\n\n<\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:0px;margin-bottom:44px\"><a class=\"wt-next\" href=\"\/if-then-plans\/\"><span class=\"eyb\">Read next<\/span><span class=\"ti\">If-Then Plans<\/span><span class=\"wy\">One small step works better with a when and a where. Here&#8217;s how to build an if-then plan that holds up in a real week.<\/span><\/a><\/div>\n\n\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-d2a766d4 wp-block-group-is-layout-constrained\">\n\n\n<div style=\"margin-top:0px;margin-bottom:0px\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1708\" src=\"https:\/\/equilibriumpsychotherapy.net\/wp-content\/uploads\/2024\/06\/mid-shot-woman-therapist-taking-notes-clipboard-scaled.jpg\" alt=\"A therapist taking notes on a clipboard during a session\" class=\"wp-image-230\" style=\"width:100%;height:340px;object-fit:cover;object-position:center 40%;border-radius:22px 22px 0 0;display:block\" srcset=\"https:\/\/equilibriumpsychotherapy.net\/wp-content\/uploads\/2024\/06\/mid-shot-woman-therapist-taking-notes-clipboard-scaled.jpg 2560w, https:\/\/equilibriumpsychotherapy.net\/wp-content\/uploads\/2024\/06\/mid-shot-woman-therapist-taking-notes-clipboard-300x200.jpg 300w, https:\/\/equilibriumpsychotherapy.net\/wp-content\/uploads\/2024\/06\/mid-shot-woman-therapist-taking-notes-clipboard-1024x683.jpg 1024w, https:\/\/equilibriumpsychotherapy.net\/wp-content\/uploads\/2024\/06\/mid-shot-woman-therapist-taking-notes-clipboard-768x512.jpg 768w, https:\/\/equilibriumpsychotherapy.net\/wp-content\/uploads\/2024\/06\/mid-shot-woman-therapist-taking-notes-clipboard-1536x1025.jpg 1536w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/div>\n\n\n\n<div class=\"wp-block-group has-background eq-ondark has-global-padding is-layout-constrained wp-container-core-group-is-layout-f761ea3b wp-block-group-is-layout-constrained\" style=\"background-color:#401d48;border-radius:0px 0px 22px 22px;margin-top:0;margin-bottom:80px;padding:52px\">\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#dfc8e4;margin-top:0;margin-bottom:14px;font-size:12px;font-weight:700;letter-spacing:0.16em;line-height:1.4\">WORKING WITH THIS<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-work-sans-regular-font-family\" id=\"when-you-know-what-matters-but-cant-get-there\" style=\"color:#ffffff;margin-top:0;margin-bottom:18px;font-size:clamp(16.293px, 1.018rem + ((1vw - 3.2px) * 0.989), 25px);font-style:normal;font-weight:700;line-height:1.28\">When you know what matters, but can&#8217;t get there<\/h3>\n\n\n\n<p class=\"has-text-color has-work-sans-regular-font-family wp-block-paragraph\" style=\"color:#ffffff;margin-top:0;margin-bottom:30px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.455), 18px);line-height:1.7\">Sometimes you know exactly what matters to you, and something keeps pulling you the other way: fear, exhaustion, old rules about who you&#8217;re supposed to be, or a life that leaves no room. Therapy is a place to look at what&#8217;s in the way, make room for the hard feelings that come with moving toward what matters, and plan steps that fit your actual week. If you already see one of us, the text you can copy in part 5 is a good thing to bring along.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-color has-background has-work-sans-regular-font-family wp-element-button\" href=\"\/individual-session\/\" style=\"border-radius:9px;color:#2a2622;background-color:#faf8f3;padding:15px 30px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.284), 16.5px);font-weight:700\">Book a session<\/a><\/div>\n\n\n\n<div class=\"wp-block-button footer_b\"><a class=\"wp-block-button__link has-text-color has-work-sans-regular-font-family wp-element-button\" href=\"\/contact\/\" style=\"border-color:#dfc8e4;border-width:1.5px;border-style:solid;border-radius:9px;color:#ffffff;padding:15px 30px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.284), 16.5px);font-weight:600\">Get in touch<\/a><\/div>\n<\/div>\n\n\n<\/div>\n\n\n<\/div>\n\n\n\n<style>.eqp{--rc-accent:#562b60;--rc-band:#f5edf7;--rc-hover:#ecdff0;--rc-bg:#faf8f3}.eqp .eq-rc-btn{display:none}.eqp .eq-rc{position:relative}.eqp .eq-rc li[hidden]{display:block;margin:0;padding:0;height:0;line-height:0;font-size:0}.eqp .eq-rc li.rc-off{display:none}.eqp .eq-rc.is-collapsed::after{content:\"\";position:absolute;left:0;right:0;bottom:0;height:76px;background:linear-gradient(to bottom,transparent,var(--rc-bg) 94%);pointer-events:none}.eqp .eq-rc ~ .eq-rc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;min-width:260px;min-height:48px;margin:22px 0 0;padding:12px 26px;background:var(--rc-band);color:var(--rc-accent);border:1.5px solid var(--rc-accent);border-radius:9px;font-family:\"Work Sans\",system-ui,sans-serif;font-size:15px;font-weight:600;line-height:1.3;letter-spacing:normal;text-transform:none;text-decoration:none;text-align:center;box-shadow:none;cursor:pointer;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}.eqp .eq-rc ~ .eq-rc-btn:hover{background:var(--rc-hover);color:var(--rc-accent)}.eqp .eq-rc ~ .eq-rc-btn:focus-visible{outline:3px solid var(--rc-accent);outline-offset:3px}.eqp .eq-rc-chev{flex:0 0 auto;width:8px;height:8px;margin-top:-4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s ease}.eqp .eq-rc-btn[aria-expanded=\"true\"] .eq-rc-chev{margin-top:4px;transform:rotate(-135deg)}@media (max-width:640px){.eqp .eq-rc ~ .eq-rc-btn{display:flex;width:100%;min-width:0;margin:18px 0 0;padding:12px 10px}}@media (prefers-reduced-motion:reduce){.eqp .eq-rc-chev{transition:none}}@media print{.eqp .eq-rc-btn{display:none!important}.eqp .eq-rc::after{display:none!important}.eqp .eq-rc li[hidden]{display:list-item!important;content-visibility:visible!important;height:auto!important;font-size:inherit!important;line-height:inherit!important}.eqp .eq-rc li.rc-off{display:list-item!important}}<\/style><style id=\"eq-sweep-20oct\">\/* sweep-2026-10-20 design fixes (no text change). One new style element after the post's last one. rem sizes only. *\/\n\/* D1. Contents on phones: the title was squeezed to about 120px between the number, the minutes and the arrow, and wrapped to four lines at 390 and eight at 360. Up to 430px the number sits above the title and the minutes below it, so the title gets the row's full width. *\/\n@media (max-width:430px){\nbody .eqp .eq-toc details>summary,body .eqp .eq-toc .flat{flex-wrap:wrap;row-gap:.375rem}\nbody .eqp .eq-toc details>summary .num,body .eqp .eq-toc .flat .num,body .eqp .eq-toc details>summary .cnt,body .eqp .eq-toc .flat .cnt{flex-basis:100%}\nbody .eqp .eq-toc details>summary .cnt,body .eqp .eq-toc .flat .cnt{order:3}\n}\n\/* D2. Phones: the evidence note and the \"When nothing seems to matter\" box were 14.4px against 17px prose (the 13 Oct box rule only matches 21px paragraphs). *\/\n@media (max-width:640px){\nbody.single-post .eqp .vc-pn p[style*=\"19.5px)\"]{font-size:1.0625rem!important;line-height:1.62!important}\n}\n\/* D3. The closing panel heading is 17px on a phone, the same as its text: a 20px floor, the same curve from 768 up. *\/\nbody .eqp .eq-ondark h3.wp-block-heading{font-size:clamp(1.25rem,calc(.89rem + .84vw),1.5625rem)!important}\n\/* D4. The deck card's value name (26 to 30px) is as big as or bigger than the part titles (26 to 28.7px) below 1280px. 24px there; 30px from 1280 up, under the 31px part title. *\/\n@media (max-width:1279px){\nbody .eqp #vcCard .vc-name{font-size:1.5rem}\n}\n\/* D5. Tablets: the three pile buttons sit in one row and \"Not for me right now\" breaks onto two lines. Stack them as on phones. *\/\n@media (min-width:641px) and (max-width:899px){\nbody .eqp .vc-pilebtns{grid-template-columns:1fr}\n}\n\/* D6. \"THE DECK\" label hangs left of the deck on wide screens: line it up with the 760px deck body. *\/\nbody .eqp #vcDeck>.vc-eye{max-width:47.5rem;margin-left:auto;margin-right:auto}\n\/* D7. The quarter names around the two side-by-side compasses wrap to three lines from 900px up (\"freedom \/ and \/ discovery\"). A little more room. *\/\n@media (min-width:900px){\nbody .eqp .vc-two .vc-qlab{max-width:36%}\n}\n\/* D8. The value menu in \"One small step\" touches the next label (0px gap). *\/\nbody .eqp #vcStepBody .vc-set+.vc-field{margin-top:1.125rem}\n\/* D9. Lone last words: balance on short headings, pretty on sublines, captions, cards and list lines. Body paragraphs untouched. *\/\nbody .eqp h1.wp-block-heading,body .eqp h3.wp-block-heading,body .eqp .vc-ph h2,body .eqp .wt-next .ti{text-wrap:balance}\nbody .eqp .vc-ph .sb,body .eqp .eq-toc .ttl,body .eqp .vc-fig figcaption,body .eqp .eq-kp .t,body .eqp .eq-ff .t,body .eqp .wt-next .wy,body .eqp .vc-sv li,body .eqp .vc-at,body .eqp .vc-pn p,body .eqp .vc-hint,body .eqp .vc-line{text-wrap:pretty}\n\/* S2 (goes with the markup item S2a\/S2b; harmless without it). The forty-card list folds into a box like \"Missing a value? Write your own\". *\/\nbody .eqp .vc-allx{margin:1.75rem 0 2.125rem;background:var(--vc-paper);border:1.5px solid var(--vc-papere);border-radius:14px}\nbody .eqp .vc-allx>summary{box-sizing:border-box;display:flex;align-items:center;min-height:3.25rem;padding:0 1.125rem;color:var(--vc-plum);font-family:\"Work Sans\",system-ui,sans-serif;font-size:1rem;font-weight:600;cursor:pointer}\nbody .eqp .vc-allx[open]>summary{border-bottom:1.5px solid var(--vc-papere)}\nbody .eqp .vc-allx>.vc-all{margin:0;padding:1.125rem 1.125rem .5rem}\n\n\/* ===== build-v2, 20 Oct: the fast start, the Next links, the My compass card, print, phone reading sizes. rem sizes only, no ampersand. ===== *\/\n\n\/* the fast start under the short version (and, for a reader who keeps a compass on this device, the \"Welcome back\" line) *\/\n.eqp .vc-go{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:16px 28px;margin:18px 0 0;padding:20px 26px;background:var(--vc-paper);border:1.5px solid var(--vc-papere);border-left:5px solid var(--vc-plum);border-radius:18px;font-family:\"Work Sans\",system-ui,sans-serif}\n.eqp .vc-go p{margin:0;flex:1 1 auto;font-size:1.0625rem;line-height:1.5;color:var(--vc-ink);text-wrap:pretty}\n.eqp .vc-go .vc-btn{flex:none}\n.eqp a.vc-btn{text-decoration:none}\n@media(max-width:640px){.eqp .vc-go{display:block;padding:20px}.eqp .vc-go .vc-btn{display:flex;width:100%;margin:16px 0 0}}\n\n\/* \"Next\" links at the end of each tool, and the stop-any-time hint in the deck *\/\n.eqp .vc-next{margin:16px 0 0;font-family:\"Work Sans\",system-ui,sans-serif;font-size:1rem;line-height:1.4}\n.eqp .vc-next .vc-golink{font-weight:600}\n.eqp .vc-next .vc-golink::after{content:\"\\203A\";display:inline-block;margin-left:.45em;font-size:1.1em;line-height:1;text-decoration:none}\n.eqp .vc-stop{margin:16px 0 0}\n.eqp .vc-stop p.vc-hint{margin:0;text-wrap:pretty}\n.eqp .vc-stop .vc-next{margin:2px 0 0}\n\n\/* the My compass card: the house card (paper ground, hairline, plum spine) with the compass, the few, the step and the date *\/\n.eqp #vcMineBody{max-width:900px;margin:0 auto}\n.eqp .vc-mc{box-sizing:border-box;padding:30px 34px 26px;background:var(--vc-paper);border:1.5px solid var(--vc-papere);border-left:5px solid var(--vc-plum);border-radius:20px;color:var(--vc-ink);font-family:\"Work Sans\",system-ui,sans-serif}\n.eqp .vc-mc :where(p){margin:0}\n.eqp .vc-mc-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 18px;margin:0 0 22px;padding:0 0 14px;border-bottom:1.5px solid var(--vc-papere)}\n.eqp .vc-mc-t{font-size:1.5rem;font-weight:700;line-height:1.2;color:var(--vc-plumd)}\n.eqp .vc-mc-date{font-size:1rem;line-height:1.4;color:var(--vc-mute)}\n.eqp .vc-mc-body{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:26px 40px;align-items:center}\n.eqp .vc-mc .vc-compass{max-width:380px}\n.eqp .vc-mc .vc-compass .vc-qlab{max-width:36%}\n.eqp .vc-mc-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}\n.eqp .vc-mc-list li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:0 12px;align-items:start;margin:0;padding:0}\n.eqp .vc-mc-list .vc-lbadge{margin-top:1px}\n.eqp .vc-mc-list .nm{font-size:1.125rem;font-weight:700;line-height:1.3;color:var(--vc-ink)}\n.eqp .vc-mc-list .qq{font-size:1rem;font-weight:600;line-height:1.4;text-transform:lowercase}\n.eqp .vc-mc-list .rm{font-size:1rem;line-height:1.45;color:var(--vc-mute)}\n.eqp .vc-mc-hint{margin:14px 0 0;font-size:1rem;line-height:1.5;color:var(--vc-mute);text-wrap:pretty}\n.eqp .vc-mc-step{margin:24px 0 0;padding:18px 0 0;border-top:1.5px solid var(--vc-papere)}\n.eqp .vc-mc-step .vc-eye{margin:0 0 8px}\n.eqp .vc-mc-plan{font-size:1.1875rem;font-weight:600;line-height:1.45;color:var(--vc-plumd);text-wrap:pretty}\n.eqp .vc-mc-meta{display:flex;flex-wrap:wrap;gap:2px 22px;margin:8px 0 0;font-size:1rem;line-height:1.45;color:var(--vc-mute)}\n.eqp .vc-mc-foot{margin:22px 0 0;padding:14px 0 0;border-top:1.5px solid var(--vc-papere);font-size:.9375rem;line-height:1.4;color:var(--vc-mute)}\n.eqp .vc-mine-act{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 0}\n.eqp .vc-mine-note{margin:14px 0 0;font-size:1rem;line-height:1.5;color:var(--vc-mute);text-wrap:pretty}\n@media(max-width:899px){.eqp .vc-mc-body{grid-template-columns:minmax(0,1fr)}.eqp .vc-mc .vc-compass{margin-left:auto;margin-right:auto}}\n@media(max-width:640px){.eqp .vc-mc{padding:22px 20px 20px}.eqp .vc-mine-act{flex-direction:column}.eqp .vc-mine-act .vc-btn{width:100%}}\n@media(min-width:1280px){.eqp .vc-mc-t{font-size:1.75rem}}\n\n\/* phone reading sizes: captions, counts, hints, status lines and short notes were 15 to 15.5px next to 17px prose *\/\n@media(max-width:640px){\n.eqp .vc-fig figcaption,.eqp .vc-count,.eqp .vc-line,.eqp .vc-status,.eqp .vc-empty,.eqp .vc-rlab,.eqp .vc-chip.static,.eqp .vc-mc-foot{font-size:1rem}\n\/* the defining list in part 1 (\"Four things values get confused with\") was 14.4px at 390 against 17px prose: the 13 Oct box rule only reaches paragraphs, so the list gets the same 17px *\/\nbody.single-post .eqp ul.wp-block-list[style*=\"21px\"]{font-size:1.0625rem!important;line-height:1.65!important}\n}\n\n\/* print: only the My compass card, on one page. The script copies the card into #vcPrintRoot (a child of body) and sets html.vc-printing just for the print. *\/\n#vcPrintRoot{display:none}\n@media print{\n@page{margin:12mm}\nhtml.vc-printing body>*:not(#vcPrintRoot){display:none!important}\nhtml.vc-printing body{margin:0!important;padding:0!important;background:#fff!important}\nhtml.vc-printing #vcPrintRoot{display:block!important;margin:0!important;padding:0!important;background:#fff}\n#vcPrintRoot,#vcPrintRoot *{-webkit-print-color-adjust:exact;print-color-adjust:exact}\n#vcPrintRoot .vc-mc{break-inside:avoid;page-break-inside:avoid;border-radius:0;padding:6mm}\n#vcPrintRoot .vc-mc-body{grid-template-columns:minmax(0,330px) minmax(0,1fr)!important;gap:20px 28px!important;align-items:start}\n#vcPrintRoot .vc-mc .vc-compass{max-width:330px!important;margin:0!important}\n#vcPrintRoot .vc-mc .vc-compass .vc-qlab{max-width:42%!important;font-size:.8125rem}\n#vcPrintRoot .vc-qgrid,#vcPrintRoot .vc-noprint{display:none!important}\n}\n\n\/* the two links in the \"Want to start sorting now?\" line sit inside the sentence: the 44px tap area is padding, so the line keeps its height *\/\n.eqp .vc-back .vc-golink{display:inline;min-height:0;min-width:0;padding:.7rem 0}\n\n\/* ===== build-v3, 25 Oct: the rating compass stays on screen, the link targets, the keep switch under the deck, the piles on the deck's line. rem sizes only, no ampersand. ===== *\/\n\n\/* 1. The \"Last week\" compass follows the reader while they rate, so the needle they just grew is always in view. From 900px up the compass column is sticky beside the rows. Below 900px the compass is compact (12rem on a phone, 14rem on a tablet) and sticks to the top of the figure while the rows scroll under it. The quarter names move to the list under it, as they already do on a phone. *\/\n@media (min-width:900px){\nbody .eqp #vcRoom.vc-two>div:first-child{position:sticky;top:1.5rem}\n}\n@media (max-width:899px){\nbody .eqp #vcRoom.vc-two>div:first-child{display:contents}\nbody .eqp #vcRoom .vc-compass{position:sticky;top:.5rem;z-index:3;width:14rem;max-width:14rem;margin:0 auto .5rem;background:#fff;box-shadow:0 0 0 100vmax #fff;clip-path:inset(-.5rem -100vmax -.5rem -100vmax)}\nbody .eqp #vcRoom .vc-rate button,body .eqp #vcRoom .vc-sel,body .eqp #vcRoom .vc-chip{scroll-margin-top:16rem}\n}\n@media (min-width:641px) and (max-width:899px){\nbody .eqp #vcRoom .vc-compass .vc-qlab{display:none}\nbody .eqp #vcRoom .vc-qgrid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:.875rem 0 0}\nbody .eqp #vcRoom .vc-qgrid .vc-qlab{display:flex;position:static;max-width:none;min-height:0;padding:.25rem .125rem;border:0;background:none}\n}\n@media (max-width:640px){\nbody .eqp #vcRoom .vc-compass{width:12rem;max-width:12rem}\nbody .eqp #vcRoom .vc-rate button,body .eqp #vcRoom .vc-sel,body .eqp #vcRoom .vc-chip{scroll-margin-top:14rem}\n}\n\n\/* 2. The links that mean \"go and rate\" and \"go and plan\" land on the tool, not on the part head above it. *\/\nbody .eqp #vcRoom,body .eqp #vcStep{scroll-margin-top:1.5rem}\n\n\/* 3. The keep switch once more, under the deck. *\/\nbody .eqp #vcKeepDeck{margin:1.25rem 0 0;padding:1rem 0 0;border-top:1.5px solid var(--vc-papere)}\nbody .eqp #vcKeepDeck .vc-line{margin:.5rem 0 0}\n\n\/* 4. \"Your piles\", \"Missing a value?\" and \"Start over\" sit in the same 47.5rem column as the deck card. *\/\nbody .eqp #vcDeck #vcPiles,body .eqp #vcDeck #vcOwn,body .eqp #vcDeck #vcStartOver{box-sizing:border-box;max-width:47.5rem;margin-left:auto;margin-right:auto}\n\nbody .eqp h3.wp-block-heading,body .eqp .wt-next .ti{text-wrap:pretty}\n\/* Values Compass only (post 3489): \"Next\" links were inline-flex with a 52px box. When the text wraps,\n   the arrow is pushed to the far right edge and the text breaks unevenly. Make them ordinary inline\n   links (like .vc-back .vc-golink already is); the 44px+ tap area is padding, so the line height is kept. *\/\nbody .eqp .vc-golink{display:inline;min-height:0;min-width:0;padding:.7rem 0}\nbody .eqp .vc-next,body .eqp .vc-hint{text-wrap:pretty}<\/style>\n<script>(function(){\nif(window.eqRcLoaded){return;}\nwindow.eqRcLoaded=1;\nvar MQ=null,RM=null;\nif(window.matchMedia){\nMQ=window.matchMedia(\"(max-width: 640px)\");\nRM=window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n}\nvar UF=(\"onbeforematch\" in document.documentElement);\nvar INST=[];\nvar KEEP_PHONE=3,KEEP_WIDE=5,MAXOPEN=12;\nfunction keepNow(){\nvar phone=false;\nif(MQ){phone=MQ.matches;}\nif(phone){return KEEP_PHONE;}\nreturn KEEP_WIDE;\n}\nfunction findLists(){\nvar out=[],i,j,l,k,ok=false;\ntry{\nl=document.querySelectorAll(\".eqp .wp-block-group:has(> p.eq-lastrev) > ol\");\nfor(i=0;i<l.length;i++){out.push(l[i]);}\nok=true;\n}catch(e){ok=false;}\nif(!ok){\nl=document.querySelectorAll(\".eqp p.eq-lastrev\");\nfor(i=0;i<l.length;i++){\nk=l[i].parentNode.children;\nfor(j=0;j<k.length;j++){\nif(k[j].tagName===\"OL\"){out.push(k[j]);}\n}\n}\n}\nreturn out;\n}\nfunction setup(list,idx){\nif(list.getAttribute(\"data-rc\")===\"1\"){return;}\nvar items=[],i,kids=list.children;\nfor(i=0;i<kids.length;i++){\nif(kids[i].tagName===\"LI\"){items.push(kids[i]);}\n}\nif(items.length<=MAXOPEN){return;}\nvar head=list.previousElementSibling;\nif(!head){head=list;}\nvar noun=\"references\";\nvar ht=head.textContent||\"\";\nif(\/further\/i.test(ht)){\nif(!\/reference\/i.test(ht)){return;}\n}\nlist.setAttribute(\"data-rc\",\"1\");\nif(!list.id){list.id=\"eq-rc-list-\"+idx;}\nhead.style.scrollMarginTop=\"88px\";\nvar btn=document.createElement(\"button\");\nbtn.type=\"button\";\nbtn.className=\"eq-rc-btn\";\nbtn.setAttribute(\"aria-controls\",list.id);\nbtn.setAttribute(\"aria-expanded\",\"false\");\nvar lab=document.createElement(\"span\");\nvar chev=document.createElement(\"span\");\nchev.className=\"eq-rc-chev\";\nchev.setAttribute(\"aria-hidden\",\"true\");\nbtn.appendChild(lab);\nbtn.appendChild(chev);\nlist.parentNode.insertBefore(btn,list.nextSibling);\nlist.classList.add(\"eq-rc\");\nvar open=false;\nfunction paint(){\nvar keep=keepNow();\nvar k,li;\nfor(k=0;k<items.length;k++){\nli=items[k];\nif(k<keep){\nli.removeAttribute(\"hidden\");\nli.classList.remove(\"rc-off\");\n}else if(open){\nli.removeAttribute(\"hidden\");\nli.classList.remove(\"rc-off\");\n}else{\nif(UF){li.setAttribute(\"hidden\",\"until-found\");}\nelse{li.classList.add(\"rc-off\");}\n}\n}\nif(open){list.classList.remove(\"is-collapsed\");}\nelse{list.classList.add(\"is-collapsed\");}\nbtn.setAttribute(\"aria-expanded\",open?\"true\":\"false\");\nlab.textContent=open?\"Show fewer\":\"Show all \"+items.length+\" \"+noun;\n}\nbtn.addEventListener(\"click\",function(){\nvar t0=btn.getBoundingClientRect().top;\nopen=!open;\npaint();\nif(!open){\nvar d=btn.getBoundingClientRect().top-t0;\nif(d){window.scrollBy({top:d,left:0,behavior:\"instant\"});}\n}\n});\nlist.addEventListener(\"beforematch\",function(){\nif(!open){open=true;paint();}\n});\nvar was=false;\nwindow.addEventListener(\"beforeprint\",function(){was=open;open=true;paint();});\nwindow.addEventListener(\"afterprint\",function(){open=was;paint();});\nif(MQ){\nif(MQ.addEventListener){MQ.addEventListener(\"change\",paint);}\nelse if(MQ.addListener){MQ.addListener(paint);}\n}\nINST.push(function(target){\nif(target===list){return false;}\nif(!list.contains(target)){return false;}\nif(open){return false;}\nvar n=target;\nwhile(n.parentNode!==list){n=n.parentNode;}\nif(items.indexOf(n)<keepNow()){return false;}\nopen=true;\npaint();\nreturn true;\n});\npaint();\n}\nfunction targetOf(hash){\nif(!hash){return null;}\nif(hash.length<2){return null;}\nvar id=hash.slice(1);\ntry{id=decodeURIComponent(id);}catch(e){id=hash.slice(1);}\nreturn document.getElementById(id);\n}\nfunction reveal(target){\nvar i,did=false;\nif(!target){return false;}\nfor(i=0;i<INST.length;i++){\nif(INST[i](target)){did=true;}\n}\nreturn did;\n}\nfunction fromHash(){\nvar t=targetOf(window.location.hash);\nif(reveal(t)){\nt.scrollIntoView({block:\"start\"});\n}\n}\nfunction run(){\nvar lists=findLists(),b;\nfor(b=0;b<lists.length;b++){setup(lists[b],b);}\nfromHash();\n}\ndocument.addEventListener(\"click\",function(e){\nvar a=e.target;\nwhile(a){\nif(a.tagName===\"A\"){break;}\na=a.parentNode;\n}\nif(!a){return;}\nif(!a.getAttribute){return;}\nvar h=a.getAttribute(\"href\");\nif(!h){return;}\nif(h.charAt(0)!==\"#\"){return;}\nreveal(targetOf(h));\n},true);\nwindow.addEventListener(\"hashchange\",fromHash);\nwindow.addEventListener(\"load\",fromHash);\nrun();\nif(document.readyState===\"loading\"){\ndocument.addEventListener(\"DOMContentLoaded\",run);\n}\n})();<\/script>\n\n\n\n<p id=\"vcLive\" class=\"vc-sr\" aria-live=\"polite\"><\/p>\n<noscript><p style=\"padding:20px 0;margin:0\">This compass needs JavaScript to run. Everything else on this page still works without it.<\/p><\/noscript>\n<script>\/* The Values Compass: the client script. One IIFE, ES5 style.\n   House rules for this file: no ampersand anywhere (WordPress turns it into an entity and the\n   script dies), so every \"and\" is a nested if; no spaced hyphen; no calls that scroll the page. *\/\n(function () {\n  \"use strict\";\n  var D = {\"quarters\":[{\"id\":\"care\",\"name\":\"caring and fairness\",\"blurb\":\"Looking after people, near and far, and the world you share.\",\"start\":0,\"across\":\"well\",\"m\":\"#6d3576\",\"t\":\"#6d3576\",\"w\":\"#f7eff8\"},{\"id\":\"root\",\"name\":\"roots and belonging\",\"blurb\":\"Family, faith, tradition and the steadiness that holds a life together.\",\"start\":90,\"across\":\"free\",\"m\":\"#3e5a1b\",\"t\":\"#3e5a1b\",\"w\":\"#f2f7ee\"},{\"id\":\"well\",\"name\":\"doing well and enjoying\",\"blurb\":\"Doing things well, providing for others, and taking time for pleasure.\",\"start\":180,\"across\":\"care\",\"m\":\"#a46600\",\"t\":\"#8a5600\",\"w\":\"#fcf5e9\"},{\"id\":\"free\",\"name\":\"freedom and discovery\",\"blurb\":\"Curiosity, choosing your own way, and trying what's new.\",\"start\":270,\"across\":\"root\",\"m\":\"#167e8f\",\"t\":\"#0e6978\",\"w\":\"#edf6f8\"}],\"cards\":[{\"id\":\"kindness\",\"name\":\"kindness\",\"q\":\"care\",\"line\":\"I treat people gently, and I count myself as one of those people.\"},{\"id\":\"caring\",\"name\":\"caring\",\"q\":\"care\",\"line\":\"I look after people who need me, like a child, a parent getting older or a friend who's ill.\"},{\"id\":\"closeness\",\"name\":\"closeness\",\"q\":\"care\",\"line\":\"I share my inner world with the people I love, and I listen when they share theirs.\"},{\"id\":\"loyalty\",\"name\":\"loyalty\",\"q\":\"care\",\"line\":\"I stand by my people when things get hard.\"},{\"id\":\"honesty\",\"name\":\"honesty\",\"q\":\"care\",\"line\":\"I tell the truth, and I think about how it will land.\"},{\"id\":\"forgiveness\",\"name\":\"forgiveness\",\"q\":\"care\",\"line\":\"I let go of grudges when I'm ready, including the ones I hold against myself.\"},{\"id\":\"generosity\",\"name\":\"generosity\",\"q\":\"care\",\"line\":\"I share what I have, whether that's time, attention, food, money or skills.\"},{\"id\":\"gratitude\",\"name\":\"gratitude\",\"q\":\"care\",\"line\":\"I notice what others give me, and I say thank you.\"},{\"id\":\"fairness\",\"name\":\"fairness\",\"q\":\"care\",\"line\":\"I play fair, and I speak up when something is unjust.\"},{\"id\":\"earth\",\"name\":\"care for the earth\",\"q\":\"care\",\"line\":\"I look after the land, water and animals, in what I buy, use and throw away.\"},{\"id\":\"family\",\"name\":\"family\",\"q\":\"root\",\"line\":\"I make time and space for the people I call family, by birth or by choice.\"},{\"id\":\"belonging\",\"name\":\"belonging\",\"q\":\"root\",\"line\":\"I show up for the groups I'm part of, like a team, a neighborhood or a club.\"},{\"id\":\"heritage\",\"name\":\"heritage\",\"q\":\"root\",\"line\":\"I keep alive the language, customs and stories I come from.\"},{\"id\":\"faith\",\"name\":\"faith\",\"q\":\"root\",\"line\":\"I live by my faith or spiritual practice, in whatever form it takes for me.\"},{\"id\":\"respect\",\"name\":\"respect\",\"q\":\"root\",\"line\":\"I treat everyone with dignity, from my elders to people I disagree with.\"},{\"id\":\"harmony\",\"name\":\"harmony\",\"q\":\"root\",\"line\":\"I keep the peace, and I think about how what I do affects the people around me.\"},{\"id\":\"duty\",\"name\":\"duty\",\"q\":\"root\",\"line\":\"I keep my promises and do my part, for my family, my community or my work.\"},{\"id\":\"safety\",\"name\":\"safety\",\"q\":\"root\",\"line\":\"I keep myself and the people close to me safe, and I build a life that feels steady.\"},{\"id\":\"discipline\",\"name\":\"self-discipline\",\"q\":\"root\",\"line\":\"I do what I decided to do, even when I don't feel like it.\"},{\"id\":\"balance\",\"name\":\"balance\",\"q\":\"root\",\"line\":\"I aim for enough, not too much, in work, spending and screen time.\"},{\"id\":\"curiosity\",\"name\":\"curiosity\",\"q\":\"free\",\"line\":\"I ask questions and follow what interests me.\"},{\"id\":\"learning\",\"name\":\"learning\",\"q\":\"free\",\"line\":\"I keep studying and picking up new skills, in a classroom or out of one.\"},{\"id\":\"creativity\",\"name\":\"creativity\",\"q\":\"free\",\"line\":\"I make things, ideas or solutions that weren't there before.\"},{\"id\":\"freedom\",\"name\":\"freedom\",\"q\":\"free\",\"line\":\"I make my own choices about how I live and how I spend my time.\"},{\"id\":\"myself\",\"name\":\"being myself\",\"q\":\"free\",\"line\":\"I let people see the real me, even when it isn't the popular thing.\"},{\"id\":\"adventure\",\"name\":\"adventure\",\"q\":\"free\",\"line\":\"I try new places, foods, people and experiences.\"},{\"id\":\"courage\",\"name\":\"courage\",\"q\":\"free\",\"line\":\"I do the hard or frightening thing when it matters.\"},{\"id\":\"awe\",\"name\":\"awe\",\"q\":\"free\",\"line\":\"I make time for things that make me feel small in a good way, like nature, music or the sky.\"},{\"id\":\"meaning\",\"name\":\"meaning\",\"q\":\"free\",\"line\":\"I spend my time on things that connect me to something bigger than myself.\"},{\"id\":\"selfrespect\",\"name\":\"self-respect\",\"q\":\"free\",\"line\":\"I take my own needs and limits seriously, and I'm willing to say no.\"},{\"id\":\"craft\",\"name\":\"doing things well\",\"q\":\"well\",\"line\":\"I put real care and effort into my work or my craft.\"},{\"id\":\"achievement\",\"name\":\"achievement\",\"q\":\"well\",\"line\":\"I set myself challenges and see them through.\"},{\"id\":\"growth\",\"name\":\"growth\",\"q\":\"well\",\"line\":\"I keep stretching, and I learn from what goes wrong.\"},{\"id\":\"providing\",\"name\":\"providing\",\"q\":\"well\",\"line\":\"I earn and manage money well, so my household has what it needs.\"},{\"id\":\"leadership\",\"name\":\"leadership\",\"q\":\"well\",\"line\":\"I step up and help a group find its way when that's needed.\"},{\"id\":\"goodname\",\"name\":\"good name\",\"q\":\"well\",\"line\":\"I live in a way that does my family and community proud, seen or unseen.\"},{\"id\":\"body\",\"name\":\"health\",\"q\":\"well\",\"line\":\"I give my body the movement, sleep and food it needs.\"},{\"id\":\"enjoyment\",\"name\":\"enjoyment\",\"q\":\"well\",\"line\":\"I let myself enjoy the good things, like a long meal, a favorite song or a slow morning.\"},{\"id\":\"play\",\"name\":\"playfulness\",\"q\":\"well\",\"line\":\"I play, I get silly, and I look for things to laugh about.\"},{\"id\":\"present\",\"name\":\"being present\",\"q\":\"well\",\"line\":\"When I'm with someone or doing something, I try to really be there.\"}],\"deck\":[\"kindness\",\"family\",\"curiosity\",\"craft\",\"caring\",\"belonging\",\"learning\",\"achievement\",\"closeness\",\"heritage\",\"creativity\",\"growth\",\"loyalty\",\"faith\",\"freedom\",\"providing\",\"honesty\",\"respect\",\"myself\",\"leadership\",\"forgiveness\",\"harmony\",\"adventure\",\"goodname\",\"generosity\",\"duty\",\"courage\",\"body\",\"gratitude\",\"safety\",\"awe\",\"enjoyment\",\"fairness\",\"discipline\",\"meaning\",\"play\",\"earth\",\"balance\",\"selfrespect\",\"present\"],\"piles\":{\"a\":\"Matters a lot\",\"s\":\"Matters some\",\"n\":\"Not for me right now\"},\"room\":[{\"n\":0,\"aria\":\"0, no room\",\"label\":\"No room.\"},{\"n\":1,\"aria\":\"1, a little room\",\"label\":\"A little room.\"},{\"n\":2,\"aria\":\"2, some room\",\"label\":\"Some room.\"},{\"n\":3,\"aria\":\"3, a good amount of room\",\"label\":\"A good amount of room.\"},{\"n\":4,\"aria\":\"4, plenty of room\",\"label\":\"Plenty of room.\"}],\"ways\":{\"hard\":{\"label\":\"a hard week\",\"line\":\"Some weeks take everything you've got, and it makes sense that less fit in.\"},\"tired\":{\"label\":\"tired or unwell\",\"line\":\"When you're tired or unwell, less fits into a week. Looking after yourself counts too.\"},\"value\":{\"label\":\"another value came first\",\"line\":\"Another value got the room this time. You were still living what matters.\"},\"others\":{\"label\":\"other people's needs\",\"line\":\"Making room for someone else is often one of your values at work, too.\"},\"unsure\":{\"label\":\"not sure\",\"line\":\"That's fine. Noticing is enough for this week.\"}},\"areas\":[\"family and home\",\"love\",\"friends and community\",\"work, study and contribution\",\"body and health\",\"rest and play\"],\"key\":\"eq-values-compass-v1\"};\n  var QS = D.quarters, CARDS = D.cards, DECK = D.deck, PILES = D.piles, ROOMS = D.room, WAYS = D.ways, AREAS = D.areas, KEY = D.key;\n  var INK = \"#2a2622\", PLUM = \"#562b60\", MUTE = \"#6b6259\";\n  var NS = \"http:\/\/www.w3.org\/2000\/svg\";\n  var doc = document;\n  var PKEYS = [\"a\", \"s\", \"n\"];\n  var CP = \"-\" + \"-vc-\";\n\n  \/* == small helpers == *\/\n  function $(id) { return doc.getElementById(id); }\n  function el(tag, props, kids) {\n    var e = doc.createElement(tag), k, v, i, c;\n    if (props) {\n      for (k in props) {\n        if (!props.hasOwnProperty(k)) { continue; }\n        v = props[k];\n        if (v === null) { continue; }\n        if (v === undefined) { continue; }\n        if (v === false) { continue; }\n        if (k === \"text\") { e.textContent = v; }\n        else if (k === \"cls\") { e.className = v; }\n        else if (k === \"fk\") { e.setAttribute(\"data-fk\", v); }\n        else { e.setAttribute(k, v === true ? \"\" : String(v)); }\n      }\n      if (props[\"data-act\"]) {\n        if (!props.fk) { e.setAttribute(\"data-fk\", props[\"data-act\"] + \":\" + (props[\"data-id\"] || \"\") + \":\" + (props[\"data-v\"] === undefined ? \"\" : props[\"data-v\"])); }\n      }\n    }\n    if (kids) {\n      for (i = 0; i < kids.length; i++) {\n        c = kids[i];\n        if (c === null) { continue; }\n        if (c === undefined) { continue; }\n        if (c === false) { continue; }\n        e.appendChild(typeof c === \"string\" ? doc.createTextNode(c) : c);\n      }\n    }\n    return e;\n  }\n  function sv(tag, attrs) {\n    var e = doc.createElementNS(NS, tag), k;\n    for (k in attrs) { if (attrs.hasOwnProperty(k)) { e.setAttribute(k, String(attrs[k])); } }\n    return e;\n  }\n  function clear(n) { while (n.firstChild) { n.removeChild(n.firstChild); } }\n  function lowerFirst(s) { s = String(s || \"\"); return s.charAt(0).toLowerCase() + s.slice(1); }\n  function pad2(n) { return (n < 10 ? \"0\" : \"\") + n; }\n  function f2(n) { return Math.round(n * 100) \/ 100; }\n  function plural(n, w) { return n + \" \" + w + (n === 1 ? \"\" : \"s\"); }\n  function focusEl(e) { if (!e) { return; } try { e.focus({preventScroll: true}); } catch (x) { } }\n  function activeKey() {\n    var a = doc.activeElement;\n    if (!a) { return \"\"; }\n    if (!a.getAttribute) { return \"\"; }\n    return a.getAttribute(\"data-fk\") || \"\";\n  }\n  \/* rebuild a mount and put keyboard focus back on the control that had it, without scrolling *\/\n  function rebuild(mount, fn) {\n    var had = false, fk = \"\", n;\n    if (doc.activeElement) { if (mount.contains(doc.activeElement)) { had = true; fk = activeKey(); } }\n    fn();\n    if (had) {\n      if (fk) {\n        n = mount.querySelector('[data-fk=\"' + fk + '\"]');\n        if (n) { focusEl(n); }\n      }\n    }\n  }\n  var liveT = null;\n  function say(t) {\n    var l = $(\"vcLive\");\n    if (!l) { return; }\n    l.textContent = \"\";\n    if (liveT) { clearTimeout(liveT); }\n    liveT = setTimeout(function () { l.textContent = t; }, 30);\n  }\n  function actOf(e, root) {\n    var t = e.target;\n    while (t) {\n      if (t === root) { return null; }\n      if (t.getAttribute) { if (t.getAttribute(\"data-act\")) { return t; } }\n      t = t.parentNode;\n    }\n    return null;\n  }\n\n  \/* == data == *\/\n  var Q = {}, byId = {};\n  QS.forEach(function (q) { Q[q.id] = q; });\n  CARDS.forEach(function (c) { byId[c.id] = c; });\n\n  function fresh() {\n    return {v: 1, keep: false, order: DECK.slice(), sorted: {}, undo: [], own: [], picks: [], mine: {}, room: {}, way: {}, step: {v: \"\", what: \"\", when: \"\", area: \"\"}, weeks: []};\n  }\n  var S = fresh();\n  var T = {keyQ: \"\", moving: \"\", confirm: \"\", showAll: false, noteClosed: {}, blocked: false, hasRecord: false, ta: false, msg: {}, grow: \"\"};\n  var NOW = function () { return new Date(); };\n\n  function ownCard(id) {\n    var i;\n    for (i = 0; i < S.own.length; i++) { if (S.own[i].id === id) { return S.own[i]; } }\n    return null;\n  }\n  function card(id) {\n    if (byId[id]) { return byId[id]; }\n    var o = ownCard(id);\n    if (o) { return {id: o.id, name: o.name, q: o.q || \"\", line: o.line || \"\", own: true}; }\n    return null;\n  }\n  function nameOf(id) { var c = card(id); if (!c) { return \"\"; } return c.name; }\n  function qOf(id) { var c = card(id); if (!c) { return \"\"; } return c.q || \"\"; }\n  function pileOf(id) { return S.sorted[id] || \"\"; }\n  function inPile(p) {\n    var out = [], i, id;\n    for (i = 0; i < DECK.length; i++) { id = DECK[i]; if (S.sorted[id] === p) { out.push(id); } }\n    for (i = 0; i < S.own.length; i++) { id = S.own[i].id; if (S.sorted[id] === p) { out.push(id); } }\n    return out;\n  }\n  function col(id) {\n    var q = qOf(id);\n    if (q) { return {m: Q[q].m, t: Q[q].t, w: Q[q].w, own: false}; }\n    return {m: INK, t: INK, w: \"#ffffff\", own: true};\n  }\n  function qName(id) { var q = qOf(id); if (q) { return Q[q].name; } return \"your own card\"; }\n  function totalCards() { return DECK.length + S.own.length; }\n  function sortedCount() { var n = 0, k; for (k in S.sorted) { if (S.sorted.hasOwnProperty(k)) { n += 1; } } return n; }\n  function pileLower(p) { return lowerFirst(PILES[p]); }\n\n  \/* == dates == *\/\n  function weekStart(d) {\n    var x = new Date(d.getFullYear(), d.getMonth(), d.getDate());\n    var dow = (x.getDay() + 6) % 7;\n    x.setDate(x.getDate()-dow);\n    return x.getFullYear() + \"-\" + pad2(x.getMonth() + 1) + \"-\" + pad2(x.getDate());\n  }\n  function parseW(w) { var p = w.split(\"-\"); return new Date(+p[0], +p[1]-1, +p[2]); }\n  function fmt(d, o) { try { return d.toLocaleDateString(undefined, o); } catch (e) { return d.toDateString(); } }\n\n  \/* == storage: nothing is written unless the reader switches saving on == *\/\n  function store() { try { return window.localStorage || null; } catch (e) { return null; } }\n  function write() {\n    var st = store();\n    if (!st) { return false; }\n    try { st.setItem(KEY, JSON.stringify(S)); T.hasRecord = true; return true; } catch (e) { return false; }\n  }\n  var pT = null;\n  function persist() {\n    refreshExtras();\n    if (!S.keep) { return; }\n    if (pT) { clearTimeout(pT); }\n    pT = setTimeout(function () { pT = null; if (S.keep) { write(); } }, 300);\n  }\n  function flush() {\n    if (pT) { clearTimeout(pT); pT = null; }\n    if (S.keep) { write(); }\n  }\n  function isPlain(o) { return typeof o === \"object\" ? o !== null : false; }\n  function load() {\n    var st = store(), raw = null, o, i, k, s, ids = {};\n    if (!st) { T.blocked = true; return; }\n    try { raw = st.getItem(KEY); } catch (e) { T.blocked = true; return; }\n    if (!raw) { return; }\n    try { o = JSON.parse(raw); } catch (e2) { return; }\n    if (!isPlain(o)) { return; }\n    if (o.v !== 1) { return; }\n    T.hasRecord = true;\n    S.keep = o.keep === true;\n    if (Array.isArray(o.own)) {\n      for (i = 0; i < o.own.length; i++) {\n        s = o.own[i];\n        if (!isPlain(s)) { continue; }\n        if (!\/^own[1-3]$\/.test(String(s.id))) { continue; }\n        if (S.own.length >= 3) { continue; }\n        if (ownCard(s.id)) { continue; }\n        S.own.push({id: s.id, name: String(s.name || \"\").slice(0, 40), line: String(s.line || \"\").slice(0, 110), q: Q[s.q] ? s.q : \"\"});\n      }\n    }\n    for (i = 0; i < DECK.length; i++) { ids[DECK[i]] = 1; }\n    for (i = 0; i < S.own.length; i++) { ids[S.own[i].id] = 1; }\n    if (isPlain(o.sorted)) {\n      for (k in o.sorted) {\n        if (!o.sorted.hasOwnProperty(k)) { continue; }\n        if (!ids[k]) { continue; }\n        if (PKEYS.indexOf(o.sorted[k]) < 0) { continue; }\n        S.sorted[k] = o.sorted[k];\n      }\n    }\n    S.order = [];\n    if (Array.isArray(o.order)) {\n      for (i = 0; i < o.order.length; i++) {\n        if (byId[o.order[i]]) { if (!S.sorted[o.order[i]]) { if (S.order.indexOf(o.order[i]) < 0) { S.order.push(o.order[i]); } } }\n      }\n    }\n    for (i = 0; i < DECK.length; i++) { if (!S.sorted[DECK[i]]) { if (S.order.indexOf(DECK[i]) < 0) { S.order.push(DECK[i]); } } }\n    if (Array.isArray(o.undo)) {\n      for (i = 0; i < o.undo.length; i++) { if (byId[o.undo[i]]) { if (S.sorted[o.undo[i]]) { S.undo.push(o.undo[i]); } } }\n    }\n    for (i = 0; i < S.own.length; i++) { if (!S.sorted[S.own[i].id]) { S.sorted[S.own[i].id] = \"a\"; } }\n    if (Array.isArray(o.picks)) {\n      for (i = 0; i < o.picks.length; i++) {\n        if (ids[o.picks[i]]) { if (S.picks.indexOf(o.picks[i]) < 0) { if (S.picks.length < 5) { S.picks.push(o.picks[i]); } } }\n      }\n    }\n    if (isPlain(o.mine)) { for (k in o.mine) { if (o.mine.hasOwnProperty(k)) { if (ids[k]) { if (o.mine[k] === \"yes\" || o.mine[k] === \"should\") { S.mine[k] = o.mine[k]; } } } } }\n    if (isPlain(o.room)) { for (k in o.room) { if (o.room.hasOwnProperty(k)) { if (ids[k]) { if (typeof o.room[k] === \"number\") { if (o.room[k] >= 0) { if (o.room[k] <= 4) { S.room[k] = Math.floor(o.room[k]); } } } } } } }\n    if (isPlain(o.way)) { for (k in o.way) { if (o.way.hasOwnProperty(k)) { if (ids[k]) { if (WAYS[o.way[k]]) { S.way[k] = o.way[k]; } } } } }\n    if (isPlain(o.step)) {\n      S.step.v = ids[o.step.v] ? o.step.v : \"\";\n      S.step.what = String(o.step.what || \"\").slice(0, 140);\n      S.step.when = String(o.step.when || \"\").slice(0, 80);\n      S.step.area = AREAS.indexOf(o.step.area) >= 0 ? o.step.area : \"\";\n    }\n    if (Array.isArray(o.weeks)) {\n      for (i = 0; i < o.weeks.length; i++) {\n        s = o.weeks[i];\n        if (!isPlain(s)) { continue; }\n        if (!\/^\\d{4}-\\d\\d-\\d\\d$\/.test(String(s.w))) { continue; }\n        if (S.weeks.length >= 104) { continue; }\n        var wk = {w: s.w, r: {}, p: [], names: {}};\n        if (isPlain(s.r)) { for (k in s.r) { if (s.r.hasOwnProperty(k)) { if (typeof s.r[k] === \"number\") { if (s.r[k] >= 0) { if (s.r[k] <= 4) { wk.r[String(k)] = Math.floor(s.r[k]); } } } } } }\n        if (Array.isArray(s.p)) { s.p.forEach(function (x) { if (typeof x === \"string\") { if (wk.p.length < 5) { wk.p.push(x); } } }); }\n        if (isPlain(s.names)) { for (k in s.names) { if (s.names.hasOwnProperty(k)) { if (typeof s.names[k] === \"string\") { wk.names[k] = s.names[k].slice(0, 40); } } } }\n        S.weeks.push(wk);\n      }\n      S.weeks.sort(function (a, b) { return a.w < b.w ? -1 : (a.w > b.w ? 1 : 0); });\n    }\n  }\n\n  \/* == the compass drawing == *\/\n  function pt(theta, r) { var a = theta * Math.PI \/ 180; return {x: 200 + r * Math.sin(a), y: 200-r * Math.cos(a)}; }\n  function sectorPath(s) {\n    var a = pt(s, 150), b = pt(s + 90, 150);\n    return \"M200,200 L\" + f2(a.x) + \",\" + f2(a.y) + \" A150,150 0 0 1 \" + f2(b.x) + \",\" + f2(b.y) + \" Z\";\n  }\n  function gapMid(out) {\n    var a = [], k, i, best = -1, mid = 0, from, to, gap;\n    for (k in out) { if (out.hasOwnProperty(k)) { a.push(out[k]); } }\n    if (!a.length) { return 0; }\n    a.sort(function (x, y) { return x-y; });\n    for (i = 0; i < a.length; i++) {\n      from = a[i];\n      to = (i + 1 < a.length) ? a[i + 1] : a[0] + 360;\n      gap = to-from;\n      if (gap > best) { best = gap; mid = (from + gap \/ 2) % 360; }\n    }\n    return mid;\n  }\n  \/* the rule in plan.md section 4: k picks in a quarter that starts at s sit at s + 90 (j + 1) \/ (k + 1); an own card with no quarter takes the middle of the largest empty arc *\/\n  function bearings() {\n    var out = {}, groups = {}, none = [], i, id, q, j, k, s;\n    for (i = 0; i < S.picks.length; i++) {\n      id = S.picks[i];\n      q = qOf(id);\n      if (q) { if (!groups[q]) { groups[q] = []; } groups[q].push(id); } else { none.push(id); }\n    }\n    for (q in groups) {\n      if (!groups.hasOwnProperty(q)) { continue; }\n      k = groups[q].length;\n      s = Q[q].start;\n      for (j = 0; j < k; j++) { out[groups[q][j]] = s + 90 * (j + 1) \/ (k + 1); }\n    }\n    for (i = 0; i < none.length; i++) { out[none[i]] = gapMid(out); }\n    return out;\n  }\n  var CORNER = {care: \"tr\", root: \"br\", well: \"bl\", free: \"tl\"};\n  var GRID_ORDER = [\"free\", \"care\", \"well\", \"root\"];\n\n  function qLabel(q, mode, grid) {\n    var inner = [el(\"i\", {cls: \"sw\", style: \"background:\" + q.m, \"aria-hidden\": \"true\"}), el(\"span\", {text: q.name})];\n    var style = \"color:\" + q.t;\n    var cls = grid ? \"vc-qlab\" : \"vc-qlab c-\" + CORNER[q.id];\n    if (mode === \"key\") {\n      var on = T.keyQ === q.id;\n      return el(\"button\", {type: \"button\", cls: cls + (on ? \" on\" : \"\"), style: style, \"aria-pressed\": on ? \"true\" : \"false\", \"aria-label\": q.name + \", show its cards\", \"data-act\": \"keyq\", \"data-id\": q.id, fk: \"keyq:\" + q.id + (grid ? \":g\" : \":c\")}, inner);\n    }\n    return el(\"p\", {cls: cls, style: style}, inner);\n  }\n\n  \/* compass(el, mode): mode is key, bearings or room. It draws the svg, the badges and the quarter labels, and fills the .vc-qgrid that follows it. *\/\n  function compass(host, mode, opts) {\n    opts = opts || {};\n    var B = bearings(), svg, i, q, id, c, n, th, e, p, len, lab, grid;\n    clear(host);\n    svg = sv(\"svg\", {viewBox: \"0 0 400 400\", \"aria-hidden\": \"true\", focusable: \"false\"});\n    if (mode === \"key\") {\n      var defs = sv(\"defs\", {});\n      var mk = sv(\"marker\", {id: \"vcArrow\", viewBox: \"0 0 8 8\", refX: \"4\", refY: \"4\", markerWidth: \"7\", markerHeight: \"7\", orient: \"auto-start-reverse\"});\n      mk.appendChild(sv(\"path\", {d: \"M1 1L7 4L1 7\", fill: \"none\", stroke: MUTE, \"stroke-width\": \"1.5\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\"}));\n      defs.appendChild(mk);\n      svg.appendChild(defs);\n    }\n    var opp = T.keyQ ? Q[T.keyQ].across : \"\";\n    for (i = 0; i < QS.length; i++) {\n      q = QS[i];\n      var attrs = {d: sectorPath(q.start), fill: q.w, \"class\": \"vc-sec\"};\n      if (mode === \"key\") {\n        attrs[\"data-act\"] = \"keyq\";\n        attrs[\"data-id\"] = q.id;\n        if (T.keyQ === q.id) { attrs.fill = q.m; attrs[\"fill-opacity\"] = \".16\"; attrs.stroke = q.m; attrs[\"stroke-width\"] = \"2\"; attrs[\"stroke-linejoin\"] = \"round\"; }\n        else if (opp === q.id) { attrs.stroke = q.m; attrs[\"stroke-width\"] = \"1.5\"; attrs[\"stroke-dasharray\"] = \"5 4\"; attrs[\"stroke-linejoin\"] = \"round\"; }\n      }\n      svg.appendChild(sv(\"path\", attrs));\n    }\n    [37.5, 75, 112.5].forEach(function (r) { svg.appendChild(sv(\"circle\", {cx: 200, cy: 200, r: r, fill: \"none\", stroke: \"#e8e1d5\", \"stroke-width\": \"1\", \"stroke-dasharray\": \"2 5\"})); });\n    svg.appendChild(sv(\"line\", {x1: 200, y1: 50, x2: 200, y2: 350, stroke: \"#e8e1d5\", \"stroke-width\": \"1\"}));\n    svg.appendChild(sv(\"line\", {x1: 50, y1: 200, x2: 350, y2: 200, stroke: \"#e8e1d5\", \"stroke-width\": \"1\"}));\n    svg.appendChild(sv(\"circle\", {cx: 200, cy: 200, r: 150, fill: \"none\", stroke: \"#754481\", \"stroke-width\": \"1.5\"}));\n    [0, 90, 180, 270].forEach(function (b) {\n      var a = pt(b, 150), z = pt(b, 162);\n      svg.appendChild(sv(\"line\", {x1: f2(a.x), y1: f2(a.y), x2: f2(z.x), y2: f2(z.y), stroke: \"#754481\", \"stroke-width\": \"2\", \"stroke-linecap\": \"round\"}));\n    });\n    if (mode === \"key\") {\n      if (T.keyQ) {\n        var cq = Q[T.keyQ], oq = Q[cq.across];\n        \/* a tug from the hub: solid toward the tapped quarter, dashed toward the quarter that pulls against it *\/\n        [[\"vcArrowC\", cq.m], [\"vcArrowO\", oq.m]].forEach(function (m) {\n          var k = sv(\"marker\", {id: m[0], viewBox: \"0 0 8 8\", refX: \"5\", refY: \"4\", markerWidth: \"8\", markerHeight: \"8\", orient: \"auto\"});\n          k.appendChild(sv(\"path\", {d: \"M1 1L7 4L1 7\", fill: \"none\", stroke: m[1], \"stroke-width\": \"1.8\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\"}));\n          defs.appendChild(k);\n        });\n        var c0 = pt(cq.start + 45, 9), c1 = pt(cq.start + 45, 116), o0 = pt(oq.start + 45, 9), o1 = pt(oq.start + 45, 116);\n        svg.appendChild(sv(\"line\", {x1: f2(c0.x), y1: f2(c0.y), x2: f2(c1.x), y2: f2(c1.y), stroke: cq.m, \"stroke-width\": \"3\", \"stroke-linecap\": \"round\", \"marker-end\": \"url(#vcArrowC)\"}));\n        svg.appendChild(sv(\"line\", {x1: f2(o0.x), y1: f2(o0.y), x2: f2(o1.x), y2: f2(o1.y), stroke: oq.m, \"stroke-width\": \"2\", \"stroke-dasharray\": \"5 5\", \"stroke-linecap\": \"round\", \"marker-end\": \"url(#vcArrowO)\"}));\n      }\n    }\n    if (mode !== \"key\") {\n      for (i = 0; i < S.picks.length; i++) {\n        id = S.picks[i];\n        c = col(id);\n        th = B[id];\n        e = pt(th, 150);\n        svg.appendChild(sv(\"line\", {x1: 200, y1: 200, x2: f2(e.x), y2: f2(e.y), stroke: c.m, \"stroke-width\": \"1.5\", \"stroke-dasharray\": \"3 5\", \"stroke-linecap\": \"round\", opacity: \".6\", \"class\": \"vc-track\"}));\n      }\n    }\n    \/* the hub sits under the needle tips, so a room of 0 shows as a dot at the centre *\/\n    svg.appendChild(sv(\"circle\", {cx: 200, cy: 200, r: 6, fill: PLUM}));\n    if (mode === \"room\") {\n      for (i = 0; i < S.picks.length; i++) {\n        id = S.picks[i];\n        if (S.room[id] === undefined) { continue; }\n        c = col(id);\n        n = S.room[id];\n        th = B[id];\n        len = n * 37.5;\n        var grow = opts.grow === id;\n        if (n === 0) {\n          svg.appendChild(sv(\"circle\", {cx: 200, cy: 200, r: 7, fill: c.m, \"class\": \"vc-tip\" + (grow ? \" vc-grow-tip\" : \"\")}));\n        } else {\n          p = pt(th, len);\n          var ln = sv(\"line\", {x1: 200, y1: 200, x2: f2(p.x), y2: f2(p.y), stroke: c.m, \"stroke-width\": \"5\", \"stroke-linecap\": \"round\", \"class\": \"vc-needle\" + (grow ? \" vc-grow\" : \"\")});\n          ln.setAttribute(\"stroke-dasharray\", String(f2(len)));\n          ln.setAttribute(\"style\", CP + \"len:\" + f2(len));\n          svg.appendChild(ln);\n          svg.appendChild(sv(\"circle\", {cx: f2(p.x), cy: f2(p.y), r: 7, fill: c.m, \"class\": \"vc-tip\" + (grow ? \" vc-grow-tip\" : \"\")}));\n        }\n      }\n    }\n    host.appendChild(svg);\n    if (mode !== \"key\") {\n      for (i = 0; i < S.picks.length; i++) {\n        id = S.picks[i];\n        c = col(id);\n        e = pt(B[id], 150);\n        var bd = el(\"span\", {cls: \"vc-badge\" + (c.own ? \" own\" : \"\"), text: String(i + 1), \"aria-hidden\": \"true\", style: \"left:\" + f2(e.x \/ 4) + \"%;top:\" + f2(e.y \/ 4) + \"%;\" + (c.own ? \"\" : \"background:\" + c.t)});\n        host.appendChild(bd);\n      }\n    }\n    if (mode === \"key\") {\n      if (T.keyQ) {\n        var pq = Q[Q[T.keyQ].across], pp = pt(pq.start + 45, 62);\n        host.appendChild(el(\"span\", {cls: \"vc-pull\", \"aria-hidden\": \"true\", text: \"pulls against\", style: \"left:\" + f2(pp.x \/ 4) + \"%;top:\" + f2(pp.y \/ 4) + \"%;color:\" + pq.t + \";border-color:\" + pq.m + \";background:\" + pq.w}));\n      }\n    }\n    for (i = 0; i < QS.length; i++) { host.appendChild(qLabel(QS[i], mode, false)); }\n    grid = host.nextElementSibling;\n    if (grid) {\n      if (grid.className.indexOf(\"vc-qgrid\") >= 0) {\n        clear(grid);\n        for (i = 0; i < GRID_ORDER.length; i++) { grid.appendChild(qLabel(Q[GRID_ORDER[i]], mode, true)); }\n      }\n    }\n  }\n\n  \/* == Figure 1, the compass key == *\/\n  function renderKey() {\n    var fig = $(\"vcKey\"), host = fig.querySelector(\".vc-compass\"), panel = $(\"vcKeyPanel\");\n    rebuild(fig, function () {\n      compass(host, \"key\");\n      clear(panel);\n      if (!T.keyQ) {\n        panel.appendChild(el(\"p\", {cls: \"vc-hint\", text: \"Tap a quarter to see the ten cards that sit in it.\"}));\n        return;\n      }\n      var q = Q[T.keyQ], opp = Q[q.across], chips = [], i;\n      for (i = 0; i < CARDS.length; i++) { if (CARDS[i].q === q.id) { chips.push(el(\"span\", {cls: \"vc-chip static\", text: CARDS[i].name})); } }\n      panel.appendChild(el(\"p\", {cls: \"vc-qname\", style: \"color:\" + q.t, text: q.name}));\n      panel.appendChild(el(\"p\", {cls: \"vc-blurb\", text: q.blurb}));\n      panel.appendChild(el(\"p\", {cls: \"vc-eye sm\", text: \"Its ten cards\"}));\n      panel.appendChild(el(\"div\", {cls: \"vc-chips\"}, chips));\n      panel.appendChild(el(\"p\", {cls: \"vc-across\", text: \"Sits across from \" + opp.name + \". Leaning hard into one often leaves less room for the other.\"}));\n    });\n  }\n  function keyQ(id) {\n    if (T.keyQ === id) { T.keyQ = \"\"; } else { T.keyQ = id; say(Q[id].name + \". Ten cards. Sits across from \" + Q[Q[id].across].name + \".\"); }\n    renderKey();\n  }\n\n  \/* == Tool A, the deck == *\/\n  var deckBuilt = false;\n  function buildDeck() {\n    var body = $(\"vcDeckBody\");\n    clear(body);\n    body.appendChild(el(\"div\", {cls: \"vc-prog\", \"aria-hidden\": \"true\"}, [el(\"i\", {id: \"vcProg\"})]));\n    body.appendChild(el(\"p\", {cls: \"vc-count\", id: \"vcDeckCount\"}));\n    body.appendChild(el(\"div\", {cls: \"vc-card\", id: \"vcCard\"}));\n    var btns = el(\"div\", {cls: \"vc-pilebtns\", id: \"vcPileBtns\"});\n    PKEYS.forEach(function (p) {\n      btns.appendChild(el(\"button\", {type: \"button\", cls: \"vc-btn vc-pile\", \"data-act\": \"sort\", \"data-id\": p, id: \"vcPb\" + p}, [el(\"span\", {cls: \"lbl\", text: PILES[p]}), el(\"span\", {cls: \"n\", id: \"vcPileN\" + p, \"aria-hidden\": \"true\", text: \"0\"})]));\n    });\n    body.appendChild(btns);\n    body.appendChild(el(\"div\", {cls: \"vc-sub\"}, [\n      el(\"button\", {type: \"button\", cls: \"vc-link\", \"data-act\": \"back\", id: \"vcBack\", text: \"Back\"}),\n      el(\"button\", {type: \"button\", cls: \"vc-link\", \"data-act\": \"skip\", id: \"vcSkip\", text: \"Skip\"})\n    ]));\n    body.appendChild(el(\"div\", {cls: \"vc-keepdeck\", id: \"vcKeepDeck\"}));\n    body.appendChild(el(\"div\", {cls: \"vc-stop\", id: \"vcStop\", hidden: true}, [\n      el(\"p\", {cls: \"vc-hint\", text: \"You can stop here if you like. Your few can come from what you've sorted so far.\"}),\n      el(\"p\", {cls: \"vc-next\"}, [el(\"a\", {href: \"#part-3\", cls: \"vc-golink\", text: \"Choose your few in part 3\"})])\n    ]));\n    deckBuilt = true;\n  }\n  function renderDeck() {\n    if (!deckBuilt) { buildDeck(); }\n    var total = totalCards(), done = S.order.length === 0, cardEl = $(\"vcCard\"), id = S.order[0], c = card(id), p, i;\n    $(\"vcProg\").style.width = f2(100 * sortedCount() \/ total) + \"%\";\n    $(\"vcDeckCount\").textContent = done ? total + \" of \" + total : \"Card \" + (sortedCount() + 1) + \" of \" + total;\n    clear(cardEl);\n    if (done) {\n      cardEl.setAttribute(\"style\", \"border-left-color:\" + PLUM);\n      cardEl.className = \"vc-card done vc-in\";\n      cardEl.appendChild(el(\"p\", {cls: \"vc-name\", id: \"vcDoneH\", tabindex: \"-1\", text: \"All \" + total + \" cards sorted.\"}));\n      cardEl.appendChild(el(\"p\", {cls: \"vc-mean\", text: \"Matters a lot: \" + inPile(\"a\").length + \". Matters some: \" + inPile(\"s\").length + \". Not for me right now: \" + inPile(\"n\").length + \".\"}));\n      cardEl.appendChild(el(\"p\", {cls: \"vc-mean\"}, [el(\"a\", {href: \"#part-3\", cls: \"vc-golink\", text: \"Choose your few in part 3\"})]));\n    } else {\n      var cc = col(id);\n      cardEl.setAttribute(\"style\", \"border-left-color:\" + cc.m);\n      cardEl.className = \"vc-card vc-in\";\n      cardEl.appendChild(el(\"p\", {cls: \"vc-qtag\", style: \"color:\" + cc.t}, [el(\"i\", {style: \"background:\" + cc.m, \"aria-hidden\": \"true\"}), c.q ? Q[c.q].name : \"your own card\"]));\n      cardEl.appendChild(el(\"p\", {cls: \"vc-name\", text: c.name}));\n      cardEl.appendChild(el(\"p\", {cls: \"vc-mean\", text: c.line}));\n    }\n    for (i = 0; i < PKEYS.length; i++) {\n      p = PKEYS[i];\n      var b = $(\"vcPb\" + p), cnt = inPile(p).length;\n      $(\"vcPileN\" + p).textContent = String(cnt);\n      b.setAttribute(\"aria-label\", PILES[p] + \", \" + cnt + \" so far\");\n      b.hidden = done;\n    }\n    $(\"vcBack\").disabled = S.undo.length === 0;\n    $(\"vcSkip\").disabled = S.order.length < 2;\n    $(\"vcSkip\").hidden = done;\n    $(\"vcStop\").hidden = done ? true : sortedCount() < 14;\n    renderStartOver();\n  }\n  function renderStartOver() {\n    var m = $(\"vcStartOver\");\n    rebuild(m, function () {\n      clear(m);\n      if (T.confirm === \"over\") {\n        m.appendChild(el(\"div\", {cls: \"vc-confirm\", role: \"group\", \"aria-label\": \"Start over\"}, [\n          el(\"p\", {text: \"Clear every pile and start the deck again?\"}),\n          el(\"div\", {cls: \"vc-row2\"}, [\n            el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"overyes\", text: \"Yes, start over\"}),\n            el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"overno\", text: \"Keep my piles\"})\n          ])\n        ]));\n      } else {\n        m.appendChild(el(\"button\", {type: \"button\", cls: \"vc-link\", \"data-act\": \"over\", text: \"Start over\"}));\n      }\n    });\n  }\n  function sortCard(p) {\n    var id = S.order[0], total = totalCards(), nx;\n    if (!id) { return; }\n    S.order.shift();\n    S.sorted[id] = p;\n    S.undo.push(id);\n    T.showAll = false;\n    nx = S.order[0];\n    var msg = nameOf(id) + \": \" + pileLower(p) + \". \";\n    if (nx) { msg += \"Card \" + (sortedCount() + 1) + \" of \" + total + \", \" + nameOf(nx) + \".\"; } else { msg += \"All \" + total + \" cards sorted.\"; }\n    say(msg);\n    renderDeck();\n    if (!nx) { focusEl($(\"vcDoneH\")); }\n    afterPiles();\n    persist();\n  }\n  function back() {\n    var id = S.undo.pop();\n    if (!id) { return; }\n    delete S.sorted[id];\n    S.order.unshift(id);\n    say(\"Back to \" + nameOf(id) + \".\");\n    renderDeck();\n    afterPiles();\n    persist();\n  }\n  function skip() {\n    if (S.order.length < 2) { return; }\n    var id = S.order.shift();\n    S.order.push(id);\n    say(nameOf(id) + \" moved to the end of the deck.\");\n    renderDeck();\n    persist();\n  }\n  function moveCard(id, p) {\n    S.sorted[id] = p;\n    T.moving = \"\";\n    say(nameOf(id) + \" moved to \" + pileLower(p) + \".\");\n    renderPiles();\n    renderDeck();\n    afterPiles();\n    var n = $(\"vcPiles\").querySelector('[data-act=\"select\"][data-id=\"' + id + '\"]');\n    focusEl(n);\n    persist();\n  }\n  function startOver() {\n    var i;\n    S.order = DECK.slice();\n    S.sorted = {};\n    S.undo = [];\n    for (i = 0; i < S.own.length; i++) { S.sorted[S.own[i].id] = \"a\"; }\n    T.moving = \"\";\n    T.confirm = \"\";\n    say(\"The deck is back at card 1.\");\n    renderDeck();\n    afterPiles();\n    persist();\n    focusEl($(\"vcPba\"));\n  }\n  \/* what depends on the piles *\/\n  function afterPiles() {\n    renderPiles();\n    renderPickChips();\n    renderPickRest();\n  }\n  function groupChip(id, pressed, act) {\n    var c = card(id);\n    return el(\"button\", {type: \"button\", cls: \"vc-chip\", \"aria-pressed\": pressed ? \"true\" : \"false\", \"data-act\": act, \"data-id\": id, text: lowerFirst(c.name)});\n  }\n  function renderPiles() {\n    var m = $(\"vcPiles\");\n    rebuild(m, function () {\n      clear(m);\n      if (sortedCount() === 0) { m.hidden = true; return; }\n      m.hidden = false;\n      m.appendChild(el(\"h4\", {cls: \"vc-h4\", text: \"Your piles\"}));\n      PKEYS.forEach(function (p) {\n        var ids = inPile(p), chips = [], i, g;\n        for (i = 0; i < ids.length; i++) { chips.push(groupChip(ids[i], T.moving === ids[i], \"select\")); }\n        g = el(\"div\", {cls: \"vc-grp\"}, [el(\"p\", {cls: \"vc-eye sm\", text: PILES[p] + \" \u00b7 \" + ids.length})]);\n        if (ids.length) { g.appendChild(el(\"div\", {cls: \"vc-chips\"}, chips)); } else { g.appendChild(el(\"p\", {cls: \"vc-empty\", text: \"Nothing here yet.\"})); }\n        if (T.moving) {\n          if (ids.indexOf(T.moving) >= 0) {\n            var mv = el(\"div\", {cls: \"vc-mover\", role: \"group\", \"aria-label\": \"Move \" + nameOf(T.moving)}, [el(\"p\", {text: \"Move \" + lowerFirst(nameOf(T.moving)) + \" to:\"})]);\n            var row = el(\"div\", {cls: \"vc-row2\"});\n            PKEYS.forEach(function (q) { if (q !== p) { row.appendChild(el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"move\", \"data-id\": T.moving, \"data-v\": q, text: PILES[q]})); } });\n            row.appendChild(el(\"button\", {type: \"button\", cls: \"vc-link\", \"data-act\": \"cancel\", text: \"Cancel\"}));\n            if (ownCard(T.moving)) { row.appendChild(el(\"button\", {type: \"button\", cls: \"vc-link\", \"data-act\": \"removeown\", \"data-id\": T.moving, text: \"Remove\"})); }\n            mv.appendChild(row);\n            g.appendChild(mv);\n          }\n        }\n        m.appendChild(g);\n      });\n    });\n  }\n  function selectChip(id) {\n    T.moving = T.moving === id ? \"\" : id;\n    renderPiles();\n    var n = $(\"vcPiles\").querySelector('[data-act=\"select\"][data-id=\"' + id + '\"]');\n    focusEl(n);\n  }\n\n  \/* write your own *\/\n  var ownBuilt = false;\n  function buildOwn() {\n    var d = $(\"vcOwn\");\n    var sel = el(\"select\", {id: \"vcOwnQ\", cls: \"vc-fld\"});\n    sel.appendChild(el(\"option\", {value: \"\", text: \"not sure\"}));\n    QS.forEach(function (q) { sel.appendChild(el(\"option\", {value: q.id, text: q.name})); });\n    var box = el(\"div\", {cls: \"vc-ownbody\", id: \"vcOwnBody\"});\n    box.appendChild(el(\"div\", {cls: \"vc-field\"}, [el(\"label\", {\"for\": \"vcOwnName\", cls: \"vc-eye sm\", text: \"Your value\"}), el(\"input\", {type: \"text\", id: \"vcOwnName\", cls: \"vc-fld\", maxlength: \"40\", autocomplete: \"off\", spellcheck: \"true\", placeholder: \"for example, patience\"})]));\n    box.appendChild(el(\"div\", {cls: \"vc-field\"}, [el(\"label\", {\"for\": \"vcOwnLine\", cls: \"vc-eye sm\"}, [\"What living it looks like \", el(\"span\", {cls: \"vc-opt\", text: \"Optional\"})]), el(\"input\", {type: \"text\", id: \"vcOwnLine\", cls: \"vc-fld\", maxlength: \"110\", autocomplete: \"off\", spellcheck: \"true\", placeholder: \"for example, I give people time to finish\"})]));\n    box.appendChild(el(\"div\", {cls: \"vc-field\"}, [el(\"label\", {\"for\": \"vcOwnQ\", cls: \"vc-eye sm\"}, [\"Closest quarter \", el(\"span\", {cls: \"vc-opt\", text: \"Optional\"})]), sel]));\n    box.appendChild(el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"addown\", id: \"vcOwnAdd\", text: \"Add to matters a lot\"}));\n    d.appendChild(box);\n    d.appendChild(el(\"p\", {cls: \"vc-full\", id: \"vcOwnFull\", hidden: true, text: \"That's three of your own, the most this deck holds.\"}));\n    d.appendChild(el(\"p\", {cls: \"vc-status\", id: \"vcOwnSt\", role: \"status\"}));\n    ownBuilt = true;\n  }\n  function renderOwn() {\n    if (!ownBuilt) { buildOwn(); }\n    var full = S.own.length >= 3;\n    $(\"vcOwnBody\").hidden = full;\n    $(\"vcOwnFull\").hidden = !full;\n    $(\"vcOwnSt\").textContent = T.msg.own || \"\";\n  }\n  function addOwn() {\n    var nm = $(\"vcOwnName\").value.replace(\/^\\s+|\\s+$\/g, \"\"), ln = $(\"vcOwnLine\").value.replace(\/^\\s+|\\s+$\/g, \"\"), q = $(\"vcOwnQ\").value, i, id = \"\";\n    if (S.own.length >= 3) { return; }\n    if (!nm) { T.msg.own = \"Write a name for your value first.\"; renderOwn(); say(T.msg.own); focusEl($(\"vcOwnName\")); return; }\n    for (i = 1; i <= 3; i++) { if (!ownCard(\"own\" + i)) { id = \"own\" + i; break; } }\n    S.own.push({id: id, name: nm.slice(0, 40), line: ln.slice(0, 110), q: Q[q] ? q : \"\"});\n    S.sorted[id] = \"a\";\n    $(\"vcOwnName\").value = \"\";\n    $(\"vcOwnLine\").value = \"\";\n    $(\"vcOwnQ\").value = \"\";\n    var left = 3-S.own.length;\n    T.msg.own = left > 0 ? \"Added to matters a lot. You can write \" + left + \" more.\" : \"Added. That's three of your own, the most this deck holds.\";\n    say(T.msg.own);\n    renderOwn();\n    renderDeck();\n    afterPiles();\n    if (left === 0) { focusEl($(\"vcOwnFull\")); }\n    persist();\n  }\n  function removeOwn(id) {\n    var nm = nameOf(id), i;\n    for (i = 0; i < S.own.length; i++) { if (S.own[i].id === id) { S.own.splice(i, 1); break; } }\n    delete S.sorted[id];\n    delete S.mine[id];\n    delete S.room[id];\n    delete S.way[id];\n    i = S.picks.indexOf(id);\n    if (i >= 0) { S.picks.splice(i, 1); }\n    if (S.step.v === id) { S.step.v = \"\"; }\n    T.moving = \"\";\n    T.msg.own = \"\";\n    say(nm + \" removed.\");\n    renderOwn();\n    renderDeck();\n    afterPiles();\n    afterPicks();\n    persist();\n  }\n\n  \/* == Tool B, choose your few == *\/\n  function renderPickChips() {\n    var m = $(\"vcPickChips\");\n    rebuild(m, function () {\n      clear(m);\n      var shown = {}, groups = [], a = inPile(\"a\"), s = inPile(\"s\"), i, k;\n      var anySorted = sortedCount() > 0;\n      function pushGroup(label, ids, id) { groups.push({label: label, ids: ids, id: id}); for (var z = 0; z < ids.length; z++) { shown[ids[z]] = 1; } }\n      if (T.showAll || (!anySorted ? S.picks.length > 0 : false)) {\n        QS.forEach(function (q) {\n          var ids = [];\n          for (i = 0; i < CARDS.length; i++) { if (CARDS[i].q === q.id) { ids.push(CARDS[i].id); } }\n          pushGroup(q.name, ids, q.id);\n        });\n        if (S.own.length) { pushGroup(\"Your own cards\", S.own.map(function (o) { return o.id; }), \"own\"); }\n      } else if (anySorted ? (a.length + s.length) === 0 : false) {\n        m.appendChild(el(\"p\", {cls: \"vc-hint vc-hinta\", text: \"Nothing is in \\\"matters a lot\\\" or \\\"matters some\\\" yet. You can keep sorting, or choose straight from all forty.\"}));\n        m.appendChild(el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"showall\", text: \"Show all forty cards\"}));\n        m.appendChild(el(\"p\", {cls: \"vc-hint vc-hintb\", text: \"If nothing feels like it matters right now, the box near the end of this page is for you.\"}));\n        m.appendChild(el(\"p\", {cls: \"vc-hint vc-hintc\"}, [el(\"a\", {href: \"#when-nothing-seems-to-matter\", cls: \"vc-golink\", text: \"Go to that box\"})]));\n      } else if (anySorted) {\n        pushGroup(\"From matters a lot\", a, \"a\");\n        var needSome = a.length < 3;\n        for (i = 0; i < S.picks.length; i++) { if (s.indexOf(S.picks[i]) >= 0) { needSome = true; } }\n        if (needSome) { pushGroup(\"From matters some\", s, \"s\"); }\n      } else {\n        m.appendChild(el(\"p\", {cls: \"vc-hint\", text: \"Sort the deck in part 2 first, or choose straight from all forty.\"}));\n        m.appendChild(el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"showall\", text: \"Show all forty cards\"}));\n        return;\n      }\n      var extra = [];\n      for (i = 0; i < S.picks.length; i++) { if (!shown[S.picks[i]]) { extra.push(S.picks[i]); } }\n      if (extra.length) { pushGroup(\"Also chosen\", extra, \"x\"); }\n      groups.forEach(function (g, gi) {\n        var chips = [];\n        for (k = 0; k < g.ids.length; k++) { chips.push(groupChip(g.ids[k], S.picks.indexOf(g.ids[k]) >= 0, \"pick\")); }\n        var head = el(\"p\", {cls: \"vc-eye sm\", text: g.label, id: gi === 0 ? \"vcPickH\" : null, tabindex: gi === 0 ? \"-1\" : null});\n        m.appendChild(el(\"div\", {cls: \"vc-grp\"}, [head, chips.length ? el(\"div\", {cls: \"vc-chips\"}, chips) : el(\"p\", {cls: \"vc-empty\", text: \"Nothing here yet.\"})]));\n      });\n    });\n  }\n  function renderPickRest() {\n    var c = $(\"vcCount\"), n = S.picks.length, lg = $(\"vcLegend\"), i, id, cc;\n    if (n === 0) { c.textContent = \"Nothing chosen yet.\"; }\n    else if (n === 5) { c.textContent = \"5 chosen. That's the most.\"; }\n    else { c.textContent = n + \" chosen. Three to five is a good number.\"; }\n    var fig = $(\"vcPick\");\n    compass(fig.querySelector(\".vc-compass\"), \"bearings\");\n    clear(lg);\n    for (i = 0; i < n; i++) {\n      id = S.picks[i];\n      cc = col(id);\n      lg.appendChild(el(\"li\", {}, [el(\"span\", {cls: \"vc-lbadge\" + (cc.own ? \" own\" : \"\"), \"aria-hidden\": \"true\", style: cc.own ? \"\" : \"background:\" + cc.t, text: String(i + 1)}), el(\"span\", {text: nameOf(id) + \", \" + qName(id)})]));\n    }\n    lg.hidden = n === 0;\n  }\n  function afterPicks() {\n    renderPickChips();\n    renderPickRest();\n    renderCheck();\n    renderRoom();\n    renderStep();\n    renderKeep();\n  }\n  function togglePick(id) {\n    if (!card(id)) { return; }\n    var i = S.picks.indexOf(id);\n    if (i >= 0) {\n      S.picks.splice(i, 1);\n      say(nameOf(id) + \" put back.\");\n    } else {\n      if (S.picks.length >= 5) { say(\"Five is the most. Tap one you've chosen to put it back.\"); return; }\n      S.picks.push(id);\n      say(nameOf(id) + \" chosen, \" + S.picks.length + \" of 5.\");\n    }\n    afterPicks();\n    persist();\n  }\n\n  \/* == Tool B2, the check == *\/\n  function badge(id, n) {\n    var cc = col(id);\n    return el(\"span\", {cls: \"vc-lbadge\" + (cc.own ? \" own\" : \"\"), \"aria-hidden\": \"true\", style: cc.own ? \"\" : \"background:\" + cc.t, text: String(n)});\n  }\n  function renderCheck() {\n    var m = $(\"vcCheckRows\");\n    rebuild(m, function () {\n      clear(m);\n      if (!S.picks.length) { m.appendChild(el(\"p\", {cls: \"vc-hint\", text: \"Choose your few above first, and they'll show up here.\"})); return; }\n      S.picks.forEach(function (id, i) {\n        var ans = S.mine[id] || \"\", row = el(\"div\", {cls: \"vc-row vc-chk\"});\n        row.appendChild(el(\"div\", {cls: \"vc-rowhead\"}, [badge(id, i + 1), el(\"span\", {cls: \"vc-rname\", text: nameOf(id)})]));\n        row.appendChild(el(\"div\", {cls: \"vc-ans\", role: \"group\", \"aria-label\": \"Is \" + nameOf(id) + \" yours?\"}, [\n          el(\"button\", {type: \"button\", cls: \"vc-chip\", \"aria-pressed\": ans === \"yes\" ? \"true\" : \"false\", \"data-act\": \"mine\", \"data-id\": id, \"data-v\": \"yes\", text: \"yes, it's mine\"}),\n          el(\"button\", {type: \"button\", cls: \"vc-chip\", \"aria-pressed\": ans === \"should\" ? \"true\" : \"false\", \"data-act\": \"mine\", \"data-id\": id, \"data-v\": \"should\", text: \"maybe it's a should\"})\n        ]));\n        if (ans === \"should\") {\n          if (!T.noteClosed[id]) {\n            row.appendChild(el(\"div\", {cls: \"vc-note\"}, [\n              el(\"p\", {text: \"Good to notice. Keeping it and swapping it are both fine.\"}),\n              el(\"div\", {cls: \"vc-row2\"}, [\n                el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"swap\", \"data-id\": id, text: \"Swap it out\"}),\n                el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"keepit\", \"data-id\": id, text: \"Keep it\"})\n              ])\n            ]));\n          }\n        }\n        m.appendChild(row);\n      });\n    });\n  }\n  function setMine(id, v) {\n    if (S.mine[id] === v) { delete S.mine[id]; } else { S.mine[id] = v; if (v === \"should\") { delete T.noteClosed[id]; } }\n    renderCheck();\n    persist();\n  }\n  function swapOut(id) {\n    var i = S.picks.indexOf(id);\n    if (i >= 0) { S.picks.splice(i, 1); }\n    delete S.mine[id];\n    say(nameOf(id) + \" is back in your pile. Choose another card above if you like.\");\n    afterPicks();\n    focusEl($(\"vcPickH\"));\n    persist();\n  }\n  function keepIt(id) {\n    T.noteClosed[id] = true;\n    say(\"Kept. \" + nameOf(id) + \" stays one of your few.\");\n    renderCheck();\n    var n = $(\"vcCheckRows\").querySelector('[data-act=\"mine\"][data-id=\"' + id + '\"][data-v=\"should\"]');\n    focusEl(n);\n  }\n\n  \/* == a pair that is chips on a wide screen and a drop-down on a phone == *\/\n  function choiceSet(o) {\n    \/* o: label, labelId, selId, opts [{v, t}], cur, act, id, first (text for an empty first option), opt (bool) *\/\n    var wrap = el(\"div\", {cls: \"vc-set\"});\n    var lab = el(\"label\", {\"for\": o.selId, cls: \"vc-eye\", id: o.labelId}, [o.label, o.opt ? el(\"span\", {cls: \"vc-opt\", text: \"Optional\"}) : null]);\n    wrap.appendChild(lab);\n    var chips = el(\"div\", {cls: \"vc-chips vc-chipset\", role: \"group\", \"aria-labelledby\": o.labelId});\n    o.opts.forEach(function (x) {\n      chips.appendChild(el(\"button\", {type: \"button\", cls: \"vc-chip\", \"aria-pressed\": o.cur === x.v ? \"true\" : \"false\", \"data-act\": o.act, \"data-id\": o.id, \"data-v\": x.v, text: x.t}));\n    });\n    wrap.appendChild(chips);\n    var sel = el(\"select\", {id: o.selId, cls: \"vc-sel\", \"data-sel\": o.act, \"data-id\": o.id});\n    sel.appendChild(el(\"option\", {value: \"\", text: o.first}));\n    o.opts.forEach(function (x) { sel.appendChild(el(\"option\", {value: x.v, text: x.t})); });\n    sel.value = o.cur || \"\";\n    wrap.appendChild(sel);\n    return wrap;\n  }\n\n  \/* == Tool C, room last week == *\/\n  function renderRoom() {\n    var fig = $(\"vcRoom\"), rows = $(\"vcRoomRows\"), host = fig.querySelector(\".vc-compass\");\n    rebuild(rows, function () {\n      clear(rows);\n      if (!S.picks.length) {\n        rows.appendChild(el(\"p\", {cls: \"vc-hint\"}, [\"Choose your few in part 3 first, and they'll show up here. \", el(\"a\", {href: \"#part-3\", cls: \"vc-golink\", text: \"Go to part 3\"})]));\n        return;\n      }\n      S.picks.forEach(function (id, i) {\n        var r = S.room[id], cc = col(id), row = el(\"div\", {cls: \"vc-row vc-rm\"});\n        row.appendChild(el(\"div\", {cls: \"vc-rowhead\"}, [badge(id, i + 1), el(\"span\", {cls: \"vc-rname\", text: nameOf(id)}), el(\"span\", {cls: \"vc-qt\", style: \"color:\" + cc.t, text: qName(id)})]));\n        var grp = el(\"div\", {cls: \"vc-rate\", role: \"group\", \"aria-label\": \"Room for \" + nameOf(id) + \" last week\"});\n        ROOMS.forEach(function (x) {\n          grp.appendChild(el(\"button\", {type: \"button\", \"aria-pressed\": r === x.n ? \"true\" : \"false\", \"aria-label\": x.aria, \"data-act\": \"room\", \"data-id\": id, \"data-v\": String(x.n), text: String(x.n)}));\n        });\n        row.appendChild(grp);\n        row.appendChild(el(\"div\", {cls: \"vc-ends\", \"aria-hidden\": \"true\"}, [el(\"span\", {text: \"no room\"}), el(\"span\", {text: \"plenty of room\"})]));\n        if (r !== undefined) {\n          row.appendChild(el(\"p\", {cls: \"vc-rlab\", text: ROOMS[r].label}));\n          if (r === 4) {\n            row.appendChild(el(\"p\", {cls: \"vc-resp\", text: \"Last week gave this one plenty of room.\"}));\n          } else {\n            var opts = [];\n            Object.keys(WAYS).forEach(function (k) { opts.push({v: k, t: WAYS[k].label}); });\n            row.appendChild(choiceSet({label: \"What got in the way? \", labelId: \"vcWayL-\" + id, selId: \"vcWay-\" + id, opts: opts, cur: S.way[id] || \"\", act: \"way\", id: id, first: \"choose one\", opt: true}));\n            row.appendChild(el(\"p\", {cls: \"vc-resp\", text: S.way[id] ? WAYS[S.way[id]].line : \"\"}));\n          }\n        }\n        rows.appendChild(row);\n      });\n    });\n    compass(host, \"room\", {grow: T.grow || \"\"});\n    T.grow = \"\";\n  }\n  function setRoom(id, n) {\n    S.room[id] = n;\n    if (n === 4) { delete S.way[id]; }\n    T.grow = id;\n    say(nameOf(id) + \": \" + lowerFirst(ROOMS[n].label).replace(\/\\.$\/, \"\") + \".\");\n    renderRoom();\n    renderKeep();\n    persist();\n  }\n  function setWay(id, w) {\n    if (w) { S.way[id] = w; } else { delete S.way[id]; }\n    renderRoom();\n    persist();\n  }\n\n  \/* == Tool D, one small step == *\/\n  var stepBuilt = false;\n  function stepVal() {\n    if (S.picks.indexOf(S.step.v) >= 0) { return S.step.v; }\n    return S.picks[0] || \"\";\n  }\n  function planText() {\n    var what = S.step.what.replace(\/^\\s+|\\s+$\/g, \"\"), when = S.step.when.replace(\/^\\s+|\\s+$\/g, \"\");\n    if (!what) { return \"\"; }\n    return \"Your plan: \" + (when ? when + \", \" : \"\") + what + \".\";\n  }\n  function renderStep() {\n    var m = $(\"vcStepBody\");\n    rebuild(m, function () {\n      clear(m);\n      if (!S.picks.length) {\n        m.appendChild(el(\"p\", {cls: \"vc-hint\"}, [\"Choose your few in part 3 first. \", el(\"a\", {href: \"#part-3\", cls: \"vc-golink\", text: \"Go to part 3\"})]));\n        return;\n      }\n      var vo = S.picks.map(function (id) { return {v: id, t: lowerFirst(nameOf(id))}; });\n      var cur = stepVal();\n      var set1 = choiceSet({label: \"Which value is this step for?\", labelId: \"vcStepVL\", selId: \"vcStepVSel\", opts: vo, cur: cur, act: \"stepv\", id: \"v\", first: \"\", opt: false});\n      \/* a step always has a value, so the select has no empty option *\/\n      var s1 = set1.querySelector(\"select\");\n      s1.removeChild(s1.firstChild);\n      s1.value = cur;\n      m.appendChild(set1);\n      m.appendChild(el(\"div\", {cls: \"vc-field\"}, [el(\"label\", {\"for\": \"vcStepWhat\", cls: \"vc-eye\", text: \"One small step for this week\"}), el(\"input\", {type: \"text\", id: \"vcStepWhat\", cls: \"vc-fld\", maxlength: \"140\", autocomplete: \"off\", spellcheck: \"true\", placeholder: \"for example, text my sister\", value: S.step.what})]));\n      m.appendChild(el(\"div\", {cls: \"vc-field\"}, [el(\"label\", {\"for\": \"vcStepWhen\", cls: \"vc-eye\"}, [\"When or where will you do it? \", el(\"span\", {cls: \"vc-opt\", text: \"Optional\"})]), el(\"input\", {type: \"text\", id: \"vcStepWhen\", cls: \"vc-fld\", maxlength: \"80\", autocomplete: \"off\", spellcheck: \"true\", placeholder: \"for example, after dinner on Sunday\", value: S.step.when})]));\n      m.appendChild(el(\"p\", {cls: \"vc-plan\", id: \"vcPlan\", text: planText()}));\n      var ao = AREAS.map(function (a) { return {v: a, t: a}; });\n      m.appendChild(choiceSet({label: \"Part of life \", labelId: \"vcAreaL\", selId: \"vcAreaSel\", opts: ao, cur: S.step.area, act: \"area\", id: \"area\", first: \"no area\", opt: true}));\n    });\n  }\n  function updatePlan() {\n    var p = $(\"vcPlan\");\n    if (!p) { return; }\n    var t = planText();\n    p.textContent = t;\n    p.hidden = !t;\n  }\n  function pressIn(root, act, v) {\n    var bs = root.querySelectorAll('[data-act=\"' + act + '\"]'), i;\n    for (i = 0; i < bs.length; i++) { bs[i].setAttribute(\"aria-pressed\", bs[i].getAttribute(\"data-v\") === v ? \"true\" : \"false\"); }\n  }\n  function setStep(field, v) {\n    S.step[field] = v;\n    if (field === \"v\") { pressIn($(\"vcStepBody\"), \"stepv\", v); var s = $(\"vcStepVSel\"); if (s) { s.value = v; } }\n    if (field === \"area\") { pressIn($(\"vcStepBody\"), \"area\", v); var s2 = $(\"vcAreaSel\"); if (s2) { s2.value = v; } }\n    if (field === \"what\") { updatePlan(); }\n    if (field === \"when\") { updatePlan(); }\n    persist();\n  }\n\n  \/* == Tool E, keep it, or copy it == *\/\n  function hasRating() {\n    var i;\n    for (i = 0; i < S.picks.length; i++) { if (S.room[S.picks[i]] !== undefined) { return true; } }\n    return false;\n  }\n  function saveWeek() {\n    if (!hasRating()) { return; }\n    var w = weekStart(NOW()), entry = {w: w, r: {}, p: S.picks.slice(), names: {}}, i, id, upd = false;\n    for (i = 0; i < S.picks.length; i++) {\n      id = S.picks[i];\n      entry.names[id] = nameOf(id);\n      if (S.room[id] !== undefined) { entry.r[id] = S.room[id]; }\n    }\n    for (i = 0; i < S.weeks.length; i++) { if (S.weeks[i].w === w) { S.weeks[i] = entry; upd = true; } }\n    if (!upd) { S.weeks.push(entry); S.weeks.sort(function (a, b) { return a.w < b.w ? -1 : (a.w > b.w ? 1 : 0); }); }\n    while (S.weeks.length > 104) { S.weeks.shift(); }\n    T.msg.save = upd ? \"Updated this week's entry.\" : \"Saved for the week of \" + fmt(parseW(w), {day: \"numeric\", month: \"long\"}) + \".\";\n    say(T.msg.save);\n    flush();\n    renderKeep();\n  }\n  function freshWeek() {\n    S.room = {};\n    S.way = {};\n    S.step = {v: \"\", what: \"\", when: \"\", area: \"\"};\n    T.confirm = \"\";\n    T.msg.save = \"\";\n    say(\"This week is fresh. Your piles and your few stay.\");\n    renderRoom();\n    renderStep();\n    renderKeep();\n    persist();\n  }\n  function setKeep(on) {\n    if (on) {\n      var st = store();\n      if (!st) { T.blocked = true; S.keep = false; renderKeep(); return; }\n      S.keep = true;\n      if (!write()) { T.blocked = true; S.keep = false; }\n      say(S.keep ? \"Saving is on.\" : \"This browser isn't letting the page keep anything, so saving is off.\");\n    } else {\n      S.keep = false;\n      if (T.hasRecord) { write(); }\n      say(\"Saving is off.\");\n    }\n    renderKeep();\n  }\n  function deleteAll() {\n    var st = store();\n    try { if (st) { st.removeItem(KEY); } } catch (e) { }\n    T.hasRecord = false;\n    S.weeks = [];\n    S.keep = false;\n    T.confirm = \"\";\n    T.msg.save = \"\";\n    T.msg.del = \"Deleted. Nothing from this compass is stored on this device now.\";\n    say(T.msg.del);\n    renderKeep();\n  }\n  function roomWord(r) { return ROOMS[r] ? lowerFirst(ROOMS[r].label).replace(\/\\.$\/, \"\") : \"\"; }\n  function longDate(d) { return fmt(d, {day: \"numeric\", month: \"long\", year: \"numeric\"}); }\n  function buildText() {\n    var L = [], i, id, c, names;\n    L.push(\"My values compass\");\n    L.push(longDate(NOW()));\n    L.push(\"\");\n    if (S.picks.length) {\n      L.push(\"MY FEW\");\n      for (i = 0; i < S.picks.length; i++) {\n        id = S.picks[i];\n        c = card(id);\n        L.push((i + 1) + \". \" + c.name + \", \" + qName(id));\n        if (c.line) { L.push(\"   \" + c.line); }\n        if (S.mine[id]) { L.push(\"   Is it mine? \" + (S.mine[id] === \"yes\" ? \"yes, it's mine\" : \"maybe it's a should\")); }\n        if (S.room[id] !== undefined) { L.push(\"   Room last week: \" + roomWord(S.room[id])); }\n        if (S.way[id]) { L.push(\"   What got in the way: \" + WAYS[S.way[id]].label); }\n      }\n      L.push(\"\");\n    }\n    if (S.step.what) {\n      L.push(\"ONE SMALL STEP\");\n      var sv0 = stepVal();\n      if (sv0) { L.push(\"For: \" + lowerFirst(nameOf(sv0))); }\n      L.push(\"Step: \" + S.step.what);\n      if (S.step.when) { L.push(\"When or where: \" + S.step.when); }\n      if (S.step.area) { L.push(\"Part of life: \" + S.step.area); }\n      L.push(\"\");\n    }\n    if (sortedCount() > 0) {\n      L.push(\"MY PILES\");\n      PKEYS.forEach(function (p) {\n        var ids = inPile(p);\n        if (!ids.length) { return; }\n        L.push(PILES[p] + \": \" + ids.map(function (x) { return lowerFirst(nameOf(x)) + (ownCard(x) ? \" (my own)\" : \"\"); }).join(\", \"));\n      });\n      if (S.order.length) { L.push(\"Not sorted yet: \" + plural(S.order.length, \"card\")); }\n      L.push(\"\");\n    }\n    if (S.weeks.length) {\n      L.push(\"SAVED WEEKS\");\n      S.weeks.forEach(function (w) {\n        var parts = [];\n        w.p.forEach(function (x) { if (w.r[x] !== undefined) { parts.push(lowerFirst(w.names[x] || nameOf(x) || x) + \", \" + roomWord(w.r[x])); } });\n        L.push(fmt(parseW(w.w), {day: \"numeric\", month: \"short\", year: \"numeric\"}) + \": \" + parts.join(\"; \"));\n      });\n      L.push(\"\");\n    }\n    L.push(\"From the Values Compass at equilibriumpsychotherapy.net\");\n    return L.join(\"\\n\");\n  }\n  function copyText() {\n    var txt = buildText();\n    function fallback() {\n      T.ta = true;\n      T.msg.copy = \"Select it all and copy it.\";\n      renderCopyUi();\n      var ta = $(\"vcCopyTa\");\n      if (ta) { ta.value = txt; ta.focus({preventScroll: true}); ta.select(); }\n      say(T.msg.copy);\n    }\n    function ok() {\n      T.ta = false;\n      T.msg.copy = \"Copied. Paste it anywhere you like.\";\n      renderCopyUi();\n      say(T.msg.copy);\n    }\n    var done = false;\n    try {\n      if (navigator.clipboard) {\n        if (navigator.clipboard.writeText) {\n          navigator.clipboard.writeText(txt).then(ok, fallback);\n          done = true;\n        }\n      }\n    } catch (e) { done = false; }\n    if (!done) { fallback(); }\n  }\n  function keepLine() {\n    if (T.blocked) { return \"This browser isn't letting the page keep anything, so saving is off. Copy as text still works.\"; }\n    if (S.keep) { return \"On. Your piles, your few and your saved weeks stay in this browser on this device. We can't see them, and nothing is sent anywhere.\"; }\n    if (T.hasRecord) { return \"Saving is off. What you saved before stays on this device until you delete it.\"; }\n    return \"Off unless you switch it on. Nothing you choose here is saved or sent anywhere.\";\n  }\n  function weeksTable() {\n    var ws = S.weeks.slice(-8), tb = el(\"table\", {cls: \"vc-weeks\"}), th = el(\"tr\"), i, j, id, w, cell, r;\n    th.appendChild(el(\"th\", {scope: \"col\", cls: \"nm\"}, [el(\"span\", {cls: \"vc-sr\", text: \"Value\"})]));\n    for (j = 0; j < ws.length; j++) { th.appendChild(el(\"th\", {scope: \"col\", text: fmt(parseW(ws[j].w), {day: \"numeric\", month: \"short\"})})); }\n    tb.appendChild(el(\"thead\", {}, [th]));\n    var body = el(\"tbody\");\n    for (i = 0; i < S.picks.length; i++) {\n      id = S.picks[i];\n      var tr = el(\"tr\");\n      tr.appendChild(el(\"th\", {scope: \"row\", cls: \"nm\", text: lowerFirst(nameOf(id))}));\n      for (j = 0; j < ws.length; j++) {\n        w = ws[j];\n        var dl = fmt(parseW(w.w), {day: \"numeric\", month: \"long\"});\n        if (w.p.indexOf(id) < 0) {\n          cell = el(\"td\", {}, [el(\"span\", {cls: \"vc-dot\", \"aria-hidden\": \"true\"}), el(\"span\", {cls: \"vc-sr\", text: dl + \": not one of your few that week\"})]);\n        } else {\n          r = w.r[id];\n          if (r === undefined) { cell = el(\"td\", {}, [el(\"span\", {cls: \"vc-sr\", text: dl + \": not rated\"})]); }\n          else {\n            cell = el(\"td\", {}, [el(\"span\", {cls: \"vc-bar\" + (r === 0 ? \" z\" : \"\"), style: \"height:\" + (r * 7) + \"px;background:\" + col(id).m, \"aria-hidden\": \"true\"}), el(\"span\", {cls: \"vc-sr\", text: dl + \": \" + roomWord(r)})]);\n          }\n        }\n        tr.appendChild(cell);\n      }\n      body.appendChild(tr);\n    }\n    tb.appendChild(body);\n    return el(\"div\", {cls: \"vc-wk-wrap\"}, [tb]);\n  }\n  \/* the same switch, once more under the deck: one setting (S.keep), two places. Both go through setKeep, so turning either on saves the sort so far. *\/\n  function renderKeepDeck() {\n    var m = $(\"vcKeepDeck\");\n    if (!m) { return; }\n    rebuild(m, function () {\n      clear(m);\n      var sw = el(\"input\", {type: \"checkbox\", id: \"vcSwitchDeck\", \"data-sw\": \"keep\", checked: S.keep, disabled: T.blocked, fk: \"swd\"});\n      if (S.keep) { sw.checked = true; }\n      m.appendChild(el(\"label\", {cls: \"vc-switch\", \"for\": \"vcSwitchDeck\"}, [sw, el(\"span\", {cls: \"trk\", \"aria-hidden\": \"true\"}), el(\"span\", {cls: \"tx\", text: \"Keep my compass on this device\"})]));\n      m.appendChild(el(\"p\", {cls: \"vc-line\", id: \"vcKeepLineDeck\", text: keepLine()}));\n    });\n  }\n  function renderKeep() {\n    renderKeepDeck();\n    var m = $(\"vcKeepBody\");\n    rebuild(m, function () {\n      clear(m);\n      \/* copy: on the My compass card once there is a card, here before that *\/\n      if (!S.picks.length) { m.appendChild(copyBlock()); }\n      \/* the switch *\/\n      var sw = el(\"input\", {type: \"checkbox\", id: \"vcSwitch\", \"data-sw\": \"keep\", checked: S.keep, disabled: T.blocked, fk: \"sw\"});\n      if (S.keep) { sw.checked = true; }\n      m.appendChild(el(\"div\", {cls: \"vc-block\"}, [\n        el(\"label\", {cls: \"vc-switch\", \"for\": \"vcSwitch\"}, [sw, el(\"span\", {cls: \"trk\", \"aria-hidden\": \"true\"}), el(\"span\", {cls: \"tx\", text: \"Keep my compass on this device\"})]),\n        el(\"p\", {cls: \"vc-line\", id: \"vcKeepLine\", text: keepLine()})\n      ]));\n      if (S.keep) {\n        var rated = hasRating();\n        m.appendChild(el(\"div\", {cls: \"vc-block\"}, [\n          el(\"button\", {type: \"button\", cls: \"vc-btn solid\", \"data-act\": \"save\", disabled: !rated, text: \"Save this week\"}),\n          rated ? null : el(\"p\", {cls: \"vc-line\", text: \"Rate at least one value in part 4 to save a week.\"}),\n          el(\"p\", {cls: \"vc-status\", role: \"status\", text: T.msg.save || \"\"})\n        ]));\n        if (T.confirm === \"fresh\") {\n          m.appendChild(el(\"div\", {cls: \"vc-confirm\", role: \"group\", \"aria-label\": \"Start a fresh week\"}, [\n            el(\"p\", {text: \"Clear this week's room, reasons and step? Your piles and your few stay.\"}),\n            el(\"div\", {cls: \"vc-row2\"}, [el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"freshyes\", text: \"Yes, clear them\"}), el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"freshno\", text: \"Keep them\"})])\n          ]));\n        } else {\n          m.appendChild(el(\"div\", {cls: \"vc-block\"}, [el(\"button\", {type: \"button\", cls: \"vc-link\", \"data-act\": \"fresh\", text: \"Start a fresh week\"})]));\n        }\n      }\n      if (S.weeks.length) {\n        m.appendChild(el(\"div\", {cls: \"vc-block\"}, [\n          el(\"h4\", {cls: \"vc-h4\", text: \"Your saved weeks\"}),\n          el(\"p\", {cls: \"vc-line\", text: \"Taller marks mean the week gave that value more room. There's no total, and no week is a test.\"}),\n          weeksTable()\n        ]));\n      }\n      if (T.hasRecord) {\n        if (T.confirm === \"delete\") {\n          m.appendChild(el(\"div\", {cls: \"vc-confirm\", role: \"group\", \"aria-label\": \"Delete everything saved\"}, [\n            el(\"p\", {text: \"Delete your saved compass and every saved week from this device? This can't be undone.\"}),\n            el(\"div\", {cls: \"vc-row2\"}, [el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"delyes\", text: \"Yes, delete it all\"}), el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"delno\", text: \"Cancel\"})])\n          ]));\n        } else {\n          m.appendChild(el(\"div\", {cls: \"vc-block\"}, [el(\"button\", {type: \"button\", cls: \"vc-link\", \"data-act\": \"del\", text: \"Delete everything saved on this device\"})]));\n        }\n      }\n      if (T.msg.del) { m.appendChild(el(\"p\", {cls: \"vc-status\", role: \"status\", text: T.msg.del})); }\n    });\n  }\n\n  \/* == build-v2, 20 Oct: the stop-any-time hint, the Next links, the welcome line, the My compass card, print, and the reminder file ==\n     Everything here is made on the reader's device. Nothing is sent anywhere and nothing is stored beyond what the existing switch already allows. *\/\n  function showNext(id, on) { var n = $(id); if (n) { n.hidden = !on; } }\n  function updateNext() {\n    showNext(\"vcNextPick\", S.picks.length >= 3);\n    showNext(\"vcNextCheck\", S.picks.length > 0);\n    showNext(\"vcNextRoom\", hasRating());\n    showNext(\"vcNextStep\", planText() !== \"\");\n  }\n  function welcome() {\n    var t = $(\"vcGoT\"), b = $(\"vcGoBtn\");\n    if (!t) { return; }\n    if (!b) { return; }\n    if (!S.keep) { return; }\n    if (S.picks.length === 0) { return; }\n    t.textContent = \"Welcome back. Your compass is saved on this device.\";\n    b.textContent = \"Rate this week\";\n    b.setAttribute(\"href\", \"#vcRoom\");\n  }\n  function refreshExtras() { renderMine(); updateNext(); }\n  function renderCopyUi() { renderKeep(); renderMine(); }\n\n  \/* the copy button, its status line and the select-and-copy fallback: one block, shown on the My compass card once there is a card, and in the keep tool before that *\/\n  function copyParts() {\n    return [\n      el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"copy\", text: \"Copy as text\"}),\n      el(\"p\", {cls: \"vc-status\", role: \"status\", text: T.msg.copy || \"\"}),\n      T.ta ? el(\"div\", {cls: \"vc-field\"}, [el(\"label\", {\"for\": \"vcCopyTa\", cls: \"vc-eye sm\", text: \"Your compass as text\"}), el(\"textarea\", {id: \"vcCopyTa\", cls: \"vc-fld\", readonly: true, rows: \"9\", spellcheck: \"false\"})]) : null\n    ];\n  }\n  function copyBlock() {\n    var p = copyParts();\n    p[0].className = \"vc-btn solid\";\n    return el(\"div\", {cls: \"vc-block\"}, p);\n  }\n\n  \/* the card *\/\n  function mineRoomLine(id) {\n    if (S.room[id] === undefined) { return \"\"; }\n    return \"Room last week: \" + roomWord(S.room[id]);\n  }\n  function mineCard() {\n    var card = el(\"article\", {cls: \"vc-mc\", id: \"vcMineCard\", \"aria-labelledby\": \"vcMineT\"});\n    var host = el(\"div\", {cls: \"vc-compass\", \"data-mode\": \"room\"}), grid = el(\"div\", {cls: \"vc-qgrid\"});\n    var figCol = el(\"div\", {cls: \"vc-mc-fig\"}, [host, grid]);\n    var list = el(\"ol\", {cls: \"vc-mc-list\"});\n    var i, id, cc, kids, rl, sv0, meta, step;\n    card.appendChild(el(\"div\", {cls: \"vc-mc-head\"}, [\n      el(\"p\", {cls: \"vc-mc-t\", id: \"vcMineT\", text: \"My compass\"}),\n      el(\"p\", {cls: \"vc-mc-date\", text: longDate(NOW())})\n    ]));\n    for (i = 0; i < S.picks.length; i++) {\n      id = S.picks[i];\n      cc = col(id);\n      kids = [el(\"p\", {cls: \"nm\", text: nameOf(id)}), el(\"p\", {cls: \"qq\", style: \"color:\" + cc.t, text: qName(id)})];\n      rl = mineRoomLine(id);\n      if (rl) { kids.push(el(\"p\", {cls: \"rm\", text: rl})); }\n      list.appendChild(el(\"li\", {}, [badge(id, i + 1), el(\"div\", {cls: \"tx\"}, kids)]));\n    }\n    if (!hasRating()) {\n      figCol.appendChild(el(\"p\", {cls: \"vc-mc-hint vc-noprint\", text: \"Rate last week in part 4 and each value grows a needle on your compass.\"}));\n    }\n    card.appendChild(el(\"div\", {cls: \"vc-mc-body\"}, [figCol, el(\"div\", {cls: \"vc-mc-txt\"}, [list])]));\n    if (planText()) {\n      step = el(\"div\", {cls: \"vc-mc-step\"}, [el(\"p\", {cls: \"vc-eye sm\", text: \"One small step\"}), el(\"p\", {cls: \"vc-mc-plan\", text: planText()})]);\n      meta = [];\n      sv0 = stepVal();\n      if (sv0) { meta.push(el(\"span\", {text: \"For: \" + lowerFirst(nameOf(sv0))})); }\n      if (S.step.area) { meta.push(el(\"span\", {text: \"Part of life: \" + S.step.area})); }\n      if (meta.length) { step.appendChild(el(\"p\", {cls: \"vc-mc-meta\"}, meta)); }\n      card.appendChild(step);\n    }\n    card.appendChild(el(\"p\", {cls: \"vc-mc-foot\", text: \"From the Values Compass at equilibriumpsychotherapy.net\"}));\n    compass(host, \"room\");\n    return card;\n  }\n  function renderMine() {\n    var m = $(\"vcMineBody\");\n    if (!m) { return; }\n    rebuild(m, function () {\n      var act, cp, rm;\n      clear(m);\n      if (!S.picks.length) {\n        m.appendChild(el(\"p\", {cls: \"vc-hint\"}, [\"Choose your few in part 3, and your compass card will appear here. \", el(\"a\", {href: \"#part-3\", cls: \"vc-golink\", text: \"Go to part 3\"})]));\n        return;\n      }\n      m.appendChild(mineCard());\n      cp = copyParts();\n      act = el(\"div\", {cls: \"vc-mine-act\"}, [\n        el(\"button\", {type: \"button\", cls: \"vc-btn solid\", \"data-act\": \"print\", text: \"Print or save as PDF\"}),\n        el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"picture\", text: \"Save as picture\"}),\n        cp[0],\n        el(\"button\", {type: \"button\", cls: \"vc-btn\", \"data-act\": \"remind\", text: \"Remind me next week\"})\n      ]);\n      m.appendChild(act);\n      if (T.msg.print) { m.appendChild(el(\"p\", {cls: \"vc-status\", role: \"status\", text: T.msg.print})); }\n      if (T.msg.copy) { m.appendChild(cp[1]); }\n      if (cp[2]) { m.appendChild(cp[2]); }\n      if (T.icsUrl) {\n        rm = el(\"p\", {cls: \"vc-status\", role: \"status\", text: T.msg.remind || \"\"});\n        m.appendChild(rm);\n        m.appendChild(el(\"p\", {cls: \"vc-next\"}, [el(\"a\", {cls: \"vc-golink\", href: T.icsUrl, download: \"values-compass-check-in.ics\", text: \"Download the reminder file again\"})]));\n      }\n      m.appendChild(el(\"p\", {cls: \"vc-mine-note\", text: \"Your card, your copy and your reminder are made on this device. Nothing is sent anywhere.\"}));\n    });\n  }\n\n  \/* print: the card is copied into a block that is a direct child of body, and the print stylesheet hides everything else while html has vc-printing *\/\n  function unprint() {\n    var r = $(\"vcPrintRoot\");\n    if (r) { if (r.parentNode) { r.parentNode.removeChild(r); } }\n    doc.documentElement.classList.remove(\"vc-printing\");\n  }\n  function printCard() {\n    var src = $(\"vcMineCard\"), root, clone, ids, i;\n    if (!src) { return; }\n    if (typeof window.print !== \"function\") {\n      T.msg.print = \"Printing isn't available in this browser. Copy as text still works.\";\n      renderMine();\n      return;\n    }\n    unprint();\n    clone = src.cloneNode(true);\n    ids = clone.querySelectorAll(\"[id]\");\n    for (i = 0; i < ids.length; i++) { ids[i].removeAttribute(\"id\"); }\n    clone.removeAttribute(\"id\");\n    root = el(\"div\", {id: \"vcPrintRoot\", cls: \"eqp\", \"aria-hidden\": \"true\"});\n    root.appendChild(clone);\n    doc.body.appendChild(root);\n    doc.documentElement.classList.add(\"vc-printing\");\n    setTimeout(unprint, 45000);\n    window.print();\n  }\n\n  \/* == save as picture: the My compass card is drawn on a canvas on this device (2x), then opened in the phone's share sheet, or downloaded. Nothing is sent anywhere. == *\/\n  var PIC = {busy: false};\n  var PIC_FF = '\"Work Sans\", system-ui, sans-serif';\n  var PIC_PAPER = \"#faf8f3\", PIC_PAPERE = \"#ebe4d6\", PIC_PLUMD = \"#401d48\";\n  function picFonts() {\n    var specs = ['400 16px \"Work Sans\"', '500 16px \"Work Sans\"', '600 16px \"Work Sans\"', '700 16px \"Work Sans\"'], all = [], i;\n    try {\n      if (doc.fonts) {\n        if (doc.fonts.load) {\n          for (i = 0; i < specs.length; i++) { all.push(doc.fonts.load(specs[i])); }\n        }\n        return Promise.all(all).then(function () { return doc.fonts.ready; }, function () { return doc.fonts.ready; });\n      }\n    } catch (e) { }\n    return Promise.resolve();\n  }\n  \/* the compass drawing, as the card has it, made into an image (the svg has no style sheet of its own, so it is the finished state) *\/\n  function picSvg() {\n    var host = el(\"div\", {cls: \"vc-compass\"}), svgEl, xml;\n    compass(host, \"room\");\n    svgEl = host.querySelector(\"svg\");\n    svgEl.setAttribute(\"width\", \"800\");\n    svgEl.setAttribute(\"height\", \"800\");\n    xml = new XMLSerializer().serializeToString(svgEl);\n    return new Promise(function (res, rej) {\n      var im = new Image();\n      im.onload = function () { res(im); };\n      im.onerror = function () { rej(new Error(\"svg\")); };\n      im.src = \"data:image\/svg+xml;charset=utf-8,\" + encodeURIComponent(xml);\n    });\n  }\n  function picWrap(ctx, text, maxW) {\n    var words = String(text).split(\" \"), lines = [], cur = \"\", i, t;\n    for (i = 0; i < words.length; i++) {\n      t = cur ? cur + \" \" + words[i] : words[i];\n      if (ctx.measureText(t).width > maxW) {\n        if (cur) { lines.push(cur); cur = words[i]; } else { cur = t; }\n      } else { cur = t; }\n    }\n    if (cur) { lines.push(cur); }\n    return lines;\n  }\n  function picBadge(ctx, x, y, r, id, n) {\n    var cc = col(id);\n    ctx.beginPath();\n    ctx.arc(x, y, r + 2, 0, Math.PI * 2);\n    ctx.fillStyle = \"#ffffff\";\n    ctx.fill();\n    ctx.beginPath();\n    ctx.arc(x, y, r, 0, Math.PI * 2);\n    if (cc.own) {\n      ctx.fillStyle = \"#ffffff\";\n      ctx.fill();\n      ctx.lineWidth = 2;\n      ctx.strokeStyle = INK;\n      ctx.stroke();\n      ctx.fillStyle = INK;\n    } else {\n      ctx.fillStyle = cc.t;\n      ctx.fill();\n      ctx.fillStyle = \"#ffffff\";\n    }\n    ctx.font = \"700 \" + Math.round(r) + \"px \" + PIC_FF;\n    ctx.textAlign = \"center\";\n    ctx.textBaseline = \"middle\";\n    ctx.fillText(String(n), x, y + 1);\n  }\n  function picDraw(img) {\n    var W = 540, pad = 40, box = 400, bx = (W-box) \/ 2, y0 = 104, i, j, id, cc, rl, q, e, ctx, canvas, H, y, rows = [], listTop = y0 + box + 30;\n    var mc = doc.createElement(\"canvas\").getContext(\"2d\"), textW = W-pad * 2-40, nm, qn, same, lines, h, tw;\n    var B = bearings();\n    \/* measure the list first, so the picture is exactly as tall as it needs to be *\/\n    y = listTop;\n    for (i = 0; i < S.picks.length; i++) {\n      id = S.picks[i];\n      nm = nameOf(id);\n      qn = qName(id);\n      mc.font = \"700 21px \" + PIC_FF;\n      var nmLines = picWrap(mc, nm, textW);\n      tw = mc.measureText(nmLines[nmLines.length-1]).width;\n      mc.font = \"600 15px \" + PIC_FF;\n      same = nmLines.length === 1 ? (tw + 14 + mc.measureText(qn).width <= textW) : false;\n      rl = mineRoomLine(id);\n      lines = nmLines.length + (same ? 0 : 1) + (rl ? 1 : 0);\n      h = nmLines.length * 26 + (same ? 0 : 20) + (rl ? 22 : 0) + 16;\n      rows.push({id: id, n: i + 1, nm: nmLines, qn: qn, same: same, tw: tw, rl: rl, y: y, h: h});\n      y += h;\n    }\n    H = Math.max(Math.round(W * 1.25), y + 26 + 56);\n    canvas = doc.createElement(\"canvas\");\n    canvas.width = W * 2;\n    canvas.height = H * 2;\n    ctx = canvas.getContext(\"2d\");\n    ctx.scale(2, 2);\n    \/* the card: paper, a plum spine, the header with its hairline *\/\n    ctx.fillStyle = PIC_PAPER;\n    ctx.fillRect(0, 0, W, H);\n    ctx.fillStyle = PLUM;\n    ctx.fillRect(0, 0, 8, H);\n    ctx.textBaseline = \"alphabetic\";\n    ctx.textAlign = \"left\";\n    ctx.fillStyle = PIC_PLUMD;\n    ctx.font = \"700 30px \" + PIC_FF;\n    ctx.fillText(\"My compass\", pad, 62);\n    ctx.textAlign = \"right\";\n    ctx.fillStyle = MUTE;\n    ctx.font = \"400 16px \" + PIC_FF;\n    ctx.fillText(longDate(NOW()), W-pad, 62);\n    ctx.fillStyle = PIC_PAPERE;\n    ctx.fillRect(pad, 80, W-pad * 2, 1.5);\n    \/* the compass with its needles *\/\n    ctx.drawImage(img, bx, y0, box, box);\n    \/* the four quarter names in the corners, as on the card *\/\n    ctx.font = \"700 15px \" + PIC_FF;\n    QS.forEach(function (qq) {\n      var corner = CORNER[qq.id], ls = picWrap(ctx, qq.name, 104), bh = Math.max(44, ls.length * 19 + 12), top, right = corner.charAt(1) === \"r\", x = right ? bx + box-8 : bx + 8, k;\n      top = corner.charAt(0) === \"t\" ? y0 : y0 + box-bh;\n      ctx.fillStyle = qq.m;\n      ctx.fillRect(right ? x-12 : x, top + bh \/ 2-6, 12, 12);\n      ctx.fillStyle = qq.t;\n      ctx.textAlign = right ? \"right\" : \"left\";\n      for (k = 0; k < ls.length; k++) {\n        ctx.fillText(ls[k], right ? x-19 : x + 19, top + bh \/ 2-(ls.length * 19) \/ 2 + 14 + k * 19);\n      }\n    });\n    \/* the numbered badges on the rim *\/\n    for (i = 0; i < S.picks.length; i++) {\n      id = S.picks[i];\n      e = pt(B[id], 150);\n      picBadge(ctx, bx + e.x * (box \/ 400), y0 + e.y * (box \/ 400), 15, id, i + 1);\n    }\n    \/* the few: number, name, quarter, room last week *\/\n    for (i = 0; i < rows.length; i++) {\n      j = rows[i];\n      cc = col(j.id);\n      picBadge(ctx, pad + 13, j.y + 19, 13, j.id, j.n);\n      ctx.textAlign = \"left\";\n      ctx.fillStyle = INK;\n      ctx.font = \"700 21px \" + PIC_FF;\n      y = j.y + 21;\n      for (q = 0; q < j.nm.length; q++) { ctx.fillText(j.nm[q], pad + 40, y + q * 26); }\n      ctx.font = \"600 15px \" + PIC_FF;\n      ctx.fillStyle = cc.t;\n      if (j.same) {\n        ctx.fillText(j.qn, pad + 40 + j.tw + 14, y);\n      } else {\n        y += (j.nm.length-1) * 26 + 20;\n        ctx.fillText(j.qn, pad + 40, y);\n      }\n      if (j.rl) {\n        y += 22;\n        ctx.fillStyle = MUTE;\n        ctx.font = \"400 15px \" + PIC_FF;\n        ctx.fillText(j.rl, pad + 40, y);\n      }\n    }\n    \/* the foot: the post title, small *\/\n    ctx.fillStyle = PIC_PAPERE;\n    ctx.fillRect(pad, H-56, W-pad * 2, 1.5);\n    ctx.textAlign = \"center\";\n    ctx.fillStyle = MUTE;\n    ctx.font = \"600 15px \" + PIC_FF;\n    ctx.fillText(\"The Values Compass\", W \/ 2, H-26);\n    return canvas;\n  }\n  function picBlob(img) {\n    return new Promise(function (res) {\n      var c = picDraw(img);\n      if (!c.toBlob) { res(null); return; }\n      c.toBlob(function (b) { res(b); }, \"image\/png\");\n    });\n  }\n  function picDownload(blob) {\n    var url = \"\", a;\n    try { url = window.URL.createObjectURL(blob); } catch (err) { return; }\n    a = doc.createElement(\"a\");\n    a.href = url;\n    a.setAttribute(\"download\", \"values-compass.png\");\n    a.style.display = \"none\";\n    doc.body.appendChild(a);\n    a.click();\n    doc.body.removeChild(a);\n    setTimeout(function () { try { window.URL.revokeObjectURL(url); } catch (err2) { } }, 60000);\n  }\n  function picDeliver(blob, done) {\n    var file = null, can = false;\n    try {\n      if (window.File) {\n        file = new File([blob], \"values-compass.png\", {type: \"image\/png\"});\n        if (navigator.canShare) {\n          if (navigator.share) { can = navigator.canShare({files: [file]}); }\n        }\n      }\n    } catch (err) { can = false; }\n    if (can) {\n      try {\n        navigator.share({files: [file]}).then(done, function (er) {\n          done();\n          if (er) { if (er.name === \"AbortError\") { return; } }\n          picDownload(blob);\n        });\n        return;\n      } catch (err3) { can = false; }\n    }\n    picDownload(blob);\n    done();\n  }\n  function savePicture() {\n    var btn;\n    if (PIC.busy) { return; }\n    if (!window.Promise) { return; }\n    if (!S.picks.length) { return; }\n    PIC.busy = true;\n    btn = doc.querySelector('#vcMineBody [data-act=\"picture\"]');\n    if (btn) { btn.setAttribute(\"aria-busy\", \"true\"); }\n    function done() {\n      PIC.busy = false;\n      if (btn) { btn.removeAttribute(\"aria-busy\"); }\n    }\n    picFonts().then(picSvg).then(picBlob).then(function (blob) {\n      if (!blob) { done(); return; }\n      picDeliver(blob, done);\n    }).then(null, done);\n  }\n\n  \/* the reminder: an .ics calendar file for the same day next week, made here and handed to the reader's own calendar *\/\n  function icsDate(d) { return d.getFullYear() + pad2(d.getMonth() + 1) + pad2(d.getDate()); }\n  function icsStamp(d) { return d.getUTCFullYear() + pad2(d.getUTCMonth() + 1) + pad2(d.getUTCDate()) + \"T\" + pad2(d.getUTCHours()) + pad2(d.getUTCMinutes()) + pad2(d.getUTCSeconds()) + \"Z\"; }\n  function icsText(s) { return String(s).replace(\/\\\\\/g, \"\\\\\\\\\").replace(\/;\/g, \"\\\\;\").replace(\/,\/g, \"\\\\,\").replace(\/\\n\/g, \"\\\\n\"); }\n  function icsFold(line) {\n    var out = [line.slice(0, 75)], rest = line.slice(75);\n    while (rest.length > 0) {\n      out.push(\" \" + rest.slice(0, 74));\n      rest = rest.slice(74);\n    }\n    return out.join(\"\\r\\n\");\n  }\n  function nextWeek() { var n = NOW(); return new Date(n.getFullYear(), n.getMonth(), n.getDate() + 7); }\n  function makeIcs() {\n    var now = NOW(), d = nextWeek(), e = new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1), L, uid;\n    uid = \"vc\" + now.getTime() + \"r\" + Math.floor(Math.random() * 1000000000) + \"@equilibriumpsychotherapy.net\";\n    L = [\n      \"BEGIN:VCALENDAR\",\n      \"VERSION:2.0\",\n      \"PRODID:-\/\/Equilibrium Psychotherapy\/\/Values Compass\/\/EN\",\n      \"CALSCALE:GREGORIAN\",\n      \"METHOD:PUBLISH\",\n      \"BEGIN:VEVENT\",\n      \"UID:\" + uid,\n      \"DTSTAMP:\" + icsStamp(now),\n      \"DTSTART;VALUE=DATE:\" + icsDate(d),\n      \"DTEND;VALUE=DATE:\" + icsDate(e),\n      \"SUMMARY:Values Compass check-in\",\n      \"DESCRIPTION:\" + icsText(\"Come back to your Values Compass. Rate how much room last week gave your values, then pick one small step. https:\/\/equilibriumpsychotherapy.net\/values-compass\/\"),\n      \"URL:https:\/\/equilibriumpsychotherapy.net\/values-compass\/\",\n      \"TRANSP:TRANSPARENT\",\n      \"BEGIN:VALARM\",\n      \"ACTION:DISPLAY\",\n      \"DESCRIPTION:Values Compass check-in\",\n      \"TRIGGER;RELATED=START:PT9H\",\n      \"END:VALARM\",\n      \"END:VEVENT\",\n      \"END:VCALENDAR\"\n    ];\n    return L.map(icsFold).join(\"\\r\\n\") + \"\\r\\n\";\n  }\n  function remind() {\n    var ics = makeIcs(), url = \"\", a;\n    try {\n      if (window.Blob) {\n        if (window.URL) {\n          if (window.URL.createObjectURL) {\n            if (T.icsUrl) { if (T.icsUrl.indexOf(\"blob:\") === 0) { try { window.URL.revokeObjectURL(T.icsUrl); } catch (x) { } } }\n            url = window.URL.createObjectURL(new Blob([ics], {type: \"text\/calendar;charset=utf-8\"}));\n          }\n        }\n      }\n    } catch (err) { url = \"\"; }\n    if (!url) { url = \"data:text\/calendar;charset=utf-8,\" + encodeURIComponent(ics); }\n    T.icsUrl = url;\n    T.msg.remind = \"Your reminder is ready for \" + fmt(nextWeek(), {weekday: \"long\", month: \"long\", day: \"numeric\"}) + \". Open the file to add it to your calendar.\";\n    renderMine();\n    say(T.msg.remind);\n    a = doc.createElement(\"a\");\n    a.href = url;\n    a.setAttribute(\"download\", \"values-compass-check-in.ics\");\n    a.style.display = \"none\";\n    doc.body.appendChild(a);\n    a.click();\n    doc.body.removeChild(a);\n  }\n\n  \/* == part heads: the needle swings to its bearing the first time the head is seen == *\/\n  function partHeads() {\n    var needles = doc.querySelectorAll(\".vc-ph .nd\"), i, n, to, from, reduce = false, io;\n    if (window.matchMedia) { reduce = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches; }\n    if (reduce) { return; }\n    if (!window.IntersectionObserver) { return; }\n    for (i = 0; i < needles.length; i++) {\n      n = needles[i];\n      to = parseFloat(n.getAttribute(\"data-to\"));\n      from = to-72;\n      n.style.setProperty(CP + \"to\", from + \"deg\");\n    }\n    io = new IntersectionObserver(function (es) {\n      es.forEach(function (e) {\n        if (!e.isIntersecting) { return; }\n        var nd = e.target.querySelector(\".nd\");\n        if (nd) { nd.style.setProperty(CP + \"to\", nd.getAttribute(\"data-to\") + \"deg\"); }\n        io.unobserve(e.target);\n      });\n    }, {threshold: 0.6});\n    for (i = 0; i < needles.length; i++) { io.observe(needles[i].closest(\".vc-ph\")); }\n  }\n\n  \/* == wiring == *\/\n  function renderAll() {\n    renderKey();\n    renderDeck();\n    renderPiles();\n    renderOwn();\n    renderPickChips();\n    renderPickRest();\n    renderCheck();\n    renderRoom();\n    renderStep();\n    renderKeep();\n    renderMine();\n    updateNext();\n  }\n  function handle(a) {\n    var act = a.getAttribute(\"data-act\"), id = a.getAttribute(\"data-id\"), v = a.getAttribute(\"data-v\");\n    if (act === \"keyq\") { keyQ(id); }\n    else if (act === \"sort\") { sortCard(id); }\n    else if (act === \"back\") { back(); }\n    else if (act === \"skip\") { skip(); }\n    else if (act === \"select\") { selectChip(id); }\n    else if (act === \"move\") { moveCard(id, v); }\n    else if (act === \"cancel\") { T.moving = \"\"; renderPiles(); }\n    else if (act === \"removeown\") { removeOwn(id); }\n    else if (act === \"addown\") { addOwn(); }\n    else if (act === \"over\") { T.confirm = \"over\"; renderStartOver(); }\n    else if (act === \"overno\") { T.confirm = \"\"; renderStartOver(); focusEl(doc.querySelector('#vcStartOver [data-act=\"over\"]')); }\n    else if (act === \"overyes\") { startOver(); renderStartOver(); }\n    else if (act === \"showall\") { T.showAll = true; renderPickChips(); }\n    else if (act === \"pick\") { togglePick(id); }\n    else if (act === \"mine\") { setMine(id, v); }\n    else if (act === \"swap\") { swapOut(id); }\n    else if (act === \"keepit\") { keepIt(id); }\n    else if (act === \"room\") { setRoom(id, parseInt(v, 10)); }\n    else if (act === \"way\") { setWay(id, S.way[id] === v ? \"\" : v); }\n    else if (act === \"stepv\") { setStep(\"v\", v); }\n    else if (act === \"area\") { setStep(\"area\", S.step.area === v ? \"\" : v); }\n    else if (act === \"copy\") { copyText(); }\n    else if (act === \"save\") { saveWeek(); }\n    else if (act === \"fresh\") { T.confirm = \"fresh\"; renderKeep(); }\n    else if (act === \"freshno\") { T.confirm = \"\"; renderKeep(); }\n    else if (act === \"freshyes\") { freshWeek(); }\n    else if (act === \"del\") { T.confirm = \"delete\"; renderKeep(); }\n    else if (act === \"delno\") { T.confirm = \"\"; renderKeep(); }\n    else if (act === \"delyes\") { deleteAll(); }\n    else if (act === \"print\") { printCard(); }\n    else if (act === \"picture\") { savePicture(); }\n    else if (act === \"remind\") { remind(); }\n  }\n  function wire() {\n    [\"vcKey\", \"vcDeck\", \"vcPick\", \"vcCheck\", \"vcRoom\", \"vcStep\", \"vcKeep\", \"vcMine\"].forEach(function (fid) {\n      var fig = $(fid);\n      if (!fig) { return; }\n      fig.addEventListener(\"click\", function (e) {\n        var a = actOf(e, fig);\n        if (a) { handle(a); }\n      });\n      fig.addEventListener(\"change\", function (e) {\n        var t = e.target;\n        if (!t) { return; }\n        var sel = t.getAttribute ? t.getAttribute(\"data-sel\") : null;\n        if (sel === \"way\") { setWay(t.getAttribute(\"data-id\"), t.value); }\n        else if (sel === \"stepv\") { setStep(\"v\", t.value); }\n        else if (sel === \"area\") { setStep(\"area\", t.value); }\n        else if (t.id === \"vcSwitch\" || t.id === \"vcSwitchDeck\") { setKeep(t.checked); }\n      });\n    });\n    var stepFig = $(\"vcStep\");\n    if (stepFig) {\n      stepFig.addEventListener(\"input\", function (e) {\n        var t = e.target;\n        if (t.id === \"vcStepWhat\") { S.step.what = t.value; updatePlan(); persist(); }\n        else if (t.id === \"vcStepWhen\") { S.step.when = t.value; updatePlan(); persist(); }\n      });\n    }\n    window.addEventListener(\"pagehide\", flush);\n    window.addEventListener(\"afterprint\", unprint);\n  }\n\n  var mounts = [\"vcKey\", \"vcDeck\", \"vcPick\", \"vcCheck\", \"vcRoom\", \"vcStep\", \"vcKeep\"];\n  function init() {\n    var i;\n    for (i = 0; i < mounts.length; i++) { if (!$(mounts[i])) { return; } }\n    load();\n    renderAll();\n    updatePlan();\n    wire();\n    partHeads();\n    welcome();\n  }\n  window.__vc = {\n    S: S, T: T,\n    act: {sortCard: sortCard, back: back, skip: skip, moveCard: moveCard, addOwn: addOwn, removeOwn: removeOwn, startOver: startOver, togglePick: togglePick, setMine: setMine, swapOut: swapOut, setRoom: setRoom, setWay: setWay, setStep: setStep, saveWeek: saveWeek, freshWeek: freshWeek, copyText: copyText, setKeep: setKeep, deleteAll: deleteAll, keyQ: keyQ},\n    bearings: bearings, buildText: buildText, renderMine: renderMine, makeIcs: makeIcs, updateNext: updateNext,\n    setNow: function (d) { NOW = function () { return new Date(d.getTime()); }; },\n    render: renderAll,\n    reset: function () {\n      var f = fresh(), k;\n      for (k in f) { if (f.hasOwnProperty(k)) { S[k] = f[k]; } }\n      T.keyQ = \"\"; T.moving = \"\"; T.confirm = \"\"; T.showAll = false; T.noteClosed = {}; T.ta = false; T.msg = {}; T.icsUrl = \"\";\n      renderAll();\n      updatePlan();\n    }\n  };\n  if (doc.readyState === \"loading\") { doc.addEventListener(\"DOMContentLoaded\", init); } else { init(); }\n})();\n<\/script>\n<div hidden data-eq-related=\"2844,3144,3436\"><\/div>\n\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Learn what a value is and isn&#8217;t, sort a deck of forty, choose the few that are truly yours, take a kind look at how much room last week gave them, and pick one small step for this week.<\/p>","protected":false},"author":2,"featured_media":4698,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":408,"footnotes":""},"categories":[15,20],"tags":[],"class_list":["post-3489","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-body-and-mind","category-pocket-tools"],"_links":{"self":[{"href":"https:\/\/equilibriumpsychotherapy.net\/hr\/wp-json\/wp\/v2\/posts\/3489","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/equilibriumpsychotherapy.net\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/equilibriumpsychotherapy.net\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/equilibriumpsychotherapy.net\/hr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/equilibriumpsychotherapy.net\/hr\/wp-json\/wp\/v2\/comments?post=3489"}],"version-history":[{"count":20,"href":"https:\/\/equilibriumpsychotherapy.net\/hr\/wp-json\/wp\/v2\/posts\/3489\/revisions"}],"predecessor-version":[{"id":4745,"href":"https:\/\/equilibriumpsychotherapy.net\/hr\/wp-json\/wp\/v2\/posts\/3489\/revisions\/4745"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/equilibriumpsychotherapy.net\/hr\/wp-json\/wp\/v2\/media\/4698"}],"wp:attachment":[{"href":"https:\/\/equilibriumpsychotherapy.net\/hr\/wp-json\/wp\/v2\/media?parent=3489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/equilibriumpsychotherapy.net\/hr\/wp-json\/wp\/v2\/categories?post=3489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/equilibriumpsychotherapy.net\/hr\/wp-json\/wp\/v2\/tags?post=3489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}