<!DOCTYPE HTML><html lang="en"><head><title>Shane Robinson</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="Shane Robinson, founder of several tech companies, brings 40 years of coding &amp; 30 years as a DBA, and is a museum-collected fine art painter." /><meta property="og:site_name" content="Shane Robinson" /><meta property="og:title" content="Shane Robinson" /><meta property="og:type" content="website" /><meta property="og:description" content="Shane Robinson, founder of several tech companies, brings 40 years of coding &amp; 30 years as a DBA, and is a museum-collected fine art painter." /><meta property="og:image" content="https://shanerobinson.com/assets/images/share.jpg?v=4543bd27" /><meta property="og:image:type" content="image/jpeg" /><meta property="og:image:width" content="1200" /><meta property="og:image:height" content="909" /><meta property="og:url" content="https://shanerobinson.com" /><meta property="twitter:card" content="summary_large_image" /><meta name="author" content="Shane Robinson" /><link rel="canonical" href="https://shanerobinson.com" /><link rel="author" href="/humans.txt" /><link href="https://fonts.googleapis.com/css2?display=swap&family=Oxygen:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&family=Inter:ital,wght@0,300;0,400;0,700;0,900;1,300;1,400;1,700;1,900" rel="stylesheet" type="text/css" /><link rel="icon" type="image/png" href="assets/images/favicon.png?v=4543bd27" /><link rel="apple-touch-icon" href="assets/images/apple-touch-icon.png?v=4543bd27" /><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;}body:before {content: '';display: block;background-attachment: scroll;height: var(--background-height);left: auto;pointer-events: none;position: fixed;top: 0;transform: scale(1);width: calc(100vw - 40rem);z-index: 0;right: 0;background-image: linear-gradient(to top, rgba(0,0,0,0.702), rgba(0,0,0,0.702)), url('assets/images/bg.jpg?v=4543bd27');background-position: 0% 0%, center;background-repeat: repeat, no-repeat;background-size: auto, contain;background-color: #000000;}body:after {background-color: #000000;content: '';display: block;pointer-events: none;position: fixed;transform: scale(1);z-index: 1;height: 100%;left: 0;opacity: 0;top: 0;transition: opacity 1.5s ease-in-out 0s, visibility 1.5s 0s;visibility: hidden;width: 100%;}body.is-loading:after {opacity: 1;visibility: visible;}: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: stretch;display: flex;flex-direction: row;justify-content: flex-start;min-height: var(--viewport-height);overflow: hidden;position: relative;z-index: 2;padding: 0 3rem 0 0;}#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;background-color: #000000;}#main > .inner {--padding-horizontal: 3.5rem;--padding-vertical: 4rem;--spacing: 1.5rem;--width: 40rem;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 > header {margin-bottom: var(--spacing);border-top-left-radius: inherit;border-top-right-radius: inherit;}#main > .inner > footer {margin-top: var(--spacing);border-bottom-left-radius: inherit;border-bottom-right-radius: inherit;}#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;}#main > .inner > * > .full {margin-left: calc(-3.5rem);max-width: calc(100% + 7rem + 0.4725px);width: calc(100% + 7rem + 0.4725px);}#main > .inner > * > .full.screen {border-radius: 0 !important;max-width: 100vw;position: relative;width: 100vw;left: 0;margin-left: calc(-3.5rem);right: auto;}#main > .inner > header > .full:first-child {border-top-left-radius: inherit;border-top-right-radius: inherit;margin-top: -4rem !important;}#main > .inner > footer > .full:last-child {margin-bottom: -4rem !important;border-bottom-left-radius: inherit;border-bottom-right-radius: inherit;}#main > .inner > section > * {transition: opacity 1.5s ease-in-out 0s;}body.is-loading #main > .inner > section > * {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;}.buttons {cursor: default;display: flex;justify-content: var(--flex-alignment);letter-spacing: 0;padding: 0;}.buttons li {max-width: 100%;text-align: var(--alignment);}.buttons li a {align-items: center;justify-content: center;max-width: 100%;text-align: center;text-decoration: none;vertical-align: middle;white-space: nowrap;}#buttons01 {gap: 0.875rem;flex-direction: row;flex-wrap: wrap;}#buttons01 li a {display: inline-flex;width: auto;height: 2.125rem;line-height: 2.125rem;padding: 0 1.0625rem;vertical-align: middle;font-family: 'Oxygen', sans-serif;font-size: 0.875em;font-weight: 300;border-radius: 2rem;transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;}#buttons01 li a svg {display: block;fill: #FFFFFF;flex-grow: 0;flex-shrink: 0;height: 100%;min-width: 16px;pointer-events: none;width: 1em;margin-left: -0.125em;margin-right: calc(0.5em + 0rem);transition: fill 0.25s ease;}#buttons01 li a .label {direction: var(--site-language-direction);overflow: hidden;}#buttons01 .button {color: #FFFFFF;border: solid 1px #000000;}#buttons01 .button:hover {border-color: #FFFFFF !important;color: #FFFFFF !important;}#buttons01 .button:hover svg {fill: #FFFFFF !important;}#buttons01 .n01 svg {fill: #666666;}#buttons01 .n01 {color: #666666;border: solid 1px #666666;}#buttons01 .n01:hover {border-color: #FFFFFF !important;color: #FFFFFF !important;}#buttons01 .n01:hover svg {fill: #FFFFFF !important;}#buttons01 .n02 svg {fill: #666666;}#buttons01 .n02 {color: #666666;border: solid 1px #666666;}#buttons01 .n02:hover {border-color: #FFFFFF !important;color: #FFFFFF !important;}#buttons01 .n02:hover svg {fill: #FFFFFF !important;}#buttons01 .n03 svg {fill: #666666;}#buttons01 .n03 {color: #666666;border: solid 1px #666666;}#buttons01 .n03:hover {border-color: #FFFFFF !important;color: #FFFFFF !important;}#buttons01 .n03:hover svg {fill: #FFFFFF !important;}#footer {margin-top: 0rem !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;}h1.style1:not(:first-child), h2.style1:not(:first-child), h3.style1:not(:first-child), p.style1:not(:first-child) {margin-top: 0rem !important;}h1.style1:not(:last-child), h2.style1:not(:last-child), h3.style1:not(:last-child), p.style1:not(:last-child) {margin-bottom: 0rem !important;}h1.style1, h2.style1, h3.style1, p.style1 {color: #FFFFFF;font-family: 'Inter', sans-serif;font-size: 3em;line-height: 1.125;font-weight: 700;}h1.style1 a, h2.style1 a, h3.style1 a, p.style1 a {text-decoration: underline;}h1.style1 a:hover, h2.style1 a:hover, h3.style1 a:hover, p.style1 a:hover {text-decoration: none;}h1.style1 span.p:nth-child(n + 2), h2.style1 span.p:nth-child(n + 2), h3.style1 span.p:nth-child(n + 2), p.style1 span.p:nth-child(n + 2) {margin-top: 1rem;}#text12:not(:first-child) {margin-top: 0rem !important;}#text12:not(:last-child) {margin-bottom: 0rem !important;}#text12 {color: #666666;font-family: 'Inter', sans-serif;letter-spacing: -0.125rem;width: 100%;font-size: 1.75em;line-height: 1.25;font-weight: 300;}#text12 a {text-decoration: underline;}#text12 a:hover {text-decoration: none;}#text12 span.p:nth-child(n + 2) {margin-top: 1rem;}#text04:not(:first-child) {margin-top: 0rem !important;}#text04:not(:last-child) {margin-bottom: 0rem !important;}#text04 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;font-size: 1.25em;line-height: 1.25;font-weight: 400;}#text04 a {text-decoration: underline;}#text04 a:hover {text-decoration: none;}#text04 span.p:nth-child(n + 2) {margin-top: 1rem;}#text07:not(:first-child) {margin-top: 0rem !important;}#text07:not(:last-child) {margin-bottom: 0rem !important;}#text07 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;padding-left: calc(1.5rem * var(--indent-left));padding-right: calc(1.5rem * var(--indent-right));font-size: 1em;line-height: 1.875;font-weight: 300;}#text07 a:hover {color: #FFABB5;}#text07 a {text-decoration: underline;}#text07 span.p:nth-child(n + 2) {margin-top: 1rem;}#text05:not(:first-child) {margin-top: 0rem !important;}#text05:not(:last-child) {margin-bottom: 0rem !important;}#text05 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;font-size: 1.25em;line-height: 1.25;font-weight: 400;}#text05 a {text-decoration: underline;}#text05 a:hover {text-decoration: none;}#text05 span.p:nth-child(n + 2) {margin-top: 1rem;}#text08:not(:first-child) {margin-top: 0rem !important;}#text08:not(:last-child) {margin-bottom: 0rem !important;}#text08 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;padding-left: calc(1.5rem * var(--indent-left));padding-right: calc(1.5rem * var(--indent-right));font-size: 1em;line-height: 1.875;font-weight: 300;}#text08 a:hover {color: #FFABB5;}#text08 a {text-decoration: underline;}#text08 span.p:nth-child(n + 2) {margin-top: 1rem;}#text15:not(:first-child) {margin-top: 0rem !important;}#text15:not(:last-child) {margin-bottom: 0rem !important;}#text15 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;font-size: 1.25em;line-height: 1.25;font-weight: 400;}#text15 a {text-decoration: underline;}#text15 a:hover {text-decoration: none;}#text15 span.p:nth-child(n + 2) {margin-top: 1rem;}#text02:not(:first-child) {margin-top: 0rem !important;}#text02:not(:last-child) {margin-bottom: 0rem !important;}#text02 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;padding-left: calc(1.5rem * var(--indent-left));padding-right: calc(1.5rem * var(--indent-right));font-size: 1em;line-height: 1.875;font-weight: 300;}#text02 a:hover {color: #FFABB5;}#text02 a {text-decoration: underline;}#text02 span.p:nth-child(n + 2) {margin-top: 1rem;}#text03:not(:first-child) {margin-top: 1rem !important;}#text03:not(:last-child) {margin-bottom: 1rem !important;}#text03 {color: #666666;font-family: 'Inter', sans-serif;letter-spacing: -0.125rem;width: 100%;font-size: 1.75em;line-height: 1.25;font-weight: 300;}#text03 a {text-decoration: underline;}#text03 a:hover {text-decoration: none;}#text03 span.p:nth-child(n + 2) {margin-top: 1rem;}#text13 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;font-size: 0.875em;line-height: 1.875;font-weight: 300;}#text13 a:hover {color: #FFABB5;}#text13 a {text-decoration: underline;}#text13 span.p:nth-child(n + 2) {margin-top: 1rem;}#text16 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;font-size: 1.25em;line-height: 1.25;font-weight: 400;}#text16 a {text-decoration: underline;}#text16 a:hover {text-decoration: none;}#text16 span.p:nth-child(n + 2) {margin-top: 1rem;}#text17 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;font-size: 1.25em;line-height: 1.25;font-weight: 400;}#text17 a {text-decoration: underline;}#text17 a:hover {text-decoration: none;}#text17 span.p:nth-child(n + 2) {margin-top: 1rem;}#text18:not(:first-child) {margin-top: 0rem !important;}#text18:not(:last-child) {margin-bottom: 0rem !important;}#text18 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;padding-left: calc(1.5rem * var(--indent-left));padding-right: calc(1.5rem * var(--indent-right));font-size: 1em;line-height: 1.875;font-weight: 300;}#text18 a:hover {color: #FFABB5;}#text18 a {text-decoration: underline;}#text18 span.p:nth-child(n + 2) {margin-top: 1rem;}#text06 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;font-size: 1.25em;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;}#text20:not(:first-child) {margin-top: 0rem !important;}#text20:not(:last-child) {margin-bottom: 0rem !important;}#text20 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;padding-left: calc(1.5rem * var(--indent-left));padding-right: calc(1.5rem * var(--indent-right));font-size: 1em;line-height: 1.875;font-weight: 300;}#text20 a:hover {color: #FFABB5;}#text20 a {text-decoration: underline;}#text20 span.p:nth-child(n + 2) {margin-top: 1rem;}#text21 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;padding-left: calc(1.5rem * var(--indent-left));padding-right: calc(1.5rem * var(--indent-right));font-size: 1em;line-height: 1.875;font-weight: 300;}#text21 a:hover {color: #FFABB5;}#text21 a {text-decoration: underline;}#text21 span.p:nth-child(n + 2) {margin-top: 1rem;}#text10 {color: #FFFFFF;font-family: 'Oxygen', sans-serif;padding-left: calc(1.5rem * var(--indent-left));padding-right: calc(1.5rem * var(--indent-right));font-size: 1em;line-height: 1.875;font-weight: 300;}#text10 a:hover {color: #FFABB5;}#text10 a {text-decoration: underline;}#text10 span.p:nth-child(n + 2) {margin-top: 1rem;}#text14:not(:first-child) {margin-top: 0.625rem !important;}#text14:not(:last-child) {margin-bottom: 0.625rem !important;}#text14 {color: #999999;font-family: 'Oxygen', sans-serif;font-size: 0.75em;line-height: 1.875;font-weight: 400;}#text14 a:hover {color: #FFABB5;}#text14 a {text-decoration: underline;}#text14 span.p:nth-child(n + 2) {margin-top: 1rem;}#text09:not(:first-child) {margin-top: 0rem !important;}#text09:not(:last-child) {margin-bottom: 0rem !important;}#text09 {color: #666666;font-family: 'Oxygen', sans-serif;font-size: 0.75em;line-height: 1.875;font-weight: 300;}#text09 a:hover {color: #FFABB5;}#text09 a {text-decoration: underline;}#text09 span.p:nth-child(n + 2) {margin-top: 1rem;}hr {align-items: center;border: 0;display: flex;justify-content: var(--flex-alignment);min-height: 1rem;padding: 0;position: relative;width: 100%;}hr:before {content: '';}#divider02:before {width: 100%;background-color: #FFFFFF;height: 1px;border-radius: 0px;}#divider03:before {width: 100%;background-color: #FFFFFF;height: 1px;border-radius: 0px;}#divider04:before {width: 100%;background-color: #FFFFFF;height: 1px;border-radius: 0px;}#divider01:before {width: 100%;background-color: #FFFFFF;height: 1px;border-radius: 0px;}form {display: flex;justify-content: var(--flex-alignment);}form .inner {display: flex;flex-direction: column;flex-wrap: wrap;max-width: 100%;}form label {direction: var(--site-language-direction);display: block;}form .field[data-type="label"] + div {margin-top: 0 !important;}form .field button {align-items: center;background-color: transparent;border: 0;cursor: pointer;display: flex;justify-content: center;position: absolute;}form .field button > svg {height: 50%;min-width: 100%;}form input[type="text"], form input[type="email"], form input[type="tel"], form input[type="number"], form textarea, form select, form .file, form .date {background-color: transparent;border: 0;direction: var(--site-language-direction);display: block;outline: 0;text-align: var(--site-language-alignment);width: 100%;}form input[type="tel"] {-webkit-appearance: none;}form textarea {height: 10rem;line-height: normal;}form select {background-repeat: no-repeat;background-size: 1rem;text-overflow: ellipsis;-webkit-appearance: none;}form select option {background-color: white;color: black;}form select::-ms-expand {display: none;}form p {display: block;}form input[type="checkbox"] {-webkit-appearance: none;display: block;float: left;margin-right: -2rem;opacity: 0;width: 1rem;z-index: -1;}form input[type="checkbox"] + label {align-items: center;display: inline-flex;line-height: 1.6;text-align: var(--site-language-alignment);}form input[type="checkbox"] + label:before {background-position: center;background-repeat: no-repeat;content: '';cursor: pointer;display: inline-block;flex-grow: 0;flex-shrink: 0;vertical-align: middle;}form input[type="number"] {-webkit-appearance: none;-moz-appearance: textfield;}form input[type="number"]::-webkit-inner-spin-button, form input[type="number"]::-webkit-outer-spin-button {-webkit-appearance: none;}form .number {position: relative;}form .number > input[type="number"] {text-align: center;}form .field .number > button > svg {height: 40%;}form .file {position: relative;}form .file > input[type="file"] {cursor: pointer;height: 100%;left: 0;opacity: 0;position: absolute;top: 0;width: 100%;}form .file[data-filename]:before {background-repeat: no-repeat;content: attr(data-filename);display: block;height: 100%;overflow: hidden;position: absolute;text-overflow: ellipsis;top: 0;white-space: nowrap;}form .file[data-filename=""]:before {background-image: none !important;content: attr(data-placeholder);padding-left: 0 !important;}form .field .file > button > svg {height: 53%;}form .date {overflow: hidden;position: relative;}form .date input[type="date"] {cursor: pointer;display: block;height: 100%;left: 0;opacity: 0;position: absolute;top: 0;width: 100vw;}form .date[data-value]:before {background-repeat: no-repeat;display: block;height: 100%;overflow: hidden;position: absolute;text-overflow: ellipsis;top: 0;white-space: nowrap;}form .date:not([data-value=""]):before {content: attr(data-value);}form .date[data-value=""]:before {content: attr(data-placeholder);}form .field .date > button > svg {height: 60%;}form .actions {max-width: 100%;}form .actions button {align-items: center;background-color: transparent;border: 0;cursor: pointer;display: inline-flex;justify-content: center;max-width: 100%;text-align: center;vertical-align: middle;white-space: nowrap;}form .actions button:disabled {cursor: default;opacity: 0.35;pointer-events: none;}@keyframes button-spinner {0% {transform: rotate(0deg);}100% {transform: rotate(360deg);}}#form01 .inner > * {margin: 1.25rem 0 0 0;max-width: 100%;}#form01 .inner > :first-child {margin: 0;}#form01 .inner {width: 25rem;}#form01 label:first-child {margin: 0.25rem 0 0.9375rem 0;font-size: 1em;line-height: 1.5;font-family: 'Inter', sans-serif;font-weight: 700;color: #FFFFFF;}#form01 .field button {background-size: 0.85rem;height: calc(1.7rem - 2px);width: calc(1.7rem - 2px);border-radius: 1.28rem;border: solid 1px #FFFFFF;transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;}#form01 .field button:hover {border-color: #FFFFFF;}#form01 .field button svg {fill: #FFFFFF;transition: fill 0.25s ease;}#form01 .field button:hover svg {fill: #FFFFFF;}#form01 input[type="text"], #form01 input[type="email"], #form01 input[type="tel"], #form01 input[type="number"], #form01 textarea, #form01 select, #form01 .file, #form01 .date {font-size: 1em;font-family: 'Oxygen', sans-serif;font-weight: 300;border-radius: 2rem;color: #FFFFFF;border: solid 1px #FFFFFF;}#form01 input[type="text"], #form01 input[type="email"], #form01 input[type="tel"], #form01 input[type="number"], #form01 select, #form01 .file, #form01 .date {height: 2.125rem;padding: 0 0.74375rem;line-height: calc(2.125rem - 2px);}#form01 textarea {padding: 0.74375rem;height: 10rem;line-height: 1.875;padding-top: 0.415625rem;}#form01 select {background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='504' height='552' preserveAspectRatio='none' viewBox='0 0 504 552'%3E%3Cpath d='M483.9,210.9L252,442.9L20.1,210.9l67.9-67.9L252,307.1l164.1-164.1L483.9,210.9z' fill='%23FFFFFF' /%3E%3C/svg%3E");background-position: calc(100% - 0.74375rem) center;padding-right: 2.34375rem;}#form01 input[type="checkbox"] + label:before {border-radius: 2rem;color: #FFFFFF;border: solid 1px #FFFFFF;background-size: 0.903125rem;height: 1.59375rem;width: 1.59375rem;margin-right: 0.875rem;}#form01 input[type="checkbox"]:checked + label:before {background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='648' height='552' preserveAspectRatio='none' viewBox='0 0 648 552'%3E%3Cpath d='M225.3,517.7L2.1,293.1l68.1-67.7L226,382.3L578.1,35.6l67.4,68.4L225.3,517.7z' fill='%23FFFFFF' /%3E%3C/svg%3E");}#form01 .number > input[type="number"] {padding-left: 2.2rem;padding-right: 2.2rem;}#form01 .number > button.decrement {bottom: calc(0.2125rem + 1px);left: calc(0.2125rem + 1px);}#form01 .number > button.increment {bottom: calc(0.2125rem + 1px);right: calc(0.2125rem + 1px);}#form01 .file:before {width: calc(100% - 2.86875rem);background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M27.4,4.5c-0.4-0.4-0.8-0.7-1.5-0.9c-0.6-0.3-1.2-0.4-1.7-0.4H7.1c-0.5,0-0.9,0.2-1.3,0.5S5.3,4.5,5.3,5.1v30.7 c0,0.5,0.2,0.9,0.5,1.3c0.4,0.4,0.8,0.5,1.3,0.5h25.8c0.5,0,0.9-0.2,1.3-0.5c0.4-0.4,0.5-0.8,0.5-1.3V13.7c0-0.5-0.1-1.1-0.4-1.7 c-0.3-0.6-0.6-1.1-0.9-1.5L27.4,4.5z M25.7,6.2l6,6c0.2,0.2,0.3,0.4,0.4,0.8h-7.2V5.8C25.3,5.9,25.5,6.1,25.7,6.2z M7.7,35.2V5.7 h14.7v8c0,0.5,0.2,0.9,0.5,1.3c0.4,0.4,0.8,0.5,1.3,0.5h8v19.7H7.7z' style='opacity: 0.375' fill='%23FFFFFF' /%3E%3C/svg%3E");background-size: 1rem;background-position: left;padding-left: 1.4rem;}#form01 .file > button {bottom: 0.2125rem;right: 0.2125rem;}#form01 .date:before {width: calc(100% - 2.86875rem);}#form01 .date > button {bottom: 0.2125rem;right: 0.2125rem;}#form01 input[type="checkbox"] + label, #form01 p {font-size: 1em;line-height: 1.875;font-family: 'Oxygen', sans-serif;font-weight: 100;color: #FFFFFF;}#form01 .actions button {display: inline-flex;width: auto;height: 2.125rem;line-height: 2.125rem;padding: 0 1.0625rem;vertical-align: middle;font-family: 'Oxygen', sans-serif;font-size: 0.875em;font-weight: 300;border-radius: 2rem;color: #FFFFFF;border: solid 1px #FFFFFF;transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;position: relative;}#form01 .actions button svg {display: block;fill: #FFFFFF;flex-grow: 0;flex-shrink: 0;height: 100%;min-width: 16px;pointer-events: none;width: 1em;margin-left: -0.125em;margin-right: calc(0.5em + 0rem);transition: fill 0.25s ease;}#form01 .actions button:hover {border-color: #FFFFFF;color: #FFFFFF;}#form01 .actions button:hover svg {fill: #FFFFFF;}#form01 .actions button .label {direction: var(--site-language-direction);overflow: hidden;}#form01 .inner > :first-child > label:first-child {margin-top: 0;}#form01 .actions button:before {animation: button-spinner 1s infinite linear;background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iOTZweCIgaGVpZ2h0PSI5NnB4IiB2aWV3Qm94PSIwIDAgOTYgOTYiIHpvb21BbmRQYW49ImRpc2FibGUiPjxzdHlsZT5jaXJjbGUge2ZpbGw6IHRyYW5zcGFyZW50OyBzdHJva2U6ICNGRkZGRkY7IHN0cm9rZS13aWR0aDogMnB4OyB9PC9zdHlsZT48ZGVmcz48Y2xpcFBhdGggaWQ9ImNvcm5lciI+PHBvbHlnb24gcG9pbnRzPSIwLDAgNDgsMCA0OCw0OCA5Niw0OCA5Niw5NiAwLDk2IiAvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjb3JuZXIpIj48Y2lyY2xlIGN4PSI0OCIgY3k9IjQ4IiByPSIzMiIvPjwvZz48L3N2Zz4=');background-position: center;background-repeat: no-repeat;background-size: 1.59375rem;content: '';display: block;height: 1.59375rem;left: 50%;margin: -0.796875rem 0 0 -0.796875rem;opacity: 0;pointer-events: none;position: absolute;top: 50%;transition: opacity 0.25s ease;transition-delay: 0s;width: 1.59375rem;}#form01 .actions button.waiting {color: transparent;}#form01 .actions button.waiting svg {fill: transparent;}#form01 .actions button.waiting:before {opacity: 1.0;transition-delay: 0.125s;}#form01 ::-webkit-input-placeholder {color: #FFFFFF;opacity: 0.55;}#form01 :-moz-placeholder {color: #FFFFFF;opacity: 0.55;}#form01 ::-moz-placeholder {color: #FFFFFF;opacity: 0.55;}#form01 :-ms-input-placeholder {color: #FFFFFF;opacity: 0.55;}#form01 .file[data-filename=""]:before {color: #FFFFFF;opacity: 0.55;}#form01 .date[data-value=""]:before {color: #FFFFFF;opacity: 0.55;}#form01 input[name="fax"] {display: none;}.icons {display: flex;flex-wrap: wrap;justify-content: var(--flex-alignment);letter-spacing: 0;padding: 0;}.icons li {position: relative;z-index: 1;}.icons li a {align-items: center;display: flex;justify-content: center;}.icons li a svg {display: block;pointer-events: none;position: relative;}.icons li a + svg {display: block;height: 100%;left: 0;pointer-events: none;position: absolute;top: 0;width: 100%;z-index: -1;}.icons li a .label {display: none;}.icons.style1 {font-size: 1.25em;gap: 0.875rem;}.icons.style1:not(:first-child) {margin-top: 1.938rem !important;}.icons.style1:not(:last-child) {margin-bottom: 1.938rem !important;}.icons.style1 li a {border-radius: 100%;height: 2em;width: 2em;transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;}.icons.style1 li a svg {height: 60%;width: 60%;transition: fill 0.25s ease;}.icons.style1 a svg {fill: #666666;}.icons.style1 a {border: solid 1px #666666;}.icons.style1 a:hover {border-color: #FFFFFF !important;}.icons.style1 a:hover svg {fill: #FFFFFF !important;}.icons.style1 li a + svg {transition: fill 0.25s ease, stroke 0.25s ease;}#icons01 .n01 svg {fill: #666666;}#icons01 .n01:hover {border-color: #FFFFFF !important;}#icons01 .n01:hover svg {fill: #FFFFFF !important;}#icons01 .n02 svg {fill: #666666;}#icons01 .n02:hover {border-color: #FFFFFF !important;}#icons01 .n02:hover svg {fill: #FFFFFF !important;}#icons01 .n03 svg {fill: #666666;}#icons01 .n03:hover {border-color: #FFFFFF !important;}#icons01 .n03:hover svg {fill: #FFFFFF !important;}#icons01 .n05 svg {fill: #666666;}#icons01 .n05:hover {border-color: #FFFFFF !important;}#icons01 .n05:hover svg {fill: #FFFFFF !important;}#icons01 .n06 svg {fill: #666666;}#icons01 .n06:hover {border-color: #FFFFFF !important;}#icons01 .n06:hover svg {fill: #FFFFFF !important;}#icons01 .n07 svg {fill: #666666;}#icons01 .n07:hover {border-color: #FFFFFF !important;}#icons01 .n07:hover svg {fill: #FFFFFF !important;}#icons01 .n08 svg {fill: #666666;}#icons01 .n08:hover {border-color: #FFFFFF !important;}#icons01 .n08:hover svg {fill: #FFFFFF !important;}@media (max-width: 1920px) {body:before {width: calc(100vw - 40rem);}#main > .inner {--width: 40rem;}}@media (max-width: 1680px) {html {font-size: 13pt;}}@media (max-width: 1280px) {body:before {width: calc(100vw - 30rem);}html {font-size: 13pt;}#main > .inner {--width: 30rem;}}@media (max-width: 1024px) {body:before {width: calc(100vw - 25rem);}#main > .inner {--width: 25rem;}}@media (max-width: 980px) {html {font-size: 11pt;}body {display: flex;flex-direction: column;background-color: #000000;}body:before {flex-grow: 1;flex-shrink: 0;max-height: 45vh;overflow: hidden;position: relative;width: 100%;}#main {border-bottom: none;border-left: none;border-radius: 0;border-right: none;box-shadow: none;width: 100%;--alignment: left;--flex-alignment: flex-start;--indent-left: 1;--indent-right: 0;--margin-left: 0;--margin-right: auto;background-color: #000000;}#main > .inner {background: none;max-width: 75%;width: auto;}#wrapper {height: auto !important;min-height: 0;padding: 0;}}@media (max-width: 736px) {html {font-size: 11pt;}#main {--alignment: left;--flex-alignment: flex-start;--indent-left: 1;--indent-right: 0;--margin-left: 0;--margin-right: auto;}#main > .inner {--padding-horizontal: 2rem;--padding-vertical: 3.5rem;--spacing: 1.5rem;max-width: 100%;}#wrapper {padding: 0;}#main > .inner > * > .full {margin-left: calc(-2rem);max-width: calc(100% + 4rem + 0.4725px);width: calc(100% + 4rem + 0.4725px);}#main > .inner > * > .full.screen {margin-left: calc(-2rem);}#main > .inner > header > .full:first-child {margin-top: -3.5rem !important;}#main > .inner > footer > .full:last-child {margin-bottom: -3.5rem !important;}#buttons01 {gap: 0.875rem;}#buttons01 li a {letter-spacing: 0rem;font-size: 0.875em;}#buttons01 li a svg {width: 1em;}#footer {margin-top: 0rem !important;}h1.style1:not(:first-child), h2.style1:not(:first-child), h3.style1:not(:first-child), p.style1:not(:first-child) {margin-top: 0rem !important;}h1.style1:not(:last-child), h2.style1:not(:last-child), h3.style1:not(:last-child), p.style1:not(:last-child) {margin-bottom: 0rem !important;}h1.style1, h2.style1, h3.style1, p.style1 {letter-spacing: 0rem;width: 100%;font-size: 3em;line-height: 1.125;}#text12:not(:first-child) {margin-top: 0rem !important;}#text12:not(:last-child) {margin-bottom: 0rem !important;}#text12 {letter-spacing: -0.109375rem;width: 100%;font-size: 1.75em;line-height: 1.25;}#text04:not(:first-child) {margin-top: 0rem !important;}#text04:not(:last-child) {margin-bottom: 0rem !important;}#text04 {letter-spacing: 0rem;width: 100%;font-size: 1.25em;line-height: 1.25;}#text07:not(:first-child) {margin-top: 0rem !important;}#text07:not(:last-child) {margin-bottom: 0rem !important;}#text07 {padding-left: calc(1.125rem * var(--indent-left));padding-right: calc(1.125rem * var(--indent-right));letter-spacing: 0rem;width: 100%;font-size: 1em;line-height: 1.875;}#text05:not(:first-child) {margin-top: 0rem !important;}#text05:not(:last-child) {margin-bottom: 0rem !important;}#text05 {letter-spacing: 0rem;width: 100%;font-size: 1.25em;line-height: 1.25;}#text08:not(:first-child) {margin-top: 0rem !important;}#text08:not(:last-child) {margin-bottom: 0rem !important;}#text08 {padding-left: calc(1.125rem * var(--indent-left));padding-right: calc(1.125rem * var(--indent-right));letter-spacing: 0rem;width: 100%;font-size: 1em;line-height: 1.875;}#text15:not(:first-child) {margin-top: 0rem !important;}#text15:not(:last-child) {margin-bottom: 0rem !important;}#text15 {letter-spacing: 0rem;width: 100%;font-size: 1.25em;line-height: 1.25;}#text02:not(:first-child) {margin-top: 0rem !important;}#text02:not(:last-child) {margin-bottom: 0rem !important;}#text02 {padding-left: calc(1.125rem * var(--indent-left));padding-right: calc(1.125rem * var(--indent-right));letter-spacing: 0rem;width: 100%;font-size: 1em;line-height: 1.875;}#text03:not(:first-child) {margin-top: 0.75rem !important;}#text03:not(:last-child) {margin-bottom: 0.75rem !important;}#text03 {letter-spacing: -0.109375rem;width: 100%;font-size: 1.75em;line-height: 1.25;}#text13 {letter-spacing: 0rem;width: 100%;font-size: 0.875em;line-height: 1.875;}#text16 {letter-spacing: 0rem;width: 100%;font-size: 1.25em;line-height: 1.25;}#text17 {letter-spacing: 0rem;width: 100%;font-size: 1.25em;line-height: 1.25;}#text18:not(:first-child) {margin-top: 0rem !important;}#text18:not(:last-child) {margin-bottom: 0rem !important;}#text18 {padding-left: calc(1.125rem * var(--indent-left));padding-right: calc(1.125rem * var(--indent-right));letter-spacing: 0rem;width: 100%;font-size: 1em;line-height: 1.875;}#text06 {letter-spacing: 0rem;width: 100%;font-size: 1.25em;line-height: 1.25;}#text20:not(:first-child) {margin-top: 0rem !important;}#text20:not(:last-child) {margin-bottom: 0rem !important;}#text20 {padding-left: calc(1.125rem * var(--indent-left));padding-right: calc(1.125rem * var(--indent-right));letter-spacing: 0rem;width: 100%;font-size: 1em;line-height: 1.875;}#text21 {padding-left: calc(1.125rem * var(--indent-left));padding-right: calc(1.125rem * var(--indent-right));letter-spacing: 0rem;width: 100%;font-size: 1em;line-height: 1.875;}#text10 {padding-left: calc(1.125rem * var(--indent-left));padding-right: calc(1.125rem * var(--indent-right));letter-spacing: 0rem;width: 100%;font-size: 1em;line-height: 1.875;}#text14:not(:first-child) {margin-top: 0.46875rem !important;}#text14:not(:last-child) {margin-bottom: 0.46875rem !important;}#text14 {letter-spacing: 0rem;width: 100%;font-size: 0.75em;line-height: 1.875;}#text09:not(:first-child) {margin-top: 0rem !important;}#text09:not(:last-child) {margin-bottom: 0rem !important;}#text09 {letter-spacing: 0rem;width: 100%;font-size: 0.75em;line-height: 1.875;}#divider02:before {width: 100rem;}#divider03:before {width: 100rem;}#divider04:before {width: 100rem;}#divider01:before {width: 100rem;}#form01 label:first-child {font-size: 1em;line-height: 1.5;letter-spacing: 0rem;}#form01 input[type="text"], #form01 input[type="email"], #form01 input[type="tel"], #form01 input[type="number"], #form01 textarea, #form01 select, #form01 .file, #form01 .date {font-size: 1em;letter-spacing: 0rem;}#form01 textarea {line-height: 1.875;padding-top: 0.415625rem;}#form01 input[type="checkbox"] + label, #form01 p {font-size: 1em;line-height: 1.875;letter-spacing: 0rem;}#form01 .actions button {letter-spacing: 0rem;font-size: 0.875em;}#form01 .actions button svg {width: 1em;}.icons.style1 {font-size: 1.25em;gap: 0.875rem;}.icons.style1:not(:first-child) {margin-top: 1.4535rem !important;}.icons.style1:not(:last-child) {margin-bottom: 1.4535rem !important;}}@media (max-width: 480px) {#main > .inner {--spacing: 1.3125rem;}#wrapper {padding: 0;}#buttons01 {flex-direction: column;flex-wrap: nowrap;}#buttons01 li a {max-width: 32rem;width: 100%;}#form01 .actions button {max-width: 32rem;width: 100%;}}@media (max-width: 360px) {#main > .inner {--padding-horizontal: 1.5rem;--padding-vertical: 2.625rem;--spacing: 1.125rem;}#wrapper {padding: 0;}#main > .inner > * > .full {margin-left: calc(-1.5rem);max-width: calc(100% + 3rem + 0.4725px);width: calc(100% + 3rem + 0.4725px);}#main > .inner > * > .full.screen {margin-left: calc(-1.5rem);}#main > .inner > header > .full:first-child {margin-top: -2.625rem !important;}#main > .inner > footer > .full:last-child {margin-bottom: -2.625rem !important;}#buttons01 {gap: 0.65625rem;}h1.style1, h2.style1, h3.style1, p.style1 {font-size: 2em;}#text12 {font-size: 1.5em;}#text04 {font-size: 1.25em;}#text07 {font-size: 1em;}#text05 {font-size: 1.25em;}#text08 {font-size: 1em;}#text15 {font-size: 1.25em;}#text02 {font-size: 1em;}#text03 {font-size: 1.5em;}#text13 {font-size: 0.875em;}#text16 {font-size: 1.25em;}#text17 {font-size: 1.25em;}#text18 {font-size: 1em;}#text06 {font-size: 1.25em;}#text20 {font-size: 1em;}#text21 {font-size: 1em;}#text10 {font-size: 1em;}#text14 {font-size: 0.75em;}#text09 {font-size: 0.75em;}.icons.style1 {gap: 0.65625rem;}}</style><noscript><style>body {overflow: auto !important;}body:after {display: none !important;}#main > .inner {opacity: 1.0 !important;}#main {opacity: 1.0 !important;transform: none !important;transition: none !important;filter: none !important;}#main > .inner > section > * {opacity: 1.0 !important;transform: none !important;transition: none !important;filter: none !important;}@media (max-width: 980px) {body:before {flex-grow: 1;flex-shrink: 0;max-height: 45vh;overflow: hidden;position: relative;width: 100%;}}</style></noscript></head><body class="is-loading"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 40 40" display="none" width="0" height="0"><symbol id="icon-2a747dd19e728944f8c54ef1b55a59c6" viewBox="0 0 40 40"><path d="M33.3,22.3v11.2c0,0.4-0.1,0.8-0.4,1.1c-0.3,0.3-0.6,0.4-1.1,0.4h-9v-9h-6v9h-9c-0.4,0-0.8-0.1-1.1-0.4 c-0.3-0.3-0.4-0.6-0.4-1.1V22.3c0,0,0,0,0-0.1s0-0.1,0-0.1L19.9,11l13.5,11.1C33.3,22.1,33.3,22.2,33.3,22.3L33.3,22.3z M38.5,20.6 l-1.5,1.7c-0.1,0.1-0.3,0.2-0.5,0.3h-0.1c-0.2,0-0.4-0.1-0.5-0.2L19.9,9L3.7,22.5c-0.2,0.1-0.4,0.2-0.6,0.2c-0.2,0-0.4-0.1-0.5-0.3 l-1.5-1.7C1,20.5,1,20.3,1,20.1s0.1-0.4,0.3-0.5l16.8-14C18.6,5.2,19.2,5,19.9,5s1.3,0.2,1.8,0.6l5.7,4.8V5.8c0-0.2,0.1-0.4,0.2-0.5 S27.9,5,28.1,5h4.5c0.2,0,0.4,0.1,0.5,0.2c0.1,0.1,0.2,0.3,0.2,0.5v9.5l5.1,4.3c0.2,0.1,0.2,0.3,0.3,0.5 C38.7,20.3,38.7,20.5,38.5,20.6L38.5,20.6z"/></symbol><symbol id="icon-7a66fac84dc5d9fb5fafce395a384d40" viewBox="0 0 40 40"><path d="M20,3C10.6,3,3,10.6,3,20s7.6,17,17,17s17-7.6,17-17S29.4,3,20,3z M34.8,18.9h-6.2c-0.1-2.2-0.3-4.2-0.8-6.1 c1.5-0.4,3-0.9,4.2-1.5c0.6,0.9,1.2,1.8,1.6,2.9C34.3,15.7,34.7,17.3,34.8,18.9z M25.7,26.7c-1.5-0.3-3.1-0.4-4.6-0.5v-5.1h5.4 c-0.1,1.8-0.3,3.5-0.6,5.1C25.8,26.3,25.8,26.5,25.7,26.7z M14.2,26.2c-0.3-1.6-0.6-3.3-0.6-5.1h5.4v5.1c-1.6,0-3.2,0.2-4.6,0.5 C14.2,26.5,14.2,26.3,14.2,26.2z M14.3,13.3c1.5,0.3,3.1,0.4,4.6,0.5v5.1h-5.4c0.1-1.8,0.3-3.5,0.6-5.1 C14.2,13.7,14.2,13.5,14.3,13.3z M21.1,5.4C21.4,5.6,21.7,5.7,22,6c0.8,0.7,1.6,1.7,2.2,3c0.4,0.7,0.7,1.5,0.9,2.3 c-1.3,0.2-2.7,0.4-4,0.4V5.4z M18,6c0.3-0.3,0.6-0.4,0.9-0.6v6.2c-1.4,0-2.8-0.2-4-0.4c0.3-0.8,0.6-1.6,0.9-2.3 C16.5,7.7,17.2,6.7,18,6z M18.9,28.4v6.2c-0.3-0.1-0.6-0.3-0.9-0.6c-0.8-0.7-1.6-1.7-2.2-3c-0.4-0.7-0.7-1.5-0.9-2.3 C16.2,28.6,17.5,28.4,18.9,28.4z M22,34c-0.3,0.3-0.6,0.4-0.9,0.6v-6.2c1.4,0,2.8,0.2,4,0.4c-0.3,0.8-0.6,1.6-0.9,2.3 C23.5,32.3,22.8,33.3,22,34z M21.1,18.9v-5.1c1.6,0,3.2-0.2,4.6-0.5c0,0.2,0.1,0.4,0.1,0.5c0.3,1.6,0.6,3.3,0.6,5.1H21.1z M30.5,9.5 c0,0,0.1,0.1,0.1,0.1c-1,0.4-2.2,0.8-3.4,1.1c-0.6-1.9-1.4-3.5-2.4-4.8c0.3,0.1,0.6,0.2,0.9,0.3C27.5,7.1,29.1,8.1,30.5,9.5z M14.2,6.3c0.3-0.1,0.6-0.2,0.9-0.3c-0.9,1.3-1.7,2.9-2.4,4.8c-1.2-0.3-2.3-0.7-3.4-1.1c0,0,0.1-0.1,0.1-0.1 C10.9,8.1,12.5,7.1,14.2,6.3z M7.9,11.4c1.3,0.6,2.7,1.1,4.2,1.5c-0.4,1.9-0.7,3.9-0.8,6.1H5.2c0.1-1.6,0.5-3.2,1.1-4.7 C6.8,13.2,7.3,12.3,7.9,11.4z M5.2,21.1h6.2c0.1,2.2,0.3,4.2,0.8,6.1c-1.5,0.4-3,0.9-4.2,1.5c-0.6-0.9-1.2-1.8-1.6-2.9 C5.7,24.3,5.3,22.7,5.2,21.1z M9.5,30.5c0,0-0.1-0.1-0.1-0.1c1-0.4,2.2-0.8,3.4-1.1c0.6,1.9,1.4,3.5,2.4,4.8 c-0.3-0.1-0.6-0.2-0.9-0.3C12.5,32.9,10.9,31.9,9.5,30.5z M25.8,33.7c-0.3,0.1-0.6,0.2-0.9,0.3c0.9-1.3,1.7-2.9,2.4-4.8 c1.2,0.3,2.3,0.7,3.4,1.1c0,0-0.1,0.1-0.1,0.1C29.1,31.9,27.5,32.9,25.8,33.7z M32.1,28.6c-1.3-0.6-2.7-1.1-4.2-1.5 c0.4-1.9,0.7-3.9,0.8-6.1h6.2c-0.1,1.6-0.5,3.2-1.1,4.7C33.2,26.8,32.7,27.7,32.1,28.6z"/></symbol><symbol id="icon-c3c8e1063e3b7f84f6b54712741de139" viewBox="0 0 40 40"><path d="M37.3,15.3v15.3c0,0.8-0.3,1.6-0.9,2.2c-0.6,0.6-1.4,0.9-2.2,0.9H5.8c-0.8,0-1.6-0.3-2.2-0.9s-0.9-1.4-0.9-2.2V15.3 c0.5,0.6,1.2,1.1,2,1.7c4.7,3.1,7.9,5.4,9.6,6.7c0.7,0.5,1.4,0.9,1.8,1.2c0.4,0.3,1,0.6,1.9,0.9c0.7,0.3,1.5,0.5,2.1,0.5l0,0 c0.6,0,1.4-0.2,2.1-0.5c0.7-0.3,1.4-0.6,1.9-0.9c0.4-0.3,1-0.7,1.8-1.2c2.2-1.6,5.4-3.8,9.6-6.7C36.1,16.5,36.7,15.9,37.3,15.3 L37.3,15.3z M37.3,9.6c0,1-0.3,2-0.9,2.9c-0.6,0.9-1.5,1.8-2.4,2.4c-4.9,3.3-7.9,5.4-9,6.2c-0.1,0.1-0.4,0.3-0.8,0.6 c-0.4,0.3-0.7,0.5-1,0.7c-0.3,0.2-0.6,0.4-1,0.6c-0.4,0.2-0.7,0.4-1.1,0.5c-0.4,0.1-0.6,0.2-0.9,0.2l0,0c-0.3,0-0.6-0.1-0.9-0.2 c-0.3-0.1-0.7-0.3-1.1-0.5c-0.4-0.2-0.7-0.4-1-0.6c-0.3-0.2-0.6-0.4-1-0.7c-0.4-0.3-0.7-0.5-0.8-0.6c-1.1-0.8-2.8-2-5.1-3.5 c-2.3-1.6-3.3-2.4-3.7-2.7c-0.8-0.5-1.6-1.2-2.3-2.2s-1-1.9-1-2.6c0-1,0.3-1.9,0.8-2.5c0.5-0.6,1.2-1,2.3-1h28.4 c0.8,0,1.6,0.3,2.2,0.9C37.1,8.1,37.3,8.8,37.3,9.6L37.3,9.6z"/></symbol><symbol id="icon-be848c9691a8e3f7630e3908e426bf9f" viewBox="0 0 40 40"><path d="M37.9,10.6l-3.2-3.2c-0.4-0.4-1-0.7-1.6-0.7c-0.6,0-1.2,0.2-1.6,0.7L15.9,23l-7-7c-0.4-0.4-1-0.7-1.6-0.7S6.1,15.6,5.6,16 l-3.2,3.2c-0.4,0.4-0.7,1-0.7,1.6S2,22,2.4,22.5l8.6,8.6l3.2,3.2c0.4,0.4,1,0.7,1.6,0.7c0.6,0,1.2-0.2,1.6-0.7l3.2-3.2l17.2-17.2 c0.4-0.4,0.7-1,0.7-1.6C38.6,11.6,38.4,11.1,37.9,10.6z"/></symbol><symbol id="icon-31b8880d36499db40d4e47546c4763f3" viewBox="0 0 40 40"><path d="M30.1,4h5.4L23.7,17.6L37.6,36H26.7l-8.5-11.2L8.5,36H3.1l12.6-14.5L2.4,4h11.1l7.7,10.2L30.1,4z M28.2,32.8h3L11.9,7.1H8.7 L28.2,32.8z"/></symbol><symbol id="icon-bf393d6ea48a4e69e1ed58a3563b94a5" viewBox="0 0 40 40"><path d="M12.1,13.8v19.1H5.7V13.8C5.7,13.8,12.1,13.8,12.1,13.8z M12.5,7.9c0,0.9-0.3,1.7-1,2.4c-0.7,0.6-1.5,0.9-2.6,0.9h0 c-1.1,0-1.9-0.3-2.5-0.9c-0.6-0.6-1-1.4-1-2.4c0-1,0.3-1.7,1-2.4S7.9,4.6,9,4.6s1.9,0.3,2.6,0.9S12.5,6.9,12.5,7.9z M35,22v11h-6.4 V22.7c0-1.4-0.3-2.4-0.8-3.2c-0.5-0.8-1.3-1.1-2.4-1.1c-0.8,0-1.5,0.2-2,0.7c-0.5,0.4-1,1-1.2,1.7c-0.1,0.4-0.2,0.9-0.2,1.6v10.7 h-6.4c0-5.1,0-9.3,0-12.5s0-5.1,0-5.7l0-0.9H22v2.8h0c0.3-0.4,0.5-0.8,0.8-1.1c0.3-0.3,0.6-0.6,1.1-1c0.5-0.4,1-0.6,1.7-0.8 c0.7-0.2,1.4-0.3,2.2-0.3c2.2,0,4,0.7,5.3,2.2C34.4,17,35,19.1,35,22L35,22z"/></symbol><symbol id="icon-422e9320a86e6b1908f65c1f963b6249" viewBox="0 0 40 40"><path d="M36.3,12.5c-0.4-1.3-0.9-2.6-1.6-3.9c-1.4-2.6-3.4-4.7-6.1-6.1c-1.8-1-3.8-1.6-5.9-1.8 c-3.3-0.4-6.5-0.2-9.6,0.9c-2.7,1-4.9,2.6-6.7,4.9c-1.4,1.9-2.3,3.9-2.9,6.2c-0.7,2.4-0.9,4.9-0.9,7.5c0,0.8,0,1.6,0.1,2.5 c0.1,1.7,0.4,3.4,0.9,5c0.3,1,0.6,1.9,1,2.8c1,2.1,2.3,3.9,4,5.4c2.2,1.9,4.8,2.9,7.7,3.4c1.7,0.3,3.3,0.3,5,0.2 c2.1-0.1,4.1-0.5,5.9-1.4c1.6-0.7,3-1.7,4.2-3c1.4-1.4,2.4-3,2.9-4.9c0.5-1.8,0.5-3.6,0-5.4c-0.4-1.6-1.3-3-2.4-4.1 c-1-0.9-2.1-1.7-3.3-2.2c-0.2-0.1-0.3-0.1-0.3-0.4c0-0.7-0.1-1.4-0.3-2.1c-0.3-1.5-1-2.9-2-4c-1.1-1.1-2.4-1.8-3.9-2.2 c-1.6-0.3-3.1-0.3-4.7,0.1c-1.9,0.5-3.5,1.5-4.6,3.2c-0.1,0.2-0.1,0.2,0.1,0.4c0.8,0.5,1.6,1.1,2.4,1.6c0.2,0.1,0.3,0.1,0.4-0.1 c0.4-0.5,0.9-0.9,1.4-1.3c1.1-0.6,2.2-0.7,3.4-0.6c0.9,0.1,1.8,0.3,2.6,0.9c1.1,0.8,1.5,1.9,1.8,3.2c0,0.2-0.1,0.2-0.2,0.2 c-1.7-0.2-3.4-0.3-5-0.1c-1.5,0.1-3,0.5-4.3,1.4c-1.7,1.1-2.8,2.6-3,4.6c-0.2,2.5,0.7,4.6,2.9,5.9c2.3,1.5,4.9,1.6,7.5,0.8 c2.2-0.7,3.7-2.2,4.7-4.3c0.5-1,0.7-2.1,0.9-3.2c0-0.2,0-0.3,0.2-0.1c0.8,0.5,1.5,1.1,2,2c1.2,2.1,1.2,4.3,0.1,6.4 c-1.1,2.2-3,3.7-5.3,4.5c-1.3,0.5-2.7,0.7-4.1,0.8c-2.5,0.2-4.9-0.1-7.3-1c-2.1-0.8-3.7-2.2-5-4c-1.2-1.7-1.9-3.7-2.3-5.7 C6,22.5,5.9,19.8,6.2,17C6.5,14.8,7,12.6,8,10.6c1.2-2.4,3-4.3,5.4-5.4c1.4-0.7,3-1,4.6-1.2c2.4-0.2,4.7-0.1,7,0.6 c1.8,0.6,3.4,1.5,4.7,2.8c1.7,1.7,2.7,3.7,3.4,5.9c0.1,0.2,0.1,0.3,0.3,0.2c0.9-0.3,1.9-0.5,2.8-0.7C36.3,12.8,36.4,12.7,36.3,12.5z M24.1,24.5c-0.7,1.3-1.8,2.1-3.3,2.3c-0.3,0-0.7,0.1-1,0.1c-1,0-2-0.2-2.9-0.8c-1.6-1.1-1.6-3.2-0.1-4.4c0.7-0.6,1.6-0.8,2.4-1 c1.8-0.3,3.6-0.2,5.4,0.1c0.3,0.1,0.4,0.2,0.3,0.5C24.8,22.3,24.6,23.4,24.1,24.5z"/></symbol><symbol id="icon-8aeb01b26b1256824444f7ced3a58dd2" viewBox="0 0 40 40"><path d="M20.4,2.7c-4.7,0-9.1,0.5-11.8,1.7c0,0-5.2,2.3-5.2,10.2c0,1.8,0,4,0,6.3c0.2,7.7,1.4,15.4,8.6,17.3 c3.3,0.9,6.1,1.1,8.4,0.9c4.1-0.2,6.5-1.5,6.5-1.5l-0.1-3c0,0-3,0.9-6.3,0.8c-3.3-0.1-6.8-0.4-7.3-4.4c0-0.4-0.1-0.7-0.1-1.1 c0,0,3.2,0.8,7.3,1c2.5,0.1,4.8-0.1,7.2-0.4c4.6-0.5,8.5-3.4,9-5.9c0.8-4.1,0.7-9.9,0.7-9.9c0-7.9-5.2-10.2-5.2-10.2 c-2.6-1.2-7.1-1.7-11.8-1.7H20.4z M15.2,8.9c1.9,0,3.4,0.7,4.4,2.2l0.9,1.6l0.9-1.6c1-1.5,2.4-2.2,4.4-2.2c1.7,0,3,0.6,4.1,1.7 c1,1.2,1.5,2.7,1.5,4.7v9.6h-3.8v-9.3c0-2-0.8-3-2.5-3c-1.8,0-2.7,1.2-2.7,3.5v5.1h-3.8v-5.1c0-2.3-0.9-3.5-2.7-3.5 c-1.6,0-2.5,1-2.5,3v9.3H9.6v-9.6c0-2,0.5-3.5,1.5-4.7C12.1,9.5,13.5,8.9,15.2,8.9z"/></symbol><symbol id="icon-85976685de3e4af37529a1ce5d57d2a7" viewBox="0 0 40 40"><path d="M20,7c4.2,0,4.7,0,6.3,0.1c1.5,0.1,2.3,0.3,3,0.5C30,8,30.5,8.3,31.1,8.9c0.5,0.5,0.9,1.1,1.2,1.8c0.2,0.5,0.5,1.4,0.5,3 C33,15.3,33,15.8,33,20s0,4.7-0.1,6.3c-0.1,1.5-0.3,2.3-0.5,3c-0.3,0.7-0.6,1.2-1.2,1.8c-0.5,0.5-1.1,0.9-1.8,1.2 c-0.5,0.2-1.4,0.5-3,0.5C24.7,33,24.2,33,20,33s-4.7,0-6.3-0.1c-1.5-0.1-2.3-0.3-3-0.5C10,32,9.5,31.7,8.9,31.1 C8.4,30.6,8,30,7.7,29.3c-0.2-0.5-0.5-1.4-0.5-3C7,24.7,7,24.2,7,20s0-4.7,0.1-6.3c0.1-1.5,0.3-2.3,0.5-3C8,10,8.3,9.5,8.9,8.9 C9.4,8.4,10,8,10.7,7.7c0.5-0.2,1.4-0.5,3-0.5C15.3,7.1,15.8,7,20,7z M20,4.3c-4.3,0-4.8,0-6.5,0.1c-1.6,0-2.8,0.3-3.8,0.7 C8.7,5.5,7.8,6,6.9,6.9C6,7.8,5.5,8.7,5.1,9.7c-0.4,1-0.6,2.1-0.7,3.8c-0.1,1.7-0.1,2.2-0.1,6.5s0,4.8,0.1,6.5 c0,1.6,0.3,2.8,0.7,3.8c0.4,1,0.9,1.9,1.8,2.8c0.9,0.9,1.7,1.4,2.8,1.8c1,0.4,2.1,0.6,3.8,0.7c1.6,0.1,2.2,0.1,6.5,0.1 s4.8,0,6.5-0.1c1.6-0.1,2.9-0.3,3.8-0.7c1-0.4,1.9-0.9,2.8-1.8c0.9-0.9,1.4-1.7,1.8-2.8c0.4-1,0.6-2.1,0.7-3.8 c0.1-1.6,0.1-2.2,0.1-6.5s0-4.8-0.1-6.5c-0.1-1.6-0.3-2.9-0.7-3.8c-0.4-1-0.9-1.9-1.8-2.8c-0.9-0.9-1.7-1.4-2.8-1.8 c-1-0.4-2.1-0.6-3.8-0.7C24.8,4.3,24.3,4.3,20,4.3L20,4.3L20,4.3z"/><path d="M20,11.9c-4.5,0-8.1,3.7-8.1,8.1s3.7,8.1,8.1,8.1s8.1-3.7,8.1-8.1S24.5,11.9,20,11.9z M20,25.2c-2.9,0-5.2-2.3-5.2-5.2 s2.3-5.2,5.2-5.2s5.2,2.3,5.2,5.2S22.9,25.2,20,25.2z"/><path d="M30.6,11.6c0,1-0.8,1.9-1.9,1.9c-1,0-1.9-0.8-1.9-1.9s0.8-1.9,1.9-1.9C29.8,9.7,30.6,10.5,30.6,11.6z"/></symbol><symbol id="icon-950f35a71f420383dc2b54f8bf482185" viewBox="0 0 40 40"><path d="M35.3,20c0,2.8-0.7,5.4-2.1,7.7c-1.4,2.4-3.3,4.2-5.6,5.6c-2.4,1.4-4.9,2.1-7.7,2.1c-1.5,0-2.9-0.2-4.4-0.6 c0.8-1.2,1.3-2.3,1.6-3.3c0.1-0.5,0.5-1.9,1.1-4.2c0.3,0.5,0.8,1,1.5,1.4c0.7,0.4,1.5,0.6,2.3,0.6c1.6,0,3.1-0.5,4.3-1.4 c1.3-0.9,2.3-2.2,3-3.8c0.7-1.6,1-3.4,1-5.4c0-1.5-0.4-3-1.2-4.3c-0.8-1.3-2-2.4-3.5-3.3c-1.5-0.8-3.2-1.3-5.1-1.3 c-1.4,0-2.7,0.2-3.9,0.6c-1.2,0.4-2.3,0.9-3.1,1.5c-0.9,0.6-1.6,1.4-2.2,2.2c-0.6,0.8-1.1,1.7-1.3,2.6c-0.3,0.9-0.4,1.8-0.4,2.7 c0,1.4,0.3,2.6,0.8,3.7c0.5,1.1,1.3,1.8,2.3,2.2c0.4,0.2,0.7,0,0.8-0.4c0-0.1,0.1-0.3,0.2-0.6c0.1-0.3,0.1-0.5,0.2-0.6 c0.1-0.3,0-0.6-0.2-0.9c-0.7-0.8-1-1.8-1-3c0-2,0.7-3.8,2.1-5.2c1.4-1.5,3.2-2.2,5.5-2.2c2,0,3.6,0.5,4.7,1.6 c1.1,1.1,1.7,2.5,1.7,4.3c0,2.3-0.5,4.2-1.4,5.8s-2.1,2.4-3.5,2.4c-0.8,0-1.5-0.3-2-0.9c-0.5-0.6-0.6-1.3-0.5-2.1 c0.1-0.5,0.3-1.1,0.5-1.9c0.2-0.8,0.4-1.5,0.6-2.1c0.2-0.6,0.2-1.1,0.2-1.5c0-0.7-0.2-1.2-0.5-1.7c-0.4-0.4-0.9-0.7-1.5-0.7 c-0.8,0-1.5,0.4-2.1,1.1c-0.6,0.8-0.9,1.7-0.9,2.9c0,1,0.2,1.8,0.5,2.5l-2,8.4c-0.2,0.9-0.3,2.1-0.3,3.6c-2.8-1.2-5-3.1-6.7-5.6 S4.4,23.1,4.4,20c0-2.8,0.7-5.4,2.1-7.7S9.7,8,12.1,6.6s4.9-2.1,7.7-2.1c2.8,0,5.4,0.7,7.7,2.1s4.2,3.3,5.6,5.6 C34.6,14.6,35.3,17.2,35.3,20L35.3,20z"/></symbol><symbol id="icon-a63c85b2b6ee333b6d6753e57c8dfe0a" viewBox="0 0 40 40"><path d="M37.6,27.1c0,0-0.3,2.4-1.4,3.5c-1.4,1.4-2.9,1.4-3.6,1.5c-5,0.4-12.4,0.4-12.4,0.4s-9.2-0.1-12.1-0.4 c-0.8-0.1-2.6-0.1-3.9-1.5c-1.1-1.1-1.4-3.5-1.4-3.5s-0.4-2.9-0.4-5.7v-2.7c0-2.9,0.4-5.7,0.4-5.7s0.3-2.4,1.4-3.5 C5.5,8,7,8,7.7,7.9c5-0.4,12.4-0.4,12.4-0.4h0c0,0,7.5,0,12.4,0.4C33.3,8,34.8,8,36.2,9.4c1.1,1.1,1.4,3.5,1.4,3.5s0.4,2.9,0.4,5.7 v2.7C37.9,24.2,37.6,27.1,37.6,27.1z M16.5,14.6l0,9.9l9.6-5L16.5,14.6z" /></symbol></svg><div id="wrapper"><div id="main"><div class="inner"><header id="header"><ul id="buttons01" class="buttons"><li><a href="https://www.shanerobinson.com" class="button n01" role="button"><svg aria-labelledby="buttons01-icon-1-title"><title id="buttons01-icon-1-title">Home</title><use xlink:href="#icon-2a747dd19e728944f8c54ef1b55a59c6"></use></svg><span class="label">home</span></a></li><li><a href="https://www.shanerobinson.com/now" class="button n02" role="button"><svg aria-labelledby="buttons01-icon-2-title"><title id="buttons01-icon-2-title">Globe</title><use xlink:href="#icon-7a66fac84dc5d9fb5fafce395a384d40"></use></svg><span class="label">now</span></a></li><li><a href="https://shanerobinson.com/subscribe" class="button n03" role="button"><svg aria-labelledby="buttons01-icon-3-title"><title id="buttons01-icon-3-title">Email</title><use xlink:href="#icon-c3c8e1063e3b7f84f6b54712741de139"></use></svg><span class="label">subscribe</span></a></li></ul></header><section id="home-section"><h2 id="text11" class="style1">Shane Robinson</h2><p id="text12">Founder | Coder | Artist | Digital Native | DBA</p><hr id="divider02"><p id="text04">Current Location :: Rayong, Thailand</p><p id="text07">I&#39;m currently traveling around SE Asia, including Thailand, Malaysia, Indonesia, and Vietnam.</p><hr id="divider03"><p id="text05">Recently:</p><p id="text08"><span class="p">I started <em><strong><a href="https://ineo.media" target="_blank">🔗 INEO Media, LLC</a></strong></em> to build top-notch tools using Notion for busy solo entrepreneurs and small businesses.</span><span class="p">I realized there were not enough professionally designed planning and organizing tools while planning my own <strong>Slow Travel</strong> adventure. I saw lots of people online who were confused and had many questions about traveling full-time.</span><span class="p">I also decided to pause my <a href="https://art.shanerobinson.com" target="_blank">🔗 Art career</a> for a while because I’m going to explore the World for the next few years!</span></p><hr id="divider04"><p id="text15">Previously:</p><p id="text02"><span class="p">Founder and Partner in <a href="https://www.barefeetstudios.com" target="_blank">🔗 Bare Feet Studios, LLC</a> with <a href="https://www.roxannedarling.com/" target="_blank">🔗 Roxanne Darling</a>.<br /> BFS was one of the first still existing Web Dev Agencies in the U.S. southwest.</span><span class="p">For 28+ years it has provided award-winning consulting and advanced CMS development for SMBs across the U.S.</span><span class="p">It&#39;s now in &quot;wind down&quot; phase under the brilliant operation of Roxanne.</span><span class="p"><br><br></span></p></section><section id="now-section"><h2 id="text19" class="style1">Shane Robinson / now</h2><p id="text03">What I&#39;m Doing Now...</p><p id="text13"><span class="p"><em><span style="color: #666666">This is <a href="https://nownownow.com/about">a now page</a>, and if you have your own site, you should make one, too.<br /> <a href="https://nownownow.com/p/SpVN">Here&#39;s mine.</a></span></em></span></p><p id="text16">Updated: April 17, 2025</p><p id="text17">Location: Rayong, Thailand</p><p id="text18">I’m currently traveling around SE Asia, including Thailand, Malaysia, Indonesia, and Vietnam.</p><p id="text06">Working On: Professional Level Notion-based Apps</p><p id="text20"><span class="p">While planning and organizing my own full-time <strong>Slow Travel</strong> I built an extensive Notion-based system to manage everything from credit cards and points/rewards, to visas, itineraries, projects, travel resources, contact management, and all the minutiae required to travel around the world full-time.</span><span class="p">In the process I found hundreds, if not thousands, of questions online about the exact problems I was solving.</span><span class="p">So my Notion-based travel planner will be one of the first digital products launched in late 2024 or early 2025.</span><span class="p"><strong><a href="https://easyslowtravel.com">🔗 Get on the waitlist</a> for early access to the beta and discounts!</strong><br /> <br><br></span></p></section><section id="subscribe-section"><h2 id="text01" class="style1">Subscribe...</h2><p id="text21"><span class="p">Follow along as I solo slow travel the world starting in 2025.</span><span class="p">Plus, get early access and Subscriber-only features to my Notion-based travel planning and solopreneur / small business management systems.</span><span class="p"><em>You can unsubscribe at anytime with 1 click!</em></span></p><form id="form01" method="post"><div class="inner"><div class="field"><input type="text" name="fname" id="form01-fname" placeholder="Name" maxlength="128" required /></div><div class="field"><input type="email" name="email" id="form01-email" placeholder="Email" maxlength="128" required /></div><div class="field"><input type="text" name="fax" id="form01-fax" placeholder="Fax" maxlength="128" /></div><div class="actions"><button type="submit"><svg aria-labelledby="form01-submit-icon-title"><title id="form01-submit-icon-title">Check</title><use xlink:href="#icon-be848c9691a8e3f7630e3908e426bf9f"></use></svg><span class="label">Submit</span></button></div></div><input type="hidden" name="id" value="form01" /></form><p id="text10"><br><br></p></section><footer id="footer"><hr id="divider01"><ul id="icons01" class="style1 icons"><li><a class="n01" href="https://x.com/shanerobinson" role="button"><svg aria-labelledby="icons01-icon-1-title"><title id="icons01-icon-1-title">X</title><use xlink:href="#icon-31b8880d36499db40d4e47546c4763f3"></use></svg><span class="label">X</span></a></li><li><a class="n02" href="https://www.linkedin.com/in/rshanerobinson" role="button"><svg aria-labelledby="icons01-icon-2-title"><title id="icons01-icon-2-title">LinkedIn</title><use xlink:href="#icon-bf393d6ea48a4e69e1ed58a3563b94a5"></use></svg><span class="label">LinkedIn</span></a></li><li><a class="n03" href="https://threads.net/@shanerobinson" role="button"><svg aria-labelledby="icons01-icon-3-title"><title id="icons01-icon-3-title">Threads</title><use xlink:href="#icon-422e9320a86e6b1908f65c1f963b6249"></use></svg><span class="label">Threads</span></a></li><li><a class="n04" href="https://mastodon.social/@shanerobinson" role="button"><svg aria-labelledby="icons01-icon-4-title"><title id="icons01-icon-4-title">Mastodon</title><use xlink:href="#icon-8aeb01b26b1256824444f7ced3a58dd2"></use></svg><span class="label">Mastodon</span></a></li><li><a class="n05" href="https://instagram.com/shanerobinson" role="button"><svg aria-labelledby="icons01-icon-5-title"><title id="icons01-icon-5-title">Instagram</title><use xlink:href="#icon-85976685de3e4af37529a1ce5d57d2a7"></use></svg><span class="label">Instagram</span></a></li><li><a class="n06" href="https://www.pinterest.com/shanerobinson/" role="button"><svg aria-labelledby="icons01-icon-6-title"><title id="icons01-icon-6-title">Pinterest</title><use xlink:href="#icon-950f35a71f420383dc2b54f8bf482185"></use></svg><span class="label">Pinterest</span></a></li><li><a class="n07" href="https://www.youtube.com/shanerobinsonartist" role="button"><svg aria-labelledby="icons01-icon-7-title"><title id="icons01-icon-7-title">YouTube</title><use xlink:href="#icon-a63c85b2b6ee333b6d6753e57c8dfe0a"></use></svg><span class="label">YouTube</span></a></li><li><a class="n08" href="/cdn-cgi/l/email-protection#c1b2a9a0afa4eab6b6b681b2a9a0afa4b3aea3a8afb2aeafefa2aeac" role="button"><svg aria-labelledby="icons01-icon-8-title"><title id="icons01-icon-8-title">Email</title><use xlink:href="#icon-c3c8e1063e3b7f84f6b54712741de139"></use></svg><span class="label">Email</span></a></li></ul><p id="text14">Like this website? <a href="https://try.carrd.co/shane" target="_blank">Click here to create a website for free!</a></p><p id="text09">Copyright © All Rights Reserved by Shane Robinson.</p></footer></div></div></div><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://www.google.com/recaptcha/api.js?hl=en"></script><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\.]+)/,null],['edge',/Edge\/([0-9\.]+)/,null],['safari',/Version\/([0-9\.]+).+Safari/,null],['chrome',/Chrome\/([0-9\.]+)/,null],['chrome',/CriOS\/([0-9\.]+)/,null],['ie',/Trident\/.+rv:([0-9]+)/,null],['safari',/iPhone OS ([0-9_]+)/,function(v) { return v.replace('_', '.').replace('_', ''); }]];for (i=0; i < a.length; i++) {if (ua.match(a[i][1])) {o.browser = a[i][0];o.browserVersion = parseFloat( a[i][2] ? (a[i][2])(RegExp.$1) : 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 db = {open: function(objectStoreName, handler) {var request = indexedDB.open('carrd');request.onupgradeneeded = function(event) {event.target.result.createObjectStore(objectStoreName,{keyPath: 'id'});};request.onsuccess = function(event) {(handler)(event.target.result.transaction([objectStoreName],'readwrite').objectStore(objectStoreName));};},put: function(objectStore, values, handler) {var request = objectStore.put(values);request.onsuccess = function(event) {(handler)();};request.onerror = function(event) {throw new Error('db.put: error');};},get: function(objectStore, id, handler) {var request = objectStore.get(id);request.onsuccess = function(event) {if (!event.target.result)throw new Error('db.get: could not retrieve object with id "' + id + '"');(handler)(event.target.result);};request.onerror = function(event) {throw new Error('db.get: error');};},delete: function(objectStore, id, handler) {objectStore.delete(id).onsuccess = function(event) {(handler)(event.target.result);};},};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');}, 1500);}, 100);};on('load', loadHandler);(function() {var initialSection, initialScrollPoint, initialId,header, footer, name, hideHeader, hideFooter, disableAutoScroll,h, e, ee, k,locked = false,title = document.title,scrollPointParent = function(target) {while (target) {if (target.parentElement&& target.parentElement.tagName == 'SECTION')break;target = target.parentElement;}return target;},scrollPointSpeed = function(scrollPoint) {let x = parseInt(scrollPoint.dataset.scrollSpeed);switch (x) {case 5:return 250;case 4:return 500;case 3:return 750;case 2:return 1000;case 1:return 1250;default:break;}return 750;},doNextScrollPoint = function(event) {var e, target, id;e = scrollPointParent(event.target);if (!e)return;while (e && e.nextElementSibling) {e = e.nextElementSibling;if (e.dataset.scrollId) {target = e;id = e.dataset.scrollId;break;}}if (!target|| !id)return;if (target.dataset.scrollInvisible == '1')scrollToElement(target, 'smooth', scrollPointSpeed(target)); else location.href = '#' + id;},doPreviousScrollPoint = function(e) {var e, target, id;e = scrollPointParent(event.target);if (!e)return;while (e && e.previousElementSibling) {e = e.previousElementSibling;if (e.dataset.scrollId) {target = e;id = e.dataset.scrollId;break;}}if (!target|| !id)return;if (target.dataset.scrollInvisible == '1')scrollToElement(target, 'smooth', scrollPointSpeed(target)); else location.href = '#' + id;},doFirstScrollPoint = function(e) {var e, target, id;e = scrollPointParent(event.target);if (!e)return;while (e && e.previousElementSibling) {e = e.previousElementSibling;if (e.dataset.scrollId) {target = e;id = e.dataset.scrollId;}}if (!target|| !id)return;if (target.dataset.scrollInvisible == '1')scrollToElement(target, 'smooth', scrollPointSpeed(target)); else location.href = '#' + id;},doLastScrollPoint = function(e) {var e, target, id;e = scrollPointParent(event.target);if (!e)return;while (e && e.nextElementSibling) {e = e.nextElementSibling;if (e.dataset.scrollId) {target = e;id = e.dataset.scrollId;}}if (!target|| !id)return;if (target.dataset.scrollInvisible == '1')scrollToElement(target, 'smooth', scrollPointSpeed(target)); else location.href = '#' + id;},doNextSection = function() {var section;section = $('#main > .inner > section.active').nextElementSibling;if (!section || section.tagName != 'SECTION')return;location.href = '#' + section.id.replace(/-section$/, '');},doPreviousSection = function() {var section;section = $('#main > .inner > section.active').previousElementSibling;if (!section || section.tagName != 'SECTION')return;location.href = '#' + (section.matches(':first-child') ? '' : section.id.replace(/-section$/, ''));},doFirstSection = function() {var section;section = $('#main > .inner > section:first-of-type');if (!section || section.tagName != 'SECTION')return;location.href = '#' + section.id.replace(/-section$/, '');},doLastSection = function() {var section;section = $('#main > .inner > section:last-of-type');if (!section || section.tagName != 'SECTION')return;location.href = '#' + section.id.replace(/-section$/, '');},resetSectionChangeElements = function(section) {var ee, e, x;ee = section.querySelectorAll('[data-reset-on-section-change="1"]');for (e of ee) {x = e ? e.tagName : null;switch (x) {case 'FORM':e.reset();break;default:break;}}},activateSection = function(section, scrollPoint) {var sectionHeight, currentSection, currentSectionHeight,name, hideHeader, hideFooter, disableAutoScroll,ee, k;if (!section.classList.contains('inactive')) {name = (section ? section.id.replace(/-section$/, '') : null);disableAutoScroll = name ? ((name in sections) && ('disableAutoScroll' in sections[name]) && sections[name].disableAutoScroll) : false;if (scrollPoint)scrollToElement(scrollPoint, 'smooth', scrollPointSpeed(scrollPoint)); else if (!disableAutoScroll)scrollToElement(null);return false;} else {locked = true;if (location.hash == '#home')history.replaceState(null, null, '#');name = (section ? section.id.replace(/-section$/, '') : null);hideHeader = name ? ((name in sections) && ('hideHeader' in sections[name]) && sections[name].hideHeader) : false;hideFooter = name ? ((name in sections) && ('hideFooter' in sections[name]) && sections[name].hideFooter) : false;disableAutoScroll = name ? ((name in sections) && ('disableAutoScroll' in sections[name]) && sections[name].disableAutoScroll) : false;if (header && hideHeader) {header.classList.add('hidden');header.style.display = 'none';}if (footer && hideFooter) {footer.classList.add('hidden');footer.style.display = 'none';}currentSection = $('#main > .inner > section:not(.inactive)');currentSection.classList.add('inactive');currentSection.classList.remove('active');currentSection.style.display = 'none';document.title = title;unloadElements(currentSection);resetSectionChangeElements(currentSection);clearTimeout(window._sectionTimeoutId);if (header && !hideHeader) {header.style.display = '';header.classList.remove('hidden');}if (footer && !hideFooter) {footer.style.display = '';footer.classList.remove('hidden');}section.classList.remove('inactive');section.classList.add('active');section.style.display = '';trigger('resize');if (section.dataset.title)document.title = section.dataset.title + ' - ' + title;loadElements(section);if (scrollPoint)scrollToElement(scrollPoint, 'instant'); else if (!disableAutoScroll)scrollToElement(null, 'instant');locked = false;}},sections = {};window._nextScrollPoint = doNextScrollPoint;window._previousScrollPoint = doPreviousScrollPoint;window._firstScrollPoint = doFirstScrollPoint;window._lastScrollPoint = doLastScrollPoint;window._nextSection = doNextSection;window._previousSection = doPreviousSection;window._firstSection = doFirstSection;window._lastSection = doLastSection;window._scrollToTop = function() {var section, id;scrollToElement(null);if (!!(section = $('section.active'))) {id = section.id.replace(/-section$/, '');if (id == 'home')id = '';history.pushState(null, null, '#' + id);}};if ('scrollRestoration' in history)history.scrollRestoration = 'manual';header = $('#header');footer = $('#footer');h = thisHash();if (h&& !h.match(/^[a-zA-Z0-9\-]+$/))h = null;if (e = $('[data-scroll-id="' + h + '"]')) {initialScrollPoint = e;initialSection = initialScrollPoint.parentElement;initialId = initialSection.id;} else if (e = $('#' + (h ? h : 'home') + '-section')) {initialScrollPoint = null;initialSection = e;initialId = initialSection.id;}if (!initialSection) {initialScrollPoint = null;initialSection = $('#' + 'home' + '-section');initialId = initialSection.id;history.replaceState(undefined, undefined, '#');}name = (h ? h : 'home');hideHeader = name ? ((name in sections) && ('hideHeader' in sections[name]) && sections[name].hideHeader) : false;hideFooter = name ? ((name in sections) && ('hideFooter' in sections[name]) && sections[name].hideFooter) : false;disableAutoScroll = name ? ((name in sections) && ('disableAutoScroll' in sections[name]) && sections[name].disableAutoScroll) : false;if (header && hideHeader) {header.classList.add('hidden');header.style.display = 'none';}if (footer && hideFooter) {footer.classList.add('hidden');footer.style.display = 'none';}ee = $$('#main > .inner > section:not([id="' + initialId + '"])');for (k = 0; k < ee.length; k++) {ee[k].className = 'inactive';ee[k].style.display = 'none';}initialSection.classList.add('active');ready.add(() => {if (initialSection.dataset.title)document.title = initialSection.dataset.title + ' - ' + title;loadElements(initialSection);if (header)loadElements(header);if (footer)loadElements(footer);if (!disableAutoScroll)scrollToElement(null, 'instant');});on('load', function() {if (initialScrollPoint)scrollToElement(initialScrollPoint, 'instant');});on('hashchange', function(event) {var section, scrollPoint,h, e;if (locked)return false;h = thisHash();if (h&& !h.match(/^[a-zA-Z0-9\-]+$/))return false;if (e = $('[data-scroll-id="' + h + '"]')) {scrollPoint = e;section = scrollPoint.parentElement;} else if (e = $('#' + (h ? h : 'home') + '-section')) {scrollPoint = null;section = e;} else {scrollPoint = null;section = $('#' + 'home' + '-section');history.replaceState(undefined, undefined, '#');}if (!section)return false;activateSection(section, scrollPoint);return false;});on('click', function(event) {var t = event.target,tagName = t.tagName.toUpperCase(),scrollPoint, section;switch (tagName) {case 'IMG':case 'SVG':case 'USE':case 'U':case 'STRONG':case 'EM':case 'CODE':case 'S':case 'MARK':case 'SPAN':while ( !!(t = t.parentElement) )if (t.tagName == 'A')break;if (!t)return;break;default:break;}if (t.tagName == 'A'&& t.getAttribute('href') !== null&& t.getAttribute('href').substr(0, 1) == '#') {if (!!(scrollPoint = $('[data-scroll-id="' + t.hash.substr(1) + '"][data-scroll-invisible="1"]'))) {event.preventDefault();section = scrollPoint.parentElement;if (section.classList.contains('inactive')) {history.pushState(null, null, '#' + section.id.replace(/-section$/, ''));activateSection(section, scrollPoint);} else {scrollToElement(scrollPoint, 'smooth', scrollPointSpeed(scrollPoint));}} else if (t.hash == window.location.hash) {event.preventDefault();history.replaceState(undefined, undefined, '#');location.replace(t.hash);}}});})();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 form(id, settings) {var _this = this;this.id = id;this.mode = settings.mode;this.method = settings.method;this.code = ('code' in settings ? settings.code : null);this.success = settings.success;this.initHandler = ('initHandler' in settings ? settings.initHandler : null);this.presubmitHandler = ('presubmitHandler' in settings ? settings.presubmitHandler : null);this.failure = ('failure' in settings ? settings.failure : null);this.optional = ('optional' in settings ? settings.optional : []);this.events = ('events' in settings ? settings.events : {});this.recaptcha = ('recaptcha' in settings ? settings.recaptcha : null);this.collectTrackingParameters = ('collectTrackingParameters' in settings ? settings.collectTrackingParameters : false);this.exportVariables = ('exportVariables' in settings ? settings.exportVariables : false);this.$form = $('#' + this.id);this.$form.addEventListener('change', function(event) {if (event.target.tagName != 'INPUT')return;_this.refreshInput(event.target);});this.$form.addEventListener('submit', function(event) {event.preventDefault();event.stopPropagation();_this.triggerSubmit();});this.$form.addEventListener('reset', function(event) {setTimeout(function() {_this.refreshInputs();}, 0);});this.$form.addEventListener('keydown', function(event) {if (event.keyCode == 13 && event.ctrlKey) {event.preventDefault();event.stopPropagation();_this.triggerSubmit();}});var x = $('#' + this.id + ' input[name="' + settings.hid + '"]');if (x) {x.disabled = true;x.parentNode.style.display = 'none';}this.$submit = $('#' + this.id + ' .actions button[type="submit"]');this.$submit.disabled = false;this.initInputs();if (this.initHandler) {errors.handle(function(message) {return _this.failureHandler(message);});if (!this.initHandler())errors.unhandle();}if (this.recaptcha) {grecaptcha.ready(function() {var id;id = grecaptcha.render(_this.$submit, {sitekey: _this.recaptcha.key,isolated: true,theme: (_this.recaptcha.darkMode ? 'dark' : 'light'),callback: function(token) {_this.submit({recaptchaToken: token},['g-recaptcha-response']);grecaptcha.reset(id);}});});}};form.prototype.completionHandler = function(properties, eventHandler, response) {if (eventHandler !== null)eventHandler.apply(this.$form, [ response ]);switch (properties.mode) {default:case 1:alert(this.expandVariables(properties.value));break;case 2:this.openUrlProperty(properties.value);break;case 3:properties.value.apply(this.$form, [ response ]);break;case 4:break;}};form.prototype.expandVariables = function(s) {if (typeof variables === 'undefined')return s;if (variables.hasVariables(s)) {for (input of this.$form.elements) {if (!this.isAllowedInput(input))continue;value = '';if (this.isValidInput(input)) {switch (input.type) {case 'checkbox':value = input.checked ? 'true' : 'false';break;case 'email':case 'select-one':case 'number':case 'tel':case 'text':case 'textarea':case 'hidden':value = input.value;break;default:value = '';break;}} else value = '';if (!!(s.match(/^(#[a-zA-Z0-9\_\-]+|[a-z0-9\-\.]+:[a-zA-Z0-9\~\!\@\#$\%\&\-\_\+\=\;\,\.\?\/\:\{\}\|]+)$/)))value = encodeURIComponent(value);s = variables.expandVariable(s, input.name, value);}}s = variables.expandVariableString(this.$form, s);return s;};form.prototype.exportVariableValues = function(source, values, suffix) {if (typeof variables === 'undefined'|| this.exportVariables !== true)return;variables.import(source + (suffix ? suffix : ''), values);variables.purge('form' + (suffix ? suffix : ''));variables.import('form' + (suffix ? suffix : ''), values);};form.prototype.failureHandler = function(message) {var eventHandler;eventHandler = ('onfailure' in this.events) ? this.events.onfailure : null;if (message.charAt(0) == '*')this.completionHandler({mode: 1,value: message.substring(1)},eventHandler,null); else if (this.failure)this.completionHandler(this.failure,eventHandler,null); else this.completionHandler({mode: 1,value: message},eventHandler,null);this.waiting(false);errors.unhandle();return true;};form.prototype.finalizeInput = function(input) {try {if (!input|| typeof input != 'object'|| !('name' in input))throw 'Not an input.';if (!('value' in input))throw 'Missing "value" property.';if (input.type == 'text'|| input.type == 'email'|| input.type == 'textarea'|| input.type == 'hidden')input.value = input.value.replace(/^\s+/, '').replace(/\s+$/, '');}catch (e) {}};form.prototype.formatDate = function(value, format) {var date, options,a, s;if (!value.match(/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/))return '';a = value.split('-');date = new Date(a[0], parseInt(a[1]) - 1, parseInt(a[2]), 0, 0, 0, 0);switch (format) {default:case 'short':break;case 'medium':options = { dateStyle: 'medium' };break;case 'long':options = { dateStyle: 'long' };break;case 'full':options = { dateStyle: 'full' };break;}s = new Intl.DateTimeFormat(undefined, options).format(date);return s;};form.prototype.getAmount = function() {var x;x = this.getRequiredInputValue('amount', ['select-one', 'number']);if (!x)return null;x = parseFloat(x);if (isNaN(x)|| x < 1.00|| x > 100000.00)return null;return x;};form.prototype.getEmail = function() {return this.getRequiredInputValue('email', 'email');};form.prototype.getQuantity = function() {var x;x = this.getRequiredInputValue('quantity', ['select-one', 'number']);if (!x)return null;x = parseInt(x);if (isNaN(x)|| x < 1|| x > 100000)return null;return x;};form.prototype.getRequiredInputValue = function(name, type) {var input;for (input of this.$form.elements) {if (((Array.isArray(type) && type.includes(input.type)) || input.type == type)&& input.name == name&& input.value !== ''&& input.value !== null)return input.value;}return null;};form.prototype.initInputs = function() {var _this = this,i, input;for (i=0; i < this.$form.elements.length; i++) {input = this.$form.elements[i];switch (input.type) {case 'number':(function(input) {var p = input.parentNode,decrement = p.querySelector('button.decrement'),increment = p.querySelector('button.increment');input.addEventListener('blur', function(event) {_this.normalizeNumberInput(input);});if (decrement&& increment) {decrement.addEventListener('click', function(event) {event.preventDefault();_this.normalizeNumberInput(input);input.stepDown(1);_this.normalizeNumberInput(input);});increment.addEventListener('click', function(event) {event.preventDefault();_this.normalizeNumberInput(input);input.stepUp(1);_this.normalizeNumberInput(input);});}})(input);break;case 'file':(function(input) {var p = input.parentNode,select = p.querySelector('button.select');select.addEventListener('click', function(event) {event.preventDefault();input.click();});input.addEventListener('focus', function(event) {event.target.parentNode.classList.add('focus');});input.addEventListener('blur', function(event) {event.target.parentNode.classList.remove('focus');});})(input);break;case 'date':(function(input) {var p = input.parentNode,select = p.querySelector('button.select'),changeHandler,x, y, z;select.addEventListener('click', function(event) {event.preventDefault();input.click();input.focus();});switch (client.browser) {case 'safari':input.addEventListener('keydown', function(event) {switch (event.keyCode) {case 9:event.preventDefault();input.blur();break;case 27:event.preventDefault();input.blur();break;case 33:break;case 34:break;case 37:break;case 38:break;case 39:break;case 40:break;default:event.preventDefault();break;}});break;default:input.addEventListener('click', function(event) {event.preventDefault();input.focus();input.showPicker();});break;}changeHandler = function() {if (input.value)p.setAttribute('data-value', _this.formatDate(input.value, p.dataset.format)); else p.setAttribute('data-value', '');};input.addEventListener('change', function(event) {changeHandler();});changeHandler();})(input);break;case 'text':case 'textarea':case 'email':input.addEventListener('blur', function(event) {this.value = this.value.replace(/^\s+/, '').replace(/\s+$/, '');});break;}this.refreshInput(input);}};form.prototype.isAllowedInput = function(input, ignore) {try {if (!input|| typeof input != 'object'|| !('name' in input))throw 'Not an input.';if (ignore&& ignore.indexOf(input.name) != -1)throw 'Input is ignored.';if (input.disabled)throw 'Input is disabled.';switch (input.type) {case 'text':case 'email':case 'textarea':case 'select-one':case 'checkbox':case 'number':case 'tel':case 'file':case 'date':case 'hidden':break;default:throw 'Not an allowed input.';}}catch (e) {return false;}return true;};form.prototype.isValidInput = function(input) {var result = false;switch (input.type) {case 'email':result = input.value.match(new RegExp("^([a-zA-Z0-9\\_\\-\\.\\+]+)@([a-zA-Z0-9\\-\\.]+)\\.([a-zA-Z]+)$"));break;case 'select-one':result = input.value.match(new RegExp("^[^\\<\\>]+$"));break;case 'checkbox':result = true;break;case 'number':result = input.value.match(new RegExp("^[0-9\\-\\.]+$"));break;case 'tel':result = input.value.match(new RegExp("^[0-9\\-\\+\\(\\)\\ \\#\\*]+$"));break;case 'file':result = true;break;case 'date':result = input.value.match(new RegExp("^[0-9]{4}-[0-9]{2}-[0-9]{2}$"));break;default:case 'text':case 'textarea':case 'hidden':result = true;break;}return result;};form.prototype.normalizeNumberInput = function(input) {var min = parseFloat(input.min),max = parseFloat(input.max),step = parseFloat(input.step),v = parseFloat(input.value);if (isNaN(v)) {if (!input.required) {input.value = null;return;}v = isNaN(min) ? 0 : min;}if (!isNaN(min)&& v < min)v = min;if (!isNaN(max)&& v > max)v = max;if (!isNaN(step)&& (v % step) !== 0)v = Math.round(v / step) * step;switch (input.dataset.category) {case 'currency':v = parseFloat(v).toFixed(2);break;default:case 'decimal':v = parseFloat(v);break;case 'integer':v = parseInt(v);break;}input.value = v;};form.prototype.openUrlProperty = function(p) {if ('onclick' in p) {(p.onclick)(event);return;}if ('href' in p) {let href = this.expandVariables(p.href);this.$form.reset();if (href.charAt(0) == '#') {window.location.href = href;return;}if ('target' in p&& p.target == '_blank')window.open(href); else window.location.href = href;}};form.prototype.pause = function(values, handler) {var _this = this;this.waiting(true);db.open('formData', function(objectStore) {db.delete(objectStore, _this.id, function() {db.put(objectStore, values, function() {handler.call(_this);});});});};form.prototype.refreshInput = function(input) {var a = [],p;switch (input.type) {case 'file':p = input.parentNode;if (input.files.length > 0)p.setAttribute('data-filename', input.files[0].name); else p.setAttribute('data-filename', '');break;case 'date':p = input.parentNode;if (input.value)p.setAttribute('data-value', this.formatDate(input.value, p.dataset.format)); else p.setAttribute('data-value', '');break;default:break;}};form.prototype.refreshInputs = function() {var i;for (i=0; i < this.$form.elements.length; i++)this.refreshInput(this.$form.elements[i]);};form.prototype.resume = function(handler) {var _this = this;this.waiting(true);this.scrollIntoView();db.open('formData', function(objectStore) {db.get(objectStore, _this.id, function(values) {db.delete(objectStore, _this.id, function() {var e, i, v;for (i in _this.$form.elements) {e = _this.$form.elements[i];if (!e.name)continue;v = (e.name in values ? values[e.name] : null);switch (e.type) {case 'checkbox':e.checked = (v == 'checked' ? true : false);break;case 'file':if (v)e.parentNode.setAttribute('data-filename', v.name);break;default:e.value = v;break;}}handler.call(_this, values);});});});};form.prototype.scrollIntoView = function() {window.scrollTo(0, this.$form.offsetTop);};form.prototype.submit = function(values, ignore) {var _this = this,input, result, _success, _failure,a, b, i, e, fd, k, x, usp;try {for (input of this.$form.elements) {if (!this.isAllowedInput(input, ignore))continue;if (this.optional.indexOf(input.name) !== -1&&(input.value === ''|| input.value === null|| (input.type == 'checkbox' && !input.checked)))continue;this.finalizeInput(input);if (!this.isValidInput(input))throw 'Not valid.';}}catch (e) {alert('Missing or invalid fields. Please try again.');return;}if ('onsubmit' in this.events) {if (this.events.onsubmit.apply(this.$form) === false)return;}a = this.values();if (values) {for (k in values)a[k] = values[k];}if (this.collectTrackingParameters) {usp = new URLSearchParams(window.location.search);b = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'];for (k of b) {x = usp.get(k);if (x) {x = x.trim();x = x.replace(/[^a-zA-Z0-9\-\_\%\+\s]/g, '');x = x.replace(/\s+/g, '_');if (x.length <= 256)a[k] = x;}}}switch (this.method) {default:case 'ajax':break;case 'get':case 'post':for (k in a) {if (this.$form.elements[k])continue;e = document.createElement('input');e.setAttribute('type', 'hidden');e.setAttribute('name', k);this.$form.appendChild(e);e.value = a[k];}this.$form.submit();return;case 'code':if (typeof this.code == 'function') {this.waiting(true);_success = function() {_this.exportVariableValues(_this.id, a);_this.completionHandler(_this.success,('onsuccess' in _this.events) ? _this.events.onsuccess : null,null);_this.waiting(false);};_failure = function() {_this.completionHandler(_this.failure,('onfailure' in _this.events) ? _this.events.onfailure : null,null);_this.waiting(false);};result = this.code.apply(this.$form, [_success, _failure]);if (result === true)_success(); else if (result === false)_failure();}return;}if (x = $(':focus'))x.blur();errors.handle(function(message) {return _this.failureHandler(message);});if (this.presubmitHandler)this.presubmitHandler.call(this, a); else this.submitHandler(a);};form.prototype.submitHandler = function(values) {var _this = this,x, k, data;this.waiting(true);data = new FormData;for (k in values) {if (values[k]&& typeof values[k] == 'object'&& ('blob' in values[k]))data.append(k,values[k].blob,values[k].name); else data.append(k, values[k]);}x = new XMLHttpRequest();x.open('POST', ['', 'post', this.mode].join('/'));x.send(data);x.onreadystatechange = function() {var o;if (x.readyState != 4)return;if (x.status != 200)throw new Error('Failed server response (' + x.status + ')');try {o = JSON.parse(x.responseText);}catch (e) {throw new Error('Invalid server response');}if (!('result' in o)|| !('message' in o))throw new Error('Incomplete server response');if (o.result !== true) {if ('response' in o)console.log(o.response);throw new Error(o.message);}_this.exportVariableValues(_this.id, values);if ('response' in o)_this.exportVariableValues(_this.id, o.response, '_response');_this.completionHandler(_this.success,('onsuccess' in _this.events) ? _this.events.onsuccess : null,'response' in o ? o.response : null);_this.$form.reset();_this.waiting(false);errors.unhandle();};};form.prototype.triggerSubmit = function() {if (this.recaptcha)this.$submit.click(); else if (!this.$submit.disabled)this.submit();};form.prototype.values = function() {var a = {};for (i in this.$form.elements) {e = this.$form.elements[i];if (!e.name|| !e.value)continue;switch (e.type) {case 'checkbox':a[e.name] = (e.checked ? 'checked' : null);break;case 'file':a[e.name] = {name: e.files[0].name,blob: new Blob([e.files[0]], { type: e.files[0].type })};break;default:a[e.name] = e.value;break;}}a['id'] = this.id;return a;};form.prototype.waiting = function(x) {var _this = this;if (x) {$body.classList.add('is-instant');this.$submit.disabled = true;this.$submit.classList.add('waiting');if (this.recaptcha)setTimeout(function() {_this.$submit.disabled = true;}, 0);} else {$body.classList.remove('is-instant');this.$submit.classList.remove('waiting');this.$submit.disabled = false;}};new form('form01', {mode: 'signup',method: 'ajax',hid: 'fax',recaptcha: {key: '6Lf8ZgEqAAAAACwjwgEc-VB_4w0c62h46sHeWygC',darkMode: true,},success: {mode: 1,value: 'Thank you! :) Please check your email to confirm your subscription.',},optional: ['phone', 'company'],});onvisible.add('#buttons01', { style: 'fade-in', speed: 1000, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('h1.style1, h2.style1, h3.style1, p.style1', { style: 'fade-in', speed: 1500, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text12', { style: 'fade-in', speed: 1500, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text04', { style: 'fade-in', speed: 1500, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text05', { style: 'fade-in', speed: 1500, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text15', { style: 'fade-in', speed: 1500, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text03', { style: 'fade-in', speed: 1500, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text16', { style: 'fade-in', speed: 1500, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text17', { style: 'fade-in', speed: 1500, intensity: 5, threshold: 3, delay: 0, replay: false });onvisible.add('#text06', { style: 'fade-in', speed: 1500, intensity: 5, threshold: 3, delay: 0, replay: false });ready.run();})();</script></body></html>