/* PROTOTYPE, throwaway: prototype-voyage.js */
.vy{position:relative;grid-column:1;background:var(--nv-page)}
.vy-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--nv-sky)}
.vy-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.vy-intro{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none;padding:16px}
.vy-intro h2,.vy-step0 h2{font-size:var(--nv-h1);font-weight:800;letter-spacing:-.03em;color:var(--nv-ink);margin:0;line-height:1.05}
.vy-intro p,.vy-step0 p{color:var(--nv-ink-2);font-weight:600;margin:12px 0 0}
.vy-card{background:#fff;border-radius:var(--nv-r-card);box-shadow:var(--nv-shadow-hi);padding:var(--nv-pad);max-width:420px}
.vy-card h3{font-size:var(--nv-h2);font-weight:800;letter-spacing:-.02em;color:var(--nv-ink);margin:6px 0 8px;line-height:1.15}
.vy-card p{color:var(--nv-ink-2);margin:0 0 16px;line-height:1.5}
.vy-k{display:inline-block;font-size:var(--nv-tiny);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--nv-teal-ink);background:var(--nv-teal-soft);padding:4px 10px;border-radius:var(--nv-r-pill)}
.vy-a .vy-card{position:absolute;left:max(16px,calc(50% - 560px));top:50%;margin-top:-140px;opacity:0;transition:none}
@media(max-width:699px){.vy-a .vy-card{left:16px;right:16px;top:auto;bottom:144px;margin:0;max-width:none}}
.vy-b .vy-sheet{position:absolute;left:50%;bottom:24px;translate:-50% 0;width:min(100% - 32px,760px);max-width:none;display:grid;grid-template-columns:1fr auto;gap:4px 24px;align-items:end;opacity:0}
.vy-b .vy-sheet>*{grid-column:1}.vy-b .vy-sheet .nv-btn{grid-column:2;grid-row:1/4}
@media(max-width:699px){.vy-b .vy-sheet{display:block;top:64px;bottom:auto}.vy-step{display:none}}
.vy-step{position:absolute;top:84px;right:16px;font-weight:700;font-size:var(--nv-small);color:var(--nv-ink);background:rgba(255,255,255,.85);padding:6px 12px;border-radius:var(--nv-r-pill)}
.vy-c{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);max-width:var(--nv-max);margin:0 auto;padding:0 var(--nv-pad)}
.vy-map{grid-column:2;grid-row:1;position:sticky;top:0;height:100vh;height:100svh;display:grid;place-items:center}
.vy-map svg{width:100%;max-height:92vh;border-radius:var(--nv-r-card);box-shadow:var(--nv-shadow)}
.vy-steps{grid-column:1;grid-row:1;padding:30vh 0 40vh}
.vy-step0{min-height:70vh}.vy-step0 h2{text-align:left}
.vy-c .vy-card{margin:0 0 70vh;opacity:.35;transition:opacity .3s,transform .3s}.vy-c .vy-card.is-on{opacity:1;transform:translateX(8px)}
.vy-leg,.vy-leg-on{fill:none;stroke-width:6;stroke-linecap:round}.vy-leg{stroke:#c4b8a0;stroke-dasharray:2 12}.vy-leg.is-sea{stroke:#fff;stroke-opacity:.6}
.vy-leg-on{stroke:var(--nv-ink)}.vy-leg-on.is-sea{stroke:#fff;stroke-width:7}
@media(max-width:699px){.vy-c{display:block;padding:0}.vy-map{height:52svh;z-index:3;background:var(--nv-page);padding:8px 16px}
  .vy-map svg{max-height:100%;height:100%}.vy-steps{position:relative;z-index:1;padding:10vh 16px 40vh}.vy-step0{min-height:50vh}.vy-c .vy-card{margin-bottom:35vh;opacity:.6}}
.vy-bar{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));translate:-50% 0;z-index:99;display:flex;align-items:center;gap:4px;
  background:#111;color:#fff;border-radius:999px;padding:4px;box-shadow:0 8px 24px rgba(0,0,0,.35);font:600 14px/1 system-ui,sans-serif}
@media(min-width:700px){.vy-bar{bottom:20px}}
.vy-bar button{all:unset;cursor:pointer;width:40px;height:40px;display:grid;place-items:center;border-radius:999px;font-size:18px}
.vy-bar button:hover,.vy-bar button:focus-visible{background:#333}.vy-bar span{padding:0 10px;white-space:nowrap}
.vy-a>.vy-tall,.vy-a.vy-tall{height:820vh}.vy-ch{height:300vh}
.vy-intro--top{place-content:start center;padding-top:18vh}

.vd{position:relative;height:1100vh;background:linear-gradient(#e3f1f8,#f4f9fc 4%)}
.vd-world{position:absolute;inset:0;overflow:hidden}
.vd-land{position:absolute;inset:0;width:100%;height:100%}
.vd-world>i{position:absolute;left:calc(var(--x) * 100%);top:calc(var(--u) * 100%);translate:-50% -100%}
.vd-house{width:34px;height:30px;background:#fbf6ec;box-shadow:inset 0 -2px 0 #e6d8bc}
.vd-house::before{content:"";position:absolute;left:-4px;right:-4px;bottom:100%;height:14px;background:#d9774a;clip-path:polygon(50% 0,100% 100%,0 100%)}
.vd-tree{width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 65% 60%,#5d8a4b 45%,#6f9a5a 46%)}
.vd-s{position:absolute;left:0;top:0;overflow:visible;transform-origin:0 0;will-change:transform}
.vd-sky{position:absolute;inset:0 0 auto;height:100vh;display:grid;place-content:start center;padding-top:18vh;text-align:center;pointer-events:none}
.vd-sky h2{font-size:var(--nv-h1);font-weight:800;letter-spacing:-.03em;color:var(--nv-ink);margin:0;line-height:1.05}
.vd-sky p{color:var(--nv-ink-2);font-weight:600;margin:12px 0 0}
.vd-leg{position:absolute;left:max(16px,calc(50% - 560px));width:min(400px,calc(100% - 32px))}
.vd-leg0{top:27%;height:17%}.vd-leg1{top:60%;height:16%}.vd-leg2{top:82%;height:18%}
.vd-leg .vy-card{position:sticky;top:30vh}
@media(max-width:699px){.vd-leg .vy-card{top:calc(100svh - 330px)}.vd-tree{width:30px;height:30px}.vd-house{width:24px;height:22px}}
.ve.vy-tall{height:1000vh}
.ve-c{position:absolute;inset:0;width:100%;height:100%;display:block}
.ve .vy-card{position:absolute;left:max(16px,calc(50% - 560px));top:50%;margin-top:-140px;opacity:0}
@media(max-width:699px){.ve .vy-card{left:16px;right:16px;top:auto;bottom:144px;margin:0;max-width:none}}
.ve-src{position:absolute;top:80px;right:16px;font:700 15px/1 ui-monospace,monospace;background:#111;color:#fff;padding:8px 12px;border-radius:999px;opacity:.9}
.vy-a.vy-tall{height:1300vh}
.ve-tag{position:absolute;right:16px;bottom:20px;width:min(340px,calc(100% - 32px));background:rgba(17,17,17,.88);color:#fff;border-radius:14px;padding:10px;font:500 13px/1.35 system-ui;z-index:5}
.ve-tag textarea{width:100%;box-sizing:border-box;border-radius:8px;border:0;padding:8px;font:inherit;resize:vertical}
.ve-tag div{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.ve-tag button{font:600 12px system-ui;border:0;border-radius:8px;padding:7px 10px;cursor:pointer;background:#fff;color:#111}
.ve-tag button[type=submit]{background:#e0703a;color:#fff}.ve-tag ol{margin:8px 0 0;padding-left:20px;max-height:22vh;overflow:auto}.ve-tag a{color:#9fe0f2}
@media(max-width:699px){.ve-tag{bottom:auto;top:120px}.ve .vy-card{bottom:84px}}

/* E story copy: chapter cards with changing lines, intro, end card */
.ve.vy-tall{height:1130vh}
.ve-hero{place-content:start center;padding-top:16vh}.ve-hero .vy-k{justify-self:center;margin-bottom:14px}
.ve-hero h2{text-shadow:0 1px 18px rgba(255,255,255,.7)}.ve-hero p{max-width:34ch;margin-inline:auto;text-shadow:0 1px 12px rgba(255,255,255,.8)}
.ve-jump{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:18px;pointer-events:auto}
.ve-jump button{font:700 var(--nv-small)/1 inherit;font-family:inherit;color:var(--nv-ink);background:rgba(255,255,255,.9);border:0;border-radius:var(--nv-r-pill);padding:10px 14px;cursor:pointer;box-shadow:var(--nv-shadow)}
.ve-jump button:hover,.ve-jump button:focus-visible{background:#fff}
.ve .ve-ch,.ve .ve-end{position:absolute;left:max(16px,calc(50% - 560px));top:50%;translate:0 -50%;margin:0;opacity:0;width:min(420px,calc(100% - 32px))}
.ve-lines{display:grid}.ve-lines h3{grid-area:1/1;opacity:0;transition:opacity .35s}.ve-lines h3.is-on{opacity:1}
.ve-dots{display:flex;gap:6px;list-style:none;padding:0;margin:4px 0 16px}.ve-dots li{width:18px;height:4px;border-radius:2px;background:var(--nv-teal-soft)}.ve-dots li.is-on{background:var(--nv-teal)}
.ve-end-a{display:grid;gap:8px}
@media(max-width:699px){.ve .ve-ch,.ve .ve-end{top:auto;bottom:84px;translate:none;left:16px;right:16px;width:auto;max-width:none}.ve-hero{padding-top:168px}}
@media(max-width:699px){.ve-tag{top:112px;bottom:auto;right:16px;left:auto;width:auto;max-width:calc(100% - 32px);padding:6px}
  .ve-tag:not(.is-open) textarea,.ve-tag:not(.is-open) ol,.ve-tag:not(.is-open) .ve-copy,.ve-tag:not(.is-open) .ve-clear{display:none}.ve-tag:not(.is-open) div{margin:0}
  .ve-tag.is-open{left:16px;bottom:auto;top:120px}
  .ve .ve-ch,.ve .ve-end{bottom:calc(140px + env(safe-area-inset-bottom))}.ve-src{font-size:11px;top:72px}}

/* animated.nautivia.eu: the film is the home page; the old hero and product cards step aside, everything after stays */
/* recap under the film (Gal, 4 Oct): today's three choices with the live card, what is behind each choice, the FAQ, then the rest */
@media(min-width:700px){.nv-anim .vy{grid-row:1}.nv-anim .hm-hero,.nv-anim .hm-live{grid-row:2}.nv-anim .hm-trav{grid-row:3}
  .nv-anim .vy-faq{grid-row:4;grid-column:1;justify-self:center;width:var(--cw)}.nv-anim .hm-find{grid-row:5}.nv-anim .hm-band{grid-row:6}.nv-anim .hm-plan{grid-row:7}}
/* animated mode has no variant switcher: cards sit just above the feedback pill (phone) */
@media(max-width:699px){.nv-anim .ve .ve-ch,.nv-anim .ve .ve-end{bottom:calc(124px + env(safe-area-inset-bottom))}
  .nv-anim .ve-fb{left:16px;right:auto;bottom:calc(68px + env(safe-area-inset-bottom))}.nv-anim .ve-fb-o{padding:10px 14px}
  .ve-lv{display:flex;flex-direction:column;overflow:hidden}.ve-lv-cam{flex:1 1 auto;min-height:0;max-height:none}.ve-lv h4{flex:none}}
/* the consent bar comes first; feedback waits until it is answered */
body:has(#nv-cc) .ve-fb{display:none}

.ve-lv{position:absolute;right:max(16px,calc(50% - 560px));top:96px;width:min(360px,calc(100% - 32px));background:#fff;border-radius:var(--nv-r-card);box-shadow:var(--nv-shadow-hi);padding:16px 18px;opacity:0;z-index:2}
.ve-lv h4{margin:0 0 10px;font-size:var(--nv-small);font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--nv-teal-ink);display:flex;justify-content:space-between;gap:8px}
.ve-lv h4 small{font-weight:600;text-transform:none;letter-spacing:0;color:var(--nv-ink-2)}
.ve-lv-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--nv-line);color:var(--nv-ink);text-decoration:none;font-weight:600}
.ve-lv-row b{font-weight:700;text-align:right}.ve-lv-s{display:inline-flex;align-items:center;gap:6px}
.ve-lv-cam{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:10px;background:var(--nv-sky);margin-bottom:6px}
.ve-lv-big{font-size:var(--nv-h2);font-weight:800;color:var(--nv-ink);margin:0}.ve-lv-big small{font-size:var(--nv-small);font-weight:700}
.ve-lv-n{margin:4px 0 0;color:var(--nv-ink-2);font-size:var(--nv-small)}
.ve-lv-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ve-lv-two h5{margin:0 0 6px;font-size:var(--nv-small);color:var(--nv-ink-2)}
.ve-lv-two ul{list-style:none;margin:0;padding:0}.ve-lv-two li{padding:5px 0;border-top:1px solid var(--nv-line);font-size:var(--nv-small);color:var(--nv-ink-2)}.ve-lv-two li b{color:var(--nv-ink);font-size:var(--nv-body)}
.ve-lv-more{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-weight:700;color:var(--nv-teal-ink);font-size:var(--nv-small)}.ve-lv-more svg,.ve-lv-pay svg{width:16px;height:16px}
.ve-lv-pay{margin-top:12px;width:100%;justify-content:center}
@media(max-width:699px){.ve-lv{top:64px;left:16px;right:16px;width:auto;padding:12px 14px}.ve-lv-cam{max-height:150px}.ve-lv-big{font-size:var(--nv-h3,22px)}}

.ve-fb{position:fixed;right:16px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:98;font-family:var(--nv-font)}
@media(max-width:699px){.ve-fb{bottom:calc(76px + env(safe-area-inset-bottom))}}
.ve-fb-o{font:700 var(--nv-small)/1 var(--nv-font);background:var(--nv-ink);color:#fff;border:0;border-radius:var(--nv-r-pill);padding:12px 16px;cursor:pointer;box-shadow:var(--nv-shadow-hi)}
.ve-fb-p{display:none;width:min(320px,calc(100vw - 32px));background:#fff;border-radius:var(--nv-r-card);box-shadow:var(--nv-shadow-hi);padding:16px}
.ve-fb.is-open .ve-fb-p{display:block}.ve-fb.is-open .ve-fb-o{display:none}
.ve-fb-p p{margin:0 0 10px;font-weight:700;color:var(--nv-ink)}
.ve-fb-r{display:flex;gap:6px;margin-bottom:10px}.ve-fb-r input{position:absolute;opacity:0}
.ve-fb-r span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--nv-teal-soft);color:var(--nv-teal-ink);font-weight:800;cursor:pointer}
.ve-fb-r input:checked+span{background:var(--nv-teal);color:#fff}.ve-fb-r input:focus-visible+span{outline:2px solid var(--nv-ink)}
.ve-fb-p textarea{width:100%;box-sizing:border-box;border:1px solid var(--nv-line);border-radius:10px;padding:8px;font:inherit;resize:vertical}
.ve-fb-a{display:flex;gap:8px;margin-top:10px;align-items:center}.ve-fb-x{background:none;border:0;color:var(--nv-ink-2);font-weight:700;cursor:pointer}

.ve-at-hero .ve-fb{display:none}
@media(max-width:699px){.nv-anim .ve-lv{top:calc(12px + env(safe-area-inset-top))}}
/* short phones (SE and smaller): compact card and panels so the camera and the pay button keep their room */
@media(max-width:699px) and (max-height:740px){
  .nv-anim .ve .ve-ch,.nv-anim .ve .ve-end{padding:12px 14px}
  .ve-ch h3,.ve-end h3{font-size:19px;margin:4px 0 6px}.ve-ch .vy-k,.ve-end .vy-k{font-size:10.5px;padding:3px 8px}
  .ve-dots{margin:2px 0 10px}.ve-ch .nv-btn,.ve-end .nv-btn{min-height:40px;padding-block:8px}.ve-end-a{gap:6px}
  .ve-lv{padding:10px 12px}.ve-lv h4{margin-bottom:6px;font-size:11px}.ve-lv-row{padding:5px 0;font-size:14px}
  .ve-lv-two li{padding:3px 0;font-size:12px}.ve-lv-two li b{font-size:14px}.ve-lv-two h5{font-size:11.5px;margin-bottom:3px}
  .ve-lv-more{margin-top:6px;font-size:12.5px}.ve-lv-pay{margin-top:8px;min-height:40px}
  .ve-hero h2{font-size:30px}.ve-hero p{font-size:15px}.ve-jump{gap:6px;margin-top:12px}.ve-jump button,.ve-jump--q a{padding:8px 11px;font-size:13px}}

/* FAQ in the recap */
.vy-faq{margin:clamp(28px,5vh,48px) auto 0;max-width:820px}
.vy-faq h2{margin:0 0 12px;font-size:clamp(20px,5.4vw,26px);font-weight:800;letter-spacing:-.02em;color:var(--nv-ink)}
.vy-faq__q{background:#fff;border-radius:var(--nv-r-sm);box-shadow:var(--nv-shadow);margin:0 0 8px;padding:0 16px}
.vy-faq__q summary{cursor:pointer;padding:14px 0;font-weight:700;color:var(--nv-ink);list-style-position:outside}
.vy-faq__q p{margin:0 0 14px;color:var(--nv-ink-2);line-height:1.55}
.vy-faq__more{display:inline-block;margin-top:6px;font-weight:700;color:var(--nv-teal-ink)}
@media(max-width:699px){.vy-faq{padding:0 16px}}

/* ---- five phone layouts (html.vm1..vm5); each keeps the film visible ---- */
.ve-vm{position:fixed;top:50%;right:0;translate:0 -50%;flex-direction:column;opacity:.75;z-index:99;display:flex;gap:2px;background:rgba(17,17,17,.85);border-radius:999px;padding:3px}
.ve-vm a{color:#fff;text-decoration:none;font:700 12px/1 system-ui;width:24px;height:24px;display:grid;place-items:center;border-radius:999px}
.ve-vm a[aria-current]{background:#e0703a}
@media(max-width:699px){
  /* shared compact card for every option */
  [class*="vm"] .ve .ve-ch,[class*="vm"] .ve .ve-end{padding:12px 14px}
  [class*="vm"] .ve-ch h3,[class*="vm"] .ve-end h3{font-size:clamp(17px,5vw,20px);margin:4px 0 8px}
  [class*="vm"] .ve-ch .nv-btn,[class*="vm"] .ve-end .nv-btn{min-height:40px;padding-block:8px}

  /* 1 · caption on top, live at the bottom: the words sit in the sky, the data near the thumb */
  .vm1 .ve .ve-ch,.vm1 .ve .ve-end{top:calc(10px + env(safe-area-inset-top));bottom:auto}
  .vm1 .ve-dots{display:none}.vm1 .ve-ch .vy-k{display:none}
  .vm1 .ve-ch{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.vm1 .ve-ch .nv-btn{font-size:0;gap:0;width:44px;padding:0;justify-content:center}.vm1 .ve-ch .nv-btn svg{width:20px;height:20px}
  .vm1 .ve-ch h3{margin:0}
  .vm1 .ve-lv{top:auto;bottom:calc(118px + env(safe-area-inset-bottom));max-height:36svh}
  .vm1 .ve-lv-cam{max-height:18svh}

  /* 2 · split: film in the top half, words and data on a sheet below, nothing over the picture */
  .vm2{--split:52svh}.vm2 .ve-c{height:var(--split)}
  .vm2 .vy-pin::after{content:"";position:absolute;left:0;right:0;top:calc(var(--split) - 16px);bottom:0;background:var(--nv-page);border-radius:18px 18px 0 0;z-index:1}
  .vm2 .ve .ve-ch,.vm2 .ve .ve-end{top:auto;bottom:calc(var(--sp-tabs,calc(58px + env(safe-area-inset-bottom))) + 6px);box-shadow:none;z-index:2}
  .vm2 .ve-lv{top:calc(var(--split) - 4px);box-shadow:none;background:transparent;padding:6px 16px 0;z-index:2}
  .vm2 .ve-lv-cam{display:none}.vm2 .ve-fb{top:calc(10px + env(safe-area-inset-top));bottom:auto;left:auto;right:12px}
  .vm2 .ve-fb-o{background:rgba(17,17,17,.7)}

  /* 3 · subtitles: the line as cinema text on a gradient, live data as a chip you tap */
  .vm3 .ve .ve-ch,.vm3 .ve .ve-end{background:none;box-shadow:none;left:0;right:0;bottom:var(--sp-tabs,calc(58px + env(safe-area-inset-bottom)));padding:60px 16px 14px;border-radius:0;
    background:linear-gradient(transparent,rgba(5,16,26,.93) 32%)} /* Gal, 5 Oct: A2, the darker shade */
  .vm3 .ve-ch h3,.vm3 .ve-end h3{color:#fff}.vm3 .ve-dots{display:none}
  .vm3 .ve-ch .vy-k,.vm3 .ve-end .vy-k{background:rgba(255,255,255,.18);color:#fff}
  .vm3 .ve-ch .nv-btn{background:#fff;color:var(--nv-ink)}

  /* 4 · one sheet: words and a live tab dock to the bottom edge, the film owns everything above */
  .vm4 .ve .ve-ch,.vm4 .ve .ve-end{left:0;right:0;bottom:var(--sp-tabs,calc(58px + env(safe-area-inset-bottom)));border-radius:18px 18px 0 0;padding-top:18px}
  .vm4 .ve-ch::before,.vm4 .ve-end::before{content:"";position:absolute;top:7px;left:50%;translate:-50% 0;width:36px;height:4px;border-radius:2px;background:var(--nv-line)}
  .vm4 .ve-lv{top:auto;left:12px;right:12px;cursor:pointer;max-height:46svh}
  .vm4 .ve-lv:not(.is-open){right:auto;padding:8px 12px;border-radius:999px}.vm4 .ve-lv:not(.is-open) h4{margin:0;font-size:11px}
  .vm4 .ve-lv:not(.is-open) h4::after{content:"▴";margin-left:6px}
  .vm4 .ve-fb{top:calc(10px + env(safe-area-inset-top));bottom:auto;left:auto;right:12px}.vm4 .ve-fb-o{padding:8px 12px;font-size:12px}

  /* 5 · letterbox: the whole painting in a 16:9 band, words above it, live data below; nothing touches the picture */
  .vm5 .vy-pin{background:var(--nv-page)}
  .vm5 .ve-c{top:24svh;height:56.25vw}
  .vm5 .ve .ve-ch,.vm5 .ve .ve-end{top:calc(8px + env(safe-area-inset-top));bottom:auto;box-shadow:none;background:transparent;max-height:calc(24svh - 12px);overflow:hidden}
  .vm5 .ve-ch{display:grid;grid-template-columns:1fr auto;align-items:end;column-gap:10px}.vm5 .ve-ch .vy-k,.vm5 .ve-ch .ve-lines{grid-column:1}.vm5 .ve-dots{display:none}
  .vm5 .ve-ch .nv-btn{grid-column:2;grid-row:1/3;font-size:0;width:44px;padding:0;justify-content:center}.vm5 .ve-ch .nv-btn svg{width:20px;height:20px}
  .vm5 .ve-lv{top:calc(24svh + 56.25vw + 8px);box-shadow:none;max-height:calc(76svh - 56.25vw - 16px - var(--sp-tabs,calc(58px + env(safe-area-inset-bottom))))}
  .vm5 .ve-fb{top:calc(24svh + 8px);bottom:auto;left:auto;right:8px}.vm5 .ve-fb-o{padding:7px 11px;font-size:12px;background:rgba(17,17,17,.7)}
  .vm5 .ve-lv-cam{max-height:16svh}
  .vm5 .ve-hero{padding-top:calc(24svh + 56.25vw + 12px)}.vm5 .ve-hero h2{font-size:26px}
}
@media(max-width:699px) and (max-height:700px){.vm2{--split:42svh}}
@media(max-width:699px){.vm2 .ve-lv-more,.vm2 .ve-lv-pay{display:none}.vm2 .ve-lv h4{margin-bottom:4px}.vm2 .ve-lv-two li{padding:2px 0}.vm2 .ve-lv-row{padding:4px 0}}
@media(max-width:699px) and (max-height:600px){.vm2 .ve-lv-two h5{display:none}.vm2 .ve-lv-two li span{display:none}}
/* under the film the live card is no longer on the first screen: live.js's first-screen fitting must not cut its rows */
.nv-anim .lv .pr.is-cut:not([data-s=stale]){display:grid}.nv-anim .hm-live{max-height:none!important}.nv-anim .hm-live.no-fn .fn{display:block}

/* a new beat must be noticed on a big screen (Gal, 4 Oct): the line rises in, the card pulses, the panel slides in */
.ve-lines h3.is-on{animation:veRise .55s cubic-bezier(.2,.8,.2,1)}
@keyframes veRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.ve-ch.ve-bump{animation:veBump .9s ease-out}
@keyframes veBump{0%{box-shadow:var(--nv-shadow-hi),0 0 0 0 rgba(31,138,160,.55)}100%{box-shadow:var(--nv-shadow-hi),0 0 0 18px rgba(31,138,160,0)}}
.ve-lv.ve-in{animation:veSlide .5s cubic-bezier(.2,.8,.2,1)}
@keyframes veSlide{from{transform:translateX(24px);filter:blur(2px)}to{transform:none;filter:none}}
.ve-dots li{transition:background .3s,width .3s}.ve-dots li.is-on:last-of-type,.ve-dots li.is-on:not(:has(+ .is-on)){width:30px}
.ve-lv-chips{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:6px}.ve-lv-chips li{background:var(--nv-teal-soft);color:var(--nv-teal-ink);font-weight:700;font-size:var(--nv-small);padding:6px 10px;border-radius:var(--nv-r-pill)}
.ve-lv-stops{display:flex;flex-wrap:wrap;gap:4px 0;margin:8px 0 0;padding:0;list-style:none;font-size:var(--nv-small);color:var(--nv-ink-2)}
.ve-lv-stops li:not(:last-child)::after{content:"→";margin:0 6px;color:var(--nv-teal)}
@media(prefers-reduced-motion:reduce){.ve-lines h3.is-on,.ve-ch.ve-bump,.ve-lv.ve-in{animation:none}}
.vm3 .ve-ch.ve-bump{animation:none}

/* 6 · subtitles on top (Gal: the thumb scrolls from the bottom, so nothing tappable lives there): the line and the CTA in the sky, the live chip under them */
@media(max-width:699px){
  .vm6 .ve .ve-ch,.vm6 .ve .ve-end{top:0;bottom:auto;left:0;right:0;border-radius:0;box-shadow:none;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;
    background:rgba(10,30,45,.72)}
  .vm6 .ve .ve-ch::after,.vm6 .ve .ve-end::after{content:"";position:absolute;left:0;right:0;top:100%;height:36px;background:linear-gradient(rgba(10,30,45,.72),transparent);pointer-events:none}
  .vm6 .ve-ch h3,.vm6 .ve-end h3{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.4)}.vm6 .ve-dots{display:none}
  .vm6 .ve-ch .vy-k,.vm6 .ve-end .vy-k{background:rgba(255,255,255,.18);color:#fff}
  .vm6 .ve-ch .nv-btn,.vm6 .ve-end .nv-btn{background:#fff;color:var(--nv-ink);min-height:36px;padding:6px 14px;font-size:14px}
  .vm6 .ve-ch.ve-bump{animation:none}
  .vm6 .ve-end-a{gap:6px}
}

/* Gal, 4 Oct: the message lives at one edge, the live example at the other. 3 = message bottom / example top, 6 = flipped.
   The feedback pill sits mid-right, clear of both. */
@media(max-width:699px){
  .vm3 .ve-lv,.vm6 .ve-lv{left:12px;right:12px;width:auto}
  .vm3 .ve-lv{top:calc(12px + env(safe-area-inset-top));bottom:auto}
  .vm6 .ve-lv{top:auto;bottom:calc(var(--sp-tabs,58px) + 12px)}
  .vm3 .ve-fb,.vm6 .ve-fb{bottom:auto;top:calc(12px + env(safe-area-inset-top));left:10px;right:auto}.vm6 .ve-fb{top:auto;bottom:calc(var(--sp-tabs,58px) + 12px)}.vm3 .ve-fb-o,.vm6 .ve-fb-o{padding:7px 11px;font-size:12px;background:rgba(17,17,17,.7)}
}

/* stops: the snap points inside the film, live only while it fills the screen (html.ve-snap) */
.ve.vy-tall{position:relative}
.ve-stop{position:absolute;left:0;width:1px;height:1px;scroll-snap-align:start;scroll-snap-stop:always;pointer-events:none}
html.ve-snap{scroll-snap-type:y mandatory;scroll-padding-top:0}
.ve-top{display:flex;align-items:center;gap:10px}.ve-top .vy-k{margin-right:auto}
.ve-n{font-size:12px;font-weight:700;color:var(--nv-ink-2);font-variant-numeric:tabular-nums}
.ve-skip{font:600 12px/1 var(--nv-font);background:none;border:0;padding:6px 2px;color:var(--nv-ink-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
@media(max-width:699px){.vm3 .ve-n,.vm3 .ve-skip{color:rgba(255,255,255,.85)}}

/* the new opening: live proof, one Start button, a quiet "or jump to", and the first message peeking cut off at the bottom */
.ve-open .ve-now{display:block;justify-self:center;max-width:min(560px,calc(100vw - 32px));text-wrap:balance;line-height:1.5;margin:6px 0 0;padding:8px 14px;border-radius:var(--nv-r-pill);background:rgba(255,255,255,.92);box-shadow:var(--nv-shadow);font-size:var(--nv-small);color:var(--nv-ink);font-weight:600}
.ve-open .ve-now[hidden]{display:none}
.ve-open .ve-now a{white-space:nowrap}
@media(min-width:700px){.ve-open .ve-now{max-width:min(980px,calc(100vw - 32px))}}
.ve-open .ve-now a{pointer-events:auto;color:inherit;text-decoration:underline;text-decoration-color:rgba(15,42,61,.3);text-underline-offset:3px;font-weight:inherit}.ve-open .ve-now a:hover{text-decoration-color:currentColor}
.ve-open .ve-now .nv-dot{background:var(--nv-ok);display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}
.ve-open .ve-now b[data-s=red]{color:var(--nv-bad,#c0392b)}.ve-open .ve-now b[data-s=yellow]{color:var(--nv-warn,#b7791f)}.ve-open .ve-now b{color:var(--nv-ok-ink,var(--nv-teal-ink))}
.ve-open .ve-start{justify-self:center;margin-top:18px;pointer-events:auto}
.ve-jump--q{margin-top:12px;gap:4px 10px;align-items:center;font-size:var(--nv-small);color:var(--nv-ink-2)}
.ve-jump--q a,.ve-jump--q button{background:none;box-shadow:none;padding:6px 2px;text-decoration:underline;text-underline-offset:3px;color:var(--nv-ink);font-weight:700}
.ve .ve-peek{position:absolute;inset:auto 0 0;margin:0 auto;translate:0 50%;width:min(420px,calc(100% - 32px));height:auto;max-height:none;text-align:left;border:0;cursor:pointer;font:inherit;opacity:0;z-index:2;display:block}
.ve-peek h3{margin:6px 0 0}
@media(max-width:699px){
  .ve .ve-peek{bottom:var(--sp-tabs,calc(58px + env(safe-area-inset-bottom)));translate:0 55%}
  @media(max-height:640px){.ve .ve-peek{translate:0 72%}}
  .ve-open{padding-top:12vh}.ve-open h2{overflow-wrap:anywhere}
}
.ve-step{display:flex;gap:6px;margin-bottom:8px}.ve-step button{flex:1;font:700 13px/1 system-ui;padding:9px 0;border:0;border-radius:8px;background:#fff;color:#111;cursor:pointer}
.ve-step .ve-snapbtn{flex:1.4}.ve-step .ve-snapbtn[aria-pressed=true]{background:#2a9d8f;color:#fff}
.ve-act{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px}
.ve-out{font-size:var(--nv-small);font-weight:600;color:var(--nv-ink-2);text-decoration:underline;text-underline-offset:3px}
@media(max-width:699px){.vm3 .ve-out{color:rgba(255,255,255,.9)}}
.ve-ch .ve-lines{margin-bottom:14px}
/* desktop: the message rides high, clear of the people in the film (Gal, 4 Oct) */
@media(min-width:700px){.ve .ve-ch,.ve .ve-end{top:88px;translate:none}}
/* handoff: what follows the film rises over its last screen, as normal cards on a sheet */
.nv-anim .vy{margin-bottom:-45vh;margin-bottom:-45svh}
.nv-anim .vy~*{position:relative;z-index:3}
/* the first screen rises over the film as a sheet */
.nv-anim .hm-hero{border-radius:28px 28px 0 0;box-shadow:0 -18px 40px rgba(10,30,45,.18)}
/* the closing frame (Gal, 4 Oct): the last lock is today's nautivia.eu first screen, whole */
.nv-anim .hm-hero{scroll-snap-align:start;scroll-snap-stop:always}
/* desktop: the proof inside the message card, as an inner card (Gal, 4 Oct) */
@media(min-width:700px){
  .ve .ve-ch:has(>.ve-lv:not([hidden])){width:min(460px,calc(100% - 32px))}
  .ve-ch>.ve-lv{position:static;width:auto;opacity:1!important;box-shadow:none;background:var(--nv-sky);border-radius:16px;padding:14px 16px;margin:0 0 16px}
  .ve-ch>.ve-lv[hidden]{display:none}
  .ve-ch>.ve-lv h4{border-bottom:0}
  .ve-ch>.ve-lv .ve-lv-row{border-top-color:rgba(10,30,45,.08)}
  .ve-ch>.ve-lv .ve-lv-cam{max-height:30vh}
}
/* the painting's scroll drift is timed to the top of the page; here the page above it is the film */
.nv-anim .hm-art{animation:none}

/* feedback (Gal, 5 Oct): on phones one fixed place, bottom right above the tab bar, a round button that never travels */
.ve-fb-o{display:inline-flex;align-items:center;gap:8px}.ve-fb-o svg{display:none}
@media(max-width:699px){.nv-anim .ve-fb,.nv-anim.vm3 .ve-fb{top:auto;left:auto;right:12px;bottom:calc(var(--sp-tabs,58px) + 12px + env(safe-area-inset-bottom));visibility:visible}
  .nv-anim .ve-fb-o{width:46px;height:46px;padding:0;justify-content:center;border-radius:50%}.nv-anim .ve-fb-o svg{display:block}.nv-anim .ve-fb-o span{display:none}}

/* ?review=1 — frame review dock: small, top right, like the old tagger (Gal, 5 Oct: the full-width one was huge) */
.ve-rev body{overflow:hidden}.ve-rev .ve-tag,.ve-rev .ve-src,.ve-rev .ve-fb{display:none!important}
.ve-rev-bare .ve-ch,.ve-rev-bare .ve-lv,.ve-rev-bare .vy-intro,.ve-rev-bare .ve-peek,.ve-rev-bare .hm-hd,.ve-rev-bare .hm-tabs{visibility:hidden!important}
.ve-dock{position:fixed;top:calc(64px + env(safe-area-inset-top));right:8px;width:206px;z-index:200;background:rgba(10,20,30,.86);color:#fff;border-radius:12px;padding:6px;font:600 11px/1.25 system-ui;display:grid;gap:5px}
.ve-dk-at{font:700 10px/1.25 ui-monospace,monospace}
.ve-dock button{font:700 12px/1 system-ui;border:0;border-radius:7px;background:#fff;color:#111;min-height:30px;padding:0 6px;cursor:pointer}
.ve-dk-r{width:100%;height:18px;margin:0;accent-color:#e0703a}
.ve-dk-st{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}.ve-dk-play{background:#2a9d8f!important;color:#fff!important}
.ve-dk-b{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:3px}.ve-dk-ui[aria-pressed=false]{background:#e0703a!important;color:#fff!important}
.ve-dk-n{display:none;gap:4px}.ve-dock.is-open .ve-dk-n{display:grid}
.ve-dk-n textarea{border:0;border-radius:7px;padding:6px;font:16px/1.3 system-ui;resize:vertical;min-height:52px}
.ve-dk-s{background:#e0703a!important;color:#fff!important}.ve-dk-ok{margin:0;color:#9fe0f2;min-height:1em}.ve-dk-ok:empty{display:none}

.ve-dk-top{display:flex;justify-content:space-between;align-items:flex-start;gap:6px}.ve-dock .ve-dk-min{min-height:22px;width:26px;padding:0;flex:none}
.ve-dk-pill{display:none}.ve-dock.is-min{width:auto;padding:0;background:none}.ve-dock.is-min>*{display:none!important}.ve-dock.is-min .ve-dk-pill{display:block!important;background:rgba(10,20,30,.86);color:#fff;min-height:34px;padding:0 12px}
@media(min-width:700px){.ve-dock{top:96px;right:16px;width:250px;padding:10px;gap:7px;font-size:12px}.ve-dk-at{font-size:11px}.ve-dock button{min-height:32px;font-size:13px}}

.ve-dk-top,.ve-dk-pill{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.ve-dk-top::before{content:'⠿';margin-right:4px;opacity:.6}

/* a card is as tall as the line it shows, not its chapter's longest line (the gap above the proof, 5 Oct) */
.ve-lines{position:relative}.ve-lines h3:not(.is-on){position:absolute;left:0;right:0;top:0}
.ve-lv .ve-lv-h2{margin-top:12px}

/* the end page has its own buttons where the feedback button sits; it steps aside there */
.ve-at-end .ve-fb{display:none}

/* phone options (5 Oct). The header sits over the film, so whatever lives at the top starts under it */
@media(max-width:699px){
  .nv-anim.vm3 .ve-lv{top:calc(var(--hd-h,60px) + 8px + env(safe-area-inset-top))}
  .ml-down .ve-ch>.ve-lv,.ml-up .ve-ch>.ve-lv{position:static;left:auto;right:auto;width:auto;max-height:none;opacity:1!important;box-shadow:none;margin:0 0 12px;padding:10px 12px;background:rgba(255,255,255,.96)}
  .ml-down .ve-ch>.ve-lv[hidden],.ml-up .ve-ch>.ve-lv[hidden]{display:none}
  .ml-down .ve-lv-cam,.ml-up .ve-lv-cam{max-height:120px}
  .ml-up .ve .ve-ch{top:calc(var(--hd-h,60px) + env(safe-area-inset-top));bottom:auto;padding:12px 16px 56px;background:linear-gradient(rgba(10,30,45,.72) 60%,transparent)}
  .mt-dark .ve .ve-ch{background:linear-gradient(transparent,rgba(5,16,26,.93) 32%)}
  .mt-dark.ml-up .ve .ve-ch{background:linear-gradient(rgba(5,16,26,.93) 68%,transparent)}
  .mt-dark .ve-ch h3{text-shadow:none}
  .mt-light .ve .ve-ch{background:#fff;left:10px;right:10px;bottom:calc(var(--sp-tabs,58px) + 8px);padding:16px;border-radius:20px;box-shadow:var(--nv-shadow-hi)}
  .mt-light.ml-up .ve .ve-ch{top:calc(var(--hd-h,60px) + 6px + env(safe-area-inset-top));bottom:auto;padding:16px}
  .mt-light .ve-ch h3{color:var(--nv-ink);text-shadow:none}
  .mt-light .ve-ch .vy-k{background:var(--nv-teal-soft);color:var(--nv-teal-ink)}
  .mt-light .ve-ch .nv-btn{background:var(--nv-ink);color:#fff}
  .mt-light .ve-n,.mt-light .ve-skip,.mt-light .ve-out{color:var(--nv-ink-2)}
  .mt-light .ve-ch>.ve-lv{background:var(--nv-sky,#eef6fb)}
}
@media(max-width:699px){
  .ml-down .ve .ve-ch{padding-top:28px;background:linear-gradient(transparent,rgba(10,30,45,.8) 44px)}
  .mt-dark.ml-down .ve .ve-ch{background:linear-gradient(transparent,rgba(5,16,26,.94) 44px)}
  .ml-up .ve .ve-ch{padding-bottom:30px;background:linear-gradient(rgba(10,30,45,.8) calc(100% - 30px),transparent)}
  .mt-dark.ml-up .ve .ve-ch{background:linear-gradient(rgba(5,16,26,.94) calc(100% - 30px),transparent)}
  .mt-light.ml-down .ve .ve-ch,.mt-light.ml-up .ve .ve-ch{background:#fff;padding:16px}
}

/* Back: the secondary of the pair, outlined, left of Next (5 Oct) */
.ve-prev{font:700 var(--nv-small,15px)/1 var(--nv-font);min-height:48px;padding:0 14px;border-radius:var(--nv-r);border:1.5px solid currentColor;background:transparent;color:var(--nv-teal-ink);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.ve-prev[hidden]{display:none}.ve-prev:hover{background:var(--nv-teal-soft)}
@media(max-width:699px){.vm3 .ve-prev{color:#fff;border-color:rgba(255,255,255,.7);padding:0 13px}.vm3 .ve-prev:hover{background:rgba(255,255,255,.12)}.ve-prev-t{display:none}}
/* Gal, 5 Oct night: the merged card covered the whole film on a phone. Pin it to the tab bar
   (fixed, so iOS's collapsing toolbar can't open a gap under it) and keep only the headline facts. */
@media(max-width:699px){
  html:not(.vy-story).vm3 .ve .ve-ch{position:fixed;padding-top:36px}
  html:not(.vy-story).vm3 .ve-ch h3{font-size:20px;line-height:1.2}
  html:not(.vy-story).ml-down .ve-ch>.ve-lv{padding:6px 12px;margin-bottom:10px;border-radius:12px}
  html:not(.vy-story).ml-down .ve-ch>.ve-lv h4{font-size:10px;margin:0 0 2px}
  html:not(.vy-story).ml-down .ve-ch>.ve-lv .ve-lv-h2{margin-top:6px}
  html:not(.vy-story).ml-down .ve-ch>.ve-lv .ve-lv-row{padding:3px 0;font-size:13px}
  html:not(.vy-story).ml-down .ve-ch>.ve-lv .nv-pill{font-size:11px;padding:2px 8px}
  html:not(.vy-story).ml-down .ve-ch>.ve-lv .ve-lv-big{font-size:17px;line-height:1.2}
  html:not(.vy-story).ml-down .ve-ch>.ve-lv .ve-lv-n,html:not(.vy-story).ml-down .ve-ch>.ve-lv .ve-lv-more,html:not(.vy-story).ml-down .ve-ch>.ve-lv .ve-lv-stops,
  html:not(.vy-story).ml-down .ve-ch>.ve-lv .ve-lv-chips,html:not(.vy-story).ml-down .ve-ch>.ve-lv .ve-lv-h2:has(+.ve-lv-chips){display:none}
  html:not(.vy-story).ml-down .ve-ch>.ve-lv .ve-lv-two .ve-lv-n{display:block;font-size:12px;margin:0}
  html:not(.vy-story).ml-down .ve-ch>.ve-lv .ve-lv-cam{max-height:72px;margin:2px 0 0}
  html:not(.vy-story).ml-down .ve-ch>.ve-lv .ve-lv-pay{min-height:36px;font-size:13px;margin-top:6px}
}
/* STORY opening (animated.nautivia.eu): white type on a photo, readable on any still. A dusk scrim from the top
   carries the headline; the photo stays bright below it. */
.vy-story .ve-hero{background:linear-gradient(rgba(15,42,61,.62),rgba(15,42,61,.38) 42%,rgba(15,42,61,0) 68%)}
.vy-story .ve-hero h2{color:#fff;text-shadow:0 2px 28px rgba(15,42,61,.55)}
.vy-story .ve-hero p:not(.ve-now),.vy-story .ve-jump--q,.vy-story .ve-jump--q span{color:rgba(255,255,255,.92);text-shadow:0 1px 14px rgba(15,42,61,.6)}
.vy-story .ve-jump--q a,.vy-story .ve-jump--q button{color:#fff;background:none;box-shadow:none;text-decoration:underline;text-underline-offset:4px}
.vy-story body>.hm-hd .nv-mark,.vy-story body>.hm-hd .nv-nav a{color:#fff;text-shadow:0 1px 10px rgba(15,42,61,.5)}
.vy-story body>.hm-hd .nv-mark svg{color:#fff;stroke:#fff}
/* STORY phone strip: small live camera + a running line of the ramps, over the top of the photo */
@media(max-width:699px){
  html.vm3 .ve-lv.ve-tkp{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;padding:6px;border-radius:14px;max-height:none!important;
    background:rgba(15,42,61,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;box-shadow:none}
  .ve-tkp .ve-tk-cam{flex:0 0 auto;width:96px;height:54px;object-fit:cover;border-radius:9px;display:block}
  .ve-tkp .ve-tk{flex:1;overflow:hidden;white-space:nowrap;-webkit-mask:linear-gradient(90deg,transparent,#000 8px,#000 calc(100% - 16px),transparent);mask:linear-gradient(90deg,transparent,#000 8px,#000 calc(100% - 16px),transparent)}
  .ve-tkp .ve-tk-run{display:inline-block;animation:ve-tk 16s linear infinite}
  .ve-tkp .ve-tk-run span{font:600 14px/1.2 var(--nv-font);margin-right:18px}
  .ve-tkp .ve-tk-run b{font-weight:800}
  .ve-tkp .nv-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--nv-ok);margin-right:6px;vertical-align:middle}
  .ve-tkp .nv-dot[data-s=yellow]{background:var(--nv-warn,#d69e2e)}.ve-tkp .nv-dot[data-s=red]{background:var(--nv-bad,#e5533d)}.ve-tkp .nv-dot[data-s=stale]{background:#9aa9b4}
  .ve-tkp .ve-tk-a{display:flex;align-items:center;gap:10px;flex:1;min-width:0;color:inherit;text-decoration:none}
  .ve-tkp .ve-tk-tile{flex:0 0 auto;width:96px;height:54px;border-radius:9px;background:rgba(255,255,255,.14);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 4px}
  .ve-tkp .ve-tk-tile b{font:800 17px/1.1 var(--nv-font);white-space:nowrap}
  .ve-tkp .ve-tk-tile small{font:600 10px/1.2 var(--nv-font);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
}
@keyframes ve-tk{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ve-tkp .ve-tk-run{animation:none}}
