{"version":3,"file":"component---src-pages-index-tsx-d6e080a71aaf2e4a5d12.js","mappings":"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","sources":["webpack://ipf/./src/components/Animations/AppearContainer.tsx","webpack://ipf/./src/components/LinkArrowBtn.tsx","webpack://ipf/./src/components/ScrollAvailable.tsx","webpack://ipf/./src/components/Styled/Containerts.ts","webpack://ipf/./src/components/Main/Collection.tsx","webpack://ipf/./src/components/Main/Configurator.tsx","webpack://ipf/./src/components/Collage.tsx","webpack://ipf/./node_modules/@popmotion/easing/dist/easing.es.js","webpack://ipf/./src/helpers/ratioCalc.ts","webpack://ipf/./src/components/Main/history/animated/desktop/index.tsx","webpack://ipf/./src/hooks/useCssVariableValue.ts","webpack://ipf/./src/components/Main/history/animated/mobile/index.tsx","webpack://ipf/./src/components/Main/History.tsx","webpack://ipf/./src/components/Main/Manufacturing.tsx","webpack://ipf/./src/components/Main/RingsCollection.tsx","webpack://ipf/./src/components/Slider.tsx","webpack://ipf/./src/hooks/usePageReload.ts","webpack://ipf/./src/hooks/useRemovePreloader.ts","webpack://ipf/./src/pages/index.tsx","webpack://ipf/./src/routes.ts","webpack://ipf/./assets/link.inline.svg"],"sourcesContent":["import { SystemStyleObject } from \"@styled-system/css\";\nimport { motion, useTransform, useViewportScroll } from \"framer-motion\";\nimport React from \"react\";\nimport { isMobileOnly } from \"react-device-detect\";\nimport useWindowSize from \"../../hooks/useWindowSize\";\nimport MotionBox from \"../Box/MotionBox\";\n\ntype Props = {\n  wrapperCmp?: React.FC;\n  children: React.ReactNode;\n  triggerOffset?: number;\n  sx?: SystemStyleObject;\n  [x: string]: any;\n};\n\nconst Appear = ({\n  wrapperCmp = undefined,\n  children,\n  triggerOffset = 50,\n  ...rest\n}: Props) => {\n  const [offset, setOffset] = React.useState<number>(0);\n  const { height } = useWindowSize();\n  const { scrollY } = useViewportScroll();\n\n  const opacity = useTransform(\n    scrollY,\n    [offset - height * 0.75, offset - height * 0.5 + triggerOffset],\n    [0, 1]\n  );\n\n  const verticalPosition = useTransform(\n    scrollY,\n    [offset - height, offset - height * 0.5 + triggerOffset],\n    [height * 0.1, 0]\n  );\n\n  const wrapperRef = React.useCallback((node: HTMLElement | null) => {\n    if (node !== null && !isMobileOnly) {\n      const parent = node.offsetParent as HTMLElement;\n      if (parent) {\n        setOffset(node.offsetTop + parent.offsetTop);\n      } else {\n        setOffset(node.offsetTop);\n      }\n    } else {\n      setOffset(0);\n    }\n  }, []);\n\n  const Wrapper = wrapperCmp ? motion(wrapperCmp) : MotionBox;\n\n  return (\n    <Wrapper\n      ref={wrapperRef}\n      style={{\n        opacity: opacity as any,\n        y: verticalPosition as any,\n      }}\n      {...rest}\n    >\n      {children}\n    </Wrapper>\n  );\n};\n\nexport default React.memo(Appear);\n","import { SystemStyleObject } from \"@styled-system/css\";\nimport { Link } from \"gatsby\";\nimport React from \"react\";\nimport Arrow from \"../../assets/link.inline.svg\";\nimport { get } from \"../constants/theme\";\nimport { clampBuilder } from \"../helpers/sizeCalc\";\nimport { Routes } from \"../routes\";\nimport Box from \"./Box/Box\";\n\ntype Props = {\n  to: Routes | string;\n  title: string;\n  as: React.ComponentType<any> | keyof HTMLElementTagNameMap;\n  sx?: SystemStyleObject;\n  disabled?: boolean;\n};\n\nconst LinkArrowBtn = ({ to, title, as, sx, disabled = false }: Props) => {\n  const handleClick = React.useCallback(\n    (e: React.MouseEvent<HTMLAnchorElement>) => {\n      if (disabled) e.preventDefault();\n    },\n    [disabled]\n  );\n  return (\n    <Box\n      onClick={handleClick}\n      as={Link}\n      to={to}\n      sx={{\n        display: \"flex\",\n        justifyContent: \"center\",\n        alignItems: \"center\",\n        cursor: \"pointer\",\n        marginTop: \"80px\",\n        marginBottom: \"80px\",\n        userSelect: \"none\",\n        transition: \"opacity .3s linear\",\n        gap: \".75rem\",\n        opacity: disabled ? 0.5 : 1,\n        \":hover\": {\n          opacity: 0.75,\n        },\n        ...sx,\n      }}\n    >\n      <Box as={Arrow} />\n      <Box\n        as=\"span\"\n        sx={{\n          fontWeight: 400,\n          fontFamily: \"custom_42264\",\n          fontSize: [\n            clampBuilder(320, 599, 1.3125, 2.375),\n            clampBuilder(599, 1680, 1.125, 2.25),\n            clampBuilder(599, 1680, 1.125, 2.25),\n            clampBuilder(599, 1680, 1.125, 2.25),\n            clampBuilder(599, 1680, 1.125, 2.25),\n\n            //\"36px\",\n            //\"18px\",\n          ],\n          lineHeight: \"32px\",\n          textTransform: \"uppercase\",\n          color: get(\"palette.text.link_btn\"),\n          paddingTop: \"0.2em\",\n        }}\n      >\n        {title}\n      </Box>\n    </Box>\n  );\n};\n\nexport default React.memo(LinkArrowBtn);\n","import { useTransform, useViewportScroll } from \"framer-motion\";\nimport { InputRange } from \"framer-motion/types/value/use-transform\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport React from \"react\";\nimport MotionBox from \"./Box/MotionBox\";\n\ninterface Props {\n  inputRange: InputRange;\n  outputRange: number[];\n  colorsIputRange: InputRange;\n  colorsOutputRange: string[];\n}\n\nconst ScrollAvailable = ({\n  inputRange,\n  outputRange,\n  colorsIputRange,\n  colorsOutputRange,\n}: Props) => {\n  const { text } = useStaticQuery(graphql`\n    query ScrollQuery {\n      translationsJson {\n        components {\n          scroll {\n            text\n          }\n        }\n      }\n    }\n  `).translationsJson.components.scroll;\n  const { scrollY } = useViewportScroll();\n  const opacity = useTransform(scrollY, inputRange, outputRange);\n\n  const color = useTransform(scrollY, colorsIputRange, colorsOutputRange);\n  return (\n    <MotionBox\n      sx={{\n        position: \"fixed\",\n        display: \"flex\",\n        justifyContent: \"center\",\n        alignItems: \"center\",\n        flexDirection: \"column\",\n        bottom: \"5%\",\n        left: \"50%\",\n        transform: \"translateX(-50%)\",\n        userSelect: \"none\",\n        zIndex: 100,\n      }}\n      style={{\n        // @ts-expect-error\n        opacity: opacity,\n      }}\n    >\n      <MotionBox\n        sx={{\n          position: \"relative\",\n          width: \"21px\",\n          height: \"32px\",\n          borderRadius: \"16px\",\n          borderWidth: \"1.5px\",\n          borderStyle: \"solid\",\n          marginBottom: \"8px\",\n        }}\n        style={{ borderColor: color as any }}\n      >\n        <MotionBox\n          sx={{\n            position: \"absolute\",\n            width: \"4px\",\n            height: \"4px\",\n            top: \"5.67px\",\n            left: \"50%\",\n            transform: \"translateX(-50%) rotate(45deg)\",\n          }}\n          style={{ background: color as any }}\n        />\n      </MotionBox>\n      <MotionBox\n        sx={{\n          textAlign: \"center\",\n          fontWeight: 400,\n          fontSize: \"12px\",\n          fontFamily: \"custom_42266\",\n        }}\n        style={{ color: color as any }}\n      >\n        {text}\n      </MotionBox>\n    </MotionBox>\n  );\n};\n\nexport default React.memo(ScrollAvailable);\n","import css from \"@styled-system/css\";\nimport styled from \"styled-components\";\nimport { SxProp } from \"../../constants/sx\";\nimport { clampBuilder } from \"../../helpers/sizeCalc\";\n\nexport const SectionWrapper = styled(\"div\")<SxProp>`\n  align-self: center;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  font-weight: 400;\n  font-family: custom_42264;\n  text-align: center;\n\n  @media screen and (max-width: 768px) {\n    text-align: left;\n  }\n\n  ${(props) => props.sx && css({ ...props.sx })};\n`;\n\nexport const SectionWrapper2 = styled(\"div\")<SxProp>`\n  display: flex;\n  flex-direction: column;\n  justify-content: \"space-between\";\n  align-items: \"center\";\n  min-height: ${clampBuilder(599, 1680, 14.4375, 31.625)};\n  padding: ${clampBuilder(599, 1680, 7, 12.8125)} 0; //205px; //  112px\n\n  & > h1,\n  p {\n    margin-left: 0//${clampBuilder(599, 1680, 7.1875, 15.94)}; //255px; // 115px\n  }\n\n  @media screen and (max-width: 768px) {\n    min-height: clampBuilder(320, 599, 14.5625, 29.5625);\n    & > h1,\n    p {\n      margin-left: 0; //255px; // 115px\n    }\n  }\n\n  ${(props) => props.sx && css({ ...props.sx })};\n`;\n","import React from \"react\";\nimport { graphql, Link, useStaticQuery } from \"gatsby\";\nimport Box from \"../Box/Box\";\nimport { CollectionQuery } from \"../../types/pages/main\";\nimport { get } from \"../../constants/theme\";\nimport { Paragraph, Subtitle, Title } from \"../Styled/Text\";\nimport LinkArrowBtn from \"../LinkArrowBtn\";\nimport { Routes } from \"../../routes\";\nimport { SectionWrapper2 } from \"../Styled/Containerts\";\nimport { clampBuilder } from \"../../helpers/sizeCalc\";\nimport Appear from \"../Animations/AppearContainer\";\n\ninterface Props {}\nconst Collection = (\n  _: Props,\n  ref: React.ForwardedRef<HTMLDivElement | null>\n) => {\n  const { description, link, subtitle, title } =\n    useStaticQuery<CollectionQuery>(graphql`\n      query MainCollectionQuery {\n        translationsJson {\n          pages {\n            main {\n              sections {\n                collection {\n                  description\n                  link\n                  title\n                  subtitle\n                }\n              }\n            }\n          }\n        }\n      }\n    `).translationsJson.pages.main.sections.collection;\n\n  return (\n    <Box sx={{ position: \"relative\", zIndex: 7 }} ref={ref}>\n      <SectionWrapper2\n        sx={{\n          display: \"flex\",\n          width: \"100%\",\n          flexDirection: \"column\",\n          alignItems: [\"center\"],\n          justifyContent: \"center\",\n          textAlign: \"center\",\n          background: get(\"palette.background.gold\"),\n          \"& > h1,p\": {\n            marginLeft: 0,\n          },\n        }}\n      >\n        <Appear wrapperCmp={Subtitle} triggerOffset={50}>\n          {subtitle}\n        </Appear>\n\n        <Appear wrapperCmp={Title} triggerOffset={50} variant=\"section\">\n          {title.split(\" \")[0]}\n          <br />\n          {title.split(\" \").pop()}\n        </Appear>\n\n        <Appear\n          wrapperCmp={Paragraph}\n          triggerOffset={50}\n          sx={{\n            width: [\n              \"unset\",\n              \"unset\",\n              clampBuilder(599, 1680, 19, 40),\n              clampBuilder(599, 1680, 19, 40),\n            ],\n            color: get(\"palette.text.brown\"),\n            marginBottom: [\n              clampBuilder(320, 599, 3.375, 6.6875),\n              clampBuilder(320, 599, 3.375, 6.6875),\n              clampBuilder(599, 1680, 1.75, 4.875),\n              clampBuilder(599, 1680, 1.75, 4.875),\n            ],\n          }}\n        >\n          {description}\n        </Appear>\n\n        <Appear wrapperCmp={Box}>\n          <LinkArrowBtn to={Routes.COLLECTION} title={link} as={Link} />\n        </Appear>\n      </SectionWrapper2>\n    </Box>\n  );\n};\n\nexport default React.memo(React.forwardRef<HTMLDivElement, Props>(Collection));\n","import { graphql, useStaticQuery } from \"gatsby\";\nimport React from \"react\";\nimport { get } from \"../../constants/theme\";\nimport Box from \"../Box/Box\";\nimport { SectionWrapper2 } from \"../Styled/Containerts\";\nimport { Subtitle, Title } from \"../Styled/Text\";\nimport Appear from \"../Animations/AppearContainer\";\nimport { MainConfiguratorQuery } from \"../../types/pages/main\";\nimport ConfiguratorIframeBox from \"../Styled/ConfiguratorIframe\";\n\ninterface Props {\n  iframeHeight?: number | undefined;\n}\nconst Configurator = ({ iframeHeight }: Props) => {\n  const [isIframeVisible, setIsIframeVisible] = React.useState<\n    \"iframe-not-visible\" | \"iframe-visible\"\n  >(\"iframe-not-visible\");\n\n  const { subtitle, title, locale } =\n    useStaticQuery<MainConfiguratorQuery>(graphql`\n      query MainConfiguratorQuery {\n        translationsJson {\n          pages {\n            main {\n              sections {\n                configurator {\n                  subtitle\n                  title\n                  locale\n                }\n              }\n            }\n          }\n        }\n      }\n    `).translationsJson.pages.main.sections.configurator;\n\n  const handleIframeInterViewport = React.useCallback(() => {\n    setIsIframeVisible(\"iframe-visible\");\n  }, []);\n\n  return (\n    <>\n      <Box\n        sx={{\n          minHeight: \"calc(100vh - var(--vh-offset,0px))\",\n          position: \"relative\",\n          WebkitOverflowScrolling: \"touch\",\n          zIndex: 7,\n        }}\n      >\n        <SectionWrapper2\n          sx={{\n            display: \"flex\",\n            width: \"100%\",\n            flexDirection: \"column\",\n            alignItems: [\"center\"],\n            justifyContent: \"center\",\n            textAlign: \"center\",\n            background: get(\"palette.background.gold\"),\n            \"& > h1,p\": {\n              marginLeft: 0,\n            },\n          }}\n        >\n          <Appear wrapperCmp={Subtitle}>{subtitle}</Appear>\n          {title.map((t, i) => (\n            <Appear wrapperCmp={Title} key={i} variant=\"section\">\n              {t}\n            </Appear>\n          ))}\n        </SectionWrapper2>\n        <ConfiguratorIframeBox\n          key={isIframeVisible}\n          viewport={{ once: true }}\n          onViewportEnter={handleIframeInterViewport}\n          $iframeHeight={iframeHeight}\n          sx={{\n            background: get(\"palette.background.gold\"),\n          }}\n          src={`https://angry-sinoussi-400096.netlify.app/?locale=${\n            locale ? locale : \"en_EN\"\n          }`}\n        />\n      </Box>\n    </>\n  );\n};\n\nexport default React.memo(Configurator);\n","import css, { SystemStyleObject } from \"@styled-system/css\";\nimport { useTransform, useViewportScroll } from \"framer-motion\";\nimport { GatsbyImage, IGatsbyImageData } from \"gatsby-plugin-image\";\nimport React from \"react\";\nimport { isMobileOnly } from \"react-device-detect\";\nimport styled from \"styled-components\";\nimport { variant } from \"styled-system\";\nimport { SxProp } from \"../constants/sx\";\nimport { get } from \"../constants/theme\";\nimport { clampBuilder } from \"../helpers/sizeCalc\";\nimport useWindowSize from \"../hooks/useWindowSize\";\nimport Box from \"./Box/Box\";\nimport MotionBox from \"./Box/MotionBox\";\n\nconst CollageImageWrapper = styled(MotionBox)<\n  SxProp & { variant: \"big\" | \"small\" }\n>`\n  ${(p) =>\n    variant({\n      variants: {\n        big: {\n          top: 0,\n          left: \"50%\",\n          transform: \"translateX(-50%)\",\n          width: [\n            \"clamp(16rem, -0.1290rem + 80.6452vw, 30.0625rem)\",\n            \"clamp(16rem, -0.1290rem + 80.6452vw, 30.0625rem)\",\n            \"clamp(30rem, 10.1557rem + 53.0065vw, 65.8125rem)\",\n            \"clamp(30rem, 10.1557rem + 53.0065vw, 65.8125rem)\",\n          ],\n          height: [\n            \"clamp(10.375rem, -0.3060rem + 53.4050vw, 19.6875rem)\",\n            \"clamp(10.375rem, -0.3060rem + 53.4050vw, 19.6875rem)\",\n            \"clamp(19.8125rem, 6.8947rem + 34.5051vw, 43.125rem)\",\n            \"clamp(19.8125rem, 6.8947rem + 34.5051vw, 43.125rem)\",\n          ],\n        },\n        small: {\n          width: [\n            \"clamp(8rem, -0.0287rem + 40.1434vw, 15rem)\",\n            \"clamp(8rem, -0.0287rem + 40.1434vw, 15rem)\",\n            \"clamp(15rem, 7.9004rem + 18.9639vw, 27.8125rem)\",\n            \"clamp(15rem, 7.9004rem + 18.9639vw, 27.8125rem)\",\n          ],\n          height: [\n            \"clamp(11.375rem, -0.0228rem + 56.9892vw, 21.3125rem)\",\n            \"clamp(11.375rem, -0.0228rem + 56.9892vw, 21.3125rem)\",\n            \"clamp(18.125rem, 6.1422rem + 32.0074vw, 39.75rem)\",\n            \"clamp(18.125rem, 6.1422rem + 32.0074vw, 39.75rem)\",\n          ],\n          top: 0,\n          right: 0,\n          transform: `translateY(50%)`,\n        },\n      },\n    })}\n  position: absolute;\n  display: flex;\n  flex-direction: column;\n\n  ${(p) => p.sx && css({ ...p.sx })}\n`;\ntype Props = {\n  firstImage: {\n    image: IGatsbyImageData;\n    alt: string;\n    description: string;\n  };\n  secondImage: {\n    image: IGatsbyImageData;\n    alt: string;\n    description: string;\n  };\n  sx: SystemStyleObject;\n};\n\nconst Collage = ({ firstImage, secondImage, sx }: Props) => {\n  const { height } = useWindowSize();\n  const [smallImgOffset, setSmallImgOffset] = React.useState<number>(0);\n\n  const collageRef = React.useCallback((node: HTMLDivElement | null) => {\n    if (node !== null) {\n      setSmallImgOffset(node.offsetTop);\n    }\n  }, []);\n\n  const { scrollY } = useViewportScroll();\n\n  const translateY = useTransform(\n    scrollY,\n    [smallImgOffset - height + 230, smallImgOffset - height + height * 0.75],\n    [\"60%\", \"40%\"]\n  );\n\n  return (\n    <Box\n      sx={{\n        padding: \"0 5%\",\n        minHeight: [clampBuilder(599, 1680, 30.4375, 63)],\n        ...sx,\n      }}\n    >\n      <Box ref={collageRef} sx={{ position: \"relative\", width: \"100%\" }}>\n        <CollageImageWrapper variant=\"big\" sx={{}}>\n          <Box as={GatsbyImage} image={firstImage.image} alt={firstImage.alt} />\n          <Box\n            as=\"span\"\n            sx={{\n              display: [\"none\", \"none\", \"block\", \"block\"],\n              marginTop: \"1rem\",\n              color: get(\"palette.text.grey_gold\"),\n              fontFamily: \"custom_42266\",\n              fontWeight: 400,\n              fontSize: \"16px\",\n            }}\n          >\n            {firstImage.description}\n          </Box>\n          <CollageImageWrapper\n            style={{\n              y: !isMobileOnly ? translateY : \"40%\",\n            }}\n            sx={{ right: [\"-5%\", \"-10%\", \"-15%\", \"-15%\"] }}\n            variant=\"small\"\n          >\n            <Box\n              as={GatsbyImage}\n              image={secondImage.image}\n              alt={secondImage.alt}\n            />\n            <Box\n              as=\"span\"\n              sx={{\n                display: [\"none\", \"none\", \"block\", \"block\"],\n                marginTop: \"1rem\",\n                color: get(\"palette.text.grey_gold\"),\n                fontFamily: \"custom_42266\",\n                fontWeight: 400,\n                fontSize: \"16px\",\n              }}\n            >\n              {secondImage.description}\n            </Box>\n          </CollageImageWrapper>\n        </CollageImageWrapper>\n      </Box>\n    </Box>\n  );\n};\n\nexport default React.memo(Collage);\n","var DEFAULT_OVERSHOOT_STRENGTH = 1.525;\n\nvar reversed = function reversed(easing) {\n  return function (p) {\n    return 1 - easing(1 - p);\n  };\n};\n\nvar mirrored = function mirrored(easing) {\n  return function (p) {\n    return p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n  };\n};\n\nvar createReversedEasing = reversed;\nvar createMirroredEasing = mirrored;\n\nvar createExpoIn = function createExpoIn(power) {\n  return function (p) {\n    return Math.pow(p, power);\n  };\n};\n\nvar createBackIn = function createBackIn(power) {\n  return function (p) {\n    return p * p * ((power + 1) * p - power);\n  };\n};\n\nvar createAnticipateEasing = function createAnticipateEasing(power) {\n  var backEasing = createBackIn(power);\n  return function (p) {\n    return (p *= 2) < 1 ? 0.5 * backEasing(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n  };\n};\n\nvar linear = function linear(p) {\n  return p;\n};\n\nvar easeIn = /*#__PURE__*/createExpoIn(2);\nvar easeOut = /*#__PURE__*/reversed(easeIn);\nvar easeInOut = /*#__PURE__*/mirrored(easeIn);\n\nvar circIn = function circIn(p) {\n  return 1 - Math.sin(Math.acos(p));\n};\n\nvar circOut = /*#__PURE__*/reversed(circIn);\nvar circInOut = /*#__PURE__*/mirrored(circOut);\nvar backIn = /*#__PURE__*/createBackIn(DEFAULT_OVERSHOOT_STRENGTH);\nvar backOut = /*#__PURE__*/reversed(backIn);\nvar backInOut = /*#__PURE__*/mirrored(backIn);\nvar anticipate = /*#__PURE__*/createAnticipateEasing(DEFAULT_OVERSHOOT_STRENGTH);\nvar BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;\nvar BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;\nvar BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;\nvar ca = 4356.0 / 361.0;\nvar cb = 35442.0 / 1805.0;\nvar cc = 16061.0 / 1805.0;\n\nvar bounceOut = function bounceOut(p) {\n  var p2 = p * p;\n  return p < BOUNCE_FIRST_THRESHOLD ? 7.5625 * p2 : p < BOUNCE_SECOND_THRESHOLD ? 9.075 * p2 - 9.9 * p + 3.4 : p < BOUNCE_THIRD_THRESHOLD ? ca * p2 - cb * p + cc : 10.8 * p * p - 20.52 * p + 10.72;\n};\n\nvar bounceIn = function bounceIn(p) {\n  return 1.0 - bounceOut(1.0 - p);\n};\n\nvar bounceInOut = function bounceInOut(p) {\n  return p < 0.5 ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0)) : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;\n};\n\nvar NEWTON_ITERATIONS = 8;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar K_SPLINE_TABLE_SIZE = 11;\nvar K_SAMPLE_STEP_SIZE = 1.0 / (K_SPLINE_TABLE_SIZE - 1.0);\nvar FLOAT_32_SUPPORTED = typeof Float32Array !== 'undefined';\n\nvar a = function a(a1, a2) {\n  return 1.0 - 3.0 * a2 + 3.0 * a1;\n};\n\nvar b = function b(a1, a2) {\n  return 3.0 * a2 - 6.0 * a1;\n};\n\nvar c = function c(a1) {\n  return 3.0 * a1;\n};\n\nvar getSlope = function getSlope(t, a1, a2) {\n  return 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\n};\n\nvar calcBezier = function calcBezier(t, a1, a2) {\n  return ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n};\n\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n  var sampleValues = FLOAT_32_SUPPORTED ? new Float32Array(K_SPLINE_TABLE_SIZE) : new Array(K_SPLINE_TABLE_SIZE);\n\n  var binarySubdivide = function binarySubdivide(aX, aA, aB) {\n    var i = 0;\n    var currentX;\n    var currentT;\n\n    do {\n      currentT = aA + (aB - aA) / 2.0;\n      currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n      if (currentX > 0.0) {\n        aB = currentT;\n      } else {\n        aA = currentT;\n      }\n    } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n    return currentT;\n  };\n\n  var newtonRaphsonIterate = function newtonRaphsonIterate(aX, aGuessT) {\n    var i = 0;\n    var currentSlope = 0;\n    var currentX;\n\n    for (; i < NEWTON_ITERATIONS; ++i) {\n      currentSlope = getSlope(aGuessT, mX1, mX2);\n\n      if (currentSlope === 0.0) {\n        return aGuessT;\n      }\n\n      currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n      aGuessT -= currentX / currentSlope;\n    }\n\n    return aGuessT;\n  };\n\n  var calcSampleValues = function calcSampleValues() {\n    for (var i = 0; i < K_SPLINE_TABLE_SIZE; ++i) {\n      sampleValues[i] = calcBezier(i * K_SAMPLE_STEP_SIZE, mX1, mX2);\n    }\n  };\n\n  var getTForX = function getTForX(aX) {\n    var intervalStart = 0.0;\n    var currentSample = 1;\n    var lastSample = K_SPLINE_TABLE_SIZE - 1;\n    var dist = 0.0;\n    var guessForT = 0.0;\n    var initialSlope = 0.0;\n\n    for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n      intervalStart += K_SAMPLE_STEP_SIZE;\n    }\n\n    --currentSample;\n    dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n    guessForT = intervalStart + dist * K_SAMPLE_STEP_SIZE;\n    initialSlope = getSlope(guessForT, mX1, mX2);\n\n    if (initialSlope >= NEWTON_MIN_SLOPE) {\n      return newtonRaphsonIterate(aX, guessForT);\n    } else if (initialSlope === 0.0) {\n      return guessForT;\n    } else {\n      return binarySubdivide(aX, intervalStart, intervalStart + K_SAMPLE_STEP_SIZE);\n    }\n  };\n\n  calcSampleValues();\n\n  var resolver = function resolver(aX) {\n    var returnValue;\n\n    if (mX1 === mY1 && mX2 === mY2) {\n      returnValue = aX;\n    } else if (aX === 0) {\n      returnValue = 0;\n    } else if (aX === 1) {\n      returnValue = 1;\n    } else {\n      returnValue = calcBezier(getTForX(aX), mY1, mY2);\n    }\n\n    return returnValue;\n  };\n\n  return resolver;\n}\n\nexport { reversed, mirrored, createReversedEasing, createMirroredEasing, createExpoIn, createBackIn, createAnticipateEasing, linear, easeIn, easeOut, easeInOut, circIn, circOut, circInOut, backIn, backOut, backInOut, anticipate, bounceOut, bounceIn, bounceInOut, cubicBezier };","type ImageOriginal = {\n  width: number;\n  height: number;\n};\n\nexport const ratioCalc = ({ width, height }: ImageOriginal) => {\n  if (height > width) return width / height;\n  return height / width;\n};\n","import { easeInOut, linear } from \"@popmotion/easing\";\nimport {\n  AnimatePresence,\n  useTransform,\n  useViewportScroll,\n} from \"framer-motion\";\nimport { GatsbyImage, IGatsbyImageData } from \"gatsby-plugin-image\";\nimport React from \"react\";\nimport { ratioCalc } from \"../../../../../helpers/ratioCalc\";\nimport useWindowSize from \"../../../../../hooks/useWindowSize\";\nimport Box from \"../../../../Box/Box\";\nimport MotionBox from \"../../../../Box/MotionBox\";\n\ntype Props = {\n  imgAlt: string;\n  img: IGatsbyImageData;\n  imgContainerSize: {\n    width: number;\n    height: number;\n  };\n  imgOriginalSize: {\n    width: number;\n    height: number;\n  };\n};\n\nconst HistoryAnimatedCmp = ({\n  img,\n  imgAlt,\n  imgOriginalSize,\n  imgContainerSize,\n}: Props) => {\n  const [isFixed, setIsFixed] = React.useState<boolean>(false);\n  const { height, width } = useWindowSize();\n  const { scrollY } = useViewportScroll();\n  const [offset, setOffset] = React.useState<number>(0);\n\n  const imgRef = React.useCallback((node: any | null) => {\n    if (node !== null) {\n      setOffset(node.offsetTop);\n    }\n  }, []);\n\n  const marginTop = useTransform(\n    scrollY,\n    [offset - height / 2 + imgContainerSize.height / 2, offset],\n    [0, 0]\n  );\n\n  const top = useTransform(scrollY, [offset, offset + 500], [0, height / 2]);\n  const marginTopFixed = useTransform(\n    scrollY,\n    [offset, offset + 500],\n    [0, -imgContainerSize.height / 2]\n  );\n\n  const translateX = useTransform(\n    scrollY,\n    [offset, offset + 500],\n    [0, ((width - width * 0.05) / 6 + imgContainerSize.width) / 2]\n  );\n\n  const translateY = useTransform(scrollY, [offset, offset + 500], [0, 0], {\n    ease: linear,\n  });\n\n  const scale = useTransform(\n    scrollY,\n    [offset, offset + 500, offset + 1150, offset + 1300],\n    [\n      1,\n      height / imgContainerSize.height,\n      height / imgContainerSize.height,\n      (height * 0.9) / imgContainerSize.height,\n    ],\n    { ease: easeInOut }\n  );\n\n  const zIndex = useTransform(\n    scrollY,\n    [\n      offset - height,\n      offset - imgOriginalSize.height / 2,\n      offset,\n      offset + 1349,\n      offset + 1350,\n    ],\n    [-1, 2, 2, 2, -1]\n  );\n\n  const opacity = useTransform(\n    scrollY,\n    [offset - height - 1, offset - height, offset + 1200, offset + 1350],\n    [0, 1, 1, 0]\n  );\n\n  React.useEffect(() => {\n    const scrollSub = scrollY.onChange((v) => {\n      if (v >= offset) {\n        setIsFixed(true);\n      } else {\n        isFixed && setIsFixed(false);\n      }\n    });\n    return () => {\n      scrollSub();\n    };\n  }, [scrollY, height, isFixed, offset]);\n\n  const checkOffset = React.useCallback(\n    (v) => {\n      const newOffset = v.target.parentNode.offsetTop;\n      if (newOffset !== offset) setOffset(newOffset);\n    },\n    [offset]\n  );\n\n  return (\n    <AnimatePresence exitBeforeEnter>\n      <MotionBox\n        onViewportEnter={checkOffset}\n        ref={imgRef}\n        exit={{ transition: { duration: 1 } }}\n        layout\n        transition={{ layout: { duration: 0.3, ease: \"linear\" } }}\n        sx={{\n          height: imgContainerSize.height,\n          width: imgContainerSize.width,\n        }}\n        style={{\n          top: top as any,\n          opacity: opacity as any,\n          x: translateX as any,\n          y: isFixed ? 0 : translateY,\n          scale: scale as any,\n          position: isFixed ? \"fixed\" : \"unset\",\n          zIndex: zIndex as any,\n          willChange: \"auto\",\n          marginTop: isFixed ? (marginTopFixed as any) : (marginTop as any),\n        }}\n      >\n        <Box\n          sx={{\n            height: \"100%\",\n            width: \"100%\",\n            aspectRatio: `${ratioCalc({\n              width: imgOriginalSize.width,\n              height: imgOriginalSize.height,\n            })}`,\n            objectFit: \"contain\",\n          }}\n          imgStyle={{ objectFit: \"contain\" }}\n          as={GatsbyImage}\n          alt={imgAlt}\n          image={img}\n          loading=\"eager\"\n        />\n      </MotionBox>\n    </AnimatePresence>\n  );\n};\n\nexport default React.memo(HistoryAnimatedCmp);\n","import React from \"react\";\n\nconst useCssVariableValue = (variableName: string) => {\n  const [value, setValue] = React.useState<string | undefined>(undefined);\n\n  const getVarValue = React.useCallback(() => {\n    var style = getComputedStyle(document.body);\n    setValue(style.getPropertyValue(variableName));\n  }, [variableName]);\n\n  React.useEffect(() => {\n    getVarValue();\n  }, [getVarValue]);\n\n  return value;\n};\n\nexport default useCssVariableValue;\n","import { easeInOut } from \"@popmotion/easing\";\nimport {\n  AnimatePresence,\n  useTransform,\n  useViewportScroll,\n} from \"framer-motion\";\nimport { GatsbyImage, IGatsbyImageData } from \"gatsby-plugin-image\";\nimport React from \"react\";\nimport { ratioCalc } from \"../../../../../helpers/ratioCalc\";\nimport useCssVariableValue from \"../../../../../hooks/useCssVariableValue\";\nimport useWindowSize from \"../../../../../hooks/useWindowSize\";\nimport Box from \"../../../../Box/Box\";\nimport MotionBox from \"../../../../Box/MotionBox\";\n\ntype Props = {\n  imgAlt: string;\n  img: IGatsbyImageData;\n  imgOriginalSize: {\n    width: number;\n    height: number;\n  };\n};\nconst HistoryAnimatedCmp = ({ img, imgAlt, imgOriginalSize }: Props) => {\n  const { width, height } = useWindowSize();\n  const { scrollY } = useViewportScroll();\n  const [isFixed, setIsFixed] = React.useState<boolean>(false);\n  const [offset, setOffset] = React.useState<number>(0);\n  const isIosOffsetValue = useCssVariableValue(\"--vh-offset\");\n  const iosOffsetValue = React.useMemo(() => {\n    if (isIosOffsetValue) {\n      if (/^\\d+px$/.test(isIosOffsetValue)) {\n        return Number(isIosOffsetValue.slice(0, isIosOffsetValue.length - 2));\n      } else {\n        return 0;\n      }\n    } else {\n      return 0;\n    }\n  }, [isIosOffsetValue]);\n\n  const imgRef = React.useCallback((node: any | null) => {\n    if (node !== null) {\n      setOffset(node.offsetTop);\n      setImgContainerSize({\n        width: node.clientWidth,\n        height: node.clientHeight,\n      });\n    }\n  }, []);\n\n  const [imgContainerSize, setImgContainerSize] = React.useState<{\n    width: number;\n    height: number;\n  }>({ width: 0, height: 0 });\n\n  const marginTop = useTransform(\n    scrollY,\n    [offset - (height - imgContainerSize.height) / 2, offset + 250],\n    [0, 0 + Math.round(imgContainerSize.height)]\n  );\n\n  const marginTopFixed = useTransform(\n    scrollY,\n    [offset, offset + 250],\n    [-imgContainerSize.height / 2, -imgContainerSize.height / 2]\n  );\n\n  const scale = useTransform(\n    scrollY,\n    [\n      offset - (height - imgContainerSize.height) / 2,\n      offset + 250,\n      offset + 1150,\n      offset + 1300,\n    ],\n    [\n      1,\n      height / imgContainerSize.height,\n      height / imgContainerSize.height,\n      (0.85 * height) / imgContainerSize.height,\n    ],\n    { ease: easeInOut }\n  );\n\n  const zIndex = useTransform(\n    scrollY,\n    [offset - imgOriginalSize.height / 2, offset + 1349, offset + 1350],\n    [2, 2, -1]\n  );\n\n  const opacity = useTransform(\n    scrollY,\n    [\n      offset - height - 1 - iosOffsetValue,\n      offset - height - iosOffsetValue,\n      offset + 1300,\n      offset + 1350,\n    ],\n    [0, 1, 1, 0]\n  );\n\n  React.useEffect(() => {\n    const scrollSub = scrollY.onChange((v) => {\n      if (v >= offset - (height - imgContainerSize.height) / 2) {\n        setIsFixed(true);\n      } else {\n        isFixed && setIsFixed(false);\n      }\n    });\n    return () => {\n      scrollSub();\n    };\n  }, [scrollY, height, isFixed, offset, imgContainerSize.height]);\n\n  const checkOffset = React.useCallback(\n    (v) => {\n      const newOffset = v.target.parentNode.offsetTop;\n      if (newOffset !== offset) setOffset(newOffset);\n    },\n    [offset]\n  );\n\n  return (\n    <AnimatePresence exitBeforeEnter>\n      <MotionBox\n        ref={imgRef as any}\n        onViewportEnter={checkOffset}\n        exit={{ transition: { duration: 1 } }}\n        layout=\"size\"\n        key=\"jasperVase\"\n        layoutId=\"vase\"\n        sx={{\n          height: 374,\n          width: 261,\n          aspectRatio: `${ratioCalc({\n            width: imgOriginalSize.width,\n            height: imgOriginalSize.height,\n          })}`,\n        }}\n        style={{\n          top: isFixed\n            ? `${height / 2}px`\n            : \"calc(0px + var(--vh-offset, 0px))\",\n          opacity: opacity as any,\n          scale: scale as any,\n          position: isFixed ? \"fixed\" : \"unset\",\n          zIndex: zIndex as any,\n          willChange: \"auto\",\n          left: `${width / 2}px`,\n\n          marginTop: isFixed ? (marginTopFixed as any) : (marginTop as any),\n          marginRight: isFixed ? \"0\" : \"auto\",\n          marginLeft: isFixed ? `-${imgContainerSize.width / 2}px` : \"auto\",\n          marginBottom: 0,\n        }}\n      >\n        <Box\n          sx={{\n            height: \"100%\",\n            width: \"100%\",\n            aspectRatio: `${ratioCalc({\n              width: imgOriginalSize.width,\n              height: imgOriginalSize.height,\n            })}`,\n            objectFit: \"contain\",\n          }}\n          imgStyle={{ objectFit: \"contain\" }}\n          as={GatsbyImage}\n          alt={imgAlt}\n          image={img}\n          loading=\"eager\"\n        />\n      </MotionBox>\n    </AnimatePresence>\n  );\n};\n\nexport default React.memo(HistoryAnimatedCmp);\n","import { useTransform, useViewportScroll } from \"framer-motion\";\nimport { graphql, Link, useStaticQuery } from \"gatsby\";\nimport { GatsbyImage } from \"gatsby-plugin-image\";\nimport React from \"react\";\nimport { clampBuilder } from \"../../helpers/sizeCalc\";\nimport useWindowSize from \"../../hooks/useWindowSize\";\nimport { Routes } from \"../../routes\";\nimport { HistorySectionQuery } from \"../../types/pages/main\";\nimport Box from \"../Box/Box\";\nimport MotionBox from \"../Box/MotionBox\";\nimport Collage from \"../Collage\";\nimport LinkArrowBtn from \"../LinkArrowBtn\";\nimport { SectionWrapper2 } from \"../Styled/Containerts\";\nimport { Paragraph, Paragraph2, Subtitle, Title } from \"../Styled/Text\";\nimport AppearAnimationContainer from \"../Animations/AppearContainer\";\nimport { get } from \"../../constants/theme\";\nimport VaseDesktop from \"./history/animated/desktop\";\nimport VaseMobile from \"./history/animated/mobile\";\n\ninterface Props {\n  setVaseEnding: (offset: number) => void;\n}\n\nconst History = (\n  { setVaseEnding }: Props,\n  ref: React.ForwardedRef<HTMLDivElement | null>\n) => {\n  const [isBgCover, setIsBgCover] = React.useState<boolean>(false);\n  const [imgContainerSize, setImgContainerSize] = React.useState<{\n    width: number;\n    height: number;\n  }>({ width: 0, height: 0 });\n\n  const [timelinePosition, setTimelinePosition] = React.useState<{\n    start: number;\n    end: number;\n  }>({ start: 0, end: 0 });\n  const [offset, setOffset] = React.useState<number>(0);\n  const { scrollY } = useViewportScroll();\n  const { width, height } = useWindowSize();\n\n  const lastPostImageContainerRef = React.useCallback(\n    (node: any | null) => {\n      if (node !== null) {\n        setOffset(node.offsetTop);\n        setVaseEnding(node.offsetTop + 1350);\n        setImgContainerSize({\n          width: node.clientWidth,\n          height: node.clientHeight,\n        });\n      }\n    },\n    [setVaseEnding]\n  );\n\n  const timelineStart = React.useCallback((node: HTMLElement | null) => {\n    if (node !== null) {\n      setTimelinePosition((prev) => ({\n        ...prev,\n        start: node.offsetTop + 50,\n      }));\n    }\n  }, []);\n\n  const timelineEnd = React.useCallback((node: HTMLElement | null) => {\n    if (node !== null) {\n      setTimelinePosition((prev) => ({\n        ...prev,\n        end: node.offsetTop,\n      }));\n    }\n  }, []);\n\n  const ringOpacity = useTransform(\n    scrollY,\n    [\n      width < 768 ? offset + 250 : offset + 750,\n      offset + 900,\n      offset + 1100,\n      offset + 1250,\n    ],\n    [0, 1, 1, 0]\n  );\n\n  const ringYTranslate = useTransform(\n    scrollY,\n    [width < 768 ? offset + 250 : offset + 700, offset + 850],\n    [\"0%\", `${-147.5}px`]\n  );\n\n  const zIndex = useTransform(\n    scrollY,\n    [offset, offset + 1300, offset + 1350],\n    [2, 2, -1]\n  );\n\n  const zIndexBg = useTransform(\n    scrollY,\n    [offset, offset + 1300, offset + 1600],\n    [1, 1, -1]\n  );\n\n  const bgOpacity = useTransform(scrollY, [offset, offset + 500], [0, 1]);\n\n  React.useEffect(() => {\n    const sub = scrollY.onChange((v) => {\n      if (width < 768) {\n        if (v > offset) {\n          setIsBgCover(true);\n        } else {\n          setIsBgCover(false);\n        }\n      } else {\n        if (v > offset + 200) {\n          setIsBgCover(true);\n        } else {\n          setIsBgCover(false);\n        }\n      }\n    });\n\n    return () => {\n      sub();\n    };\n  }, [scrollY, offset, imgContainerSize, height, width]);\n\n  const { title, subtitle, description, header } =\n    useStaticQuery<HistorySectionQuery>(graphql`\n      query HistorySectionQuery {\n        translationsJson {\n          pages {\n            main {\n              sections {\n                history {\n                  subtitle\n                  title\n                  description\n                  header {\n                    title\n                    posts {\n                      title\n                      imageAlt\n                      description\n                      image {\n                        childImageSharp {\n                          gatsbyImageData\n                          original {\n                            width\n                            height\n                          }\n                        }\n                      }\n                    }\n                    link\n                    images {\n                      image {\n                        childImageSharp {\n                          gatsbyImageData\n                        }\n                      }\n                      imageAlt\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    `).translationsJson.pages.main.sections.history;\n\n  return (\n    <Box sx={{ zIndex: 5 }}>\n      <SectionWrapper2\n        sx={{ zIndex: 2, display: \"flex\", justifyContent: \"center\" }}\n      >\n        <AppearAnimationContainer wrapperCmp={Subtitle}>\n          {subtitle}\n        </AppearAnimationContainer>\n        <AppearAnimationContainer\n          wrapperCmp={Title}\n          variant=\"section\"\n          sx={{ textAlign: \"center\" }}\n        >\n          {title}\n        </AppearAnimationContainer>\n        <Box\n          sx={{\n            display: \"flex\",\n            justifyContent: \"center\",\n          }}\n        >\n          <AppearAnimationContainer\n            wrapperCmp={Paragraph2}\n            variant=\"normal\"\n            sx={{\n              width: [\n                \"100%\",\n                \"100%\",\n                clampBuilder(599, 1680, 19.1875, 39.625),\n                clampBuilder(599, 1680, 19.1875, 39.625),\n              ],\n              textAlign: \"center\",\n              padding: \"0\",\n            }}\n          >\n            {description}\n          </AppearAnimationContainer>\n        </Box>\n      </SectionWrapper2>\n      <Box\n        ref={timelineStart}\n        sx={{\n          width: 0,\n          height: 0,\n          background: \"transparent\",\n          opacity: 0,\n          visibility: \"hidden\",\n        }}\n      />\n      <AppearAnimationContainer\n        wrapperCmp={Title}\n        sx={{\n          width: \"100%\",\n          textAlign: \"center\",\n          marginBottom: [\n            clampBuilder(320, 599, 2.75, 3),\n            clampBuilder(320, 599, 2.75, 3),\n            clampBuilder(599, 1680, 3.75, 9.6875),\n            clampBuilder(599, 1680, 3.75, 9.6875),\n          ],\n        }}\n        variant=\"fancy\"\n      >\n        {header.title}\n        <br />\n        1721\n      </AppearAnimationContainer>\n\n      {width >= 768 && (\n        <Box\n          sx={{\n            display: \"flex\",\n            flexDirection: [\n              \"column-reverse\",\n              \"column-reverse\",\n              \"column\",\n              \"column\",\n            ],\n            marginBottom: [\n              clampBuilder(320, 599, 3.375, 6.6875),\n              clampBuilder(320, 599, 3.375, 6.6875),\n              0,\n              0,\n            ],\n          }}\n        >\n          <Collage\n            sx={{ zIndex: 2 }}\n            firstImage={{\n              image: header.images[0].image.childImageSharp.gatsbyImageData,\n              alt: header.images[0].imageAlt,\n              description: header.images[0].imageAlt,\n            }}\n            secondImage={{\n              image: header.images[1].image.childImageSharp.gatsbyImageData,\n              alt: header.images[1].imageAlt,\n              description: header.images[1].imageAlt,\n            }}\n          />\n          <Box\n            sx={{\n              display: \"flex\",\n              flexDirection: [\"column\", \"column\", \"row\", \"row\"],\n              justifyContent: \"space-between\",\n              marginBottom: [\n                clampBuilder(320, 599, 3.375, 6.6875),\n                clampBuilder(320, 599, 3.375, 6.6875),\n                0,\n                0,\n              ],\n            }}\n          ></Box>\n        </Box>\n      )}\n\n      <Box\n        sx={{\n          display: \"grid\",\n          gridTemplateColumns: \"repeat(12, 1fr)\",\n          alignItems: \"center\",\n          flexDirection: [\"column\", \"column\", \"row\", \"row\"],\n          justifyContent: \"space-between\",\n          minHeight: [\n            clampBuilder(599, 1680, 17.5, 31.8125),\n            clampBuilder(599, 1680, 17.5, 31.8125),\n          ],\n          width: \"100%\",\n          padding: \"0 2.5%\",\n          \"& > :nth-child(1n)\": {\n            flex: 1,\n          },\n          marginBottom: \"2rem\",\n        }}\n      >\n        <AppearAnimationContainer\n          wrapperCmp={Box}\n          sx={{\n            display: \"flex\",\n            alignItems: \"center\",\n            justifyContent: \"center\",\n            gridColumnStart: [1, 2, 2, 2],\n            gridColumnEnd: [13, 6, 6, 6],\n            gridRowStart: [1, 1, 1, 1],\n          }}\n        >\n          <Box\n            sx={{\n              maxWidth: [\n                clampBuilder(320, 599, 4.625, 8.875),\n                clampBuilder(320, 599, 4.625, 8.875),\n                clampBuilder(599, 1680, 3.4375, 7.625),\n                clampBuilder(599, 1680, 3.4375, 7.625),\n              ],\n              maxHeight: [\n                clampBuilder(320, 599, 6.875, 13),\n                clampBuilder(320, 599, 6.875, 13),\n                clampBuilder(599, 1680, 5.625, 11.5625),\n                clampBuilder(599, 1680, 5.625, 11.5625),\n              ],\n              marginBottom: [\"2rem\"],\n            }}\n            //sx={{ height: \"84px\", width: \"58px\" }}\n            //sx={{ height: \"185px\", width: \"122px\" }}\n            as={GatsbyImage}\n            image={header.posts[0].image.childImageSharp.gatsbyImageData}\n            alt=\"\"\n            loading=\"eager\"\n          />\n        </AppearAnimationContainer>\n\n        <Box\n          sx={{\n            display: \"flex\",\n            gridColumnStart: [1, 2, 2, 2],\n            gridColumnEnd: [13, 6, 6, 6],\n            gridRowStart: [2, 2, 2, 2],\n            flexDirection: \"column\",\n            justifyContent: \"center\",\n            alignItems: \"center\",\n            fontWeight: 400,\n            fontFamily: \"custom_42264\",\n            color: get(\"palette.text.brown\"),\n            textAlign: [\"left\", \"left\", \"center\", \"center\"],\n            fontSize: \"1.5vmax\",\n            width: \"100%\",\n            marginTop: [0, 0, 0, 0],\n            marginBottom: [\"20px\", 0, 0, 0],\n          }}\n        >\n          <AppearAnimationContainer\n            wrapperCmp={Title}\n            sx={{\n              alignSelf: \"center\",\n\n              textAlign: \"center\",\n            }}\n            variant=\"paragraph\"\n          >\n            {header.posts[0].title}\n          </AppearAnimationContainer>\n          <AppearAnimationContainer\n            wrapperCmp={Paragraph}\n            sx={{\n              textAlign: \"center\",\n\n              alignSelf: \"center\",\n              width: \"100%\",\n            }}\n          >\n            {header.posts[0].description}\n          </AppearAnimationContainer>\n        </Box>\n        <Box\n          sx={{\n            marginBottom: \"20px\",\n            gridColumnStart: [1, 8, 8, 8],\n            gridColumnEnd: [13, 12, 12, 12],\n            gridRowStart: [3, 3, 3, 3],\n          }}\n        ></Box>\n      </Box>\n\n      {width < 768 && (\n        <Box\n          sx={{\n            display: \"flex\",\n            flexDirection: [\n              \"column-reverse\",\n              \"column-reverse\",\n              \"column\",\n              \"column\",\n            ],\n          }}\n        >\n          <Collage\n            sx={{ zIndex: 2 }}\n            firstImage={{\n              image: header.images[0].image.childImageSharp.gatsbyImageData,\n              alt: header.images[0].imageAlt,\n              description: header.images[0].imageAlt,\n            }}\n            secondImage={{\n              image: header.images[1].image.childImageSharp.gatsbyImageData,\n              alt: header.images[1].imageAlt,\n              description: header.images[1].imageAlt,\n            }}\n          />\n          <Box\n            sx={{\n              display: \"flex\",\n              flexDirection: [\"column\", \"column\", \"row\", \"row\"],\n              justifyContent: \"space-between\",\n              marginBottom: [\n                clampBuilder(320, 599, 3.375, 6.6875),\n                clampBuilder(320, 599, 3.375, 6.6875),\n                0,\n                0,\n              ],\n            }}\n          ></Box>\n        </Box>\n      )}\n\n      <Box\n        sx={{\n          display: \"grid\",\n          alignItems: \"flex-start\",\n          gridTemplateColumns: \"repeat(12, 1fr)\",\n          flexDirection: [\"column\", \"column\", \"row\", \"row\"],\n          justifyContent: \"space-between\",\n          minHeight: [\n            clampBuilder(599, 1680, 17.5, 31.8125),\n            clampBuilder(599, 1680, 17.5, 31.8125),\n          ],\n          width: \"100%\",\n          padding: \"0 2.5%\",\n          \"& > :nth-child(1n)\": {\n            flex: 1,\n          },\n        }}\n      >\n        <Box\n          ref={lastPostImageContainerRef as any}\n          sx={{\n            marginBottom: [0, 0, 0, 0],\n            gridColumnStart: [1, 2, 2, 2],\n            gridColumnEnd: [13, 6, 6, 6],\n            width: \"100%\",\n            height: \"100%\",\n            position: \"relative\",\n          }}\n        >\n          {width < 768 ? (\n            <VaseMobile\n              imgOriginalSize={{\n                width: header.posts[1].image.childImageSharp.original.width,\n                height: header.posts[1].image.childImageSharp.original.height,\n              }}\n              img={header.posts[1].image.childImageSharp.gatsbyImageData}\n              imgAlt={header.posts[1].imageAlt}\n            />\n          ) : (\n            <VaseDesktop\n              imgContainerSize={{\n                width: imgContainerSize.width,\n                height: imgContainerSize.height,\n              }}\n              imgOriginalSize={{\n                width: header.posts[1].image.childImageSharp.original.width,\n                height: header.posts[1].image.childImageSharp.original.height,\n              }}\n              img={header.posts[1].image.childImageSharp.gatsbyImageData}\n              imgAlt={header.posts[1].imageAlt}\n            />\n          )}\n        </Box>\n        <Box\n          sx={{\n            display: \"flex\",\n            gridColumnStart: [1, 8, 8, 8],\n            gridColumnEnd: [13, 12, 12, 12],\n            gridRowStart: [1, 1, 1, 1],\n            flexDirection: \"column\",\n            justifyContent: \"center\",\n            alignItems: \"center\",\n            fontWeight: 400,\n            fontFamily: \"custom_42264\",\n            color: get(\"palette.text.brown\"),\n            textAlign: [\"center\", \"center\", \"center\", \"center\"],\n            fontSize: \"1.5vmax\",\n            width: \"100%\",\n            marginTop: [\"80px\", 0, 0, 0],\n            marginBottom: [\"20px\", 0, 0, 0],\n          }}\n        >\n          <AppearAnimationContainer\n            wrapperCmp={Title}\n            sx={{\n              alignSelf: \"center\",\n              textAlign: \"center\",\n            }}\n            variant=\"paragraph\"\n          >\n            {header.posts[1].title}\n          </AppearAnimationContainer>\n          <AppearAnimationContainer\n            wrapperCmp={Paragraph}\n            sx={{\n              textAlign: \"center\",\n              alignSelf: \"center\",\n              width: \"100%\",\n              marginBottom: \"2rem\",\n            }}\n          >\n            {header.posts[1].description}\n          </AppearAnimationContainer>\n          <AppearAnimationContainer\n            triggerOffset={-100}\n            sx={{ justifyContent: [\"left\"] }}\n          >\n            <LinkArrowBtn title={header.link} to={Routes.HISTORY} as={Link} />\n          </AppearAnimationContainer>\n        </Box>\n      </Box>\n      <Box\n        ref={timelineEnd}\n        sx={{\n          width: 0,\n          height: 0,\n          background: \"transparent\",\n          opacity: 0,\n          visibility: \"hidden\",\n        }}\n      />\n      <Box ref={ref} sx={{ minHeight: \"1300px\" }} />\n\n      <Box\n        sx={{\n          position: \"absolute\",\n          top: timelinePosition.start,\n          left: \"50%\",\n          minHeight: `${\n            timelinePosition.end - timelinePosition.start + height * 0.5\n          }px`,\n          width: \"0.5px\",\n          background: get(\"palette.text.dark_gold\"),\n          zIndex: 1,\n          marginTop: [\n            clampBuilder(320, 599, 2.75, 3),\n            clampBuilder(320, 599, 2.75, 3),\n            clampBuilder(599, 1680, 3.75, 9.6875),\n            clampBuilder(599, 1680, 3.75, 9.6875),\n          ],\n          display: [\"none\", \"none\", \"none\", \"block\"],\n          // transform: `translateY(-${height * 0.05}px)`,\n        }}\n      >\n        <Box\n          sx={{\n            left: \"50%\",\n            position: \"absolute\",\n            width: \"6px\",\n            height: \"6px\",\n            transform: \"rotate(45deg)\",\n            background: get(\"palette.text.dark_gold\"),\n            marginLeft: \"-3px\",\n          }}\n        />\n      </Box>\n      <MotionBox\n        sx={{\n          position: \"fixed\",\n          top: `${height / 2}px`,\n          left: \"50%\",\n          width: 295,\n          height: 295,\n          borderRadius: \"50%\",\n          border: \"1px solid white\",\n          background: \"transparent\",\n          transform: \"translateX(-50%)\",\n        }}\n        style={{\n          opacity: ringOpacity as any,\n          scale: width < 768 ? 0.75 : 1,\n          x: \"-50%\",\n          zIndex: zIndex as any,\n          marginTop: ringYTranslate as any,\n        }}\n      >\n        <MotionBox\n          sx={{\n            position: \"absolute\",\n            top: \"50%\",\n            left: \"50%\",\n            width: \"75%\",\n            height: \"75%\",\n            borderRadius: \"50%\",\n            border: \"1px solid white\",\n            transform: \"translateX(-50%) translateY(-50%)\",\n          }}\n        />\n      </MotionBox>\n      {isBgCover && (\n        <MotionBox\n          sx={{\n            position: \"fixed\",\n            left: 0,\n            top: 0,\n            height: \"100%\",\n            width: width,\n            background: get(\"palette.background.gold\"),\n          }}\n          style={{ opacity: bgOpacity as any, zIndex: zIndexBg as any }}\n        />\n      )}\n    </Box>\n  );\n};\n\nexport default React.memo(React.forwardRef<HTMLDivElement, Props>(History));\n","import { graphql, useStaticQuery } from \"gatsby\";\nimport { GatsbyImage } from \"gatsby-plugin-image\";\nimport React from \"react\";\nimport { get } from \"../../constants/theme\";\nimport { clampBuilder } from \"../../helpers/sizeCalc\";\nimport { ManufacturingQuery } from \"../../types/pages/main\";\nimport Appear from \"../Animations/AppearContainer\";\nimport Box from \"../Box/Box\";\nimport { SectionWrapper2 } from \"../Styled/Containerts\";\nimport { Paragraph, Subtitle, Title } from \"../Styled/Text\";\nimport GridSection from \"../GridSection\";\nimport Wrapper from \"../Wrapper\";\n\n\ntype Props = {};\n\nconst Manufacturing = (props: Props) => {\n  const { subtitle, title, description, header, footer, sections } =\n    useStaticQuery<ManufacturingQuery>(graphql`\n      query ManafacturingQuery {\n        translationsJson {\n          pages {\n            main {\n              sections {\n                manufacturing {\n                  description\n                  footer {\n                    description\n                    image {\n                      id\n                      name\n                      childImageSharp {\n                        gatsbyImageData\n                      }\n                    }\n                    imageAlt\n                    title\n                  }\n                  header {\n                    imageAlt\n                    image {\n                      id\n                      name\n                      childImageSharp {\n                        gatsbyImageData\n                      }\n                    }\n                  }\n                  sections {\n                    description\n                    imageAlt\n                    title\n                    image {\n                      id\n                      name\n                      childImageSharp {\n                        gatsbyImageData\n                      }\n                    }\n                  }\n                  subtitle\n                  title\n                }\n              }\n            }\n          }\n        }\n      }\n    `).translationsJson.pages.main.sections.manufacturing;\n\n  return (\n    <>\n      <Box\n        sx={{\n          background: get(\"palette.background.primary\"),\n        }}\n      >\n        <SectionWrapper2 sx={{ width: \"100%\" }}>\n          <Appear wrapperCmp={Subtitle}>{subtitle}</Appear>\n          <Appear\n            wrapperCmp={Title}\n            sx={{ textAlign: [\"center\", \"center\", \"center\", \"center\"] }}\n            variant=\"section\"\n          >\n            {title.split(\" \")[0]}\n            <br />\n            {title.split(\" \").pop()}\n          </Appear>\n          <Box\n        sx={{\n          display: \"flex\",\n          justifyContent: \"center\",\n        }}>\n          <Appear\n            wrapperCmp={Paragraph}\n            sx={{\n              width: [\n                \"unset\",\n                \"unset\",\n                clampBuilder(599, 1680, 19, 40),\n                clampBuilder(599, 1680, 19, 40),\n              ],\n              textAlign: [\"center\", \"center\", \"center\", \"center\"],\n              color: get(\"palette.text.brown\"),\n            }}\n          >\n            {description}\n          </Appear>\n          </Box>\n        </SectionWrapper2>\n        <Box\n          sx={{\n            display: \"flex\",\n            position: \"relative\",\n            flexDirection: \"column\",\n            alignItems: \"center\",\n            zIndex: 5,\n          }}\n        >\n          <Box\n            sx={{\n              width: [\n                clampBuilder(320, 599, 16.125, 31),\n                clampBuilder(320, 599, 16.125, 31),\n                clampBuilder(599, 1680, 30.125, 65.75),\n                clampBuilder(599, 1680, 30.125, 65.75),\n              ],\n              height: [\n                clampBuilder(320, 599, 10.6875, 20.375),\n                clampBuilder(320, 599, 10.6875, 20.375),\n                clampBuilder(599, 1680, 20, 43.125), // 496 326 // 258 171\n                clampBuilder(599, 1680, 20, 43.125),\n              ],\n              marginLeft: [\n                0,\n                0,\n                0,\n                0,\n              ],\n              marginBottom: [\n                clampBuilder(599, 1680, 7, 12.8125),\n                clampBuilder(599, 1680, 7, 12.8125),\n              ],\n            }}\n          >\n            <Box\n              sx={{ width: \"100%\", height: \"100%\" }}\n              as={GatsbyImage} // 1052 690 // 482 320\n              image={header.image.childImageSharp.gatsbyImageData}\n              alt={header.imageAlt}\n              loading=\"eager\"\n            />\n          </Box>\n        </Box>\n        <Box\n          sx={{\n            paddingBottom: [0, 0, \"10rem\", \"10rem\"],\n          }}\n        >\n          <Wrapper>\n          <GridSection\n            firstChildrenType=\"textBox\"\n            secondChildrenType=\"imageBox\"\n          >\n            <>\n              <Title\n                sx={{\n                  alignSelf: \"center\",\n\n                  textAlign: \"center\",\n                  width: \"100%\",\n                }}\n                variant=\"paragraph\"\n              >\n                {sections[0].title}\n              </Title>\n              <Paragraph\n                sx={{\n                  textAlign: \"center\",\n\n                  alignSelf: \"center\",\n                  width: \"100%\",\n                }}\n              >\n                {sections[0].description}\n              </Paragraph>\n            </>\n            <>\n              <Box\n                as={GatsbyImage}\n                sx={{}}\n                alt={sections[0].imageAlt}\n                image={sections[0].image.childImageSharp.gatsbyImageData}\n              />\n            </>\n          </GridSection>\n\n          <GridSection\n            firstChildrenType=\"imageBox\"\n            secondChildrenType=\"textBox\"\n          >\n            <>\n              <Box\n                as={GatsbyImage}\n                sx={{marginBottom: 0}}\n                alt={sections[1].imageAlt}\n                image={sections[1].image.childImageSharp.gatsbyImageData}\n              />\n            </>\n            <>\n              <Title\n                sx={{\n                  alignSelf: \"center\",\n\n                  textAlign: \"center\",\n                  width: \"100%\",\n                }}\n                variant=\"paragraph\"\n              >\n                {sections[1].title}\n              </Title>\n              <Paragraph\n                sx={{\n                  textAlign: \"center\",\n\n                  alignSelf: \"center\",\n                  //width: \"100%\",\n                }}\n              >\n                {sections[1].description}\n              </Paragraph>\n            </>\n          </GridSection>\n          </Wrapper>\n        </Box>\n      </Box>\n    </>\n  );\n};\n\nexport default React.memo(Manufacturing);\n","import { SystemStyleObject } from \"@styled-system/css\";\nimport { MotionValue, useTransform, useViewportScroll } from \"framer-motion\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport { GatsbyImage } from \"gatsby-plugin-image\";\nimport { Paragraph } from \"../Styled/Text\";\nimport React from \"react\";\nimport useWindowSize from \"../../hooks/useWindowSize\";\nimport { PresentationQuery } from \"../../types/pages/main\";\nimport Box from \"../Box/Box\";\nimport MotionBox from \"../Box/MotionBox\";\n\ninterface AnimationProps {\n  isLeading?: boolean;\n  offset: number;\n  image: any;\n  title: string;\n  scrollY: MotionValue<number>;\n  elmViewportPosition: {\n    start: number;\n    end: number;\n  };\n  sx?: SystemStyleObject;\n}\n\nconst Ring = React.memo(\n  React.forwardRef(\n    (\n      {\n        scrollY,\n        elmViewportPosition,\n        image,\n        title,\n        sx,\n        offset,\n        isLeading = false,\n      }: AnimationProps,\n      ref: any\n    ) => {\n      const { height, width } = useWindowSize();\n\n      const zIndex = useTransform(scrollY, [offset, offset + 1], [-1, 6]);\n\n      const scale = useTransform(\n        scrollY,\n        isLeading\n          ? [elmViewportPosition.start - 150, elmViewportPosition.end + 100]\n          : [offset - 50, offset],\n        isLeading\n          ? [width < 768 ? 0.65 : 1, width < 768 ? 1 : 1.05]\n          : [width < 768 ? 0.75 : 1, width < 768 ? 1 : 1.05]\n      );\n\n      const opacity = useTransform(\n        scrollY,\n        isLeading\n          ? [\n              elmViewportPosition.start + 50,\n              elmViewportPosition.start + 100,\n              elmViewportPosition.end + 200,\n              elmViewportPosition.end + 414,\n            ]\n          : [\n              elmViewportPosition.start - 10,\n              elmViewportPosition.start + 75,\n              elmViewportPosition.end + 75,\n            ],\n\n        isLeading ? [0, 1, 1, 0] : [0, 1, 0]\n      );\n\n      return (\n        <MotionBox\n          ref={ref}\n          style={{\n            opacity: opacity as any,\n            scale: scale as any,\n            translateX: \"-50%\",\n            // translateY: `-2055px`,\n            zIndex: zIndex as any,\n          }}\n          sx={{\n            position: \"fixed\",\n            width: \"297px\",\n            height: \"297px\",\n            left: \"50%\",\n            top: `${height / 2}px`,\n            marginTop: \"-148.5px\",\n            ...sx,\n          }}\n        >\n          <Box as={GatsbyImage} image={image} alt=\"\" loading=\"eager\" />\n          <Paragraph\n            sx={{\n              textAlign: \"center\",\n              textTransform: \"uppercase\",\n              paddingTop: \"30px\",\n            }}\n          >\n            {title}\n          </Paragraph>\n        </MotionBox>\n      );\n    }\n  )\n);\n\ninterface WatchProps extends AnimationProps {\n  position: \"middle\" | \"left\" | \"right\";\n}\n\nconst Watch = React.memo(\n  React.forwardRef<HTMLElement, WatchProps>(\n    (\n      { scrollY, elmViewportPosition, image, title, sx, position }: WatchProps,\n      ref: React.ForwardedRef<HTMLElement | null>\n    ) => {\n      const { height } = useWindowSize();\n      const [marg, setMarg] = React.useState<number>(0);\n      const [scrollDiff, setScrollDiff] = React.useState<number>(0);\n\n      const opacity = useTransform(\n        scrollY,\n        [elmViewportPosition.start, elmViewportPosition.end + 200],\n        [0, 1]\n      );\n\n      const watchHeight = useTransform(\n        scrollY,\n        [\n          elmViewportPosition.start - 200,\n          elmViewportPosition.start,\n          elmViewportPosition.end + 200,\n        ],\n        [0, 609, 467]\n      );\n\n      const width = useTransform(\n        scrollY,\n        [\n          elmViewportPosition.start - 200,\n          elmViewportPosition.start,\n          elmViewportPosition.end + 200,\n        ],\n        [0, 382.65, 293]\n      );\n\n      const marginTop = useTransform(\n        scrollY,\n        [\n          elmViewportPosition.start,\n          elmViewportPosition.end + 200,\n          elmViewportPosition.end + 297,\n        ],\n        [-marg / 2, -marg / 2, scrollDiff]\n      );\n\n      const { left, right, transform } = React.useMemo(() => {\n        switch (position) {\n          case \"right\":\n            return { right: \"10%\", transform: undefined };\n          case \"left\":\n            return { left: \"10%\", transform: undefined };\n          case \"middle\":\n            return { left: \"50%\", transform: \"translateX(-50%)\" };\n        }\n      }, [position]);\n\n      React.useEffect(() => {\n        const heighSub = watchHeight.onChange((v) => {\n          setMarg(v);\n        });\n        const unsubcribe = scrollY.onChange((v) => {\n          setScrollDiff(elmViewportPosition.end - v);\n        });\n        return () => {\n          unsubcribe();\n          heighSub();\n        };\n      }, [scrollY, elmViewportPosition.end, watchHeight]);\n\n      return (\n        <MotionBox\n          ref={ref as any}\n          style={{\n            opacity: opacity as any,\n            width: width as any,\n            height: watchHeight as any,\n            marginTop: marginTop as any,\n          }}\n          sx={{\n            position: \"fixed\",\n            top: `${height / 2}px`,\n            left: left,\n            right: right,\n            transform: `${transform ? transform : \"\"}`,\n            ...sx,\n          }}\n        >\n          <Box as={GatsbyImage} image={image} alt=\"\" loading=\"eager\" />\n          <Paragraph\n            sx={{\n              textAlign: \"center\",\n              textTransform: \"uppercase\",\n              paddingTop: \"30px\",\n            }}\n          >\n            {title}\n          </Paragraph>\n        </MotionBox>\n      );\n    }\n  )\n);\n\ninterface Props {\n  vaseEnding: number;\n}\n\nconst RingsCollection = (\n  { vaseEnding }: Props,\n  ref: React.ForwardedRef<(HTMLDivElement | SVGElement) | null>\n) => {\n  const { scrollY } = useViewportScroll();\n  const [offset, setOffset] = React.useState<number>(0);\n  const { height, width } = useWindowSize();\n\n  // const containerRef = React.useCallback(\n  //   (node: HTMLDivElement | null) => {\n  //     if (node !== null) {\n  //     }\n  //   },\n  //   [vaseEnding]\n  // );\n\n  React.useEffect(() => {\n    setOffset(vaseEnding - 350);\n  }, [vaseEnding, width, height]);\n\n  const bg = useTransform(\n    scrollY,\n    [offset, offset + 594],\n    [\"#fff\", \"rgb(248,245,240)\"]\n  );\n\n  const { presentation, watches } = useStaticQuery<PresentationQuery>(graphql`\n    query PresentationQuery {\n      translationsJson {\n        pages {\n          main {\n            sections {\n              presentation {\n                image {\n                  childImageSharp {\n                    gatsbyImageData\n                  }\n                }\n                order\n              }\n              watches {\n                left {\n                  title\n                  image {\n                    childImageSharp {\n                      gatsbyImageData\n                    }\n                  }\n                  imageAlt\n                }\n                middle {\n                  title\n                  image {\n                    childImageSharp {\n                      gatsbyImageData\n                    }\n                  }\n                  imageAlt\n                }\n                right {\n                  title\n                  image {\n                    childImageSharp {\n                      gatsbyImageData\n                    }\n                  }\n                  imageAlt\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  `).translationsJson.pages.main.sections;\n\n  return (\n    <MotionBox ref={ref as any} style={{ background: bg as any }}>\n      <MotionBox\n        sx={{\n          height:\n            width < 768\n              ? `${\n                  297 * (presentation.length + 1) + 594 + height + 297 - 350\n                }px`\n              : `${\n                  297 * (presentation.length + 1) + 594 + height + 297 - height\n                }px`,\n          minHeight:\n            width < 768\n              ? `${\n                  297 * (presentation.length + 1) + 594 + height + 297 - 350\n                }px`\n              : `${\n                  297 * (presentation.length + 1) + 594 + height + 297 - height\n                }px`,\n          width: \"100%\",\n        }}\n      >\n        {presentation.map((n, i) => (\n          <Ring\n            isLeading={i === 0}\n            offset={offset}\n            key={i}\n            image={n.image.childImageSharp.gatsbyImageData}\n            scrollY={scrollY}\n            elmViewportPosition={{\n              start: i === 0 ? offset - 297 * i : offset + 297 * i + 594,\n              end:\n                i === 0 ? offset + 594 * (i + 1) : offset + 297 * (i + 1) + 594,\n            }}\n            title={\"\"}\n          />\n        ))}\n        <Box>\n          <Watch\n            offset={offset}\n            position=\"left\"\n            sx={{ display: [\"none\", \"none\", \"none\", \"block\"] }}\n            image={watches.left.image.childImageSharp.gatsbyImageData}\n            scrollY={scrollY}\n            elmViewportPosition={{\n              start: offset + 297 * presentation.length + 594,\n              end:\n                width < 768\n                  ? offset + 297 * (presentation.length + 1) + 594\n                  : offset + 297 * (presentation.length + 1) + 750,\n            }}\n            title={watches.left.title}\n          />\n          <Watch\n            offset={offset}\n            position=\"middle\"\n            image={watches.middle.image.childImageSharp.gatsbyImageData}\n            scrollY={scrollY}\n            elmViewportPosition={{\n              start: offset + 297 * presentation.length + 445.5,\n              end:\n                width < 768\n                  ? offset + 297 * (presentation.length + 1) + 594\n                  : offset + 297 * (presentation.length + 1) + 750,\n            }}\n            sx={{}}\n            title={watches.middle.title}\n          />\n          <Watch\n            offset={offset}\n            position=\"right\"\n            sx={{ display: [\"none\", \"none\", \"none\", \"block\"] }}\n            image={watches.right.image.childImageSharp.gatsbyImageData}\n            scrollY={scrollY}\n            elmViewportPosition={{\n              start: offset + 297 * presentation.length + 594,\n              end:\n                width < 768\n                  ? offset + 297 * (presentation.length + 1) + 594\n                  : offset + 297 * (presentation.length + 1) + 750,\n            }}\n            title={watches.right.title}\n          />\n        </Box>\n      </MotionBox>\n    </MotionBox>\n  );\n};\n\nexport default React.memo(\n  React.forwardRef<HTMLDivElement | SVGElement, Props>(RingsCollection)\n);\n","import { useTransform, useViewportScroll } from \"framer-motion\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport { IGatsbyImageData } from \"gatsby-plugin-image\";\nimport React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { clampBuilder } from \"../helpers/sizeCalc\";\nimport useWindowSize from \"../hooks/useWindowSize\";\nimport { SliderQuery } from \"../types/pages/main\";\nimport Box from \"./Box/Box\";\nimport MotionBox from \"./Box/MotionBox\";\nimport GatsbyImageWithArtDirection from \"./GatsbyImageWithArtDirection\";\nimport { Paragraph2, Title } from \"./Styled/Text\";\n\nconst animation = keyframes`\n  0% {\n    opacity: 0.0;\n  }\n  8% {\n    opacity: 1.0;\n  }\n  33.33% {\n    opacity: 1.0;\n    transform: scale(1.1);\n  }\n  41.33% {\n    opacity: 0.0;\n  }\n  100% {\n    opacity: 0.0; \n    transform: scale(1);\n  }\n`;\n\nconst SliderImage = styled(\"div\")<{ order: number }>`\n  position: absolute;\n  top: 0;\n  left: 0;\n  min-width: 100vw;\n  min-height: calc(100vh - var(--vh-offset, 0px));\n  opacity: ${(p) => (p.order === 0 ? 1 : 0)};\n  background-position: 50% 50%;\n  background-size: cover;\n  animation: ${animation} 24s ${(p) => 24 * 0.33 * p.order}s infinite linear;\n`;\n\ntype Props = {\n  images: Array<{\n    id: string;\n    desktopImage: IGatsbyImageData;\n    mobileImage: IGatsbyImageData;\n    alt: string;\n  }>;\n  isPreloaderActive: boolean;\n};\nconst Slider = ({ images, isPreloaderActive }: Props) => {\n  const { height } = useWindowSize();\n  const { title, description } = useStaticQuery<SliderQuery>(graphql`\n    query MainPageHeaderQuery {\n      translationsJson {\n        pages {\n          main {\n            slider {\n              title\n              description\n            }\n          }\n        }\n      }\n    }\n  `).translationsJson.pages.main.slider;\n\n  const { scrollY } = useViewportScroll();\n  const scale = useTransform(scrollY, [0, height], [1, 0.85]);\n\n  // const images = React.useMemo(() => {\n  //   if (width <= 599) {\n  //     return [\"/dhbi89.jpg\", \"/dijo8shj.jpg\", \"/odkpjhc7.jpg\"];\n  //   } else {\n  //     return [\"/32435268.jpg\", \"/d45ae176.jpg\", \"/053bb9d2.jpg\"];\n  //   }\n  // }, [width]);\n\n  return (\n    <Box\n      sx={{\n        position: \"relative\",\n        overflow: \"hidden\",\n        minHeight: \"calc(100vh - var(--vh-offset,0px))\",\n        maxHeight: \"calc(100vh - var(--vh-offset,0px))\",\n        width: \"100%\",\n      }}\n    >\n      {/* <Box\n        sx={{\n          width: 0,\n          height: 0,\n          zIndex: -1000,\n          position: \"absolute\",\n          top: 0,\n          left: 0,\n          opacity: 0,\n          visibility: \"hidden\",\n        }}\n      >\n        {[\n          \"/dhbi89.jpg\",\n          \"/dijo8shj.jpg\",\n          \"/odkpjhc7.jpg\",\n          \"/32435268.jpg\",\n          \"/d45ae176.jpg\",\n          \"/053bb9d2.jpg\",\n        ].map((image, i) => (\n          <img key={i} src={image} alt={\"\"} />\n        ))}\n      </Box> */}\n      <Box\n        sx={{\n          position: \"absolute\",\n          zIndex: 5,\n          color: `#fff`,\n          width: \"90%\",\n          top: [\"25%\", \"25%\", \"50%\", \"50%\"],\n          left: \"50%\",\n          transform: \"translateY(-50%) translateX(-50%)\",\n          textAlign: [\"center\", \"center\", \"left\", \"left\"],\n        }}\n      >\n        {title.map((sentence, i) => (\n          <MotionBox\n            sx={\n              i === title.length - 1\n                ? {\n                    marginBottom: [\n                      0,\n                      0,\n                      clampBuilder(599, 1680, 2.4375, 4.275),\n                      clampBuilder(599, 1680, 2.4375, 4.275),\n                    ], //103 39\n                  }\n                : {}\n            }\n            key={i}\n            initial={{ y: \"100%\", opacity: 0 }}\n            animate={{\n              y: isPreloaderActive ? \"100%\" : 0,\n              opacity: isPreloaderActive ? 0 : 1,\n              transition: {\n                duration: 2,\n                ease: \"easeOut\",\n                delay: 0.25 * i,\n              },\n            }}\n            style={{ scale: scale as any }}\n          >\n            <Title\n              variant=\"hero\"\n              sx={{ color: \"inherit\", textAlign: \"inherit\" }}\n            >\n              {sentence}\n            </Title>\n          </MotionBox>\n        ))}\n        <MotionBox\n          sx={{ display: [\"none\", \"none\", \"block\", \"block\"] }}\n          initial={{ y: \"100%\", opacity: 0 }}\n          animate={{\n            y: isPreloaderActive ? \"100%\" : 0,\n            opacity: isPreloaderActive ? 0 : 1,\n            transition: {\n              duration: 2,\n              ease: \"easeOut\",\n              delay: 0.25 * (title.length + 1),\n            },\n          }}\n          style={{ scale: scale as any }}\n        >\n          <Paragraph2\n            variant=\"hero\"\n            sx={{\n              color: \"#fff\",\n              opacity: 1,\n              textAlign: [\"left\"],\n              display: [\"none\", \"none\", \"block\", \"block\"],\n            }}\n          >\n            {description}\n          </Paragraph2>\n        </MotionBox>\n      </Box>\n\n      {images.map((image, i) => (\n        <SliderImage key={image.id} order={i}>\n          <GatsbyImageWithArtDirection\n            {...image}\n            sx={{ position: \"absolute\", left: 0, right: 0, top: 0, bottom: 0 }}\n          />\n        </SliderImage>\n      ))}\n    </Box>\n  );\n};\n\nexport default React.memo(Slider);\n","import React from \"react\";\nimport { isMobile } from \"react-device-detect\";\n\nfunction usePageReload() {\n  const refreshPage = React.useCallback(() => {\n    !isMobile && window.location.reload();\n  }, []);\n  React.useEffect(() => {\n    window.addEventListener(\"resize\", refreshPage);\n\n    return () => {\n      window.removeEventListener(\"resize\", refreshPage);\n    };\n  }, [refreshPage]);\n}\n\nexport default usePageReload;\n","import React from \"react\";\nimport { useLocation } from \"@reach/router\";\n\nfunction useRemovePreloader(el: HTMLElement | undefined) {\n  const isMounted = React.useRef<boolean>();\n  const removeTimeout = React.useRef<NodeJS.Timeout>();\n  const isPreloaderWasActiveBefore = React.useRef<boolean>(false);\n  const preloaderContent = React.useRef<Element[]>([]);\n  const { pathname } = useLocation();\n  const [isPreloaderActive, setIsPreloaderActive] =\n    React.useState<boolean>(true);\n\n  const handleAddPreloader = React.useCallback(() => {\n    isPreloaderWasActiveBefore.current = true;\n    el && el.classList.add(\"preloading\");\n    document.body.classList.add(\"preloader_active\");\n    preloaderContent.current.forEach((c, i) => {\n      setTimeout(() => {\n        c.classList.add(\"slideUp\");\n      }, 550 * i);\n    });\n  }, [el]);\n\n  const handleRemovePreloader = React.useCallback(() => {\n    removeTimeout.current = setTimeout(() => {\n      if (el && el.classList.contains(\"preloading\")) {\n        el && el.classList.remove(\"preloading\");\n      }\n      document.body.classList.remove(\"preloader_active\");\n      document.body.classList.remove(\"preloader_ready\");\n      preloaderContent.current.forEach((c) => c.classList.remove(\"slideUp\"));\n      isMounted.current && setIsPreloaderActive(false);\n    }, 3100);\n  }, [el]);\n\n  React.useLayoutEffect(() => {\n    const contentContainer = document.querySelector(\".preloader_content\");\n    if (contentContainer) {\n      preloaderContent.current = Array.from(contentContainer.children);\n    }\n  }, []);\n\n  React.useEffect(() => {\n    isMounted.current = true;\n    return () => {\n      isMounted.current = false;\n    };\n  }, []);\n\n  React.useEffect(() => {\n    if (pathname === \"/\" && !isPreloaderWasActiveBefore.current) {\n      isMounted.current && handleAddPreloader();\n    }\n\n    isMounted.current && handleRemovePreloader();\n\n    return () => {\n      if (removeTimeout.current) window.clearTimeout(removeTimeout.current);\n    };\n  }, [pathname, handleAddPreloader, handleRemovePreloader, isPreloaderActive]);\n\n  return { isPreloaderActive };\n}\n\nexport default useRemovePreloader;\n","import { graphql, PageProps } from \"gatsby\";\nimport * as React from \"react\";\nimport Box from \"../components/Box/Box\";\nimport Collection from \"../components/Main/Collection\";\nimport Configurator from \"../components/Main/Configurator\";\nimport History from \"../components/Main/History\";\nimport Manufacturing from \"../components/Main/Manufacturing\";\nimport RingsCollection from \"../components/Main/RingsCollection\";\nimport ScrollAvailable from \"../components/ScrollAvailable\";\nimport Seo from \"../components/Seo\";\nimport Slider from \"../components/Slider\";\nimport useListenIframe from \"../hooks/useListenIframe\";\nimport useWindowSize from \"../hooks/useWindowSize\";\nimport { MainPageQuery } from \"../types/pages/main\";\nimport usePageReload from \"../hooks/usePageReload\";\nimport useRemovePreloader from \"../hooks/useRemovePreloader\";\nimport Layout from \"../components/Layout/Layout\";\nimport OrderCheckout from \"../components/OrderCheckout/OrderCheckout\";\nimport useAnalytics from \"../hooks/useAnalytics\";\n\ninterface Props extends PageProps {\n  data: MainPageQuery;\n}\n\nconst IndexPage = ({ data, location }: Props) => {\n  const mainRef = React.useRef<HTMLElement>();\n  usePageReload();\n  const { isPreloaderActive } = useRemovePreloader(mainRef.current as any);\n  const [vaseEnding, setVaseEnding] = React.useState<number>(0);\n\n  const { height } = useWindowSize();\n  const { reachGoal } = useAnalytics();\n\n  const [sectionsOffsets, setSectionsOffsets] = React.useState({\n    rings: 0,\n    collection: 0,\n  });\n\n  const { state, closeSubmission, isSubmitting, iframeHeight } =\n    useListenIframe();\n\n  React.useEffect(() => {\n    if (isSubmitting) {\n      reachGoal(\"send_design\");\n    }\n  }, [isSubmitting, reachGoal]);\n\n  const handleCloseModal = React.useCallback(() => {\n    closeSubmission();\n  }, [closeSubmission]);\n\n  const ringsRef = React.useCallback((node: HTMLDivElement | null) => {\n    if (node !== null) {\n      setSectionsOffsets((prev) => ({\n        ...prev,\n        rings: node.offsetTop,\n      }));\n    }\n  }, []);\n\n  const collectionRef = React.useCallback((node: HTMLDivElement | null) => {\n    if (node !== null) {\n      setSectionsOffsets((prev) => ({\n        ...prev,\n        collection: node.offsetTop,\n      }));\n    }\n  }, []);\n\n  return (\n    <>\n      <Seo\n        title={data.translationsJson.pages.main.seo.title}\n        description={data.translationsJson.pages.main.seo.description}\n        keywords={data.translationsJson.pages.main.seo.keywords}\n        pathname={location.pathname}\n        metaImage={\n          data.translationsJson.pages.main.seo.image.childImageSharp\n            .gatsbyImageData\n        }\n      />\n      <Layout pathname={location.pathname}>\n        <Box\n          ref={mainRef as any}\n          className=\"preloading\"\n          id=\"main\"\n          as=\"main\"\n          sx={{ position: \"relative\", zIndex: 0 }}\n        >\n          <Slider\n            images={[\n              {\n                id: data.sliderDesktopImages.nodes[0].id,\n                desktopImage:\n                  data.sliderDesktopImages.nodes[0].childImageSharp\n                    .gatsbyImageData,\n                mobileImage:\n                  data.sliderMobileImages.nodes[0].childImageSharp\n                    .gatsbyImageData,\n                alt: \"\",\n              },\n              {\n                id: data.sliderDesktopImages.nodes[1].id,\n                desktopImage:\n                  data.sliderDesktopImages.nodes[1].childImageSharp\n                    .gatsbyImageData,\n                mobileImage:\n                  data.sliderMobileImages.nodes[1].childImageSharp\n                    .gatsbyImageData,\n                alt: \"\",\n              },\n              {\n                id: data.sliderDesktopImages.nodes[2].id,\n                desktopImage:\n                  data.sliderDesktopImages.nodes[2].childImageSharp\n                    .gatsbyImageData,\n                mobileImage:\n                  data.sliderMobileImages.nodes[2].childImageSharp\n                    .gatsbyImageData,\n                alt: \"\",\n              },\n            ]}\n            isPreloaderActive={isPreloaderActive}\n          />\n          <History setVaseEnding={setVaseEnding} />\n          <RingsCollection vaseEnding={vaseEnding} ref={ringsRef as any} />\n          <Collection ref={collectionRef} />\n          <Manufacturing />\n          <Configurator iframeHeight={iframeHeight} />\n          {state && isSubmitting && (\n            <OrderCheckout order={state} endSubmission={handleCloseModal} />\n          )}\n          <ScrollAvailable\n            inputRange={[\n              0,\n              80,\n              vaseEnding,\n              vaseEnding + height * 0.05,\n              sectionsOffsets.collection - height - 297,\n              sectionsOffsets.collection - height,\n            ]}\n            outputRange={[1, 0, 0, 1, 1, 0]}\n            colorsIputRange={[\n              0,\n              80,\n              sectionsOffsets.rings + 594,\n              sectionsOffsets.rings + 594,\n              sectionsOffsets.collection,\n              sectionsOffsets.collection,\n            ]}\n            colorsOutputRange={[\n              \"#fff\",\n              \"#fff\",\n              \"rgb(205,195,178)\",\n              \"rgb(205,195,178)\",\n              \"rgb(205,195,178)\",\n              \"rgb(205,195,178)\",\n            ]}\n          />\n        </Box>\n      </Layout>\n    </>\n  );\n};\n\nexport default React.memo(IndexPage);\n\nexport const mainPageQuery = graphql`\n  query MainPageQuery {\n    sliderMobileImages: allFile(\n      filter: { relativeDirectory: { eq: \"pages/main/slider/mobile\" } }\n      sort: { order: ASC, fields: name }\n      limit: 3\n    ) {\n      nodes {\n        id\n        childImageSharp {\n          gatsbyImageData(placeholder: BLURRED, layout: FULL_WIDTH)\n        }\n      }\n    }\n    sliderDesktopImages: allFile(\n      filter: { relativeDirectory: { eq: \"pages/main/slider/desktop\" } }\n      sort: { order: ASC, fields: name }\n      limit: 3\n    ) {\n      nodes {\n        id\n        childImageSharp {\n          gatsbyImageData(placeholder: BLURRED, layout: FULL_WIDTH)\n        }\n      }\n    }\n    translationsJson {\n      pages {\n        main {\n          seo {\n            title\n            description\n            keywords\n            image {\n              childImageSharp {\n                gatsbyImageData(layout: FULL_WIDTH)\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n`;\n","export enum Routes {\n  //   MAIN = \"/\",\n  HISTORY = \"/history\",\n  // PRESS = \"/press\",\n  CONFIGURATOR = \"/configurator\",\n  COLLECTION = \"/collection\",\n  CONTACTS = \"/contacts\",\n  PROJECTS = \"/projects\",\n  SHOPS = \"/shops\",\n  // IMPERIAL_PARTNERSHIP = \"/imperial_partnership\",\n}\n\nexport interface IRoute {\n  id: number;\n  key:\n    | \"projects\"\n    | \"history\"\n    | \"contacts\"\n    | \"configurator\"\n    | \"collection\"\n    | \"shops\";\n  //  | \"press\";\n  // | \"imperial partnership\";\n  path: Routes;\n  disabled: boolean;\n}\n\nexport const routes: IRoute[] = [\n  {\n    id: 0,\n    key: \"history\",\n    path: Routes.HISTORY,\n    disabled: false,\n  },\n  {\n    id: 1,\n    key: \"collection\",\n    path: Routes.COLLECTION,\n    disabled: false,\n  },\n  {\n    id: 2,\n    key: \"configurator\",\n    path: Routes.CONFIGURATOR,\n    disabled: true,\n  },\n  {\n    id: 3,\n    key: \"projects\",\n    path: Routes.PROJECTS,\n    disabled: true,\n  },\n  // {\n  //   id: 4,\n  //   key: \"press\",\n  //   path: Routes.PRESS,\n  //   disabled: true,\n  // },\n  {\n    id: 4,\n    key: \"shops\",\n    path: Routes.SHOPS,\n    disabled: false,\n  },\n  {\n    id: 5,\n    key: \"contacts\",\n    path: Routes.CONTACTS,\n    disabled: false,\n  },\n];\n","var React = require('react');\n\nfunction LinkInline (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"Group 37 (3)\"),React.createElement(\"g\",{\"id\":\"Page-1\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Group-37-(3)\"},[React.createElement(\"rect\",{\"id\":\"Rectangle\",\"fill\":\"#D8D8D8\",\"opacity\":\"0\",\"x\":\"0\",\"y\":\"0\",\"width\":\"52\",\"height\":\"52\",\"key\":0}),React.createElement(\"circle\",{\"id\":\"Oval\",\"stroke\":\"#BBAB91\",\"cx\":\"26\",\"cy\":\"26\",\"r\":\"24.5\",\"key\":1}),React.createElement(\"path\",{\"d\":\"M27.8627,33.8367 C27.8627,29.1481 34.9676,25.9999 34.9676,25.9999 C34.9676,25.9999 27.8627,22.9174 27.8627,18.1901\",\"id\":\"Path\",\"stroke\":\"#BBAB91\",\"key\":2}),React.createElement(\"line\",{\"x1\":\"34.9676\",\"y1\":\"26\",\"x2\":\"15.5833\",\"y2\":\"26\",\"id\":\"Path\",\"stroke\":\"#BBAB91\",\"key\":3})]))]);\n}\n\nLinkInline.defaultProps = {\"width\":\"52px\",\"height\":\"52px\",\"viewBox\":\"0 0 52 52\",\"version\":\"1.1\"};\n\nmodule.exports = LinkInline;\n\nLinkInline.default = LinkInline;\n"],"names":["Appear","wrapperCmp","undefined","children","triggerOffset","rest","React","offset","setOffset","height","useWindowSize","scrollY","useViewportScroll","opacity","useTransform","verticalPosition","wrapperRef","node","isMobileOnly","parent","offsetParent","offsetTop","Wrapper","motion","MotionBox","ref","style","y","LinkArrowBtn","to","title","sx","as","disabled","handleClick","e","preventDefault","Box","onClick","Link","display","justifyContent","alignItems","cursor","marginTop","marginBottom","userSelect","transition","gap","Arrow","fontWeight","fontFamily","fontSize","clampBuilder","lineHeight","textTransform","color","get","paddingTop","ScrollAvailable","inputRange","outputRange","colorsIputRange","colorsOutputRange","text","useStaticQuery","translationsJson","components","scroll","position","flexDirection","bottom","left","transform","zIndex","width","borderRadius","borderWidth","borderStyle","borderColor","top","background","textAlign","styled","withConfig","_templateObject","props","css","SectionWrapper2","_templateObject2","Collection","_","pages","main","sections","collection","description","link","subtitle","marginLeft","Subtitle","Title","variant","split","pop","Paragraph","Routes","Configurator","iframeHeight","isIframeVisible","setIsIframeVisible","configurator","locale","handleIframeInterViewport","minHeight","WebkitOverflowScrolling","map","t","i","key","ConfiguratorIframeBox","viewport","once","onViewportEnter","$iframeHeight","src","CollageImageWrapper","p","variants","big","small","right","Collage","firstImage","secondImage","smallImgOffset","setSmallImgOffset","collageRef","translateY","padding","GatsbyImage","image","alt","mirrored","easing","createExpoIn","power","Math","pow","linear","easeIn","easeInOut","ratioCalc","HistoryAnimatedCmp","img","imgAlt","imgOriginalSize","imgContainerSize","isFixed","setIsFixed","imgRef","marginTopFixed","translateX","ease","scale","scrollSub","onChange","v","checkOffset","newOffset","target","parentNode","AnimatePresence","exitBeforeEnter","exit","duration","layout","x","willChange","aspectRatio","objectFit","imgStyle","loading","variableName","value","setValue","getVarValue","getComputedStyle","document","body","getPropertyValue","isIosOffsetValue","useCssVariableValue","iosOffsetValue","test","Number","slice","length","setImgContainerSize","clientWidth","clientHeight","round","layoutId","marginRight","History","setVaseEnding","isBgCover","setIsBgCover","start","end","timelinePosition","setTimelinePosition","lastPostImageContainerRef","timelineStart","prev","timelineEnd","ringOpacity","ringYTranslate","zIndexBg","bgOpacity","sub","history","header","AppearAnimationContainer","Paragraph2","visibility","images","childImageSharp","gatsbyImageData","imageAlt","gridTemplateColumns","flex","gridColumnStart","gridColumnEnd","gridRowStart","maxWidth","maxHeight","posts","alignSelf","VaseMobile","original","VaseDesktop","border","Manufacturing","manufacturing","footer","paddingBottom","GridSection","firstChildrenType","secondChildrenType","Ring","elmViewportPosition","isLeading","Watch","marg","setMarg","scrollDiff","setScrollDiff","watchHeight","heighSub","unsubcribe","RingsCollection","vaseEnding","bg","presentation","watches","n","middle","animation","keyframes","SliderImage","order","Slider","isPreloaderActive","slider","overflow","sentence","initial","animate","delay","id","GatsbyImageWithArtDirection","refreshPage","isMobile","window","location","reload","addEventListener","removeEventListener","el","isMounted","removeTimeout","isPreloaderWasActiveBefore","preloaderContent","pathname","useLocation","setIsPreloaderActive","handleAddPreloader","current","classList","add","forEach","c","setTimeout","handleRemovePreloader","contains","remove","contentContainer","querySelector","Array","from","clearTimeout","IndexPage","data","mainRef","usePageReload","useRemovePreloader","reachGoal","useAnalytics","rings","sectionsOffsets","setSectionsOffsets","useListenIframe","state","closeSubmission","isSubmitting","handleCloseModal","ringsRef","collectionRef","Seo","seo","keywords","metaImage","Layout","className","sliderDesktopImages","nodes","desktopImage","mobileImage","sliderMobileImages","OrderCheckout","endSubmission","HISTORY","COLLECTION","CONFIGURATOR","PROJECTS","SHOPS","CONTACTS","LinkInline","createElement","defaultProps","module","exports","default"],"sourceRoot":""}