{"product_id":"the-umbra","title":"The Umbra","description":"\u003cscript\u003e\n  (function(){\n    var pathCode = (window.location.pathname || '').split('\/').filter(Boolean)[0];\n    var shopifyLocale = (window.Shopify \u0026\u0026 window.Shopify.locale) || '';\n    var htmlLang = (document.documentElement.getAttribute('lang') || '');\n    var language = (pathCode || shopifyLocale || htmlLang || '').toLowerCase();\n\n    if (language.indexOf('nl') === 0) {\n      document.documentElement.classList.add('relic-locale-nl');\n    }\n  })();\n\u003c\/script\u003e\n\n\u003cstyle\u003e\n  .relic-product-umbra,\n  .relic-product-umbra *{\n    box-sizing:border-box;\n  }\n\n  \/* =============================================================================\n     RELIC — UMBRA PRODUCT PAGE DEEP BLACK BACKGROUND LOCK\n  ============================================================================= *\/\n\n  html:has(.relic-product-umbra),\n  body:has(.relic-product-umbra),\n  body:has(.relic-product-umbra) #MainContent,\n  body:has(.relic-product-umbra) main,\n  body:has(.relic-product-umbra) .content-for-layout{\n    background:#030304 !important;\n    background-color:#030304 !important;\n    background-image:none !important;\n  }\n\n  .shopify-section:has(.relic-product-umbra),\n  .shopify-section:has(.relic-product-umbra) \u003e *,\n  .shopify-section:has(.relic-product-umbra) .section,\n  .shopify-section:has(.relic-product-umbra) .section-background{\n    background:#030304 !important;\n    background-color:#030304 !important;\n    background-image:none !important;\n    border-color:rgba(183,122,42,.12) !important;\n    overflow:visible !important;\n  }\n\n  body:has(.relic-product-umbra) :is(\n    .product,\n    .product-page,\n    .product__container,\n    .product__media-wrapper,\n    .product__info-wrapper,\n    .product-information,\n    .product-information__grid,\n    .product-information__wrapper,\n    .product__info-container,\n    .product-media-container,\n    media-gallery,\n    product-info\n  ){\n    background:#030304 !important;\n    background-color:#030304 !important;\n    background-image:none !important;\n    box-shadow:none !important;\n  }\n\n  body:has(.relic-product-umbra) :is(\n    .product__media,\n    .product-media,\n    .product-media-modal,\n    .product-media-gallery,\n    .product__media-list,\n    .product__media-item,\n    .product__media-container,\n    .media-gallery,\n    .media-gallery__grid,\n    .media-gallery__item\n  ){\n    background:#030304 !important;\n    background-color:#030304 !important;\n    background-image:none !important;\n  }\n\n  body:has(.relic-product-umbra) :is(\n    .product-form,\n    .product-form__input,\n    .product-form__buttons,\n    .product-form__quantity,\n    .quantity,\n    .variant-picker,\n    .variant-option,\n    .buy-buttons,\n    .price,\n    .product-price,\n    .product__title\n  ){\n    background:transparent !important;\n    background-color:transparent !important;\n  }\n\n  body:has(.relic-product-umbra) :is(\n    .section,\n    .shopify-section,\n    .product,\n    .product-information__grid\n  )::before,\n  body:has(.relic-product-umbra) :is(\n    .section,\n    .shopify-section,\n    .product,\n    .product-information__grid\n  )::after{\n    background-color:#030304 !important;\n    border-color:rgba(183,122,42,.12) !important;\n    box-shadow:none !important;\n  }\n\n  \/* =============================================================================\n     RELIC — REMOVE SHOPIFY NOISE\n  ============================================================================= *\/\n\n  body:has(.relic-product-umbra) :is(\n    .scroll-to-top,\n    .back-to-top,\n    .back-to-top-button,\n    button[aria-label*=\"top\" i],\n    a[aria-label*=\"top\" i]\n  ){\n    display:none !important;\n  }\n\n  body:has(.relic-product-umbra) .product__info-container \u003e .rte:not(:has(.relic-product-umbra)),\n  body:has(.relic-product-umbra) .product__info-container \u003e .product__text,\n  body:has(.relic-product-umbra) .product-information__text,\n  body:has(.relic-product-umbra) .product__description-short,\n  body:has(.relic-product-umbra) .product__tax,\n  body:has(.relic-product-umbra) .product__pickup-availabilities{\n    display:none !important;\n  }\n\n  body:has(.relic-product-umbra) :is(\n    .related-products h2,\n    .product-recommendations h2,\n    .complementary-products h2\n  ){\n    font-size:0 !important;\n    line-height:0 !important;\n  }\n\n  body:has(.relic-product-umbra) :is(\n    .related-products h2,\n    .product-recommendations h2,\n    .complementary-products h2\n  )::after{\n    content:\"COMPLETE THE SYSTEM\";\n    display:block;\n    font-size:clamp(2rem, 5vw, 4rem);\n    line-height:1;\n    letter-spacing:-.03em;\n    text-transform:uppercase;\n    color:rgba(233,230,223,.86);\n    font-weight:900;\n  }\n\n  html.relic-locale-nl body:has(.relic-product-umbra) :is(\n    .related-products h2,\n    .product-recommendations h2,\n    .complementary-products h2\n  )::after,\n  html[lang^=\"nl\"] body:has(.relic-product-umbra) :is(\n    .related-products h2,\n    .product-recommendations h2,\n    .complementary-products h2\n  )::after{\n    content:\"VOLTOOI HET SYSTEEM\";\n  }\n\n  \/* =============================================================================\n     RELIC — RESTORE STICKY PRODUCT MEDIA\n  ============================================================================= *\/\n\n  html:has(.relic-product-umbra),\n  body:has(.relic-product-umbra){\n    overflow-x:clip !important;\n  }\n\n  body:has(.relic-product-umbra) #MainContent,\n  body:has(.relic-product-umbra) main,\n  body:has(.relic-product-umbra) .content-for-layout,\n  body:has(.relic-product-umbra) .product,\n  body:has(.relic-product-umbra) .product__container,\n  body:has(.relic-product-umbra) .product-information,\n  body:has(.relic-product-umbra) .product-information__grid{\n    overflow:visible !important;\n    overflow-x:visible !important;\n  }\n\n  @media screen and (min-width:990px){\n    body:has(.relic-product-umbra) :is(\n      .product__media-wrapper,\n      .product-media-container,\n      .product__media-container,\n      media-gallery,\n      .media-gallery,\n      .product-media-gallery\n    ){\n      position:sticky !important;\n      top:96px !important;\n      align-self:flex-start !important;\n      height:max-content !important;\n      z-index:2 !important;\n    }\n  }\n\n  \/* =============================================================================\n     RELIC — UMBRA PRODUCT BLOCK\n  ============================================================================= *\/\n\n  .relic-product-umbra{\n    --relic-bg:#030304;\n    --relic-panel:#07080a;\n    --relic-panel-2:#0b0d10;\n    --relic-text:#e9e6df;\n    --relic-muted:#a8a39a;\n    --relic-dim:#706b63;\n    --relic-bronze:#b77a2a;\n    --relic-amber:#d3a35c;\n    --relic-line:#1f2228;\n\n    --relic-steel:#45484d;\n    --relic-steel-bright:#777b82;\n    --relic-steel-muted:#8a8982;\n    --relic-steel-deep:#111318;\n    --relic-obsidian:#050506;\n\n    position:relative;\n    width:100%;\n    max-width:620px;\n    margin:0 auto;\n    color:var(--relic-text);\n    font-family:Arial, Helvetica, sans-serif;\n    line-height:1.75;\n    background:transparent !important;\n    isolation:isolate;\n    overflow:visible;\n    backface-visibility:hidden;\n    transform:translateZ(0);\n  }\n\n  .relic-product-umbra::before{\n    content:\"\";\n    position:absolute;\n    inset:-72px -54px;\n    pointer-events:none;\n    z-index:0;\n    border-radius:46px;\n    background:\n      radial-gradient(620px 320px at 88% 14%, rgba(69,72,77,.34), transparent 60%),\n      radial-gradient(480px 260px at 58% 38%, rgba(17,19,24,.42), transparent 68%),\n      radial-gradient(280px 170px at 12% 8%, rgba(211,163,92,.052), transparent 72%),\n      radial-gradient(420px 240px at 50% 0%, rgba(183,122,42,.045), transparent 74%),\n      linear-gradient(180deg, rgba(3,3,4,0), rgba(3,3,4,.10));\n    filter:blur(28px);\n    opacity:.86;\n    animation:relicUmbraSteelPressure 18s ease-in-out infinite alternate;\n    -webkit-mask-image:radial-gradient(\n      ellipse at 58% 36%,\n      rgba(0,0,0,1) 0%,\n      rgba(0,0,0,1) 50%,\n      rgba(0,0,0,.74) 72%,\n      rgba(0,0,0,0) 100%\n    );\n    mask-image:radial-gradient(\n      ellipse at 58% 36%,\n      rgba(0,0,0,1) 0%,\n      rgba(0,0,0,1) 50%,\n      rgba(0,0,0,.74) 72%,\n      rgba(0,0,0,0) 100%\n    );\n  }\n\n  .relic-product-umbra::after{\n    content:\"\";\n    position:absolute;\n    inset:-24px -18px;\n    pointer-events:none;\n    z-index:0;\n    border-radius:38px;\n    background:\n      radial-gradient(220px 150px at 0% 0%, rgba(3,3,4,.98), transparent 74%),\n      radial-gradient(220px 150px at 100% 0%, rgba(3,3,4,.98), transparent 74%),\n      radial-gradient(220px 150px at 0% 100%, rgba(3,3,4,.98), transparent 74%),\n      radial-gradient(220px 150px at 100% 100%, rgba(3,3,4,.98), transparent 74%),\n      linear-gradient(115deg, rgba(119,123,130,0), rgba(119,123,130,.055), rgba(211,163,92,.024), rgba(119,123,130,0));\n    background-size:auto, auto, auto, auto, 260% 100%;\n    filter:blur(2px);\n    opacity:.40;\n    animation:relicUmbraCutLine 17s ease-in-out infinite;\n  }\n\n  .relic-product-umbra \u003e *{\n    position:relative;\n    z-index:1;\n  }\n\n  .relic-product-umbra .relic-reveal{\n    opacity:0;\n    transform:translate3d(0, 15px, 0) scale(.994);\n    filter:blur(5px);\n    transition:\n      opacity .82s cubic-bezier(.19,1,.22,1),\n      transform .82s cubic-bezier(.19,1,.22,1),\n      filter .82s cubic-bezier(.19,1,.22,1);\n    transition-delay:var(--relic-delay, 0ms);\n    will-change:opacity, transform, filter;\n  }\n\n  .relic-product-umbra.is-loaded .relic-reveal.is-visible,\n  .relic-product-umbra.is-loaded .relic-reveal.relic-load-visible{\n    opacity:1;\n    transform:translate3d(0,0,0) scale(1);\n    filter:blur(0);\n  }\n\n  .relic-product-umbra.relic-cut-lock::before{\n    animation:relicUmbraLock .72s cubic-bezier(.19,1,.22,1) both !important;\n  }\n\n  @keyframes relicUmbraSteelPressure{\n    0%{\n      opacity:.66;\n      transform:translate3d(-2px,-1px,0) scale(1);\n    }\n    100%{\n      opacity:.88;\n      transform:translate3d(3px,2px,0) scale(1.006);\n    }\n  }\n\n  @keyframes relicUmbraCutLine{\n    0%{\n      background-position:0 0, 0 0, 0 0, 0 0, 0% 50%;\n      opacity:.26;\n    }\n    50%{\n      background-position:0 0, 0 0, 0 0, 0 0, 100% 50%;\n      opacity:.46;\n    }\n    100%{\n      background-position:0 0, 0 0, 0 0, 0 0, 0% 50%;\n      opacity:.30;\n    }\n  }\n\n  @keyframes relicUmbraLock{\n    0%{\n      opacity:.68;\n      transform:scale(1);\n    }\n    38%{\n      opacity:.96;\n      transform:scale(1.012);\n    }\n    100%{\n      opacity:.86;\n      transform:scale(1);\n    }\n  }\n\n  @keyframes relicUmbraLine{\n    0%{\n      background-position:0% 50%;\n      opacity:.72;\n    }\n    50%{\n      background-position:100% 50%;\n      opacity:1;\n    }\n    100%{\n      background-position:0% 50%;\n      opacity:.72;\n    }\n  }\n\n  @keyframes relicUmbraOpen{\n    from{\n      opacity:0;\n      transform:translateY(-5px);\n    }\n    to{\n      opacity:1;\n      transform:translateY(0);\n    }\n  }\n\n  .relic-product-topline{\n    width:104px;\n    height:1px;\n    margin:0 0 18px;\n    background:linear-gradient(\n      90deg,\n      rgba(69,72,77,0),\n      rgba(119,123,130,.74),\n      rgba(211,163,92,.78),\n      rgba(69,72,77,0)\n    );\n    background-size:220% 100%;\n    animation:relicUmbraLine 13s ease-in-out infinite;\n    box-shadow:\n      0 0 22px rgba(119,123,130,.16),\n      0 0 16px rgba(211,163,92,.12);\n  }\n\n  .relic-product-kicker{\n    margin:0 0 12px;\n    color:rgba(211,163,92,.86);\n    font-size:10px;\n    line-height:1;\n    letter-spacing:.34em;\n    text-transform:uppercase;\n    font-weight:700;\n  }\n\n  .relic-product-mini-title{\n    margin:0;\n    color:rgba(233,230,223,.96);\n    font-size:18px;\n    line-height:1.25;\n    letter-spacing:.18em;\n    text-transform:uppercase;\n    font-weight:800;\n    text-shadow:\n      0 18px 48px rgba(0,0,0,.78),\n      0 0 26px rgba(119,123,130,.10);\n  }\n\n  .relic-product-tagline{\n    margin:14px 0 0;\n    color:rgba(138,137,130,.88);\n    font-size:11px;\n    letter-spacing:.26em;\n    text-transform:uppercase;\n  }\n\n  .relic-product-statement{\n    margin:22px 0 0;\n    padding:20px 0 0;\n    border-top:1px solid rgba(119,123,130,.18);\n    color:rgba(233,230,223,.96);\n    font-size:18px;\n    line-height:1.75;\n    max-width:52ch;\n  }\n\n  .relic-product-seo-summary{\n    margin:18px 0 0;\n    padding:18px 18px 16px;\n    border-radius:22px;\n    background:\n      radial-gradient(circle at 12% 0%, rgba(119,123,130,.14), transparent 46%),\n      linear-gradient(180deg, rgba(8,9,11,.82), rgba(3,3,4,.96));\n    border:1px solid rgba(119,123,130,.14);\n    color:rgba(174,172,166,.94);\n    font-size:13.5px;\n    line-height:1.85;\n  }\n\n  .relic-product-seo-summary strong{\n    color:rgba(233,230,223,.96);\n    font-weight:700;\n  }\n\n  .relic-product-statement strong,\n  .relic-hi{\n    color:rgba(211,163,92,.96);\n    font-weight:700;\n    text-shadow:0 0 18px rgba(211,163,92,.10);\n  }\n\n  .relic-inline-link{\n    color:rgba(211,163,92,.94);\n    text-decoration:underline;\n    text-decoration-color:rgba(211,163,92,.34);\n    text-underline-offset:3px;\n    text-decoration-thickness:1px;\n    transition:\n      color .22s ease,\n      text-decoration-color .22s ease;\n  }\n\n  .relic-inline-link:hover{\n    color:rgba(233,230,223,.96);\n    text-decoration-color:rgba(211,163,92,.78);\n  }\n\n  \/* =============================================================================\n     RELIC — AVAILABILITY \/ FULFILLMENT STATUS\n  ============================================================================= *\/\n\n  .relic-availability-status{\n    position:relative;\n    margin:18px 0 0;\n    overflow:hidden;\n    border-radius:24px;\n    padding:22px 22px 20px;\n    background:\n      radial-gradient(circle at 12% 0%, rgba(119,123,130,.20), transparent 42%),\n      radial-gradient(circle at 92% 0%, rgba(211,163,92,.080), transparent 36%),\n      linear-gradient(180deg, rgba(8,9,11,.96), rgba(3,3,4,1));\n    border:0 !important;\n    outline:0 !important;\n    box-shadow:\n      0 34px 106px rgba(0,0,0,.62),\n      0 0 72px rgba(119,123,130,.065),\n      inset 0 1px 0 rgba(255,255,255,.018);\n  }\n\n  .relic-availability-status::before{\n    content:\"\";\n    position:absolute;\n    inset:0;\n    pointer-events:none;\n    background:\n      linear-gradient(90deg, rgba(119,123,130,.12), transparent 38%, rgba(211,163,92,.06)),\n      radial-gradient(ellipse at 50% 100%, rgba(183,122,42,.08), transparent 70%);\n    opacity:.86;\n  }\n\n  .relic-availability-status::after{\n    content:none !important;\n    display:none !important;\n  }\n\n  .relic-availability-inner{\n    position:relative;\n    z-index:1;\n  }\n\n  .relic-availability-kicker{\n    margin:0 0 10px;\n    color:rgba(211,163,92,.86);\n    font-size:10px;\n    line-height:1.2;\n    letter-spacing:.30em;\n    text-transform:uppercase;\n    font-weight:800;\n  }\n\n  .relic-availability-title{\n    margin:0;\n    color:rgba(233,230,223,.96);\n    font-size:15px;\n    line-height:1.55;\n    letter-spacing:.08em;\n    text-transform:uppercase;\n    font-weight:800;\n  }\n\n  .relic-availability-text{\n    margin:10px 0 0;\n    color:rgba(174,172,166,.94);\n    font-size:13.5px;\n    line-height:1.85;\n    max-width:54ch;\n  }\n\n  .relic-availability-grid{\n    display:grid;\n    grid-template-columns:1fr 1fr;\n    gap:10px;\n    margin-top:16px;\n  }\n\n  .relic-availability-chip{\n    border-radius:16px;\n    padding:13px 14px;\n    background:\n      radial-gradient(circle at 18% 0%, rgba(119,123,130,.14), transparent 54%),\n      linear-gradient(180deg, rgba(8,9,11,.84), rgba(3,3,4,.96));\n    border:1px solid rgba(211,163,92,.12);\n  }\n\n  .relic-availability-chip span{\n    display:block;\n    margin-bottom:5px;\n    color:rgba(168,163,154,.84);\n    font-size:9px;\n    letter-spacing:.22em;\n    text-transform:uppercase;\n    line-height:1.35;\n  }\n\n  .relic-availability-chip strong{\n    display:block;\n    color:rgba(233,230,223,.94);\n    font-size:12.5px;\n    line-height:1.45;\n    font-weight:700;\n    letter-spacing:.04em;\n  }\n\n  .relic-product-copy{\n    margin:22px 0 0;\n    color:rgba(174,172,166,.94);\n    font-size:14.5px;\n    line-height:1.9;\n    max-width:58ch;\n  }\n\n  .relic-product-copy p{\n    margin:0 0 14px;\n  }\n\n  .relic-product-copy p:last-child{\n    margin-bottom:0;\n  }\n\n  .relic-product-divider{\n    height:1px;\n    margin:24px 0;\n    opacity:.95;\n    background:linear-gradient(\n      90deg,\n      rgba(69,72,77,0),\n      rgba(119,123,130,.24),\n      rgba(211,163,92,.18),\n      rgba(69,72,77,0)\n    );\n    background-size:220% 100%;\n    animation:relicUmbraLine 15s ease-in-out infinite;\n    box-shadow:0 0 20px rgba(119,123,130,.08);\n  }\n\n  \/* =============================================================================\n     RELIC — RITUAL CARDS\n  ============================================================================= *\/\n\n  .relic-product-ritual{\n    display:grid;\n    grid-template-columns:1fr 1fr;\n    gap:16px;\n    margin-top:18px;\n  }\n\n  .relic-ritual-card{\n    border-radius:20px;\n    padding:18px;\n    background:\n      radial-gradient(circle at 20% 0%, rgba(119,123,130,.13), transparent 54%),\n      linear-gradient(180deg, rgba(8,9,11,.92), rgba(3,3,4,.98));\n    border:1px solid rgba(119,123,130,.14);\n    box-shadow:\n      0 30px 86px rgba(0,0,0,.48),\n      0 0 54px rgba(119,123,130,.040),\n      inset 0 1px 0 rgba(255,255,255,.014);\n  }\n\n  .relic-ritual-title{\n    margin:0 0 10px;\n    color:rgba(211,163,92,.92);\n    font-size:10px;\n    letter-spacing:.24em;\n    text-transform:uppercase;\n    font-weight:700;\n  }\n\n  .relic-ritual-text{\n    margin:0;\n    color:rgba(174,172,166,.94);\n    font-size:13.5px;\n    line-height:1.85;\n  }\n\n  \/* =============================================================================\n     RELIC — ENGRAVING\n  ============================================================================= *\/\n\n  .relic-engraving{\n    margin-top:18px;\n    border-radius:26px;\n    overflow:hidden;\n    background:\n      radial-gradient(circle at 16% 0%, rgba(211,163,92,.085) 0%, rgba(211,163,92,0) 32%),\n      radial-gradient(circle at 90% 0%, rgba(119,123,130,.12) 0%, rgba(119,123,130,0) 34%),\n      linear-gradient(180deg, rgba(8,9,11,.98), rgba(3,3,4,1));\n    border:1px solid rgba(211,163,92,.14);\n    box-shadow:\n      0 40px 120px rgba(0,0,0,.58),\n      0 0 70px rgba(183,122,42,.045),\n      inset 0 1px 0 rgba(255,255,255,.016);\n    transition:\n      border-color .26s ease,\n      box-shadow .26s ease;\n  }\n\n  .relic-engraving.is-active{\n    border-color:rgba(211,163,92,.22);\n    box-shadow:\n      0 44px 126px rgba(0,0,0,.62),\n      0 0 76px rgba(183,122,42,.070),\n      inset 0 1px 0 rgba(255,255,255,.018);\n  }\n\n  .relic-engraving.is-valid{\n    border-color:rgba(211,163,92,.34);\n  }\n\n  .relic-engraving-head{\n    display:flex;\n    justify-content:space-between;\n    gap:16px;\n    padding:22px 22px 18px;\n    border-bottom:1px solid rgba(211,163,92,.08);\n  }\n\n  .relic-engraving-kicker{\n    margin:0 0 8px;\n    color:rgba(211,163,92,.82);\n    font-size:10px;\n    letter-spacing:.30em;\n    text-transform:uppercase;\n    font-weight:700;\n  }\n\n  .relic-engraving-title{\n    margin:0;\n    color:rgba(233,230,223,.94);\n    font-size:14px;\n    line-height:1.5;\n    letter-spacing:.08em;\n    text-transform:uppercase;\n    font-weight:800;\n  }\n\n  .relic-engraving-badge{\n    align-self:flex-start;\n    border-radius:999px;\n    padding:7px 10px;\n    border:1px solid rgba(211,163,92,.18);\n    color:rgba(211,163,92,.88);\n    background:rgba(255,255,255,.018);\n    font-size:9px;\n    letter-spacing:.16em;\n    text-transform:uppercase;\n    font-weight:800;\n    white-space:nowrap;\n  }\n\n  .relic-engraving-body{\n    padding:22px;\n  }\n\n  .relic-toggle{\n    display:flex;\n    align-items:center;\n    gap:10px;\n    padding:14px;\n    border-radius:18px;\n    border:1px solid rgba(211,163,92,.08);\n    background:rgba(255,255,255,.014);\n    cursor:pointer;\n    user-select:none;\n  }\n\n  .relic-toggle input{\n    width:18px;\n    height:18px;\n    accent-color:var(--relic-amber);\n  }\n\n  .relic-toggle span{\n    color:rgba(233,230,223,.92);\n    font-size:14px;\n    line-height:1.5;\n  }\n\n  .relic-row{\n    margin-top:14px;\n  }\n\n  .relic-label{\n    margin-bottom:8px;\n    color:rgba(168,163,154,.82);\n    font-size:10px;\n    letter-spacing:.24em;\n    text-transform:uppercase;\n  }\n\n  .relic-input{\n    width:100%;\n    background:rgba(3,3,4,.82);\n    border:1px solid rgba(211,163,92,.10);\n    border-radius:18px;\n    padding:13px 14px;\n    color:var(--relic-text);\n    font-size:14px;\n    line-height:1.4;\n    outline:none;\n    text-transform:uppercase;\n    box-shadow:inset 0 1px 0 rgba(255,255,255,.018);\n    transition:\n      border-color .22s ease,\n      box-shadow .22s ease,\n      opacity .22s ease;\n  }\n\n  .relic-input:focus{\n    border-color:rgba(211,163,92,.46);\n    box-shadow:\n      0 0 0 3px rgba(211,163,92,.10),\n      inset 0 1px 0 rgba(255,255,255,.025);\n  }\n\n  .relic-input:disabled{\n    opacity:.45;\n    cursor:not-allowed;\n  }\n\n  .relic-engraving.is-valid .relic-input:not(:disabled){\n    border-color:rgba(211,163,92,.42);\n    box-shadow:\n      0 0 0 3px rgba(211,163,92,.080),\n      0 0 28px rgba(183,122,42,.070);\n  }\n\n  .relic-mark-count{\n    display:flex;\n    justify-content:flex-end;\n    margin-top:8px;\n    color:rgba(168,163,154,.68);\n    font-size:9px;\n    line-height:1;\n    letter-spacing:.20em;\n    text-transform:uppercase;\n  }\n\n  .relic-engraving.is-valid .relic-mark-count{\n    color:rgba(211,163,92,.78);\n  }\n\n  .relic-help{\n    margin-top:8px;\n    color:rgba(168,163,154,.78);\n    font-size:12.5px;\n    line-height:1.65;\n  }\n\n  .relic-warn{\n    display:none;\n    margin-top:12px;\n    padding:12px 14px;\n    border-radius:18px;\n    border:1px solid rgba(183,122,42,.34);\n    background:rgba(183,122,42,.075);\n    color:rgba(233,230,223,.92);\n    font-size:12.5px;\n    line-height:1.65;\n  }\n\n  .relic-note{\n    margin-top:14px;\n    padding-top:14px;\n    border-top:1px solid rgba(211,163,92,.08);\n    color:rgba(168,163,154,.76);\n    font-size:12.5px;\n    line-height:1.65;\n  }\n\n  \/* =============================================================================\n     RELIC — SPECIFICATIONS\n  ============================================================================= *\/\n\n  .relic-product-specs{\n    margin-top:26px;\n    padding:24px;\n    border-radius:24px;\n    background:\n      radial-gradient(circle at 16% 0%, rgba(211,163,92,.055) 0%, rgba(211,163,92,0) 30%),\n      radial-gradient(circle at 86% 0%, rgba(119,123,130,.11) 0%, rgba(119,123,130,0) 32%),\n      linear-gradient(180deg, rgba(8,9,11,.94), rgba(3,3,4,.99));\n    border:1px solid rgba(211,163,92,.08);\n    box-shadow:\n      0 40px 120px rgba(0,0,0,.58),\n      inset 0 1px 0 rgba(255,255,255,.014);\n    overflow:hidden;\n  }\n\n  .relic-specs-head{\n    margin-bottom:18px;\n  }\n\n  .relic-specs-kicker{\n    margin:0 0 8px;\n    color:rgba(211,163,92,.82);\n    font-size:10px;\n    letter-spacing:.30em;\n    text-transform:uppercase;\n    font-weight:700;\n  }\n\n  .relic-specs-title{\n    color:rgba(233,230,223,.94);\n    font-size:14px;\n    line-height:1.5;\n    letter-spacing:.04em;\n  }\n\n  .relic-specs-grid{\n    display:grid;\n    grid-template-columns:repeat(3, minmax(0, 1fr));\n    border-top:1px solid rgba(211,163,92,.07);\n    border-left:1px solid rgba(211,163,92,.05);\n  }\n\n  .relic-spec{\n    min-height:82px;\n    padding:15px 16px;\n    border-right:1px solid rgba(211,163,92,.05);\n    border-bottom:1px solid rgba(211,163,92,.05);\n    background:rgba(255,255,255,.004);\n    transition:background .25s ease;\n  }\n\n  .relic-spec:hover{\n    background:rgba(211,163,92,.030);\n  }\n\n  .relic-spec span{\n    display:block;\n    margin-bottom:7px;\n    color:rgba(168,163,154,.72);\n    font-size:10px;\n    letter-spacing:.24em;\n    text-transform:uppercase;\n    line-height:1.35;\n  }\n\n  .relic-spec strong{\n    display:block;\n    color:rgba(233,230,223,.95);\n    font-size:13px;\n    line-height:1.45;\n    font-weight:500;\n  }\n\n  .relic-product-foot{\n    margin-top:22px;\n    padding-top:20px;\n    border-top:1px solid rgba(211,163,92,.08);\n    text-align:center;\n  }\n\n  .relic-product-foot-main{\n    color:rgba(233,230,223,.92);\n    font-size:16px;\n    line-height:1.55;\n    letter-spacing:.04em;\n    text-shadow:\n      0 18px 44px rgba(0,0,0,.88),\n      0 0 28px rgba(119,123,130,.08);\n  }\n\n  .relic-product-foot-sub{\n    margin-top:10px;\n    color:rgba(112,107,99,.92);\n    font-size:10px;\n    letter-spacing:.18em;\n    text-transform:uppercase;\n  }\n\n  body:has(.relic-product-umbra) form[action*=\"\/cart\/add\"] button[type=\"submit\"],\n  body:has(.relic-product-umbra) product-form button[type=\"submit\"],\n  body:has(.relic-product-umbra) .sticky-add-to-cart button,\n  body:has(.relic-product-umbra) .product-sticky button{\n    position:relative;\n    overflow:hidden;\n    transition:\n      color .24s ease,\n      background .24s ease,\n      border-color .24s ease,\n      box-shadow .24s ease,\n      transform .24s ease !important;\n  }\n\n  body:has(.relic-product-umbra) form[action*=\"\/cart\/add\"] button[type=\"submit\"]::after,\n  body:has(.relic-product-umbra) product-form button[type=\"submit\"]::after,\n  body:has(.relic-product-umbra) .sticky-add-to-cart button::after,\n  body:has(.relic-product-umbra) .product-sticky button::after{\n    content:\"\";\n    position:absolute;\n    inset:0;\n    pointer-events:none;\n    background:\n      radial-gradient(circle at 50% 50%, rgba(211,163,92,.18), transparent 42%),\n      linear-gradient(90deg, transparent, rgba(119,123,130,.13), transparent);\n    opacity:0;\n    transition:opacity .22s ease;\n  }\n\n  body:has(.relic-product-umbra) form[action*=\"\/cart\/add\"] button[type=\"submit\"]:hover,\n  body:has(.relic-product-umbra) product-form button[type=\"submit\"]:hover,\n  body:has(.relic-product-umbra) .sticky-add-to-cart button:hover,\n  body:has(.relic-product-umbra) .product-sticky button:hover{\n    box-shadow:\n      0 20px 60px rgba(0,0,0,.50),\n      0 0 42px rgba(211,163,92,.11),\n      inset 0 1px 0 rgba(255,255,255,.05) !important;\n    transform:translateY(-1px);\n  }\n\n  body:has(.relic-product-umbra) form[action*=\"\/cart\/add\"] button[type=\"submit\"]:hover::after,\n  body:has(.relic-product-umbra) product-form button[type=\"submit\"]:hover::after,\n  body:has(.relic-product-umbra) .sticky-add-to-cart button:hover::after,\n  body:has(.relic-product-umbra) .product-sticky button:hover::after,\n  body:has(.relic-product-umbra) button[data-relic-securing=\"true\"]::after{\n    opacity:1;\n  }\n\n  \/* RELIC — INTERNAL WIDTH LOCK *\/\n  @media screen and (min-width:990px){\n    .relic-product-umbra{\n      width:620px !important;\n      max-width:620px !important;\n      min-width:620px !important;\n      margin-left:auto !important;\n      margin-right:auto !important;\n      flex:0 0 620px !important;\n      flex-shrink:0 !important;\n    }\n\n    .shopify-block:has(.relic-product-umbra),\n    .product-description:has(.relic-product-umbra),\n    .product__description:has(.relic-product-umbra),\n    .product-information__block:has(.relic-product-umbra){\n      width:620px !important;\n      max-width:620px !important;\n      min-width:620px !important;\n      flex:0 0 620px !important;\n      flex-shrink:0 !important;\n      align-self:center !important;\n      overflow:visible !important;\n    }\n  }\n\n  @media screen and (max-width:989px){\n    .relic-product-umbra{\n      width:100% !important;\n      max-width:100% !important;\n      min-width:0 !important;\n      flex:0 0 auto !important;\n    }\n\n    .relic-product-umbra::before{\n      animation:none !important;\n      filter:blur(22px) !important;\n      opacity:.48 !important;\n    }\n\n    .relic-product-umbra::after,\n    .relic-product-topline,\n    .relic-product-divider{\n      animation:none !important;\n    }\n\n    .relic-product-umbra .relic-reveal{\n      filter:none !important;\n      transform:translate3d(0, 13px, 0) scale(.996);\n    }\n  }\n\n  @media(max-width:640px){\n    .relic-product-umbra::before{\n      inset:-44px -20px;\n      filter:blur(22px);\n      background:\n        radial-gradient(440px 260px at 94% 8%, rgba(69,72,77,.24), transparent 60%),\n        radial-gradient(340px 220px at 48% 30%, rgba(17,19,24,.30), transparent 70%),\n        radial-gradient(320px 180px at 20% 0%, rgba(211,163,92,.045), transparent 72%);\n    }\n\n    .relic-product-umbra::after{\n      content:none !important;\n      display:none !important;\n    }\n\n    .relic-product-mini-title{\n      font-size:15px;\n      letter-spacing:.14em;\n      line-height:1.35;\n    }\n\n    .relic-product-statement{\n      font-size:16px;\n    }\n\n    .relic-engraving,\n    .relic-availability-status{\n      border-radius:22px;\n    }\n\n    .relic-engraving-body,\n    .relic-engraving-head,\n    .relic-product-specs,\n    .relic-availability-status{\n      padding:20px;\n    }\n\n    .relic-engraving-head{\n      flex-direction:column;\n      gap:8px;\n    }\n\n    .relic-product-ritual,\n    .relic-availability-grid{\n      grid-template-columns:1fr;\n    }\n\n    .relic-product-specs{\n      border-radius:22px;\n    }\n\n    .relic-specs-grid{\n      grid-template-columns:1fr;\n    }\n\n    .relic-spec{\n      min-height:auto;\n      padding:14px 0;\n      border-right:0;\n      border-left:0;\n    }\n  }\n\n  @media(prefers-reduced-motion:reduce){\n    .relic-product-umbra,\n    .relic-product-umbra *,\n    body:has(.relic-product-umbra) button{\n      animation:none !important;\n      transition:none !important;\n      scroll-behavior:auto !important;\n    }\n\n    .relic-product-umbra .relic-reveal{\n      opacity:1 !important;\n      transform:none !important;\n      filter:none !important;\n    }\n  }\n\n  .relic-product-umbra .relic-lang-nl,\n  .relic-product-umbra .relic-lang-block-nl{\n    display:none !important;\n  }\n\n  .relic-product-umbra .relic-lang-en{\n    display:inline !important;\n  }\n\n  .relic-product-umbra .relic-lang-block-en{\n    display:block !important;\n  }\n\n  .relic-product-umbra.is-nl .relic-lang-en,\n  .relic-product-umbra.is-nl .relic-lang-block-en{\n    display:none !important;\n  }\n\n  .relic-product-umbra.is-nl .relic-lang-nl{\n    display:inline !important;\n  }\n\n  .relic-product-umbra.is-nl .relic-lang-block-nl{\n    display:block !important;\n  }\n\n  html.relic-locale-nl .relic-product-umbra .relic-lang-en,\n  html.relic-locale-nl .relic-product-umbra .relic-lang-block-en,\n  html[lang^=\"nl\"] .relic-product-umbra .relic-lang-en,\n  html[lang^=\"nl\"] .relic-product-umbra .relic-lang-block-en,\n  body[lang^=\"nl\"] .relic-product-umbra .relic-lang-en,\n  body[lang^=\"nl\"] .relic-product-umbra .relic-lang-block-en{\n    display:none !important;\n  }\n\n  html.relic-locale-nl .relic-product-umbra .relic-lang-nl,\n  html[lang^=\"nl\"] .relic-product-umbra .relic-lang-nl,\n  body[lang^=\"nl\"] .relic-product-umbra .relic-lang-nl{\n    display:inline !important;\n  }\n\n  html.relic-locale-nl .relic-product-umbra .relic-lang-block-nl,\n  html[lang^=\"nl\"] .relic-product-umbra .relic-lang-block-nl,\n  body[lang^=\"nl\"] .relic-product-umbra .relic-lang-block-nl{\n    display:block !important;\n  }\n\u003c\/style\u003e\n\n\u003csection data-relic-umbra class=\"relic-product-umbra\" aria-labelledby=\"relic-umbra-title\"\u003e\n  \u003cdiv class=\"relic-product-topline relic-reveal\"\u003e\u003c\/div\u003e\n\n  \u003cheader class=\"relic-reveal\"\u003e\n    \u003cdiv class=\"relic-product-kicker\"\u003eRELIC TOOL · FLAME DISCIPLINE\u003c\/div\u003e\n\n    \u003ch2 id=\"relic-umbra-title\" class=\"relic-product-mini-title\"\u003e\n      \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eCONTROL. NOT ACCESSORY.\u003c\/span\u003e\n      \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eCONTROLE. GEEN ACCESSOIRE.\u003c\/span\u003e\n    \u003c\/h2\u003e\n\n    \u003cdiv class=\"relic-product-tagline\"\u003eSTEEL · PRECISION · RITUAL\u003c\/div\u003e\n  \u003c\/header\u003e\n\n  \u003cdiv class=\"relic-product-statement relic-reveal\"\u003e\n    \u003cspan class=\"relic-lang-block-en\" lang=\"en\"\u003e\n      The Umbra is not an accessory.\u003cbr\u003e\n      It is \u003cstrong\u003ediscipline in metal\u003c\/strong\u003e.\u003cbr\u003e\n      \u003ca href=\"\/pages\/the-burn\" data-relic-href-en=\"\/pages\/the-burn\" data-relic-href-nl=\"\/nl\/pages\/the-burn\" class=\"relic-inline-link\"\u003eTrim the wick. Control the flame.\u003c\/a\u003e Keep the ritual sharp.\n    \u003c\/span\u003e\n\n    \u003cspan class=\"relic-lang-block-nl\" lang=\"nl\"\u003e\n      The Umbra is geen accessoire.\u003cbr\u003e\n      Het is \u003cstrong\u003ediscipline in metaal\u003c\/strong\u003e.\u003cbr\u003e\n      \u003ca href=\"\/nl\/pages\/the-burn\" data-relic-href-en=\"\/pages\/the-burn\" data-relic-href-nl=\"\/nl\/pages\/the-burn\" class=\"relic-inline-link\"\u003eTrim the wick. Control the flame.\u003c\/a\u003e Het ritueel blijft scherp.\n    \u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"relic-product-seo-summary relic-reveal\"\u003e\n    \u003cspan class=\"relic-lang-block-en\" lang=\"en\"\u003e\n      \u003cstrong\u003eThe Umbra\u003c\/strong\u003e is a matte black RELIC® wick cutter for wooden wick candles. Built for clean cuts, controlled flame height, slower burns and optional personal engraving — a ritual tool made to keep fire under command.\n    \u003c\/span\u003e\n\n    \u003cspan class=\"relic-lang-block-nl\" lang=\"nl\"\u003e\n      \u003cstrong\u003eThe Umbra\u003c\/strong\u003e is een matzwarte RELIC® wick cutter voor houten lonten. Gemaakt voor zuivere snedes, een lagere vlam, langere burns en een optionele persoonlijke engraving. Geen accessoire. Een instrument om vuur onder controle te houden.\n    \u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"relic-availability-status relic-reveal\" aria-labelledby=\"relic-umbra-availability-title\"\u003e\n    \u003cdiv class=\"relic-availability-inner\"\u003e\n      \u003cdiv class=\"relic-availability-kicker\"\u003e\n        \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eFULFILLMENT STATUS\u003c\/span\u003e\n        \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eFULFILLMENT STATUS\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003ch3 id=\"relic-umbra-availability-title\" class=\"relic-availability-title\"\u003e\n        \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eMADE TO ORDER — SHIPS WITH TRINITY WHEN INCLUDED\u003c\/span\u003e\n        \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eMADE TO ORDER — MET TRINITY VERZONDEN WANNEER INBEGREPEN\u003c\/span\u003e\n      \u003c\/h3\u003e\n\n      \u003cp class=\"relic-availability-text\"\u003e\n        \u003cspan class=\"relic-lang-block-en\" lang=\"en\"\u003e\n          Ordered separately, The Umbra is made to order. When included with\n          \u003ca href=\"\/products\/trinity\" data-relic-href-en=\"\/products\/trinity\" data-relic-href-nl=\"\/nl\/products\/trinity\" class=\"relic-inline-link\"\u003eThe Trinity\u003c\/a\u003e,\n          it is prepared with the set and shipped together with the complete RELIC order.\n        \u003c\/span\u003e\n\n        \u003cspan class=\"relic-lang-block-nl\" lang=\"nl\"\u003e\n          Los besteld wordt The Umbra op aanvraag gemaakt. Is hij onderdeel van\n          \u003ca href=\"\/nl\/products\/trinity\" data-relic-href-en=\"\/products\/trinity\" data-relic-href-nl=\"\/nl\/products\/trinity\" class=\"relic-inline-link\"\u003eThe Trinity\u003c\/a\u003e,\n          dan blijft het systeem intact: één order, één release, één gecontroleerde verzending.\n        \u003c\/span\u003e\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"relic-availability-grid\"\u003e\n        \u003cdiv class=\"relic-availability-chip\"\u003e\n          \u003cspan\u003eStatus\u003c\/span\u003e\n          \u003cstrong\u003e\n            \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eMade to order\u003c\/span\u003e\n            \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eMade to order\u003c\/span\u003e\n          \u003c\/strong\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"relic-availability-chip\"\u003e\n          \u003cspan\u003eFulfillment\u003c\/span\u003e\n          \u003cstrong\u003e\n            \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eShips with Trinity when included\u003c\/span\u003e\n            \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eVerzonden met Trinity\u003c\/span\u003e\n          \u003c\/strong\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"relic-product-copy relic-reveal\"\u003e\n    \u003cdiv class=\"relic-lang-block-en\" lang=\"en\"\u003e\n      \u003cp\u003eA matte black wick cutter made for \u003ca href=\"\/pages\/the-burn\" data-relic-href-en=\"\/pages\/the-burn\" data-relic-href-nl=\"\/nl\/pages\/the-burn\" class=\"relic-inline-link\"\u003econtrolled burns\u003c\/a\u003e, clean edges and deliberate use.\u003c\/p\u003e\n      \u003cp\u003eThe flame is not decoration. It is managed. The wick is cut, reset and brought back under command.\u003c\/p\u003e\n      \u003cp\u003eThe Umbra belongs beside the vessel. A tool with weight. A ritual object with purpose.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"relic-lang-block-nl\" lang=\"nl\"\u003e\n      \u003cp\u003eEen matzwarte wick cutter voor \u003ca href=\"\/nl\/pages\/the-burn\" data-relic-href-en=\"\/pages\/the-burn\" data-relic-href-nl=\"\/nl\/pages\/the-burn\" class=\"relic-inline-link\"\u003ebeheerste burns\u003c\/a\u003e, schone randen en doelbewust gebruik.\u003c\/p\u003e\n      \u003cp\u003eDe vlam is geen decoratie. Ze wordt gestuurd. De wick wordt teruggebracht tot discipline: kort, schoon en klaar voor vuur.\u003c\/p\u003e\n      \u003cp\u003eThe Umbra hoort naast het vessel. Geen lade-object. Een ritueel instrument met gewicht.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"relic-product-ritual relic-reveal\"\u003e\n    \u003cdiv class=\"relic-ritual-card\"\u003e\n      \u003cdiv class=\"relic-ritual-title\"\u003e\n        \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eThe Ritual\u003c\/span\u003e\n        \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eHet ritueel\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"relic-ritual-text\"\u003e\n        \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eOpen the vessel. Trim the wick. Remove what burned before. Light only when the flame is ready.\u003c\/span\u003e\n        \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eOpen het vessel. Trim de wick. Verwijder wat al verbrand is. Ontsteek pas wanneer de vlam controle verdient.\u003c\/span\u003e\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"relic-ritual-card\"\u003e\n      \u003cdiv class=\"relic-ritual-title\"\u003e\n        \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eBuilt For\u003c\/span\u003e\n        \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eGemaakt voor\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"relic-ritual-text\"\u003e\n        \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eClean burns. Controlled flame height. Longer ritual life. No careless smoke. No wasted heat.\u003c\/span\u003e\n        \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eSchone burns. Een beheerste vlam. Meer ritueel uit elk vessel. Geen slordige rook. Geen verspilde hitte.\u003c\/span\u003e\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv data-relic-engraving class=\"relic-engraving relic-reveal\" aria-labelledby=\"relic-umbra-engraving-title\"\u003e\n    \u003cdiv class=\"relic-engraving-head\"\u003e\n      \u003cdiv\u003e\n        \u003cdiv class=\"relic-engraving-kicker\"\u003e\n          \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eOptional Engraving\u003c\/span\u003e\n          \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eOptionele engraving\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cp id=\"relic-umbra-engraving-title\" class=\"relic-engraving-title\"\u003e\n          \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003ePersonal Mark\u003c\/span\u003e\n          \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003ePersoonlijk teken\u003c\/span\u003e\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"relic-engraving-badge\"\u003e\n        \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003e1–32 characters\u003c\/span\u003e\n        \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003e1–32 tekens\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"relic-engraving-body\"\u003e\n      \u003clabel class=\"relic-toggle\" for=\"relicUmbraToggle\"\u003e\n        \u003cinput id=\"relicUmbraToggle\" type=\"checkbox\"\u003e\n        \u003cspan\u003e\n          \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eAdd engraving to my Umbra\u003c\/span\u003e\n          \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eMarkeer mijn Umbra\u003c\/span\u003e\n        \u003c\/span\u003e\n      \u003c\/label\u003e\n\n      \u003cdiv class=\"relic-row\"\u003e\n        \u003cdiv id=\"relicUmbraLabel\" class=\"relic-label\"\u003e\n          \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eEngraving Text\u003c\/span\u003e\n          \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eEngraving tekst\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003cinput class=\"relic-input\" id=\"relicUmbraInput\" type=\"text\" autocomplete=\"off\" maxlength=\"32\" placeholder=\"INITIALS, NAME OR SHORT LINE\" disabled aria-labelledby=\"relicUmbraLabel\" aria-describedby=\"relicUmbraHelp relicUmbraWarn\"\u003e\n\n        \u003cdiv class=\"relic-mark-count\" data-relic-mark-count\u003e0 \/ 32 MARKS\u003c\/div\u003e\n\n        \u003cdiv id=\"relicUmbraHelp\" class=\"relic-help\"\u003e\n          \u003cspan class=\"relic-lang-block-en\" lang=\"en\"\u003e\n            Use initials, a name, or a short sentence. Maximum \u003cspan class=\"relic-hi\"\u003e32 characters\u003c\/span\u003e.\n            Examples: \u003cspan class=\"relic-hi\"\u003eSANDER\u003c\/span\u003e, \u003cspan class=\"relic-hi\"\u003eCONTROL THE FLAME\u003c\/span\u003e, \u003cspan class=\"relic-hi\"\u003eTRIM THE WICK\u003c\/span\u003e.\n          \u003c\/span\u003e\n\n          \u003cspan class=\"relic-lang-block-nl\" lang=\"nl\"\u003e\n            Gebruik initialen, een naam of een korte zin. Maximaal \u003cspan class=\"relic-hi\"\u003e32 tekens\u003c\/span\u003e.\n            Voorbeelden: \u003cspan class=\"relic-hi\"\u003eSANDER\u003c\/span\u003e, \u003cspan class=\"relic-hi\"\u003eCONTROL THE FLAME\u003c\/span\u003e, \u003cspan class=\"relic-hi\"\u003eTRIM THE WICK\u003c\/span\u003e.\n          \u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"relic-warn\" id=\"relicUmbraWarn\" role=\"alert\"\u003e\n          \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003e\u003cstrong\u003eEngraving required:\u003c\/strong\u003e enter 1–32 characters using letters, numbers, spaces, dots, dashes, slashes or ampersands.\u003c\/span\u003e\n          \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003e\u003cstrong\u003eEngraving vereist:\u003c\/strong\u003e voer 1–32 tekens in met letters, cijfers, spaties, punten, streepjes, slashes of ampersands.\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"relic-note\"\u003e\n        \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003e\u003cspan class=\"relic-hi\"\u003eNote:\u003c\/span\u003e engraved artefacts are made specifically for you. Once marked, they cannot be returned or exchanged unless faulty.\u003c\/span\u003e\n        \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003e\u003cspan class=\"relic-hi\"\u003eLet op:\u003c\/span\u003e een gemarkeerde Umbra wordt specifiek voor jou gemaakt. Na engraving kan hij niet worden geretourneerd of geruild, tenzij er sprake is van een defect.\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"relic-product-divider relic-reveal\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"relic-product-specs relic-reveal\"\u003e\n    \u003cdiv class=\"relic-specs-head\"\u003e\n      \u003cdiv class=\"relic-specs-kicker\"\u003e\n        \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eSPECIFICATIONS\u003c\/span\u003e\n        \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eSPECIFICATIES\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"relic-specs-title\"\u003e\n        \u003cspan class=\"relic-lang-en\" lang=\"en\"\u003eThis is not decoration. This is flame control.\u003c\/span\u003e\n        \u003cspan class=\"relic-lang-nl\" lang=\"nl\"\u003eGeen decoratie. Vlamcontrole.\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"relic-specs-grid\"\u003e\n      \u003cdiv class=\"relic-spec\"\u003e\n        \u003cspan\u003eARTEFACT\u003c\/span\u003e\u003cstrong\u003eThe Umbra\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"relic-spec\"\u003e\n        \u003cspan\u003eTYPE\u003c\/span\u003e\u003cstrong\u003eWick Cutter\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"relic-spec\"\u003e\n        \u003cspan\u003eFINISH\u003c\/span\u003e\u003cstrong\u003eMatte black metal\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"relic-spec\"\u003e\n        \u003cspan\u003eSTATUS\u003c\/span\u003e\u003cstrong\u003eMade to order\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"relic-spec\"\u003e\n        \u003cspan\u003eFULFILLMENT\u003c\/span\u003e\u003cstrong\u003eShips with Trinity when included\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"relic-spec\"\u003e\n        \u003cspan\u003eENGRAVING\u003c\/span\u003e\u003cstrong\u003eOptional laser mark\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"relic-spec\"\u003e\n        \u003cspan\u003eTEXT LIMIT\u003c\/span\u003e\u003cstrong\u003e1–32 characters\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"relic-spec\"\u003e\n        \u003cspan\u003eUSE\u003c\/span\u003e\u003cstrong\u003eWood wick control\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"relic-spec\"\u003e\n        \u003cspan\u003eRETURN NOTE\u003c\/span\u003e\u003cstrong\u003eEngraved items are custom-made\u003c\/strong\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"relic-product-foot relic-reveal\"\u003e\n    \u003cdiv class=\"relic-product-foot-main\"\u003e\n      \u003cspan class=\"relic-lang-block-en\" lang=\"en\"\u003e\n        It does not decorate the ritual.\u003cbr\u003e\n        It controls it.\n      \u003c\/span\u003e\n      \u003cspan class=\"relic-lang-block-nl\" lang=\"nl\"\u003e\n        Het versiert het ritueel niet.\u003cbr\u003e\n        Het houdt het onder controle.\n      \u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"relic-product-foot-sub\"\u003eTrim the wick. Control the flame.\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cscript\u003e\n  (function(){\n    var existing = document.getElementById('relic-umbra-schema');\n    if (existing) existing.remove();\n\n    var pageUrl = window.location.href.split('#')[0];\n    var siteUrl = window.location.origin;\n    var isDutch = document.documentElement.classList.contains('relic-locale-nl') || location.pathname.indexOf('\/nl\/') === 0;\n\n    var schema = {\n      \"@context\": \"https:\/\/schema.org\",\n      \"@type\": \"WebPage\",\n      \"@id\": pageUrl + \"#relic-umbra-story\",\n      \"name\": \"The Umbra | RELIC\",\n      \"url\": pageUrl,\n      \"description\": isDutch\n        ? \"The Umbra is een matzwarte RELIC wick cutter voor houten lonten. Een ritueel instrument voor schone snedes, gecontroleerde vlamhoogte en optionele persoonlijke engraving.\"\n        : \"The Umbra is a matte black RELIC wick cutter for wooden wick candles. A ritual tool for clean cuts, controlled flame height and optional personal engraving.\",\n      \"isPartOf\": {\n        \"@type\": \"WebSite\",\n        \"name\": \"RELIC\",\n        \"url\": siteUrl\n      },\n      \"about\": {\n        \"@type\": \"Thing\",\n        \"name\": \"The Umbra\",\n        \"description\": isDutch\n          ? \"Een matzwarte RELIC wick cutter voor gecontroleerde wooden-wick burns.\"\n          : \"A matte black RELIC wick cutter for controlled wooden-wick burns.\"\n      },\n      \"publisher\": {\n        \"@type\": \"Organization\",\n        \"name\": \"RELIC\",\n        \"url\": siteUrl\n      }\n    };\n\n    var script = document.createElement('script');\n    script.id = 'relic-umbra-schema';\n    script.type = 'application\/ld+json';\n    script.textContent = JSON.stringify(schema);\n    document.head.appendChild(script);\n  })();\n\u003c\/script\u003e\n\n\u003cscript\u003e\n(function(){\n  const root = document.querySelector('[data-relic-umbra]');\n  if(!root) return;\n\n  const engraving = root.querySelector('[data-relic-engraving]');\n  const toggle = root.querySelector('#relicUmbraToggle');\n  const input  = root.querySelector('#relicUmbraInput');\n  const warn   = root.querySelector('#relicUmbraWarn');\n  const counter = root.querySelector('[data-relic-mark-count]');\n\n  let lockTimer = null;\n  let securingTimer = null;\n\n  const RELIC_UMBRA_PROPERTIES = {\n    'Artefact': 'The Umbra Wick Cutter',\n    'Status': 'MADE TO ORDER',\n    'Fulfillment note': 'Ships together with Trinity when included.',\n    'Return note': 'Engraved items are custom-made and cannot be returned or exchanged unless faulty.'\n  };\n\n  function relicNormalizeLanguage(value){\n    const text = String(value || '').trim().toLowerCase();\n    if(!text) return null;\n\n    if(\/^(nl|nl[-_][a-z]{2}|nederlands|dutch)$\/.test(text)) return 'nl';\n    if(\/^(en|en[-_][a-z]{2}|english|eng)$\/.test(text)) return 'en';\n\n    return null;\n  }\n\n  function relicSelectedLanguage(){\n    const pathCode = relicNormalizeLanguage(window.location.pathname.split('\/').filter(Boolean)[0]);\n    if(pathCode) return pathCode;\n\n    const params = new URLSearchParams(window.location.search);\n    const paramCode = relicNormalizeLanguage(params.get('locale') || params.get('language') || params.get('lang'));\n    if(paramCode) return paramCode;\n\n    const localeField = document.querySelector(\n      'form[action*=\"\/localization\"] [name=\"locale_code\"], form[action*=\"\/localization\"] [name=\"language_code\"], select[name=\"locale_code\"], select[name=\"language_code\"], input[name=\"locale_code\"], input[name=\"language_code\"]'\n    );\n\n    const fieldCode = localeField ? relicNormalizeLanguage(localeField.value) : null;\n    if(fieldCode) return fieldCode;\n\n    return relicNormalizeLanguage(window.Shopify \u0026\u0026 window.Shopify.locale) || 'en';\n  }\n\n  function relicUsesDutch(){\n    return relicSelectedLanguage() === 'nl';\n  }\n\n  function syncRelicLinks(){\n    const dutch = relicUsesDutch();\n\n    root.querySelectorAll('[data-relic-href-en][data-relic-href-nl]').forEach(function(link){\n      const href = dutch ? link.getAttribute('data-relic-href-nl') : link.getAttribute('data-relic-href-en');\n      if(href) link.setAttribute('href', href);\n    });\n  }\n\n  function syncRelicLanguage(){\n    const dutch = relicUsesDutch();\n\n    root.classList.toggle('is-nl', dutch);\n    syncRelicLinks();\n\n    if(input){\n      input.placeholder = dutch ? 'INITIALEN, NAAM OF KORTE ZIN' : 'INITIALS, NAME OR SHORT LINE';\n    }\n  }\n\n  function triggerCutLock(){\n    root.classList.remove('relic-cut-lock');\n    void root.offsetWidth;\n    root.classList.add('relic-cut-lock');\n\n    window.clearTimeout(lockTimer);\n    lockTimer = window.setTimeout(function(){\n      root.classList.remove('relic-cut-lock');\n    }, 760);\n  }\n\n  function findProductForms(){\n    return document.querySelectorAll(\n      'form[action*=\"\/cart\/add\"], form[action*=\"\/cart\/add.js\"], product-form form, form[id^=\"product-form\"]'\n    );\n  }\n\n  function cleanText(value, finalClean){\n    let text = String(value || '')\n      .toUpperCase()\n      .replace(\/[^A-Z0-9 .\u0026\\-\\\/]\/g,'')\n      .slice(0,32);\n\n    if(finalClean){\n      text = text.replace(\/\\s+\/g,' ').trim();\n    }\n\n    return text;\n  }\n\n  function currentEngravingValue(finalClean){\n    if(!toggle || !input) return 'No engraving';\n\n    if(!toggle.checked){\n      return 'No engraving';\n    }\n\n    const cleaned = cleanText(input.value, !!finalClean);\n    const finalValue = cleanText(cleaned, true);\n\n    return finalValue;\n  }\n\n  function updateEngravingUI(){\n    if(!engraving || !toggle || !input) return;\n\n    const active = !!toggle.checked;\n    const value = String(input.value || '');\n    const valid = active \u0026\u0026 value.trim().length \u003e= 1 \u0026\u0026 value.trim().length \u003c= 32;\n\n    engraving.classList.toggle('is-active', active);\n    engraving.classList.toggle('is-valid', valid);\n\n    if(counter){\n      counter.textContent = value.length + ' \/ 32 MARKS';\n    }\n  }\n\n  function setEngravingState(finalClean){\n    if(!toggle || !input || !warn) return true;\n\n    const isOn = !!toggle.checked;\n    input.disabled = !isOn;\n\n    if(!isOn){\n      input.value = '';\n      warn.style.display = 'none';\n      updateEngravingUI();\n      return true;\n    }\n\n    const cleaned = cleanText(input.value, !!finalClean);\n    input.value = cleaned;\n\n    const finalValue = cleanText(cleaned, true);\n\n    if(finalValue.length \u003c 1 || finalValue.length \u003e 32){\n      warn.style.display = 'block';\n      updateEngravingUI();\n      return false;\n    }\n\n    warn.style.display = 'none';\n    updateEngravingUI();\n    return true;\n  }\n\n  function upsertProperty(form, key, value){\n    if(!form) return;\n\n    const inputName = 'properties[' + key + ']';\n    let hidden = form.querySelector('input[name=\"' + inputName + '\"]');\n\n    if(!hidden){\n      hidden = document.createElement('input');\n      hidden.type = 'hidden';\n      hidden.name = inputName;\n      form.appendChild(hidden);\n    }\n\n    hidden.value = value;\n  }\n\n  function syncLineItemProperties(finalClean){\n    const engravingValue = currentEngravingValue(!!finalClean);\n\n    findProductForms().forEach(function(form){\n      Object.keys(RELIC_UMBRA_PROPERTIES).forEach(function(key){\n        upsertProperty(form, key, RELIC_UMBRA_PROPERTIES[key]);\n      });\n\n      upsertProperty(form, 'Umbra Engraving', engravingValue || 'No engraving');\n    });\n  }\n\n  function getButtonLabel(){\n    return relicUsesDutch() ? 'VERKRIJG THE UMBRA' : 'ACQUIRE THE UMBRA';\n  }\n\n  function getSecuringLabel(){\n    return relicUsesDutch() ? 'THE UMBRA WORDT GEMARKEERD...' : 'MARKING THE UMBRA...';\n  }\n\n  function purchaseButtons(){\n    return document.querySelectorAll(\n      'form[action*=\"\/cart\/add\"] button[type=\"submit\"], product-form button[type=\"submit\"], .sticky-add-to-cart button, .product-sticky button'\n    );\n  }\n\n  function setButtonText(button, label){\n    if(!button) return;\n\n    const target = button.querySelector('span') || button;\n    target.textContent = label;\n    button.setAttribute('aria-label', label);\n  }\n\n  function relabelPurchaseButtons(){\n    const label = getButtonLabel();\n\n    purchaseButtons().forEach(function(button){\n      if(!button || button.getAttribute('data-relic-securing') === 'true') return;\n\n      const text = (button.textContent || '').toLowerCase();\n\n      if(\n        text.includes('add to cart') ||\n        text.includes('toevoegen') ||\n        text.includes('winkelwagen') ||\n        text.includes('pre-order') ||\n        text.includes('acquire') ||\n        text.includes('verkrijg') ||\n        text.includes('umbra') ||\n        text.includes('sold out') === false\n      ){\n        setButtonText(button, label);\n        button.setAttribute('data-relic-label-ready', 'true');\n      }\n    });\n  }\n\n  function setButtonSecuring(button){\n    if(!button) return;\n\n    const securing = getSecuringLabel();\n    const original = getButtonLabel();\n\n    button.setAttribute('data-relic-securing', 'true');\n    setButtonText(button, securing);\n    triggerCutLock();\n\n    window.clearTimeout(securingTimer);\n\n    securingTimer = window.setTimeout(function(){\n      if(!button || button.disabled) return;\n\n      button.removeAttribute('data-relic-securing');\n      setButtonText(button, original);\n    }, 2600);\n  }\n\n  function protectSecuringLabels(){\n    purchaseButtons().forEach(function(button){\n      if(button \u0026\u0026 button.getAttribute('data-relic-securing') === 'true'){\n        setButtonText(button, getSecuringLabel());\n      }\n    });\n  }\n\n  function relabelRecommendationHeadings(){\n    const label = relicUsesDutch() ? 'VOLTOOI HET SYSTEEM' : 'COMPLETE THE SYSTEM';\n\n    document.querySelectorAll('.related-products h2, .product-recommendations h2, .complementary-products h2').forEach(function(heading){\n      heading.textContent = label;\n    });\n  }\n\n  function initReveal(){\n    const revealItems = root.querySelectorAll('.relic-reveal');\n\n    revealItems.forEach(function(item, index){\n      item.style.setProperty('--relic-delay', Math.min(index * 68, 460) + 'ms');\n    });\n\n    window.requestAnimationFrame(function(){\n      root.classList.add('is-loaded');\n\n      revealItems.forEach(function(item, index){\n        if(index \u003c 6) item.classList.add('relic-load-visible');\n      });\n\n      window.setTimeout(triggerCutLock, 360);\n    });\n\n    if(!('IntersectionObserver' in window)){\n      revealItems.forEach(function(item){\n        item.classList.add('is-visible');\n      });\n      return;\n    }\n\n    const observer = new IntersectionObserver(function(entries){\n      entries.forEach(function(entry){\n        if(entry.isIntersecting){\n          entry.target.classList.add('is-visible');\n          observer.unobserve(entry.target);\n        }\n      });\n    }, {\n      root:null,\n      threshold:.13,\n      rootMargin:'0px 0px -8% 0px'\n    });\n\n    revealItems.forEach(function(item){\n      observer.observe(item);\n    });\n  }\n\n  function refreshUmbraBlock(finalClean){\n    syncRelicLanguage();\n    setEngravingState(!!finalClean);\n    syncLineItemProperties(!!finalClean);\n    relabelPurchaseButtons();\n    relabelRecommendationHeadings();\n    updateEngravingUI();\n  }\n\n  if(input){\n    input.addEventListener('keydown', function(event){\n      if(event.key === ' ' || event.code === 'Space'){\n        event.stopPropagation();\n\n        const start = input.selectionStart;\n        const end = input.selectionEnd;\n        const value = input.value;\n\n        if(value.length \u003c 32){\n          input.value = value.slice(0, start) + ' ' + value.slice(end);\n          input.selectionStart = input.selectionEnd = start + 1;\n          refreshUmbraBlock(false);\n        }\n\n        event.preventDefault();\n      }\n    });\n\n    input.addEventListener('input', function(){\n      refreshUmbraBlock(false);\n    });\n\n    input.addEventListener('focus', function(){\n      if(engraving) engraving.classList.add('is-active');\n    });\n  }\n\n  if(toggle){\n    toggle.addEventListener('change', function(){\n      refreshUmbraBlock(false);\n      triggerCutLock();\n    });\n  }\n\n  initReveal();\n  refreshUmbraBlock(false);\n\n  document.addEventListener('DOMContentLoaded', function(){\n    refreshUmbraBlock(false);\n  });\n\n  document.addEventListener('change', function(){\n    setTimeout(function(){ refreshUmbraBlock(false); }, 80);\n    setTimeout(function(){ refreshUmbraBlock(false); }, 260);\n  });\n\n  document.addEventListener('click', function(event){\n    const button = event.target \u0026\u0026 event.target.closest\n      ? event.target.closest('form[action*=\"\/cart\/add\"] button[type=\"submit\"], product-form button[type=\"submit\"], .sticky-add-to-cart button, .product-sticky button')\n      : null;\n\n    if(button){\n      setButtonSecuring(button);\n    }\n\n    setTimeout(function(){ refreshUmbraBlock(false); }, 120);\n    setTimeout(function(){ refreshUmbraBlock(false); }, 300);\n  });\n\n  document.addEventListener('shopify:section:load', function(){\n    refreshUmbraBlock(false);\n  });\n\n  document.addEventListener('submit', function(event){\n    const form = event.target;\n\n    if(form \u0026\u0026 form.matches('form[action*=\"\/cart\/add\"], form[action*=\"\/cart\/add.js\"], product-form form, form[id^=\"product-form\"]')){\n      const valid = setEngravingState(true);\n      syncLineItemProperties(true);\n\n      const button = form.querySelector('button[type=\"submit\"]');\n      setButtonSecuring(button);\n\n      if(toggle \u0026\u0026 toggle.checked \u0026\u0026 !valid){\n        event.preventDefault();\n        if(warn) warn.style.display = 'block';\n        if(input) input.focus();\n      }\n    }\n  }, true);\n\n  window.setInterval(function(){\n    syncRelicLanguage();\n    syncLineItemProperties(false);\n    relabelPurchaseButtons();\n    protectSecuringLabels();\n    relabelRecommendationHeadings();\n    updateEngravingUI();\n  }, 1000);\n})();\n\u003c\/script\u003e","brand":"RELIC","offers":[{"title":"Default Title","offer_id":57193736995203,"sku":"RELIC-UMBRA-WC-1","price":19.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0979\/1422\/5027\/files\/The_Ubra_1.png?v=1778251519","url":"https:\/\/relicartefacts.com\/products\/the-umbra","provider":"RELIC","version":"1.0","type":"link"}