{"id":148615,"date":"2026-11-03T07:59:00","date_gmt":"2026-11-03T07:59:00","guid":{"rendered":"https:\/\/aurumbikes.com\/?page_id=148615"},"modified":"2026-11-03T10:21:18","modified_gmt":"2026-11-03T10:21:18","slug":"nova","status":"publish","type":"page","link":"https:\/\/aurumbikes.com\/de\/nova\/","title":{"rendered":"NOVA"},"content":{"rendered":"\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@200;300;400;500;600&amp;display=swap\" rel=\"stylesheet\">\n<style id=\"nv-hybrid-style\">\n\/* NOVA hybrid, WordPress build. Every rule sits under .nv-hybrid, so the theme's own styles and this page's do not reach each other. The exceptions are the page wrapper rules near the top and the end of this style. *\/\n.nv-hybrid {\n  --nv-top: 70px;\n  --nv-admin: 0px;\n  --black: #000;\n  --charcoal: #171717;\n  --white: #fff;\n  --ink: #171717;\n  --grey: #595959;\n  --mid: #878787;\n  --rule: #d8d8d8;\n  --sand: #E7E5DF;\n  --yellow: #ffd700;\n  --gold: #C5A681;\n  --warm: #6B655E;\n  --gutter: clamp(22px, 6.2vw, 96px);\n  --content: 1440px;\n  --fs-display: clamp(48px, 6vw, 96px);\n  --fs-body: 16px;\n  --fs-small: 14px;\n  --fs-manifesto: clamp(30px, 4vw, 60px);\n  position: relative;\n  width: var(--nv-width, 100%);\n  margin-left: calc((100% - var(--nv-width, 100%)) \/ 2);\n  padding-top: 40px;\n  overflow-x: clip;\n  background: var(--black);\n  color: var(--white);\n  color-scheme: dark;\n  font: 400 var(--fs-body)\/1.7 Poppins, sans-serif;\n  font-synthesis: none;\n  text-rendering: optimizeLegibility;\n}\n\/* The admin bar pushes the theme's sticky header down, so pinned content has to start below both. *\/\nbody.admin-bar .nv-hybrid { --nv-admin: 32px; }\n@media (max-width: 782px) { body.admin-bar .nv-hybrid { --nv-admin: 46px; } }\n\/* On desktop the theme's 40 px top strip sits over the first 40 px of the block, so the block starts below it and the film is not covered. Phones have no strip. *\/\n@media (max-width: 900px) { .nv-hybrid { padding-top: 0; } }\n\/* The theme wraps the page in containers that set overflow: hidden. A scroll container between the viewport and a sticky stage stops the stage from sticking, so those containers are reset to visible. *\/\n:has(.nv-hybrid):not(html):not(body) { overflow: visible !important; }\n\/* The theme's page title band and the spacer under it sit above the block; both are removed on any page that holds the block. *\/\nbody:has(.nv-hybrid) .qodef-page-title { display: none; }\n#qodef-page-inner:has(.nv-hybrid) { padding-top: 0; }\n.nv-hybrid *, .nv-hybrid *::before, .nv-hybrid *::after { box-sizing: border-box; }\n.nv-hybrid :where(h1, h2, h3, p, figure, ul, ol) { margin: 0; padding: 0; }\n.nv-hybrid p, .nv-hybrid li { text-wrap: pretty; }\n.nv-hybrid ::selection { color: var(--black); background: var(--yellow); }\n.nv-hybrid a { color: inherit; text-underline-offset: 5px; }\n\/* The theme colours h2 elements dark, which hid headings and figures on the black sections. Headings take their section's colour. *\/\n.nv-hybrid :is(h1, h2, h3, h4, h5, h6) { color: inherit; }\n.nv-hybrid button { color: inherit; font: inherit; }\n.nv-hybrid img, .nv-hybrid video { display: block; width: 100%; }\n.nv-hybrid :focus-visible { outline: 2px solid var(--yellow); outline-offset: 5px; }\n\/* 62px is the product nav, which stays stuck under the header. *\/\n.nv-hybrid [id] { scroll-margin-top: calc(var(--nv-top) + var(--nv-admin) + 62px); }\n.nv-hybrid h2 { text-transform: uppercase; }\n.nv-hybrid .words :focus-visible,\n.nv-hybrid .geometry :focus-visible,\n.nv-hybrid .faq :focus-visible,\n.nv-hybrid .closing :focus-visible,\n.nv-hybrid .marquee :focus-visible { outline-color: var(--black); }\n.nv-hybrid .visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }\n.nv-hybrid .skip-link { position: fixed; z-index: 100; top: 12px; left: 12px; padding: 10px 16px; transform: translateY(-160%); background: var(--white); color: var(--black); }\n.nv-hybrid .skip-link:focus { transform: none; }\n.nv-hybrid [hidden] { display: none !important; }\n.nv-hybrid .hero { position: relative; background: var(--black); }\n.nv-hybrid .hero-body { display: grid; grid-template-columns: minmax(0, 1fr); }\n.nv-hybrid .hero-media,\n.nv-hybrid .hero-overlay { grid-area: 1 \/ 1; }\n.nv-hybrid .hero-media { position: relative; width: 100%; aspect-ratio: 16 \/ 9; overflow: hidden; background: var(--black); }\n.nv-hybrid .hero-film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }\n.nv-hybrid .hero-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, #0009 0%, #0000 17%); }\n.nv-hybrid .hero-overlay { position: relative; }\n.nv-hybrid .hero-copy { padding: clamp(44px, 5vw, 72px) var(--gutter) clamp(56px, 7vw, 96px); text-align: center; }\n.nv-hybrid .product-logo { display: block; width: clamp(128px, 13vw, 188px); height: auto; margin: 0 auto; filter: brightness(0) invert(1); }\n.nv-hybrid .hero-copy p { max-width: 340px; margin: 16px auto 26px; color: var(--white); font-size: var(--fs-body); font-weight: 300; line-height: 1.55; }\n.nv-hybrid .hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }\n.nv-hybrid .outline-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 10px 20px; border: 1px solid currentColor; border-radius: 5px; background: transparent; color: inherit; font-size: var(--fs-small); font-weight: 400; text-decoration: none; cursor: pointer; transition: color .2s ease, background-color .2s ease; }\n.nv-hybrid .outline-button:hover { color: var(--black); background: var(--white); }\n.nv-hybrid .words .outline-button:hover,\n.nv-hybrid .closing .outline-button:hover { color: var(--white); background: var(--black); }\n.nv-hybrid .outline-button.solid-button { background: var(--white); color: var(--black); }\n.nv-hybrid .outline-button.solid-button:hover { background: var(--yellow); }\n.nv-hybrid .film-control { position: absolute; z-index: 2; right: clamp(18px, 2.4vw, 36px); bottom: 24px; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 0 8px 12px; border: 0; background: transparent; color: var(--white); font-size: var(--fs-small); cursor: pointer; pointer-events: auto; }\n.nv-hybrid .film-control:hover { color: var(--yellow); }\n.nv-hybrid .control-icon { display: block; width: 16px; height: 18px; position: relative; }\n.nv-hybrid .control-icon::before,\n.nv-hybrid .control-icon::after { content: \"\"; position: absolute; }\n.nv-hybrid .film-control[data-state=\"playing\"] .control-icon::before,\n.nv-hybrid .film-control[data-state=\"playing\"] .control-icon::after { top: 2px; bottom: 2px; width: 4px; background: currentColor; }\n.nv-hybrid .film-control[data-state=\"playing\"] .control-icon::before { left: 2px; }\n.nv-hybrid .film-control[data-state=\"playing\"] .control-icon::after { right: 2px; }\n.nv-hybrid .film-control[data-state=\"paused\"] .control-icon::before { inset: 1px 0 1px 3px; width: 0; height: 0; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-left: 12px solid currentColor; }\n@keyframes nv-film-in { from { opacity: 0; } }\n@keyframes nv-copy-in { from { opacity: 0; transform: translate3d(0, 28px, 0); } }\n.nv-hybrid.motion .hero-film { animation: nv-film-in 1.4s ease-out backwards; }\n.nv-hybrid.motion .hero-copy { animation: nv-copy-in 1s cubic-bezier(.16, 1, .3, 1) .5s backwards; }\n@media (min-width: 901px) {\n  .nv-hybrid .hero-overlay { position: sticky; bottom: 0; align-self: end; z-index: 1; pointer-events: none; }\n  .nv-hybrid .hero-copy { background: linear-gradient(0deg, #000c 0%, #0009 45%, #0000 100%); }\n  .nv-hybrid .hero-copy a,\n  .nv-hybrid .film-control { pointer-events: auto; }\n  .nv-hybrid .hero-shade { background: linear-gradient(0deg, #000b 0%, #0000 40%), linear-gradient(180deg, #0009 0%, #0000 17%); }\n}\n.nv-hybrid .product-nav-shell { position: relative; z-index: 20; background: var(--black); }\n.nv-hybrid .product-nav { position: relative; z-index: 20; min-height: 62px; display: flex; align-items: center; justify-content: center; gap: clamp(18px, 3vw, 46px); padding: 12px var(--gutter); overflow-x: auto; background: var(--black); border-bottom: 1px solid #333; scrollbar-width: none; }\n.nv-hybrid .product-nav::-webkit-scrollbar { display: none; }\n.nv-hybrid .product-nav a { flex: 0 0 auto; color: var(--white); font-size: var(--fs-small); font-weight: 300; text-decoration: none; }\n.nv-hybrid .product-nav a:hover { text-decoration: underline; text-underline-offset: 6px; }\n.nv-hybrid .product-nav a[aria-current=\"location\"] { color: var(--yellow); }\n.nv-hybrid .product-nav-more { display: none; }\n.nv-hybrid.motion .product-nav-shell { position: sticky; top: var(--nv-stick, calc(var(--nv-top) + var(--nv-admin))); }\n.nv-hybrid .configurator { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); min-height: clamp(600px, 80vh, 780px); background: var(--black); color: var(--white); }\n.nv-hybrid .cfg-stage { position: relative; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 24px; padding: clamp(24px, 3vw, 40px); background: var(--sand); color: var(--ink); }\n.nv-hybrid .cfg-stage :focus-visible { outline-color: var(--black); }\n.nv-hybrid .cfg-variants { display: flex; gap: 8px; }\n.nv-hybrid .cfg-variant { min-height: 44px; padding: 0 22px; border: 1px solid var(--black); border-radius: 2px; background: var(--white); color: var(--ink); font-size: var(--fs-small); font-weight: 500; letter-spacing: .08em; cursor: pointer; transition: background-color .2s ease, color .2s ease; }\n.nv-hybrid .cfg-variant[aria-pressed=\"true\"] { background: var(--black); color: var(--white); }\n.nv-hybrid .cfg-visual { display: grid; place-items: center; min-height: 0; }\n.nv-hybrid .cfg-bike { width: 100%; max-width: 720px; height: auto; aspect-ratio: 3 \/ 2; object-fit: contain; }\n.nv-hybrid .cfg-bar { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 24px; }\n.nv-hybrid .cfg-name { margin: 0; font-size: clamp(32px, 3.4vw, 48px); font-weight: 300; line-height: 1; letter-spacing: -.03em; }\n.nv-hybrid .cfg-sub { margin: 10px 0 0; color: var(--grey); font-size: var(--fs-small); letter-spacing: .12em; text-transform: uppercase; }\n.nv-hybrid .cfg-price { margin: 14px 0 0; font-size: var(--fs-body); }\n.nv-hybrid .cfg-price span { color: var(--grey); font-size: var(--fs-small); }\n.nv-hybrid .cfg-actions { display: flex; align-items: center; gap: 12px; }\n.nv-hybrid .cfg-step { width: 52px; height: 52px; display: grid; place-items: center; padding: 0; border: 1px solid var(--ink); border-radius: 50%; background: transparent; color: var(--ink); cursor: pointer; transition: background-color .2s ease, color .2s ease; }\n.nv-hybrid .cfg-step:hover { background: var(--black); color: var(--white); }\n.nv-hybrid .cfg-step svg { display: block; width: 18px; height: 18px; }\n.nv-hybrid .cfg-configure { min-height: 52px; display: inline-flex; align-items: center; padding: 0 32px; border-radius: 2px; background: var(--grey); color: var(--white); font-size: var(--fs-small); text-decoration: none; transition: background-color .2s ease; }\n.nv-hybrid .cfg-configure:hover { background: var(--black); }\n.nv-hybrid .cfg-panel { position: relative; min-height: 0; overflow: hidden; background: var(--sand); }\n.nv-hybrid .cfg-panel > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n.nv-hybrid .cfg-panel-copy { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 28px; padding: clamp(20px, 2.4vw, 36px); text-align: left; }\n.nv-hybrid .cfg-panel .cfg-panel-logo { display: block; width: clamp(132px, 14vw, 200px); height: auto; align-self: flex-end; margin-top: auto; }\n.nv-hybrid .cfg-claim { margin: 0; color: var(--ink); font-size: clamp(22px, 2.2vw, 30px); font-weight: 300; line-height: 1.2; letter-spacing: -.02em; }\n.nv-hybrid .cfg-claim strong { font-weight: 600; }\n.nv-hybrid .cfg-about { max-width: 36ch; margin: 0; color: var(--ink); font-size: var(--fs-body); line-height: 1.55; }\n.nv-hybrid .words { background: var(--sand); color: var(--ink); padding: clamp(64px, 6.5vw, 96px) var(--gutter); }\n.nv-hybrid .words-main { max-width: var(--content); margin: 0 auto; display: grid; gap: clamp(24px, 2.6vw, 40px); }\n.nv-hybrid .word-item { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(40px, 6vw, 96px); align-items: start; }\n.nv-hybrid .word-claim { margin: 0; color: var(--warm); font-size: clamp(20px, 3.2vw, 46px); font-weight: 400; line-height: 1.15; letter-spacing: -.035em; white-space: nowrap; transition: color .5s ease; }\n.nv-hybrid .word-claim::first-letter { font-weight: 600; }\n.nv-hybrid .word-item.is-active .word-claim { color: var(--ink); }\n.nv-hybrid .word-body { display: grid; justify-items: start; gap: 24px; max-width: 46ch; }\n.nv-hybrid .word-body p { margin: 0; color: var(--grey); font-size: var(--fs-body); line-height: 1.6; transition: color .5s ease; }\n.nv-hybrid .word-item.is-active .word-body p { color: var(--ink); }\n.nv-hybrid.motion .word-body p[data-reveal] { transition: opacity .9s ease, transform .9s cubic-bezier(.16, 1, .3, 1), color .5s ease; }\n.nv-hybrid .word-item .outline-button { font-size: var(--fs-small); letter-spacing: .12em; text-transform: uppercase; }\n.nv-hybrid .words-links { justify-self: end; display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 4px 14px; }\n.nv-hybrid .word-link { min-height: 44px; display: inline-flex; align-items: center; margin: 0; padding: 0; border: 0; background: none; color: var(--grey); font: inherit; font-size: var(--fs-small); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: color .5s ease; }\n.nv-hybrid .word-link.is-active { color: var(--ink); }\n.nv-hybrid .word-link:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .3em; }\n.nv-hybrid .words-sep { color: var(--mid); font-size: var(--fs-small); }\n.nv-hybrid .words-rule { height: 1px; background: var(--rule); }\n.nv-hybrid .word-body { transition: opacity .6s ease, visibility .6s ease; }\n.nv-hybrid .word-item:not(.is-active) .word-body { opacity: 0; visibility: hidden; }\n@media (min-width: 901px) {\n  .nv-hybrid .word-body { height: 0; }\n  .nv-hybrid .word-item:has(+ .words-rule) .word-body { height: auto; }\n  .nv-hybrid .words-rule { margin-top: 0; }\n}\n@media (min-width: 901px) { .nv-hybrid .words-links { position: sticky; bottom: 24px; padding: 8px 0 8px 16px; background: var(--sand); } }\n@media (max-width: 900px) {\n  .nv-hybrid .words-main { gap: 24px; }\n  .nv-hybrid .word-item { grid-template-columns: minmax(0, 1fr); gap: 20px; }\n  .nv-hybrid .word-claim { font-size: clamp(17px, 5.3vw, 34px); }\n}\n.nv-hybrid .manifesto-track { position: relative; height: 210vh; }\n.nv-hybrid:not(.sweep) .manifesto-track { height: auto; }\n.nv-hybrid .feel { position: relative; background: var(--black); color: var(--white); }\n.nv-hybrid .feel-stage { position: sticky; top: 0; height: 100vh; min-height: 560px; overflow: hidden; }\n.nv-hybrid .feel-photo { position: absolute; inset: 0; margin: 0; background: var(--charcoal); }\n.nv-hybrid .feel-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }\n.nv-hybrid .feel-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, #000e 0%, #0008 40%, #0000 72%), linear-gradient(0deg, #000e 0%, #000b 35%, #0000 70%); }\n.nv-hybrid .feel-inner { position: absolute; inset: 0; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); align-items: stretch; max-width: calc(var(--content) + var(--gutter) * 2); margin: 0 auto; padding: calc(var(--nv-top) + var(--nv-admin) + 62px + clamp(24px, 4vh, 48px)) var(--gutter) clamp(40px, 9vh, 96px); }\n.nv-hybrid .feel-copy { align-self: start; }\n.nv-hybrid .feel-kicker { margin: 0 0 24px; color: var(--white); font-size: var(--fs-small); font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }\n.nv-hybrid .feel h2 { margin: 0; max-width: 8ch; font-size: var(--fs-display); font-weight: 300; line-height: 1.02; letter-spacing: -.03em; text-wrap: balance; }\n.nv-hybrid .manifesto-stage { align-self: end; justify-self: start; max-width: 780px; }\n.nv-hybrid .manifesto-text { margin: 0; font-size: clamp(20px, 1.6vw, 28px); font-weight: 300; line-height: 1.3; letter-spacing: -.02em; text-wrap: pretty; }\n.nv-hybrid .manifesto-bar { display: none; }\n.nv-hybrid.sweep .manifesto-bar { display: block; position: relative; height: 2px; margin-top: clamp(32px, 4vw, 48px); overflow: hidden; background: #ffd70033; }\n.nv-hybrid.sweep .manifesto-bar::after { content: \"\"; position: absolute; inset: 0; background: var(--yellow); transform: scaleX(var(--p, 0)); transform-origin: left center; }\n.nv-hybrid .machine { background: var(--sand); color: var(--ink); padding: clamp(64px, 6.5vw, 96px) var(--gutter); }\n.nv-hybrid .machine-main { max-width: var(--content); margin: 0 auto; }\n.nv-hybrid .machine-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .42fr); gap: clamp(40px, 6vw, 96px); align-items: end; }\n.nv-hybrid .machine-kicker, .nv-hybrid .words-kicker { display: flex; align-items: center; gap: 14px; margin: 0; color: var(--grey); font-size: var(--fs-small); font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }\n.nv-hybrid .machine-kicker { margin-bottom: 28px; }\n.nv-hybrid .machine-kicker::before, .nv-hybrid .words-kicker::before { content: \"\"; width: 40px; height: 1px; background: var(--gold); }\n.nv-hybrid .machine h2 { margin: 0; font-size: var(--fs-display); font-weight: 300; line-height: 1.02; letter-spacing: -.03em; text-wrap: balance; }\n.nv-hybrid .machine-lead { max-width: 34ch; margin: 0; color: var(--grey); font-size: var(--fs-body); line-height: 1.55; }\n.nv-hybrid .machine-photo { margin: clamp(40px, 4.5vw, 64px) 0 0; height: clamp(300px, 46vw, 640px); }\n.nv-hybrid .machine-photo img { width: 100%; height: 100%; object-fit: contain; }\n.nv-hybrid .machine-stats { margin: clamp(40px, 5vw, 64px) 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }\n.nv-hybrid .machine-stats li { padding: 28px 24px; }\n.nv-hybrid .machine-stats li:first-child { padding-left: 0; }\n.nv-hybrid .machine-stats li + li { border-left: 1px solid var(--rule); }\n.nv-hybrid .machine-stats strong { display: block; font-size: clamp(48px, 5.2vw, 80px); font-weight: 300; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }\n.nv-hybrid .machine-stats .unit { font-size: var(--fs-body); letter-spacing: .12em; text-transform: uppercase; color: var(--grey); }\n.nv-hybrid .machine-stats span { display: block; margin-top: 14px; color: var(--grey); font-size: var(--fs-small); letter-spacing: .12em; text-transform: uppercase; }\n.nv-hybrid .machine-note { margin: 24px 0 0; color: var(--grey); font-size: var(--fs-small); line-height: 1.6; }\n.nv-hybrid .road { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; background: var(--black); }\n.nv-hybrid .road-panel { position: relative; height: clamp(560px, 80vh, 820px); margin: 0; overflow: hidden; background: var(--charcoal); color: var(--white); }\n.nv-hybrid .road-panel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n.nv-hybrid .road-panel::after { content: \"\"; position: absolute; inset: 0; background: linear-gradient(0deg, #000d 0%, #000c 30%, #0009 55%, #0000 85%); }\n.nv-hybrid .road-copy { position: absolute; z-index: 1; left: var(--gutter); right: var(--gutter); bottom: clamp(32px, 5vw, 64px); max-width: 540px; }\n.nv-hybrid .road-label { margin: 0 0 16px; font-size: var(--fs-small); font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }\n.nv-hybrid .road-title { margin: 0 0 20px; font-size: var(--fs-display); font-weight: 300; line-height: 1; letter-spacing: -.03em; }\n.nv-hybrid .road-text { max-width: 36ch; margin: 0; font-size: var(--fs-body); font-weight: 300; line-height: 1.55; }\n.nv-hybrid .x20 { background: var(--charcoal); color: var(--white); padding: clamp(64px, 6.5vw, 96px) var(--gutter); }\n.nv-hybrid .x20-head { max-width: var(--content); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 48px; align-items: end; }\n.nv-hybrid .x20-head h2 { margin: 0; font-size: var(--fs-display); font-weight: 300; line-height: 1.05; letter-spacing: -.03em; text-wrap: balance; }\n.nv-hybrid .x20-head p { margin: 0; max-width: 52ch; color: #a3a3a3; }\n.nv-hybrid .x20-copy { grid-column: 1; grid-row: 1; align-self: end; display: grid; gap: 48px; }\n.nv-hybrid .x20-intro { grid-column: 2; grid-row: 1; align-self: end; display: grid; gap: 24px; }\n.nv-hybrid .x20-intro-photo { margin: 0; aspect-ratio: 3 \/ 2; overflow: hidden; background: #262626; }\n.nv-hybrid .x20-intro-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }\n.nv-hybrid .x20-media { max-width: var(--content); margin: clamp(40px, 4.5vw, 64px) auto 0; display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 18px; }\n.nv-hybrid .x20-band { position: relative; height: clamp(360px, 44vw, 660px); margin: 0; overflow: hidden; background: #262626; }\n.nv-hybrid .x20-band img { position: absolute; top: 0; left: 0; width: 100%; height: 120%; object-fit: cover; object-position: center 40%; }\n.nv-hybrid.motion .x20-band img { transform: translate3d(0, calc(var(--y, 0) * -16%), 0); }\n.nv-hybrid .x20-side { display: flex; flex-direction: column; }\n.nv-hybrid .x20-photo { margin: 0; height: clamp(200px, 26vw, 380px); overflow: hidden; background: #262626; }\n.nv-hybrid .x20-photo img { width: 100%; height: 100%; object-fit: cover; }\n.nv-hybrid .x20-photo--cutout img { object-fit: contain; padding: 8%; }\n.nv-hybrid .x20-callout { margin-top: 28px; padding-top: 24px; border-top: 1px solid #333; }\n.nv-hybrid .x20-specs { max-width: var(--content); margin: clamp(40px, 4.5vw, 64px) auto 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #333; }\n.nv-hybrid .x20-spec { padding: 28px 24px 0 0; }\n.nv-hybrid .x20-value { margin: 0; font-size: var(--fs-display); font-weight: 200; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }\n.nv-hybrid .x20-value small { margin-left: 8px; font-size: var(--fs-body); font-weight: 200; letter-spacing: 0; color: #a3a3a3; }\n.nv-hybrid .x20-label { margin: 16px 0 2px; font-size: var(--fs-small); font-weight: 500; }\n.nv-hybrid .x20-spec .x20-label { text-transform: uppercase; letter-spacing: .12em; }\n.nv-hybrid .x20-detail { margin: 0; color: #a3a3a3; font-size: var(--fs-small); line-height: 1.5; }\n.nv-hybrid .x20-points { max-width: var(--content); margin: clamp(40px, 4.5vw, 64px) auto 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; border-top: 1px solid #333; }\n.nv-hybrid .x20-points li { padding: 22px 0; border-bottom: 1px solid #333; font-size: var(--fs-body); line-height: 1.55; }\n.nv-hybrid .x20-points strong { display: block; margin-bottom: 6px; font-size: var(--fs-body); font-weight: 600; }\n.nv-hybrid .x20-points span { color: #d4d4d4; }\n.nv-hybrid .x20-connect { max-width: var(--content); margin: clamp(40px, 4.5vw, 64px) auto 0; padding-top: 28px; border-top: 1px solid #333; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 48px; align-items: center; }\n.nv-hybrid .x20-connect-text { display: flex; flex-direction: column; gap: 18px; }\n.nv-hybrid .x20-connect-logo { display: block; width: 96px; height: 96px; border-radius: 22%; }\n.nv-hybrid .x20-connect-photo { margin: 0; aspect-ratio: 3 \/ 2; overflow: hidden; background: #262626; }\n.nv-hybrid .x20-connect-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }\n.nv-hybrid .x20-connect-title { margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.4rem); font-weight: 300; line-height: 1.1; letter-spacing: -.03em; text-wrap: balance; }\n.nv-hybrid .x20-connect-copy { max-width: 55ch; margin: 0; color: #a3a3a3; line-height: 1.7; }\n.nv-hybrid .x20-note { max-width: 75ch; margin: 48px 0 0 max(0px, calc((100% - var(--content)) \/ 2)); color: #a3a3a3; font-size: var(--fs-small); line-height: 1.75; }\n.nv-hybrid .range { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; min-height: clamp(600px, 84vh, 860px); background: var(--charcoal); color: var(--white); padding: clamp(64px, 6.5vw, 96px) var(--gutter) clamp(56px, 5.5vw, 80px); }\n.nv-hybrid .range-photo { position: absolute; inset: 0; margin: 0; }\n.nv-hybrid .range-photo img { height: 100%; object-fit: cover; object-position: center 60%; }\n.nv-hybrid .range-photo::after { content: \"\"; position: absolute; inset: 0; background: linear-gradient(90deg, #0000 0%, #0000 36%, #000c 60%, #000e 100%); }\n.nv-hybrid .range-copy { position: relative; grid-column: 2; justify-self: end; width: min(100%, 520px); }\n.nv-hybrid .range-number { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .22em; margin: 0; font-size: var(--fs-body); font-weight: 300; line-height: 1.1; }\n.nv-hybrid .range-number .count { font-size: var(--fs-display); font-weight: 200; line-height: .8; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }\n.nv-hybrid .range-unit { font-size: var(--fs-body); font-weight: 300; }\n.nv-hybrid .range-copy > p { max-width: 56ch; margin: 22px 0 0; color: #fff; font-size: var(--fs-body); }\n.nv-hybrid .range-copy .range-note { margin-top: 12px; color: #fff; font-size: var(--fs-small); }\n.nv-hybrid .gallery { background: var(--sand); color: var(--ink); padding: clamp(64px, 6.5vw, 96px) 0 clamp(56px, 5.5vw, 80px); }\n.nv-hybrid .gallery-inner { padding: 0 max(var(--gutter), calc((100% - var(--content)) \/ 2)); }\n.nv-hybrid .gallery-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); align-items: end; gap: 32px; }\n.nv-hybrid .gallery-kicker { margin: 0; color: var(--warm); font-size: var(--fs-small); letter-spacing: .08em; text-transform: uppercase; }\n.nv-hybrid .gallery h2 { margin: 22px 0 0; font-size: var(--fs-display); font-weight: 300; line-height: 1.05; letter-spacing: -.03em; text-transform: none; }\n.nv-hybrid .gallery-lead { margin: 0; color: var(--grey); font-size: var(--fs-body); line-height: 1.55; }\n\/* The strip moves only with the arrows or a swipe, never with the page's own scroll. Its frames have different shapes and snap to the content edge. *\/\n.nv-hybrid .gallery-stage { position: relative; margin-top: clamp(40px, 4.5vw, 64px); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline-start: max(var(--gutter), calc((100% - var(--content)) \/ 2)); scrollbar-width: none; }\n.nv-hybrid .gallery-stage::-webkit-scrollbar { display: none; }\n.nv-hybrid .gallery-stage:focus-visible { outline: 1px solid var(--black); outline-offset: 8px; }\n.nv-hybrid .gallery-grid { --gal-h: clamp(300px, 30vw, 500px); width: max-content; display: flex; align-items: flex-start; gap: clamp(12px, 1.4vw, 20px); margin: 0; padding: 0 var(--gutter) 0 max(var(--gutter), calc((100% - var(--content)) \/ 2)); list-style: none; }\n.nv-hybrid .gallery-frame { position: relative; flex: 0 0 auto; width: calc(var(--gal-h) * var(--gal-r, 1)); height: var(--gal-h); overflow: hidden; background: var(--charcoal); scroll-snap-align: start; }\n.nv-hybrid .gallery-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n\/* Plain rectangles in five proportions: tall, square, wide, wide and panorama. --gal-r is the width-to-height ratio. *\/\n.nv-hybrid .gal-tall { --gal-r: .667; }\n.nv-hybrid .gal-square { --gal-r: 1; }\n.nv-hybrid .gal-wide { --gal-r: 1.5; }\n.nv-hybrid .gal-pano { --gal-r: 2; }\n.nv-hybrid .gallery-foot { margin-top: clamp(28px, 3vw, 40px); }\n.nv-hybrid .gallery-controls { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 24px; margin-top: 28px; }\n.nv-hybrid .gallery-count { margin: 0; font-size: var(--fs-small); letter-spacing: .08em; font-variant-numeric: tabular-nums; white-space: nowrap; }\n.nv-hybrid .gallery-progress { position: relative; height: 1px; background: var(--rule); }\n.nv-hybrid .gallery-bar { position: absolute; top: -.5px; left: 0; height: 2px; background: var(--ink); transition: width .4s ease; }\n.nv-hybrid .gallery-arrows { display: flex; gap: 12px; }\n.nv-hybrid .gallery-arrows .cfg-step:disabled, .nv-hybrid .gallery-arrows .cfg-step:disabled:hover { opacity: .35; cursor: default; background: transparent; color: var(--ink); }\n.nv-hybrid .geometry { position: relative; overflow: hidden; background: var(--sand); color: var(--ink); padding: clamp(64px, 6.5vw, 96px) var(--gutter); }\n.nv-hybrid .geometry-inner { max-width: var(--content); margin: 0 auto; }\n.nv-hybrid .geometry h2 { margin: 0; font-size: var(--fs-display); font-weight: 300; line-height: 1.05; letter-spacing: -.03em; }\n.nv-hybrid .geometry-lead { max-width: 42ch; margin: 22px 0 0; color: #171717; }\n.nv-hybrid .geometry-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(40px, 5vw, 74px); align-items: start; margin: clamp(40px, 4.5vw, 64px) 0 0; }\n.nv-hybrid .geometry-photo { margin: 0; overflow: hidden; padding: 12.5% 0; }\n.nv-hybrid .geometry-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 \/ 2; object-fit: cover; }\n.nv-hybrid.motion .geometry-photo img { transform: scale(calc(1.06 - var(--g, 0) * .06)); }\n.nv-hybrid .geometry-stats { margin: 0; padding: 22px 0 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 24px; border-top: 1px solid var(--grey); }\n.nv-hybrid .geometry-stats li { display: grid; gap: 14px; }\n.nv-hybrid .geometry-stats strong { font-size: clamp(44px, 4.8vw, 72px); font-weight: 300; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }\n.nv-hybrid .geometry-stats span { color: var(--grey); font-size: var(--fs-small); line-height: 1.4; letter-spacing: .12em; text-transform: uppercase; }\n.nv-hybrid .size-label { margin: 56px 0 0; color: var(--ink); font-size: var(--fs-small); font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }\n.nv-hybrid .size-picker { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 20px 0 0; }\n.nv-hybrid .size-button { min-height: 52px; padding: 0 16px; border: 1px solid var(--grey); border-radius: 2px; background: transparent; color: var(--ink); font-size: var(--fs-body); font-weight: 400; cursor: pointer; transition: color .2s ease, background-color .2s ease, border-color .2s ease; }\n.nv-hybrid .size-button:hover { border-color: var(--ink); }\n.nv-hybrid .size-button[aria-pressed=\"true\"] { border-color: var(--ink); background: var(--ink); color: var(--white); }\n.nv-hybrid .size-guide { display: inline-block; margin: 16px 0 0; color: var(--ink); font-size: var(--fs-small); text-decoration: underline; text-underline-offset: 4px; }\n.nv-hybrid .geometry-table { margin: 28px 0 0; padding: 28px 0 0; border-top: 1px solid var(--grey); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 6vw, 96px); }\n.nv-hybrid .geometry-item { margin: 0; padding: 0 0 24px; }\n.nv-hybrid .geometry-item dt { color: var(--grey); font-size: var(--fs-small); line-height: 1.4; }\n.nv-hybrid .geometry-item dd { margin: 6px 0 0; color: var(--ink); font-size: var(--fs-body); font-weight: 500; line-height: 1.4; font-variant-numeric: tabular-nums; }\n.nv-hybrid .geometry-foot { margin: 8px 0 0; color: var(--grey); font-size: var(--fs-small); }\n.nv-hybrid .viewer { background: var(--charcoal); color: var(--white); padding: clamp(64px, 6.5vw, 96px) var(--gutter); }\n.nv-hybrid .viewer-head { max-width: var(--content); margin: 0 auto 40px; display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 32px; }\n.nv-hybrid .viewer-head h2 { margin: 0; font-size: var(--fs-display); font-weight: 300; line-height: 1.05; letter-spacing: -.03em; }\n.nv-hybrid .viewer-head p { margin: 0; max-width: 36ch; color: #fff; }\n.nv-hybrid .viewer-stage { position: relative; max-width: var(--content); height: clamp(420px, 56vw, 760px); margin: 0 auto; overflow: hidden; background: var(--charcoal); }\n.nv-hybrid .viewer-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }\n.nv-hybrid .viewer-stage iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: var(--charcoal); }\n.nv-hybrid .viewer-hint { max-width: var(--content); margin: 16px auto 0; color: #fff; font-size: var(--fs-small); }\n.nv-hybrid .marquee { overflow: hidden; background: var(--sand); color: var(--black); padding: clamp(40px, 4.5vw, 64px) 0; }\n.nv-hybrid .marquee-track { display: flex; width: max-content; margin: 0; padding-left: var(--gutter); font-size: clamp(36px, 4vw, 76px); font-weight: 200; line-height: 1; letter-spacing: -.01em; text-transform: uppercase; white-space: nowrap; }\n.nv-hybrid .marquee-track span { padding-right: .4em; }\n.nv-hybrid .marquee-track .sep { color: #595959; }\n.nv-hybrid.motion .marquee-track { transform: translate3d(calc(var(--m, 0) * -50%), 0, 0); will-change: transform; }\n.nv-hybrid .buy { position: relative; display: flex; flex-direction: column; min-height: clamp(600px, 84vh, 860px); overflow: hidden; padding: clamp(64px, 6.5vw, 96px) var(--gutter) clamp(56px, 5.5vw, 80px); background: var(--charcoal); color: var(--white); }\n.nv-hybrid .buy-photo { position: absolute; inset: 0; margin: 0; }\n.nv-hybrid .buy-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }\n.nv-hybrid .buy-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, #000e 0%, #000a 40%, #0000 75%), linear-gradient(0deg, #000e 0%, #000b 35%, #0000 70%); }\n.nv-hybrid .buy-inner { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 48px; width: 100%; max-width: var(--content); margin: 0 auto; }\n.nv-hybrid .buy-price { margin: 0; font-size: var(--fs-display); font-weight: 200; line-height: .95; letter-spacing: -.03em; }\n.nv-hybrid .buy-price span { display: block; margin-top: 22px; color: #e0e0e0; font-size: var(--fs-body); font-weight: 300; letter-spacing: 0; }\n.nv-hybrid .buy-copy p { max-width: 52ch; margin: 0 0 14px; color: #ededed; font-size: var(--fs-body); }\n.nv-hybrid .buy-copy .buy-note { color: #bdbdbd; font-size: var(--fs-small); }\n.nv-hybrid .buy-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 30px 0 18px; }\n.nv-hybrid .faq { background: var(--sand); color: var(--ink); padding: clamp(64px, 6.5vw, 96px) var(--gutter) clamp(40px, 4vw, 64px); }\n.nv-hybrid .faq-title { max-width: var(--content); margin: 0 auto; padding: 0 0 clamp(36px, 4vw, 56px); border-bottom: 1px dashed var(--mid); font-size: var(--fs-display); font-weight: 300; line-height: 1.05; letter-spacing: -.03em; }\n.nv-hybrid .faq-list { max-width: var(--content); margin: 0 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(40px, 6vw, 96px); }\n.nv-hybrid .faq-item { border-bottom: 1px dashed var(--mid); }\n.nv-hybrid .faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: clamp(28px, 3vw, 40px) 0; cursor: pointer; list-style: none; font-size: var(--fs-body); font-weight: 500; line-height: 1.4; }\n.nv-hybrid .faq-item summary::-webkit-details-marker { display: none; }\n.nv-hybrid .faq-item summary::after { content: \"\"; flex: 0 0 auto; width: 18px; height: 18px; background: linear-gradient(currentColor, currentColor) center \/ 18px 1px no-repeat, linear-gradient(currentColor, currentColor) center \/ 1px 18px no-repeat; }\n.nv-hybrid .faq-item[open] summary::after { background: linear-gradient(currentColor, currentColor) center \/ 18px 1px no-repeat; }\n.nv-hybrid .faq-item p { max-width: 60ch; margin: 0 0 clamp(28px, 3vw, 40px); color: var(--grey); font-weight: 300; line-height: 1.7; }\n.nv-hybrid .closing { background: var(--sand); color: var(--ink); padding: clamp(64px, 6.5vw, 96px) var(--gutter); }\n.nv-hybrid .closing h2 { max-width: var(--content); margin: 0 auto; font-size: var(--fs-display); font-weight: 300; line-height: 1.04; letter-spacing: -.03em; text-wrap: balance; }\n.nv-hybrid .closing h2 span { font-weight: 200; }\n.nv-hybrid .closing-list { position: relative; max-width: var(--content); margin: clamp(40px, 4.5vw, 64px) auto 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); counter-reset: item; }\n.nv-hybrid .closing-list::before { content: \"\"; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--ink); transform-origin: left center; }\n.nv-hybrid.motion .closing-list::before { transform: scaleX(var(--draw, 0)); }\n.nv-hybrid .closing-list li { padding: 26px 28px 0 0; counter-increment: item; }\n.nv-hybrid.motion .closing-list li:nth-child(2) { transition-delay: .12s; }\n.nv-hybrid.motion .closing-list li:nth-child(3) { transition-delay: .24s; }\n.nv-hybrid .closing-list li::before { content: counter(item, decimal-leading-zero); display: block; margin-bottom: 42px; color: var(--grey); font-size: var(--fs-small); font-variant-numeric: tabular-nums; }\n.nv-hybrid .closing-list h3 { margin: 0 0 12px; font-size: var(--fs-body); font-weight: 500; line-height: 1.3; }\n.nv-hybrid .closing-list p { max-width: 40ch; margin: 0; color: #171717; font-size: var(--fs-body); }\n.nv-hybrid .closing-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 56px 0 0 max(0px, calc((100% - var(--content)) \/ 2)); }\n.nv-hybrid.motion [data-reveal] { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity .9s ease, transform .9s cubic-bezier(.16, 1, .3, 1); }\n.nv-hybrid.motion [data-reveal].is-in { opacity: 1; transform: none; }\n@media (max-width: 900px) {\n  .nv-hybrid .hero-body { position: relative; }\n  .nv-hybrid .hero-media { aspect-ratio: 3 \/ 4; }\n  .nv-hybrid .hero-shade { background: linear-gradient(0deg, #000b 0%, #0000 40%), linear-gradient(180deg, #0009 0%, #0000 17%); }\n  .nv-hybrid .hero-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; pointer-events: none; }\n  .nv-hybrid .hero-copy { background: linear-gradient(0deg, #000c 0%, #0009 45%, #0000 100%); padding: 36px var(--gutter) 52px; }\n  .nv-hybrid .hero-copy a,\n  .nv-hybrid .film-control { pointer-events: auto; }\n  .nv-hybrid .hero-copy p { max-width: 34ch; }\n  .nv-hybrid .manifesto-track { height: 190vh; }\n  .nv-hybrid .feel-inner { display: contents; }\n  .nv-hybrid .feel-copy { position: absolute; top: calc(var(--nv-top) + var(--nv-admin) + 62px + 24px); left: max(var(--gutter), calc((100% - var(--content)) \/ 2)); }\n  .nv-hybrid .feel h2 { font-size: clamp(44px, 12vw, 60px); }\n  .nv-hybrid .feel-photo img { object-position: 62% 50%; }\n  .nv-hybrid .feel-shade { background: linear-gradient(0deg, #000e 0%, #000a 50%, #0006 100%); }\n  .nv-hybrid .manifesto-stage { position: absolute; left: var(--gutter); right: var(--gutter); width: auto; bottom: 40px; }\n  .nv-hybrid .manifesto-text { font-size: clamp(18px, 4.8vw, 22px); }\n  .nv-hybrid .machine-head { grid-template-columns: minmax(0, 1fr); gap: 24px; }\n  .nv-hybrid .machine-stats { grid-template-columns: minmax(0, 1fr); }\n  .nv-hybrid .machine-stats li { padding: 20px 0; }\n  .nv-hybrid .machine-stats li + li { border-left: 0; border-top: 1px solid var(--rule); }\n  .nv-hybrid .range { grid-template-columns: minmax(0, 1fr); }\n  .nv-hybrid .range-copy { grid-column: auto; justify-self: stretch; width: auto; }\n  .nv-hybrid .range-photo img { object-position: 30% 60%; }\n  .nv-hybrid .range-photo::after { background: linear-gradient(180deg, #0006 0%, #000d 60%, #000e 100%); }\n  .nv-hybrid .film-control { top: calc(var(--nv-top) + var(--nv-admin) + 14px); bottom: auto; right: 14px; padding: 8px 12px; border-radius: 4px; background: #000a; }\n  .nv-hybrid .product-nav-shell { position: sticky; top: var(--nv-stick, var(--nv-admin)); }\n  .nv-hybrid .product-nav { width: calc(100% - 52px); justify-content: flex-start; min-height: 60px; gap: 25px; padding: 8px 20px; scroll-padding-inline: 20px; overscroll-behavior-x: contain; }\n  .nv-hybrid .product-nav a { min-height: 44px; display: inline-flex; align-items: center; }\n  .nv-hybrid .product-nav-more { position: absolute; top: 0; right: 0; width: 52px; height: 60px; display: grid; place-items: center; padding: 0 4px; border: 0; background: linear-gradient(90deg, #0000 0%, #000 42%); color: var(--white); cursor: pointer; }\n  .nv-hybrid .product-nav-more svg { display: block; width: 18px; height: 18px; }\n  .nv-hybrid .product-nav-more:focus-visible { outline: 2px solid var(--yellow); outline-offset: -4px; }\n  .nv-hybrid .product-nav-more[hidden] { display: none; }\n  .nv-hybrid [id] { scroll-margin-top: calc(var(--nv-stick, var(--nv-admin)) + 62px); }\n  .nv-hybrid .x20-head { grid-template-columns: 1fr; }\n  .nv-hybrid .buy-shade { background: linear-gradient(180deg, #000a 0%, #0000 25%), linear-gradient(0deg, #000e 0%, #000a 50%, #0006 100%); }\n  .nv-hybrid .buy-photo img { object-position: 60% 50%; }\n  .nv-hybrid .x20-media { grid-template-columns: minmax(0, 1fr); }\n  .nv-hybrid .x20-photo { height: 60vw; }\n  .nv-hybrid .x20-specs { grid-template-columns: minmax(0, 1fr); }\n  .nv-hybrid .x20-spec { padding-bottom: 28px; }\n  .nv-hybrid .x20-points { grid-template-columns: 1fr; }\n  .nv-hybrid .x20-points li { padding: 16px 0; }\n  .nv-hybrid .x20-connect { grid-template-columns: minmax(0, 1fr); gap: 18px; }\n  .nv-hybrid .x20-note { margin: 24px 0 0; }\n  .nv-hybrid .x20-copy { display: contents; }\n.nv-hybrid .x20-intro { grid-column: auto; grid-row: auto; order: 1; }\n.nv-hybrid .x20-copy > p { order: 2; }\n  .nv-hybrid .x20-band { height: 70vw; min-height: 260px; }\n  .nv-hybrid .hero-film { object-fit: cover; }\n  .nv-hybrid .road { grid-template-columns: minmax(0, 1fr); }\n  .nv-hybrid .road-panel { height: auto; min-height: 480px; display: flex; flex-direction: column; justify-content: flex-end; }\n  .nv-hybrid .road-copy { position: relative; z-index: 1; left: auto; right: auto; bottom: auto; max-width: none; margin: 0 var(--gutter); padding-bottom: 32px; }\n  .nv-hybrid .gallery-grid { --gal-h: clamp(260px, 70vw, 420px); }\n  .nv-hybrid .gallery-head { grid-template-columns: minmax(0, 1fr); }\n  .nv-hybrid .geometry-grid { grid-template-columns: minmax(0, 1fr); }\n  .nv-hybrid .geometry-stats { gap: 16px 12px; }\n  .nv-hybrid .configurator { grid-template-columns: minmax(0, 1fr); min-height: 0; }\n  .nv-hybrid .cfg-stage { padding: 24px 20px 28px; }\n  .nv-hybrid .cfg-bar { flex-direction: column; align-items: stretch; }\n  .nv-hybrid .cfg-actions { justify-content: space-between; }\n  .nv-hybrid .cfg-panel { aspect-ratio: auto; }\n  .nv-hybrid .cfg-panel-copy { position: relative; inset: auto; padding: clamp(20px, 2.4vw, 36px); }\n  .nv-hybrid .faq-list { grid-template-columns: minmax(0, 1fr); }\n  .nv-hybrid .viewer-head { flex-direction: column; align-items: flex-start; }\n  .nv-hybrid .viewer-stage { height: 72vw; min-height: 340px; max-height: 560px; }\n  .nv-hybrid .closing-list { grid-template-columns: 1fr; }\n  .nv-hybrid .closing-list li { padding-bottom: 36px; }\n  .nv-hybrid .closing-list li::before { margin-bottom: 18px; }\n}\n\/* The theme pads its page wrapper by 100px at the bottom. That padding would show as a white band above the footer, so the block removes it. *\/\n#qodef-page-inner:has(.nv-hybrid) { padding-bottom: 0; }\n@media (prefers-reduced-motion: reduce) {\n  .nv-hybrid *, .nv-hybrid *::before, .nv-hybrid *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }\n}\n\n\/* Ficha t\u00e9cnica de geometr\u00eda aprobada *\/\n.nv-hybrid .geometry{padding-bottom:clamp(24px,2.5vw,36px)}.nv-hybrid .geometry-grid{margin-top:clamp(24px,3vw,40px)}.nv-hybrid .geometry-photo{padding:4% 0}.nv-hybrid .size-label{margin-top:32px}.tech{background:#e7e5df;color:#171717;padding:clamp(24px,2.5vw,36px) var(--gutter) clamp(48px,5vw,72px)}.tech-inner{max-width:var(--content);margin:auto}.tech h2{font-size:clamp(30px,3vw,48px);font-weight:300;line-height:1.15;max-width:24ch;margin:0 0 32px}.tech-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.tech h3{font-size:14px;letter-spacing:.12em;font-weight:500;border-top:1px solid #878787;padding-top:18px;margin-bottom:20px}.tech ul{list-style:none;padding:0}.tech li{padding:10px 0;border-bottom:1px solid #ccc;line-height:1.5}@media(max-width:900px){.tech-columns{grid-template-columns:1fr;gap:32px}}\n<\/style>\n<div class=\"nv-hybrid\" lang=\"de\">\n<a class=\"skip-link\" href=\"#main\">Zum Inhalt springen<\/a>\n\n  <section class=\"hero\" id=\"top\" aria-label=\"NOVA-Startfilm\">\n    <h1 class=\"visually-hidden\">NOVA, das All-Road-E-Bike von AURUM<\/h1>\n\n    <div class=\"hero-body\">\n      <div class=\"hero-media\">\n        <video class=\"hero-film\" id=\"hero-film\" autoplay=\"\" muted=\"\" loop=\"\" playsinline=\"\" preload=\"metadata\" poster=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-hero-film-poster.webp\" aria-label=\"NOVA-Startfilm\">\n          <source src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/11\/nova-hero-film-optimized.webm\" type=\"video\/webm\" media=\"(min-width: 901px)\">\n          <source src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/11\/nova-hero-film-optimized.mp4\" type=\"video\/mp4\" media=\"(min-width: 901px)\">\n          <source src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/11\/nova-hero-film-vertical-optimized.webm\" type=\"video\/webm\" media=\"(max-width: 900px)\">\n          <source src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/11\/nova-hero-film-vertical-optimized.mp4\" type=\"video\/mp4\">\n        <\/video>\n        <div class=\"hero-shade\" aria-hidden=\"true\"><\/div>\n      <\/div>\n\n      <div class=\"hero-overlay\">\n        <div class=\"hero-copy\">\n          <svg class=\"product-logo\" viewBox=\"0 0 487.64 94.16\" role=\"img\" aria-label=\"NOVA\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><g>\n    <path fill=\"#1d1d1b\" d=\"M186.67,0c13.58,0,24.94,4.53,34.09,13.59,9.15,9.06,13.72,20.21,13.72,33.46s-4.56,24.26-13.69,33.4c-9.13,9.14-20.26,13.71-33.39,13.71s-24.52-4.55-33.66-13.65c-9.15-9.1-13.72-20.11-13.72-33.03,0-8.61,2.08-16.6,6.25-23.95,4.17-7.35,9.85-13.11,17.04-17.28,7.2-4.16,14.98-6.25,23.36-6.25M187.06,8.71c-6.63,0-12.92,1.73-18.86,5.19-5.94,3.46-10.58,8.11-13.92,13.97-3.34,5.85-5,12.38-5,19.58,0,10.65,3.69,19.65,11.08,26.99,7.38,7.34,16.29,11.01,26.71,11.01,6.96,0,13.4-1.69,19.32-5.06s10.54-7.99,13.86-13.84c3.32-5.85,4.98-12.36,4.98-19.52s-1.66-13.55-4.98-19.3c-3.32-5.75-7.99-10.36-14.01-13.81-6.02-3.46-12.41-5.19-19.17-5.19\"><\/path>\n    <polygon fill=\"#1d1d1b\" points=\"280.19 2.25 289.94 2.25 319.65 71.51 349.84 2.25 359.59 2.25 320.59 91.9 318.64 91.9 280.19 2.25\"><\/polygon>\n    <polygon fill=\"#1d1d1b\" points=\"445.83 2.26 443.64 2.26 401.28 91.9 411.28 91.9 425.24 62.41 429.34 53.75 444.7 21.3 459.98 53.75 436.41 53.75 432.38 62.41 463.86 62.41 477.96 91.9 487.64 91.9 445.83 2.26\"><\/polygon>\n    <polygon fill=\"#1d1d1b\" points=\"0 91.9 17.28 2.26 19.41 2.26 71.4 70.98 84.65 2.26 94.31 2.26 77.03 91.9 74.83 91.9 23.21 24.02 10.13 91.9 0 91.9\"><\/polygon>\n  <\/g><\/svg>\n          <p>MORE RIDE. SAME YOU.<\/p>\n          <div class=\"hero-actions\">\n            <a class=\"outline-button solid-button\" href=\"#words\">Entdecken Sie NOVA<\/a>\n            <a class=\"outline-button\" href=\"https:\/\/aurumbikes.com\/de\/handler\/\">Finden Sie einen H\u00e4ndler<\/a>\n          <\/div>\n        <\/div>\n        <button class=\"film-control\" type=\"button\" aria-controls=\"hero-film\" data-state=\"playing\">\n          <span class=\"control-icon\" aria-hidden=\"true\"><\/span>\n          <span class=\"control-label\">Film anhalten<\/span>\n        <\/button>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <div class=\"product-nav-shell\">\n    <nav class=\"product-nav\" aria-label=\"NOVA-Seitenabschnitte\">\n      <a href=\"#words\">Das NOVA Konzept<\/a><a href=\"#x20\">Motor und Unterst\u00fctzung<\/a><a href=\"#range\">Akku und Reichweite<\/a><a href=\"#geometry\">Geometrie und Gr\u00f6\u00dfen<\/a><a href=\"#viewer\">In 3D entdecken<\/a><a href=\"#buy\">Preis und Konfiguration<\/a>\n    <\/nav>\n    <button class=\"product-nav-more\" type=\"button\" aria-label=\"Weitere Abschnitte anzeigen\" hidden=\"\">\n      <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m9 5 7 7-7 7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n    <\/button>\n  <\/div>\n\n  <div id=\"main\">\n    <section class=\"configurator\" id=\"configurator\" aria-label=\"Konfigurieren Sie NOVA\">\n      <div class=\"cfg-stage\" data-reveal=\"\">\n        <div class=\"cfg-variants\">\n          <button class=\"cfg-variant\" type=\"button\" aria-pressed=\"true\">ROAD<\/button>\n          <button class=\"cfg-variant\" type=\"button\" aria-pressed=\"false\">ALL-ROAD<\/button>\n        <\/div>\n        <div class=\"cfg-visual\">\n          <img loading=\"lazy\" class=\"cfg-bike\" src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/novadurace2.webp\" alt=\"NOVA in Stra\u00dfenkonfiguration\" width=\"1200\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n          <img loading=\"lazy\" class=\"cfg-bike\" src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/novaduracemontana.webp\" alt=\"NOVA in All-Road-Konfiguration\" width=\"2400\" height=\"1601\" loading=\"lazy\" decoding=\"async\" hidden=\"\">\n        <\/div>\n        <div class=\"cfg-bar\">\n          <div class=\"cfg-info\">\n            <p class=\"cfg-name\">NOVA<\/p>\n            <p class=\"cfg-sub\">Road-Konfiguration<\/p>\n            <p class=\"cfg-sub\" hidden=\"\">All-Road-Konfiguration<\/p>\n            <p class=\"cfg-price\">Ab 5.999 \u20ac <span>(exkl. MwSt.)<\/span><\/p>\n          <\/div>\n          <div class=\"cfg-actions\">\n            <button class=\"cfg-step\" type=\"button\" data-step=\"-1\" aria-label=\"Vorherige Variante\">\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m15 5-7 7 7 7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n            <\/button>\n            <button class=\"cfg-step\" type=\"button\" data-step=\"1\" aria-label=\"N\u00e4chste Variante\">\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m9 5 7 7-7 7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n            <\/button>\n            <a class=\"cfg-configure\" href=\"https:\/\/aurumbikes.com\/de\/nova\/konfigurieren\/?load-preset=148872\">Konfigurieren<\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n      <figure class=\"cfg-panel\" data-reveal=\"\">\n        <img src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/R5M20409-Editar.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n        <div class=\"cfg-panel-copy\">\n          <p class=\"cfg-claim\"><strong>MORE RIDE.<\/strong> SAME YOU.<\/p>\n          <p class=\"cfg-about\">NOVA ist das erste E-Bike von AURUM. Es erweitert jede Ausfahrt, ohne Ihr Verst\u00e4ndnis vom Radfahren zu ver\u00e4ndern.<\/p>\n          <svg class=\"cfg-panel-logo\" viewBox=\"0 0 487.64 94.16\" role=\"img\" aria-label=\"NOVA\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><g>\n            <path fill=\"#1d1d1b\" d=\"M186.67,0c13.58,0,24.94,4.53,34.09,13.59,9.15,9.06,13.72,20.21,13.72,33.46s-4.56,24.26-13.69,33.4c-9.13,9.14-20.26,13.71-33.39,13.71s-24.52-4.55-33.66-13.65c-9.15-9.1-13.72-20.11-13.72-33.03,0-8.61,2.08-16.6,6.25-23.95,4.17-7.35,9.85-13.11,17.04-17.28,7.2-4.16,14.98-6.25,23.36-6.25M187.06,8.71c-6.63,0-12.92,1.73-18.86,5.19-5.94,3.46-10.58,8.11-13.92,13.97-3.34,5.85-5,12.38-5,19.58,0,10.65,3.69,19.65,11.08,26.99,7.38,7.34,16.29,11.01,26.71,11.01,6.96,0,13.4-1.69,19.32-5.06s10.54-7.99,13.86-13.84c3.32-5.85,4.98-12.36,4.98-19.52s-1.66-13.55-4.98-19.3c-3.32-5.75-7.99-10.36-14.01-13.81-6.02-3.46-12.41-5.19-19.17-5.19\"><\/path>\n    <polygon fill=\"#1d1d1b\" points=\"280.19 2.25 289.94 2.25 319.65 71.51 349.84 2.25 359.59 2.25 320.59 91.9 318.64 91.9 280.19 2.25\"><\/polygon>\n    <polygon fill=\"#1d1d1b\" points=\"445.83 2.26 443.64 2.26 401.28 91.9 411.28 91.9 425.24 62.41 429.34 53.75 444.7 21.3 459.98 53.75 436.41 53.75 432.38 62.41 463.86 62.41 477.96 91.9 487.64 91.9 445.83 2.26\"><\/polygon>\n    <polygon fill=\"#1d1d1b\" points=\"0 91.9 17.28 2.26 19.41 2.26 71.4 70.98 84.65 2.26 94.31 2.26 77.03 91.9 74.83 91.9 23.21 24.02 10.13 91.9 0 91.9\"><\/polygon>\n  <\/g><\/svg>\n        <\/div>\n      <\/figure>\n    <\/section>\n    <section class=\"words\" id=\"words\" aria-label=\"Natural. Open. Versatile. Amplified.\">\n      <div class=\"words-main\">\n        <p class=\"words-kicker\">01 \u2014 Die Idee<\/p>\n        <div class=\"word-item is-active\">\n          <h2 class=\"word-claim\">Natural ride.<\/h2>\n          <div class=\"word-body\">\n            <p data-reveal=\"\">Die Unterst\u00fctzung folgt Ihrer Kraft und Trittfrequenz \u2013 unmittelbar, fl\u00fcssig und progressiv. Sie entscheiden, wie viel Sie leisten und wann Sie weiterfahren.<\/p>\n            <a class=\"outline-button\" href=\"#feel\" aria-label=\"Explore Natural ride\">Erkunden<\/a>\n          <\/div>\n        <\/div>\n        <div class=\"word-item\">\n          <h2 class=\"word-claim\">Open possibilities.<\/h2>\n          <div class=\"word-body\">\n            <p data-reveal=\"\">Der integrierte Akku verl\u00e4ngert jede Ausfahrt und l\u00e4sst Ihnen die Kontrolle. F\u00fcr l\u00e4ngere Strecken, mehr H\u00f6henmeter und neue Wege.<\/p>\n            <a class=\"outline-button\" href=\"#range\" aria-label=\"Explore Open possibilities\">Erkunden<\/a>\n          <\/div>\n        <\/div>\n        <div class=\"word-item\">\n          <h2 class=\"word-claim\">Versatile by design.<\/h2>\n          <div class=\"word-body\">\n            <p data-reveal=\"\">Unauff\u00e4llige integrierte Befestigungen machen NOVA vielseitig: von Asphalt bis zu schnellen Wegen, mit nur einem Fahrrad.<\/p>\n            <a class=\"outline-button\" href=\"#road\" aria-label=\"Explore Versatile by design\">Erkunden<\/a>\n          <\/div>\n        <\/div>\n        <div class=\"word-item\">\n          <h2 class=\"word-claim\">Amplified by technology.<\/h2>\n          <div class=\"word-body\">\n            <p data-reveal=\"\">MAHLE X20 bietet pr\u00e4zise, nat\u00fcrliche Unterst\u00fctzung, ohne den sportlichen Charakter von NOVA zu ver\u00e4ndern. 275 W Spitzenleistung und rund 3,2 kg f\u00fcr das Gesamtsystem. Alle Kabel bleiben verborgen.<\/p>\n            <a class=\"outline-button\" href=\"#x20\" aria-label=\"Explore Amplified by technology\">Erkunden<\/a>\n          <\/div>\n        <\/div>\n        <div class=\"words-rule\" aria-hidden=\"true\"><\/div>\n        <nav class=\"words-links\" aria-label=\"W\u00e4hlen Sie einen Anspruch\">\n          <button class=\"word-link is-active\" type=\"button\">Natural<\/button><span class=\"words-sep\" aria-hidden=\"true\">\/<\/span>\n          <button class=\"word-link\" type=\"button\">Open<\/button><span class=\"words-sep\" aria-hidden=\"true\">\/<\/span>\n          <button class=\"word-link\" type=\"button\">Versatile<\/button><span class=\"words-sep\" aria-hidden=\"true\">\/<\/span>\n          <button class=\"word-link\" type=\"button\">Amplified<\/button>\n        <\/nav>\n      <\/div>\n    <\/section>\n\n    <section class=\"feel\" id=\"feel\" aria-labelledby=\"feel-title\">\n      <div class=\"manifesto-track\">\n        <div class=\"feel-stage\">\n          <figure class=\"feel-photo\" aria-hidden=\"true\">\n            <img loading=\"lazy\" src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-life-07.jpg\" alt=\"\" width=\"2000\" height=\"1333\" loading=\"lazy\" decoding=\"async\">\n          <\/figure>\n          <div class=\"feel-shade\" aria-hidden=\"true\"><\/div>\n          <div class=\"feel-inner\">\n            <div class=\"feel-copy\">\n              <p class=\"feel-kicker\">F\u00fcr Fahrer. Nicht f\u00fcr Passagiere.<\/p>\n              <h2 id=\"feel-title\" data-reveal=\"\">F\u00fchle jeden Moment.<\/h2>\n            <\/div>\n            <div class=\"manifesto-stage\">\n              <p class=\"manifesto-text\">Das erste AURUM E-Bike \u00fcbertr\u00e4gt unsere Performance-DNA auf ein leichtes, klares und vielseitiges Fahrrad. Es tritt nicht f\u00fcr Sie in die Pedale. Es bringt Ihre Kraft, Ihre Strecken und Ihre M\u00f6glichkeiten weiter.<\/p>\n              <span class=\"manifesto-bar\" aria-hidden=\"true\"><\/span>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"machine\" aria-labelledby=\"machine-title\">\n      <div class=\"machine-main\">\n        <div class=\"machine-head\">\n          <div>\n            <p class=\"machine-kicker\">02 \u2014 Die Maschine<\/p>\n            <h2 id=\"machine-title\" data-reveal=\"\">Das volle Fahrgef\u00fchl. Mehr Freiheit.<\/h2>\n          <\/div>\n          <p class=\"machine-lead\" data-reveal=\"\">Es sieht aus wie ein AURUM. Es f\u00e4hrt sich wie ein AURUM. Mit etwas zus\u00e4tzlicher Unterst\u00fctzung f\u00fcr jedes Abenteuer.<\/p>\n        <\/div>\n        <figure class=\"machine-photo\" data-reveal=\"\">\n          <img loading=\"lazy\" src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/novadurace2.webp\" alt=\"NOVA E-Bike, komplette Seitenansicht\" width=\"2400\" height=\"1601\" loading=\"lazy\" decoding=\"async\">\n        <\/figure>\n        <ul class=\"machine-stats\" data-reveal=\"\">\n          <li><strong>11.5 <small class=\"unit\">kg<\/small><\/strong><span>Ca. Gesamtgewicht des Fahrrads*<\/span><\/li>\n          <li><strong>350 <small class=\"unit\">Wh<\/small><\/strong><span>Integrierter Akku<\/span><\/li>\n          <li><strong>38 <small class=\"unit\">mm<\/small><\/strong><span>Maximale Reifenfreiheit<\/span><\/li>\n        <\/ul>\n        <p class=\"machine-note\">*Referenzgewicht; das tats\u00e4chliche Gewicht variiert je nach Rahmengr\u00f6\u00dfe und Ausstattung.<\/p>\n      <\/div>\n    <\/section>\n\n    <section class=\"road\" id=\"road\" aria-label=\"STRASSE und ALLROAD\">\n      <article class=\"road-panel\">\n        <img loading=\"lazy\" src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-road-panel.webp\" alt=\"Radfahrer in wei\u00dfer Kleidung f\u00e4hrt eine sonnenbeschienene Bergstra\u00dfe hinauf\" width=\"1600\" height=\"1067\" loading=\"lazy\" decoding=\"async\">\n        <div class=\"road-copy\">\n          <p class=\"road-label\">01 \/ ASPHALT<\/p>\n          <h2 class=\"road-title\">ROAD.<\/h2>\n          <p class=\"road-text\">Der Rhythmus, den Sie kennen. Die Stra\u00dfen, die Sie lieben. Und die Freiheit, weiterzumachen.<\/p>\n        <\/div>\n      <\/article>\n      <article class=\"road-panel\">\n        <img src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/R5M20442-scaled-1.jpg\" alt=\"Nahaufnahme des wei\u00dfen NOVA-Rahmens mit AURUM-Schriftzug und einem Gravel-Reifen\" loading=\"lazy\" decoding=\"async\">\n        <div class=\"road-copy\">\n          <p class=\"road-label\">02 \/ JENSEITS DES ASPHALTS<\/p>\n          <h2 class=\"road-title\">ALL-ROAD.<\/h2>\n          <p class=\"road-text\">Wenn sich die Stra\u00dfe \u00e4ndert, h\u00f6rt das Abenteuer nicht auf. Entdecken Sie mehr mit Platz f\u00fcr Reifen bis 38 mm.<\/p>\n        <\/div>\n      <\/article>\n    <\/section>\n\n    <section class=\"x20\" id=\"x20\" aria-labelledby=\"x20-title\">\n      <div class=\"x20-head\">\n        <div class=\"x20-copy\">\n          <h2 id=\"x20-title\">Unterst\u00fctzung, die sich nach Radfahren anf\u00fchlt.<\/h2>\n          <p>Das MAHLE X20 ist ein hochwertiges Hinterradnabensystem mit Antriebseinheit, integriertem Akku und Bedieneinheit. Seine direkte Unterst\u00fctzung hilft auf langen Fahrten und Anstiegen und bewahrt zugleich die klare Silhouette und das nat\u00fcrliche Fahrgef\u00fchl von NOVA.<\/p>\n        <\/div>\n        <div class=\"x20-intro\">\n          <figure class=\"x20-intro-photo\">\n            <img src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/aurum9934.webp\" alt=\"Der Fahrer dr\u00fcckt die Steuerung am wei\u00dfen NOVA-Rahmen, wobei die gr\u00fcne Anzeige leuchtet\" loading=\"lazy\" decoding=\"async\">\n          <\/figure>\n          <p class=\"x20-lead\">Sanft. Leise. Nat\u00fcrlich ansprechend. Der MAHLE X20 unterst\u00fctzt Sie bei Bedarf, ohne das Fahrgef\u00fchl zu ver\u00e4ndern.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"x20-media\" data-reveal=\"\">\n        <figure class=\"x20-band\">\n          <img src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-bike-road.jpg\" alt=\"NOVA Rennrad in einer Werkstatt\" loading=\"lazy\" decoding=\"async\">\n        <\/figure>\n        <div class=\"x20-side\">\n          <figure class=\"x20-photo x20-photo--cutout\">\n            <img src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/mahle-x20-motor.webp\" alt=\"MAHLE X20 Hinterradnabenantrieb\" loading=\"lazy\" decoding=\"async\">\n          <\/figure>\n          <div class=\"x20-callout\">\n            <p class=\"x20-value\"><span class=\"count\" data-count=\"3.2\" data-decimals=\"1\">3.2<\/span><small>kg<\/small><\/p>\n            <p class=\"x20-label\">Komplettsystem<\/p>\n            <p class=\"x20-detail\">MAHLE X20<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n      <ul class=\"x20-specs\" aria-label=\"MAHLE X20 Spezifikationen\" data-reveal=\"\">\n        <li class=\"x20-spec\">\n          <p class=\"x20-value\"><span class=\"count\" data-count=\"1.39\" data-decimals=\"2\">1.39<\/span><small>kg<\/small><\/p>\n          <p class=\"x20-label\">Motorgewicht<\/p>\n          <p class=\"x20-detail\">Hinterradnabe<\/p>\n        <\/li>\n        <li class=\"x20-spec\">\n          <p class=\"x20-value\"><span class=\"count\" data-count=\"23\" data-decimals=\"0\">23<\/span><small>Nm<\/small><\/p>\n          <p class=\"x20-label\">Am Hinterrad<\/p>\n          <p class=\"x20-detail\">Entspricht 65 Nm bei einem Mittelmotor<\/p>\n        <\/li>\n        <li class=\"x20-spec\">\n          <p class=\"x20-value\"><span class=\"count\" data-count=\"350\" data-decimals=\"0\">350<\/span><small>Wh<\/small><\/p>\n          <p class=\"x20-label\">Integrierter Akku<\/p>\n          <p class=\"x20-detail\">iX3<\/p>\n        <\/li>\n      <\/ul>\n      <ul class=\"x20-points\" data-reveal=\"\">\n        <li><strong>Unsichtbare Integration.<\/strong> <span>Die klare Silhouette eines AURUM.<\/span><\/li>\n        <li><strong>Nat\u00fcrliches Treten.<\/strong> <span>Progressive, leise Unterst\u00fctzung, die nie die Kontrolle \u00fcbernimmt.<\/span><\/li>\n        <li><strong>Kein Widerstand.<\/strong> <span>Das Rad dreht sich frei, wenn der Motor nicht l\u00e4uft.<\/span><\/li>\n        <li><strong>Gesch\u00fctzter Antriebsstrang.<\/strong> <span>Die zus\u00e4tzliche Kraft wird nicht durch die Kette oder die Kassette geleitet.<\/span><\/li>\n      <\/ul>\n      <div class=\"x20-connect\" data-reveal=\"\">\n        <div class=\"x20-connect-text\">\n          <img loading=\"lazy\" class=\"x20-connect-logo\" src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/logo-app-mysmartbike.jpg\" alt=\"MAHLE My SmartBike App-Logo\" width=\"512\" height=\"512\" loading=\"lazy\" decoding=\"async\">\n          <h3 class=\"x20-connect-title\">Verbunden, um Ihren Weg zu gehen.<\/h3>\n          <p class=\"x20-connect-copy\">Mit der My SmartBike-App von MAHLE k\u00f6nnen Sie die Unterst\u00fctzung personalisieren, NOVA-Fahrdaten \u00fcberpr\u00fcfen, Routen aufzeichnen und das System auf dem neuesten Stand halten. Bluetooth und ANT+ verbinden Leistungs- und Trittfrequenzsensoren mit Apple Watch-Unterst\u00fctzung.<\/p>\n        <\/div>\n        <figure class=\"x20-connect-photo\">\n          <img src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/mahle-my-smartbike-app.webp\" alt=\"Fahrer \u00fcberpr\u00fcft die MAHLE My SmartBike-App auf einem Telefon neben einem wei\u00dfen NOVA-Fahrrad\" loading=\"lazy\" decoding=\"async\">\n        <\/figure>\n      <\/div>\n      <p class=\"x20-note\">Der separat erh\u00e4ltliche externe Akku MAHLE eX1 erh\u00f6ht die Gesamtkapazit\u00e4t um 171 Wh von 350 Wh auf 521 Wh. Je nach Strecke und Unterst\u00fctzungsstufe kann er bis zu 60 km zus\u00e4tzliche Reichweite erm\u00f6glichen.<\/p>\n    <\/section>\n\n    <section class=\"range\" id=\"range\" aria-labelledby=\"range-title\">\n      <figure class=\"range-photo\" aria-hidden=\"true\">\n        <img loading=\"lazy\" src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-life-05.jpg\" alt=\"\" width=\"2000\" height=\"1333\" loading=\"lazy\" decoding=\"async\">\n      <\/figure>\n      <div class=\"range-copy\">\n        <h2 class=\"range-number\" id=\"range-title\">Bis zu <span class=\"count\" data-count=\"140\" data-decimals=\"0\">140<\/span><span class=\"range-unit\">km.<\/span><\/h2>\n        <p>Gesch\u00e4tzte Reichweite aus internen Praxistests mit 2.000 bis 2.300 zur\u00fcckgelegten H\u00f6henmetern.<\/p>\n        <p class=\"range-note\">Gesch\u00e4tzte Zahlen. Die tats\u00e4chliche Reichweite h\u00e4ngt vom Gewicht des Fahrers, der Strecke, der Steigung, der Unterst\u00fctzungsstufe, der Geschwindigkeit, den Reifen, dem Druck, der Temperatur und den Einsatzbedingungen ab.<\/p>\n      <\/div>\n    <\/section>\n\n    <section class=\"gallery\" id=\"gallery\" aria-labelledby=\"gallery-title\">\n      <div class=\"gallery-inner\">\n        <div class=\"gallery-head\">\n          <div>\n            <p class=\"gallery-kicker\">NOVA aus der N\u00e4he \/ 05 Bilder<\/p>\n            <h2 id=\"gallery-title\">Jedes Detail.<br>Jede M\u00f6glichkeit.<\/h2>\n          <\/div>\n          <p class=\"gallery-lead\">Entdecken Sie NOVA durch Fahrgef\u00fchl, Design und Technologie.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"gallery-stage\" tabindex=\"0\" aria-label=\"NOVA-Fotogalerie. Verwenden Sie die Pfeile, um zwischen den Bildern zu wechseln.\">\n        <ul class=\"gallery-grid\">\n          <li class=\"gallery-frame gal-tall\">\n            <img src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-life-03.jpg\" alt=\"Fahrer steht neben einem NOVA-Fahrrad auf offener Stra\u00dfe\" loading=\"lazy\" decoding=\"async\">\n          <\/li>\n          <li class=\"gallery-frame gal-square\">\n            <img src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-life-04.jpg\" alt=\"Nahaufnahme eines Fahrers mit Helm und Sonnenbrille\" loading=\"lazy\" decoding=\"async\">\n          <\/li>\n          <li class=\"gallery-frame gal-wide\">\n            <img src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-life-06.jpg\" alt=\"Ein Fahrer lehnt sich auf einer Bergstra\u00dfe \u00fcber den Lenker eines NOVA-Fahrrads\" loading=\"lazy\" decoding=\"async\">\n          <\/li>\n          <li class=\"gallery-frame gal-wide\">\n            <img src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-life-07.jpg\" alt=\"Fahrer auf einem wei\u00dfen NOVA-Fahrrad auf einer Forststra\u00dfe, in Bewegung\" loading=\"lazy\" decoding=\"async\">\n          <\/li>\n          <li class=\"gallery-frame gal-pano\">\n            <img src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-life-08.jpg\" alt=\"Fahrer auf einem NOVA-Fahrrad auf einer Stra\u00dfe durch trockenes Grasland\" loading=\"lazy\" decoding=\"async\">\n          <\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"gallery-inner gallery-foot\">\n        <div class=\"gallery-controls\">\n          <p class=\"gallery-count\"><span class=\"gallery-now\">01<\/span> \/ 05<\/p>\n          <div class=\"gallery-progress\" aria-hidden=\"true\"><span class=\"gallery-bar\"><\/span><\/div>\n          <div class=\"gallery-arrows\">\n            <button class=\"cfg-step\" type=\"button\" data-gallery-step=\"-1\" aria-label=\"Vorheriges Foto\" disabled=\"\">\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19 12H5m0 0 6-6m-6 6 6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n            <\/button>\n            <button class=\"cfg-step\" type=\"button\" data-gallery-step=\"1\" aria-label=\"N\u00e4chstes Foto\">\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14m0 0-6-6m6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n            <\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n    <section class=\"geometry\" id=\"geometry\" aria-labelledby=\"geometry-title\">\n      <div class=\"geometry-inner\">\n        <h2 id=\"geometry-title\">Finden Sie Ihre nat\u00fcrliche Sitzposition.<\/h2>\n        <p class=\"geometry-lead\">Progressiver Stack, moderater Reach.<\/p>\n        <div class=\"geometry-grid\">\n          <figure class=\"geometry-photo\">\n            <img loading=\"lazy\" src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-geometry-fit.webp\" alt=\"Nahaufnahme des wei\u00dfen NOVA-Rahmens mit der AURUM FDH2-Montierung auf hellgrauem Studiohintergrund\" width=\"1600\" height=\"1067\" loading=\"lazy\" decoding=\"async\">\n          <\/figure>\n          <div class=\"geometry-panel\">\n            <ul class=\"geometry-stats\">\n              <li><strong>420<\/strong><span>Kettenstrebe in mm<\/span><\/li>\n              <li><strong>4<\/strong><span>Rahmengr\u00f6\u00dfen<\/span><\/li>\n              <li><strong>38<\/strong><span>Max. Reifenbreite in mm<\/span><\/li>\n            <\/ul>\n        <p class=\"size-label\">Geometrie nach Gr\u00f6\u00dfe entdecken<\/p>\n        <div class=\"size-picker\" role=\"group\" aria-label=\"Rahmengr\u00f6\u00dfe\">\n          <button class=\"size-button\" type=\"button\" aria-pressed=\"true\">S<\/button>\n          <button class=\"size-button\" type=\"button\" aria-pressed=\"false\">M<\/button>\n          <button class=\"size-button\" type=\"button\" aria-pressed=\"false\">L<\/button>\n          <button class=\"size-button\" type=\"button\" aria-pressed=\"false\">XL<\/button>\n        <\/div>\n        <a class=\"size-guide\" href=\"https:\/\/aurumbikes.com\/de\/grossenhinweis\/\">Gr\u00f6\u00dfenratgeber<\/a>\n      <dl class=\"geometry-table\" aria-label=\"NOVA-Rahmengeometrie nach Gr\u00f6\u00dfe\" data-reveal=\"\">\n        <div class=\"geometry-item\"><dt>Stack<\/dt><dd data-values=\"550 mm,570 mm,590 mm,610 mm\">550 mm<\/dd><\/div>\n        <div class=\"geometry-item\"><dt>Reach<\/dt><dd data-values=\"378 mm,384 mm,391 mm,398 mm\">378 mm<\/dd><\/div>\n        <div class=\"geometry-item\"><dt>Oberrohr<\/dt><dd data-values=\"536 mm,547 mm,560 mm,573 mm\">536 mm<\/dd><\/div>\n        <div class=\"geometry-item\"><dt>Radstand<\/dt><dd data-values=\"1007 mm,1015 mm,1024 mm,1038 mm\">1007 mm<\/dd><\/div>\n        <div class=\"geometry-item\"><dt>Lenkwinkel<\/dt><dd data-values=\"71\u00b0,71.6\u00b0,72\u00b0,72\u00b0\">71\u00b0<\/dd><\/div>\n        <div class=\"geometry-item\"><dt>\u00dcberstandsh\u00f6he<\/dt><dd data-values=\"743 mm,792 mm,805 mm,831 mm\">743 mm<\/dd><\/div>\n      <\/dl>\n      <p class=\"geometry-foot\">Versteckte Kotfl\u00fcgelhalterungen und Taschenhalterungen am Oberrohr. BB386EVO Tretlager, UDH, 27,2 mm Sattelst\u00fctze.<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"tech\" aria-labelledby=\"tech-title\"><div class=\"tech-inner\"><h2 id=\"tech-title\">EINE SPORTLICHE GEOMETRIE F\u00dcR MEHR ZEIT AUF DEM FAHRRAD.<\/h2><div class=\"tech-columns\"><div><h3>ALL-ROAD-VIELSEITIGKEIT<\/h3><ul><li>Reifenfreiheit bis 38 mm<\/li><li>Kompatibel mit 1x- und 2x-Rennradantrieben<\/li><li>Befestigungen f\u00fcr bis zu drei Flaschenhalter<\/li><li>Befestigungen f\u00fcr eine Oberrohrtasche<\/li><li>Versteckte Schutzblechbefestigungen<\/li><\/ul><\/div><div><h3>RAHMEN UND PASSFORM<\/h3><ul><li>Vollst\u00e4ndig interne Kabelf\u00fchrung<\/li><li>1,5-Zoll-Steuersatz<\/li><li>Standard-Vorbauschnittstelle mit 28,6 mm<\/li><li>BB386EVO-Tretlager<\/li><li>UDH-Schaltauge<\/li><li>Runde Sattelst\u00fctze mit 27,2 mm<\/li><li>Vier Rahmengr\u00f6\u00dfen: S, M, L und XL<\/li><\/ul><\/div><div><h3>MAHLE X20-SYSTEM<\/h3><ul><li>Integrierter 350-Wh-Akku<\/li><li>Hinterradnabenmotor<\/li><li>Unterst\u00fctzung mit Drehmomentsensor<\/li><li>Steuereinheit im Oberrohr integriert<\/li><li>Ladeanschluss unter dem Tretlager<\/li><li>Gesamtsystemgewicht ca. 3,2 kg<\/li><\/ul><\/div><\/div><\/div><\/section>\n\n    <section class=\"viewer\" id=\"viewer\" aria-labelledby=\"viewer-title\">\n      <div class=\"viewer-head\">\n        <h2 id=\"viewer-title\">Entdecken Sie NOVA in 3D.<\/h2>\n        <p>Drehen Sie das Fahrrad, \u00fcberpr\u00fcfen Sie die Details und sehen Sie sich den Rahmen von allen Seiten an.<\/p>\n      <\/div>\n      <div class=\"viewer-stage\" id=\"viewer-stage\">\n        <img loading=\"lazy\" class=\"viewer-poster\" src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/nova-poster-glb.jpg\" alt=\"NOVA E-Bike, bereit zum Erkunden in 3D\" width=\"1920\" height=\"951\" loading=\"lazy\" decoding=\"async\">\n      <\/div>\n      <p class=\"viewer-hint\" id=\"viewer-hint\" hidden=\"\">Zum Erkunden ziehen<\/p>\n    <\/section>\n\n    <div class=\"marquee\">\n      <p class=\"visually-hidden\">More ride. Same you.<\/p>\n      <p class=\"marquee-track\" aria-hidden=\"true\"><span>More ride.<\/span><span class=\"sep\">\/<\/span><span>Same you.<\/span><span>More ride.<\/span><span class=\"sep\">\/<\/span><span>Same you.<\/span><span>More ride.<\/span><span class=\"sep\">\/<\/span><span>Same you.<\/span><span>More ride.<\/span><span class=\"sep\">\/<\/span><span>Same you.<\/span><span>More ride.<\/span><span class=\"sep\">\/<\/span><span>Same you.<\/span><span>More ride.<\/span><span class=\"sep\">\/<\/span><span>Same you.<\/span><span>More ride.<\/span><span class=\"sep\">\/<\/span><span>Same you.<\/span><\/p>\n    <\/div>\n\n    <section class=\"buy\" id=\"buy\" aria-label=\"Preis und H\u00e4ndler\">\n      <figure class=\"buy-photo\" aria-hidden=\"true\">\n        <img loading=\"lazy\" src=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/R5M20402-Editar.webp\" alt=\"\" width=\"2400\" height=\"1601\" loading=\"lazy\" decoding=\"async\">\n      <\/figure>\n      <div class=\"buy-shade\" aria-hidden=\"true\"><\/div>\n      <div class=\"buy-inner\">\n        <p class=\"buy-price\">NOVA ab 5.999 \u20ac <span>exkl. MwSt. (NOVA 105, UVP)<\/span><\/p>\n        <div class=\"buy-copy\">\n          <p>Die gesamte Modellpalette kostet je nach Schaltgruppe zwischen 5.999 \u20ac und 8.799 \u20ac zzgl. MwSt.<\/p>\n          <p class=\"buy-note\">Komponenten und Konfiguration beeinflussen den Endpreis.<\/p>\n          <p class=\"buy-note\">Die Preise verstehen sich ohne Lenker und Vorbau, diese sind separat erh\u00e4ltlich.<\/p>\n          <div class=\"buy-actions\">\n            <a class=\"outline-button\" href=\"https:\/\/aurumbikes.com\/de\/nova\/konfigurieren\/?load-preset=148872\">Konfigurieren Sie NOVA<\/a>\n          <\/div>\n          \n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"faq\" id=\"faq\" aria-labelledby=\"faq-title\">\n      <h2 class=\"faq-title\" id=\"faq-title\">H\u00e4ufig gestellte Fragen<\/h2>\n      <div class=\"faq-list\" data-reveal=\"\">\n        <details class=\"faq-item\">\n          <summary>Was f\u00fcr ein Fahrrad ist NOVA?<\/summary>\n          <p>Ein leistungsstarkes All-Road-E-Bike, das Geschwindigkeit, geringes Gewicht, Stabilit\u00e4t und Vielseitigkeit vereint.<\/p>\n        <\/details>\n        <details class=\"faq-item\">\n          <summary>Wie f\u00fchlt sich die Unterst\u00fctzung an?<\/summary>\n          <p>Nat\u00fcrlich und progressiv. Der Drehmomentsensor passt die Motorreaktion an die Kraft an, die Sie bei jedem Pedaltritt aufbringen.<\/p>\n        <\/details>\n        <details class=\"faq-item\">\n          <summary>Kann ich ohne Unterst\u00fctzung fahren?<\/summary>\n          <p>Ja. Sie k\u00f6nnen das System ausschalten und normal pedalieren. Oberhalb von 25 km\/h entkoppelt sich der Motor automatisch.<\/p>\n        <\/details>\n        <details class=\"faq-item\">\n          <summary>Welche Reichweite hat NOVA?<\/summary>\n          <p>Sie h\u00e4ngt von Gel\u00e4nde, H\u00f6henmetern, Fahrergewicht, Bedingungen und Unterst\u00fctzungsstufe ab. In AURUM-Tests absolvierte NOVA Strecken von bis zu 140 km und 2.300 H\u00f6henmetern, \u00fcberwiegend auf der niedrigsten Unterst\u00fctzungsstufe.<\/p>\n        <\/details>\n        <details class=\"faq-item\">\n          <summary>Wie gro\u00df ist die maximale Reifenfreiheit?<\/summary>\n          <p>NOVA nimmt in der Road- und der All-Road-Konfiguration Reifen bis 38 mm auf.<\/p>\n        <\/details>\n        <details class=\"faq-item\">\n          <summary>Ist NOVA mit 1x- und 2x-Antrieben kompatibel?<\/summary>\n          <p>Ja. Die Plattform unterst\u00fctzt je nach gew\u00e4hlter Ausstattung beide Konfigurationen.<\/p>\n        <\/details>\n        <details class=\"faq-item\">\n          <summary>L\u00e4sst sich das Hinterrad einfach ausbauen?<\/summary>\n          <p>Ja. Das MAHLE System stellt beim Wiedereinbau die elektrische Verbindung automatisch her; Kabel m\u00fcssen nicht von Hand angeschlossen werden.<\/p>\n        <\/details>\n        <details class=\"faq-item\">\n          <summary>Kann die Reichweite von NOVA erh\u00f6ht werden?<\/summary>\n          <p>Ja. NOVA ist mit dem separat erh\u00e4ltlichen externen Akku MAHLE eX1 kompatibel. Seine zus\u00e4tzlichen 171 Wh erh\u00f6hen die Gesamtkapazit\u00e4t der Batterie von 350 Wh auf 521 Wh und k\u00f6nnen je nach Strecke und Unterst\u00fctzungsstufe bis zu 60 km zus\u00e4tzliche Reichweite erm\u00f6glichen. Dank der drei Flaschenhalterbefestigungen bleiben bei montiertem Akku zwei Positionen f\u00fcr Trinkflaschen frei.<\/p>\n        <\/details>\n        <details class=\"faq-item\">\n          <summary>Welche Unterst\u00fctzungsmodi bietet NOVA?<\/summary>\n          <p>NOVA bietet drei Unterst\u00fctzungsstufen, deren Leistung, Beschleunigung und Reaktion Sie in der My SmartBike-App anpassen k\u00f6nnen. Der Smart Assist-Modus passt die Unterst\u00fctzung automatisch an Steigung, Fahrergewicht und ben\u00f6tigte Kraft an.<\/p>\n        <\/details>\n      <\/div>\n    <\/section>\n\n    <section class=\"closing\" id=\"warranty\" aria-labelledby=\"closing-title\">\n      <h2 id=\"closing-title\" data-reveal=\"\">Unterst\u00fctzt von AURUM,<br><span>vor und nach dem Verkauf.<\/span><\/h2>\n      <ol class=\"closing-list\">\n        <li data-reveal=\"\">\n          <h3>3 Jahre gesetzliche Gew\u00e4hrleistung.<\/h3>\n          <p>NOVA gew\u00e4hrt drei Jahre gesetzliche Garantie auf Herstellungs-, Material- und Konformit\u00e4tsm\u00e4ngel.<\/p>\n        <\/li>\n        <li data-reveal=\"\">\n          <h3>Begrenzte lebenslange Garantie auf Rahmen und Gabel.<\/h3>\n          <p>Der urspr\u00fcngliche Eigent\u00fcmer kann die Garantie kostenlos in Anspruch nehmen, wenn er das Fahrrad innerhalb von 30 Tagen nach Erhalt auf aurumbikes.com registriert. Sie ist nicht \u00fcbertragbar.<\/p>\n        <\/li>\n        <li data-reveal=\"\">\n          <h3>Nach Ihren W\u00fcnschen aufgebaut.<\/h3>\n          <p>Lenker und Vorbau sind separat erh\u00e4ltlich. Kompatibel mit dem AURUM-Monocoque-Cockpit f\u00fcr ein saubereres, integrierteres Setup.<\/p>\n        <\/li>\n      <\/ol>\n      <div class=\"closing-actions\">\n        <a class=\"outline-button\" href=\"https:\/\/aurumbikes.com\/de\/garantie\/\">Weitere Details<\/a>\n        <a class=\"outline-button\" href=\"https:\/\/aurumbikes.com\/de\/handler\/\">Finden Sie einen H\u00e4ndler<\/a>\n      <\/div>\n    <\/section>\n  <\/div>\n<\/div>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/lenis@1.3.26\/dist\/lenis.min.js\"><\/script>\n<template id=\"nv-viewer-doc\">\n<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>NOVA 3D<\/title>\n<style>\nhtml, body { margin: 0; height: 100%; overflow: hidden; background: #171717; }\n#stage { position: fixed; inset: 0; background: #171717; }\n#stage canvas { display: block; width: 100%; height: 100%; cursor: grab; }\n#stage canvas:active { cursor: grabbing; }\n#status {\n  position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%);\n  margin: 0; color: #878787; font: 600 14px\/1 'Poppins', sans-serif;\n  letter-spacing: .12em; text-transform: uppercase; white-space: nowrap;\n}\n#status.is-hidden { display: none; }\n<\/style>\n<\/head>\n<body>\n<div id=\"stage\"><\/div>\n<p id=\"status\">Loading<\/p>\n\n<script type=\"importmap\">\n{\n  \"imports\": {\n    \"three\": \"https:\/\/unpkg.com\/three@0.160.0\/build\/three.module.js\",\n    \"three\/addons\/\": \"https:\/\/unpkg.com\/three@0.160.0\/examples\/jsm\/\"\n  }\n}\n<\/script>\n<script type=\"module\">\nimport * as THREE from 'three';\nimport { GLTFLoader } from 'three\/addons\/loaders\/GLTFLoader.js';\nimport { DRACOLoader } from 'three\/addons\/loaders\/DRACOLoader.js';\nimport { OrbitControls } from 'three\/addons\/controls\/OrbitControls.js';\nimport { RoomEnvironment } from 'three\/addons\/environments\/RoomEnvironment.js';\n\nconst MODEL_URL = 'https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/NOVA.glb';\nconst BG = '#171717';\n\nconst stage = document.getElementById('stage');\nconst status = document.getElementById('status');\n\nconst renderer = new THREE.WebGLRenderer({ antialias: true });\nrenderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\nrenderer.setSize(stage.clientWidth, stage.clientHeight);\nrenderer.setClearColor(BG, 1);\nstage.appendChild(renderer.domElement);\n\nconst scene = new THREE.Scene();\nscene.background = new THREE.Color(BG);\nconst pmrem = new THREE.PMREMGenerator(renderer);\nscene.environment = pmrem.fromScene(new RoomEnvironment(), 0.04).texture;\nconst key = new THREE.DirectionalLight(0xffffff, 0.6);\nkey.position.set(2, 3, 2);\nscene.add(key);\n\nconst camera = new THREE.PerspectiveCamera(30, stage.clientWidth \/ stage.clientHeight, 0.01, 100);\n\n\/\/ Solo girar: arrastre con el bot\u00f3n izquierdo o un dedo. Sin zoom, sin desplazamiento.\nconst controls = new OrbitControls(camera, renderer.domElement);\ncontrols.enablePan = false;\ncontrols.enableZoom = false;\ncontrols.enableDamping = true;\ncontrols.dampingFactor = 0.08;\ncontrols.rotateSpeed = 0.8;\n\/\/ Giro lento al entrar; se para en cuanto el visitante interact\u00faa, y no gira si el sistema pide menos movimiento.\nconst reduceMotion = matchMedia('(prefers-reduced-motion: reduce)');\ncontrols.autoRotate = !reduceMotion.matches;\ncontrols.autoRotateSpeed = 1.2;\ncontrols.addEventListener('start', () => { controls.autoRotate = false; });\ncontrols.minPolarAngle = Math.PI * 0.12;\ncontrols.maxPolarAngle = Math.PI * 0.88;\ncontrols.mouseButtons = { LEFT: THREE.MOUSE.ROTATE, MIDDLE: null, RIGHT: null };\ncontrols.touches = { ONE: THREE.TOUCH.ROTATE, TWO: null };\n\/\/ Con un dedo gira la bici; el desplazamiento vertical de la p\u00e1gina sigue funcionando.\nrenderer.domElement.style.touchAction = 'pan-y';\n\nrenderer.domElement.addEventListener('contextmenu', (e) => e.preventDefault());\n\n\/\/ La rueda no hace zoom: se reenv\u00eda al desplazamiento de la p\u00e1gina que aloja el visor.\nrenderer.domElement.addEventListener('wheel', (e) => {\n  e.preventDefault();\n  const k = e.deltaMode === 1 ? 16 : (e.deltaMode === 2 ? window.innerHeight : 1);\n  try {\n    if (window.parent && window.parent !== window) window.parent.scrollBy(0, e.deltaY * k);\n  } catch (err) { \/* p\u00e1gina de otro origen: no hay nada que desplazar *\/ }\n}, { passive: false });\n\nlet modelRadius = 0;\nlet modelLength = 0;\n\nfunction requiredDistance() {\n  const vf = THREE.MathUtils.degToRad(camera.fov) \/ 2;\n  const hf = Math.atan(Math.tan(vf) * camera.aspect);\n  return Math.max(modelRadius \/ Math.sin(vf), (modelLength \/ 2) \/ Math.tan(hf)) * 0.8;\n}\n\nfunction frameModel(object) {\n  const box = new THREE.Box3().setFromObject(object);\n  const center = box.getCenter(new THREE.Vector3());\n  const size = box.getSize(new THREE.Vector3());\n  object.position.sub(center);\n  modelRadius = size.length() \/ 2;\n  modelLength = size.x;\n\n  const d = requiredDistance();\n  camera.position.set(d * 0.62, d * 0.22, d * 0.78);\n  camera.near = d \/ 100;\n  camera.far = d * 10;\n  camera.updateProjectionMatrix();\n  controls.target.set(0, 0, 0);\n  controls.update();\n}\n\nfunction resize() {\n  const w = stage.clientWidth;\n  const h = stage.clientHeight;\n  renderer.setSize(w, h);\n  camera.aspect = w \/ h;\n  camera.updateProjectionMatrix();\n  if (modelRadius > 0) {\n    const need = requiredDistance();\n    const offset = camera.position.clone().sub(controls.target);\n    if (offset.length() < need) camera.position.copy(controls.target).add(offset.setLength(need));\n  }\n}\nwindow.addEventListener('resize', resize);\n\n\/\/ El modelo va comprimido con Draco: sin su decodificador, GLTFLoader no puede leerlo.\nconst dracoLoader = new DRACOLoader();\ndracoLoader.setDecoderPath('https:\/\/unpkg.com\/three@0.160.0\/examples\/jsm\/libs\/draco\/gltf\/');\nconst loader = new GLTFLoader();\nloader.setDRACOLoader(dracoLoader);\nloader.load(\n  MODEL_URL,\n  (gltf) => {\n    scene.add(gltf.scene);\n    frameModel(gltf.scene);\n    status.classList.add('is-hidden');\n    if (window.parent && window.parent !== window) window.parent.postMessage('nova3d-ready', '*');\n  },\n  (xhr) => {\n    if (xhr.total) status.textContent = 'Loading ' + Math.round((xhr.loaded \/ xhr.total) * 100) + '%';\n  },\n  () => {\n    status.textContent = 'Das Modell konnte nicht geladen werden';\n  }\n);\n\nlet viewerActive = false;\nconst renderViewer = () => {\n  controls.update();\n  renderer.render(scene, camera);\n};\nconst syncRenderLoop = () => {\n  renderer.setAnimationLoop(viewerActive && document.visibilityState !== 'hidden' ? renderViewer : null);\n};\nwindow.addEventListener('message', (event) => {\n  if (event.source !== window.parent) return;\n  if (event.data === 'nova3d-resume') viewerActive = true;\n  else if (event.data === 'nova3d-pause') viewerActive = false;\n  else return;\n  syncRenderLoop();\n});\ndocument.addEventListener('visibilitychange', syncRenderLoop);\nsyncRenderLoop();\n<\/script>\n<\/body>\n<\/html>\n\n<\/template>\n<script id=\"nv-hybrid-script\">\n(() => {\n  const root = document.querySelector('.nv-hybrid');\n  const cssPx = (name) => parseFloat(getComputedStyle(root).getPropertyValue(name)) || 0;\n  \/\/ The pinned nav and stages take their top from syncStick, which follows the theme header.\n  let TOP = cssPx('--nv-admin');\n  \/\/ Full-bleed width: the viewport without its scrollbar. CSS 100vw would include the scrollbar and overhang the page.\n  const fitFrame = () => {\n    root.style.setProperty('--nv-width', document.documentElement.clientWidth + 'px');\n  };\n  fitFrame();\n  window.addEventListener('load', fitFrame);\n  window.addEventListener('resize', fitFrame, { passive: true });\n  \/\/ The theme header slides away on scroll down and back in on scroll up. The product nav and the pinned stages sit under its lower edge, or at the top of the viewport below the admin bar while it is away.\n  const themeHeader = document.querySelector('.qodef-header-sticky');\n  \/\/ The theme changes the header a moment after a scroll event, so its edge is read again for a short time after each one.\n  let settleUntil = 0;\n  const syncStick = () => {\n    const edge = themeHeader ? themeHeader.getBoundingClientRect().bottom : 0;\n    TOP = Math.max(cssPx('--nv-admin'), Math.min(edge, cssPx('--nv-top') + cssPx('--nv-admin')));\n    root.style.setProperty('--nv-stick', TOP + 'px');\n    if (performance.now() < settleUntil) requestUpdate();\n  };\n  const reduceMotion = matchMedia('(prefers-reduced-motion: reduce)');\n  const desktop = matchMedia('(min-width: 901px)');\n  const clamp = (value, min = 0, max = 1) => Math.min(max, Math.max(min, value));\n  const motionOn = () => desktop.matches && !reduceMotion.matches;\n  const sweepOn = () => !reduceMotion.matches;\n  const productNav = root.querySelector('.product-nav');\n  const productNavMore = root.querySelector('.product-nav-more');\n  const productNavLinks = [...productNav.querySelectorAll('a[href^=\"#\"]')];\n  const productNavTargets = productNavLinks.map((link) => root.querySelector(link.hash)).filter(Boolean);\n  const syncProductNavOverflow = () => {\n    const canScroll = productNav.scrollWidth > productNav.clientWidth + 2;\n    const atEnd = productNav.scrollLeft + productNav.clientWidth >= productNav.scrollWidth - 2;\n    productNavMore.hidden = desktop.matches || !canScroll || atEnd;\n  };\n  const syncCurrentSection = () => {\n    const threshold = TOP + productNav.offsetHeight + 8;\n    let current = null;\n    productNavTargets.forEach((section) => {\n      if (section.getBoundingClientRect().top <= threshold) current = section;\n    });\n    productNavLinks.forEach((link) => {\n      if (current && link.hash === `#${current.id}`) link.setAttribute('aria-current', 'location');\n      else link.removeAttribute('aria-current');\n    });\n  };\n  productNavMore.addEventListener('click', () => {\n    productNav.scrollBy({ left: Math.max(148, productNav.clientWidth * 0.72), behavior: reduceMotion.matches ? 'auto' : 'smooth' });\n  });\n  productNav.addEventListener('scroll', syncProductNavOverflow, { passive: true });\n  syncProductNavOverflow();\n\n  \/\/ Film: plays while on screen and while the visitor wants it. Pauses when it leaves the screen or the tab is hidden.\n  const video = root.querySelector('#hero-film');\n  const control = root.querySelector('.film-control');\n  if (video && control) {\n    const label = control.querySelector('.control-label');\n    let inView = true;\n    let wantsPlay = !reduceMotion.matches;\n    const syncControl = () => {\n      const playing = !video.paused && !video.ended;\n      control.dataset.state = playing ? 'playing' : 'paused';\n      label.textContent = playing ? 'Film anhalten' : 'Film abspielen';\n    };\n    const syncFilm = () => {\n      const shouldPlay = wantsPlay && inView && document.visibilityState !== 'hidden';\n      if (shouldPlay && video.paused) video.play().catch(syncControl);\n      else if (!shouldPlay && !video.paused) video.pause();\n      syncControl();\n    };\n    video.addEventListener('play', syncControl);\n    video.addEventListener('pause', syncControl);\n    video.addEventListener('ended', syncControl);\n    document.addEventListener('visibilitychange', syncFilm);\n    reduceMotion.addEventListener('change', (event) => { wantsPlay = !event.matches; syncFilm(); });\n    control.addEventListener('click', () => { wantsPlay = video.paused; syncFilm(); });\n    if ('IntersectionObserver' in window) {\n      new IntersectionObserver(([entry]) => { inView = entry.isIntersecting; syncFilm(); }, { threshold: 0.1 }).observe(video);\n    }\n    syncFilm();\n  }\n\n  const wordItems = [...root.querySelectorAll('.word-item')];\n  const wordLinks = [...root.querySelectorAll('.word-link')];\n\n  \/\/ The last claim whose row has passed the middle of the viewport is active. Its nav button follows it.\n  const updateWords = () => {\n    const line = innerHeight * 0.5;\n    let active = 0;\n    wordItems.forEach((el, i) => { if (el.getBoundingClientRect().top < line) active = i; });\n    wordItems.forEach((el, i) => el.classList.toggle('is-active', i === active));\n    wordLinks.forEach((el, i) => {\n      el.classList.toggle('is-active', i === active);\n      el.setAttribute('aria-current', i === active ? 'true' : 'false');\n    });\n  };\n\n  \/\/ A nav button scrolls its claim to the reading line. The scroll then sets the active claim, as any scroll does.\n  wordLinks.forEach((link, i) => link.addEventListener('click', () => {\n    const y = Math.max(0, wordItems[i].getBoundingClientRect().top + scrollY - innerHeight * 0.5 + 40);\n    if (lenis) lenis.scrollTo(y, { duration: 1.2 });\n    else window.scrollTo({ top: y, behavior: reduceMotion.matches ? 'auto' : 'smooth' });\n  }));\n\n  \/\/ Share of an element's travel through the viewport, from 0 at its entry to 1 at its exit.\n  const along = (el, vh) => {\n    const rect = el.getBoundingClientRect();\n    return clamp((vh - rect.top) \/ (vh + rect.height));\n  };\n\n  \/\/ Performance DNA: a band of light moves through the words as the copy crosses the screen. The yellow bar tracks the same travel.\n  const BAND = 0.12;\n  const manifestoTrack = root.querySelector('.manifesto-track');\n  const manifestoStage = root.querySelector('.manifesto-stage');\n  const manifestoText = root.querySelector('.manifesto-text');\n  const splitWords = (el) => {\n    const parts = el.textContent.split(' ');\n    el.replaceChildren(...parts.flatMap((word, i) => {\n      const span = Object.assign(document.createElement('span'), { className: 'w', textContent: word });\n      return i < parts.length - 1 ? [span, ' '] : [span];\n    }));\n  };\n  splitWords(manifestoText);\n  const manifestoWords = [...manifestoText.querySelectorAll('.w')];\n  const updateManifesto = (vh) => {\n    \/\/ Colour runs through the first 85% of the pin, so the last word is lit before the stage leaves.\n    const pin = Math.max(1, manifestoTrack.offsetHeight - vh);\n    const progress = clamp(-manifestoTrack.getBoundingClientRect().top \/ (pin * 0.85));\n    manifestoStage.style.setProperty('--p', progress.toFixed(4));\n    const last = manifestoWords.length - 1;\n    manifestoWords.forEach((word, i) => {\n      const start = (i \/ last) * (1 - BAND);\n      const lit = clamp((progress - start) \/ BAND);\n      const v = Math.round(135 + 120 * lit);\n      word.style.color = `rgb(${v}, ${v}, ${v})`;\n    });\n  };\n  const resetManifesto = () => {\n    manifestoStage.style.removeProperty('--p');\n    manifestoWords.forEach((word) => { word.style.color = ''; });\n  };\n\n  const marquee = root.querySelector('.marquee');\n  const geometryPhoto = root.querySelector('.geometry-photo');\n  const x20Band = root.querySelector('.x20-band');\n  const closingList = root.querySelector('.closing-list');\n  \/\/ The strip moves only with its arrows or a swipe, never with the page's scroll. The counter and progress follow the frame in view.\n  const galleryStage = root.querySelector('.gallery-stage');\n  const galleryFrames = [...galleryStage.querySelectorAll('.gallery-frame')];\n  const galleryNow = root.querySelector('.gallery-now');\n  const galleryBar = root.querySelector('.gallery-bar');\n  const galleryPrev = root.querySelector('[data-gallery-step=\"-1\"]');\n  const galleryNext = root.querySelector('[data-gallery-step=\"1\"]');\n  const galleryEdge = () => galleryFrames[0].offsetLeft;\n  \/\/ The frame in view is the last one whose left edge has reached the content edge. At the end of the strip it is the last frame.\n  const galleryIndex = () => {\n    if (galleryStage.scrollLeft + galleryStage.clientWidth >= galleryStage.scrollWidth - 4) return galleryFrames.length - 1;\n    const reach = galleryStage.scrollLeft + galleryEdge() + 4;\n    return Math.max(0, galleryFrames.findLastIndex((frame) => frame.offsetLeft <= reach));\n  };\n  const syncGallery = () => {\n    const index = galleryIndex();\n    galleryNow.textContent = String(index + 1).padStart(2, '0');\n    galleryBar.style.width = `${((index + 1) \/ galleryFrames.length) * 100}%`;\n    galleryPrev.disabled = index === 0;\n    galleryNext.disabled = index === galleryFrames.length - 1;\n  };\n  const galleryStep = (direction) => {\n    const index = Math.min(galleryFrames.length - 1, Math.max(0, galleryIndex() + direction));\n    const reduce = matchMedia('(prefers-reduced-motion: reduce)').matches;\n    galleryStage.scrollTo({ left: galleryFrames[index].offsetLeft - galleryEdge(), behavior: reduce ? 'auto' : 'smooth' });\n  };\n  galleryPrev.addEventListener('click', () => galleryStep(-1));\n  galleryNext.addEventListener('click', () => galleryStep(1));\n  galleryStage.addEventListener('scroll', syncGallery, { passive: true });\n  syncGallery();\n  \/\/ The marquee eases toward its scroll position, so small changes in scroll speed do not show as jumps.\n  let marqueeTarget = 0;\n  let marqueeNow = null;\n  let marqueeGliding = false;\n  const glideMarquee = () => {\n    marqueeGliding = false;\n    if (!motionOn() || document.visibilityState === 'hidden') return;\n    marqueeNow = marqueeNow === null ? marqueeTarget : marqueeNow + (marqueeTarget - marqueeNow) * 0.12;\n    if (Math.abs(marqueeTarget - marqueeNow) < 0.0002) marqueeNow = marqueeTarget;\n    marquee.style.setProperty('--m', marqueeNow.toFixed(5));\n    if (marqueeNow !== marqueeTarget) {\n      marqueeGliding = true;\n      requestAnimationFrame(glideMarquee);\n    }\n  };\n\n  let pending = false;\n  let pendingFrame = 0;\n  const update = () => {\n    pending = false;\n    pendingFrame = 0;\n    if (document.visibilityState === 'hidden') return;\n    syncStick();\n    syncCurrentSection();\n    updateWords();\n    const vh = window.innerHeight;\n    if (sweepOn()) updateManifesto(vh);\n    if (!motionOn()) return;\n    marqueeTarget = along(marquee, vh);\n    if (!marqueeGliding) glideMarquee();\n    geometryPhoto.style.setProperty('--g', along(geometryPhoto, vh).toFixed(4));\n    x20Band.style.setProperty('--y', along(x20Band, vh).toFixed(4));\n    const closingRect = closingList.getBoundingClientRect();\n    closingList.style.setProperty('--draw', clamp((vh - closingRect.top) \/ (vh * 0.4)).toFixed(4));\n  };\n  const requestUpdate = () => {\n    if (pending || document.visibilityState === 'hidden') return;\n    pending = true;\n    pendingFrame = requestAnimationFrame(update);\n  };\n\n  \/\/ Counters: each figure counts up once, when it is mostly visible, and only with motion on.\n  const counters = [...root.querySelectorAll('.count')];\n  const countUp = (el) => {\n    const target = Number(el.dataset.count);\n    const decimals = Number(el.dataset.decimals);\n    const start = performance.now();\n    const duration = 1400;\n    el.textContent = (0).toFixed(decimals);\n    const step = (now) => {\n      const t = clamp((now - start) \/ duration);\n      const eased = 1 - Math.pow(1 - t, 4);\n      el.textContent = (target * eased).toFixed(decimals);\n      if (t < 1) requestAnimationFrame(step);\n      else el.textContent = target.toFixed(decimals);\n    };\n    requestAnimationFrame(step);\n  };\n  if ('IntersectionObserver' in window) {\n    const counterObserver = new IntersectionObserver((entries) => {\n      entries.forEach((entry) => {\n        if (!entry.isIntersecting) return;\n        counterObserver.unobserve(entry.target);\n        if (motionOn()) countUp(entry.target);\n      });\n    }, { threshold: 0.6 });\n    counters.forEach((el) => {\n      counterObserver.observe(el);\n    });\n  }\n\n  const reveals = [...root.querySelectorAll('[data-reveal]')];\n  if ('IntersectionObserver' in window) {\n    const revealObserver = new IntersectionObserver((entries) => {\n      entries.forEach((entry) => {\n        if (!entry.isIntersecting) return;\n        entry.target.classList.add('is-in');\n        revealObserver.unobserve(entry.target);\n      });\n    }, { threshold: 0.15 });\n    reveals.forEach((el) => revealObserver.observe(el));\n  } else {\n    reveals.forEach((el) => el.classList.add('is-in'));\n  }\n\n  \/\/ 3D viewer: the iframe is created once, when the stage comes within 300px of the screen, and the observer is then disconnected. Without IntersectionObserver it is created at once. The hint appears when the viewer reports ready.\n  const viewerStage = root.querySelector('#viewer-stage');\n  if (viewerStage) {\n    const viewerHint = root.querySelector('#viewer-hint');\n    let viewerFrame = null;\n    let viewerIsVisible = false;\n    const syncViewerActivity = () => {\n      if (!viewerFrame?.contentWindow) return;\n      const active = viewerIsVisible && document.visibilityState !== 'hidden';\n      viewerFrame.contentWindow.postMessage(active ? 'nova3d-resume' : 'nova3d-pause', location.origin);\n    };\n    if ('IntersectionObserver' in window) {\n      const activityObserver = new IntersectionObserver(([entry]) => {\n        viewerIsVisible = entry.isIntersecting;\n        syncViewerActivity();\n      }, { threshold: 0.01 });\n      activityObserver.observe(viewerStage);\n    }\n    document.addEventListener('visibilitychange', syncViewerActivity);\n    const loadViewer = () => {\n      viewerFrame = document.createElement('iframe');\n      viewerFrame.title = 'Interactive NOVA 3D viewer';\n      viewerFrame.allow = 'autoplay; xr';\n      viewerFrame.loading = 'eager';\n      viewerFrame.addEventListener('load', syncViewerActivity, { once: true });\n      viewerFrame.srcdoc = document.getElementById('nv-viewer-doc').innerHTML;\n      viewerStage.replaceChildren(viewerFrame);\n    };\n    if ('IntersectionObserver' in window) {\n      const viewerObserver = new IntersectionObserver(([entry]) => {\n        if (!entry.isIntersecting) return;\n        viewerObserver.disconnect();\n        loadViewer();\n      }, { rootMargin: '300px 0px' });\n      viewerObserver.observe(viewerStage);\n    } else {\n      loadViewer();\n    }\n    window.addEventListener('message', (event) => {\n      if (viewerFrame && event.source === viewerFrame.contentWindow && event.data === 'nova3d-ready') viewerHint.hidden = false;\n    });\n  }\n\n  \/\/ Configurator: the drivetrain buttons and the arrows show one bike at a time, with its sub-line.\n  const cfg = root.querySelector('#configurator');\n  if (cfg) {\n    const variantButtons = [...cfg.querySelectorAll('.cfg-variant')];\n    const bikes = [...cfg.querySelectorAll('.cfg-bike')];\n    const subs = [...cfg.querySelectorAll('.cfg-sub')];\n    let current = 0;\n    const showVariant = (index) => {\n      current = (index + bikes.length) % bikes.length;\n      variantButtons.forEach((button, i) => button.setAttribute('aria-pressed', String(i === current)));\n      bikes.forEach((bike, i) => { bike.hidden = i !== current; });\n      subs.forEach((sub, i) => { sub.hidden = i !== current; });\n    };\n    variantButtons.forEach((button, i) => button.addEventListener('click', () => showVariant(i)));\n    cfg.querySelectorAll('.cfg-step').forEach((button) => {\n      button.addEventListener('click', () => showVariant(current + Number(button.dataset.step)));\n    });\n  }\n\n  \/\/ Geometry: the size buttons set the values of the geometry list. S is the default, set in the HTML.\n  const sizeButtons = [...root.querySelectorAll('.size-button')];\n  const sizeValues = [...root.querySelectorAll('[data-values]')];\n  sizeButtons.forEach((button, index) => {\n    button.addEventListener('click', () => {\n      sizeButtons.forEach((other, i) => other.setAttribute('aria-pressed', String(i === index)));\n      sizeValues.forEach((cell) => { cell.textContent = cell.dataset.values.split(',')[index]; });\n    });\n  });\n\n  \/\/ Smooth scroll on desktop with motion: Lenis moves the native scroll position, so scroll events and the sticky stages keep working.\n  let lenis = null;\n  \/\/ Smooth same-page anchors while preserving history and the user's motion preference.\n  root.addEventListener('click', (event) => {\n    const link = event.target.closest('a[href^=\"#\"]');\n    if (!link || !root.contains(link) || event.defaultPrevented || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || link.hasAttribute('download') || (link.target && link.target !== '_self')) return;\n    const hash = link.getAttribute('href');\n    if (!hash || hash === '#') return;\n    const target = document.getElementById(hash.slice(1));\n    if (!target || !root.contains(target)) return;\n    event.preventDefault();\n    if (location.hash !== hash) history.pushState(null, '', hash);\n    const offset = parseFloat(getComputedStyle(target).scrollMarginTop) || 0;\n    const destination = Math.max(0, target.getBoundingClientRect().top + window.scrollY - offset);\n    if (lenis && !reduceMotion.matches) lenis.scrollTo(destination, { duration: 1.05 });\n    else window.scrollTo({ top: destination, behavior: reduceMotion.matches ? 'instant' : 'smooth' });\n    if (!target.hasAttribute('tabindex')) target.setAttribute('tabindex', '-1');\n    target.focus({ preventScroll: true });\n  });\n\n  const startLenis = () => {\n    if (lenis || !window.Lenis || !motionOn() || document.visibilityState === 'hidden') return;\n    lenis = new window.Lenis({ autoRaf: true });\n  };\n  const stopLenis = () => {\n    if (!lenis) return;\n    lenis.destroy();\n    lenis = null;\n  };\n  const syncMotion = () => {\n    const on = motionOn();\n    root.classList.toggle('motion', on);\n    root.classList.toggle('sweep', sweepOn());\n    if (on) startLenis();\n    else stopLenis();\n    if (!sweepOn()) resetManifesto();\n    requestUpdate();\n  };\n  desktop.addEventListener('change', syncMotion);\n  reduceMotion.addEventListener('change', syncMotion);\n  document.addEventListener('visibilitychange', () => {\n    if (document.visibilityState === 'hidden') {\n      if (pendingFrame) cancelAnimationFrame(pendingFrame);\n      pending = false;\n      pendingFrame = 0;\n      stopLenis();\n      return;\n    }\n    if (motionOn()) startLenis();\n    requestUpdate();\n  });\n  window.addEventListener('scroll', () => { settleUntil = performance.now() + 800; requestUpdate(); }, { passive: true });\n  window.addEventListener('resize', () => {\n    syncProductNavOverflow();\n    syncGallery();\n    requestUpdate();\n  }, { passive: true });\n  syncMotion();\n})();\n<\/script>\n\n<script data-nova-preset-sync>(function(){var r=document.querySelector('.nv-hybrid');if(!r)return;var road='https:\/\/aurumbikes.com\/de\/nova\/konfigurieren\/?load-preset=148872',all='https:\/\/aurumbikes.com\/de\/nova\/konfigurieren\/?load-preset=148878';function sync(){var a=r.querySelector('.cfg-variant[aria-pressed=\"true\"]');var t=(a&&\/ALL-ROAD\/i.test(a.textContent))?all:road;r.querySelectorAll('.cfg-configure,.buy-actions a').forEach(function(x){x.href=t;});}r.querySelectorAll('.cfg-variant,.cfg-step').forEach(function(b){b.addEventListener('click',function(){setTimeout(sync,0);});});sync();})();<\/script>","protected":false},"excerpt":{"rendered":"<p>Zum Inhalt springen NOVA, das All-Road-E-Bike von AURUM MORE RIDE. SAME YOU. Entdecken Sie NOVA Finden Sie einen H\u00e4ndler Film anhalten Das NOVA KonzeptMotor und Unterst\u00fctzungAkku und ReichweiteGeometrie und Gr\u00f6\u00dfenIn 3D entdeckenPreis und Konfiguration ROAD ALL-ROAD NOVA Road-Konfiguration All-Road-Konfiguration Ab 5.999 \u20ac (exkl. MwSt.) Konfigurieren MORE RIDE. SAME YOU. NOVA ist das erste E-Bike von [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>NOVA All-Road-E-Bike | AURUM<\/title>\n<meta name=\"description\" content=\"Entdecke NOVA, das All-Road-E-Bike von AURUM mit MAHLE-X20-Antrieb, 350-Wh-Akku und Reifenfreiheit bis 38 mm. Entdecke die Ausstattungen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/aurumbikes.com\/de\/nova\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NOVA All-Road-E-Bike | AURUM\" \/>\n<meta property=\"og:description\" content=\"Entdecke NOVA, das All-Road-E-Bike von AURUM mit MAHLE-X20-Antrieb, 350-Wh-Akku und Reifenfreiheit bis 38 mm. Entdecke die Ausstattungen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/aurumbikes.com\/de\/nova\/\" \/>\n<meta property=\"og:site_name\" content=\"Aurum Bikes\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/AURUMbikes\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-03T10:21:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/novadurace2.webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"10\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/aurumbikes.com\/de\/nova\/\",\"url\":\"https:\/\/aurumbikes.com\/de\/nova\/\",\"name\":\"NOVA All-Road-E-Bike | AURUM\",\"isPartOf\":{\"@id\":\"https:\/\/aurumbikes.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/aurumbikes.com\/de\/nova\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/aurumbikes.com\/de\/nova\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/novadurace2.webp\",\"datePublished\":\"2026-11-03T07:59:00+00:00\",\"dateModified\":\"2026-11-03T10:21:18+00:00\",\"description\":\"Entdecke NOVA, das All-Road-E-Bike von AURUM mit MAHLE-X20-Antrieb, 350-Wh-Akku und Reifenfreiheit bis 38 mm. Entdecke die Ausstattungen.\",\"breadcrumb\":{\"@id\":\"https:\/\/aurumbikes.com\/de\/nova\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/aurumbikes.com\/de\/nova\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/aurumbikes.com\/de\/nova\/#primaryimage\",\"url\":\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/novadurace2.webp\",\"contentUrl\":\"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/novadurace2.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/aurumbikes.com\/de\/nova\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/aurumbikes.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"NOVA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/aurumbikes.com\/es\/#website\",\"url\":\"https:\/\/aurumbikes.com\/es\/\",\"name\":\"Aurum Bikes\",\"description\":\"Born From Experience\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/aurumbikes.com\/es\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"NOVA All-Road-E-Bike | AURUM","description":"Entdecke NOVA, das All-Road-E-Bike von AURUM mit MAHLE-X20-Antrieb, 350-Wh-Akku und Reifenfreiheit bis 38 mm. Entdecke die Ausstattungen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/aurumbikes.com\/de\/nova\/","og_locale":"de_DE","og_type":"article","og_title":"NOVA All-Road-E-Bike | AURUM","og_description":"Entdecke NOVA, das All-Road-E-Bike von AURUM mit MAHLE-X20-Antrieb, 350-Wh-Akku und Reifenfreiheit bis 38 mm. Entdecke die Ausstattungen.","og_url":"https:\/\/aurumbikes.com\/de\/nova\/","og_site_name":"Aurum Bikes","article_publisher":"https:\/\/www.facebook.com\/AURUMbikes","article_modified_time":"2026-11-03T10:21:18+00:00","og_image":[{"url":"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/novadurace2.webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"10\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/aurumbikes.com\/de\/nova\/","url":"https:\/\/aurumbikes.com\/de\/nova\/","name":"NOVA All-Road-E-Bike | AURUM","isPartOf":{"@id":"https:\/\/aurumbikes.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/aurumbikes.com\/de\/nova\/#primaryimage"},"image":{"@id":"https:\/\/aurumbikes.com\/de\/nova\/#primaryimage"},"thumbnailUrl":"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/novadurace2.webp","datePublished":"2026-11-03T07:59:00+00:00","dateModified":"2026-11-03T10:21:18+00:00","description":"Entdecke NOVA, das All-Road-E-Bike von AURUM mit MAHLE-X20-Antrieb, 350-Wh-Akku und Reifenfreiheit bis 38 mm. Entdecke die Ausstattungen.","breadcrumb":{"@id":"https:\/\/aurumbikes.com\/de\/nova\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/aurumbikes.com\/de\/nova\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/aurumbikes.com\/de\/nova\/#primaryimage","url":"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/novadurace2.webp","contentUrl":"https:\/\/aurumbikes.com\/wp-content\/uploads\/2026\/10\/novadurace2.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/aurumbikes.com\/de\/nova\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/aurumbikes.com\/"},{"@type":"ListItem","position":2,"name":"NOVA"}]},{"@type":"WebSite","@id":"https:\/\/aurumbikes.com\/es\/#website","url":"https:\/\/aurumbikes.com\/es\/","name":"Aurum Bikes","description":"Born From Experience","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/aurumbikes.com\/es\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"}]}},"_links":{"self":[{"href":"https:\/\/aurumbikes.com\/de\/wp-json\/wp\/v2\/pages\/148615"}],"collection":[{"href":"https:\/\/aurumbikes.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aurumbikes.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aurumbikes.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aurumbikes.com\/de\/wp-json\/wp\/v2\/comments?post=148615"}],"version-history":[{"count":15,"href":"https:\/\/aurumbikes.com\/de\/wp-json\/wp\/v2\/pages\/148615\/revisions"}],"predecessor-version":[{"id":149041,"href":"https:\/\/aurumbikes.com\/de\/wp-json\/wp\/v2\/pages\/148615\/revisions\/149041"}],"wp:attachment":[{"href":"https:\/\/aurumbikes.com\/de\/wp-json\/wp\/v2\/media?parent=148615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}