/* Review mode: the layer any site's test copy wears. Every colour, corner and edge here is a
   name out of PACE's set — house.css, which this pulls in so the layer carries it onto pages
   that have never heard of us. Nothing is borrowed from the page underneath, and the names are
   all --pace-*, so nothing is pushed into it either. */
@import url("house.css");
/* Nothing of the page underneath reaches the layer. lib/shield.js raises every rule in this sheet above
   anything a page writes, and these first ones put each piece of the layer back as it is on a page with no
   styles at all (the browser's own button, div, link) before the rules below say what it is. Its outermost
   pieces take nothing from the page's body, and its drawings keep what they say about themselves. Its boxes
   are measured border-box, as on our own screens. The guide rings a thing with data-rv-ring, not a class,
   so a page element it rings is never taken for a piece of the layer. */
:where(:is(.rv,[class^="rv-"],[class*=" rv-"]):not(html,body,svg),:is(.rv,[class^="rv-"],[class*=" rv-"]):not(html,body) :not(svg,svg *)),
:where(:is(.rv,[class^="rv-"],[class*=" rv-"]):not(html,body),:is(.rv,[class^="rv-"],[class*=" rv-"]):not(html,body) *)::before,
:where(:is(.rv,[class^="rv-"],[class*=" rv-"]):not(html,body),:is(.rv,[class^="rv-"],[class*=" rv-"]):not(html,body) *)::after{all:revert;box-sizing:border-box}
:where(:is(.rv,[class^="rv-"],[class*=" rv-"]):not(html,body) :is(svg,svg *)){all:revert-layer}
:where(:is(.rv,[class^="rv-"],[class*=" rv-"]):not(html,body)[hidden],:is(.rv,[class^="rv-"],[class*=" rv-"]):not(html,body) [hidden]){display:none} /* a browser's own way of hiding, which the line above takes away */
:where(:is(.rv,[class^="rv-"],[class*=" rv-"]):not(html,body):not(:is(.rv,[class^="rv-"],[class*=" rv-"]):not(html,body) *)){
  font:initial;font-feature-settings:initial;font-variation-settings:initial;color:initial;letter-spacing:initial;word-spacing:initial;text-transform:initial;
  text-align:initial;text-indent:initial;text-shadow:initial;white-space:initial;word-break:initial;overflow-wrap:initial;hyphens:initial;tab-size:initial;
  list-style:initial;quotes:initial;cursor:initial;visibility:initial;pointer-events:initial;caret-color:initial;accent-color:initial;color-scheme:initial;
  text-rendering:initial;-webkit-font-smoothing:initial;-webkit-text-fill-color:initial;-webkit-text-stroke:initial;text-underline-offset:initial;writing-mode:initial;
  font-synthesis:initial;font-palette:initial;line-break:initial;text-wrap:initial;text-align-last:initial;text-emphasis:initial;text-emphasis-position:initial;text-orientation:initial;
  text-underline-position:initial;text-decoration-skip-ink:initial;text-size-adjust:initial;hyphenate-character:initial;hyphenate-limit-chars:initial;ruby-position:initial;direction:initial;
  paint-order:initial;fill:initial;fill-opacity:initial;fill-rule:initial;stroke:initial;stroke-width:initial;stroke-dasharray:initial;stroke-dashoffset:initial;stroke-linecap:initial;
  stroke-linejoin:initial;stroke-miterlimit:initial;stroke-opacity:initial;marker:initial;clip-rule:initial;shape-rendering:initial;color-interpolation:initial;color-interpolation-filters:initial;
  dominant-baseline:initial;text-anchor:initial;image-rendering:initial;image-orientation:initial;border-collapse:initial;border-spacing:initial;caption-side:initial;empty-cells:initial;
  print-color-adjust:initial;forced-color-adjust:initial;scrollbar-color:initial;-webkit-text-security:initial;-webkit-tap-highlight-color:initial;-webkit-user-modify:initial}
/* out of the page's flow: its body's layout never places it, nor carries its underline into it; no stacking context either */
.rv{position:absolute;top:0;left:0;font:14px/1.5 var(--pace-font);color:var(--pace-ink)}

/* the dock */
.rv-docks{position:fixed;left:0;right:0;bottom:max(14px,env(safe-area-inset-bottom));z-index:9001;display:flex;justify-content:center;align-items:end;gap:10px;padding:0 12px;pointer-events:none;-webkit-font-smoothing:antialiased} /* the whole row sits centred, whatever each side holds */
.rv-docks>*{pointer-events:auto}
/* retracted: the pills sink below the edge and a small handle marks where they went */
.rv-docks{transition:transform .5s var(--pace-ease),opacity .35s}
.rv-docks.is-away{transform:translateY(calc(100% + 40px));opacity:0}
.rv-docks.is-away>*{pointer-events:none}
.rv-handle{position:fixed;left:50%;bottom:max(8px,env(safe-area-inset-bottom));z-index:8999;width:40px;height:4px;margin-left:-20px;border-radius:var(--pace-pill);background:var(--pace-rim);box-shadow:0 0 0 var(--pace-line) var(--pace-ink-3),var(--pace-lift-sm);opacity:0;transition:opacity .4s .25s;pointer-events:none}
.rv-handle.is-on{opacity:1}
@media(hover:none),(max-width:1024px){.rv-docks.is-away{transform:none;opacity:1}.rv-docks.is-away>*{pointer-events:auto}.rv-handle{display:none}}
@media(prefers-reduced-motion:reduce){.rv-docks{transition:none}}
.rv-side{display:flex;gap:10px}
.rv-dock.rv-dock-list{position:static}.rv-dock-list[hidden]{display:none}
.rv-dock-out .rv-btn{color:var(--pace-ink-2)}.rv-dock-out .rv-btn:hover{color:var(--pace-ink);background:var(--pace-sunk)}
.rv-dock-in{display:flex;align-items:center;gap:4px}
.rv-dock{position:relative;display:flex;align-items:center;gap:4px;padding:6px;border-radius:var(--pace-pill);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift);max-width:calc(100vw - 16px)}
.wz-page .rv-docks{bottom:104px}
.rv-seg{display:flex;background:var(--pace-hair);border-radius:var(--pace-pill);padding:3px;margin-right:4px}
.rv-seg button{height:38px;min-width:44px;padding:0 12px;border-radius:var(--pace-pill);border:0;background:none;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--pace-ink-2);font:500 13px var(--pace-font);cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}
.rv-seg button[aria-pressed=true]{background:var(--pace-solid);color:var(--pace-ink);box-shadow:var(--pace-lift-sm)}
.rv-btn{position:relative;height:44px;padding:0 14px;border-radius:var(--pace-pill);border:var(--pace-line) solid transparent;background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;font:500 13.5px var(--pace-font);white-space:nowrap;color:var(--pace-ink);cursor:pointer;transition:transform .15s,background .2s,box-shadow .2s,opacity .2s}
.rv-btn:hover{background:var(--pace-solid)}
.rv-btn:active{transform:scale(.97)}
.rv-btn[aria-pressed=true]:not(.rv-primary){background:var(--pace-ink);color:var(--pace-solid)}
.rv-btn.is-ready,.rv-btn.is-ready[aria-pressed=true]{background:var(--pace-solid);color:var(--pace-ink);font-weight:600;box-shadow:inset 0 0 0 var(--pace-line) var(--pace-ink)}
.rv-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
.rv-btn b{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:var(--pace-pill);background:var(--pace-ink);color:var(--pace-on-ink);font:600 10px/18px var(--pace-font);text-align:center;box-shadow:0 0 0 var(--pace-line-2) var(--pace-solid)}
.rv-btn.rv-primary{background:var(--pace-ink);color:var(--pace-solid);border-color:transparent}
.rv-btn.rv-primary:hover{background:var(--pace-ink-hard)}
.rv-btn svg{flex-shrink:0}
.rv-dock-meta{display:inline-flex;align-items:center;gap:6px;padding:0 12px 0 8px;font-size:11px;color:var(--pace-ink-2);white-space:nowrap}
.rv-dock-meta em{font-style:normal;font-weight:600;font-size:11px;line-height:22px;padding:0 8px;border-radius:var(--pace-pill)}
.rv-dock-meta em.ok{background:var(--pace-ink);color:var(--pace-on-ink)}
.rv-dock-meta em.warn{background:var(--pace-solid);color:var(--pace-ink);box-shadow:inset 0 0 0 var(--pace-line) var(--pace-ink-3)}
/* short of a computer, each button's word sits under its icon; on a phone the see-it-as pill goes (the phone is the phone) */
@media(max-width:900px){.rv-dock-meta{display:none}.rv-btn,.rv-seg button,.rv-dock-state{flex-direction:column;gap:3px;height:auto;min-height:44px;min-width:44px;padding:5px 9px;font-size:12px;line-height:1.1}.rv-dock{padding:4px}}
@media(max-width:600px){.rv-dock-dev{display:none}}
/* on a touch screen, the one thing to know sits over the dock from the moment they arrive, until they have pressed and held once */
.rv-arrive{display:none;position:absolute;left:0;right:0;bottom:100%;width:fit-content;max-width:calc(100vw - 24px);box-sizing:border-box;margin:0 auto 10px;padding:7px 14px;border-radius:var(--pace-pill);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift-sm);font:500 13px/1.35 var(--pace-font);color:var(--pace-ink);text-align:center;text-wrap:balance;pointer-events:none}
@media(hover:none){html.rv-pinning .rv-arrive:not(.is-done){display:block}html.rv-pinning body:has(.rv-guide,.rv-nudge.is-in,.rv-pin-sheet) .rv-arrive{display:none}}

/* toast */
.rv-toast{position:fixed;left:50%;bottom:80px;transform:translateX(-50%);z-index:9002;padding:11px 18px;border-radius:var(--pace-pill);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-edge);color:var(--pace-ink);font:500 13px/1.4 var(--pace-font);box-shadow:var(--pace-lift);max-width:calc(100vw - 24px);box-sizing:border-box}
.rv-toast[data-kind]:before{display:inline-block;width:18px;height:18px;margin:0 8px 0 -6px;border-radius:var(--pace-round);font:700 11px/18px var(--pace-font);text-align:center;vertical-align:-1px}
.rv-toast[data-kind=error]{font-weight:600}.rv-toast[data-kind=error]:before{content:"!";background:var(--pace-ink);color:var(--pace-on-ink)}
.rv-toast[data-kind=done]:before{content:"\2713";box-shadow:inset 0 0 0 var(--pace-line) var(--pace-ink)}
.rv-toast[hidden]{display:none}

/* pinning */
.rv-hl{position:fixed;z-index:8999;pointer-events:none;border:var(--pace-line-2) solid var(--pace-ink);border-radius:var(--pace-r-xs);background:var(--pace-sunk-2);transition:all .05s}
.rv-hl:after{content:attr(data-label);position:absolute;left:0;top:-22px;padding:2px 8px;border-radius:var(--pace-r-xs);background:var(--pace-ink);color:var(--pace-on-ink);font:11px/16px var(--pace-font);white-space:nowrap}
.rv-hl.is-fixed{position:absolute;transition:none;z-index:9002}
.rv-hl.is-fixed:after{display:none}
.rv-pins{position:absolute;left:0;top:0;width:0;height:0;z-index:8998}
.rv-pin{position:absolute;width:30px;height:30px;margin:0;padding:0;border:0;border-radius:50% 50% 4px 50%;transform-origin:100% 100%;display:grid;place-items:center;background:var(--pace-ink);color:var(--pace-on-ink);font:600 12.5px/1 var(--pace-font);cursor:pointer;box-shadow:0 0 0 2.5px var(--pace-solid),var(--pace-lift-sm);transition:transform .3s var(--pace-ease),box-shadow .3s var(--pace-ease)}
.rv-pin:hover,.rv-pin:focus-visible{transform:scale(1.12);outline:none;box-shadow:0 0 0 2.5px var(--pace-solid),0 0 0 var(--pace-halo) var(--pace-scrim),var(--pace-lift)}
/* not sent yet: a dashed ring round the pin; sent: the plain pin */
.rv-pin:before{content:'';position:absolute;inset:-5px;border-radius:inherit;border:var(--pace-line) dashed var(--pace-ink-3);pointer-events:none}
.rv-pin.is-sent:before{content:none}
@media(prefers-reduced-motion:reduce){.rv-pin:before{animation:none;opacity:0}}
body.rv-preview .rv-pins,body.rv-preview .rv-pin-sheet,body.rv-preview .rv-hl,body.rv-preview .rv-lock-note,body.rv-preview .rv-panel{display:none!important}

/* the pinned note, in the page beside its element */
.rv-pin-sheet{box-sizing:border-box;position:absolute;z-index:9003;width:min(420px,calc(100vw - 24px));padding:20px 22px 18px;border-radius:var(--pace-r-md);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift);font:14px/1.5 var(--pace-font);color:var(--pace-ink)}
.rv-eyebrow{font:500 10px/1.6 var(--pace-font);letter-spacing:1.5px;color:var(--pace-ink-2);margin:0 0 10px;padding-right:40px}
.rv-el{margin:0 0 10px;font-size:12px;color:var(--pace-ink-2)}
.rv-pin-sheet textarea,.rv-li-edit{width:100%;padding:11px 13px;border:var(--pace-line) solid var(--pace-hair);border-radius:var(--pace-r-sm);background:var(--pace-solid);color:var(--pace-ink);font:15px/1.5 var(--pace-font);resize:vertical}
.rv-pin-sheet textarea:focus,.rv-li-edit:focus{outline:none;border-color:var(--pace-ink);box-shadow:0 0 0 var(--pace-line-3) var(--pace-sunk-2)}
.rv-pin-row{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:12px}
.rv-send,.rv-primary-btn{padding:11px 18px;border:0;border-radius:var(--pace-pill);background:var(--pace-ink);color:var(--pace-solid);font:500 13px var(--pace-font);cursor:pointer}
.rv-send:disabled,.rv-primary-btn:disabled{opacity:.6}
.rv-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:0;border-radius:var(--pace-round);background:var(--pace-hair);color:var(--pace-ink);font:20px/1 var(--pace-font);cursor:pointer;display:grid;place-items:center}
.rv-close:hover{background:var(--pace-hair)}
.rv-link{background:none;border:0;padding:4px 0;border-bottom:var(--pace-line) solid var(--pace-hair);color:var(--pace-ink-2);font:13px var(--pace-font);cursor:pointer}

/* the feedback panel, above the dock */
.rv-panel{position:fixed;left:50%;bottom:78px;transform:translateX(-50%);z-index:9001;width:min(520px,calc(100vw - 24px));max-height:calc(100vh - 120px);overflow:auto;padding:22px 24px 18px;border-radius:var(--pace-r-md);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift)}
.wz-page .rv-panel{bottom:168px}
.rv-items{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rv-items li{display:grid;gap:4px;padding:12px 14px;border:var(--pace-line) solid var(--pace-hair);border-radius:var(--pace-r-sm);background:var(--pace-solid)}
.rv-li-page{font-size:11px;color:var(--pace-ink-2)}
.rv-li-note{font-size:13.5px;line-height:1.45}
.rv-li-edit{padding:8px 10px;font-size:13.5px;line-height:1.45}
.rv-li-row{display:flex;gap:16px;align-items:center}.rv-li-row .rv-link[hidden]{display:none}
.rv-items .rv-link{font-size:12px}
.rv-empty{color:var(--pace-ink-2);font-size:13px}
.rv-sentline{margin:12px 0 0;font-size:12px;color:var(--pace-ink-2)}
.rv-foot{display:flex;justify-content:flex-end;margin:16px 0 0}

/* locked page in Notes mode */
.rv-lock-note{position:fixed;left:0;right:0;width:fit-content;margin:0 auto;top:14px;z-index:9001;display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:var(--pace-pill);background:var(--pace-ink);color:var(--pace-on-ink);font:13px var(--pace-font);box-shadow:var(--pace-lift);max-width:calc(100vw - 24px)}
.rv-lock-note i{font-style:normal}
.rv-lock-note button{background:none;border:0;padding:0;border-bottom:var(--pace-line) solid var(--pace-on-ink);color:var(--pace-solid);font:inherit;cursor:pointer}

/* the review map's tree: where each part sits (its look follows, below) */
.rv-map .map{margin-top:34px;padding:40px 0 10px;border-radius:32px;background:#0c2242 none;color:#fffdf8}
.rv-map .trunk{display:flex;justify-content:center;padding:0 24px 30px;position:relative}
.rv-map .trunk:after{content:'';position:absolute;left:50%;bottom:0;height:30px;width:1px;background:#c4aa7d}
.rv-map .branches{--cols:7;list-style:none;margin:0;padding:0 24px 30px;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:14px;position:relative}
/* the rail: from the first branch's centre to the last's */
.rv-map .branches:before{content:'';position:absolute;top:0;left:calc(24px + (100% - 48px) / (var(--cols) * 2));right:calc(24px + (100% - 48px) / (var(--cols) * 2));height:1px;background:#c4aa7d}
.rv-map .branch{position:relative;padding-top:26px}
.rv-map .branch:before{content:'';position:absolute;top:0;left:50%;height:26px;width:1px;background:#c4aa7d}
.rv-map .area{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.rv-map .area-name{display:block;text-align:center;font:500 10px/1.6 var(--sans);letter-spacing:1.5px;color:#cfbb94;padding:8px 6px;border:1px solid #c4aa7d66;border-radius:30px;background:#0b203f}
.rv-map .leaves{list-style:none;margin:0;padding:14px 0 0 0;display:grid;gap:8px;position:relative}
.rv-map .leaves:before{content:'';position:absolute;top:0;left:50%;height:14px;width:1px;background:#ffffff33}
.rv-map .leaves li{position:relative}
.rv-map .leaves li+li:before{content:'';position:absolute;top:-8px;left:50%;height:8px;width:1px;background:#ffffff33}
.rv-map .node{display:grid;gap:3px;padding:12px 12px 10px;border-radius:12px;border:1px solid #ffffff22;background:#ffffff0a;color:#fffdf8;text-align:left;position:relative;transition:transform .2s,border-color .2s,background .2s}
.rv-map .node:hover{transform:translateY(-2px);border-color:#c4aa7d}
.rv-map .node-title{font:400 15px/1.2 var(--serif);letter-spacing:-.01em}
.rv-map .node-path{font-size:10px;color:#8ea1b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rv-map .node-marks{position:absolute;top:-8px;right:-6px;display:flex;gap:4px}
.rv-map .node .tick{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#1f5c46;color:#dff2e6;font:700 12px/1 var(--sans);font-style:normal;box-shadow:0 0 0 2px #0c2242}
.rv-map .node .badge{display:grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#d8c29c;color:#102742;font:600 11px/1 var(--sans);box-shadow:0 0 0 2px #0c2242}
.rv-map .node-done{font-size:10px;color:#8ea1b8}
.rv-map .node .done{display:grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#ffffff2e;color:#fffdf8;font:600 11px/1 var(--sans);font-style:normal;box-shadow:0 0 0 2px #0c2242}
.rv-map .node.is-approved{border-color:#1f5c46;background:#1f5c4626}
.rv-map .node.is-noted{border-color:#c4aa7d;background:#c4aa7d1f}
.rv-map .node.is-both{border-color:#1f5c46;background:linear-gradient(135deg,#1f5c4626 50%,#c4aa7d1f 50%)}
.rv-map .node.is-home{min-width:220px;text-align:center;background:#fffdf8;color:#102742;border-color:#fffdf8;padding:16px 22px 14px}
.rv-map .node.is-home .node-path{color:#7f6a46}
.rv-map .node.is-home .tick,.rv-map .node.is-home .badge{box-shadow:0 0 0 2px #fffdf8}
.rv-map .node.is-root{border-style:solid;background:#ffffff14}
/* the booking wizard: its own row under the tree, the screens chained left to right in step order */
.rv-map .wizard{margin:10px 24px 34px;padding:26px 22px 22px;border-top:1px solid #c4aa7d66;position:relative}
.rv-map .wizard:before{content:'';position:absolute;top:-1px;left:50%;width:1px;height:26px;background:#c4aa7d;transform:translateY(-26px)}
.rv-map .wizard-head{display:flex;flex-direction:row;gap:14px;align-items:center;justify-content:flex-start;margin-bottom:16px}
.rv-map .wizard-head .area-name{flex:0 0 auto}
.rv-map .wizard-head .node{flex:0 0 260px}
/* the map, full screen, zoom and pan */
/* The review map, in ACE's clothes: a frosted light sheet that slides down over the page, a glass label top-left, a round close
   top-right, a glass dock at the bottom with the zoom and the legend, and the site as white glass cards on hairline rails. */
.rv-map,.rv-docks.is-map{--accent:var(--pace-accent,#7a4ce0);--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,sans-serif;--glass:rgba(255,255,255,.66);--glass-strong:rgba(255,255,255,.84);--edge:rgba(255,255,255,.8);--blur:blur(26px) saturate(180%);--shadow:0 12px 40px rgba(15,23,42,.13),0 1px 3px rgba(15,23,42,.06);--ink:#1d1d1f;--ink-2:#6e6e73;--ink-3:#a1a1a6;--hair:rgba(0,0,0,.08);--good:#28a745;--warn:#d8b25c;--bad:#d93025;--line-c:rgba(29,29,31,.18);--ease:cubic-bezier(.2,.8,.2,1)}
.rv-map{position:fixed;inset:0;z-index:9000;overflow:hidden;font:15px/1.42 var(--font);color:var(--ink);
 background:radial-gradient(900px 500px at 15% -10%,#fff 0,rgba(255,255,255,0) 60%),radial-gradient(800px 500px at 110% 110%,#dde9e7 0,rgba(221,233,231,0) 60%),linear-gradient(180deg,rgba(244,244,247,.92),rgba(230,231,236,.92));
 -webkit-backdrop-filter:blur(36px) saturate(170%);backdrop-filter:blur(36px) saturate(170%);
 opacity:0;transform:scale(1.025);pointer-events:none;transition:opacity .36s var(--ease),transform .5s var(--ease)}
.rv-map.is-open{opacity:1;transform:none;pointer-events:auto}
body.rv-map-open .rv-lock-note,body.rv-map-open .rv-toast{display:none}
body.rv-map-open{overflow:hidden}
.rv-map-top{position:absolute;top:max(14px,env(safe-area-inset-top));left:14px;z-index:2;display:flex;align-items:center;gap:12px;height:44px;padding:0 16px 0 14px;border-radius:999px;background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--edge);box-shadow:var(--shadow);font-size:13px;color:var(--ink-2);max-width:calc(100vw - 80px)}
.rv-map-top b{font-weight:600;color:var(--ink);white-space:nowrap}
.rv-map-top span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rv-map-zoom{display:flex;gap:2px;align-items:center;background:rgba(0,0,0,.05);border-radius:999px;padding:3px;margin-right:4px}
.rv-map-zoom button{height:36px;min-width:36px;padding:0 10px;border:0;border-radius:999px;background:none;color:var(--ink-2);font:500 13px var(--font);cursor:pointer;transition:background .2s,color .2s}
.rv-map-zoom button:hover{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.rv-map-zoom [data-zoom=reset]{min-width:54px;font-variant-numeric:tabular-nums}
.rv-map-sep{width:1px;height:24px;background:var(--hair)}
.rv-map-legend{display:flex;align-items:center;gap:2px;padding-right:6px}
.rv-map-legend span{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border-radius:999px;font-size:12.5px;font-weight:500;color:var(--ink-2);white-space:nowrap}
.rv-map-legend span:before{content:'';width:8px;height:8px;border-radius:50%;background:var(--ink-3)}
.rv-map-legend .ok:before{background:var(--good)}.rv-map-legend .ready:before{background:var(--bad)}.rv-map-legend .notes:before{background:var(--warn)}.rv-map-legend .none:before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink-3)}
.rv-map-view{position:absolute;inset:0;overflow:hidden;cursor:grab}
.rv-map-view.is-dragging{cursor:grabbing}
.rv-map-pan{position:absolute;left:0;top:0}
.rv-map-canvas{width:3000px;padding:0 60px 140px}
.rv-map .map{zoom:2}
.rv-map .version-name{color:var(--ink-2);left:0;top:6px}
.rv-map .version+.version{border-top:1.5px dashed var(--line-c);margin-top:40px;padding-top:44px}
/* the tree, restyled: hairline rails with rounded shoulders, white glass cards, the home card in ink */
.rv-map .map{margin:0;padding:0;width:auto;border-radius:0;background:none;color:var(--ink)}
.rv-map .trunk{padding-bottom:34px}
.rv-map .trunk:after,.rv-map .branch:before,.rv-map .leaves:before,.rv-map .leaves li+li:before,.rv-map .wizard:before{background:var(--line-c);width:1.5px}
.rv-map .trunk:after{height:34px}
.rv-map .branches{gap:16px;padding-bottom:34px}
.rv-map .branches:before{height:1.5px;background:var(--line-c)}
.rv-map .area-name{font:600 11px/1.5 var(--font);letter-spacing:.6px;text-transform:uppercase;color:var(--ink-2);background:rgba(0,0,0,.05);border:0;padding:7px 10px}
.rv-map .node{display:grid;gap:3px;padding:12px 14px 12px;border-radius:18px;border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.8);color:var(--ink);box-shadow:0 6px 24px rgba(15,23,42,.08),0 1px 2px rgba(15,23,42,.05);transition:transform .22s var(--ease),box-shadow .22s;text-decoration:none}
.rv-map .node:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.95);background:rgba(255,255,255,.9);box-shadow:0 16px 40px rgba(15,23,42,.14),0 1px 2px rgba(15,23,42,.05);z-index:4}
.rv-map .node-title{font:600 15px/1.25 var(--font);letter-spacing:0;overflow-wrap:anywhere}
.rv-map .node-path{font:400 12px/1.4 var(--font);color:var(--ink-2)}
.rv-map .node.is-root,.rv-map .node.is-approved,.rv-map .node.is-ready,.rv-map .node.is-noted,.rv-map .node.is-both{background:rgba(255,255,255,.8);border-color:rgba(255,255,255,.95)}
.rv-map .node.is-approved{box-shadow:0 0 0 2px rgba(40,167,69,.55),0 6px 24px rgba(15,23,42,.08)}
.rv-map .node.is-ready{border:1px solid rgba(255,255,255,.95);box-shadow:0 0 0 2px rgba(217,48,37,.45),0 6px 24px rgba(15,23,42,.08)}
.rv-map .node.is-noted{box-shadow:0 0 0 2px rgba(216,178,92,.7),0 6px 24px rgba(15,23,42,.08)}
.rv-map .node.is-both{background:rgba(255,255,255,.8);box-shadow:0 0 0 2px rgba(40,167,69,.55),0 6px 24px rgba(15,23,42,.08)}
.rv-map .node.is-home{min-width:230px;padding:16px 22px 14px;background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 12px 40px rgba(15,23,42,.25)}
.rv-map .node.is-home .node-path{color:rgba(255,255,255,.6)}
.rv-map .node.is-home:hover{background:#000}
.rv-map .node-marks{top:-9px;right:-6px;gap:5px}
.rv-map .node .tick,.rv-map .node .badge,.rv-map .node .done,.rv-map .node .ready{width:auto;min-width:22px;height:22px;padding:0 7px;border-radius:11px;font:600 11.5px/1 var(--font);box-shadow:0 0 0 2px #fff,0 2px 8px rgba(15,23,42,.15)}
.rv-map .node .tick{background:var(--good);color:#fff}
.rv-map .node .ready{background:var(--bad);color:#fff;font-weight:700}
.rv-map .node .badge{background:var(--warn);color:#3d2e0c}
.rv-map .node-done{font:400 11.5px/1.4 var(--font);color:var(--ink-3)}
.rv-map .wizard{border-top:1.5px solid var(--line-c);margin:10px 24px 0;padding-top:30px}
.rv-map .wizard:before{height:34px;transform:translateY(-34px)}
.rv-map .wizard-head .node{flex-basis:250px}
.rv-map .steps{gap:26px 14px}
.rv-map .steps li+li:before{height:1.5px;background:var(--line-c)}
.rv-map .steps .node:after{font:600 9.5px/1 var(--font);letter-spacing:.5px;color:#fff;background:var(--ink);border-radius:8px;padding:3px 6px;left:-4px;top:-10px;box-shadow:0 0 0 2px #fff}
.rv-map .steps .node .node-title{font-size:13.5px}
@media(max-width:760px){.rv-map-top span{display:none}.rv-map-legend{display:none}.rv-map-sep{display:none}.rv-map-canvas{padding:76px 14px 110px}}

/* no key yet: the corner switch */
.rv-switch{position:fixed;right:14px;bottom:14px;z-index:9000;display:flex;align-items:center;gap:6px;opacity:.8;transition:opacity .2s}
.rv-switch:hover{opacity:1}
.rv-switch>button{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;border:var(--pace-line) solid var(--pace-hair);border-radius:var(--pace-r-lg);background:var(--pace-glass-2);color:var(--pace-ink-2);font:500 11px var(--pace-font);letter-spacing:.5px;cursor:pointer;box-shadow:var(--pace-lift-sm)}
.rv-switch i{font-style:normal;font-size:13px}
.rv-switch form{display:flex;gap:6px}.rv-switch form[hidden]{display:none}
.rv-switch input{width:150px;padding:6px 10px;border:var(--pace-line) solid var(--pace-hair);border-radius:var(--pace-r-lg);background:var(--pace-solid);font:12px var(--pace-font)}
.rv-switch form button{padding:6px 12px;border:0;border-radius:var(--pace-r-lg);background:var(--pace-ink);color:var(--pace-solid);font:500 11px var(--pace-font);cursor:pointer}
.wz-page .rv-switch{bottom:104px}
.rv-hint{margin:14px 0 0;font-size:12px;color:var(--pace-ink-2)}

/* the nudge: a one-line chip above Send feedback, same glass as the dock, a caret down to the button, a soft gold ring on it */
.rv-nudge{position:fixed;z-index:9001;transform:translate(-50%,6px);padding:8px 14px;border-radius:var(--pace-pill);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift);color:var(--pace-ink-2);font:500 12.5px/1.4 var(--pace-font);white-space:nowrap;opacity:0;transition:opacity .2s ease,transform .2s var(--pace-ease);pointer-events:none}
.rv-nudge.is-in{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.rv-nudge button{border:0;background:none;padding:0;margin:0;font:inherit;font-weight:600;color:var(--pace-ink);cursor:pointer;text-decoration:underline;text-decoration-color:var(--pace-ink-3);text-underline-offset:3px;text-decoration-thickness:2px}
.rv-nudge button:hover{text-decoration-color:var(--pace-ink)}
.rv-nudge-caret{position:absolute;left:50%;bottom:-6px;width:11px;height:11px;transform:translateX(-50%) rotate(45deg);background:var(--pace-glass-2);border-right:var(--pace-line) solid var(--pace-rim);border-bottom:var(--pace-line) solid var(--pace-rim)}
.rv-btn.is-cued{box-shadow:0 0 0 0 var(--pace-sunk-2);animation:rvCue 1.8s ease-out infinite}
@keyframes rvCue{0%{box-shadow:0 0 0 0 var(--pace-sunk-2)}70%{box-shadow:0 0 0 var(--pace-halo) transparent}100%{box-shadow:0 0 0 0 transparent}}
@media(max-width:600px){.rv-docks{gap:6px}.rv-side{gap:6px}}

.rv-switch{flex-direction:column;align-items:flex-end;gap:8px}
.rv-switch form{gap:6px;padding:6px;border-radius:var(--pace-r-lg);background:var(--pace-glass-2);border:var(--pace-line) solid var(--pace-hair);box-shadow:var(--pace-lift)}
.rv-switch form input{width:220px;border:0;background:none;padding:6px 10px;font:13px var(--pace-font);color:var(--pace-ink);outline:none}
.rv-switch form button{border:0;border-radius:var(--pace-r-lg);background:var(--pace-ink);color:var(--pace-solid);font:500 12px var(--pace-font);padding:8px 14px;cursor:pointer}
.rv-switch form button:disabled{opacity:.6}
.rv-switch-msg{margin:0;max-width:300px;padding:8px 12px;border-radius:var(--pace-r-sm);background:var(--pace-glass-2);border:var(--pace-line) solid var(--pace-hair);font:12px/1.5 var(--pace-font);color:var(--pace-ink);text-align:right}
.rv-switch-msg[data-kind=error]{color:var(--pace-ink);font-weight:600;border-color:var(--pace-ink-3)}
.rv-switch-msg[hidden]{display:none}
.rv-who{margin:12px 0 0;font-size:11.5px;color:var(--pace-ink-2)}

/* The gate, on ACE's sign-in: glass over the whole screen, one card in the middle with the mark, a welcome, one field and Continue */
html.rv-gated{overflow:hidden}
html.rv-gated body>*:not(.rv-gate){pointer-events:none;user-select:none}
.rv-gate{position:fixed;inset:0;z-index:9500;background:var(--pace-glass);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);font:15px/1.42 var(--pace-font);color:var(--pace-ink);transition:opacity .5s var(--pace-ease)}
.rv-si-scroll{position:absolute;inset:0;overflow:auto;display:grid;place-items:safe center;padding:20px}
.rv-si-card{width:min(410px,100%);margin:0;padding:32px 28px 24px;border-radius:var(--pace-r-lg);text-align:left;background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift);transition:opacity .3s var(--pace-ease),transform .3s var(--pace-ease)}
.rv-si-mark{width:66px;height:66px;margin:0 auto 16px;border-radius:var(--pace-r-md);display:grid;place-items:center;color:var(--pace-on-ink);background:linear-gradient(145deg,var(--pace-ink),var(--pace-ink-2));box-shadow:var(--pace-lift)}
.rv-si-mark svg{width:30px;height:30px}
.rv-si-card h1{font:600 28px/1.15 var(--pace-font);letter-spacing:-.02em;margin:0;text-align:center;color:var(--pace-ink)}
.rv-si-sub{text-align:center;color:var(--pace-ink-2);margin:6px 0 24px;font-size:15px}
.rv-si-form{padding:0 5px;margin:0 -5px}
.rv-si-form[hidden]{display:none}
.rv-si-label{display:block;font-size:13px;color:var(--pace-ink-2);font-weight:500;margin:0 2px 6px}
.rv-si-field{width:100%;height:48px;border-radius:var(--pace-r-sm);border:var(--pace-line) solid var(--pace-hair);background:var(--pace-glass-2);padding:0 14px;font:16px var(--pace-font);color:var(--pace-ink);outline:none;transition:box-shadow .2s,border-color .2s}
.rv-si-field:focus{border-color:var(--pace-ink);box-shadow:var(--pace-focus)}
.rv-si-why{color:var(--pace-ink);font-weight:600;font-size:14px;margin:8px 2px 0;display:flex;gap:6px;align-items:flex-start}
.rv-si-why[hidden]{display:none}.rv-si-why:before{margin:1px 0 0}
.rv-si-btn{width:100%;margin-top:18px;min-height:44px;padding:8px 18px;border-radius:var(--pace-pill);border:var(--pace-line) solid transparent;background:var(--pace-ink);color:var(--pace-on-ink);font:500 15px/1.25 var(--pace-font);display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:transform .15s var(--pace-ease),background .2s,opacity .2s}
.rv-si-btn:hover{background:var(--pace-ink-hard)}.rv-si-btn:active{transform:scale(.98)}.rv-si-btn:disabled{opacity:.55;cursor:default}
.rv-si-note{font-size:12px;color:var(--pace-ink-2);text-align:center;margin:14px 0 0;line-height:1.4}
@keyframes rvFade{from{opacity:0}}
@keyframes rvPop{from{opacity:0;transform:translateY(6px) scale(.97)}}
@media(max-height:640px){.rv-si-note .rv-si-rest{display:none}.rv-si-card{padding:26px 24px 20px}.rv-si-card h1{font-size:24px}.rv-si-sub{margin-bottom:16px}.rv-si-mark{width:52px;height:52px;border-radius:var(--pace-r-md);margin-bottom:10px}.rv-si-mark svg{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){.rv-gate,.rv-si-card{transition:none}}

/* map: titles hold two lines at most, the page you came from wears ACE's blue ring, and the first visit gets a coach card */
.rv-map .node-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rv-map .node.is-here{box-shadow:0 0 0 2.5px var(--accent),0 16px 40px rgba(15,23,42,.12)}
.rv-map .node .here{position:absolute;left:12px;top:-10px;padding:2px 8px;border-radius:999px;background:var(--accent);color:#fff;font:600 9.5px/1.6 var(--font);letter-spacing:.3px;font-style:normal;box-shadow:0 0 0 2px #fff}
.rv-map-coach{position:absolute;inset:0;z-index:3;display:grid;place-items:center;padding:20px;background:rgba(238,239,243,.35);animation:rvFade .3s var(--ease)}
.rv-map-coach.is-out{opacity:0;transition:opacity .25s}
.rv-map-coach-card{width:min(380px,100%);padding:24px 24px 20px;border-radius:26px;background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--edge);box-shadow:var(--shadow);color:var(--ink);font:15px/1.45 var(--font);animation:rvPop .3s var(--ease)}
.rv-map-coach-card b{display:block;font-size:19px;font-weight:600;letter-spacing:-.01em;margin-bottom:4px}
.rv-map-coach-card p{margin:0 0 14px;color:var(--ink-2);font-size:14px}
.rv-map-coach-card ul{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px}
.rv-map-coach-card li{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.72);box-shadow:inset 0 0 0 1px var(--hair);font-size:14px}
.rv-map-coach-card li i{width:32px;height:32px;border-radius:11px;background:rgba(0,0,0,.045);display:grid;place-items:center;color:var(--ink-2);flex:none}
.rv-map-coach-card li strong{font-weight:600}
.rv-map-coach-card button{width:100%;height:44px;border:0;border-radius:999px;background:var(--ink);color:#fff;font:500 15px var(--font);cursor:pointer}
.rv-map-coach-card button:hover{background:#000}
/* the Feedback mode pulses until this reviewer has used it once */

/* addressed feedback: white pins with a tick, the Addressed list, and a toast with a tick */
.rv-pin.is-done{background:var(--pace-solid);color:var(--pace-ink-2);box-shadow:inset 0 0 0 1.5px var(--pace-ink-3),0 0 0 2.5px var(--pace-solid),var(--pace-lift-sm)}
.rv-pin.is-done:before{content:"\2713";inset:-4px auto auto -4px;width:13px;height:13px;border:0;border-radius:var(--pace-round);background:var(--pace-ink);color:var(--pace-on-ink);font:700 8px/13px var(--pace-font);text-align:center;box-shadow:0 0 0 2px var(--pace-solid)}
.rv-done-head{margin-top:18px}
.rv-done li{opacity:.92}
.rv-li-res{display:flex;gap:8px;align-items:flex-start;margin-top:6px;font-size:13px;color:var(--pace-ink)}
.rv-li-res i{font-style:normal;font-weight:700}

/* While the dock is on, the page keeps a clear band at the bottom so nothing sits under it: the footer's last lines stay
   readable and the site's own floating calls to action move up above the pills. */
@media(hover:none),(max-width:1024px){html.rv-on body{padding-bottom:110px}}
@media(hover:none){html.rv-on .enquiry-dock,html.rv-on .assessment-dock{bottom:calc(max(14px,env(safe-area-inset-bottom)) + 84px)}}
html.rv-on .wz-bar{padding-bottom:0}
html.rv-on.rv-gated body{padding-bottom:0}
@media(max-width:600px) and (hover:none){html.rv-on body{padding-bottom:96px}}

/* the list opens at once; grey bars stand in for the words until they arrive */
.rv-sk{display:block;border-radius:var(--pace-r-xs);background:linear-gradient(90deg,var(--pace-hair),var(--pace-hair),var(--pace-hair));background-size:200% 100%;animation:rvSk 1.2s linear infinite}
.rv-sk-h{height:22px;width:60%;margin:6px 0 14px}.rv-sk-s{height:10px;width:35%}.rv-sk-l{height:14px;width:92%;margin-top:6px}.rv-sk-m{height:14px;width:70%;margin-top:6px}
.rv-sk-item{display:block!important}
@keyframes rvSk{from{background-position:200% 0}to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.rv-sk{animation:none}}
.rv-li-by{float:right;font-weight:500;color:var(--pace-ink-2);font-size:11px}

/* ---- ACE's look for the cards: the list, the pinned sheet and the before/after card share one family ---- */
.rv-panel,.rv-pin-sheet,.rv-modal{font:15px/1.42 var(--pace-font);color:var(--pace-ink);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift)}
.rv-panel{border-radius:var(--pace-r-lg);padding:22px 22px 18px;animation:rvPop .3s var(--pace-ease)}
.rv-pin-sheet{border-radius:var(--pace-r-md);padding:14px 14px 12px}
.rv-panel .rv-eyebrow,.rv-pin-sheet .rv-eyebrow{font:600 12px/1.5 var(--pace-font);letter-spacing:.3px;text-transform:none;color:var(--pace-ink-2);margin:0 0 8px}
.rv-panel h2{font:600 21px/1.2 var(--pace-font);letter-spacing:-.01em;margin:0 0 16px;color:var(--pace-ink)}
.rv-panel .rv-close,.rv-pin-sheet .rv-close,.rv-modal .rv-close{background:var(--pace-hair-2);color:var(--pace-ink);font:300 20px/1 var(--pace-font)}
.rv-panel .rv-close:hover,.rv-modal .rv-close:hover{background:var(--pace-sunk-2)}
.rv-items li{border:0;border-radius:var(--pace-r-md);background:var(--pace-glass);box-shadow:inset 0 0 0 var(--pace-line) var(--pace-hair);padding:12px 14px}
.rv-li-page{font:500 12px/1.4 var(--pace-font);color:var(--pace-ink-2)}
.rv-li-by{color:var(--pace-ink);font-weight:600}
.rv-li-edit{border:var(--pace-line) solid var(--pace-hair);border-radius:var(--pace-r-sm);background:var(--pace-glass-2);font:15px/1.45 var(--pace-font);color:var(--pace-ink);padding:10px 12px}
.rv-li-edit:focus{outline:none;border-color:var(--pace-ink);box-shadow:var(--pace-focus)}
.rv-li-note{font-size:14px;line-height:1.45;color:var(--pace-ink)}
.rv-li-res{color:var(--pace-ink);font-size:13px}
.rv-link{border:0;border-bottom:0;padding:0;font:500 13px var(--pace-font);color:var(--pace-ink);cursor:pointer;background:none}
.rv-link:hover{text-decoration:underline;text-underline-offset:3px}
.rv-empty,.rv-sentline,.rv-hint,.rv-who{font:13px/1.45 var(--pace-font);color:var(--pace-ink-2)}
.rv-done-head{margin-top:20px;padding-top:16px;border-top:var(--pace-line) solid var(--pace-hair)}
.rv-el{font:13px/1.4 var(--pace-font);color:var(--pace-ink-2)}
.rv-pin-sheet textarea{width:100%;min-height:84px;padding:11px 14px;border:var(--pace-line) solid var(--pace-hair);border-radius:var(--pace-r-sm);background:var(--pace-glass-2);font:15px/1.45 var(--pace-font);color:var(--pace-ink);resize:vertical}
.rv-pin-sheet textarea:focus{outline:none;border-color:var(--pace-ink);box-shadow:var(--pace-focus)}
.rv-send,.rv-btn-ace{height:40px;padding:0 18px;border-radius:var(--pace-pill);border:var(--pace-line) solid transparent;background:var(--pace-ink);color:var(--pace-on-ink);font:500 14px var(--pace-font);cursor:pointer;transition:background .2s,transform .15s var(--pace-ease)}
.rv-send:hover,.rv-btn-ace:hover{background:var(--pace-ink-hard)}.rv-send:active,.rv-btn-ace:active{transform:scale(.98)}.rv-send:disabled{opacity:.55}
.rv-err{color:var(--pace-ink);font-weight:600;font-size:13px;margin:8px 2px 0}.rv-err:before,.rv-si-why:before{content:"!";flex:none;display:inline-block;width:16px;height:16px;margin-right:6px;border-radius:var(--pace-round);background:var(--pace-ink);color:var(--pace-on-ink);font:700 10px/16px var(--pace-font);text-align:center}
/* the before/after card, over ACE's scrim */
.rv-scrim{position:fixed;inset:0;z-index:9400;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--pace-scrim);-webkit-backdrop-filter:var(--pace-blur-2);backdrop-filter:var(--pace-blur-2);animation:rvFade .2s}
.rv-modal{position:relative;width:min(640px,100%);max-height:88vh;overflow:auto;padding:22px;border-radius:var(--pace-r-lg);animation:rvPop .3s var(--pace-ease)}
.rv-m-title{font:600 21px/1.2 var(--pace-font);letter-spacing:-.01em;margin:0 0 4px}
.rv-m-sub{font-size:14px;color:var(--pace-ink-2);margin:0 0 16px}
.rv-ba{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.rv-ba-pic{margin:0;border-radius:var(--pace-r-md);overflow:hidden;background:var(--pace-shade);box-shadow:inset 0 0 0 var(--pace-line) var(--pace-hair);position:relative;aspect-ratio:16/10}
.rv-ba-pic img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.rv-ba-pic.is-empty{display:grid;place-items:center;color:var(--pace-ink-3);font-size:13px}
.rv-ba-pic figcaption{position:absolute;left:8px;top:8px;height:24px;padding:0 9px;border-radius:var(--pace-pill);display:inline-flex;align-items:center;background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur-2);backdrop-filter:var(--pace-blur-2);font:600 11px var(--pace-font);color:var(--pace-ink)}
.rv-ba-pic:last-child figcaption{color:var(--pace-ink)}
.rv-m-row{padding:12px 14px;border-radius:var(--pace-r-md);background:var(--pace-glass);box-shadow:inset 0 0 0 var(--pace-line) var(--pace-hair)}
.rv-m-row+.rv-m-row{margin-top:8px}
.rv-m-label{display:block;font:600 12px/1.4 var(--pace-font);color:var(--pace-ink-2);margin-bottom:4px}
.rv-m-row p{margin:0;font-size:14px;line-height:1.45;color:var(--pace-ink)}
.rv-m-done p i{font-style:normal;color:var(--pace-ink);margin-right:6px;font-weight:700}
.rv-m-foot{display:flex;justify-content:flex-end;margin-top:16px}
@media(max-width:600px){.rv-ba{grid-template-columns:1fr}.rv-modal{padding:18px}}

.rv-m-three{justify-content:space-between;gap:8px;flex-wrap:wrap}
.rv-m-go{display:flex;gap:8px;margin-left:auto}
.rv-btn-plain{background:var(--pace-glass);color:var(--pace-ink);border-color:var(--pace-hair)}
.rv-btn-plain:hover{background:var(--pace-solid)}
.rv-m-more{margin-top:12px}
.rv-m-more textarea{width:100%;min-height:80px;padding:11px 14px;border:var(--pace-line) solid var(--pace-hair);border-radius:var(--pace-r-sm);background:var(--pace-glass-2);font:15px/1.45 var(--pace-font);color:var(--pace-ink);resize:vertical}
.rv-m-more textarea:focus{outline:none;border-color:var(--pace-ink);box-shadow:var(--pace-focus)}
.rv-m-verdict{margin:12px 2px 0;font-size:13px;color:var(--pace-ink)}
.rv-li-follow{font-weight:600;color:var(--pace-ink)}
@media(max-width:600px){.rv-m-three .rv-btn-ace{flex:1 1 auto}.rv-m-go{flex:1 1 100%;margin:0}}

.rv-items li[data-id]{cursor:pointer}
.rv-items li[data-id]:hover{box-shadow:inset 0 0 0 var(--pace-line) var(--pace-sunk-2)}
.is-flash{outline:var(--pace-line-3) solid var(--pace-ink)!important;outline-offset:var(--pace-line-4);transition:outline-color .3s}
.rv-pin.is-flash{transform:scale(1.35)}

/* the guide: a ghost cursor on the real page that clicks for you (left or right, shown on a small mouse), a card in ACE's look that
   explains each step and waits for Next, a ring on what it points at */
.rv-guide{position:fixed;inset:0;z-index:9600;pointer-events:none;opacity:0;transition:opacity .35s}
.rv-guide.is-in{opacity:1}
.rv-ghost{position:fixed;left:0;top:0;width:0;height:0;transition:transform .72s var(--pace-ease);will-change:transform}
.rv-ghost .rv-cur{position:absolute;left:-4px;top:-3px;filter:drop-shadow(var(--pace-lift-sm));transform-origin:6px 4px;transition:transform .12s}
.rv-ghost.is-left .rv-cur,.rv-ghost.is-right .rv-cur{animation:rvPress .5s ease-out}
@keyframes rvPress{25%{transform:scale(.8)}55%{transform:scale(1)}}
.rv-ripple{position:absolute;left:-18px;top:-18px;width:36px;height:36px;border-radius:var(--pace-round);border:var(--pace-line-2) solid var(--pace-ink);opacity:0;transform:scale(.3);pointer-events:none}
.rv-ghost.is-right .rv-ripple{border-style:dashed}
.rv-ripple.go{animation:rvRipple .9s ease-out .12s}
@keyframes rvRipple{0%{transform:scale(.3);opacity:.85}100%{transform:scale(2.2);opacity:0}}
.rv-hand{position:absolute;left:24px;top:22px;display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0;transform:translateY(6px);transition:opacity .22s,transform .22s}
.rv-ghost.is-left .rv-hand,.rv-ghost.is-right .rv-hand{opacity:1;transform:none}
.rv-mouse{filter:drop-shadow(var(--pace-lift-sm))}
.rv-mouse .l,.rv-mouse .r{fill:transparent;transition:fill .15s}
.rv-ghost.is-left .rv-mouse .l,.rv-ghost.is-right .rv-mouse .r{fill:var(--pace-ink)}
.rv-ghost-tag{white-space:nowrap;padding:4px 9px;border-radius:var(--pace-pill);background:var(--pace-ink);color:var(--pace-on-ink);font:600 11px/1 var(--pace-font);letter-spacing:.01em;box-shadow:var(--pace-lift-sm)}
.rv-say{position:fixed;left:0;top:0;width:min(320px,calc(100vw - 32px));padding:16px 18px 14px;border-radius:var(--pace-r-md);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift);color:var(--pace-ink);font:14px/1.45 var(--pace-font);pointer-events:auto;transition:left .6s var(--pace-ease),top .6s var(--pace-ease)}
.rv-say-step{margin:0 0 6px;font:600 11px/1 var(--pace-font);letter-spacing:.08em;text-transform:uppercase;color:var(--pace-ink-3)}
.rv-say-title{margin:0 0 6px;font:600 16px/1.25 var(--pace-font);letter-spacing:-.01em;color:var(--pace-ink)}
.rv-say-text{margin:0;color:var(--pace-ink-2)}
.rv-say-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.rv-dots{display:flex;gap:5px}
.rv-dots i{width:6px;height:6px;border-radius:var(--pace-round);background:var(--pace-hair);transition:background .25s,width .25s}
.rv-dots i.is-done{background:var(--pace-ink-3)}
.rv-dots i.is-on{width:16px;border-radius:var(--pace-pill);background:var(--pace-ink)}
.rv-say-btns{display:flex;align-items:center;gap:4px}
.rv-say-skip{height:34px;padding:0 10px;border:0;border-radius:var(--pace-pill);background:none;color:var(--pace-ink-3);font:500 13px var(--pace-font);cursor:pointer;transition:color .15s,background .15s}
.rv-say-skip:hover{color:var(--pace-ink);background:var(--pace-hair-2)}
.rv-say-next{height:34px;min-width:72px;padding:0 16px;border:0;border-radius:var(--pace-pill);background:var(--pace-ink);color:var(--pace-on-ink);font:500 13px var(--pace-font);cursor:pointer;transition:background .15s,transform .15s,opacity .2s}
.rv-say-next:hover{background:var(--pace-ink-hard)}.rv-say-next:focus-visible,.rv-say-skip:focus-visible{outline:none;box-shadow:var(--pace-focus)}.rv-say-next:active{transform:scale(.97)}
.rv-say-next:disabled{opacity:.35;cursor:default}
.rv-say.is-busy .rv-say-next{opacity:.35}
[data-rv-ring]{box-shadow:0 0 0 var(--pace-line-2) var(--pace-solid),0 0 0 var(--pace-line-4) var(--pace-ink),0 0 0 12px var(--pace-sunk-2)!important;border-radius:var(--pace-r-xs);transition:box-shadow .3s var(--pace-ease)}
.rv-guide .rv-pin.is-demo{transform:scale(1.12)}
.rv-pin-sheet.is-demo{pointer-events:none}
@media(prefers-reduced-motion:reduce){.rv-ghost,.rv-say,.rv-guide{transition:none}.rv-ripple.go,.rv-ghost .rv-cur{animation:none}}

/* the right column: pages (dots) while giving feedback, changes (thumbnails) while checking. Tiles swell under the pointer like
   a dock, the crest shows its words on a glass tip. The column rests at the edge, a grip showing, and returns when the hand
   nears it. A skeleton shimmers in its place while the notes load. */
.rv-rail{position:fixed;right:0;top:0;bottom:0;z-index:8997;display:flex;align-items:center;pointer-events:none;--th:max(16px,min(40px,calc((100vh - 130px) / var(--n,8) - 4px)));--tw:calc(var(--th) * 1.4);--ph:max(9px,min(14px,calc((100vh - 150px) / var(--n,12) - 4px)));opacity:0;transform:translateX(16px);transition:opacity .45s .15s,transform .55s var(--pace-ease)}
.rv-rail.is-in{opacity:1;transform:none}
.rv-rail.is-in.is-away{transform:translateX(calc(100% - 18px))}
.rv-rail-edge{position:absolute;left:0;top:50%;width:18px;height:64px;margin-top:-32px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:var(--pace-r-sm) 0 0 var(--pace-r-sm);background:var(--pace-glass);-webkit-backdrop-filter:var(--pace-blur-2);backdrop-filter:var(--pace-blur-2);border:var(--pace-line) solid var(--pace-hair);border-right:0;box-shadow:var(--pace-lift-sm);pointer-events:auto;cursor:pointer;opacity:0;transition:opacity .3s}
.rv-rail.is-away .rv-rail-edge{opacity:1}
.rv-rail-edge i{width:3px;height:3px;border-radius:var(--pace-round);background:var(--pace-ink-3)}
.rv-rail-body{display:flex;flex-direction:column;align-items:flex-end;gap:8px;margin-left:18px;padding:10px 12px 10px 92px;pointer-events:auto}
.rv-rail-sw{display:inline-flex;gap:2px;padding:3px;border-radius:var(--pace-pill);background:var(--pace-glass);-webkit-backdrop-filter:var(--pace-blur-2);backdrop-filter:var(--pace-blur-2);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift-sm)}
.rv-rail-sw button,.rv-rail-sw span{height:24px;padding:0 10px;border:0;border-radius:var(--pace-pill);background:none;font:600 10px/24px var(--pace-font);letter-spacing:.06em;text-transform:uppercase;color:var(--pace-ink-2);cursor:pointer;transition:background .2s,color .2s}
.rv-rail-sw.is-one span{cursor:default}
.rv-rail-col{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.rv-rail.is-pages .rv-rail-col{gap:3px}
.rv-rail-i.is-page .rv-rail-th{border-radius:calc(var(--pace-r-xs) / 2)}
.rv-rail-i.is-page.is-near .rv-rail-th{border-radius:var(--pace-r-xs)}
/* a very long site: the column scrolls quietly instead of spilling off the screen */
.rv-rail-col{max-height:calc(100vh - 90px);overflow-y:auto;scrollbar-width:none;padding:6px 6px 6px 16px}
.rv-rail-col::-webkit-scrollbar{display:none}
.rv-rail-i{--s:1;position:relative;display:block;padding:0;margin:0;border:0;background:none;cursor:pointer;transform-origin:right center;transition:width .18s var(--pace-ease),height .18s var(--pace-ease)}
.rv-rail-i.is-change{width:calc(var(--tw) * var(--s));height:calc(var(--th) * var(--s))}
.rv-rail-i.is-page{width:calc(var(--tw) * var(--s));height:calc(var(--th) * var(--s))}
.rv-rail-i.is-page.is-on{transform:translateX(-8px)}
.rv-rail-th{position:absolute;inset:0;border-radius:calc(var(--pace-r-xs) + var(--pace-line-3) * (var(--s) - 1));overflow:hidden;background:var(--pace-shade);box-shadow:var(--pace-lift-sm),0 0 0 var(--pace-line) var(--pace-hair);transition:box-shadow .25s,border-radius .18s}
.rv-rail-th img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.rv-rail-th iframe{position:absolute;left:0;top:0;width:1280px;height:915px;border:0;background:#fff;transform:scale(var(--z,.04));transform-origin:0 0;pointer-events:none;color-scheme:light} /* the page itself at desktop width, shrunk to the tile */
.rv-rail-i.is-change:not(.is-here) .rv-rail-th{opacity:.72}
.rv-rail-i.is-near .rv-rail-th,.rv-rail-i:hover .rv-rail-th{opacity:1;box-shadow:var(--pace-lift),0 0 0 var(--pace-line) var(--pace-hair)}
/* the current one: nudged out of the line, ink ring, full strength */
.rv-rail-i.is-change.is-on{transform:translateX(-8px)}
.rv-rail-i.is-on .rv-rail-th{opacity:1;box-shadow:0 0 0 var(--pace-line-2) var(--pace-solid),0 0 0 var(--pace-line-4) var(--pace-ink),var(--pace-lift)}
.rv-rail-i{transition:width .35s var(--pace-ease),height .35s var(--pace-ease),transform .3s var(--pace-ease)}
.rv-rail-col.is-live .rv-rail-i{transition:transform .3s var(--pace-ease)}
.rv-rail-state{position:absolute;right:3px;bottom:3px;width:13px;height:13px;box-sizing:border-box;display:grid;place-items:center;font:700 8px/1 var(--pace-font);font-style:normal;border-radius:var(--pace-round);background:var(--pace-solid);border:var(--pace-line) solid var(--pace-ink-3);box-shadow:var(--pace-lift-sm);transform:scale(calc(.9 + .5 * (var(--s) - 1)));transform-origin:right bottom;opacity:clamp(0,calc((var(--s) - 1.5) * 3),1)}
/* approved: solid ink with a tick; sent: white, ink ring, "!"; still to review: plain */
.rv-rail-i.is-approved .rv-rail-state{background:var(--pace-ink);border-color:var(--pace-ink);color:var(--pace-on-ink)}.rv-rail-i.is-approved .rv-rail-state:after{content:"\2713"}
.rv-rail-i.is-sent .rv-rail-state{border:1.5px solid var(--pace-ink);color:var(--pace-ink)}.rv-rail-i.is-sent .rv-rail-state:after{content:"!"}
.rv-rail-i.is-approved .rv-rail-th{box-shadow:var(--pace-lift-sm),0 0 0 var(--pace-line-2) var(--pace-ink)}
.rv-rail-i.is-sent .rv-rail-th{box-shadow:var(--pace-lift-sm),0 0 0 var(--pace-line) var(--pace-ink-2)}
.rv-rail-i.is-page:not(.is-here) .rv-rail-th{opacity:.8}
.rv-rail-tip{position:absolute;right:calc(100% + 12px);top:0;bottom:0;margin:auto;height:fit-content;width:max-content;max-width:min(300px,calc(100vw - 160px));padding:9px 12px;border-radius:var(--pace-r-sm);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift);font:13px/1.35 var(--pace-font);color:var(--pace-ink);text-align:right;opacity:0;transform:translateX(8px);pointer-events:none;transition:opacity .22s,transform .4s var(--pace-ease)}
.rv-rail-tip b{display:block;font:600 11px/1.3 var(--pace-font);letter-spacing:.04em;text-transform:uppercase;color:var(--pace-ink-2);margin-bottom:3px}
.rv-rail-tip>span{display:block;white-space:normal}
.rv-rail-i.is-near .rv-rail-tip,.rv-rail-i:focus-visible .rv-rail-tip{opacity:1;transform:none}
.rv-rail-i:focus-visible{outline:none}
.rv-rail-i:focus-visible .rv-rail-th{box-shadow:0 0 0 var(--pace-line-2) var(--pace-solid),0 0 0 var(--pace-line-4) var(--pace-ink)}
.rv-rail-sk{display:block;width:var(--tw);height:var(--th);border-radius:var(--pace-r-xs);background:linear-gradient(90deg,var(--pace-shade) 0%,var(--pace-shade) 45%,var(--pace-shade) 90%);background-size:220% 100%;animation:rvShimmer 1.4s linear infinite;box-shadow:0 0 0 var(--pace-line) var(--pace-hair)}
.rv-rail-sk.sk-w{width:92px;height:22px;border-radius:var(--pace-pill)}
.rv-rail.is-skel .rv-rail-col{gap:6px}
@keyframes rvShimmer{from{background-position:120% 0}to{background-position:-120% 0}}
body.rv-map-open .rv-rail,html.rv-gated .rv-rail{display:none}
@media(max-width:760px){.rv-rail-body{padding-left:60px}.rv-rail{--th:max(16px,min(26px,calc((100vh - 120px) / var(--n,8) - 6px)))}}
@media(hover:none),(max-width:1024px){.rv-rail.is-in.is-away{transform:none}.rv-rail-edge{display:none}.rv-rail.is-away .rv-rail-tipbox{opacity:1!important}}
@media(prefers-reduced-motion:reduce){.rv-rail,.rv-rail-i,.rv-rail-th,.rv-rail-tip{transition:none}.rv-rail-sk{animation:none}}

/* the small card beside a change: what changed, approve, or say something */
.rv-tiny{box-sizing:border-box;position:absolute;z-index:9003;padding:14px 16px 12px;border-radius:var(--pace-r-md);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift);color:var(--pace-ink);font:14px/1.4 -apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,sans-serif;opacity:0;transform:translateY(6px) scale(.98);transition:opacity .25s,transform .35s var(--pace-ease)}
.rv-tiny.is-in{opacity:1;transform:none}
.rv-tiny .rv-close{position:absolute;right:10px;top:10px;width:26px;height:26px;border:0;border-radius:var(--pace-round);background:var(--pace-hair-2);color:var(--pace-ink);font:300 17px/1 inherit;cursor:pointer}
.rv-tiny-what{margin:0 30px 10px 0;font-size:14px;line-height:1.4}
.rv-tiny-what i{font-style:normal;font-weight:700;color:var(--pace-ink);margin-right:6px}
.rv-tiny-verdict{margin:0 0 8px;font-size:13px;color:var(--pace-ink)}
.rv-tiny-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rv-tiny-go{display:flex;gap:6px;margin-left:auto}
.rv-tiny .rv-btn-ace{height:32px;padding:0 13px;font-size:13px}
.rv-tiny-link{background:none;border:0;padding:0;font:500 13px inherit;color:var(--pace-ink-2);cursor:pointer;text-decoration:underline;text-decoration-color:var(--pace-ink-3);text-underline-offset:3px}
.rv-tiny-link:hover{color:var(--pace-ink)}
.rv-tiny-say{margin-bottom:10px}
.rv-tiny-say textarea{width:100%;min-height:56px;padding:9px 12px;border:var(--pace-line) solid var(--pace-hair);border-radius:var(--pace-r-sm);background:var(--pace-solid);font:14px/1.4 inherit;color:var(--pace-ink);resize:vertical}
.rv-tiny-say textarea:focus{outline:none;border-color:var(--pace-ink);box-shadow:0 0 0 var(--pace-line-3) var(--pace-sunk-2)}
.rv-tiny .rv-err{margin:6px 0 0;font-size:12px}
.rv-tiny{max-height:calc(100vh - 24px);overflow-y:auto;overscroll-behavior:contain}
.rv-talk{list-style:none;margin:0 0 10px;padding:8px 0 0;border-top:var(--pace-line) solid var(--pace-hair);max-height:min(220px,32vh);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:8px}
.rv-talk-line{display:flex;flex-direction:column;gap:2px;padding:7px 10px;border-radius:var(--pace-r-sm);background:var(--pace-hair-2);margin-right:24px}
.rv-talk-line.is-ours{background:var(--pace-solid);border:var(--pace-line) solid var(--pace-hair);margin:0 0 0 24px}
.rv-talk-by{font-size:11px;color:var(--pace-ink-2)}
.rv-talk-words{font-size:13px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}
.rv-talk-say{display:flex;align-items:flex-end;gap:6px;margin-bottom:10px}
.rv-talk-say textarea{flex:1;min-width:0;min-height:34px;max-height:120px;padding:7px 10px;border:var(--pace-line) solid var(--pace-hair);border-radius:var(--pace-r-sm);background:var(--pace-solid);font:13px/1.4 inherit;color:var(--pace-ink);resize:vertical}
.rv-talk-say textarea:focus{outline:none;border-color:var(--pace-ink);box-shadow:0 0 0 var(--pace-line-3) var(--pace-sunk-2)}
.rv-talk-say + .rv-err{margin:-6px 0 10px}
@media(prefers-reduced-motion:reduce){.rv-tiny{transition:none}}

/* before and after in one frame: the before on the left of a line you drag, the after on the right */
.rv-cmp{position:relative;margin-bottom:14px;border-radius:var(--pace-r-md);overflow:hidden;background:var(--pace-shade);box-shadow:inset 0 0 0 var(--pace-line) var(--pace-hair);aspect-ratio:16/10;user-select:none;touch-action:none;cursor:ew-resize}
.rv-cmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;pointer-events:none}
.rv-cmp{max-height:62vh;aspect-ratio:16/10}
.rv-cmp .after{clip-path:inset(0 0 0 var(--x,50%))}
.rv-cmp-line{position:absolute;top:0;bottom:0;left:var(--x,50%);width:2px;margin-left:-1px;background:var(--pace-solid);box-shadow:0 0 0 var(--pace-line) var(--pace-hair);pointer-events:none}
.rv-cmp-knob{position:absolute;top:50%;left:var(--x,50%);width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:var(--pace-round);background:var(--pace-glass-2);box-shadow:var(--pace-lift),0 0 0 var(--pace-line) var(--pace-hair);display:grid;place-items:center;color:var(--pace-ink);pointer-events:none;transition:transform .2s}
.rv-cmp.is-drag .rv-cmp-knob{transform:scale(1.08)}
.rv-cmp-tag{position:absolute;top:8px;height:24px;padding:0 9px;border-radius:var(--pace-pill);display:inline-flex;align-items:center;background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur-2);backdrop-filter:var(--pace-blur-2);font:600 11px var(--pace-font);color:var(--pace-ink);pointer-events:none}
.rv-cmp-tag.b{left:8px}.rv-cmp-tag.a{right:8px;color:var(--pace-ink)}
.rv-cmp.is-empty{display:grid;place-items:center;color:var(--pace-ink-3);font-size:13px;cursor:default}

/* Requests: this page, or the whole site */
.rv-scope{display:inline-flex;gap:2px;padding:3px;margin:0 0 12px;border-radius:var(--pace-pill);background:var(--pace-hair-2)}
.rv-scope button{height:26px;padding:0 12px;border:0;border-radius:var(--pace-pill);background:none;font:500 12px/26px var(--pace-font);color:var(--pace-ink-2);cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}
.rv-scope button[aria-selected=true]{background:var(--pace-solid);color:var(--pace-ink);box-shadow:var(--pace-lift-sm)}
.rv-li-pg{font-weight:600;color:var(--pace-ink)}

/* the frame with html snapshots: two documents scaled together from the top-left; the after one is clipped by the line */
.rv-cmp.is-html{background:var(--pace-shade);aspect-ratio:auto}
.rv-cmp-doc{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none;background:var(--pace-shade)}
.rv-cmp-doc.b{clip-path:inset(0 calc(100% - var(--x,50%)) 0 0)}
.rv-cmp-doc iframe{display:block;border:0;background:transparent}
.rv-cmp-doc.a{clip-path:inset(0 0 0 var(--x,50%))}

/* the celebration: a glass card at the centre, a ring that draws itself, champagne motes drifting up */
.rv-cheer{position:fixed;inset:0;z-index:9500;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .45s}
.rv-cheer.is-in{opacity:1;pointer-events:auto}
.rv-cheer-motes{position:absolute;inset:0;overflow:hidden}
.rv-cheer-motes i{position:absolute;left:var(--x,50%);bottom:-12px;width:calc(6px * var(--s,1));height:calc(6px * var(--s,1));border-radius:var(--pace-round);background:radial-gradient(circle at 35% 35%,var(--pace-ink-3),var(--pace-ink));opacity:0;animation:rvMote 3.6s ease-out var(--d,0s) forwards}
@keyframes rvMote{0%{transform:translateY(0) scale(.6);opacity:0}12%{opacity:.9}100%{transform:translateY(-92vh) translateX(calc((var(--i,7) - 7) * 6px)) scale(1);opacity:0}}
.rv-cheer-card{position:relative;width:min(360px,calc(100vw - 32px));padding:30px 28px 26px;border-radius:var(--pace-r-lg);text-align:center;background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift-lg);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,sans-serif;color:var(--pace-ink);transform:translateY(14px) scale(.96);transition:transform .6s var(--pace-ease)}
.rv-cheer.is-in .rv-cheer-card{transform:none}
.rv-cheer-ring{display:inline-grid;place-items:center;width:64px;height:64px;color:var(--pace-ink);margin-bottom:14px}
.rv-cheer-ring circle{stroke-dasharray:183;stroke-dashoffset:183;animation:rvDraw 1s var(--pace-ease) .2s forwards}
.rv-cheer-ring path{stroke-dasharray:40;stroke-dashoffset:40;animation:rvDraw .5s var(--pace-ease) 1s forwards}
@keyframes rvDraw{to{stroke-dashoffset:0}}
.rv-cheer-title{margin:0 0 6px;font-size:22px;font-weight:600;line-height:1.2;letter-spacing:-.01em}
.rv-cheer-text{margin:0;font-size:14px;line-height:1.45;color:var(--pace-ink-2)}
@media(prefers-reduced-motion:reduce){.rv-cheer-motes{display:none}.rv-cheer-ring circle,.rv-cheer-ring path{animation:none;stroke-dashoffset:0}.rv-cheer-card{transition:none}}

/* a button that is waiting: its words dim, a small ring turns beside them; nothing else in the tools moves */
.is-busy{position:relative;pointer-events:none!important;cursor:default!important}
.is-busy>*,.is-busy{color:inherit}
button.is-busy{opacity:.85}
button.is-busy::after{content:'';position:absolute;right:10px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:var(--pace-round);border:var(--pace-line-2) solid currentColor;border-right-color:transparent;animation:rvSpin .7s linear infinite;opacity:.9}
.rv-link.is-busy::after{position:static;display:inline-block;vertical-align:-2px;margin:0 0 0 6px;width:10px;height:10px}
button.is-busy.rv-btn-ace,button.is-busy.rv-send,button.is-busy.rv-si-btn,button.is-busy.rv-btn{padding-right:30px}
@keyframes rvSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){button.is-busy::after{animation:none;border-right-color:currentColor;opacity:.4}}

/* page tiles read their state at a glance: faded grey = still to review, hatched with a thin grey edge and a "!" = feedback
   sent (locked), full strength with an ink edge and a tick = approved. The tip names the page, then its state as a small chip. */
.rv-rail-i.is-page.is-left .rv-rail-th iframe{filter:grayscale(1);opacity:.55}
.rv-rail-i.is-page.is-left .rv-rail-th{background:var(--pace-shade);box-shadow:var(--pace-lift-sm),0 0 0 var(--pace-line) var(--pace-hair)}
.rv-rail-i.is-page.is-sent .rv-rail-th::after{content:'';position:absolute;inset:0;background:var(--pace-warn-hatch)}
.rv-rail-i.is-page:not(.is-here) .rv-rail-th{opacity:1}
.rv-rail-i.is-page.is-near .rv-rail-th iframe{filter:none;opacity:1}
.rv-rail-tip.is-pagetip{text-align:right}
.rv-tip-title{display:block;font:600 14px/1.3 var(--pace-font);color:var(--pace-ink);letter-spacing:-.01em}
.rv-tip-state{display:inline-block;margin:6px 0 0;padding:3px 9px;border-radius:var(--pace-pill);font:600 10px/1.4 var(--pace-font);letter-spacing:.06em;text-transform:uppercase;background:var(--pace-hair-2);color:var(--pace-ink-2)}
.rv-tip-state.st-approved{background:var(--pace-ink);color:var(--pace-on-ink)}.rv-tip-state.st-approved:before{content:"\2713  "}
.rv-tip-state.st-sent{background:var(--pace-solid);color:var(--pace-ink);box-shadow:inset 0 0 0 var(--pace-line) var(--pace-ink)}.rv-tip-state.st-sent:before{content:"!  "}

/* the shared tip: outside the scrolling column, beside the crest */
.rv-rail-tip{display:none}
.rv-rail-tipbox{position:absolute;right:120px;top:0;transform:translateY(-50%) translateX(8px);width:max-content;max-width:min(300px,calc(100vw - 160px));padding:9px 12px;border-radius:var(--pace-r-sm);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift);font:13px/1.35 var(--pace-font);color:var(--pace-ink);text-align:right;opacity:0;pointer-events:none;transition:opacity .22s,transform .4s var(--pace-ease),top .12s linear}
.rv-rail-tipbox.is-on{opacity:1;transform:translateY(-50%)}
.rv-rail-tipbox b{display:block;font:600 11px/1.3 var(--pace-font);letter-spacing:.04em;text-transform:uppercase;color:var(--pace-ink-2);margin-bottom:3px}
.rv-rail-tipbox>span{display:block;white-space:normal}
.rv-rail-tipbox .rv-tip-title{font:600 14px/1.3 var(--pace-font);color:var(--pace-ink);letter-spacing:-.01em}
@media(prefers-reduced-motion:reduce){.rv-rail-tipbox{transition:none}}

/* the current page in the pages column stands out the way the current change does: full colour, ink ring, nudged out */
.rv-rail-i.is-page.is-on .rv-rail-th,.rv-rail-i.is-page.is-on.is-left .rv-rail-th,.rv-rail-i.is-page.is-on.is-sent .rv-rail-th,.rv-rail-i.is-page.is-on.is-approved .rv-rail-th{opacity:1;box-shadow:0 0 0 var(--pace-line-2) var(--pace-solid),0 0 0 var(--pace-line-4) var(--pace-ink),var(--pace-lift)}
.rv-rail-i.is-page.is-on .rv-rail-th img{filter:none;opacity:1}

/* the resting tip goes with the column when it rests at the edge */
.rv-rail.is-away .rv-rail-tipbox{opacity:0!important;transition:opacity .2s}

/* html frames scroll for the rest of a tall document; the two sides move together, the line and knob stay put */
.rv-cmp-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}
.rv-cmp-inner{position:relative;width:100%}
.rv-cmp.is-anim .rv-cmp-doc,.rv-cmp.is-anim .rv-cmp-line,.rv-cmp.is-anim .rv-cmp-knob{transition:clip-path .4s var(--pace-ease),left .4s var(--pace-ease)}
/* Before | Split | After, bottom right of the frame */
.rv-cmp-view{position:absolute;right:10px;bottom:10px;display:inline-flex;gap:2px;padding:3px;border-radius:var(--pace-pill);background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur-2);backdrop-filter:var(--pace-blur-2);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift-sm);pointer-events:auto;cursor:default}
.rv-cmp-view button{height:26px;padding:0 11px;border:0;border-radius:var(--pace-pill);background:none;font:600 11px/26px var(--pace-font);letter-spacing:.02em;color:var(--pace-ink-2);cursor:pointer;transition:background .2s,color .2s}
.rv-cmp-view button[aria-pressed=true]{background:var(--pace-ink);color:var(--pace-on-ink)}
.rv-cmp.is-html .rv-cmp-doc.b{clip-path:inset(0 calc(100% - var(--x,50%)) 0 0)}
.rv-cmp.is-html .rv-cmp-doc.a{clip-path:inset(0 0 0 var(--x,50%))}

/* the tour's shade: everything dims but a soft window around what the step is about */
.rv-guide-shade{position:fixed;inset:0;pointer-events:auto;overflow:hidden;cursor:default}
.rv-guide-hole{position:fixed;left:50%;top:50%;width:0;height:0;border-radius:var(--pace-r-md);box-shadow:0 0 0 200vmax rgba(0,0,0,.42);opacity:1;transition:left .55s var(--pace-ease),top .55s var(--pace-ease),width .55s var(--pace-ease),height .55s var(--pace-ease),opacity .35s}
.rv-guide-hole.is-off{opacity:0}
[data-rv-ring]{position:relative;z-index:9601}
@media(prefers-reduced-motion:reduce){.rv-guide-hole{transition:opacity .2s}}

/* an approved page: a glass sheet and one card. Nothing here can change; Preview lets you look. */
.rv-approved{position:fixed;inset:0;z-index:9300;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--pace-scrim);-webkit-backdrop-filter:var(--pace-blur-2);backdrop-filter:var(--pace-blur-2);opacity:0;transition:opacity .4s}
.rv-approved.is-in{opacity:1}.rv-approved.is-out{opacity:0}
.rv-approved-card{width:min(380px,100%);padding:32px 28px 26px;border-radius:var(--pace-r-lg);text-align:center;background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);border:var(--pace-line) solid var(--pace-rim);box-shadow:var(--pace-lift-lg);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,sans-serif;color:var(--pace-ink);transform:translateY(12px) scale(.97);transition:transform .5s var(--pace-ease)}
.rv-approved.is-in .rv-approved-card{transform:none}
.rv-approved-tick{display:inline-grid;place-items:center;color:var(--pace-ink);margin-bottom:12px}
.rv-approved-title{margin:0 0 8px;font-size:21px;font-weight:600;letter-spacing:-.01em}
.rv-approved-text{margin:0 0 18px;font-size:14px;line-height:1.5;color:var(--pace-ink-2)}
.rv-approved-go{width:100%;height:44px;border-radius:var(--pace-pill);font-size:15px}
.rv-dock-state{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--pace-pill);background:var(--pace-sunk-2);color:var(--pace-ink);font:600 13px var(--pace-font);white-space:nowrap}
.rv-dock-state svg{width:14px;height:14px}
@media(prefers-reduced-motion:reduce){.rv-approved,.rv-approved-card{transition:none}}

/* a click on the shade: the card gives a small nudge and a line under the words says to follow along */
.rv-say-hint{margin:10px 0 0;padding:8px 10px;border-radius:var(--pace-r-sm);background:var(--pace-sunk-2);font:12px/1.4 var(--pace-font);color:var(--pace-ink)}
.rv-say-hint[hidden]{display:none}
.rv-say.is-nudge{animation:rvNudge .5s var(--pace-ease)}
@keyframes rvNudge{0%{transform:scale(1)}35%{transform:scale(1.03)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.rv-say.is-nudge{animation:none}}

/* See it as a phone, a tablet or a computer: the page in a device frame on a frosted stage, ACE's way */
.rv-dock-dev .rv-seg{margin:0}
.rv-stage{position:fixed;inset:0;z-index:8995;display:flex;align-items:center;justify-content:center;padding:24px 24px 100px;background:var(--pace-glass-2);-webkit-backdrop-filter:var(--pace-blur);backdrop-filter:var(--pace-blur);opacity:0;transition:opacity .4s}
.rv-stage.is-in{opacity:1}
.rv-stage-wrap{position:relative;overflow:hidden;background:var(--pace-solid);width:100%;height:100%;border-radius:var(--pace-r-md);transition:width .5s var(--pace-ease),height .5s var(--pace-ease),border-radius .5s var(--pace-ease),box-shadow .5s}
.rv-stage-wrap.is-tablet{width:min(820px,100%);height:min(1100px,100%);border-radius:var(--pace-r-lg);box-shadow:var(--pace-frame-tablet)}
.rv-stage-wrap.is-phone{width:390px;max-width:100%;height:min(844px,100%);border-radius:var(--pace-r-phone);box-shadow:var(--pace-frame-phone)}
.rv-stage-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:var(--pace-solid)}
body.rv-staged{overflow:hidden}
body.rv-staged .rv-pins,body.rv-staged .rv-pin-sheet,body.rv-staged .rv-hl,body.rv-staged .rv-lock-note{display:none!important}
html.rv-inner .rv-docks,html.rv-inner .rv-handle,html.rv-inner .rv-rail,html.rv-inner .rv-approved,html.rv-inner .rv-lock-note,html.rv-inner .rv-guide,html.rv-inner .rv-nudge,html.rv-inner .rv-cheer,html.rv-inner .rv-stage{display:none!important}
html.rv-inner body{padding-bottom:0!important}
@media(prefers-reduced-motion:reduce){.rv-stage,.rv-stage-wrap{transition:none}}

/* inside the device frame the page scrolls like a phone or tablet: no scrollbar drawn */
html.rv-inner{scrollbar-width:none;-ms-overflow-style:none}
html.rv-inner::-webkit-scrollbar,html.rv-inner body::-webkit-scrollbar{width:0;height:0;display:none}

/* in a device frame the pills and the column are over nothing: they stay put */
body.rv-staged .rv-docks.is-away{transform:none;opacity:1}body.rv-staged .rv-docks.is-away>*{pointer-events:auto}body.rv-staged .rv-handle{display:none}
body.rv-staged .rv-rail.is-in.is-away{transform:none}body.rv-staged .rv-rail-edge{display:none}body.rv-staged .rv-rail.is-away .rv-rail-tipbox{opacity:1!important}

/* the guide's cursor and mouse are SVG the script writes; an attribute cannot hold a name, so
   their ink is set from here */
.rv-cur path{fill:var(--pace-solid);stroke:var(--pace-ink)}
.rv-mouse rect,.rv-mouse path{stroke:var(--pace-ink)}
.rv-mouse>rect{fill:var(--pace-solid)}
.rv-mouse rect+rect,.rv-mouse [opacity]{fill:var(--pace-ink);stroke:none}

/* The marks on the bar and the welcome card (looks/powered-on-basic). Theirs goes first on the bar's pale glass: a logo 24px
   tall and at most 120px wide, scaled whole, or the studio's name in the bar's own letters. Ours goes last, a whisper never
   taller than theirs; on Free ours takes the place a logo takes. A page's own !important rules must not hide, move, shrink
   or recolour them, so everything that says where they are, how big, what colour and whether they show is !important here,
   and so is whatever would carry them off with it: the layer's root, the row, and the welcome card down to the mark.
   Where the marks and the tools are wider than the screen (a phone), the row goes onto a second line: theirs still
   first, ours still last.
   The card still comes in as it did, from a starting style, since an !important opacity would hold an animation still. */
.rv{display:block!important;position:absolute!important;top:0!important;left:0!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;clip-path:none!important;zoom:1!important;contain:none!important}
.rv-docks{display:flex!important;position:fixed!important;top:auto!important;left:0!important;right:0!important;bottom:max(14px,env(safe-area-inset-bottom))!important;width:auto!important;height:auto!important;z-index:9001!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;clip-path:none!important;zoom:1!important;flex-direction:row!important;flex-wrap:wrap!important;justify-content:center!important;align-items:end!important}
.rv-docks.is-away{transform:translateY(calc(100% + 40px))!important;opacity:0!important}
@media(hover:none),(max-width:1024px){.rv-docks.is-away{transform:none!important;opacity:1!important}}
body.rv-staged .rv-docks.is-away{transform:none!important;opacity:1!important}
.wz-page .rv-docks{bottom:104px!important}
html.rv-inner .rv-docks{display:none!important}
.rv-theirs,.rv-ours,.rv-ours-free{display:flex!important;align-items:center!important;align-self:end!important;flex:none!important;width:auto!important;height:58px!important;min-width:0!important;min-height:0!important;margin:0!important;border-radius:var(--pace-pill)!important;background:var(--pace-glass-2)!important;opacity:1!important;visibility:visible!important;transform:none!important;translate:none!important;scale:none!important;rotate:none!important;position:relative!important;inset:auto!important;float:none!important;filter:none!important;clip-path:none!important;mask:none!important;zoom:1!important;overflow:hidden!important;white-space:nowrap!important;text-decoration:none!important;text-transform:none!important;letter-spacing:normal!important;text-indent:0!important;text-shadow:none!important;-webkit-text-fill-color:currentColor!important;pointer-events:auto!important;cursor:auto!important}
.rv-theirs{order:-1!important;gap:0!important;padding:0 14px!important;font:600 13px/1 var(--pace-font)!important;color:var(--pace-ink)!important}
.rv-theirs img{display:block!important;flex:none!important;width:auto!important;height:24px!important;min-width:0!important;min-height:0!important;max-width:120px!important;max-height:none!important;object-fit:contain!important;object-position:center!important;margin:0!important;padding:0!important;border:0!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;clip-path:none!important;position:static!important;background:none!important;box-shadow:none!important;color:inherit!important;font:inherit!important;zoom:1!important}
.rv-theirs-name{display:block!important;max-width:180px!important;overflow:hidden!important;text-overflow:ellipsis!important;font:inherit!important;color:inherit!important;opacity:1!important;visibility:visible!important;transform:none!important;position:static!important;zoom:1!important}
.rv-ours-free{order:-1!important;gap:7px!important;padding:0 14px!important;font:600 13px/1 var(--pace-font)!important;color:var(--pace-ink)!important}
.rv-ours{order:99!important;gap:5px!important;padding:0 12px!important;font:400 10px/1 var(--pace-font)!important;color:var(--pace-ink-3)!important;border:0!important;box-shadow:0 0 0 var(--pace-line) var(--pace-hair)!important}
/* our T: a rounded square in the mark's own ink with a white T in it, drawn here so no page can repaint it */
.rv-t{display:block!important;flex:none!important;width:22px!important;height:22px!important;margin:0!important;color:inherit!important;opacity:1!important;visibility:visible!important;transform:none!important;position:static!important;filter:none!important;background:none!important;font:inherit!important;zoom:1!important}
.rv-t *{display:inline!important;position:static!important;visibility:visible!important;opacity:1!important;transform:none!important;filter:none!important;color:inherit!important}
.rv-t rect{fill:currentColor!important;stroke:none!important}
.rv-t path{fill:none!important;stroke:var(--pace-on-ink)!important;stroke-width:2.6px!important;stroke-linecap:round!important}
.rv-ours .rv-t{width:12px!important;height:12px!important}
/* as tall as the pills beside them: a 44px button in 6px of glass, or 4px short of a computer */
@media(max-width:900px){.rv-theirs,.rv-ours,.rv-ours-free{height:54px!important}}
/* the welcome card: ours on Free, their logo from Studio Lite up where there is one, and our address a whisper at the foot */
.rv-gate{display:block!important;position:fixed!important;inset:0!important;width:auto!important;height:auto!important;z-index:9500!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;clip-path:none!important;zoom:1!important;@starting-style{opacity:0!important}}
.rv-si-scroll{display:grid!important;position:absolute!important;inset:0!important;width:auto!important;height:auto!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;zoom:1!important}
.rv-si-card,.rv-si-hello{display:block!important;position:static!important;height:auto!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;clip-path:none!important;zoom:1!important}
.rv-si-hello{width:auto!important}
.rv-si-card{width:min(410px,100%)!important;@starting-style{opacity:0!important;transform:translateY(6px) scale(.97)!important}}
.rv-si-ours{display:block!important;width:28px!important;height:28px!important;margin:0 auto 16px!important;color:var(--pace-ink)!important;opacity:1!important;visibility:visible!important;transform:none!important;position:static!important;filter:none!important;zoom:1!important;background:none!important;box-shadow:none!important}
.rv-si-ours .rv-t{width:28px!important;height:28px!important}
.rv-si-logo{display:block!important;width:auto!important;height:28px!important;min-width:0!important;max-width:160px!important;object-fit:contain!important;margin:0 auto 16px!important;padding:0!important;border:0!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;clip-path:none!important;position:static!important;background:none!important;color:var(--pace-ink)!important;font:inherit!important;zoom:1!important}
.rv-ours-line{display:block!important;position:absolute!important;left:0!important;right:0!important;top:auto!important;bottom:6px!important;width:auto!important;height:auto!important;padding:0!important;margin:0!important;text-align:center!important;font:10px/1.4 var(--pace-font)!important;color:var(--pace-ink-3)!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;zoom:1!important;background:none!important;box-shadow:none!important}
.rv-ours-at{display:inline!important;position:static!important;font:inherit!important;color:inherit!important;text-decoration:none!important;text-transform:none!important;letter-spacing:normal!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;pointer-events:auto!important;zoom:1!important;background:none!important;box-shadow:none!important}
