{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/exB7rekcZUX3KOkJPL95/Kis2f0zScOAMlQISPriN/siteMetadata.js", "ssg:https://framerusercontent.com/modules/z929bPNEXLZQj8EQ2Fzt/ryVNYhuwjtljlAktKOB1/augiA20Il.js"],
  "sourcesContent": ["// Generated by Framer (9e6b000)\nexport default function metadata(params,activeLocale){return{description:\"Passionate web developer with an eye for detail. Discover my portfolio and see how I turn ideas into seamless user experiences!\",favicon:\"https://framerusercontent.com/assets/kq5M6rykbJ7bhVwNRsENXsvd4A8.webp\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/vjTcEWJp61WTysGxjWoo2aoxW8.png\",title:\"Susana Ramalho - Portfolio\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "// Generated by Framer (f26e712)\nimport siteMetadata from\"https://framerusercontent.com/modules/exB7rekcZUX3KOkJPL95/Kis2f0zScOAMlQISPriN/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"1qforiu\",mediaQuery:\"(min-width: 810px) and (max-width: 1199px)\"},{hash:\"15yxl8k\",mediaQuery:\"(max-width: 809px)\"}],customHTMLBodyEnd:'<script>\\n  document.addEventListener(\"DOMContentLoaded\", () => {\\n    const animationButton = document.querySelectorAll(\\'[data-framer-name=\"animation-button\"]\\');\\n    const logoNoAnims = document.querySelectorAll(\\'[data-framer-name=\"logo-no-anim\"]\\');\\n\tconst logoAnims = document.querySelectorAll(\\'[data-framer-name=\"logo-anim\"]\\');\\n\tconst navlinkNoAnims = document.querySelectorAll(\\'[data-framer-name=\"navlink-no-anim\"]\\');\\n\tconst navlinkAnims = document.querySelectorAll(\\'[data-framer-name=\"navlink-anim\"]\\');\\n\tconst heroSection = document.querySelector(\\'[data-framer-name=\"hero-section\"]\\');\\n\tconst heroNoAnim = document.querySelector(\\'[data-framer-name=\"hero-no-anim\"]\\');\\n\tconst heroAnim = document.querySelectorAll(\\'[data-framer-name=\"hero-anim\"]\\');\\n\tconst aboutAnim = document.querySelector(\\'[data-framer-name=\"typewriter\"]\\');\\n\tconst aboutAnimSpan = aboutAnim.querySelectorAll(\\'span\\');\\n\tconst projAnim = document.querySelector(\\'[data-framer-name=\"project-title-anim\"]\\');\\n\tconst gridAnim = document.querySelector(\\'[data-framer-name=\"grid-anim\"]\\');\\n\tconst cardAnim = document.querySelectorAll(\\'[data-framer-name=\"proj-card-anim\"]\\');\\n\tconst gridImg = document.querySelectorAll(\\'[data-framer-name=\"proj-card-img\"]\\');\\n\tconst noScrollTxts = document.querySelectorAll(\\'[data-framer-name=\"no-scroll-txt\"]\\');\\n\tconst scrollTxts = document.querySelectorAll(\\'[data-framer-name=\"scroll-txt\"]\\');\\n\tconst scrollUp = document.querySelector(\\'[data-framer-name=\"scroll-up-icon\"]\\');\\n\tconst loader = document.querySelector(\\'[data-framer-name=\"loader-container\"]\\');\\n\tconst comeSoon = document.querySelector(\\'[data-framer-name=\"come-soon\"]\\');\\n\tconst comeSoonSvg = document.querySelector(\\'[data-framer-name=\"come-soon\"] svg\\');\\n\tvar isAnim = true;\\n\t\\n\tdocument.querySelector(\\'[data-framer-name=\"Loader on\"]\\').addEventListener(\\'click\\', (event) => {\\n\t\tdocument.body.style.overflow = \\'visible\\';\\n\t\tloader.classList.add(\\'hideloader\\');\\n\t\tdocument.querySelector(\\'[data-framer-name=\"placeholder\"]\\').style.display = \\'none\\';\\n\t\tdocument.querySelector(\\'[data-framer-name=\"nav-bar\"]\\').style.zIndex = \\'3\\';\\n\t\t//heroNoAnim.style.display = \\'none\\';\\n\t\tlogoNoAnims.forEach((el) => {\\n\t\t  el.style.display = \\'none\\';\\n\t\t});\\n\t\tnavlinkNoAnims.forEach((el) => {\\n\t\t  el.style.display = \\'none\\';\\n\t\t});\\n\t\tnoScrollTxts.forEach((el) => {\\n\t\t  el.style.display = \\'none\\';\\n\t\t});\\n\t});\\n\tanimationButton.forEach((button) => {\\n\t\tbutton.addEventListener(\"click\", () => {\\n\t\t  logoNoAnims.forEach((el) => {\\n\t\t\tel.style.display = window.getComputedStyle(el).display === \"none\" ? \"flex\" : \"none\";\\n\t\t  });\\n\t\t  logoAnims.forEach((el) => {\\n\t\t\tel.style.display = window.getComputedStyle(el).display === \"none\" ? \"flex\" : \"none\";\\n\t\t  });\\n\t\t  navlinkNoAnims.forEach((el) => {\\n\t\t\tel.style.display = window.getComputedStyle(el).display === \"none\" ? \"flex\" : \"none\";\\n\t\t  });\\n\t\t  navlinkAnims.forEach((el) => {\\n\t\t\tel.style.display = window.getComputedStyle(el).display === \"none\" ? \"flex\" : \"none\";\\n\t\t  });\\n\t\t  heroSection.classList.toggle(\\'noanimation\\');\\n\t\t  heroNoAnim.style.display = window.getComputedStyle(heroNoAnim).display === \"none\" ? \"flex\" : \"none\";\\n\t\t  heroAnim.forEach((el) => {\\n\t\t\tel.style.display = window.getComputedStyle(el).display === \"none\" ? \"flex\" : \"none\";\\n\t\t  });\\n\t\t  aboutAnim.classList.toggle(\\'noanimation\\');\\n\t\t  aboutAnimSpan.forEach((el) => {\\n\t\t\tel.classList.toggle(\\'noanimation\\');\\n\t\t  });\\n\t\t  projAnim.classList.toggle(\\'noanimation\\');\\n\t\t  cardAnim.forEach((el) => {\\n\t\t\tel.classList.toggle(\\'noanimation\\');\\n\t\t  });\\n\t\t  gridImg.forEach((el) => {\\n\t\t\tel.classList.toggle(\\'noanimation\\');\\n\t\t  });\\n\t\t  comeSoon.classList.toggle(\\'noanimation\\');\\n\t\t  comeSoonSvg.classList.toggle(\\'noanimation\\');\\n\t\t  noScrollTxts.forEach((el) => {\\n\t\t\tel.style.display = window.getComputedStyle(el).display === \"none\" ? \"flex\" : \"none\";\\n\t\t  });\\n\t\t  scrollTxts.forEach((el) => {\\n\t\t\tel.style.display = window.getComputedStyle(el).display === \"none\" ? \"flex\" : \"none\";\\n\t\t  });\\n\t\t  scrollUp.classList.toggle(\\'noanimation\\');\\n\t\t  isAnim = !isAnim;\\n\t\t});\\n    });\\n\tconst observerGrid = new MutationObserver(() => {\\n\t  cardAnim.forEach(gridElement => {\\n\t\tif (!isAnim) {\\n\t\t  gridElement.classList.add(\\'noanimation\\');\\n\t\t  gridElement.querySelector(\\'[data-framer-name=\"proj-card-img\"]\\').classList.add(\\'noanimation\\');\\n\t\t}\\n\t  });\\n\t});\\n\tobserverGrid.observe(gridAnim, { childList: true, subtree: true });\\n  })\\n</script>',customHTMLHeadEnd:'<script>history.scrollRestoration = \"manual\"</script>\\n',customHTMLHeadStart:'<style>\\n  body {\\n    overflow: hidden; /* Disables scrolling */\\n  }\\n  [data-framer-name=\"loader-container\"] li div {\\n    width: 10dvh !important;\\n  }\\n  [data-framer-name=\"ticker\"], [data-framer-name=\"ticker-first\"] {\\n    padding-top: 5dvh !important;\\n    padding-bottom: 5dvh !important;\\n    margin-top: -5dvh !important;\\n  }\\n  [data-framer-name=\"ticker-first\"] {\\n    top: calc(50.00000000000002% - 10dvh / 2) !important;\\n  }\\n  [data-framer-name=\"loader-container\"] {\\n    transition: all 1s;\\n    transition-behavior: allow-discrete;\\n    height: 100dvh !important;\\n  }\\n  #hero-section h2 {\\n    font-size: 20vw;\\n  }\\n  @media only screen and (max-width: 809px) {\\n    #hero-section h2 {\\n      font-size: 25vw;\\n    }\\n  }\\n  [data-framer-name=\"next-loader-section\"] p {\\n    font-size: 10vw !important;\\n  }\\n  [data-framer-name=\"card-buttons\"] {\\n    width: auto !important;\\n  }\\n  [data-framer-name=\"hero-section\"] {\\n    height: 100dvh !important;\\n  }\\n  [data-framer-name=\"ticker-wrapper\"] {\\n    height: 10dvh !important;\\n  }\\n  .noanimation {\\n    -webkit-transition: none !important;\\n    -moz-transition: none !important;\\n    -o-transition: none !important;\\n    transition: none !important;\\n    transform: none !important;\\n    opacity: 1 !important;\\n    will-change: unset !important;\\n  }\\n  .hideloader {\\n    opacity: 0;\\n    transform: scale(0);\\n    margin-top: 1000px;\\n    display: none;\\n  }\\n  @media (min-width: 810px) and (max-width: 1199px) {\\n    [data-framer-name=\"header-bottom\"] {\\n      bottom: 40px !important;\\n    }\\n    [data-framer-name=\"header-bottom-side-wrap\"] {\\n      bottom: 80px !important;\\n    }\\n    [data-framer-name=\"header-bottom-side\"] {\\n      left: 0 !important;\\n    }\\n    [data-framer-name=\"header-bottom-side\"] span {\\n      font-size: 16px !important;\\n    }\\n  }\\n  @media (max-width: 1199px) {\\n  [data-framer-name=\"anim-button-wrap\"] {\\n\theight: 28px !important;\\n\tpadding: 2px 12px !important;\\n  }\\n  [data-framer-name=\"anim-button-wrap\"] p {\\n\tfont-size: 12px !important;\\n  }\\n}\\n</style>',description:siteMetadata(params,activeLocale).description,elements:{E_i59i8tc:\"hero-section\",EUTBQyFKJ:\"projects-section\",HefUgBujV:\"project-title-anim\",iq3ThMZiX:\"top\",iW3BwhQrp:\"about-me-top\",jNTaoHLCP:\"typewriter\",LJ20bZuTg:\"contact-section\",nu5YT6YOg:\"projects-top\",Phi2a3LJI:\"loader\",UsvYMY_iH:\"hero-no-anim-1\",xBjpRUvDq:\"contact-top\",xcBFBTs97:\"hero-no-anim\",zDKkbs4EJ:\"about-me-section\"},robots:\"max-image-preview:large\",serializationId:\"framer-GoS32\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "AACe,SAARA,EAA0BC,EAAOC,EAAa,CAAC,MAAM,CAAC,YAAY,kIAAkI,QAAQ,wEAAwE,OAAO,0BAA0B,YAAY,sEAAsE,MAAM,4BAA4B,CAAE,CCAzS,SAARC,EAA0BC,EAAOC,EAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,SAAS,WAAW,qBAAqB,EAAE,CAAC,KAAK,UAAU,WAAW,4CAA4C,EAAE,CAAC,KAAK,UAAU,WAAW,oBAAoB,CAAC,EAAE,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAw5I,kBAAkB;AAAA,EAA0D,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAA8hE,YAAYF,EAAaC,EAAOC,CAAY,EAAE,YAAY,SAAS,CAAC,UAAU,eAAe,UAAU,mBAAmB,UAAU,qBAAqB,UAAU,MAAM,UAAU,eAAe,UAAU,aAAa,UAAU,kBAAkB,UAAU,eAAe,UAAU,SAAS,UAAU,iBAAiB,UAAU,cAAc,UAAU,eAAe,UAAU,kBAAkB,EAAE,OAAO,0BAA0B,gBAAgB,eAAe,MAAMF,EAAaC,EAAOC,CAAY,EAAE,OAAO,OAAO,SAAS,oBAAoB,CAAE,CAAQ,IAAMC,EAAgB,EACz8OC,EAAqB,CAAC,QAAU,CAAC,QAAU,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,gBAAkB,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,mBAAqB,CAAC,KAAO,UAAU,CAAC,CAAC",
  "names": ["metadata", "params", "activeLocale", "metadata", "params", "activeLocale", "metadataVersion", "__FramerMetadata__"]
}
