https://rosale-portfolio.carrd.co/

提交的 URL:
https://rosale-portfolio.carrd.co/
报告完成时间:

链接 · 找到 3 个

链接文本
https://www.roblox.com/share?code=114afd662f263d4d951a56840f9b8d9e&type=ExperienceDetails&stamp=1731769365265Game Link
https://github.com/RosaleDev/Real-Time-Secure-Key-Management-with-Discord-Lua-UIGitHubLink
https://carrd.co/build?ref=autoMade with Carrd

JavaScript 变量 · 找到 5 个

名称类型
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
_scrollToTopfunction
$modalCaptionobject

控制台日志消息 · 找到 1 条

类型类别记录
errornetwork
URL
https://rosale-portfolio.carrd.co/favicon.ico
文本
Failed to load resource: the server responded with a status of 404 ()

HTML

<!DOCTYPE html><html lang="en"><head><title>Rosale's Portfolio</title><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="color-scheme" content="light only"><meta name="description" content="this is my Portfolio"><meta property="og:site_name" content="Rosale's Portfolio"><meta property="og:title" content="Rosale's Portfolio"><meta property="og:type" content="website"><meta property="og:description" content="this is my Portfolio"><meta property="og:image" content="https://rosale-portfolio.carrd.co/assets/images/card.jpg?v=afab7151"><meta property="og:image:type" content="image/jpeg"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta property="og:url" content="https://rosale-portfolio.carrd.co"><meta property="twitter:card" content="summary_large_image"><link rel="canonical" href="https://rosale-portfolio.carrd.co"><style>html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{line-height:1;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}table{border-collapse:collapse;border-spacing:0;}body{-webkit-text-size-adjust:none}mark{background-color:transparent;color:inherit}input::-moz-focus-inner{border:0;padding:0}input[type="text"],input[type="email"],select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none}*, *:before, *:after {box-sizing: border-box;}body {line-height: 1.0;min-height: var(--viewport-height);min-width: 320px;overflow-x: hidden;word-wrap: break-word;background-color: #FFFFFF;}:root {--background-height: 100vh;--site-language-alignment: left;--site-language-direction: ltr;--site-language-flex-alignment: flex-start;--site-language-indent-left: 1;--site-language-indent-right: 0;--site-language-margin-left: 0;--site-language-margin-right: auto;--viewport-height: 100vh;}html {font-size: 18pt;}u {text-decoration: underline;}strong {color: inherit;font-weight: bolder;}em {font-style: italic;}code {background-color: rgba(144,144,144,0.25);border-radius: 0.25em;font-family: 'Lucida Console', 'Courier New', monospace;font-size: 0.9em;font-weight: normal;letter-spacing: 0;margin: 0 0.25em;padding: 0.25em 0.5em;text-indent: 0;}mark {background-color: rgba(144,144,144,0.25);}spoiler-text {-webkit-text-stroke: 0;background-color: rgba(32,32,32,0.75);text-shadow: none;text-stroke: 0;color: transparent;cursor: pointer;transition: color 0.1s ease-in-out;}spoiler-text.active {color: #FFFFFF;cursor: text;}s {text-decoration: line-through;}sub {font-size: smaller;vertical-align: sub;}sup {font-size: smaller;vertical-align: super;}a {color: inherit;text-decoration: underline;transition: color 0.25s ease;}a[onclick]:not([href]) {cursor: pointer;}unloaded-script {display: none;}#wrapper {-webkit-overflow-scrolling: touch;align-items: flex-start;display: flex;flex-direction: column;justify-content: center;min-height: var(--viewport-height);overflow: hidden;position: relative;z-index: 2;}#main {--alignment: left;--flex-alignment: flex-start;--indent-left: 1;--indent-right: 0;--margin-left: 0;--margin-right: auto;--border-radius-tl: 0;--border-radius-tr: 0;--border-radius-br: 0;--border-radius-bl: 0;align-items: center;display: flex;flex-grow: 0;flex-shrink: 0;justify-content: center;max-width: 100%;position: relative;text-align: var(--alignment);z-index: 1;transition: opacity 1s ease-in-out 0s;}#main > .inner {--padding-horizontal: 4rem;--padding-vertical: 7rem;--spacing: 3rem;--width: 64rem;border-radius: var(--border-radius-tl) var(--border-radius-tr) var(--border-radius-br) var(--border-radius-bl);max-width: 100%;position: relative;width: var(--width);z-index: 1;padding: var(--padding-vertical) var(--padding-horizontal);}#main > .inner > * {margin-top: var(--spacing);margin-bottom: var(--spacing);}#main > .inner > :first-child {margin-top: 0 !important;}#main > .inner > :last-child {margin-bottom: 0 !important;}#main > .inner > .full {margin-left: calc(var(--padding-horizontal) * -1);max-width: calc(100% + calc(var(--padding-horizontal) * 2) + 0.4725px);width: calc(100% + calc(var(--padding-horizontal) * 2) + 0.4725px);}#main > .inner > .full:first-child {border-top-left-radius: inherit;border-top-right-radius: inherit;margin-top: calc(var(--padding-vertical) * -1) !important;}#main > .inner > .full:last-child {border-bottom-left-radius: inherit;border-bottom-right-radius: inherit;margin-bottom: calc(var(--padding-vertical) * -1) !important;}#main > .inner > .full.screen {border-radius: 0 !important;max-width: 100vw;position: relative;width: 100vw;left: 0;margin-left: calc(var(--padding-horizontal) * -1);right: auto;}body.is-loading #main {opacity: 0;}body.is-instant #main, body.is-instant #main > .inner > *,body.is-instant #main > .inner > section > * {transition: none !important;}body.is-instant:after {display: none !important;transition: none !important;}h1, h2, h3, p {direction: var(--site-language-direction);position: relative;}h1 span.p, h2 span.p, h3 span.p, p span.p {display: block;position: relative;}h1 span[style], h2 span[style], h3 span[style], p span[style], h1 strong, h2 strong, h3 strong, p strong, h1 a, h2 a, h3 a, p a, h1 code, h2 code, h3 code, p code, h1 mark, h2 mark, h3 mark, p mark, h1 spoiler-text, h2 spoiler-text, h3 spoiler-text, p spoiler-text {-webkit-text-fill-color: currentcolor;}#text04 {color: #171717;font-family: 'Arial', sans-serif;letter-spacing: 0.025rem;width: calc(100% + 0.025rem);font-size: 1em;line-height: 1.75;font-weight: 400;}#text04 a {text-decoration: underline;}#text04 a:hover {text-decoration: none;}#text04 span.p:nth-child(n + 2) {margin-top: 1rem;}#text03 {color: #171717;font-family: 'Arial', sans-serif;letter-spacing: 0.075rem;width: calc(100% + 0.075rem);font-size: 5em;line-height: 1.25;font-weight: 400;}#text03 a {text-decoration: underline;}#text03 a:hover {text-decoration: none;}#text03 span.p:nth-child(n + 2) {margin-top: 1rem;}#text01 {color: #171717;font-family: 'Arial', sans-serif;letter-spacing: 0.025rem;width: calc(100% + 0.025rem);font-size: 2.5em;line-height: 1.75;font-weight: 400;}#text01 a {text-decoration: underline;}#text01 a:hover {text-decoration: none;}#text01 span.p:nth-child(n + 2) {margin-top: 1rem;}#text02 {color: #171717;font-family: 'Arial', sans-serif;letter-spacing: 0.025rem;width: calc(100% + 0.025rem);font-size: 1em;line-height: 1.75;font-weight: 400;}#text02 a {text-decoration: underline;}#text02 a:hover {text-decoration: none;}#text02 span.p:nth-child(n + 2) {margin-top: 1rem;}#text05 {color: #171717;font-family: 'Arial', sans-serif;letter-spacing: 0.025rem;width: calc(100% + 0.025rem);font-size: 2.5em;line-height: 1.75;font-weight: 400;}#text05 a {text-decoration: underline;}#text05 a:hover {text-decoration: none;}#text05 span.p:nth-child(n + 2) {margin-top: 1rem;}#text06 {color: #171717;font-family: 'Arial', sans-serif;letter-spacing: 0.075rem;width: calc(100% + 0.075rem);font-size: 1em;line-height: 1.25;font-weight: 400;}#text06 a {text-decoration: underline;}#text06 a:hover {text-decoration: none;}#text06 span.p:nth-child(n + 2) {margin-top: 1rem;}#text07 {color: #171717;font-family: 'Arial', sans-serif;letter-spacing: 0.075rem;width: calc(100% + 0.075rem);font-size: 1em;line-height: 1.25;font-weight: 400;}#text07 a {text-decoration: underline;}#text07 a:hover {text-decoration: none;}#text07 span.p:nth-child(n + 2) {margin-top: 1rem;}#text08 {color: #171717;font-family: 'Arial', sans-serif;letter-spacing: 0.075rem;width: calc(100% + 0.075rem);font-size: 1em;line-height: 1.25;font-weight: 400;}#text08 a {text-decoration: underline;}#text08 a:hover {text-decoration: none;}#text08 span.p:nth-child(n + 2) {margin-top: 1rem;}#text09 {color: #171717;font-family: 'Arial', sans-serif;letter-spacing: 0.075rem;width: calc(100% + 0.075rem);font-size: 1em;line-height: 1.25;font-weight: 400;}#text09 a {text-decoration: underline;}#text09 a:hover {text-decoration: none;}#text09 span.p:nth-child(n + 2) {margin-top: 1rem;}.container {position: relative;}.container > .wrapper {vertical-align: top;position: relative;max-width: 100%;border-radius: inherit;}.container > .wrapper > .inner {vertical-align: top;position: relative;max-width: 100%;border-radius: inherit;text-align: var(--alignment);}#main .container.full:first-child > .wrapper {border-top-left-radius: inherit;border-top-right-radius: inherit;}#main .container.full:last-child > .wrapper {border-bottom-left-radius: inherit;border-bottom-right-radius: inherit;}#main .container.full:first-child > .wrapper > .inner {border-top-left-radius: inherit;border-top-right-radius: inherit;}#main .container.full:last-child > .wrapper > .inner {border-bottom-left-radius: inherit;border-bottom-right-radius: inherit;}#container02 > .wrapper {display: inline-block;width: 40rem;background-color: transparent;}#container02 > .wrapper > .inner {--gutters: 2rem;--padding-horizontal: 0rem;--padding-vertical: 0rem;--spacing: 1.5rem;padding: var(--padding-vertical) var(--padding-horizontal);}#container02.default > .wrapper > .inner > * {margin-bottom: var(--spacing);margin-top: var(--spacing);}#container02.default > .wrapper > .inner > *:first-child {margin-top: 0 !important;}#container02.default > .wrapper > .inner > *:last-child {margin-bottom: 0 !important;}#container02.columns > .wrapper > .inner {flex-wrap: wrap;display: flex;align-items: flex-start;}#container02.columns > .wrapper > .inner > * {flex-grow: 0;flex-shrink: 0;max-width: 100%;text-align: var(--alignment);padding: 0 0 0 var(--gutters);}#container02.columns > .wrapper > .inner > * > * {margin-bottom: var(--spacing);margin-top: var(--spacing);}#container02.columns > .wrapper > .inner > * > *:first-child {margin-top: 0 !important;}#container02.columns > .wrapper > .inner > * > *:last-child {margin-bottom: 0 !important;}#container02.columns > .wrapper > .inner > *:first-child {margin-left: calc(var(--gutters) * -1);}#container02.default > .wrapper > .inner > .full {margin-left: calc(var(--padding-horizontal) * -1);max-width: none !important;width: calc(100% + (var(--padding-horizontal) * 2) + 0.4725px);}#container02.default > .wrapper > .inner > .full:first-child {margin-top: calc(var(--padding-vertical) * -1) !important;border-top-left-radius: inherit;border-top-right-radius: inherit;}#container02.default > .wrapper > .inner > .full:last-child {margin-bottom: calc(var(--padding-vertical) * -1) !important;border-bottom-left-radius: inherit;border-bottom-right-radius: inherit;}#container02.columns > .wrapper > .inner > div > .full {margin-left: calc(var(--gutters) * -0.5);max-width: none !important;width: calc(100% + var(--gutters) + 0.4725px);}#container02.columns > .wrapper > .inner > div:first-child > .full {margin-left: calc(var(--padding-horizontal) * -1);width: calc(100% + var(--padding-horizontal) + calc(var(--gutters) * 0.5) + 0.4725px);}#container02.columns > .wrapper > .inner > div:last-child > .full {width: calc(100% + var(--padding-horizontal) + calc(var(--gutters) * 0.5) + 0.4725px);}#container02.columns > .wrapper > .inner > div > .full:first-child {margin-top: calc(var(--padding-vertical) * -1) !important;}#container02.columns > .wrapper > .inner > div > .full:last-child {margin-bottom: calc(var(--padding-vertical) * -1) !important;}#container02.columns > .wrapper > .inner > div:first-child, #container02.columns > .wrapper > .inner > div:first-child > .full:first-child {border-top-left-radius: inherit;}#container02.columns > .wrapper > .inner > div:last-child, #container02.columns > .wrapper > .inner > div:last-child > .full:first-child {border-top-right-radius: inherit;}#container02.columns > .wrapper > .inner > .full {align-self: stretch;}#container02.columns > .wrapper > .inner > .full:first-child {border-bottom-left-radius: inherit;border-top-left-radius: inherit;}#container02.columns > .wrapper > .inner > .full:last-child {border-bottom-right-radius: inherit;border-top-right-radius: inherit;}#container02.columns > .wrapper > .inner > .full > .full:first-child:last-child {border-radius: inherit;height: calc(100% + (var(--padding-vertical) * 2));}#container02.columns > .wrapper > .inner > .full > .full:first-child:last-child > * {border-radius: inherit;height: 100%;position: absolute;width: 100%;}.gallery .inner {display: inline-block;max-width: 100%;vertical-align: middle;}.gallery ul {display: flex;flex-wrap: wrap;justify-content: var(--flex-alignment);}.gallery ul li {position: relative;}.gallery ul li .thumbnail {border-radius: inherit;position: relative;}.gallery ul li .frame {-webkit-backface-visibility: hidden;-webkit-transform: translate3d(0, 0, 0);display: inline-block;overflow: hidden;vertical-align: top;}.gallery ul li img {margin: 0;max-width: 100%;vertical-align: top;width: auto;}.gallery ul li .caption {width: 100%;}.gallery ul li .caption p {width: 100%;}.gallery ul li .caption a, .gallery ul li .caption spoiler-text {pointer-events: auto;}@keyframes gallery-modal-spinner {0% {transform: rotate(0deg);}100% {transform: rotate(360deg);}}.gallery-modal {-webkit-tap-highlight-color: rgba(0,0,0,0);align-content: center;align-items: center;background-color: var(--color-background);display: grid;grid-template-areas: "previous image next" "caption caption caption";grid-template-columns: min-content auto min-content;height: 100%;justify-content: space-between;left: 0;opacity: 0;outline: 0;padding: 2rem 0;pointer-events: none;position: fixed;top: 0;touch-action: pan-x pinch-zoom;transition: opacity 0.5s ease, visibility 0.5s, z-index 0.5s, background-color 0.5s ease;user-select: none;visibility: hidden;width: 100%;z-index: 0;}.gallery-modal:before {animation: gallery-modal-spinner 1s infinite linear;background-position: center;background-repeat: no-repeat;background-size: 4rem;content: '';display: block;height: 4rem;left: 50%;margin: -2rem 0 0 -2rem;opacity: 0;position: absolute;top: 50%;transition: opacity 0.25s ease;transition-delay: 0.5s;width: 4rem;}.gallery-modal .inner {box-shadow: 0 1em 3em 0 rgba(0,0,0,0.35);grid-area: image;height: 100%;opacity: 0;overflow: hidden;transform: translateY(0.75em);transition: all 0.5s ease;width: 100%;}.gallery-modal .inner img {display: block;height: 100%;object-fit: contain;width: 100%;max-width: var(--natural-width, none);max-height: var(--natural-height, none);}.gallery-modal .caption {color: var(--color-caption-text);font-family: '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';font-size: 1rem;grid-area: caption;line-height: 1.6;opacity: 0;padding: 2rem 2rem 0 2rem;pointer-events: none;text-align: center;transform: translateY(0.25em);transition: all 0.5s ease;}.gallery-modal .caption::-webkit-scrollbar {display: none;}.gallery-modal .caption a, .gallery-modal .caption spoiler-text {pointer-events: auto;}.gallery-modal .nav {-webkit-tap-highlight-color: rgba(0, 0, 0, 0);background-position: center;background-repeat: no-repeat;background-size: 3rem;cursor: pointer;height: 6rem;transition: opacity 0.25s ease, transform 0.5s ease;width: 8rem;}.gallery-modal .nav:hover {opacity: 1 !important;}.gallery-modal .nav.next {grid-area: next;}.gallery-modal .nav.previous {grid-area: previous;transform: scaleX(-1);}.gallery-modal .close {-webkit-tap-highlight-color: rgba(0, 0, 0, 0);background-position: top 1rem right 1rem;background-repeat: no-repeat;background-size: 3rem;cursor: pointer;display: block;height: 6rem;position: absolute;right: 0;top: 0;transition: opacity 0.25s ease, transform 0.5s ease;width: 6rem;}.gallery-modal .close:hover {opacity: 1 !important;}.gallery-modal.visible {opacity: 1;pointer-events: auto;visibility: visible;z-index: 10000;}.gallery-modal.visible:before {opacity: 1;}.gallery-modal.loaded:before {opacity: 0 !important;transition-delay: 0s !important;}.gallery-modal.loaded .inner {opacity: 1;transform: translateY(0);}.gallery-modal.loaded .caption {opacity: 1;transform: translateY(0);}.gallery-modal.switching .inner {transition: opacity 0.375s ease, transform 0.5s ease;}.gallery-modal.switching.from-left .inner {transform: translateY(0) translateX(-1.5em);}.gallery-modal.switching.from-right .inner {transform: translateY(0) translateX(1.5em);}.gallery-modal.switching.done .inner {transition: opacity 0.375s ease;transform: translateY(0) translateX(0);}.gallery-modal.zooming {background-color: var(--color-background-zooming);}.gallery-modal.zooming .caption {opacity: 0;}.gallery-modal.zooming .nav.next {opacity: 0;pointer-events: none;transform: translateX(50%);}.gallery-modal.zooming .nav.previous {opacity: 0;pointer-events: none;transform: translateX(-50%) scaleX(-1);}.gallery-modal.zooming .close {opacity: 0;pointer-events: none;transform: translateX(50%) translateY(-50%);}.gallery-modal.dark {--color-background: rgba(10,10,10,0.85);--color-background-zooming: rgba(0,0,0,1);--color-caption-text: #FFFFFF;}.gallery-modal.dark:before {animation: gallery-modal-spinner 1s infinite linear;background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iOTZweCIgaGVpZ2h0PSI5NnB4IiB2aWV3Qm94PSIwIDAgOTYgOTYiIHpvb21BbmRQYW49ImRpc2FibGUiPjxzdHlsZT5jaXJjbGUge2ZpbGw6IHRyYW5zcGFyZW50OyBzdHJva2U6ICNGRkZGRkY7IHN0cm9rZS13aWR0aDogMS41cHg7IH08L3N0eWxlPjxkZWZzPjxjbGlwUGF0aCBpZD0iY29ybmVyIj48cG9seWdvbiBwb2ludHM9IjAsMCA0OCwwIDQ4LDQ4IDk2LDQ4IDk2LDk2IDAsOTYiIC8+PC9jbGlwUGF0aD48L2RlZnM+PGcgY2xpcC1wYXRoPSJ1cmwoI2Nvcm5lcikiPjxjaXJjbGUgY3g9IjQ4IiBjeT0iNDgiIHI9IjMyIi8+PC9nPjwvc3ZnPg==');}.gallery-modal.dark .close {background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjRweCIgaGVpZ2h0PSI2NHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHpvb21BbmRQYW49ImRpc2FibGUiPjxzdHlsZT5saW5lIHtzdHJva2U6ICNGRkZGRkY7c3Ryb2tlLXdpZHRoOiAxLjVweDt9PC9zdHlsZT48bGluZSB4MT0iMjAiIHkxPSIyMCIgeDI9IjQ0IiB5Mj0iNDQiIC8+PGxpbmUgeDE9IjIwIiB5MT0iNDQiIHgyPSI0NCIgeTI9IjIwIiAvPjwvc3ZnPg==');opacity: 0.25;}.gallery-modal.dark .nav {-webkit-tap-highlight-color: rgba(0, 0, 0, 0);background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjRweCIgaGVpZ2h0PSI2NHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHpvb21BbmRQYW49ImRpc2FibGUiPjxzdHlsZT5saW5lIHtzdHJva2U6ICNGRkZGRkY7c3Ryb2tlLXdpZHRoOiAxLjVweDt9PC9zdHlsZT48bGluZSB4MT0iMjQiIHkxPSI4IiB4Mj0iNDgiIHkyPSIzMiIgLz48bGluZSB4MT0iMjQiIHkxPSI1NiIgeDI9IjQ4IiB5Mj0iMzIiIC8+PC9zdmc+');opacity: 0.25;}.gallery-modal.light {--color-background: rgba(255,255,255,0.9);--color-background-zooming: rgba(255,255,255,1);--color-caption-text: #000000;}.gallery-modal.light:before {animation: gallery-modal-spinner 1s infinite linear;background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iOTZweCIgaGVpZ2h0PSI5NnB4IiB2aWV3Qm94PSIwIDAgOTYgOTYiIHpvb21BbmRQYW49ImRpc2FibGUiPjxzdHlsZT5jaXJjbGUge2ZpbGw6IHRyYW5zcGFyZW50OyBzdHJva2U6ICMwMDAwMDA7IHN0cm9rZS13aWR0aDogMS41cHg7IH08L3N0eWxlPjxkZWZzPjxjbGlwUGF0aCBpZD0iY29ybmVyIj48cG9seWdvbiBwb2ludHM9IjAsMCA0OCwwIDQ4LDQ4IDk2LDQ4IDk2LDk2IDAsOTYiIC8+PC9jbGlwUGF0aD48L2RlZnM+PGcgY2xpcC1wYXRoPSJ1cmwoI2Nvcm5lcikiPjxjaXJjbGUgY3g9IjQ4IiBjeT0iNDgiIHI9IjMyIi8+PC9nPjwvc3ZnPg==');}.gallery-modal.light .close {background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjRweCIgaGVpZ2h0PSI2NHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHpvb21BbmRQYW49ImRpc2FibGUiPjxzdHlsZT5saW5lIHtzdHJva2U6ICMwMDAwMDA7c3Ryb2tlLXdpZHRoOiAxLjVweDt9PC9zdHlsZT48bGluZSB4MT0iMjAiIHkxPSIyMCIgeDI9IjQ0IiB5Mj0iNDQiIC8+PGxpbmUgeDE9IjIwIiB5MT0iNDQiIHgyPSI0NCIgeTI9IjIwIiAvPjwvc3ZnPg==');opacity: 0.375;}.gallery-modal.light .nav {background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjRweCIgaGVpZ2h0PSI2NHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHpvb21BbmRQYW49ImRpc2FibGUiPjxzdHlsZT5saW5lIHtzdHJva2U6ICMwMDAwMDA7c3Ryb2tlLXdpZHRoOiAxLjVweDt9PC9zdHlsZT48bGluZSB4MT0iMjQiIHkxPSI4IiB4Mj0iNDgiIHkyPSIzMiIgLz48bGluZSB4MT0iMjQiIHkxPSI1NiIgeDI9IjQ4IiB5Mj0iMzIiIC8+PC9zdmc+');opacity: 0.375;}#gallery01:not(:first-child) {margin-top: 2rem !important;}#gallery01:not(:last-child) {margin-bottom: 2rem !important;}#gallery01 .inner {max-width: 100%;}#gallery01 ul li {border-radius: 0rem;display: inline-block;}#gallery01 ul li .frame {border-radius: 0rem;}#gallery01 ul {gap: 1rem;}#gallery01 ul li .thumbnail {display: block;transition: none;}#gallery01 ul li img {height: auto;max-height: 16rem;}#gallery01 ul li .thumbnail img {transition: none;}.icc-credits {display: block;opacity: 1 !important;position: relative;transition-delay: 0s !important;}.icc-credits span {border-radius: 24px;cursor: pointer;display: inline-block;font-family: Arial, sans-serif;font-size: 12px;letter-spacing: 0;line-height: 1;position: relative;text-decoration: none;width: auto;}.icc-credits span a {display: inline-block;padding: 0.5em 0.375em;position: relative;text-decoration: none;transition: color 0.25s ease, transform 0.25s ease;z-index: 1;}.icc-credits span a:before {content: '( ';opacity: 1;transition: opacity 0.25s ease;}.icc-credits span a:after {content: ' )';opacity: 1;transition: opacity 0.25s ease;}.icc-credits span::after {background-image: linear-gradient(30deg, #A464A1 15%, #3B5DAD 85%);border-radius: inherit;box-shadow: 0 0.25em 1.25em 0 rgba(0,0,0,0.25);content: '';display: block;height: calc(100% + 2px);left: -1px;opacity: 0;pointer-events: none;position: absolute;top: -1px;transition: opacity 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;width: calc(100% + 2px);}.icc-credits span:hover {text-transform: none !important;}.icc-credits span:hover a {color: #ffffff !important;transform: scale(1.1) translateY(-0.05rem);}.icc-credits span:hover a:before {opacity: 0;}.icc-credits span:hover a:after {opacity: 0;}.icc-credits span:hover::after {opacity: 1;transform: scale(1.1) translateY(-0.05rem);}#credits span {color: rgba(23,23,23,0.498);margin-top: 1.5rem !important;}@media (orientation: portrait) {.gallery-modal {grid-template-areas: "image" "caption";grid-template-columns: auto;justify-content: center;}.gallery-modal .nav {background-image: none !important;mix-blend-mode: difference;opacity: 1 !important;position: absolute;}.gallery-modal .nav.next {right: 0;}.gallery-modal .nav.previous {left: 0;}.gallery-modal .nav:before {background-color: rgba(144,144,144,0.5);background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjRweCIgaGVpZ2h0PSI2NHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHpvb21BbmRQYW49ImRpc2FibGUiPjxzdHlsZT5saW5lIHtzdHJva2U6ICNGRkZGRkY7c3Ryb2tlLXdpZHRoOiAzcHg7fTwvc3R5bGU+PGxpbmUgeDE9IjI0IiB5MT0iOCIgeDI9IjQ4IiB5Mj0iMzIiIC8+PGxpbmUgeDE9IjI0IiB5MT0iNTYiIHgyPSI0OCIgeTI9IjMyIiAvPjwvc3ZnPg==');background-position: center;background-repeat: no-repeat;background-size: 1.5rem;border-radius: 3rem;content: '';display: block;height: 3rem;position: absolute;right: 1rem;top: calc(50% - 1.5rem);width: 3rem;}}@media (max-width: 1920px) {}@media (max-width: 1680px) {html {font-size: 13pt;}}@media (max-width: 1280px) {html {font-size: 13pt;}.gallery-modal .nav {opacity: 1 !important;}.gallery-modal .close {opacity: 1 !important;}}@media (max-width: 1024px) {}@media (max-width: 980px) {html {font-size: 11pt;}}@media (max-width: 736px) {html {font-size: 11pt;}#main > .inner {--padding-horizontal: 2rem;--padding-vertical: 5rem;--spacing: 3rem;}#text04 {letter-spacing: 0.021875rem;width: calc(100% + 0.021875rem);font-size: 1em;line-height: 1.75;}#text03 {letter-spacing: 0.065625rem;width: calc(100% + 0.065625rem);font-size: 3.5em;line-height: 1.25;}#text01 {letter-spacing: 0.021875rem;width: calc(100% + 0.021875rem);font-size: 2.5em;line-height: 1.75;}#text02 {letter-spacing: 0.021875rem;width: calc(100% + 0.021875rem);font-size: 1em;line-height: 1.75;}#text05 {letter-spacing: 0.021875rem;width: calc(100% + 0.021875rem);font-size: 2.5em;line-height: 1.75;}#text06 {letter-spacing: 0.065625rem;width: calc(100% + 0.065625rem);font-size: 1em;line-height: 1.25;}#text07 {letter-spacing: 0.065625rem;width: calc(100% + 0.065625rem);font-size: 1em;line-height: 1.25;}#text08 {letter-spacing: 0.065625rem;width: calc(100% + 0.065625rem);font-size: 1em;line-height: 1.25;}#text09 {letter-spacing: 0.065625rem;width: calc(100% + 0.065625rem);font-size: 1em;line-height: 1.25;}#container02 > .wrapper > .inner {--gutters: 2rem;--padding-horizontal: 0rem;--padding-vertical: 0rem;--spacing: 1.5rem;}#container02.columns > .wrapper > .inner {flex-direction: column !important;flex-wrap: nowrap !important;}#container02.columns > .wrapper > .inner > span {height: 0;margin-top: calc(var(--gutters) * -1);pointer-events: none;visibility: hidden;}#container02.columns > .wrapper > .inner > *:first-child {margin-left: 0 !important;padding-top: 0 !important;}#container02.columns > .wrapper > .inner > * {padding: calc(var(--gutters) * 0.5) 0 !important;}#container02.columns > .wrapper > .inner > *:last-child {padding-bottom: 0 !important;}#container02.columns > .wrapper > .inner > div > .full {margin-left: calc(var(--padding-horizontal) * -1);width: calc(100% + (var(--padding-horizontal) * 2) + 0.4725px);}#container02.columns > .wrapper > .inner > div:first-of-type > .full {margin-left: calc(var(--padding-horizontal) * -1);width: calc(100% + (var(--padding-horizontal) * 2) + 0.4725px);}#container02.columns > .wrapper > .inner > div:last-of-type > .full {margin-left: calc(var(--padding-horizontal) * -1);width: calc(100% + (var(--padding-horizontal) * 2) + 0.4725px);}#container02.columns > .wrapper > .inner > div > .full:first-child {margin-top: calc(var(--gutters) * -0.5) !important;}#container02.columns > .wrapper > .inner > div > .full:last-child {margin-bottom: calc(var(--gutters) * -0.5) !important;}#container02.columns > .wrapper > .inner > div:first-of-type > .full:first-child {margin-top: calc(var(--padding-vertical) * -1) !important;}#container02.columns > .wrapper > .inner > div:last-of-type > .full:last-child {margin-bottom: calc(var(--padding-vertical) * -1) !important;}#container02.columns > .wrapper > .inner > div:first-of-type, #container02.columns > .wrapper > .inner > div:first-of-type > .full:first-child {border-top-left-radius: inherit;border-top-right-radius: inherit;}#container02.columns > .wrapper > .inner > div:last-of-type, #container02.columns > .wrapper > .inner > div:last-of-type > .full:last-child {border-bottom-left-radius: inherit;border-bottom-right-radius: inherit;}#container02.columns > .wrapper > .inner > div:first-of-type, #container02.columns > .wrapper > .inner > div:first-of-type > .full:last-child {border-bottom-left-radius: 0 !important;}#container02.columns > .wrapper > .inner > div:last-of-type, #container02.columns > .wrapper > .inner > div:last-of-type > .full:first-child {border-top-right-radius: 0 !important;}#container02.columns > .wrapper > .inner > .full > .full:first-child:last-child {height: auto;}#container02.columns > .wrapper > .inner > .full > .full:first-child:last-child > * {height: auto;position: relative;width: auto;}.gallery-modal .close {background-position: top 0.5rem right 0.5rem;}#gallery01:not(:first-child) {margin-top: 1.5rem !important;}#gallery01:not(:last-child) {margin-bottom: 1.5rem !important;}#gallery01 ul li img {max-height: none;display: block;height: auto;width: 100% !important;}#gallery01 .inner {width: 100%;}#gallery01 ul {flex-direction: column;}#gallery01 ul li {width: 100%;}#gallery01 ul li .thumbnail {display: block;}#gallery01 ul li .frame {display: block;}}@media (max-width: 480px) {#main > .inner {--spacing: 2.625rem;}#container02 > .wrapper > .inner {--spacing: 1.3125rem;}}@media (max-width: 360px) {#main > .inner {--padding-horizontal: 1.5rem;--padding-vertical: 3.75rem;--spacing: 2.25rem;}#text04 {font-size: 1em;}#text03 {font-size: 3.5em;}#text01 {font-size: 2em;}#text02 {font-size: 1em;}#text05 {font-size: 2em;}#text06 {font-size: 1em;}#text07 {font-size: 1em;}#text08 {font-size: 1em;}#text09 {font-size: 1em;}#container02 > .wrapper > .inner {--gutters: 1.5rem;--padding-horizontal: 0rem;--padding-vertical: 0rem;--spacing: 1.125rem;}#gallery01 ul {gap: 0.75rem;}}</style><noscript><style>body {overflow: auto !important;}#main {opacity: 1.0 !important;transform: none !important;transition: none !important;filter: none !important;}</style></noscript><style></style></head><body class="is-playing"><div id="wrapper"><div id="main"><div class="inner"><h1 id="text03" style="opacity: 1; backface-visibility: hidden; transition: opacity 1s ease 0s;"><strong><u>Welcome to My Developer Portfolio</u></strong></h1><div id="container02" class="container default" style="opacity: 1; backface-visibility: hidden; transition: opacity 1s ease 0s;"><div class="wrapper"><div class="inner"><p id="text04">"Hi, I'mRosale, a passionate and skilled software developer with expertise in multiple programming languages. I build innovative and high-performance applications, with a focus on creating exceptional user experiences."</p></div></div></div><h2 id="text01" style="opacity: 0;"><strong><u>Skills &amp; Expertise:</u></strong></h2><p id="text02" style="opacity: 0;"><span class="p">Lua: Developed custom scripts and mods for Roblox to enhance gameplay and functionality.<br> C++ &amp; C#: Proficient in building high-performance applications, especially for gaming and system utilities.<br> Python: Extensive use in automation, web scraping, and backend development.<br> Java: Experience in building cross-platform applications and services, focusing on scalability and performance.</span></p><h2 id="text05" style="opacity: 0;"><strong><u>Notable Projects:</u></strong></h2><p id="text06" style="opacity: 0;"><span class="p"><strong><u>Delicate Donuts:</u></strong><br> Developed a comprehensive interactive NPC system for the game Delicate Donuts. This system includes features like anti-clutter mechanisms, ensuring a clean and efficient gaming experience. The system handles NPC behaviors and interactions, optimizing performance even in crowded scenes.<br> Technologies Used: Lua, Game Engine Scripting, System Optimization.<br> <strong><a href="https://www.roblox.com/share?code=114afd662f263d4d951a56840f9b8d9e&amp;type=ExperienceDetails&amp;stamp=1731769365265">Game Link</a></strong></span></p><p id="text07" style="opacity: 0;"><span class="p"><strong><u>Macro Software: (Private Project)</u></strong><br> Created a macro software suite designed to support multiple games, providing custom hotkeys for users. This tool enables efficient gameplay through keybinding automation and customizable input systems tailored for various game types.<br> Technologies Used: C++, Key Mapping Systems, Game Automation.<br> [Private Project – Not Publicly Available]</span></p><p id="text08" style="opacity: 0;"><span class="p"><strong><u>Advanced Discord Key System:</u></strong><br> Developed an advanced key system for a Discord bot integrated with Firebase. This system generates unique keys for users and stores them securely in Firebase, enabling users to authenticate and access exclusive server features with advanced security protocols.<br> Technologies Used: Node.js, Firebase, API Integration, Authentication.<br> <strong><a href="https://github.com/RosaleDev/Real-Time-Secure-Key-Management-with-Discord-Lua-UI">GitHubLink</a></strong></span></p><div id="gallery01" class="gallery" style="opacity: 0;"><div class="inner"><ul><li><a href="assets/images/gallery01/f7904dcc_original.jpg?v=afab7151" class="thumbnail n01"><span class="frame"><img src="assets/images/gallery01/f7904dcc.jpg?v=afab7151" alt="Untitled"></span></a></li><li><a href="assets/images/gallery01/7188d339_original.jpg?v=afab7151" class="thumbnail n02"><span class="frame"><img src="assets/images/gallery01/7188d339.jpg?v=afab7151" alt="Untitled"></span></a></li><li><a href="assets/images/gallery01/39a19de2_original.jpg?v=afab7151" class="thumbnail n03"><span class="frame"><img src="assets/images/gallery01/39a19de2.jpg?v=afab7151" alt="Untitled"></span></a></li><li><a href="assets/images/gallery01/1dd376cf_original.jpg?v=afab7151" class="thumbnail n04"><span class="frame"><img src="assets/images/gallery01/1dd376cf.jpg?v=afab7151" alt="Untitled"></span></a></li><li><a href="assets/images/gallery01/97925dc8_original.jpg?v=afab7151" class="thumbnail n05"><span class="frame"><img src="assets/images/gallery01/97925dc8.jpg?v=afab7151" alt="Untitled"></span></a></li><li><a href="assets/images/gallery01/8c78edfe_original.jpg?v=afab7151" class="thumbnail n06"><span class="frame"><img src="assets/images/gallery01/8c78edfe.jpg?v=afab7151" alt="Untitled"></span></a></li></ul></div></div><p id="text09" style="opacity: 0;"><span class="p"><strong><u>Contact Me</u></strong><br> Feel free to reach out via email or connect with me on LinkedIn or GitHub.</span><span class="p">Discord: Ovwm.<br> GitHub: https://github.com/RosaleDev</span></p><div id="credits" class="icc-credits"><span><a href="https://carrd.co/build?ref=auto">Made with Carrd</a></span></div></div></div></div><script>(function() {var on = addEventListener,off = removeEventListener,$ = function(q) { return document.querySelector(q) },$$ = function(q) { return document.querySelectorAll(q) },$body = document.body,$inner = $('.inner'),client = (function() {var o = {browser: 'other',browserVersion: 0,os: 'other',osVersion: 0,mobile: false,canUse: null,flags: {lsdUnits: false,},},ua = navigator.userAgent,a, i;a = [['firefox',/Firefox\/([0-9\.]+)/],['edge',/Edge\/([0-9\.]+)/],['safari',/Version\/([0-9\.]+).+Safari/],['chrome',/Chrome\/([0-9\.]+)/],['chrome',/CriOS\/([0-9\.]+)/],['ie',/Trident\/.+rv:([0-9]+)/]];for (i=0; i < a.length; i++) {if (ua.match(a[i][1])) {o.browser = a[i][0];o.browserVersion = parseFloat(RegExp.$1);break;}}a = [['ios',/([0-9_]+) like Mac OS X/,function(v) { return v.replace('_', '.').replace('_', ''); }],['ios',/CPU like Mac OS X/,function(v) { return 0 }],['ios',/iPad; CPU/,function(v) { return 0 }],['android',/Android ([0-9\.]+)/,null],['mac',/Macintosh.+Mac OS X ([0-9_]+)/,function(v) { return v.replace('_', '.').replace('_', ''); }],['windows',/Windows NT ([0-9\.]+)/,null],['undefined',/Undefined/,null]];for (i=0; i < a.length; i++) {if (ua.match(a[i][1])) {o.os = a[i][0];o.osVersion = parseFloat( a[i][2] ? (a[i][2])(RegExp.$1) : RegExp.$1 );break;}}if (o.os == 'mac'&& ('ontouchstart' in window)&& ((screen.width == 1024 && screen.height == 1366)|| (screen.width == 834 && screen.height == 1112)|| (screen.width == 810 && screen.height == 1080)|| (screen.width == 768 && screen.height == 1024)))o.os = 'ios';o.mobile = (o.os == 'android' || o.os == 'ios');var _canUse = document.createElement('div');o.canUse = function(property, value) {var style;style = _canUse.style;if (!(property in style))return false;if (typeof value !== 'undefined') {style[property] = value;if (style[property] == '')return false;}return true;};o.flags.lsdUnits = o.canUse('width', '100dvw');return o;}()),ready = {list: [],add: function(f) {this.list.push(f);},run: function() {this.list.forEach((f) => {f();});},},trigger = function(t) {dispatchEvent(new Event(t));},cssRules = function(selectorText) {var ss = document.styleSheets,a = [],f = function(s) {var r = s.cssRules,i;for (i=0; i < r.length; i++) {if (r[i] instanceof CSSMediaRule && matchMedia(r[i].conditionText).matches)(f)(r[i]); else if (r[i] instanceof CSSStyleRule && r[i].selectorText == selectorText)a.push(r[i]);}},x, i;for (i=0; i < ss.length; i++)f(ss[i]);return a;},escapeHtml = function(s) {if (s === ''|| s === null|| s === undefined)return '';var a = {'&': '&amp;','<': '&lt;','>': '&gt;','"': '&quot;',"'": '&#39;',};s = s.replace(/[&<>"']/g, function(x) {return a[x];});return s;},thisHash = function() {var h = location.hash ? location.hash.substring(1) : null,a;if (!h)return null;if (h.match(/\?/)) {a = h.split('?');h = a[0];history.replaceState(undefined, undefined, '#' + h);window.location.search = a[1];}if (h.length > 0&& !h.match(/^[a-zA-Z]/))h = 'x' + h;if (typeof h == 'string')h = h.toLowerCase();return h;},scrollToElement = function(e, style, duration) {var y, cy, dy,start, easing, offset, f;if (!e)y = 0; else {offset = (e.dataset.scrollOffset ? parseInt(e.dataset.scrollOffset) : 0) * parseFloat(getComputedStyle(document.documentElement).fontSize);switch (e.dataset.scrollBehavior ? e.dataset.scrollBehavior : 'default') {case 'default':default:y = e.offsetTop + offset;break;case 'center':if (e.offsetHeight < window.innerHeight)y = e.offsetTop - ((window.innerHeight - e.offsetHeight) / 2) + offset; else y = e.offsetTop - offset;break;case 'previous':if (e.previousElementSibling)y = e.previousElementSibling.offsetTop + e.previousElementSibling.offsetHeight + offset; else y = e.offsetTop + offset;break;}}if (!style)style = 'smooth';if (!duration)duration = 750;if (style == 'instant') {window.scrollTo(0, y);return;}start = Date.now();cy = window.scrollY;dy = y - cy;switch (style) {case 'linear':easing = function (t) { return t };break;case 'smooth':easing = function (t) { return t<.5 ? 4*t*t*t : (t-1)*(2*t-2)*(2*t-2)+1 };break;}f = function() {var t = Date.now() - start;if (t >= duration)window.scroll(0, y); else {window.scroll(0, cy + (dy * easing(t / duration)));requestAnimationFrame(f);}};f();},scrollToTop = function() {scrollToElement(null);},loadElements = function(parent) {var a, e, x, i;a = parent.querySelectorAll('iframe[data-src]:not([data-src=""])');for (i=0; i < a.length; i++) {a[i].contentWindow.location.replace(a[i].dataset.src);a[i].dataset.initialSrc = a[i].dataset.src;a[i].dataset.src = '';}a = parent.querySelectorAll('video[autoplay]');for (i=0; i < a.length; i++) {if (a[i].paused)a[i].play();}e = parent.querySelector('[data-autofocus="1"]');x = e ? e.tagName : null;switch (x) {case 'FORM':e = e.querySelector('.field input, .field select, .field textarea');if (e)e.focus();break;default:break;}a = parent.querySelectorAll('unloaded-script');for (i=0; i < a.length; i++) {x = document.createElement('script');x.setAttribute('data-loaded', '');if (a[i].getAttribute('src'))x.setAttribute('src', a[i].getAttribute('src'));if (a[i].textContent)x.textContent = a[i].textContent;a[i].replaceWith(x);}x = new Event('loadelements');a = parent.querySelectorAll('[data-unloaded]');a.forEach((element) => {element.removeAttribute('data-unloaded');element.dispatchEvent(x);});},unloadElements = function(parent) {var a, e, x, i;a = parent.querySelectorAll('iframe[data-src=""]');for (i=0; i < a.length; i++) {if (a[i].dataset.srcUnload === '0')continue;if ('initialSrc' in a[i].dataset)a[i].dataset.src = a[i].dataset.initialSrc; else a[i].dataset.src = a[i].src;a[i].contentWindow.location.replace('about:blank');}a = parent.querySelectorAll('video');for (i=0; i < a.length; i++) {if (!a[i].paused)a[i].pause();}e = $(':focus');if (e)e.blur();};window._scrollToTop = scrollToTop;var thisUrl = function() {return window.location.href.replace(window.location.search, '').replace(/#$/, '');};var getVar = function(name) {var a = window.location.search.substring(1).split('&'),b, k;for (k in a) {b = a[k].split('=');if (b[0] == name)return b[1];}return null;};var errors = {handle: function(handler) {window.onerror = function(message, url, line, column, error) {(handler)(error.message);return true;};},unhandle: function() {window.onerror = null;}};var loadHandler = function() {setTimeout(function() {$body.classList.remove('is-loading');$body.classList.add('is-playing');setTimeout(function() {$body.classList.remove('is-playing');$body.classList.add('is-ready');}, 1000);}, 100);};on('load', loadHandler);loadElements(document.body);var style, sheet, rule;style = document.createElement('style');style.appendChild(document.createTextNode(''));document.head.appendChild(style);sheet = style.sheet;if (client.mobile) {(function() {if (client.flags.lsdUnits) {document.documentElement.style.setProperty('--viewport-height', '100svh');document.documentElement.style.setProperty('--background-height', '100lvh');} else {var f = function() {document.documentElement.style.setProperty('--viewport-height', window.innerHeight + 'px');document.documentElement.style.setProperty('--background-height', (window.innerHeight + 250) + 'px');};on('load', f);on('orientationchange', function() {setTimeout(function() {(f)();}, 100);});}})();}if (client.os == 'android') {(function() {sheet.insertRule('body::after { }', 0);rule = sheet.cssRules[0];var f = function() {rule.style.cssText = 'height: ' + (Math.max(screen.width, screen.height)) + 'px';};on('load', f);on('orientationchange', f);on('touchmove', f);})();$body.classList.add('is-touch');} else if (client.os == 'ios') {if (client.osVersion <= 11)(function() {sheet.insertRule('body::after { }', 0);rule = sheet.cssRules[0];rule.style.cssText = '-webkit-transform: scale(1.0)';})();if (client.osVersion <= 11)(function() {sheet.insertRule('body.ios-focus-fix::before { }', 0);rule = sheet.cssRules[0];rule.style.cssText = 'height: calc(100% + 60px)';on('focus', function(event) {$body.classList.add('ios-focus-fix');}, true);on('blur', function(event) {$body.classList.remove('ios-focus-fix');}, true);})();$body.classList.add('is-touch');}var scrollEvents = {items: [],add: function(o) {this.items.push({element: o.element,triggerElement: (('triggerElement' in o && o.triggerElement) ? o.triggerElement : o.element),enter: ('enter' in o ? o.enter : null),leave: ('leave' in o ? o.leave : null),mode: ('mode' in o ? o.mode : 4),threshold: ('threshold' in o ? o.threshold : 0.25),offset: ('offset' in o ? o.offset : 0),initialState: ('initialState' in o ? o.initialState : null),state: false,});},handler: function() {var height, top, bottom, scrollPad;if (client.os == 'ios') {height = document.documentElement.clientHeight;top = document.body.scrollTop + window.scrollY;bottom = top + height;scrollPad = 125;} else {height = document.documentElement.clientHeight;top = document.documentElement.scrollTop;bottom = top + height;scrollPad = 0;}scrollEvents.items.forEach(function(item) {var elementTop, elementBottom, viewportTop, viewportBottom,bcr, pad, state, a, b;if (!item.enter&& !item.leave)return true;if (!item.triggerElement)return true;if (item.triggerElement.offsetParent === null) {if (item.state == true&& item.leave) {item.state = false;(item.leave).apply(item.element);if (!item.enter)item.leave = null;}return true;}bcr = item.triggerElement.getBoundingClientRect();elementTop = top + Math.floor(bcr.top);elementBottom = elementTop + bcr.height;if (item.initialState !== null) {state = item.initialState;item.initialState = null;} else {switch (item.mode) {case 1:default:state = (bottom > (elementTop - item.offset) && top < (elementBottom + item.offset));break;case 2:a = (top + (height * 0.5));state = (a > (elementTop - item.offset) && a < (elementBottom + item.offset));break;case 3:a = top + (height * (item.threshold));if (a - (height * 0.375) <= 0)a = 0;b = top + (height * (1 - item.threshold));if (b + (height * 0.375) >= document.body.scrollHeight - scrollPad)b = document.body.scrollHeight + scrollPad;state = (b > (elementTop - item.offset) && a < (elementBottom + item.offset));break;case 4:pad = height * item.threshold;viewportTop = (top + pad);viewportBottom = (bottom - pad);if (Math.floor(top) <= pad)viewportTop = top;if (Math.ceil(bottom) >= (document.body.scrollHeight - pad))viewportBottom = bottom;if ((viewportBottom - viewportTop) >= (elementBottom - elementTop)) {state = ((elementTop >= viewportTop && elementBottom <= viewportBottom)|| (elementTop >= viewportTop && elementTop <= viewportBottom)|| (elementBottom >= viewportTop && elementBottom <= viewportBottom));} else state = ((viewportTop >= elementTop && viewportBottom <= elementBottom)|| (elementTop >= viewportTop && elementTop <= viewportBottom)|| (elementBottom >= viewportTop && elementBottom <= viewportBottom));break;}}if (state != item.state) {item.state = state;if (item.state) {if (item.enter) {(item.enter).apply(item.element);if (!item.leave)item.enter = null;}} else {if (item.leave) {(item.leave).apply(item.element);if (!item.enter)item.leave = null;}}}});},init: function() {on('load', this.handler);on('resize', this.handler);on('scroll', this.handler);(this.handler)();}};scrollEvents.init();var onvisible = {effects: {'blur-in': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'filter ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity) {this.style.opacity = 0;this.style.filter = 'blur(' + (0.25 * intensity) + 'rem)';},play: function() {this.style.opacity = 1;this.style.filter = 'none';},},'zoom-in': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity, alt) {this.style.opacity = 0;this.style.transform = 'scale(' + (1 - ((alt ? 0.25 : 0.05) * intensity)) + ')';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'zoom-out': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity, alt) {this.style.opacity = 0;this.style.transform = 'scale(' + (1 + ((alt ? 0.25 : 0.05) * intensity)) + ')';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'slide-left': {type: 'transition',transition: function (speed, delay) {return 'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function() {this.style.transform = 'translateX(100vw)';},play: function() {this.style.transform = 'none';},},'slide-right': {type: 'transition',transition: function (speed, delay) {return 'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function() {this.style.transform = 'translateX(-100vw)';},play: function() {this.style.transform = 'none';},},'flip-forward': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity, alt) {this.style.opacity = 0;this.style.transformOrigin = '50% 50%';this.style.transform = 'perspective(1000px) rotateX(' + ((alt ? 45 : 15) * intensity) + 'deg)';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'flip-backward': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity, alt) {this.style.opacity = 0;this.style.transformOrigin = '50% 50%';this.style.transform = 'perspective(1000px) rotateX(' + ((alt ? -45 : -15) * intensity) + 'deg)';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'flip-left': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity, alt) {this.style.opacity = 0;this.style.transformOrigin = '50% 50%';this.style.transform = 'perspective(1000px) rotateY(' + ((alt ? 45 : 15) * intensity) + 'deg)';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'flip-right': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity, alt) {this.style.opacity = 0;this.style.transformOrigin = '50% 50%';this.style.transform = 'perspective(1000px) rotateY(' + ((alt ? -45 : -15) * intensity) + 'deg)';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'tilt-left': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity, alt) {this.style.opacity = 0;this.style.transform = 'rotate(' + ((alt ? 45 : 5) * intensity) + 'deg)';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'tilt-right': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity, alt) {this.style.opacity = 0;this.style.transform = 'rotate(' + ((alt ? -45 : -5) * intensity) + 'deg)';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'fade-right': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity) {this.style.opacity = 0;this.style.transform = 'translateX(' + (-1.5 * intensity) + 'rem)';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'fade-left': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity) {this.style.opacity = 0;this.style.transform = 'translateX(' + (1.5 * intensity) + 'rem)';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'fade-down': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity) {this.style.opacity = 0;this.style.transform = 'translateY(' + (-1.5 * intensity) + 'rem)';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'fade-up': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity) {this.style.opacity = 0;this.style.transform = 'translateY(' + (1.5 * intensity) + 'rem)';},play: function() {this.style.opacity = 1;this.style.transform = 'none';},},'fade-in': {type: 'transition',transition: function (speed, delay) {return 'opacity ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function() {this.style.opacity = 0;},play: function() {this.style.opacity = 1;},},'fade-in-background': {type: 'manual',rewind: function() {this.style.removeProperty('--onvisible-delay');this.style.removeProperty('--onvisible-background-color');},play: function(speed, delay) {this.style.setProperty('--onvisible-speed', speed + 's');if (delay)this.style.setProperty('--onvisible-delay', delay + 's');this.style.setProperty('--onvisible-background-color', 'rgba(0,0,0,0.001)');},},'zoom-in-image': {type: 'transition',target: 'img',transition: function (speed, delay) {return 'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function() {this.style.transform = 'scale(1)';},play: function(intensity) {this.style.transform = 'scale(' + (1 + (0.1 * intensity)) + ')';},},'zoom-out-image': {type: 'transition',target: 'img',transition: function (speed, delay) {return 'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity) {this.style.transform = 'scale(' + (1 + (0.1 * intensity)) + ')';},play: function() {this.style.transform = 'none';},},'focus-image': {type: 'transition',target: 'img',transition: function (speed, delay) {return 'transform ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '') + ', ' +'filter ' + speed + 's ease' + (delay ? ' ' + delay + 's' : '');},rewind: function(intensity) {this.style.transform = 'scale(' + (1 + (0.05 * intensity)) + ')';this.style.filter = 'blur(' + (0.25 * intensity) + 'rem)';},play: function(intensity) {this.style.transform = 'none';this.style.filter = 'none';},},'wipe-up': {type: 'animate',keyframes: function(intensity) {return [{maskSize: '100% 0%',maskImage: 'linear-gradient(90deg, black 100%, transparent 100%)',},{maskSize: '110% 110%',maskImage: 'linear-gradient(90deg, black 100%, transparent 100%)',},];},options: function(speed) {return {duration: speed,iterations: 1,easing: 'ease',};},rewind: function() {this.style.opacity = 0;this.style.maskComposite = 'exclude';this.style.maskRepeat = 'no-repeat';this.style.maskPosition = '0% 100%';},play: function() {this.style.opacity = 1;},},'wipe-down': {type: 'animate',keyframes: function(intensity) {return [{maskSize: '100% 0%',maskImage: 'linear-gradient(90deg, black 100%, transparent 100%)',},{maskSize: '110% 110%',maskImage: 'linear-gradient(90deg, black 100%, transparent 100%)',},];},options: function(speed) {return {duration: speed,iterations: 1,easing: 'ease',};},rewind: function() {this.style.opacity = 0;this.style.maskComposite = 'exclude';this.style.maskRepeat = 'no-repeat';this.style.maskPosition = '0% 0%';},play: function() {this.style.opacity = 1;},},'wipe-left': {type: 'animate',keyframes: function(intensity) {return [{maskSize: '0% 100%',maskImage: 'linear-gradient(90deg, black 100%, transparent 100%)',},{maskSize: '110% 110%',maskImage: 'linear-gradient(90deg, black 100%, transparent 100%)',},];},options: function(speed) {return {duration: speed,iterations: 1,easing: 'ease',};},rewind: function() {this.style.opacity = 0;this.style.maskComposite = 'exclude';this.style.maskRepeat = 'no-repeat';this.style.maskPosition = '100% 0%';},play: function() {this.style.opacity = 1;},},'wipe-right': {type: 'animate',keyframes: function(intensity) {return [{maskSize: '0% 100%',maskImage: 'linear-gradient(90deg, black 100%, transparent 100%)',},{maskSize: '110% 110%',maskImage: 'linear-gradient(90deg, black 100%, transparent 100%)',},];},options: function(speed) {return {duration: speed,iterations: 1,easing: 'ease',};},rewind: function() {this.style.opacity = 0;this.style.maskComposite = 'exclude';this.style.maskRepeat = 'no-repeat';this.style.maskPosition = '0% 0%';},play: function() {this.style.opacity = 1;},},'wipe-diagonal': {type: 'animate',keyframes: function(intensity) {return [{maskSize: '0% 0%',maskImage: 'linear-gradient(45deg, black 50%, transparent 50%)',},{maskSize: '220% 220%',maskImage: 'linear-gradient(45deg, black 50%, transparent 50%)',},];},options: function(speed) {return {duration: speed,iterations: 1,easing: 'ease',};},rewind: function() {this.style.opacity = 0;this.style.maskComposite = 'exclude';this.style.maskRepeat = 'no-repeat';this.style.maskPosition = '0% 100%';},play: function() {this.style.opacity = 1;},},'wipe-reverse-diagonal': {type: 'animate',keyframes: function(intensity) {return [{maskSize: '0% 0%',maskImage: 'linear-gradient(135deg, transparent 50%, black 50%)',},{maskSize: '220% 220%',maskImage: 'linear-gradient(135deg, transparent 50%, black 50%)',},];},options: function(speed) {return {duration: speed,iterations: 1,easing: 'ease',};},rewind: function() {this.style.opacity = 0;this.style.maskComposite = 'exclude';this.style.maskRepeat = 'no-repeat';this.style.maskPosition = '100% 100%';},play: function() {this.style.opacity = 1;},},'pop-in': {type: 'animate',keyframes: function(intensity) {let diff = (intensity + 1) * 0.025;return [{opacity: 0,transform: 'scale(' + (1 - diff) + ')',},{opacity: 1,transform: 'scale(' + (1 + diff) + ')',},{opacity: 1,transform: 'scale(' + (1 - (diff * 0.25)) + ')',offset: 0.9,},{opacity: 1,transform: 'scale(1)',}];},options: function(speed) {return {duration: speed,iterations: 1,};},rewind: function() {this.style.opacity = 0;},play: function() {this.style.opacity = 1;},},'bounce-up': {type: 'animate',keyframes: function(intensity) {let diff = (intensity + 1) * 0.075;return [{opacity: 0,transform: 'translateY(' + diff + 'rem)',},{opacity: 1,transform: 'translateY(' + (-1 * diff) + 'rem)',},{opacity: 1,transform: 'translateY(' + (diff * 0.25) + 'rem)',offset: 0.9,},{opacity: 1,transform: 'translateY(0)',}];},options: function(speed) {return {duration: speed,iterations: 1,};},rewind: function() {this.style.opacity = 0;},play: function() {this.style.opacity = 1;},},'bounce-down': {type: 'animate',keyframes: function(intensity) {let diff = (intensity + 1) * 0.075;return [{opacity: 0,transform: 'translateY(' + (-1 * diff) + 'rem)',},{opacity: 1,transform: 'translateY(' + diff + 'rem)',},{opacity: 1,transform: 'translateY(' + (-1 * (diff * 0.25)) + 'rem)',offset: 0.9,},{opacity: 1,transform: 'translateY(0)',}];},options: function(speed) {return {duration: speed,iterations: 1,};},rewind: function() {this.style.opacity = 0;},play: function() {this.style.opacity = 1;},},'bounce-left': {type: 'animate',keyframes: function(intensity) {let diff = (intensity + 1) * 0.075;return [{opacity: 0,transform: 'translateX(' + diff + 'rem)',},{opacity: 1,transform: 'translateX(' + (-1 * diff) + 'rem)',},{opacity: 1,transform: 'translateX(' + (diff * 0.25) + 'rem)',offset: 0.9,},{opacity: 1,transform: 'translateX(0)',}];},options: function(speed) {return {duration: speed,iterations: 1,};},rewind: function() {this.style.opacity = 0;},play: function() {this.style.opacity = 1;},},'bounce-right': {type: 'animate',keyframes: function(intensity) {let diff = (intensity + 1) * 0.075;return [{opacity: 0,transform: 'translateX(' + (-1 * diff) + 'rem)',},{opacity: 1,transform: 'translateX(' + diff + 'rem)',},{opacity: 1,transform: 'translateX(' + (-1 * (diff * 0.25)) + 'rem)',offset: 0.9,},{opacity: 1,transform: 'translateX(0)',}];},options: function(speed) {return {duration: speed,iterations: 1,};},rewind: function() {this.style.opacity = 0;},play: function() {this.style.opacity = 1;},},},regex: new RegExp('([^\\s]+)', 'g'),add: function(selector, settings) {var _this = this,style = settings.style in this.effects ? settings.style : 'fade',speed = parseInt('speed' in settings ? settings.speed : 0),intensity = parseInt('intensity' in settings ? settings.intensity : 5),delay = parseInt('delay' in settings ? settings.delay : 0),replay = 'replay' in settings ? settings.replay : false,stagger = 'stagger' in settings ? (parseInt(settings.stagger) >= 0 ? parseInt(settings.stagger) : false) : false,staggerOrder = 'staggerOrder' in settings ? settings.staggerOrder : 'default',staggerSelector = 'staggerSelector' in settings ? settings.staggerSelector : null,threshold = parseInt('threshold' in settings ? settings.threshold : 3),state = 'state' in settings ? settings.state : null,effect = this.effects[style],enter, leave, scrollEventThreshold;if (window.CARRD_DISABLE_ANIMATION === true) {if (style == 'fade-in-background')$$(selector).forEach(function(e) {e.style.setProperty('--onvisible-background-color', 'rgba(0,0,0,0.001)');});return;}switch (threshold) {case 1:scrollEventThreshold = 0;break;case 2:scrollEventThreshold = 0.125;break;default:case 3:scrollEventThreshold = 0.25;break;case 4:scrollEventThreshold = 0.375;break;case 5:scrollEventThreshold = 0.475;break;}switch (effect.type) {default:case 'transition':intensity = ((intensity / 10) * 1.75) + 0.25;enter = function(children, staggerDelay=0) {var _this = this,transitionOrig;if (effect.target)_this = this.querySelector(effect.target);transitionOrig = _this.style.transition;_this.style.setProperty('backface-visibility', 'hidden');_this.style.transition = effect.transition.apply(_this, [ speed / 1000, (delay + staggerDelay) / 1000 ]);effect.play.apply(_this, [ intensity, !!children ]);setTimeout(function() {_this.style.removeProperty('backface-visibility');_this.style.transition = transitionOrig;}, (speed + delay + staggerDelay) * 2);};leave = function(children) {var _this = this,transitionOrig;if (effect.target)_this = this.querySelector(effect.target);transitionOrig = _this.style.transition;_this.style.setProperty('backface-visibility', 'hidden');_this.style.transition = effect.transition.apply(_this, [ speed / 1000 ]);effect.rewind.apply(_this, [ intensity, !!children ]);setTimeout(function() {_this.style.removeProperty('backface-visibility');_this.style.transition = transitionOrig;}, speed * 2);};break;case 'animate':enter = function(children, staggerDelay=0) {var _this = this,transitionOrig;if (effect.target)_this = this.querySelector(effect.target);setTimeout(() => {effect.play.apply(_this, [ ]);_this.animate(effect.keyframes.apply(_this, [ intensity ]),effect.options.apply(_this, [ speed, delay ]));}, delay + staggerDelay);};leave = function(children) {var _this = this,transitionOrig;if (effect.target)_this = this.querySelector(effect.target);let a = _this.animate(effect.keyframes.apply(_this, [ intensity ]),effect.options.apply(_this, [ speed, delay ]));a.reverse();a.addEventListener('finish', () => {effect.rewind.apply(_this, [ ]);});};break;case 'manual':enter = function(children, staggerDelay=0) {var _this = this,transitionOrig;if (effect.target)_this = this.querySelector(effect.target);effect.play.apply(_this, [ speed / 1000, (delay + staggerDelay) / 1000, intensity ]);};leave = function(children) {var _this = this,transitionOrig;if (effect.target)_this = this.querySelector(effect.target);effect.rewind.apply(_this, [ intensity, !!children ]);};break;}$$(selector).forEach(function(e) {var children, targetElement, triggerElement;if (stagger !== false&& staggerSelector == ':scope > *')_this.expandTextNodes(e);children = (stagger !== false && staggerSelector) ? e.querySelectorAll(staggerSelector) : null;if (effect.target)targetElement = e.querySelector(effect.target); else targetElement = e;if (children)children.forEach(function(targetElement) {effect.rewind.apply(targetElement, [ intensity, true ]);}); else effect.rewind.apply(targetElement, [ intensity ]);triggerElement = e;if (e.parentNode) {if (e.parentNode.dataset.onvisibleTrigger)triggerElement = e.parentNode; else if (e.parentNode.parentNode) {if (e.parentNode.parentNode.dataset.onvisibleTrigger)triggerElement = e.parentNode.parentNode;}}scrollEvents.add({element: e,triggerElement: triggerElement,initialState: state,threshold: scrollEventThreshold,enter: children ? function() {var staggerDelay = 0,childHandler = function(e) {enter.apply(e, [children, staggerDelay]);staggerDelay += stagger;},a;if (staggerOrder == 'default') {children.forEach(childHandler);} else {a = Array.from(children);switch (staggerOrder) {case 'reverse':a.reverse();break;case 'random':a.sort(function() {return Math.random() - 0.5;});break;}a.forEach(childHandler);}} : enter,leave: (replay ? (children ? function() {children.forEach(function(e) {leave.apply(e, [children]);});} : leave) : null),});});},expandTextNodes: function(e) {var s, i, w, x;for (i = 0; i < e.childNodes.length; i++) {x = e.childNodes[i];if (x.nodeType != Node.TEXT_NODE)continue;s = x.nodeValue;s = s.replace(this.regex,function(x, a) {return '<text-node>' + escapeHtml(a) + '</text-node>';});w = document.createElement('text-node');w.innerHTML = s;x.replaceWith(w);while (w.childNodes.length > 0) {w.parentNode.insertBefore(w.childNodes[0],w);}w.parentNode.removeChild(w);}},};function lightboxGallery() {var _this = this;this.id = 'gallery';this.$wrapper = $('#' + this.id);this.$modal = null;this.$modalCaption = null;this.$modalImage = null;this.$modalNext = null;this.$modalPrevious = null;this.$links = null;this.locked = false;this.captions = null;this.current = null;this.delay = 375;this.navigation = null;this.mobile = null;this.protect = null;this.zoomIntervalId = null;this.initModal();};lightboxGallery.prototype.init = function(config) {var _this = this,$links = $$('#' + config.id + ' .thumbnail'),navigation = config.navigation,captions = config.captions,mobile = config.mobile,mobileNavigation = config.mobileNavigation,scheme = config.scheme,protect = ('protect' in config ? config.protect : false),i, j;j = 0;for (i = 0; i < $links.length; i++) {if ($links[i].dataset.lightboxIgnore != '1')j++;}if (j < 2)navigation = false;for (i=0; i < $links.length; i++) {if ($links[i].dataset.lightboxIgnore == '1')continue;(function(index) {$links[index].addEventListener('click', function(event) {event.stopPropagation();event.preventDefault();_this.show(index, {$links: $links,navigation: navigation,captions: captions,mobile: mobile,mobileNavigation: mobileNavigation,scheme: scheme,protect: protect,});});})(i);}};lightboxGallery.prototype.initModal = function() {var _this = this,dragStart = null,dragEnd = null,$modal,$modalInner,$modalImage,$modalNext,$modalPrevious;$modal = document.createElement('div');$modal.id = this.id + '-modal';$modal.tabIndex = -1;$modal.className = 'gallery-modal';$modal.innerHTML = '<div class="inner"><img src="" /></div><div class="caption"></div><div class="nav previous"></div><div class="nav next"></div><div class="close"></div>';$body.appendChild($modal);$modalInner = $modal.querySelector('.inner');$modalImage = $modal.querySelector('img');$modalImage.addEventListener('load', function() {$modalImage.style.setProperty('--natural-width', $modalImage.naturalWidth + 'px');$modalImage.style.setProperty('--natural-height', $modalImage.naturalHeight + 'px');$modal.classList.add('done');setTimeout(function() {if (!$modal.classList.contains('visible'))return;$modal.classList.add('loaded');setTimeout(function() {$modal.classList.remove('switching', 'from-left', 'from-right', 'done');}, _this.delay);}, ($modal.classList.contains('switching') ? 0 : _this.delay));});$modalImage.addEventListener('contextmenu', function() {if (_this.protect)event.preventDefault();}, true);$modalImage.addEventListener('dragstart', function() {if (_this.protect)event.preventDefault();}, true);$modalCaption = $modal.querySelector('.caption');$modalNext = $modal.querySelector('.next');$modalPrevious = $modal.querySelector('.previous');switch (client.browser) {case 'safari':case 'firefox':$modalInner.style.boxShadow = 'none';break;default:break;}$modal.show = function(index, offset, direction) {var item,i, j, found;if (_this.locked)return;if (typeof index != 'number')index = _this.current;if (typeof offset == 'number') {found = false;j = 0;for (j = 0; j < _this.$links.length; j++) {index += offset;if (index < 0)index = _this.$links.length - 1; else if (index >= _this.$links.length)index = 0;if (index == _this.current)break;item = _this.$links.item(index);if (!item)break;if (item.dataset.lightboxIgnore != '1') {found = true;break;}}if (!found)return;} else {if (index < 0)index = _this.$links.length - 1; else if (index >= _this.$links.length)index = 0;if (index == _this.current)return;item = _this.$links.item(index);if (!item)return;if (item.dataset.lightboxIgnore == '1')return;}if (client.mobile)_this.zoomIntervalId = setInterval(function() {_this.zoomHandler();}, 250);_this.locked = true;if (_this.current !== null) {$modal.classList.remove('loaded');$modal.classList.add('switching');switch (direction) {case -1:$modal.classList.add('from-left');break;case 1:$modal.classList.add('from-right');break;default:break;}setTimeout(function() {_this.current = index;$modalImage.src = item.href;if (_this.captions)$modalCaption.innerHTML = item.querySelector('[data-caption]').dataset.caption;setTimeout(function() {$modal.focus();_this.locked = false;}, _this.delay);}, _this.delay);} else {_this.current = index;$modalImage.src = item.href;if (_this.captions)$modalCaption.innerHTML = item.querySelector('[data-caption]').dataset.caption;$modal.classList.add('visible');setTimeout(function() {$modal.focus();_this.locked = false;}, _this.delay);}};$modal.hide = function() {if (_this.locked)return;if (!$modal.classList.contains('visible'))return;_this.locked = true;$modal.classList.remove('visible');$modal.classList.remove('loaded');$modal.classList.remove('switching', 'from-left', 'from-right', 'done');clearInterval(_this.zoomIntervalId);setTimeout(function() {$modalImage.src = '';_this.locked = false;$body.focus();_this.current = null;}, _this.delay);};$modal.next = function(direction) {$modal.show(null, 1, direction);};$modal.previous = function(direction) {$modal.show(null, -1, direction);};$modal.first = function() {$modal.show(0);};$modal.last = function() {$modal.show(_this.$links.length - 1);};$modalInner.addEventListener('touchstart', function(event) {if (!_this.navigation)return;if (event.touches.length > 1)return;dragStart = {x: event.touches[0].clientX,y: event.touches[0].clientY};});$modalInner.addEventListener('touchmove', function(event) {var dx, dy;if (!_this.navigation)return;if (!dragStart|| event.touches.length > 1)return;dragEnd = {x: event.touches[0].clientX,y: event.touches[0].clientY};dx = dragStart.x - dragEnd.x;dy = dragStart.y - dragEnd.y;if (Math.abs(dx) < 50)return;event.preventDefault();if (dx > 0)$modal.next(-1); else if (dx < 0)$modal.previous(1);});$modalInner.addEventListener('touchend', function(event) {if (!_this.navigation)return;dragStart = null;dragEnd = null;});$modal.addEventListener('click', function(event) {if (event.target&& (event.target.tagName == 'A' || event.target.tagName == 'SPOILER-TEXT'))return;$modal.hide();});$modal.addEventListener('keydown', function(event) {if (!$modal.classList.contains('visible'))return;switch (event.keyCode) {case 39:case 32:if (!_this.navigation)break;event.preventDefault();event.stopPropagation();$modal.next();break;case 37:if (!_this.navigation)break;event.preventDefault();event.stopPropagation();$modal.previous();break;case 36:if (!_this.navigation)break;event.preventDefault();event.stopPropagation();$modal.first();break;case 35:if (!_this.navigation)break;event.preventDefault();event.stopPropagation();$modal.last();break;case 27:event.preventDefault();event.stopPropagation();$modal.hide();break;}});$modalNext.addEventListener('click', function(event) {$modal.next();});$modalPrevious.addEventListener('click', function(event) {$modal.previous();});this.$modal = $modal;this.$modalImage = $modalImage;this.$modalCaption = $modalCaption;this.$modalNext = $modalNext;this.$modalPrevious = $modalPrevious;};lightboxGallery.prototype.show = function(href, config) {this.$links = config.$links;this.navigation = config.navigation;this.captions = config.captions;this.mobile = config.mobile;this.mobileNavigation = config.mobileNavigation;this.scheme = config.scheme;this.protect = config.protect;this.$modal.classList.remove('light', 'dark');switch (this.scheme) {case 'light':this.$modal.classList.add('light');break;case 'dark':this.$modal.classList.add('dark');break;case 'auto':if (window.matchMedia('(prefers-color-scheme: light)').matches)this.$modal.classList.add('light'); else this.$modal.classList.add('dark');break;}if (this.navigation) {this.$modalNext.style.display = '';this.$modalPrevious.style.display = '';if (client.mobile&& !this.mobileNavigation) {this.$modalNext.style.display = 'none';this.$modalPrevious.style.display = 'none';}} else {this.$modalNext.style.display = 'none';this.$modalPrevious.style.display = 'none';}if (this.captions)this.$modalCaption.style.display = ''; else this.$modalCaption.style.display = 'none';if (this.protect) {this.$modalImage.style.WebkitTouchCallout = 'none';this.$modalImage.style.userSelect = 'none';} else {this.$modalImage.style.WebkitTouchCallout = '';this.$modalImage.style.userSelect = '';}if (client.mobile && !this.mobile)return;this.$modal.show(href);};lightboxGallery.prototype.zoomHandler = function() {var threshold = window.matchMedia('(orientation: portrait)').matches ? 50 : 100;if (window.outerWidth > window.innerWidth + threshold)this.$modal.classList.add('zooming'); else this.$modal.classList.remove('zooming');};var _lightboxGallery = new lightboxGallery;_lightboxGallery.init({id: 'gallery01',navigation: true,captions: false,mobile: true,mobileNavigation: true,scheme: 'dark',});onvisible.add('#text03', { style: 'fade-in', speed: 1000, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#container02', { style: 'fade-in', speed: 1000, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text01', { style: 'fade-in', speed: 1000, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text02', { style: 'fade-in', speed: 1000, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text05', { style: 'fade-in', speed: 1000, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text06', { style: 'fade-in', speed: 1000, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text07', { style: 'fade-in', speed: 1000, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text08', { style: 'fade-in', speed: 1000, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#gallery01', { style: 'fade-in', speed: 1000, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text09', { style: 'fade-in', speed: 1000, intensity: 5, threshold: 3, delay: 0, replay: false });ready.run();})();</script><div id="gallery-modal" tabindex="-1" class="gallery-modal"><div class="inner"><img src=""></div><div class="caption"></div><div class="nav previous"></div><div class="nav next"></div><div class="close"></div></div></body></html>