iphone14 step0 @scrollY=0: {"scrollY": 0, "maxScroll": 70, "panelTop": 618, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 667, "bottom": 717}, "nextTappable": false, "lastOptBottom": 630}
  FAIL  iphone14 step0: next bottom <= panelTop-2 @0  {"nextBottom": 717, "panelTop": 618}
  FAIL  iphone14 step0: next tappable @0
iphone14 step0 @mid: {"scrollY": 0, "maxScroll": 70, "panelTop": 618, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 667, "bottom": 717}, "nextTappable": false, "lastOptBottom": 630}
  PASS  iphone14 step0: nav pinned mid (navBottom <= panelTop-2)  {"navBottom": 141, "panelTop": 618}
iphone14 step0 @max: {"scrollY": 0, "maxScroll": 70, "panelTop": 618, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 667, "bottom": 717}, "nextTappable": false, "lastOptBottom": 630}
  FAIL  iphone14 step0: last opt bottom <= panelTop-2 @max  {"lastOptBottom": 630, "panelTop": 618}
iphone14 step13-interests @scrollY=0: {"scrollY": 0, "maxScroll": 0, "panelTop": 618, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 556, "bottom": 606}, "nextTappable": true, "lastOptBottom": 519}
  PASS  iphone14 step13-interests: next bottom <= panelTop-2 @0  {"nextBottom": 606, "panelTop": 618}
  PASS  iphone14 step13-interests: next tappable @0
iphone14 step13-interests @mid: {"scrollY": 0, "maxScroll": 0, "panelTop": 618, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 556, "bottom": 606}, "nextTappable": true, "lastOptBottom": 519}
  PASS  iphone14 step13-interests: nav pinned mid (navBottom <= panelTop-2)  {"navBottom": 141, "panelTop": 618}
iphone14 step13-interests @max: {"scrollY": 0, "maxScroll": 0, "panelTop": 618, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 556, "bottom": 606}, "nextTappable": true, "lastOptBottom": 519}
  PASS  iphone14 step13-interests: last opt bottom <= panelTop-2 @max  {"lastOptBottom": 519, "panelTop": 618}
iphone14 income-step3 (doc coords): {"navTop": 97, "navBottom": 141, "navPos": "static", "scrollY": 0}
iphone14 SWIPE: [{"sel": " #g1", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 12, "svg": true}, {"sel": "#g2", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 12, "svg": true}, {"sel": "#g3", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 12, "svg": true}, {"sel": "#g4", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 13, "svg": true}]
  FAIL  iphone14  #g1: swipe hint present+visible
  FAIL  iphone14  #g1: swipe does not intersect <text>  {"texts": 12}
  FAIL  iphone14  #g1: swipe inside card bounds
  FAIL  iphone14 #g2: swipe hint present+visible
  FAIL  iphone14 #g2: swipe does not intersect <text>  {"texts": 12}
  FAIL  iphone14 #g2: swipe inside card bounds
  FAIL  iphone14 #g3: swipe hint present+visible
  FAIL  iphone14 #g3: swipe does not intersect <text>  {"texts": 12}
  FAIL  iphone14 #g3: swipe inside card bounds
  FAIL  iphone14 #g4: swipe hint present+visible
  FAIL  iphone14 #g4: swipe does not intersect <text>  {"texts": 13}
  FAIL  iphone14 #g4: swipe inside card bounds
  FAIL  iphone14: swipe on all 4 charts
iphone14 HASH-ANCHOR: {"scrollY": 2562, "targetTop": 56, "hdrBottom": 55}
  PASS  iphone14: anchor scrollY > 0  {"scrollY": 2562}
  PASS  iphone14: #whatif clears sticky header  {"targetTop": 56, "hdrBottom": 55}
pixel step0 @scrollY=0: {"scrollY": 0, "maxScroll": 114, "panelTop": 574, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 667, "bottom": 717}, "nextTappable": false, "lastOptBottom": 630}
  FAIL  pixel step0: next bottom <= panelTop-2 @0  {"nextBottom": 717, "panelTop": 574}
  FAIL  pixel step0: next tappable @0
pixel step0 @mid: {"scrollY": 0, "maxScroll": 114, "panelTop": 574, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 667, "bottom": 717}, "nextTappable": false, "lastOptBottom": 630}
  PASS  pixel step0: nav pinned mid (navBottom <= panelTop-2)  {"navBottom": 141, "panelTop": 574}
pixel step0 @max: {"scrollY": 0, "maxScroll": 114, "panelTop": 574, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 667, "bottom": 717}, "nextTappable": false, "lastOptBottom": 630}
  FAIL  pixel step0: last opt bottom <= panelTop-2 @max  {"lastOptBottom": 630, "panelTop": 574}
pixel step13-interests @scrollY=0: {"scrollY": 0, "maxScroll": 62, "panelTop": 574, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 615, "bottom": 665}, "nextTappable": false, "lastOptBottom": 578}
  FAIL  pixel step13-interests: next bottom <= panelTop-2 @0  {"nextBottom": 665, "panelTop": 574}
  FAIL  pixel step13-interests: next tappable @0
pixel step13-interests @mid: {"scrollY": 0, "maxScroll": 62, "panelTop": 574, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 615, "bottom": 665}, "nextTappable": false, "lastOptBottom": 578}
  PASS  pixel step13-interests: nav pinned mid (navBottom <= panelTop-2)  {"navBottom": 141, "panelTop": 574}
pixel step13-interests @max: {"scrollY": 0, "maxScroll": 62, "panelTop": 574, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 615, "bottom": 665}, "nextTappable": false, "lastOptBottom": 578}
  FAIL  pixel step13-interests: last opt bottom <= panelTop-2 @max  {"lastOptBottom": 578, "panelTop": 574}
pixel income-step3 (doc coords): {"navTop": 97, "navBottom": 141, "navPos": "static", "scrollY": 0}
pixel SWIPE: [{"sel": " #g1", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 12, "svg": true}, {"sel": "#g2", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 12, "svg": true}, {"sel": "#g3", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 12, "svg": true}, {"sel": "#g4", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 13, "svg": true}]
  FAIL  pixel  #g1: swipe hint present+visible
  FAIL  pixel  #g1: swipe does not intersect <text>  {"texts": 12}
  FAIL  pixel  #g1: swipe inside card bounds
  FAIL  pixel #g2: swipe hint present+visible
  FAIL  pixel #g2: swipe does not intersect <text>  {"texts": 12}
  FAIL  pixel #g2: swipe inside card bounds
  FAIL  pixel #g3: swipe hint present+visible
  FAIL  pixel #g3: swipe does not intersect <text>  {"texts": 12}
  FAIL  pixel #g3: swipe inside card bounds
  FAIL  pixel #g4: swipe hint present+visible
  FAIL  pixel #g4: swipe does not intersect <text>  {"texts": 13}
  FAIL  pixel #g4: swipe inside card bounds
  FAIL  pixel: swipe on all 4 charts
pixel HASH-ANCHOR: {"scrollY": 2699, "targetTop": -0.0, "hdrBottom": 55}
  PASS  pixel: anchor scrollY > 0  {"scrollY": 2699}
  FAIL  pixel: #whatif clears sticky header  {"targetTop": -0.0, "hdrBottom": 55}
se step0 @scrollY=0: {"scrollY": 0, "maxScroll": 248, "panelTop": 474, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 701, "bottom": 751}, "nextTappable": false, "lastOptBottom": 664}
  FAIL  se step0: next bottom <= panelTop-2 @0  {"nextBottom": 751, "panelTop": 474}
  FAIL  se step0: next tappable @0
se step0 @mid: {"scrollY": 0, "maxScroll": 248, "panelTop": 474, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 701, "bottom": 751}, "nextTappable": false, "lastOptBottom": 664}
  PASS  se step0: nav pinned mid (navBottom <= panelTop-2)  {"navBottom": 141, "panelTop": 474}
se step0 @max: {"scrollY": 0, "maxScroll": 248, "panelTop": 474, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 97, "bottom": 141}, "next": {"top": 701, "bottom": 751}, "nextTappable": false, "lastOptBottom": 664}
  FAIL  se step0: last opt bottom <= panelTop-2 @max  {"lastOptBottom": 664, "panelTop": 474}
se step13-interests @scrollY=0: {"scrollY": 3, "maxScroll": 193, "panelTop": 474, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 94, "bottom": 138}, "next": {"top": 643, "bottom": 693}, "nextTappable": false, "lastOptBottom": 606}
  FAIL  se step13-interests: next bottom <= panelTop-2 @0  {"nextBottom": 693, "panelTop": 474}
  FAIL  se step13-interests: next tappable @0
se step13-interests @mid: {"scrollY": 3, "maxScroll": 193, "panelTop": 474, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 94, "bottom": 138}, "next": {"top": 643, "bottom": 693}, "nextTappable": false, "lastOptBottom": 606}
  PASS  se step13-interests: nav pinned mid (navBottom <= panelTop-2)  {"navBottom": 138, "panelTop": 474}
se step13-interests @max: {"scrollY": 3, "maxScroll": 193, "panelTop": 474, "sheetH": 218, "sheetVar": "", "scrPadBottom": "185px", "navPos": "static", "nav": {"top": 94, "bottom": 138}, "next": {"top": 643, "bottom": 693}, "nextTappable": false, "lastOptBottom": 606}
  FAIL  se step13-interests: last opt bottom <= panelTop-2 @max  {"lastOptBottom": 606, "panelTop": 474}
se income-step3 (doc coords): {"navTop": 97, "navBottom": 141, "navPos": "static", "scrollY": 9}
se SWIPE: [{"sel": " #g1", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 12, "svg": true}, {"sel": "#g2", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 12, "svg": true}, {"sel": "#g3", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 12, "svg": true}, {"sel": "#g4", "hasSwipe": false, "inHeader": false, "swipeVisible": false, "swipeText": null, "texts": 13, "svg": true}]
  FAIL  se  #g1: swipe hint present+visible
  FAIL  se  #g1: swipe does not intersect <text>  {"texts": 12}
  FAIL  se  #g1: swipe inside card bounds
  FAIL  se #g2: swipe hint present+visible
  FAIL  se #g2: swipe does not intersect <text>  {"texts": 12}
  FAIL  se #g2: swipe inside card bounds
  FAIL  se #g3: swipe hint present+visible
  FAIL  se #g3: swipe does not intersect <text>  {"texts": 12}
  FAIL  se #g3: swipe inside card bounds
  FAIL  se #g4: swipe hint present+visible
  FAIL  se #g4: swipe does not intersect <text>  {"texts": 13}
  FAIL  se #g4: swipe inside card bounds
  FAIL  se: swipe on all 4 charts
se HASH-ANCHOR: {"scrollY": 2810, "targetTop": -0.0, "hdrBottom": 55}
  PASS  se: anchor scrollY > 0  {"scrollY": 2810}
  FAIL  se: #whatif clears sticky header  {"targetTop": -0.0, "hdrBottom": 55}
desk1280 DESKTOP-QUIZ: {"navPos": "static", "scrPadBottom": "80px", "navTop": 107}
  PASS  desk1280: .step-nav position static  {"navPos": "static"}
  PASS  desk1280: .scr padding-bottom 80px  {"pad": "80px"}
desk1280 DESKTOP-SWIPE: [{"sel": "#g1", "present": false, "visible": false}, {"sel": "#g2", "present": false, "visible": false}, {"sel": "#g3", "present": false, "visible": false}, {"sel": "#g4", "present": false, "visible": false}]
  PASS  desk1280: desktop swipe hidden  [{"sel": "#g1", "present": false, "visible": false}, {"sel": "#g2", "present": false, "visible": false}, {"sel": "#g3", "present": false, "visible": false}, {"sel": "#g4", "present": false, "visible": false}]

VERIFY2-FAIL (56): iphone14 step0: next bottom <= panelTop-2 @0; iphone14 step0: next tappable @0; iphone14 step0: last opt bottom <= panelTop-2 @max; iphone14  #g1: swipe hint present+visible; iphone14  #g1: swipe does not intersect <text>; iphone14  #g1: swipe inside card bounds; iphone14 #g2: swipe hint present+visible; iphone14 #g2: swipe does not intersect <text>; iphone14 #g2: swipe inside card bounds; iphone14 #g3: swipe hint present+visible; iphone14 #g3: swipe does not intersect <text>; iphone14 #g3: swipe inside card bounds; iphone14 #g4: swipe hint present+visible; iphone14 #g4: swipe does not intersect <text>; iphone14 #g4: swipe inside card bounds; iphone14: swipe on all 4 charts; pixel step0: next bottom <= panelTop-2 @0; pixel step0: next tappable @0; pixel step0: last opt bottom <= panelTop-2 @max; pixel step13-interests: next bottom <= panelTop-2 @0; pixel step13-interests: next tappable @0; pixel step13-interests: last opt bottom <= panelTop-2 @max; pixel  #g1: swipe hint present+visible; pixel  #g1: swipe does not intersect <text>; pixel  #g1: swipe inside card bounds; pixel #g2: swipe hint present+visible; pixel #g2: swipe does not intersect <text>; pixel #g2: swipe inside card bounds; pixel #g3: swipe hint present+visible; pixel #g3: swipe does not intersect <text>; pixel #g3: swipe inside card bounds; pixel #g4: swipe hint present+visible; pixel #g4: swipe does not intersect <text>; pixel #g4: swipe inside card bounds; pixel: swipe on all 4 charts; pixel: #whatif clears sticky header; se step0: next bottom <= panelTop-2 @0; se step0: next tappable @0; se step0: last opt bottom <= panelTop-2 @max; se step13-interests: next bottom <= panelTop-2 @0; se step13-interests: next tappable @0; se step13-interests: last opt bottom <= panelTop-2 @max; se  #g1: swipe hint present+visible; se  #g1: swipe does not intersect <text>; se  #g1: swipe inside card bounds; se #g2: swipe hint present+visible; se #g2: swipe does not intersect <text>; se #g2: swipe inside card bounds; se #g3: swipe hint present+visible; se #g3: swipe does not intersect <text>; se #g3: swipe inside card bounds; se #g4: swipe hint present+visible; se #g4: swipe does not intersect <text>; se #g4: swipe inside card bounds; se: swipe on all 4 charts; se: #whatif clears sticky header
