diff --git a/resources/views/templates/neler-yapariz.blade.php b/resources/views/templates/neler-yapariz.blade.php
index 1f1a13b..ee867a2 100644
--- a/resources/views/templates/neler-yapariz.blade.php
+++ b/resources/views/templates/neler-yapariz.blade.php
@@ -3,5712 +3,82 @@
@section('title', t('Neler Yapıyoruz?') ?: 'Neler Yapıyoruz?')
@push('styles')
-
+@include('templates.neler-yapariz.external-links')
+
+
@endpush
-
-
-
-
-
-
-
-
@section('content')
-
Flip
Scroll Trigger
Slider
Inertia
Text Effects
Marquee
-
+@include('templates.neler-yapariz.navigation')
+
+
@endsection
@push('scripts')
-
-
-
-
-
-
-
-
-
-
+@include('templates.neler-yapariz.external-scripts')
+
+{{-- Navigation Scripts --}}
+
- const initScroll = () => {
- lenis = new Lenis({});
- lenis.on("scroll", ScrollTrigger.update);
- gsap.ticker.add((time) => lenis.raf(time * 1000));
- gsap.ticker.lagSmoothing(0);
- };
+{{-- Hero Script --}}
+
- function initGsapGlobal() {
- /** Do everything that needs to happen
- * before triggering all
- * the gsap animations */
+{{-- Section Scripts --}}
+
+
+
+
+
+
- initScroll();
+{{-- Footer Scripts --}}
+
+
- // match reduced motion media
- // const media = gsap.matchMedia();
-
- /** Send a custom
- * event to all your
- * gsap animations
- * to start them */
-
- const sendGsapEvent = () => {
- window.dispatchEvent(
- new CustomEvent("GSAPReady", {
- detail: {
- lenis,
- },
- })
- );
- };
-
- // Check if fonts are already loaded
- if (document.fonts.status === "loaded") {
- sendGsapEvent();
- } else {
- document.fonts.ready.then(() => {
- sendGsapEvent();
- });
- }
-
- /** We need specific handling because the
- * grid/list changes the scroll height of the whole container
- */
-
- let resizeTimeout;
- const onResize = () => {
- clearTimeout(resizeTimeout);
- resizeTimeout = setTimeout(() => {
- ScrollTrigger.refresh();
- }, 50);
- };
-
- window.addEventListener("resize", () => onResize());
- const resizeObserver = new ResizeObserver((entries) => onResize());
- resizeObserver.observe(document.body);
-
- queueMicrotask(() => {
- gsap.to("[data-start='hidden']", {
- autoAlpha: 1,
- duration: 0.1,
- delay: 0.2,
- });
- });
- }
-
- // this only for dev
- const documentReady =
- document.readyState === "complete" || document.readyState === "interactive";
-
- if (documentReady) {
- initGsapGlobal();
- } else {
- addEventListener("DOMContentLoaded", (event) => initGsapGlobal());
- }
-}
+{{-- Global Scripts --}}
+
@endpush
diff --git a/resources/views/templates/neler-yapariz/css/additional.css b/resources/views/templates/neler-yapariz/css/additional.css
new file mode 100644
index 0000000..5744b93
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/css/additional.css
@@ -0,0 +1,132 @@
+
+/** Text Highlight */
+::selection {
+ background: var(--primary);
+ color: var(--secondary);
+ text-shadow: none;
+}
+
+::-moz-selection {
+ background: var(--primary);
+ color: var(--secondary);
+ text-shadow: none;
+}
+
+[data-select="inverse"] ::selection {
+ background: var(--secondary);
+ color: var(--primary);
+ text-shadow: none;
+}
+
+[data-select="inverse"] ::-moz-selection {
+ background: var(--secondary);
+ color: var(--primary);
+ text-shadow: none;
+}
+
+/** Font Smoothing */
+body {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/** Toggle States */
+[data-css="toggle"] {
+ .toggle-ball {
+ transform: translateX(0%);
+ transition: transform .3s ease-out;
+ }
+}
+
+[data-css="toggle"]:has(input:checked) {
+ .toggle-ball {
+ transform: translateX(100%);
+ background-color: #10CD00;
+ border-color: #10CD00;
+ }
+}
+
+img {
+ user-drag: none;
+ -webkit-user-drag: none;
+ user-select: none;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ }
+
+/* -- explainer css */
+/* -- explainer css */
+[data-css="explainer"] {
+ .explainer-expandable-w {
+ display: grid;
+ grid-template-columns: 1fr;
+ grid-template-rows: 0fr;
+ transition: grid-template-rows 0.5s;
+ }
+
+ .plus-icon-w {
+ transform: rotate(0deg);
+ transition: transform 0.4s ease-in-out;
+ }
+
+ .plus-icon-w > div:nth-child(1) {
+ transform: scaleX(1);
+ transition: transform 0.4s ease-in-out;
+ }
+}
+
+[data-css="explainer"]:has(input:checked) {
+ .explainer-expandable-w {
+ display: grid;
+ grid-template-rows: 1fr;
+ }
+
+ .plus-icon-w {
+ transform: rotate(90deg);
+ }
+
+ .plus-icon-w > div:nth-child(1) {
+ transform: scaleX(0);
+ }
+}
+
+@media (max-width: 599px)
+{
+[data-css="explainer"] {
+ .explainer-expandable-w {
+ display: grid;
+ grid-template-columns: 1fr;
+ grid-template-rows: 1fr;
+ transition: grid-template-rows 0.5s;
+ }
+}
+}
+
+/** -- toggle styles */
+[data-css="toggle"] {
+ position: relative;
+
+ .toggle-slider {
+ box-shadow: inset 2px 2px 4px rgba(0, 0, 0, 0.25);
+ }
+
+ .toggle-ball {
+ box-shadow: inset 0px 2px 4px rgba(0, 0, 0, 0.15);
+ }
+}
+
+/* -- sky hero mask */
+.sky-hero-w {
+ clip-path: polygon(20% 13%, 65% 14%, 63% 90%, 20% 84%);
+}
+
+/* -- slider current style */
+[data-animate="slider"] {
+ .current > div {
+ background-color: var(--green);
+ transition: background-color 0.3s ease-in-out 0.2s;
+ }
+}
+
+
diff --git a/resources/views/templates/neler-yapariz/css/main.css b/resources/views/templates/neler-yapariz/css/main.css
new file mode 100644
index 0000000..998b6dd
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/css/main.css
@@ -0,0 +1,4047 @@
+
+html {
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+ font-family: sans-serif
+}
+
+body {
+ margin: 0
+}
+
+article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary {
+ display: block
+}
+
+audio,canvas,progress,video {
+ vertical-align: baseline;
+ display: inline-block
+}
+
+audio:not([controls]) {
+ height: 0;
+ display: none
+}
+
+[hidden],template {
+ display: none
+}
+
+a {
+ background-color: #0000
+}
+
+a:active,a:hover {
+ outline: 0
+}
+
+abbr[title] {
+ border-bottom: 1px dotted
+}
+
+b,strong {
+ font-weight: 700
+}
+
+dfn {
+ font-style: italic
+}
+
+h1 {
+ margin: .67em 0;
+ font-size: 2em
+}
+
+mark {
+ color: #000;
+ background: #ff0
+}
+
+small {
+ font-size: 80%
+}
+
+sub,sup {
+ vertical-align: baseline;
+ font-size: 75%;
+ line-height: 0;
+ position: relative
+}
+
+sup {
+ top: -.5em
+}
+
+sub {
+ bottom: -.25em
+}
+
+img {
+ border: 0
+}
+
+svg:not(:root) {
+ overflow: hidden
+}
+
+hr {
+ box-sizing: content-box;
+ height: 0
+}
+
+pre {
+ overflow: auto
+}
+
+code,kbd,pre,samp {
+ font-family: monospace;
+ font-size: 1em
+}
+
+button,input,optgroup,select,textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0
+}
+
+button {
+ overflow: visible
+}
+
+button,select {
+ text-transform: none
+}
+
+button,html input[type=button],input[type=reset] {
+ -webkit-appearance: button;
+ cursor: pointer
+}
+
+button[disabled],html input[disabled] {
+ cursor: default
+}
+
+button::-moz-focus-inner,input::-moz-focus-inner {
+ border: 0;
+ padding: 0
+}
+
+input {
+ line-height: normal
+}
+
+input[type=checkbox],input[type=radio] {
+ box-sizing: border-box;
+ padding: 0
+}
+
+input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button {
+ height: auto
+}
+
+input[type=search] {
+ -webkit-appearance: none
+}
+
+input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration {
+ -webkit-appearance: none
+}
+
+legend {
+ border: 0;
+ padding: 0
+}
+
+textarea {
+ overflow: auto
+}
+
+optgroup {
+ font-weight: 700
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0
+}
+
+td,th {
+ padding: 0
+}
+
+@font-face {
+ font-family: webflow-icons;
+ src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBiUAAAC8AAAAYGNtYXDpP+a4AAABHAAAAFxnYXNwAAAAEAAAAXgAAAAIZ2x5ZmhS2XEAAAGAAAADHGhlYWQTFw3HAAAEnAAAADZoaGVhCXYFgQAABNQAAAAkaG10eCe4A1oAAAT4AAAAMGxvY2EDtALGAAAFKAAAABptYXhwABAAPgAABUQAAAAgbmFtZSoCsMsAAAVkAAABznBvc3QAAwAAAAAHNAAAACAAAwP4AZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpAwPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAQAAAAAwACAACAAQAAQAg5gPpA//9//8AAAAAACDmAOkA//3//wAB/+MaBBcIAAMAAQAAAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEBIAAAAyADgAAFAAAJAQcJARcDIP5AQAGA/oBAAcABwED+gP6AQAABAOAAAALgA4AABQAAEwEXCQEH4AHAQP6AAYBAAcABwED+gP6AQAAAAwDAAOADQALAAA8AHwAvAAABISIGHQEUFjMhMjY9ATQmByEiBh0BFBYzITI2PQE0JgchIgYdARQWMyEyNj0BNCYDIP3ADRMTDQJADRMTDf3ADRMTDQJADRMTDf3ADRMTDQJADRMTAsATDSANExMNIA0TwBMNIA0TEw0gDRPAEw0gDRMTDSANEwAAAAABAJ0AtAOBApUABQAACQIHCQEDJP7r/upcAXEBcgKU/usBFVz+fAGEAAAAAAL//f+9BAMDwwAEAAkAABcBJwEXAwE3AQdpA5ps/GZsbAOabPxmbEMDmmz8ZmwDmvxmbAOabAAAAgAA/8AEAAPAAB0AOwAABSInLgEnJjU0Nz4BNzYzMTIXHgEXFhUUBw4BBwYjNTI3PgE3NjU0Jy4BJyYjMSIHDgEHBhUUFx4BFxYzAgBqXV6LKCgoKIteXWpqXV6LKCgoKIteXWpVSktvICEhIG9LSlVVSktvICEhIG9LSlVAKCiLXl1qal1eiygoKCiLXl1qal1eiygoZiEgb0tKVVVKS28gISEgb0tKVVVKS28gIQABAAABwAIAA8AAEgAAEzQ3PgE3NjMxFSIHDgEHBhUxIwAoKIteXWpVSktvICFmAcBqXV6LKChmISBvS0pVAAAAAgAA/8AFtgPAADIAOgAAARYXHgEXFhUUBw4BBwYHIxUhIicuAScmNTQ3PgE3NjMxOAExNDc+ATc2MzIXHgEXFhcVATMJATMVMzUEjD83NlAXFxYXTjU1PQL8kz01Nk8XFxcXTzY1PSIjd1BQWlJJSXInJw3+mdv+2/7c25MCUQYcHFg5OUA/ODlXHBwIAhcXTzY1PTw1Nk8XF1tQUHcjIhwcYUNDTgL+3QFt/pOTkwABAAAAAQAAmM7nP18PPPUACwQAAAAAANciZKUAAAAA1yJkpf/9/70FtgPDAAAACAACAAAAAAAAAAEAAAPA/8AAAAW3//3//QW2AAEAAAAAAAAAAAAAAAAAAAAMBAAAAAAAAAAAAAAAAgAAAAQAASAEAADgBAAAwAQAAJ0EAP/9BAAAAAQAAAAFtwAAAAAAAAAKABQAHgAyAEYAjACiAL4BFgE2AY4AAAABAAAADAA8AAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADQAAAAEAAAAAAAIABwCWAAEAAAAAAAMADQBIAAEAAAAAAAQADQCrAAEAAAAAAAUACwAnAAEAAAAAAAYADQBvAAEAAAAAAAoAGgDSAAMAAQQJAAEAGgANAAMAAQQJAAIADgCdAAMAAQQJAAMAGgBVAAMAAQQJAAQAGgC4AAMAAQQJAAUAFgAyAAMAAQQJAAYAGgB8AAMAAQQJAAoANADsd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQByd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==)format("truetype");
+ font-weight: 400;
+ font-style: normal
+}
+
+[class^=w-icon-],[class*=\ w-icon-] {
+ speak: none;
+ font-variant: normal;
+ text-transform: none;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1;
+ font-family: webflow-icons!important
+}
+
+.w-icon-slider-right:before {
+ content: ""
+}
+
+.w-icon-slider-left:before {
+ content: ""
+}
+
+.w-icon-nav-menu:before {
+ content: ""
+}
+
+.w-icon-arrow-down:before,.w-icon-dropdown-toggle:before {
+ content: ""
+}
+
+.w-icon-file-upload-remove:before {
+ content: ""
+}
+
+.w-icon-file-upload-icon:before {
+ content: ""
+}
+
+* {
+ box-sizing: border-box
+}
+
+html {
+ height: 100%
+}
+
+body {
+ color: #333;
+ background-color: #fff;
+ min-height: 100%;
+ margin: 0;
+ font-family: Arial,sans-serif;
+ font-size: 14px;
+ line-height: 20px
+}
+
+img {
+ vertical-align: middle;
+ max-width: 100%;
+ display: inline-block
+}
+
+html.w-mod-touch * {
+ background-attachment: scroll!important
+}
+
+.w-block {
+ display: block
+}
+
+.w-inline-block {
+ max-width: 100%;
+ display: inline-block
+}
+
+.w-clearfix:before,.w-clearfix:after {
+ content: " ";
+ grid-area: 1/1/2/2;
+ display: table
+}
+
+.w-clearfix:after {
+ clear: both
+}
+
+.w-hidden {
+ display: none
+}
+
+.w-button {
+ color: #fff;
+ line-height: inherit;
+ cursor: pointer;
+ background-color: #3898ec;
+ border: 0;
+ border-radius: 0;
+ padding: 9px 15px;
+ text-decoration: none;
+ display: inline-block
+}
+
+input.w-button {
+ -webkit-appearance: button
+}
+
+html[data-w-dynpage] [data-w-cloak] {
+ color: #0000!important
+}
+
+.w-code-block {
+ margin: unset
+}
+
+pre.w-code-block code {
+ all: inherit
+}
+
+.w-optimization {
+ display: contents
+}
+
+.w-webflow-badge,.w-webflow-badge>img {
+ box-sizing: unset;
+ width: unset;
+ height: unset;
+ max-height: unset;
+ max-width: unset;
+ min-height: unset;
+ min-width: unset;
+ margin: unset;
+ padding: unset;
+ float: unset;
+ clear: unset;
+ border: unset;
+ border-radius: unset;
+ background: unset;
+ background-image: unset;
+ background-position: unset;
+ background-size: unset;
+ background-repeat: unset;
+ background-origin: unset;
+ background-clip: unset;
+ background-attachment: unset;
+ background-color: unset;
+ box-shadow: unset;
+ transform: unset;
+ direction: unset;
+ font-family: unset;
+ font-weight: unset;
+ color: unset;
+ font-size: unset;
+ line-height: unset;
+ font-style: unset;
+ font-variant: unset;
+ text-align: unset;
+ letter-spacing: unset;
+ -webkit-text-decoration: unset;
+ text-decoration: unset;
+ text-indent: unset;
+ text-transform: unset;
+ list-style-type: unset;
+ text-shadow: unset;
+ vertical-align: unset;
+ cursor: unset;
+ white-space: unset;
+ word-break: unset;
+ word-spacing: unset;
+ word-wrap: unset;
+ transition: unset
+}
+
+.w-webflow-badge {
+ white-space: nowrap;
+ cursor: pointer;
+ box-shadow: 0 0 0 1px #0000001a,0 1px 3px #0000001a;
+ visibility: visible!important;
+ opacity: 1!important;
+ z-index: 2147483647!important;
+ color: #aaadb0!important;
+ overflow: unset!important;
+ background-color: #fff!important;
+ border-radius: 3px!important;
+ width: auto!important;
+ height: auto!important;
+ margin: 0!important;
+ padding: 6px!important;
+ font-size: 12px!important;
+ line-height: 14px!important;
+ text-decoration: none!important;
+ display: inline-block!important;
+ position: fixed!important;
+ inset: auto 12px 12px auto!important;
+ transform: none!important
+}
+
+.w-webflow-badge>img {
+ position: unset;
+ visibility: unset!important;
+ opacity: 1!important;
+ vertical-align: middle!important;
+ display: inline-block!important
+}
+
+h1,h2,h3,h4,h5,h6 {
+ margin-bottom: 10px;
+ font-weight: 700
+}
+
+h1 {
+ margin-top: 20px;
+ font-size: 38px;
+ line-height: 44px
+}
+
+h2 {
+ margin-top: 20px;
+ font-size: 32px;
+ line-height: 36px
+}
+
+h3 {
+ margin-top: 20px;
+ font-size: 24px;
+ line-height: 30px
+}
+
+h4 {
+ margin-top: 10px;
+ font-size: 18px;
+ line-height: 24px
+}
+
+h5 {
+ margin-top: 10px;
+ font-size: 14px;
+ line-height: 20px
+}
+
+h6 {
+ margin-top: 10px;
+ font-size: 12px;
+ line-height: 18px
+}
+
+p {
+ margin-top: 0;
+ margin-bottom: 10px
+}
+
+blockquote {
+ border-left: 5px solid #e2e2e2;
+ margin: 0 0 10px;
+ padding: 10px 20px;
+ font-size: 18px;
+ line-height: 22px
+}
+
+figure {
+ margin: 0 0 10px
+}
+
+figcaption {
+ text-align: center;
+ margin-top: 5px
+}
+
+ul,ol {
+ margin-top: 0;
+ margin-bottom: 10px;
+ padding-left: 40px
+}
+
+.w-list-unstyled {
+ padding-left: 0;
+ list-style: none
+}
+
+.w-embed:before,.w-embed:after {
+ content: " ";
+ grid-area: 1/1/2/2;
+ display: table
+}
+
+.w-embed:after {
+ clear: both
+}
+
+.w-video {
+ width: 100%;
+ padding: 0;
+ position: relative
+}
+
+.w-video iframe,.w-video object,.w-video embed {
+ border: none;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0
+}
+
+fieldset {
+ border: 0;
+ margin: 0;
+ padding: 0
+}
+
+button,[type=button],[type=reset] {
+ cursor: pointer;
+ -webkit-appearance: button;
+ border: 0
+}
+
+.w-form {
+ margin: 0 0 15px
+}
+
+.w-form-done {
+ text-align: center;
+ background-color: #ddd;
+ padding: 20px;
+ display: none
+}
+
+.w-form-fail {
+ background-color: #ffdede;
+ margin-top: 10px;
+ padding: 10px;
+ display: none
+}
+
+label {
+ margin-bottom: 5px;
+ font-weight: 700;
+ display: block
+}
+
+.w-input,.w-select {
+ color: #333;
+ vertical-align: middle;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ width: 100%;
+ height: 38px;
+ margin-bottom: 10px;
+ padding: 8px 12px;
+ font-size: 14px;
+ line-height: 1.42857;
+ display: block
+}
+
+.w-input::placeholder,.w-select::placeholder {
+ color: #999
+}
+
+.w-input:focus,.w-select:focus {
+ border-color: #3898ec;
+ outline: 0
+}
+
+.w-input[disabled],.w-select[disabled],.w-input[readonly],.w-select[readonly],fieldset[disabled] .w-input,fieldset[disabled] .w-select {
+ cursor: not-allowed
+}
+
+.w-input[disabled]:not(.w-input-disabled),.w-select[disabled]:not(.w-input-disabled),.w-input[readonly],.w-select[readonly],fieldset[disabled]:not(.w-input-disabled) .w-input,fieldset[disabled]:not(.w-input-disabled) .w-select {
+ background-color: #eee
+}
+
+textarea.w-input,textarea.w-select {
+ height: auto
+}
+
+.w-select {
+ background-color: #f3f3f3
+}
+
+.w-select[multiple] {
+ height: auto
+}
+
+.w-form-label {
+ cursor: pointer;
+ margin-bottom: 0;
+ font-weight: 400;
+ display: inline-block
+}
+
+.w-radio {
+ margin-bottom: 5px;
+ padding-left: 20px;
+ display: block
+}
+
+.w-radio:before,.w-radio:after {
+ content: " ";
+ grid-area: 1/1/2/2;
+ display: table
+}
+
+.w-radio:after {
+ clear: both
+}
+
+.w-radio-input {
+ float: left;
+ margin: 3px 0 0 -20px;
+ line-height: normal
+}
+
+.w-file-upload {
+ margin-bottom: 10px;
+ display: block
+}
+
+.w-file-upload-input {
+ opacity: 0;
+ z-index: -100;
+ width: .1px;
+ height: .1px;
+ position: absolute;
+ overflow: hidden
+}
+
+.w-file-upload-default,.w-file-upload-uploading,.w-file-upload-success {
+ color: #333;
+ display: inline-block
+}
+
+.w-file-upload-error {
+ margin-top: 10px;
+ display: block
+}
+
+.w-file-upload-default.w-hidden,.w-file-upload-uploading.w-hidden,.w-file-upload-error.w-hidden,.w-file-upload-success.w-hidden {
+ display: none
+}
+
+.w-file-upload-uploading-btn {
+ cursor: pointer;
+ background-color: #fafafa;
+ border: 1px solid #ccc;
+ margin: 0;
+ padding: 8px 12px;
+ font-size: 14px;
+ font-weight: 400;
+ display: flex
+}
+
+.w-file-upload-file {
+ background-color: #fafafa;
+ border: 1px solid #ccc;
+ flex-grow: 1;
+ justify-content: space-between;
+ margin: 0;
+ padding: 8px 9px 8px 11px;
+ display: flex
+}
+
+.w-file-upload-file-name {
+ font-size: 14px;
+ font-weight: 400;
+ display: block
+}
+
+.w-file-remove-link {
+ cursor: pointer;
+ width: auto;
+ height: auto;
+ margin-top: 3px;
+ margin-left: 10px;
+ padding: 3px;
+ display: block
+}
+
+.w-icon-file-upload-remove {
+ margin: auto;
+ font-size: 10px
+}
+
+.w-file-upload-error-msg {
+ color: #ea384c;
+ padding: 2px 0;
+ display: inline-block
+}
+
+.w-file-upload-info {
+ padding: 0 12px;
+ line-height: 38px;
+ display: inline-block
+}
+
+.w-file-upload-label {
+ cursor: pointer;
+ background-color: #fafafa;
+ border: 1px solid #ccc;
+ margin: 0;
+ padding: 8px 12px;
+ font-size: 14px;
+ font-weight: 400;
+ display: inline-block
+}
+
+.w-icon-file-upload-icon,.w-icon-file-upload-uploading {
+ width: 20px;
+ margin-right: 8px;
+ display: inline-block
+}
+
+.w-icon-file-upload-uploading {
+ height: 20px
+}
+
+.w-container {
+ max-width: 940px;
+ margin-left: auto;
+ margin-right: auto
+}
+
+.w-container:before,.w-container:after {
+ content: " ";
+ grid-area: 1/1/2/2;
+ display: table
+}
+
+.w-container:after {
+ clear: both
+}
+
+.w-container .w-row {
+ margin-left: -10px;
+ margin-right: -10px
+}
+
+.w-row:before,.w-row:after {
+ content: " ";
+ grid-area: 1/1/2/2;
+ display: table
+}
+
+.w-row:after {
+ clear: both
+}
+
+.w-row .w-row {
+ margin-left: 0;
+ margin-right: 0
+}
+
+.w-col {
+ float: left;
+ width: 100%;
+ min-height: 1px;
+ padding-left: 10px;
+ padding-right: 10px;
+ position: relative
+}
+
+.w-col .w-col {
+ padding-left: 0;
+ padding-right: 0
+}
+
+.w-col-1 {
+ width: 8.33333%
+}
+
+.w-col-2 {
+ width: 16.6667%
+}
+
+.w-col-3 {
+ width: 25%
+}
+
+.w-col-4 {
+ width: 33.3333%
+}
+
+.w-col-5 {
+ width: 41.6667%
+}
+
+.w-col-6 {
+ width: 50%
+}
+
+.w-col-7 {
+ width: 58.3333%
+}
+
+.w-col-8 {
+ width: 66.6667%
+}
+
+.w-col-9 {
+ width: 75%
+}
+
+.w-col-10 {
+ width: 83.3333%
+}
+
+.w-col-11 {
+ width: 91.6667%
+}
+
+.w-col-12 {
+ width: 100%
+}
+
+.w-hidden-main {
+ display: none!important
+}
+
+@media screen and (max-width: 991px) {
+ .w-container {
+ max-width:728px
+ }
+
+ .w-hidden-main {
+ display: inherit!important
+ }
+
+ .w-hidden-medium {
+ display: none!important
+ }
+
+ .w-col-medium-1 {
+ width: 8.33333%
+ }
+
+ .w-col-medium-2 {
+ width: 16.6667%
+ }
+
+ .w-col-medium-3 {
+ width: 25%
+ }
+
+ .w-col-medium-4 {
+ width: 33.3333%
+ }
+
+ .w-col-medium-5 {
+ width: 41.6667%
+ }
+
+ .w-col-medium-6 {
+ width: 50%
+ }
+
+ .w-col-medium-7 {
+ width: 58.3333%
+ }
+
+ .w-col-medium-8 {
+ width: 66.6667%
+ }
+
+ .w-col-medium-9 {
+ width: 75%
+ }
+
+ .w-col-medium-10 {
+ width: 83.3333%
+ }
+
+ .w-col-medium-11 {
+ width: 91.6667%
+ }
+
+ .w-col-medium-12 {
+ width: 100%
+ }
+
+ .w-col-stack {
+ width: 100%;
+ left: auto;
+ right: auto
+ }
+}
+
+@media screen and (max-width: 767px) {
+ .w-hidden-main,.w-hidden-medium {
+ display:inherit!important
+ }
+
+ .w-hidden-small {
+ display: none!important
+ }
+
+ .w-row,.w-container .w-row {
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .w-col {
+ width: 100%;
+ left: auto;
+ right: auto
+ }
+
+ .w-col-small-1 {
+ width: 8.33333%
+ }
+
+ .w-col-small-2 {
+ width: 16.6667%
+ }
+
+ .w-col-small-3 {
+ width: 25%
+ }
+
+ .w-col-small-4 {
+ width: 33.3333%
+ }
+
+ .w-col-small-5 {
+ width: 41.6667%
+ }
+
+ .w-col-small-6 {
+ width: 50%
+ }
+
+ .w-col-small-7 {
+ width: 58.3333%
+ }
+
+ .w-col-small-8 {
+ width: 66.6667%
+ }
+
+ .w-col-small-9 {
+ width: 75%
+ }
+
+ .w-col-small-10 {
+ width: 83.3333%
+ }
+
+ .w-col-small-11 {
+ width: 91.6667%
+ }
+
+ .w-col-small-12 {
+ width: 100%
+ }
+}
+
+@media screen and (max-width: 479px) {
+ .w-container {
+ max-width:none
+ }
+
+ .w-hidden-main,.w-hidden-medium,.w-hidden-small {
+ display: inherit!important
+ }
+
+ .w-hidden-tiny {
+ display: none!important
+ }
+
+ .w-col {
+ width: 100%
+ }
+
+ .w-col-tiny-1 {
+ width: 8.33333%
+ }
+
+ .w-col-tiny-2 {
+ width: 16.6667%
+ }
+
+ .w-col-tiny-3 {
+ width: 25%
+ }
+
+ .w-col-tiny-4 {
+ width: 33.3333%
+ }
+
+ .w-col-tiny-5 {
+ width: 41.6667%
+ }
+
+ .w-col-tiny-6 {
+ width: 50%
+ }
+
+ .w-col-tiny-7 {
+ width: 58.3333%
+ }
+
+ .w-col-tiny-8 {
+ width: 66.6667%
+ }
+
+ .w-col-tiny-9 {
+ width: 75%
+ }
+
+ .w-col-tiny-10 {
+ width: 83.3333%
+ }
+
+ .w-col-tiny-11 {
+ width: 91.6667%
+ }
+
+ .w-col-tiny-12 {
+ width: 100%
+ }
+}
+
+.w-widget {
+ position: relative
+}
+
+.w-widget-map {
+ width: 100%;
+ height: 400px
+}
+
+.w-widget-map label {
+ width: auto;
+ display: inline
+}
+
+.w-widget-map img {
+ max-width: inherit
+}
+
+.w-widget-map .gm-style-iw {
+ text-align: center
+}
+
+.w-widget-map .gm-style-iw>button {
+ display: none!important
+}
+
+.w-widget-twitter {
+ overflow: hidden
+}
+
+.w-widget-twitter-count-shim {
+ vertical-align: top;
+ text-align: center;
+ background: #fff;
+ border: 1px solid #758696;
+ border-radius: 3px;
+ width: 28px;
+ height: 20px;
+ display: inline-block;
+ position: relative
+}
+
+.w-widget-twitter-count-shim * {
+ pointer-events: none;
+ -webkit-user-select: none;
+ user-select: none
+}
+
+.w-widget-twitter-count-shim .w-widget-twitter-count-inner {
+ text-align: center;
+ color: #999;
+ font-family: serif;
+ font-size: 15px;
+ line-height: 12px;
+ position: relative
+}
+
+.w-widget-twitter-count-shim .w-widget-twitter-count-clear {
+ display: block;
+ position: relative
+}
+
+.w-widget-twitter-count-shim.w--large {
+ width: 36px;
+ height: 28px
+}
+
+.w-widget-twitter-count-shim.w--large .w-widget-twitter-count-inner {
+ font-size: 18px;
+ line-height: 18px
+}
+
+.w-widget-twitter-count-shim:not(.w--vertical) {
+ margin-left: 5px;
+ margin-right: 8px
+}
+
+.w-widget-twitter-count-shim:not(.w--vertical).w--large {
+ margin-left: 6px
+}
+
+.w-widget-twitter-count-shim:not(.w--vertical):before,.w-widget-twitter-count-shim:not(.w--vertical):after {
+ content: " ";
+ pointer-events: none;
+ border: solid #0000;
+ width: 0;
+ height: 0;
+ position: absolute;
+ top: 50%;
+ left: 0
+}
+
+.w-widget-twitter-count-shim:not(.w--vertical):before {
+ border-width: 4px;
+ border-color: #75869600 #5d6c7b #75869600 #75869600;
+ margin-top: -4px;
+ margin-left: -9px
+}
+
+.w-widget-twitter-count-shim:not(.w--vertical).w--large:before {
+ border-width: 5px;
+ margin-top: -5px;
+ margin-left: -10px
+}
+
+.w-widget-twitter-count-shim:not(.w--vertical):after {
+ border-width: 4px;
+ border-color: #fff0 #fff #fff0 #fff0;
+ margin-top: -4px;
+ margin-left: -8px
+}
+
+.w-widget-twitter-count-shim:not(.w--vertical).w--large:after {
+ border-width: 5px;
+ margin-top: -5px;
+ margin-left: -9px
+}
+
+.w-widget-twitter-count-shim.w--vertical {
+ width: 61px;
+ height: 33px;
+ margin-bottom: 8px
+}
+
+.w-widget-twitter-count-shim.w--vertical:before,.w-widget-twitter-count-shim.w--vertical:after {
+ content: " ";
+ pointer-events: none;
+ border: solid #0000;
+ width: 0;
+ height: 0;
+ position: absolute;
+ top: 100%;
+ left: 50%
+}
+
+.w-widget-twitter-count-shim.w--vertical:before {
+ border-width: 5px;
+ border-color: #5d6c7b #75869600 #75869600;
+ margin-left: -5px
+}
+
+.w-widget-twitter-count-shim.w--vertical:after {
+ border-width: 4px;
+ border-color: #fff #fff0 #fff0;
+ margin-left: -4px
+}
+
+.w-widget-twitter-count-shim.w--vertical .w-widget-twitter-count-inner {
+ font-size: 18px;
+ line-height: 22px
+}
+
+.w-widget-twitter-count-shim.w--vertical.w--large {
+ width: 76px
+}
+
+.w-background-video {
+ color: #fff;
+ height: 500px;
+ position: relative;
+ overflow: hidden
+}
+
+.w-background-video>video {
+ object-fit: cover;
+ z-index: -100;
+ background-position: 50%;
+ background-size: cover;
+ width: 100%;
+ height: 100%;
+ margin: auto;
+ position: absolute;
+ inset: -100%
+}
+
+.w-background-video>video::-webkit-media-controls-start-playback-button {
+ -webkit-appearance: none;
+ display: none!important
+}
+
+.w-background-video--control {
+ background-color: #0000;
+ padding: 0;
+ position: absolute;
+ bottom: 1em;
+ right: 1em
+}
+
+.w-background-video--control>[hidden] {
+ display: none!important
+}
+
+.w-slider {
+ text-align: center;
+ clear: both;
+ -webkit-tap-highlight-color: #0000;
+ tap-highlight-color: #0000;
+ background: #ddd;
+ height: 300px;
+ position: relative
+}
+
+.w-slider-mask {
+ z-index: 1;
+ white-space: nowrap;
+ height: 100%;
+ display: block;
+ position: relative;
+ left: 0;
+ right: 0;
+ overflow: hidden
+}
+
+.w-slide {
+ vertical-align: top;
+ white-space: normal;
+ text-align: left;
+ width: 100%;
+ height: 100%;
+ display: inline-block;
+ position: relative
+}
+
+.w-slider-nav {
+ z-index: 2;
+ text-align: center;
+ -webkit-tap-highlight-color: #0000;
+ tap-highlight-color: #0000;
+ height: 40px;
+ margin: auto;
+ padding-top: 10px;
+ position: absolute;
+ inset: auto 0 0
+}
+
+.w-slider-nav.w-round>div {
+ border-radius: 100%
+}
+
+.w-slider-nav.w-num>div {
+ font-size: inherit;
+ line-height: inherit;
+ width: auto;
+ height: auto;
+ padding: .2em .5em
+}
+
+.w-slider-nav.w-shadow>div {
+ box-shadow: 0 0 3px #3336
+}
+
+.w-slider-nav-invert {
+ color: #fff
+}
+
+.w-slider-nav-invert>div {
+ background-color: #2226
+}
+
+.w-slider-nav-invert>div.w-active {
+ background-color: #222
+}
+
+.w-slider-dot {
+ cursor: pointer;
+ background-color: #fff6;
+ width: 1em;
+ height: 1em;
+ margin: 0 3px .5em;
+ transition: background-color .1s,color .1s;
+ display: inline-block;
+ position: relative
+}
+
+.w-slider-dot.w-active {
+ background-color: #fff
+}
+
+.w-slider-dot:focus {
+ outline: none;
+ box-shadow: 0 0 0 2px #fff
+}
+
+.w-slider-dot:focus.w-active {
+ box-shadow: none
+}
+
+.w-slider-arrow-left,.w-slider-arrow-right {
+ cursor: pointer;
+ color: #fff;
+ -webkit-tap-highlight-color: #0000;
+ tap-highlight-color: #0000;
+ -webkit-user-select: none;
+ user-select: none;
+ width: 80px;
+ margin: auto;
+ font-size: 40px;
+ position: absolute;
+ inset: 0;
+ overflow: hidden
+}
+
+.w-slider-arrow-left [class^=w-icon-],.w-slider-arrow-right [class^=w-icon-],.w-slider-arrow-left [class*=\ w-icon-],.w-slider-arrow-right [class*=\ w-icon-] {
+ position: absolute
+}
+
+.w-slider-arrow-left:focus,.w-slider-arrow-right:focus {
+ outline: 0
+}
+
+.w-slider-arrow-left {
+ z-index: 3;
+ right: auto
+}
+
+.w-slider-arrow-right {
+ z-index: 4;
+ left: auto
+}
+
+.w-icon-slider-left,.w-icon-slider-right {
+ width: 1em;
+ height: 1em;
+ margin: auto;
+ inset: 0
+}
+
+.w-slider-aria-label {
+ clip: rect(0 0 0 0);
+ border: 0;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ position: absolute;
+ overflow: hidden
+}
+
+.w-slider-force-show {
+ display: block!important
+}
+
+.w-dropdown {
+ text-align: left;
+ z-index: 900;
+ margin-left: auto;
+ margin-right: auto;
+ display: inline-block;
+ position: relative
+}
+
+.w-dropdown-btn,.w-dropdown-toggle,.w-dropdown-link {
+ vertical-align: top;
+ color: #222;
+ text-align: left;
+ white-space: nowrap;
+ margin-left: auto;
+ margin-right: auto;
+ padding: 20px;
+ text-decoration: none;
+ position: relative
+}
+
+.w-dropdown-toggle {
+ -webkit-user-select: none;
+ user-select: none;
+ cursor: pointer;
+ padding-right: 40px;
+ display: inline-block
+}
+
+.w-dropdown-toggle:focus {
+ outline: 0
+}
+
+.w-icon-dropdown-toggle {
+ width: 1em;
+ height: 1em;
+ margin: auto 20px auto auto;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 0
+}
+
+.w-dropdown-list {
+ background: #ddd;
+ min-width: 100%;
+ display: none;
+ position: absolute
+}
+
+.w-dropdown-list.w--open {
+ display: block
+}
+
+.w-dropdown-link {
+ color: #222;
+ padding: 10px 20px;
+ display: block
+}
+
+.w-dropdown-link.w--current {
+ color: #0082f3
+}
+
+.w-dropdown-link:focus {
+ outline: 0
+}
+
+@media screen and (max-width: 767px) {
+ .w-nav-brand {
+ padding-left:10px
+ }
+}
+
+.w-lightbox-backdrop {
+ cursor: auto;
+ letter-spacing: normal;
+ text-indent: 0;
+ text-shadow: none;
+ text-transform: none;
+ visibility: visible;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+ color: #fff;
+ text-align: center;
+ z-index: 2000;
+ opacity: 0;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -webkit-tap-highlight-color: transparent;
+ background: #000000e6;
+ outline: 0;
+ font-family: Helvetica Neue,Helvetica,Ubuntu,Segoe UI,Verdana,sans-serif;
+ font-size: 17px;
+ font-style: normal;
+ font-weight: 300;
+ line-height: 1.2;
+ list-style: disc;
+ position: fixed;
+ inset: 0;
+ -webkit-transform: translate(0)
+}
+
+.w-lightbox-backdrop,.w-lightbox-container {
+ -webkit-overflow-scrolling: touch;
+ height: 100%;
+ overflow: auto
+}
+
+.w-lightbox-content {
+ height: 100vh;
+ position: relative;
+ overflow: hidden
+}
+
+.w-lightbox-view {
+ opacity: 0;
+ width: 100vw;
+ height: 100vh;
+ position: absolute
+}
+
+.w-lightbox-view:before {
+ content: "";
+ height: 100vh
+}
+
+.w-lightbox-group,.w-lightbox-group .w-lightbox-view,.w-lightbox-group .w-lightbox-view:before {
+ height: 86vh
+}
+
+.w-lightbox-frame,.w-lightbox-view:before {
+ vertical-align: middle;
+ display: inline-block
+}
+
+.w-lightbox-figure {
+ margin: 0;
+ position: relative
+}
+
+.w-lightbox-group .w-lightbox-figure {
+ cursor: pointer
+}
+
+.w-lightbox-img {
+ width: auto;
+ max-width: none;
+ height: auto
+}
+
+.w-lightbox-image {
+ float: none;
+ max-width: 100vw;
+ max-height: 100vh;
+ display: block
+}
+
+.w-lightbox-group .w-lightbox-image {
+ max-height: 86vh
+}
+
+.w-lightbox-caption {
+ text-align: left;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ background: #0006;
+ padding: .5em 1em;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ overflow: hidden
+}
+
+.w-lightbox-embed {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ inset: 0
+}
+
+.w-lightbox-control {
+ cursor: pointer;
+ background-position: 50%;
+ background-repeat: no-repeat;
+ background-size: 24px;
+ width: 4em;
+ transition: all .3s;
+ position: absolute;
+ top: 0
+}
+
+.w-lightbox-left {
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yMCAwIDI0IDQwIiB3aWR0aD0iMjQiIGhlaWdodD0iNDAiPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1KSI+PHBhdGggZD0ibTAgMGg1djIzaDIzdjVoLTI4eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDN2MjNoMjN2M2gtMjZ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg==);
+ display: none;
+ bottom: 0;
+ left: 0
+}
+
+.w-lightbox-right {
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMjQgNDAiIHdpZHRoPSIyNCIgaGVpZ2h0PSI0MCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMC0waDI4djI4aC01di0yM2gtMjN6IiBvcGFjaXR5PSIuNCIvPjxwYXRoIGQ9Im0xIDFoMjZ2MjZoLTN2LTIzaC0yM3oiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+);
+ display: none;
+ bottom: 0;
+ right: 0
+}
+
+.w-lightbox-close {
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMTggMTciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNyI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMCAwaDd2LTdoNXY3aDd2NWgtN3Y3aC01di03aC03eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDd2LTdoM3Y3aDd2M2gtN3Y3aC0zdi03aC03eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4=);
+ background-size: 18px;
+ height: 2.6em;
+ right: 0
+}
+
+.w-lightbox-strip {
+ white-space: nowrap;
+ padding: 0 1vh;
+ line-height: 0;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ overflow: auto hidden
+}
+
+.w-lightbox-item {
+ box-sizing: content-box;
+ cursor: pointer;
+ width: 10vh;
+ padding: 2vh 1vh;
+ display: inline-block;
+ -webkit-transform: translate(0,0)
+}
+
+.w-lightbox-active {
+ opacity: .3
+}
+
+.w-lightbox-thumbnail {
+ background: #222;
+ height: 10vh;
+ position: relative;
+ overflow: hidden
+}
+
+.w-lightbox-thumbnail-image {
+ position: absolute;
+ top: 0;
+ left: 0
+}
+
+.w-lightbox-thumbnail .w-lightbox-tall {
+ width: 100%;
+ top: 50%;
+ transform: translateY(-50%)
+}
+
+.w-lightbox-thumbnail .w-lightbox-wide {
+ height: 100%;
+ left: 50%;
+ transform: translate(-50%)
+}
+
+.w-lightbox-spinner {
+ box-sizing: border-box;
+ border: 5px solid #0006;
+ border-radius: 50%;
+ width: 40px;
+ height: 40px;
+ margin-top: -20px;
+ margin-left: -20px;
+ animation: .8s linear infinite spin;
+ position: absolute;
+ top: 50%;
+ left: 50%
+}
+
+.w-lightbox-spinner:after {
+ content: "";
+ border: 3px solid #0000;
+ border-bottom-color: #fff;
+ border-radius: 50%;
+ position: absolute;
+ inset: -4px
+}
+
+.w-lightbox-hide {
+ display: none
+}
+
+.w-lightbox-noscroll {
+ overflow: hidden
+}
+
+@media (min-width: 768px) {
+ .w-lightbox-content {
+ height:96vh;
+ margin-top: 2vh
+ }
+
+ .w-lightbox-view,.w-lightbox-view:before {
+ height: 96vh
+ }
+
+ .w-lightbox-group,.w-lightbox-group .w-lightbox-view,.w-lightbox-group .w-lightbox-view:before {
+ height: 84vh
+ }
+
+ .w-lightbox-image {
+ max-width: 96vw;
+ max-height: 96vh
+ }
+
+ .w-lightbox-group .w-lightbox-image {
+ max-width: 82.3vw;
+ max-height: 84vh
+ }
+
+ .w-lightbox-left,.w-lightbox-right {
+ opacity: .5;
+ display: block
+ }
+
+ .w-lightbox-close {
+ opacity: .8
+ }
+
+ .w-lightbox-control:hover {
+ opacity: 1
+ }
+}
+
+.w-lightbox-inactive,.w-lightbox-inactive:hover {
+ opacity: 0
+}
+
+.w-richtext:before,.w-richtext:after {
+ content: " ";
+ grid-area: 1/1/2/2;
+ display: table
+}
+
+.w-richtext:after {
+ clear: both
+}
+
+.w-richtext[contenteditable=true]:before,.w-richtext[contenteditable=true]:after {
+ white-space: initial
+}
+
+.w-richtext ol,.w-richtext ul {
+ overflow: hidden
+}
+
+.w-richtext .w-richtext-figure-selected.w-richtext-figure-type-video div:after,.w-richtext .w-richtext-figure-selected[data-rt-type=video] div:after,.w-richtext .w-richtext-figure-selected.w-richtext-figure-type-image div,.w-richtext .w-richtext-figure-selected[data-rt-type=image] div {
+ outline: 2px solid #2895f7
+}
+
+.w-richtext figure.w-richtext-figure-type-video>div:after,.w-richtext figure[data-rt-type=video]>div:after {
+ content: "";
+ display: none;
+ position: absolute;
+ inset: 0
+}
+
+.w-richtext figure {
+ max-width: 60%;
+ position: relative
+}
+
+.w-richtext figure>div:before {
+ cursor: default!important
+}
+
+.w-richtext figure img {
+ width: 100%
+}
+
+.w-richtext figure figcaption.w-richtext-figcaption-placeholder {
+ opacity: .6
+}
+
+.w-richtext figure div {
+ color: #0000;
+ font-size: 0
+}
+
+.w-richtext figure.w-richtext-figure-type-image,.w-richtext figure[data-rt-type=image] {
+ display: table
+}
+
+.w-richtext figure.w-richtext-figure-type-image>div,.w-richtext figure[data-rt-type=image]>div {
+ display: inline-block
+}
+
+.w-richtext figure.w-richtext-figure-type-image>figcaption,.w-richtext figure[data-rt-type=image]>figcaption {
+ caption-side: bottom;
+ display: table-caption
+}
+
+.w-richtext figure.w-richtext-figure-type-video,.w-richtext figure[data-rt-type=video] {
+ width: 60%;
+ height: 0
+}
+
+.w-richtext figure.w-richtext-figure-type-video iframe,.w-richtext figure[data-rt-type=video] iframe {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0
+}
+
+.w-richtext figure.w-richtext-figure-type-video>div,.w-richtext figure[data-rt-type=video]>div {
+ width: 100%
+}
+
+.w-richtext figure.w-richtext-align-center {
+ clear: both;
+ margin-left: auto;
+ margin-right: auto
+}
+
+.w-richtext figure.w-richtext-align-center.w-richtext-figure-type-image>div,.w-richtext figure.w-richtext-align-center[data-rt-type=image]>div {
+ max-width: 100%
+}
+
+.w-richtext figure.w-richtext-align-normal {
+ clear: both
+}
+
+.w-richtext figure.w-richtext-align-fullwidth {
+ text-align: center;
+ clear: both;
+ width: 100%;
+ max-width: 100%;
+ margin-left: auto;
+ margin-right: auto;
+ display: block
+}
+
+.w-richtext figure.w-richtext-align-fullwidth>div {
+ padding-bottom: inherit;
+ display: inline-block
+}
+
+.w-richtext figure.w-richtext-align-fullwidth>figcaption {
+ display: block
+}
+
+.w-richtext figure.w-richtext-align-floatleft {
+ float: left;
+ clear: none;
+ margin-right: 15px
+}
+
+.w-richtext figure.w-richtext-align-floatright {
+ float: right;
+ clear: none;
+ margin-left: 15px
+}
+
+.w-nav {
+ z-index: 1000;
+ background: #ddd;
+ position: relative
+}
+
+.w-nav:before,.w-nav:after {
+ content: " ";
+ grid-area: 1/1/2/2;
+ display: table
+}
+
+.w-nav:after {
+ clear: both
+}
+
+.w-nav-brand {
+ float: left;
+ color: #333;
+ text-decoration: none;
+ position: relative
+}
+
+.w-nav-link {
+ vertical-align: top;
+ color: #222;
+ text-align: left;
+ margin-left: auto;
+ margin-right: auto;
+ padding: 20px;
+ text-decoration: none;
+ display: inline-block;
+ position: relative
+}
+
+.w-nav-link.w--current {
+ color: #0082f3
+}
+
+.w-nav-menu {
+ float: right;
+ position: relative
+}
+
+[data-nav-menu-open] {
+ text-align: center;
+ background: #c8c8c8;
+ min-width: 200px;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ right: 0;
+ overflow: visible;
+ display: block!important
+}
+
+.w--nav-link-open {
+ display: block;
+ position: relative
+}
+
+.w-nav-overlay {
+ width: 100%;
+ display: none;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ right: 0;
+ overflow: hidden
+}
+
+.w-nav-overlay [data-nav-menu-open] {
+ top: 0
+}
+
+.w-nav[data-animation=over-left] .w-nav-overlay {
+ width: auto
+}
+
+.w-nav[data-animation=over-left] .w-nav-overlay,.w-nav[data-animation=over-left] [data-nav-menu-open] {
+ z-index: 1;
+ top: 0;
+ right: auto
+}
+
+.w-nav[data-animation=over-right] .w-nav-overlay {
+ width: auto
+}
+
+.w-nav[data-animation=over-right] .w-nav-overlay,.w-nav[data-animation=over-right] [data-nav-menu-open] {
+ z-index: 1;
+ top: 0;
+ left: auto
+}
+
+.w-nav-button {
+ float: right;
+ cursor: pointer;
+ -webkit-tap-highlight-color: #0000;
+ tap-highlight-color: #0000;
+ -webkit-user-select: none;
+ user-select: none;
+ padding: 18px;
+ font-size: 24px;
+ display: none;
+ position: relative
+}
+
+.w-nav-button:focus {
+ outline: 0
+}
+
+.w-nav-button.w--open {
+ color: #fff;
+ background-color: #c8c8c8
+}
+
+.w-nav[data-collapse=all] .w-nav-menu {
+ display: none
+}
+
+.w-nav[data-collapse=all] .w-nav-button,.w--nav-dropdown-open,.w--nav-dropdown-toggle-open {
+ display: block
+}
+
+.w--nav-dropdown-list-open {
+ position: static
+}
+
+@media screen and (max-width: 991px) {
+ .w-nav[data-collapse=medium] .w-nav-menu {
+ display:none
+ }
+
+ .w-nav[data-collapse=medium] .w-nav-button {
+ display: block
+ }
+}
+
+@media screen and (max-width: 767px) {
+ .w-nav[data-collapse=small] .w-nav-menu {
+ display:none
+ }
+
+ .w-nav[data-collapse=small] .w-nav-button {
+ display: block
+ }
+
+ .w-nav-brand {
+ padding-left: 10px
+ }
+}
+
+@media screen and (max-width: 479px) {
+ .w-nav[data-collapse=tiny] .w-nav-menu {
+ display:none
+ }
+
+ .w-nav[data-collapse=tiny] .w-nav-button {
+ display: block
+ }
+}
+
+.w-tabs {
+ position: relative
+}
+
+.w-tabs:before,.w-tabs:after {
+ content: " ";
+ grid-area: 1/1/2/2;
+ display: table
+}
+
+.w-tabs:after {
+ clear: both
+}
+
+.w-tab-menu {
+ position: relative
+}
+
+.w-tab-link {
+ vertical-align: top;
+ text-align: left;
+ cursor: pointer;
+ color: #222;
+ background-color: #ddd;
+ padding: 9px 30px;
+ text-decoration: none;
+ display: inline-block;
+ position: relative
+}
+
+.w-tab-link.w--current {
+ background-color: #c8c8c8
+}
+
+.w-tab-link:focus {
+ outline: 0
+}
+
+.w-tab-content {
+ display: block;
+ position: relative;
+ overflow: hidden
+}
+
+.w-tab-pane {
+ display: none;
+ position: relative
+}
+
+.w--tab-active {
+ display: block
+}
+
+@media screen and (max-width: 479px) {
+ .w-tab-link {
+ display:block
+ }
+}
+
+.w-ix-emptyfix:after {
+ content: ""
+}
+
+@keyframes spin {
+ 0% {
+ transform: rotate(0)
+ }
+
+ to {
+ transform: rotate(360deg)
+ }
+}
+
+.w-dyn-empty {
+ background-color: #ddd;
+ padding: 10px
+}
+
+.w-dyn-hide,.w-dyn-bind-empty,.w-condition-invisible {
+ display: none!important
+}
+
+.wf-layout-layout {
+ display: grid
+}
+
+@font-face {
+ font-family: Worksans;
+ src: url(https://cdn.prod.website-files.com/67fea42b19018db93e3fe132/6813a2147d83bc07155e2b60_WorkSans-Medium.woff2)format("woff2");
+ font-weight: 500;
+ font-style: normal;
+ font-display: block
+}
+
+@font-face {
+ font-family: Worksans;
+ src: url(https://cdn.prod.website-files.com/67fea42b19018db93e3fe132/6813a2142dbb0103e289fe9e_WorkSans-SemiBold.woff2)format("woff2");
+ font-weight: 600;
+ font-style: normal;
+ font-display: block
+}
+
+@font-face {
+ font-family: Worksans;
+ src: url(https://cdn.prod.website-files.com/67fea42b19018db93e3fe132/6813a2157720bd97a132290f_WorkSans-Regular.woff2)format("woff2");
+ font-weight: 400;
+ font-style: normal;
+ font-display: block
+}
+
+@font-face {
+ font-family: Anton;
+ src: url(https://cdn.prod.website-files.com/67fea42b19018db93e3fe132/6813a515c433b264204b6485_Anton-Regular.woff2)format("woff2");
+ font-weight: 400;
+ font-style: normal;
+ font-display: block
+}
+
+:root {
+ --secondary: #ffe9cf;
+ --primary: #270f03;
+ --y-base: 6rem;
+ --max-w: 1620px;
+ --nav-height: 3rem;
+ --rounded-1: .375rem;
+ --white: #fef8f1;
+ --green: #69e05f;
+ --rounded-xs: .2rem;
+ --light: #d9d9d9
+}
+
+body {
+ background-color: var(--secondary);
+ color: var(--primary);
+ letter-spacing: -.02em;
+ font-family: Worksans,Arial,sans-serif;
+ font-size: 14px;
+ line-height: 1.2em
+}
+
+.main {
+ min-height: 100svh
+}
+
+.sec {
+ padding-top: var(--y-base);
+ padding-bottom: var(--y-base);
+ flex-flow: column;
+ justify-content: center;
+ align-items: center;
+ min-height: 40svh;
+ display: flex;
+ position: relative
+}
+
+.sec.hero {
+ flex-flow: column;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100svh;
+ min-height: 100svh;
+ padding-top: 6rem;
+ padding-bottom: 3rem;
+ display: flex;
+ overflow: clip
+}
+
+.sec.scrolltrigger-sec {
+ flex-flow: column;
+ justify-content: flex-start;
+ align-items: center;
+ height: 400svh;
+ padding-top: 0;
+ padding-bottom: 0
+}
+
+.sec.utlis {
+ grid-column-gap: 3rem;
+ grid-row-gap: 3rem
+}
+
+.sec.reorganise {
+ justify-content: flex-start;
+ align-items: center
+}
+
+.sec.footer {
+ background-color: var(--primary);
+ padding-top: 7.25rem;
+ padding-bottom: 0
+}
+
+.sec.inertia {
+ overflow: clip
+}
+
+.comp {
+ max-width: var(--max-w);
+ grid-column-gap: 1.5rem;
+ grid-row-gap: 1.5rem;
+ flex-flow: column;
+ flex: none;
+ justify-content: center;
+ align-items: center;
+ width: 94%;
+ min-width: 20vw;
+ display: flex;
+ position: relative
+}
+
+.comp.text-exp {
+ grid-column-gap: 1.5rem;
+ grid-row-gap: 1.5rem;
+ flex-flow: wrap;
+ grid-template-rows: auto auto;
+ grid-template-columns: 1fr 1fr 1fr;
+ grid-auto-columns: 1fr;
+ width: 80%;
+ margin-bottom: 0;
+ padding-left: 0;
+ display: grid
+}
+
+.comp.slider-w {
+ width: 100%;
+ max-width: 100%;
+ overflow: clip
+}
+
+.comp.inertia {
+ flex-flow: row;
+ height: 60svh
+}
+
+.comp.footer {
+ grid-column-gap: 0rem;
+ grid-row-gap: 0rem;
+ color: var(--secondary);
+ width: 80%
+}
+
+.comp.toggle-w {
+ z-index: 3;
+ top: -10svh
+}
+
+.comp.scroller {
+ grid-column-gap: 0rem;
+ grid-row-gap: 0rem;
+ flex-flow: column;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ max-width: 100%;
+ font-family: Anton,Arial,sans-serif;
+ font-size: 20vw;
+ line-height: 1em;
+ overflow: clip
+}
+
+.comp.footer-logo {
+ color: var(--secondary);
+ width: 99%;
+ min-height: 20svh;
+ margin-top: 2rem
+}
+
+.comp.video {
+ max-width: 100%
+}
+
+.scroll-wrapper {
+ overflow: clip
+}
+
+.nav-w {
+ z-index: 20;
+ grid-column-gap: 1rem;
+ grid-row-gap: 1rem;
+ pointer-events: none;
+ flex-flow: column;
+ justify-content: center;
+ align-items: center;
+ display: flex;
+ position: fixed;
+ inset: 0% 0% auto
+}
+
+.nav {
+ grid-column-gap: 1.5rem;
+ grid-row-gap: 1.5rem;
+ pointer-events: auto;
+ justify-content: center;
+ align-items: center;
+ height: 100%;
+ padding-top: 1.25rem;
+ display: flex
+}
+
+.svg.gsap-logo {
+ aspect-ratio: 44/16;
+ width: 2.75em;
+ height: 1em
+}
+
+.svg._wf-logo {
+ aspect-ratio: 100/16;
+ width: 6.25em;
+ height: 1em
+}
+
+.svg.arrow-r {
+ width: 2em;
+ height: 1em
+}
+
+.svg.copy-icon {
+ width: 1rem;
+ height: 1rem
+}
+
+.svg.arrow:where(.w-variant-352da3df-a236-ccac-dbb8-8845a582a471) {
+ transform: rotate(180deg)
+}
+
+.svg.arrow.flip-2 {
+ transform: rotate(180deg)
+}
+
+.svg.arrow {
+ width: 2em
+}
+
+.svg.arrow.flip-4 {
+ transform: rotate(180deg)
+}
+
+.logo-banner-w {
+ grid-column-gap: .4rem;
+ grid-row-gap: .4rem;
+ font-size: 16px;
+ display: flex
+}
+
+.logo-banner-w.white {
+ color: var(--secondary);
+ font-size: 20px
+}
+
+.sub-nav-w {
+ grid-column-gap: 0rem;
+ grid-row-gap: 0rem;
+ pointer-events: auto;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+ font-size: 12px;
+ display: flex
+}
+
+.link-li-w {
+ opacity: .7;
+ pointer-events: auto;
+ text-transform: none;
+ cursor: pointer;
+ padding: .2rem .6rem;
+ transition: opacity .2s;
+ position: relative
+}
+
+.link-li-w:hover,.link-li-w.current {
+ opacity: 1
+}
+
+.link-li-w.footer {
+ color: var(--secondary);
+ text-decoration: none
+}
+
+.x-adjust-right {
+ padding-right: .2rem
+}
+
+.layer {
+ z-index: 0;
+ pointer-events: none;
+ justify-content: center;
+ align-items: center;
+ display: flex;
+ position: absolute;
+ inset: 0%
+}
+
+.layer.flex-b {
+ justify-content: center;
+ align-items: flex-end
+}
+
+.layer.flex-b.z-3 {
+ z-index: 3
+}
+
+.layer.hero-alt {
+ padding-top: var(--nav-height);
+ grid-column-gap: 1rem;
+ grid-row-gap: 1rem;
+ pointer-events: none;
+ visibility: hidden;
+ flex-flow: column;
+ flex: none;
+ grid-template-rows: auto auto;
+ grid-template-columns: 1fr 1fr 1fr;
+ grid-auto-columns: 1fr;
+ justify-content: center;
+ place-items: center stretch;
+ height: 100%;
+ padding-bottom: 3rem;
+ overflow: clip
+}
+
+.layer.hero-alt.show {
+ visibility: visible;
+ padding-left: 0;
+ padding-right: 0;
+ display: flex
+}
+
+.layer.hero-alt.show.old {
+ grid-column-gap: 1rem;
+ grid-row-gap: 1rem;
+ grid-template-rows: auto auto;
+ grid-template-columns: 1fr 1fr 1fr;
+ grid-auto-columns: 1fr;
+ display: grid
+}
+
+.text-g-item {
+ border-radius: var(--rounded-1);
+ background-color: #0000001a;
+ flex-flow: column;
+ padding-top: .5rem;
+ padding-left: .5rem;
+ padding-right: .5rem;
+ display: flex
+}
+
+.text-example-container {
+ aspect-ratio: 334/195;
+ border-radius: var(--rounded-1);
+ background-color: var(--primary);
+ color: var(--white);
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ display: flex
+}
+
+.text-example-tx-w {
+ justify-content: space-between;
+ align-items: center;
+ padding-top: .6rem;
+ padding-bottom: .6rem;
+ display: flex
+}
+
+.text-effect-tx {
+ font-family: Impact,Haettenschweiler,Franklin Gothic Bold,Charcoal,sans-serif;
+ font-size: 2rem;
+ font-weight: 600;
+ line-height: .9em
+}
+
+.text-effect-w {
+ padding-top: .2em;
+ padding-bottom: .2em
+}
+
+.font-c {
+ letter-spacing: -.025em;
+ text-transform: uppercase;
+ margin-top: 0;
+ margin-bottom: 0;
+ font-family: Anton,Arial,sans-serif;
+ font-weight: 400
+}
+
+.font-c.hero-text {
+ text-align: center;
+ letter-spacing: -.01em;
+ font-size: min(14vw,10rem);
+ font-weight: 400;
+ line-height: .95em
+}
+
+.font-c.size-screen {
+ font-size: 17vw;
+ line-height: 1em
+}
+
+.font-c.size-md {
+ font-size: 3.125rem;
+ line-height: 1em
+}
+
+.font-c.size-md._w-ch {
+ max-width: 8ch
+}
+
+.main-he-span {
+ display: inline-block;
+ overflow: clip
+}
+
+.btn-link {
+ border-radius: var(--rounded-1);
+ background-color: var(--primary);
+ color: var(--secondary);
+ cursor: pointer;
+ padding: .625rem 1rem;
+ font-size: 13px;
+ text-decoration: none;
+ transition: color .2s,border-color .2s,background-color .2s
+}
+
+.btn-link:hover {
+ background-color: var(--green);
+ outline-color: var(--green);
+ color: var(--primary)
+}
+
+.par-base {
+ text-align: center;
+ font-size: 1rem;
+ line-height: 1.375em
+}
+
+.par-base._w-ch {
+ max-width: 50ch
+}
+
+.sticky-w {
+ padding-top: var(--y-base);
+ padding-bottom: var(--y-base);
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100svh;
+ display: flex;
+ position: sticky;
+ top: 0
+}
+
+.sky-scroller {
+ max-width: var(--max-w);
+ border-radius: var(--rounded-1);
+ pointer-events: auto;
+ width: 70%;
+ height: 29rem;
+ overflow: clip
+}
+
+.img-sky {
+ object-fit: cover;
+ width: 100%;
+ height: 100%
+}
+
+.flip-item {
+ grid-column-gap: .6rem;
+ grid-row-gap: .6rem;
+ aspect-ratio: 389/193;
+ border-radius: var(--rounded-1);
+ outline-offset: 0px;
+ background-color: #00c5c5;
+ outline: 1px solid #0000000d;
+ flex-flow: column;
+ justify-content: space-between;
+ align-items: flex-start;
+ padding: 1.5rem;
+ display: flex;
+ position: relative;
+ overflow: clip
+}
+
+.flip-item.is-2 {
+ background-color: #ff812d
+}
+
+.flip-item.is-3 {
+ background-color: #f5c939
+}
+
+.flip-item.is-4 {
+ background-color: #ca9dfe
+}
+
+.flip-item.is-5 {
+ background-color: #7ae66a
+}
+
+.flip-item.is-6 {
+ background-color: #f897b4
+}
+
+.flip-list-w {
+ grid-column-gap: 1rem;
+ grid-row-gap: 1rem;
+ grid-template-rows: auto auto;
+ grid-template-columns: 1fr 1fr 1fr;
+ grid-auto-columns: 1fr;
+ width: 100%;
+ margin-bottom: 0;
+ padding-left: 0;
+ display: grid
+}
+
+.flip-list-w.list {
+ flex-flow: column;
+ grid-template-columns: 1fr 1fr 1fr;
+ justify-content: flex-start;
+ align-items: stretch;
+ width: 40%;
+ max-width: 30rem;
+ display: flex
+}
+
+.item-num {
+ border-radius: var(--rounded-xs);
+ background-color: #24281f1a;
+ padding: .2rem;
+ font-size: .625rem;
+ line-height: 1em
+}
+
+.abs-img {
+ justify-content: center;
+ align-items: center;
+ height: 88%;
+ display: flex;
+ position: absolute;
+ inset: auto 0% auto auto
+}
+
+.abs-img.smaller {
+ height: 80%
+}
+
+.abs-img.smaller.is--tomato {
+ padding-right: 1rem
+}
+
+.slide {
+ aspect-ratio: 708/490;
+ border-radius: var(--rounded-1);
+ background-color: #89dde4;
+ flex: none;
+ width: 52rem;
+ padding: 2.5rem;
+ display: flex;
+ overflow: clip
+}
+
+.slides {
+ cursor: grab;
+ flex-flow: row;
+ justify-content: center;
+ align-items: center;
+ display: flex
+}
+
+.slide-col {
+ flex: 1
+}
+
+.slide-col.flex-ve {
+ flex-flow: column;
+ justify-content: space-between;
+ display: flex
+}
+
+.slide-img {
+ object-fit: contain;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ display: flex
+}
+
+.slide-text-block {
+ grid-column-gap: 1rem;
+ grid-row-gap: 1rem;
+ flex-flow: column;
+ display: flex
+}
+
+.slide-outer {
+ flex: none;
+ padding-left: .75rem;
+ padding-right: .75rem;
+ position: relative
+}
+
+.explainer-w {
+ z-index: 5;
+ pointer-events: auto;
+ justify-content: flex-end;
+ align-items: center;
+ width: 94%;
+ height: 10rem;
+ margin-top: 3rem;
+ margin-bottom: 3rem;
+ display: flex;
+ position: relative
+}
+
+.explainer-comp {
+ border-radius: var(--rounded-1);
+ background-color: var(--white);
+ flex-flow: column;
+ flex: none;
+ justify-content: flex-start;
+ padding-bottom: .75rem;
+ padding-left: .75rem;
+ padding-right: .75rem;
+ display: flex;
+ position: absolute;
+ inset: 0% 0% auto auto
+}
+
+.explainer-he {
+ font-size: .875rem;
+ font-weight: 600
+}
+
+.btn {
+ background-color: #efefef00;
+ justify-content: center;
+ align-items: center;
+ width: 1.6rem;
+ height: 1.6rem;
+ padding: 0;
+ display: flex
+}
+
+.btn.copy {
+ border-radius: var(--rounded-1);
+ outline-offset: 0px;
+ cursor: pointer;
+ outline: 1px solid #141b1333;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ padding: .375rem .625rem;
+ transition: background-color .2s;
+ display: flex
+}
+
+.btn.flip-switch-btn {
+ width: auto;
+ height: auto;
+ padding: .4rem;
+ transition: color .2s,background-color .2s
+}
+
+.btn.flip-switch-btn.current {
+ border-radius: var(--rounded-1);
+ background-color: var(--primary);
+ pointer-events: none;
+ color: #ffe9cf;
+ pointer-events: none;
+ pointer-events: none;
+ background-color: #270f03;
+ border-radius: .375rem
+}
+
+.btn.slider-dot {
+ background-color: #270f031a;
+ border-radius: 100%;
+ width: 1rem;
+ height: 1rem;
+ transition: background-color .2s
+}
+
+.btn.slider-dot.current {
+ background-color: var(--primary);
+ background-color: #270f03
+}
+
+.btn.arrow {
+ border-radius: var(--rounded-1);
+ border: 1px solid #0003;
+ width: auto;
+ height: auto
+}
+
+.btn.copy {
+ outline-offset: 0px;
+ cursor: pointer;
+ border-radius: .375rem;
+ outline: 1px solid #141b1333;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ padding: .375rem .625rem;
+ transition: background-color .2s;
+ display: flex
+}
+
+.btn.copy:hover {
+ background-color: #69e05f
+}
+
+.btn.arrow {
+ border: 1px solid #0003;
+ border-radius: .375rem;
+ width: auto;
+ height: auto
+}
+
+.plus-icon-w {
+ aspect-ratio: 1;
+ outline-offset: 0px;
+ border-radius: 100%;
+ outline: 1px solid #270f03;
+ justify-content: center;
+ align-items: center;
+ width: 1em;
+ display: flex;
+ position: relative
+}
+
+.text-block {
+ font-weight: 400;
+ line-height: 1em
+}
+
+.btn-cent-w {
+ grid-column-gap: .8rem;
+ grid-row-gap: .8rem;
+ display: flex
+}
+
+.plus-line {
+ background-color: var(--primary);
+ width: 1px;
+ height: 50%;
+ position: absolute
+}
+
+.plus-line.rotate {
+ width: 50%;
+ height: 1px
+}
+
+.inertia-slide {
+ aspect-ratio: 517/439;
+ border-radius: var(--rounded-1);
+ background-color: #ff812df2;
+ flex: none;
+ justify-content: center;
+ align-items: center;
+ width: 50vw;
+ display: flex;
+ position: absolute
+}
+
+.img-full {
+ height: 100%
+}
+
+.toggle-w {
+ width: 18rem;
+ height: 10rem;
+ margin-bottom: 0;
+ position: relative
+}
+
+.toggle-html-input {
+ opacity: 0
+}
+
+.toggle-slider {
+ cursor: pointer;
+ background-color: #ffe9cf;
+ border: .55rem solid #ffe9cf;
+ border-radius: 10rem;
+ padding: .5rem;
+ display: flex;
+ position: absolute;
+ inset: 0%
+}
+
+.toggle-ball {
+ aspect-ratio: 1;
+ pointer-events: none;
+ background-color: #3875f9;
+ border: .4rem solid #3875f9;
+ border-radius: 100%;
+ width: 8rem;
+ transition: background-color .2s,border-color .2s
+}
+
+.explainer-expandable-w {
+ grid-column-gap: 16px;
+ grid-row-gap: 16px;
+ flex-flow: column;
+ grid-template-rows: auto auto;
+ grid-template-columns: 1fr 1fr;
+ grid-auto-columns: 1fr;
+ justify-content: flex-end;
+ display: flex
+}
+
+.explainer-overflow {
+ width: 100%;
+ overflow: hidden
+}
+
+.explainer-par {
+ max-width: 25ch;
+ margin-bottom: 0;
+ padding-top: .4rem;
+ padding-bottom: .4rem
+}
+
+.div {
+ cursor: pointer;
+ margin-bottom: 0;
+ padding-top: .4rem;
+ padding-bottom: .75rem;
+ position: relative
+}
+
+.input {
+ opacity: 0;
+ position: absolute
+}
+
+.span {
+ z-index: 2;
+ justify-content: space-between;
+ align-items: center;
+ display: flex;
+ position: relative
+}
+
+.footer-line {
+ justify-content: space-between;
+ width: 100%;
+ margin-top: 2rem;
+ display: flex
+}
+
+.footer-line.separator {
+ border-bottom: 1px solid #ffe9cf4d;
+ padding-bottom: 2rem
+}
+
+.col-half {
+ flex: none;
+ width: 50%;
+ display: flex
+}
+
+.col-half.items-r {
+ justify-content: flex-end;
+ align-items: flex-end
+}
+
+.op-70 {
+ grid-column-gap: 1rem;
+ grid-row-gap: 1rem;
+ opacity: .7;
+ display: flex
+}
+
+.op-7 {
+ opacity: .7;
+ color: #ffe9cf80
+}
+
+._w-ch {
+ max-width: 41ch
+}
+
+.sub-nav-bg {
+ background-color: var(--secondary);
+ color: var(--primary);
+ border-radius: .7rem;
+ padding: .4rem .3rem;
+ overflow: clip;
+ transform: translateY(-200%)
+}
+
+.sub-nav-bg.show {
+ transform: translate(0)
+}
+
+.current-highlight {
+ border: 1px solid var(--primary);
+ border-radius: var(--rounded-1);
+ position: absolute;
+ inset: 0%
+}
+
+.flip-btn-w {
+ grid-column-gap: .2rem;
+ grid-row-gap: .2rem;
+ margin-bottom: 2rem;
+ font-weight: 500;
+ display: flex
+}
+
+.ext-link {
+ color: var(--secondary);
+ cursor: pointer;
+ text-decoration: none
+}
+
+.slider-ctrls-w {
+ grid-column-gap: 2rem;
+ grid-row-gap: 2rem;
+ align-items: center;
+ display: flex
+}
+
+.dots-w {
+ grid-column-gap: 1rem;
+ grid-row-gap: 1rem;
+ margin-bottom: 0;
+ padding-left: 0;
+ display: flex
+}
+
+.arrow-btn {
+ justify-content: center;
+ align-items: center;
+ padding: .6875rem;
+ display: flex
+}
+
+.slider-progress-w {
+ background-color: #270f031a;
+ border-radius: 9rem;
+ min-width: 10rem;
+ height: 1em;
+ position: relative;
+ overflow: clip
+}
+
+.progress-bar {
+ background-color: var(--primary);
+ border-radius: 3rem;
+ width: 50%;
+ height: 100%
+}
+
+.toggle-slider-shadow {
+ background-color: var(--primary);
+ opacity: .4;
+ filter: blur(2px);
+ border-radius: 5rem;
+ position: absolute;
+ inset: 0%;
+ transform: translateY(15%)
+}
+
+.hero-running-w {
+ justify-content: center;
+ align-items: center;
+ height: 100%;
+ display: flex;
+ position: relative;
+ transform: scale(1.3)
+}
+
+.alpha-video.layered {
+ aspect-ratio: 1;
+ width: 140%;
+ position: absolute;
+ transform: scaleX(-1)
+}
+
+.hero-overlay-item {
+ pointer-events: auto;
+ justify-content: center;
+ align-items: center;
+ height: 70%;
+ display: flex
+}
+
+.hero-overlay-item.sky {
+ justify-content: center;
+ align-items: center;
+ display: flex;
+ position: relative
+}
+
+.hero-overlay-item.filler {
+ pointer-events: none
+}
+
+.sky-hero-w {
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ position: absolute
+}
+
+.img {
+ object-fit: cover;
+ width: 100%;
+ height: 100%
+}
+
+.img.layer-up {
+ z-index: 23;
+ position: relative
+}
+
+.img.scale-up {
+ transform: scale3d(1none,1none,1none);
+ transform-style: preserve-3d
+}
+
+.img.abs-top {
+ position: absolute;
+ inset: 0%
+}
+
+.img.abs-top.z-3 {
+ z-index: 3
+}
+
+.img.multiply {
+ opacity: .23;
+ mix-blend-mode: multiply
+}
+
+.hero-sky-w {
+ aspect-ratio: 303/259;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ display: flex;
+ position: relative
+}
+
+.hero-img-wrap {
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ position: relative
+}
+
+.swap-img {
+ width: 100%;
+ height: 100%
+}
+
+.swap-img.top {
+ object-fit: cover;
+ height: 80%;
+ position: absolute
+}
+
+.hero-slider-w {
+ justify-content: center;
+ align-items: center;
+ height: 100%;
+ display: flex
+}
+
+.hero-card {
+ border-radius: var(--rounded-1);
+ background-color: #89dde4;
+ justify-content: center;
+ align-items: center;
+ display: flex;
+ position: relative
+}
+
+.hero-card.layer-1 {
+ position: absolute
+}
+
+.hero-card-img {
+ width: 100%;
+ max-width: 10rem
+}
+
+.overflow-w {
+ padding: 1rem 3rem 3rem;
+ position: relative;
+ top: -1rem;
+ overflow: clip
+}
+
+.scribbles-svg {
+ z-index: 2;
+ pointer-events: none;
+ color: var(--white);
+ width: 310%;
+ position: absolute;
+ top: -205%
+}
+
+.overflow {
+ height: 1.4em;
+ overflow: clip
+}
+
+.scroller-text {
+ text-transform: uppercase;
+ white-space: nowrap
+}
+
+.scroller-line {
+ background-color: var(--primary);
+ color: var(--secondary);
+ align-items: center;
+ display: flex
+}
+
+.scroller-line.first {
+ transform: translateY(20%)rotate(-4deg)
+}
+
+.scroller-line.second {
+ transform: translateY(-30%)rotate(6deg)
+}
+
+.hero-img-tx-w {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ position: relative;
+ transform: scale(2)
+}
+
+.code-block {
+ display: none
+}
+
+.explainer-comp-2 {
+ background-color: #fef8f1;
+ border-radius: .375rem;
+ flex-flow: column;
+ flex: none;
+ justify-content: flex-start;
+ padding-bottom: .75rem;
+ padding-left: .75rem;
+ padding-right: .75rem;
+ display: flex;
+ position: absolute;
+ inset: 0% 0% auto auto
+}
+
+.plus-line-2 {
+ background-color: #270f03;
+ width: 1px;
+ height: 50%;
+ position: absolute
+}
+
+.plus-line-2.rotate {
+ width: 50%;
+ height: 1px
+}
+
+.item-num-2 {
+ background-color: #24281f1a;
+ border-radius: .2rem;
+ padding: .2rem;
+ font-size: .625rem;
+ line-height: 1em
+}
+
+.sec-2 {
+ flex-flow: column;
+ justify-content: center;
+ align-items: center;
+ min-height: 40svh;
+ padding-top: 6rem;
+ padding-bottom: 6rem;
+ display: flex;
+ position: relative
+}
+
+.sec-2.reorganise {
+ justify-content: flex-start;
+ align-items: center
+}
+
+.sec-2.scrolltrigger-sec {
+ flex-flow: column;
+ justify-content: flex-start;
+ align-items: center;
+ height: 400svh;
+ padding-top: 0;
+ padding-bottom: 0
+}
+
+.sec-2.inertia {
+ overflow: clip
+}
+
+.flip-item-2 {
+ grid-column-gap: .6rem;
+ grid-row-gap: .6rem;
+ aspect-ratio: 389/193;
+ outline-offset: 0px;
+ background-color: #00c5c5;
+ border-radius: .375rem;
+ outline: 1px solid #0000000d;
+ flex-flow: column;
+ justify-content: space-between;
+ align-items: flex-start;
+ padding: 1.5rem;
+ display: flex;
+ position: relative;
+ overflow: clip
+}
+
+.flip-item-2.is-4 {
+ background-color: #ca9dfe
+}
+
+.flip-item-2.is-6 {
+ background-color: #f897b4
+}
+
+.flip-item-2.is-2 {
+ background-color: #ff812d
+}
+
+.flip-item-2.is-3 {
+ background-color: #f5c939
+}
+
+.flip-item-2.is-5 {
+ background-color: #7ae66a
+}
+
+.comp-2 {
+ grid-column-gap: 1.5rem;
+ grid-row-gap: 1.5rem;
+ flex-flow: column;
+ flex: none;
+ justify-content: center;
+ align-items: center;
+ width: 94%;
+ min-width: 20vw;
+ max-width: 1620px;
+ display: flex;
+ position: relative
+}
+
+.sticky-w-2 {
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100svh;
+ padding-top: 6rem;
+ padding-bottom: 6rem;
+ display: flex;
+ position: sticky;
+ top: 0
+}
+
+.plus-line-3 {
+ background-color: #270f03;
+ width: 1px;
+ height: 50%;
+ position: absolute
+}
+
+.plus-line-3.rotate {
+ width: 50%;
+ height: 1px
+}
+
+.sky-scroller-2 {
+ pointer-events: auto;
+ border-radius: .375rem;
+ width: 70%;
+ max-width: 1620px;
+ height: 29rem;
+ overflow: clip
+}
+
+.comp-3 {
+ grid-column-gap: 1.5rem;
+ grid-row-gap: 1.5rem;
+ flex-flow: column;
+ flex: none;
+ justify-content: center;
+ align-items: center;
+ width: 94%;
+ min-width: 20vw;
+ max-width: 1620px;
+ display: flex;
+ position: relative
+}
+
+.comp-3.video {
+ max-width: 100%
+}
+
+.plus-line-4 {
+ background-color: #270f03;
+ width: 1px;
+ height: 50%;
+ position: absolute
+}
+
+.plus-line-4.rotate {
+ width: 50%;
+ height: 1px
+}
+
+.slide-2 {
+ aspect-ratio: 708/490;
+ background-color: #89dde4;
+ border-radius: .375rem;
+ flex: none;
+ width: 55vw;
+ padding: 2.5rem;
+ display: flex;
+ overflow: clip
+}
+
+.progress-bar-2 {
+ background-color: #270f03;
+ border-radius: 3rem;
+ width: 50%;
+ height: 100%
+}
+
+.comp-4 {
+ grid-column-gap: 1.5rem;
+ grid-row-gap: 1.5rem;
+ flex-flow: column;
+ flex: none;
+ justify-content: center;
+ align-items: center;
+ width: 94%;
+ min-width: 20vw;
+ max-width: 1620px;
+ display: flex;
+ position: relative
+}
+
+.comp-4.slider-w {
+ width: 100%;
+ max-width: 100%;
+ overflow: clip
+}
+
+.comp-4.inertia {
+ flex-flow: row;
+ height: 60svh
+}
+
+.comp-4.text-exp {
+ grid-column-gap: 1.5rem;
+ grid-row-gap: 1.5rem;
+ flex-flow: wrap;
+ grid-template-rows: auto auto;
+ grid-template-columns: 1fr 1fr 1fr;
+ grid-auto-columns: 1fr;
+ width: 80%;
+ margin-bottom: 0;
+ padding-left: 0;
+ display: grid
+}
+
+.comp-4.video {
+ max-width: 100%
+}
+
+.inertia-slide-2 {
+ aspect-ratio: 517/439;
+ background-color: #ff812df2;
+ border-radius: .375rem;
+ flex: none;
+ justify-content: center;
+ align-items: center;
+ width: 50vw;
+ display: flex;
+ position: absolute
+}
+
+.plus-line-5 {
+ background-color: #270f03;
+ width: 1px;
+ height: 50%;
+ position: absolute
+}
+
+.plus-line-5.rotate {
+ width: 50%;
+ height: 1px
+}
+
+.text-example-container-2 {
+ aspect-ratio: 334/195;
+ color: #fef8f1;
+ background-color: #270f03;
+ border-radius: .375rem;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ display: flex
+}
+
+.plus-line-6 {
+ background-color: #270f03;
+ width: 1px;
+ height: 50%;
+ position: absolute
+}
+
+.plus-line-6.rotate {
+ width: 50%;
+ height: 1px
+}
+
+.text-g-item-2 {
+ background-color: #0000001a;
+ border-radius: .375rem;
+ flex-flow: column;
+ padding-top: .5rem;
+ padding-left: .5rem;
+ padding-right: .5rem;
+ display: flex
+}
+
+.text-g-item-2:hover {
+ background-color: #fef8f1
+}
+
+.hero-btn-w {
+ z-index: 3;
+ position: relative
+}
+
+.hero-stripe-w {
+ color: var(--secondary);
+ justify-content: center;
+ align-items: center;
+ font-family: Anton,Arial,sans-serif;
+ font-size: 15vw;
+ line-height: 1.1em;
+ display: flex;
+ position: fixed
+}
+
+.hero-stripe-w.is-1 {
+ position: absolute;
+ transform: translate(0)
+}
+
+.hero-stripe-w.higher {
+ z-index: 2
+}
+
+.hero-stripe {
+ grid-column-gap: 2rem;
+ grid-row-gap: 2rem;
+ background-color: var(--primary);
+ flex: none;
+ justify-content: flex-start;
+ align-items: center;
+ padding: .4rem;
+ display: flex
+}
+
+.hero-stripe-text {
+ text-transform: uppercase;
+ white-space: nowrap;
+ line-height: 1.1em;
+ position: relative
+}
+
+.hero-inner-img {
+ aspect-ratio: 1;
+ flex: none;
+ width: 10vw;
+ position: relative
+}
+
+.text-g-item-3 {
+ background-color: #0000001a;
+ border-radius: .375rem;
+ flex-flow: column;
+ padding-top: .5rem;
+ padding-left: .5rem;
+ padding-right: .5rem;
+ display: flex
+}
+
+.dual-img {
+ justify-content: center;
+ align-items: center;
+ display: flex;
+ position: relative
+}
+
+.dual-img-img {
+ z-index: 1;
+ width: 100%;
+ height: 100%;
+ position: relative
+}
+
+.dual-img-shadow {
+ mix-blend-mode: multiply;
+ position: absolute
+}
+
+.marquee-img {
+ aspect-ratio: 1;
+ width: 13rem;
+ height: 100%
+}
+
+.mobile-explainer-prompt {
+ display: none
+}
+
+@media screen and (max-width: 991px) {
+ body {
+ font-size:12px
+ }
+
+ .comp {
+ width: 90%
+ }
+
+ .comp.text-exp {
+ grid-template-columns: 1fr 1fr
+ }
+
+ .comp.video {
+ width: 100%
+ }
+
+ .sub-nav-w {
+ flex-flow: row
+ }
+
+ .font-c.size-screen.overflow-cut {
+ font-size: 17vw
+ }
+
+ .abs-img {
+ width: 50%
+ }
+
+ .slide {
+ width: 70vw
+ }
+
+ .inertia-slide {
+ width: 60vw
+ }
+
+ .comp-2,.comp-3 {
+ width: 90%
+ }
+
+ .comp-3.video {
+ width: 100%
+ }
+
+ .slide-2 {
+ width: 70vw
+ }
+
+ .comp-4 {
+ width: 90%
+ }
+
+ .comp-4.text-exp {
+ grid-template-columns: 1fr 1fr
+ }
+
+ .comp-4.video {
+ width: 100%
+ }
+
+ .inertia-slide-2 {
+ width: 60vw
+ }
+
+ .hero-stripe-w {
+ font-size: 20vw
+ }
+}
+
+@media screen and (max-width: 767px) {
+ body {
+ --secondary:#ffe9cf;
+ --primary: #270f03;
+ --y-base: 3rem;
+ --nav-height: 3rem;
+ --rounded-1: .375rem;
+ --white: #fef8f1;
+ --rounded-xs: .2rem
+ }
+
+ .sec.hero {
+ justify-content: center;
+ padding-bottom: 2rem
+ }
+
+ .sec.reorganise {
+ overflow: clip
+ }
+
+ .comp {
+ width: 95%
+ }
+
+ .comp.text-exp {
+ grid-column-gap: .5rem;
+ grid-row-gap: .5rem
+ }
+
+ .comp.toggle-w {
+ top: -3rem
+ }
+
+ .font-c.hero-text {
+ font-size: 14vw
+ }
+
+ .font-c.size-md {
+ font-size: 2rem
+ }
+
+ .font-c.size-md._w-ch {
+ font-size: 2.15rem
+ }
+
+ .sticky-w {
+ height: 80svh
+ }
+
+ .sky-scroller {
+ height: 15rem
+ }
+
+ .flip-item {
+ padding: .75rem
+ }
+
+ .flip-list-w {
+ grid-column-gap: .2rem;
+ grid-row-gap: .2rem;
+ grid-template-columns: 1fr 1fr
+ }
+
+ .flip-list-w.list {
+ width: 50%
+ }
+
+ .abs-img {
+ justify-content: center;
+ align-items: center
+ }
+
+ .slide {
+ padding: 1.6rem
+ }
+
+ .slide-outer {
+ padding-left: .3rem;
+ padding-right: .3rem
+ }
+
+ .explainer-w {
+ filter: drop-shadow(0 2px 5px #0000001a);
+ width: 80%;
+ height: auto
+ }
+
+ .explainer-comp {
+ flex-flow: column;
+ align-items: flex-start;
+ width: 100%;
+ padding-bottom: 0;
+ position: static
+ }
+
+ .plus-icon-w,.explainer-copy-btn-w {
+ display: none
+ }
+
+ .toggle-w {
+ width: 10rem;
+ height: 5rem
+ }
+
+ .toggle-slider {
+ border-width: .2rem;
+ align-items: center
+ }
+
+ .toggle-ball {
+ border-width: .2rem;
+ width: 4rem;
+ height: 4rem
+ }
+
+ .explainer-par {
+ max-width: 100%
+ }
+
+ .input {
+ opacity: 0
+ }
+
+ .span {
+ padding-top: .2rem
+ }
+
+ .hero-running-w {
+ transform: scale(1)
+ }
+
+ .img,.swap-img,.swap-img.top {
+ object-fit: contain
+ }
+
+ .overflow-w,.scribbles-svg {
+ display: none
+ }
+
+ .scroller-line.first {
+ z-index: 2;
+ position: relative
+ }
+
+ .hero-img-tx-w {
+ transform: scale(2)
+ }
+
+ .code-block {
+ display: none
+ }
+
+ .explainer-comp-2 {
+ width: 100%;
+ padding-bottom: 0;
+ position: static
+ }
+
+ .sec-2.reorganise {
+ overflow: clip
+ }
+
+ .flip-item-2 {
+ padding: .75rem
+ }
+
+ .comp-2 {
+ width: 95%
+ }
+
+ .sticky-w-2 {
+ height: 80svh
+ }
+
+ .sky-scroller-2 {
+ height: 15rem
+ }
+
+ .comp-3 {
+ width: 95%
+ }
+
+ .slide-2 {
+ padding: 1.6rem
+ }
+
+ .comp-4 {
+ width: 95%
+ }
+
+ .comp-4.text-exp {
+ grid-column-gap: .5rem;
+ grid-row-gap: .5rem
+ }
+
+ .hero-stripe-w {
+ font-size: 30vw
+ }
+
+ .hero-inner-img {
+ width: 26vw
+ }
+
+ .mobile-explainer-prompt {
+ border: 1px solid #0000004d;
+ border-radius: 3px;
+ margin-bottom: .4rem;
+ padding: .3rem .6rem;
+ display: block
+ }
+}
+
+@media screen and (max-width: 479px) {
+ .comp {
+ min-width:80vw
+ }
+
+ .comp.text-exp {
+ grid-template-columns: 1fr;
+ width: 95%
+ }
+
+ .comp.toggle-w {
+ top: -1.5rem
+ }
+
+ .layer.hero-alt.show {
+ padding-bottom: 0;
+ padding-left: 0;
+ padding-right: 0
+ }
+
+ .font-c.size-md {
+ margin-top: .2rem;
+ font-size: 1.5rem
+ }
+
+ .font-c.size-md._w-ch {
+ font-size: 1.5rem
+ }
+
+ .flip-item,.flip-list-w {
+ grid-column-gap: .2rem;
+ grid-row-gap: .2rem
+ }
+
+ .flip-list-w.list {
+ width: 100%
+ }
+
+ .abs-img {
+ justify-content: flex-end;
+ align-items: center
+ }
+
+ .slide {
+ width: 80vw;
+ min-height: 16rem;
+ padding-left: .8rem;
+ padding-right: .4rem
+ }
+
+ .slide-col.flex-ve {
+ flex: 1;
+ justify-content: space-between
+ }
+
+ .slide-outer {
+ padding-right: .3rem
+ }
+
+ .explainer-w {
+ justify-content: center;
+ align-items: flex-end
+ }
+
+ .toggle-w {
+ width: 9rem
+ }
+
+ .explainer-par {
+ max-width: 100%
+ }
+
+ .footer-line {
+ grid-column-gap: 3rem;
+ grid-row-gap: 3rem;
+ flex-flow: column
+ }
+
+ .footer-line.separator {
+ grid-column-gap: 1rem;
+ grid-row-gap: 1rem;
+ flex-flow: column
+ }
+
+ .col-half {
+ width: 100%
+ }
+
+ .col-half.items-r {
+ justify-content: flex-start;
+ align-items: flex-end
+ }
+
+ .hero-overlay-item {
+ transform: scale(2)
+ }
+
+ .hero-overlay-item.sky {
+ pointer-events: none;
+ transform: translate(-40%,-50%)scale(3)
+ }
+
+ .hero-overlay-item.slider {
+ transform: translate(50%,10%)scale(2)
+ }
+
+ .hero-overlay-item.run {
+ pointer-events: none
+ }
+
+ .hero-overlay-item.imgs {
+ pointer-events: none;
+ transform: translate(50%,-30%)scale(2)
+ }
+
+ .hero-overlay-item.text {
+ pointer-events: none;
+ transform: translateY(-40%)scale(2)
+ }
+
+ .img,.swap-img,.swap-img.top {
+ object-fit: contain
+ }
+
+ .hero-slider-w {
+ pointer-events: none
+ }
+
+ .scroller-text {
+ font-size: 50vw
+ }
+
+ .flip-item-2 {
+ grid-column-gap: .2rem;
+ grid-row-gap: .2rem
+ }
+
+ .comp-2,.comp-3 {
+ min-width: 80vw
+ }
+
+ .slide-2 {
+ width: 80vw
+ }
+
+ .comp-4 {
+ min-width: 80vw
+ }
+
+ .comp-4.text-exp {
+ grid-template-columns: 1fr;
+ width: 95%
+ }
+
+ .hero-btn-w {
+ z-index: 20;
+ position: relative
+ }
+
+ .hero-stripe-w {
+ font-size: 25vw
+ }
+}
+
+
diff --git a/resources/views/templates/neler-yapariz/external-links.blade.php b/resources/views/templates/neler-yapariz/external-links.blade.php
new file mode 100644
index 0000000..3e622ce
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/external-links.blade.php
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/resources/views/templates/neler-yapariz/external-scripts.blade.php b/resources/views/templates/neler-yapariz/external-scripts.blade.php
new file mode 100644
index 0000000..4c8f58f
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/external-scripts.blade.php
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/copybtn-buttons.js b/resources/views/templates/neler-yapariz/js/copybtn-buttons.js
new file mode 100644
index 0000000..931be13
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/copybtn-buttons.js
@@ -0,0 +1,126 @@
+{
+ /** -- Copy Button */
+ const copybtn = () => {
+ const copybtn = [...document.querySelectorAll("[data-module='copybtn']")];
+
+ // Create a map to store data for each button
+ const buttonDataMap = new Map();
+
+ // Single event listener that checks which button's data to use
+ document.addEventListener("copy", (event) => {
+ const activeButtonData = buttonDataMap.get("active");
+ if (activeButtonData) {
+ event.preventDefault();
+ event.clipboardData.setData(
+ "application/json",
+ JSON.stringify(activeButtonData)
+ );
+ event.clipboardData.setData(
+ "text/plain",
+ JSON.stringify(activeButtonData)
+ );
+ buttonDataMap.delete("active"); // Clear after copying
+ }
+ });
+
+ copybtn.forEach((btn) => {
+ const url = btn.getAttribute("data-copy");
+ const text = btn.children[0].children[0];
+ const icon = btn.querySelector("svg");
+ let isAnimating = false;
+
+ btn.onmouseenter = async () => {
+ if (isAnimating) return;
+ isAnimating = true;
+
+ await gsap.to(icon, {
+ rotate: "+=360",
+ duration: 0.3,
+ ease: "expo.out",
+ });
+
+ isAnimating = false;
+ };
+
+ btn.onclick = async (evt) => {
+ try {
+ const res = await fetch(url);
+ let data = await res.text();
+
+ // Try to parse as JSON in case it's JSON data
+ try {
+ const jsonData = JSON.parse(data);
+ buttonDataMap.set("active", jsonData);
+ } catch {
+ buttonDataMap.set("active", data);
+ }
+
+ // Trigger the copy command
+ document.execCommand("copy");
+
+ text.textContent = "Copied!";
+ console.log("copied successfully");
+
+ setTimeout(() => {
+ text.textContent = "Copy this";
+ }, 1000);
+ } catch (error) {
+ console.error("Failed to copy:", error);
+ text.textContent = "Failed to copy";
+
+ setTimeout(() => {
+ text.textContent = "Copy this";
+ }, 1000);
+ }
+ };
+ });
+ };
+
+ /** -- Split Text Button */
+ const split = (text, type = "chars") => {
+ text.setAttribute("aria-label", text.textContent);
+ const splits = new SplitText(text, { type });
+ splits[type].forEach((char) => char.setAttribute("aria-hidden", "true"));
+ return splits[type];
+ };
+
+ const buttons = () => {
+ const buttons = [...document.querySelectorAll("[data-module='btn']")];
+
+ buttons.forEach((btn) => {
+ const overflow = btn.children[0];
+ const text = overflow.children[0];
+
+ overflow.appendChild(text.cloneNode(true));
+ const splitText1 = split(overflow.children[0], "chars");
+ const splitText2 = split(overflow.children[1], "chars");
+
+ const animation = {
+ yPercent: "-=100",
+ duration: 0.8,
+ ease: "expo.out",
+ stagger: 0.02,
+ };
+
+ btn.onmouseenter = () => {
+ gsap.to(splitText1, { ...animation, yPercent: -100 });
+ gsap.to(splitText2, { ...animation, yPercent: -100 });
+ };
+
+ btn.onmouseleave = () => {
+ gsap.to(splitText1, { ...animation, yPercent: 0 });
+ gsap.to(splitText2, { ...animation, yPercent: 0 });
+ };
+ });
+ };
+
+ /** -- Controller */
+ addEventListener("GSAPReady", (event) => {
+ copybtn();
+
+ // desktop only animations
+ if (window.matchMedia("(min-width: 1024px)").matches) {
+ buttons();
+ }
+ });
+}
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/flip.js b/resources/views/templates/neler-yapariz/js/flip.js
new file mode 100644
index 0000000..dfb29ed
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/flip.js
@@ -0,0 +1,30 @@
+// https://codepen.io/GreenSock/pen/RwLepdQ?editors=1010
+
+addEventListener("GSAPReady", (event) => {
+ const wrapper = document.querySelector("[data-animate='flip']");
+ const toggles = [...wrapper.querySelector("[data-flip='toggle']").children];
+ const items = wrapper.querySelector("[data-flip='item']");
+
+ // console.log("flip", wrapper, toggles, items);
+
+ const flipGridList = () => {
+ const state = Flip.getState(items.children);
+ items.classList.toggle("list");
+
+ Flip.from(state, {
+ duration: 0.8,
+ ease: "expo.out",
+ onComplete: () => {
+ ScrollTrigger.refresh();
+ }
+ });
+ };
+
+ toggles.forEach((toggle, index) => {
+ toggle.addEventListener("click", () => {
+ toggles[0].classList.toggle("current");
+ toggles[1].classList.toggle("current");
+ flipGridList();
+ });
+ });
+});
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/footer.js b/resources/views/templates/neler-yapariz/js/footer.js
new file mode 100644
index 0000000..e8fac6a
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/footer.js
@@ -0,0 +1,120 @@
+// Single event listener that checks which button's data to use
+ document.addEventListener("copy", (event) => {
+ const activeButtonData = buttonDataMap.get("active");
+ if (activeButtonData) {
+ event.preventDefault();
+ event.clipboardData.setData(
+ "application/json",
+ JSON.stringify(activeButtonData)
+ );
+ event.clipboardData.setData(
+ "text/plain",
+ JSON.stringify(activeButtonData)
+ );
+ buttonDataMap.delete("active"); // Clear after copying
+ }
+ });
+
+ copybtn.forEach((btn) => {
+ const url = btn.getAttribute("data-copy");
+ const text = btn.children[0].children[0];
+ const icon = btn.querySelector("svg");
+ let isAnimating = false;
+
+ btn.onmouseenter = async () => {
+ if (isAnimating) return;
+ isAnimating = true;
+
+ await gsap.to(icon, {
+ rotate: "+=360",
+ duration: 0.3,
+ ease: "expo.out",
+ });
+
+ isAnimating = false;
+ };
+
+ btn.onclick = async (evt) => {
+ try {
+ const res = await fetch(url);
+ let data = await res.text();
+
+ // Try to parse as JSON in case it's JSON data
+ try {
+ const jsonData = JSON.parse(data);
+ buttonDataMap.set("active", jsonData);
+ } catch {
+ buttonDataMap.set("active", data);
+ }
+
+ // Trigger the copy command
+ document.execCommand("copy");
+
+ text.textContent = "Copied!";
+ console.log("copied successfully");
+
+ setTimeout(() => {
+ text.textContent = "Copy this";
+ }, 1000);
+ } catch (error) {
+ console.error("Failed to copy:", error);
+ text.textContent = "Failed to copy";
+
+ setTimeout(() => {
+ text.textContent = "Copy this";
+ }, 1000);
+ }
+ };
+ });
+ };
+
+ /** -- Split Text Button */
+ const split = (text, type = "chars") => {
+ text.setAttribute("aria-label", text.textContent);
+ const splits = new SplitText(text, { type });
+ splits[type].forEach((char) => char.setAttribute("aria-hidden", "true"));
+ return splits[type];
+ };
+
+ const buttons = () => {
+ const buttons = [...document.querySelectorAll("[data-module='btn']")];
+
+ buttons.forEach((btn) => {
+ const overflow = btn.children[0];
+ const text = overflow.children[0];
+
+ overflow.appendChild(text.cloneNode(true));
+ const splitText1 = split(overflow.children[0], "chars");
+ const splitText2 = split(overflow.children[1], "chars");
+
+ const animation = {
+ yPercent: "-=100",
+ duration: 0.8,
+ ease: "expo.out",
+ stagger: 0.02,
+ };
+
+ btn.onmouseenter = () => {
+ gsap.to(splitText1, { ...animation, yPercent: -100 });
+ gsap.to(splitText2, { ...animation, yPercent: -100 });
+ };
+
+ btn.onmouseleave = () => {
+ gsap.to(splitText1, { ...animation, yPercent: 0 });
+ gsap.to(splitText2, { ...animation, yPercent: 0 });
+ };
+ });
+ };
+
+ /** -- Controller */
+ addEventListener("GSAPReady", (event) => {
+ copybtn();
+
+ // desktop only animations
+ if (window.matchMedia("(min-width: 1024px)").matches) {
+ buttons();
+ }
+ });
+}
+
+
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/footerlogo.js b/resources/views/templates/neler-yapariz/js/footerlogo.js
new file mode 100644
index 0000000..3b79bbc
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/footerlogo.js
@@ -0,0 +1,69 @@
+{
+ addEventListener("GSAPReady", (event) => {
+ const wrapper = document.querySelector("[data-animate='footerlogo']");
+ if (!wrapper) return;
+
+ const paths = [...wrapper.querySelectorAll("path")].reverse();
+ const lastPath = paths[paths.length - 1];
+
+ // Configuration for the footer logo animation
+ const FOOTER_ANIMATION_CONFIG = {
+ STAGGER: 0.05,
+ VISIBILITY_DURATION: 0.1,
+ };
+
+ // Set initial state
+ gsap.set(paths, {
+ autoAlpha: 0,
+ });
+
+ const animateFooterLogo = () => {
+ // Reset the last path visibility before starting the animation
+ gsap.set(lastPath, { autoAlpha: 0 });
+
+ const tl = gsap.timeline();
+
+ paths.forEach((path, index) => {
+ const baseDelay = index * FOOTER_ANIMATION_CONFIG.STAGGER;
+ const isLastPath = index === paths.length - 1;
+
+ // Flash animation
+ tl.to(
+ path,
+ {
+ autoAlpha: 1,
+ duration: 0.1,
+ ease: "none",
+ },
+ baseDelay
+ );
+
+ // Only fade out if it's not the last path
+ if (!isLastPath) {
+ tl.to(
+ path,
+ {
+ autoAlpha: 0,
+ duration: 0.1,
+ ease: "none",
+ },
+ baseDelay + FOOTER_ANIMATION_CONFIG.VISIBILITY_DURATION
+ );
+ }
+ });
+
+ return tl;
+ };
+
+ // Create the scroll trigger
+ ScrollTrigger.create({
+ trigger: wrapper,
+ start: "top bottom",
+ end: "bottom top",
+ onEnter: () => animateFooterLogo(),
+ onEnterBack: () => animateFooterLogo(),
+ });
+
+ // console.log(event.detail);
+ });
+}
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/global.js b/resources/views/templates/neler-yapariz/js/global.js
new file mode 100644
index 0000000..1d4f01c
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/global.js
@@ -0,0 +1,79 @@
+{
+ let lenis;
+
+ const initScroll = () => {
+ lenis = new Lenis({});
+ lenis.on("scroll", ScrollTrigger.update);
+ gsap.ticker.add((time) => lenis.raf(time * 1000));
+ gsap.ticker.lagSmoothing(0);
+ };
+
+ function initGsapGlobal() {
+ /** Do everything that needs to happen
+ * before triggering all
+ * the gsap animations */
+
+ initScroll();
+
+ // match reduced motion media
+ // const media = gsap.matchMedia();
+
+ /** Send a custom
+ * event to all your
+ * gsap animations
+ * to start them */
+
+ const sendGsapEvent = () => {
+ window.dispatchEvent(
+ new CustomEvent("GSAPReady", {
+ detail: {
+ lenis,
+ },
+ })
+ );
+ };
+
+ // Check if fonts are already loaded
+ if (document.fonts.status === "loaded") {
+ sendGsapEvent();
+ } else {
+ document.fonts.ready.then(() => {
+ sendGsapEvent();
+ });
+ }
+
+ /** We need specific handling because the
+ * grid/list changes the scroll height of the whole container
+ */
+
+ let resizeTimeout;
+ const onResize = () => {
+ clearTimeout(resizeTimeout);
+ resizeTimeout = setTimeout(() => {
+ ScrollTrigger.refresh();
+ }, 50);
+ };
+
+ window.addEventListener("resize", () => onResize());
+ const resizeObserver = new ResizeObserver((entries) => onResize());
+ resizeObserver.observe(document.body);
+
+ queueMicrotask(() => {
+ gsap.to("[data-start='hidden']", {
+ autoAlpha: 1,
+ duration: 0.1,
+ delay: 0.2,
+ });
+ });
+ }
+
+ // this only for dev
+ const documentReady =
+ document.readyState === "complete" || document.readyState === "interactive";
+
+ if (documentReady) {
+ initGsapGlobal();
+ } else {
+ addEventListener("DOMContentLoaded", (event) => initGsapGlobal());
+ }
+}
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/hero.js b/resources/views/templates/neler-yapariz/js/hero.js
new file mode 100644
index 0000000..0ddcfaf
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/hero.js
@@ -0,0 +1,263 @@
+{
+ const split = (text, type = "chars") => {
+ // Handle both single elements and arrays of elements
+ const elements = Array.isArray(text) ? text : [text];
+
+ // Set aria labels
+ elements.forEach((element) => {
+ if (element && typeof element.setAttribute === "function") {
+ element.setAttribute("aria-label", element.textContent);
+ }
+ });
+
+ // Split text and set aria-hidden
+ const splits = new SplitText(text, { type });
+ splits[type].forEach((char) => {
+ if (char && typeof char.setAttribute === "function") {
+ char.setAttribute("aria-hidden", "true");
+ }
+ });
+
+ return splits[type];
+ };
+
+ /** -- Setup and Utils */
+
+ let titleSplit,
+ parSplit,
+ layerItems,
+ isIn = false;
+
+ const animateIn = async (delay = 0) => {
+ isIn = true;
+ animateStripesOut();
+
+ gsap.to(parSplit, {
+ autoAlpha: 1,
+ yPercent: 0,
+ duration: 0.8,
+ delay: 0.65,
+ ease: "expo.out",
+ stagger: {
+ each: 0.08,
+ },
+ });
+
+ await gsap.to(titleSplit.flat(), {
+ yPercent: 0,
+ duration: 1.2,
+ delay: delay,
+ ease: "expo.out",
+ stagger: {
+ each: 0.01,
+ from: "end",
+ },
+ });
+ };
+
+ const animateOut = async () => {
+ isIn = false;
+ animateStripesIn();
+
+ gsap.to(parSplit, {
+ autoAlpha: 0,
+ yPercent: 100,
+ duration: 0.8,
+ ease: "expo.out",
+ stagger: {
+ each: 0.08,
+ },
+ });
+
+ await gsap.to(titleSplit.flat(), {
+ yPercent: 110,
+ duration: 0.8,
+ ease: "expo.out",
+ delay: 0.1,
+ stagger: {
+ each: 0.01,
+ from: "center",
+ },
+ });
+ };
+
+ /** -- Scribble Animaiton */
+ let isScribbling = false;
+ const SCRIBBLE_CONFIG = {
+ ROTATION_RANGE: 20,
+ TIME_BETWEEN_SCRIBBLES: 0.015,
+ VISIBILITY_DURATION: 0.01,
+ REVERSE_ORDER: true,
+ };
+
+ const animateScribble = (scribble) => {
+ if (isScribbling) return;
+ isScribbling = true;
+
+ gsap.set(scribble, { autoAlpha: 0, rotation: 0 });
+
+ const tl = gsap.timeline();
+
+ const scribblesToAnimate = [...scribble].reverse();
+
+ scribblesToAnimate.forEach((item, index) => {
+ const randomRotation =
+ Math.random() * SCRIBBLE_CONFIG.ROTATION_RANGE -
+ SCRIBBLE_CONFIG.ROTATION_RANGE / 2;
+ const baseDelay = index * SCRIBBLE_CONFIG.TIME_BETWEEN_SCRIBBLES;
+
+ tl.add(
+ gsap.set(item, {
+ autoAlpha: 1,
+ rotation: randomRotation,
+ delay: baseDelay,
+ })
+ );
+
+ tl.add(
+ gsap.set(item, {
+ autoAlpha: 0,
+ delay: baseDelay + SCRIBBLE_CONFIG.VISIBILITY_DURATION,
+ })
+ );
+ });
+
+ tl.call(() => {
+ isScribbling = false;
+ });
+ };
+
+ // hero stripes animation
+ let heroStripes,
+ stripes,
+ stripesAnimation = null;
+
+ const calcX = (i) => {
+ return i % 2 === 0
+ ? -heroStripes[i].scrollWidth
+ : heroStripes[i].scrollWidth;
+ };
+
+ const animateStripesIn = () => {
+ if (stripesAnimation) {
+ stripesAnimation.kill();
+ }
+
+ // play video on the hero
+ document.querySelector("video").play()
+
+ gsap.set(heroStripes, {
+ autoAlpha: 1,
+ x: (i) => calcX(i),
+ yPercent: (i) => (heroStripes.length / 2 - i) * 80,
+ });
+
+ gsap.set(stripes, {
+ rotation: (i) => Math.random() * 30,
+ ease: "expo.out",
+ });
+
+ stripesAnimation = gsap.to(heroStripes, {
+ x: 0,
+ delay: 0.2,
+ duration: (i) => Math.random() + 1.2,
+ ease: "expo.out",
+ });
+ };
+
+ const animateStripesOut = () => {
+ if (stripesAnimation) {
+ stripesAnimation.kill();
+ }
+
+ stripesAnimation = gsap.to(heroStripes, {
+ x: (i) => calcX(i),
+ duration: 0.8,
+ ease: "expo.out",
+ });
+ };
+
+ addEventListener("GSAPReady", (event) => {
+ const wrapper = document.querySelector("[data-module='hero']");
+ if (!wrapper) return;
+
+ const layer = wrapper.querySelector("[data-hero='layer']");
+ layerItems = layer.children;
+ const title = wrapper.querySelector("[data-hero='title']");
+ const toggle = wrapper.querySelector("[data-hero='toggle']");
+ const alpha = document.querySelectorAll("[data-hero='alpha']");
+ const par = document.querySelectorAll("[data-hero='par']");
+ const scribble = [
+ ...document.querySelector("[data-hero='scribble']").children[0].children,
+ ];
+
+ stripes = [...layer.children];
+ heroStripes = stripes.map((item) => item.children[0]);
+ gsap.set(heroStripes, { autoAlpha: 0 });
+
+ gsap.to(layer, {
+ yPercent: 10,
+ scrollTrigger: {
+ trigger: layer,
+ start: "top top",
+ end: "+=100%",
+ scrub: true,
+ },
+ });
+
+ // split
+ titleSplit = split(title.children, "chars");
+ parSplit = split(par, "lines");
+
+ // initial state
+ gsap.set(titleSplit.flat(), { yPercent: -110 });
+ gsap.set(layer, { autoAlpha: 1 });
+ gsap.set(toggle, { scale: 3, rotation: 360 });
+ gsap.set(parSplit, { autoAlpha: 0, yPercent: 100 });
+ gsap.set(alpha, { autoAlpha: 0, scale: 0.7 });
+ gsap.set(scribble, { autoAlpha: 0 });
+
+ animateIn(0.6);
+
+ gsap.to(toggle, {
+ scale: 1,
+ rotation: 0,
+ delay: 0,
+ duration: 1.2,
+ ease: "expo.inOut",
+ });
+
+ gsap.to(parSplit, {
+ autoAlpha: 1,
+ yPercent: 0,
+ duration: 0.8,
+ delay: 0.65,
+ ease: "expo.out",
+ stagger: {
+ each: 0.08,
+ },
+ });
+
+ gsap.to(alpha, {
+ autoAlpha: 1,
+ scale: 1,
+ duration: 0.8,
+ delay: 0.9,
+ ease: "expo.out",
+ });
+
+ toggle.querySelector("input").addEventListener("change", (event) => {
+ if (event.target.checked) {
+ animateOut();
+ } else {
+ animateIn();
+ }
+ });
+
+ toggle.onmouseenter = () => {
+ if (!isIn) return;
+ // console.log("mouseenter");
+ animateScribble(scribble);
+ };
+ });
+}
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/inertia.js b/resources/views/templates/neler-yapariz/js/inertia.js
new file mode 100644
index 0000000..fd829bf
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/inertia.js
@@ -0,0 +1,165 @@
+{
+
+/** Utility Functions */
+const split = (text, type = "chars") => {
+ text.setAttribute("aria-label", text.textContent);
+ const splits = new SplitText(text, { type });
+ splits[type].forEach((char) => char.setAttribute("aria-hidden", "true"));
+ return splits[type];
+};
+
+const getParams = (item) => {
+ const { duration, delay, stagger, ease, type } = item.dataset;
+ const params = {
+ duration: 1.2,
+ delay: 0,
+ type: "chars",
+ };
+
+ if (duration) params.duration = parseFloat(duration);
+ if (delay) params.delay = parseFloat(delay);
+ if (type && (type === "chars" || type === "words" || type === "lines"))
+ params.type = type;
+
+ return params;
+};
+
+const baseAnimation = (item) => {
+ const params = getParams(item);
+ return {
+ duration: params.duration,
+ delay: params.delay,
+ ease: "expo.out",
+ // stagger each item so the letters come in one after the other
+ stagger: {
+ each: 0.04,
+ from: "start",
+ },
+ scrollTrigger: {
+ trigger: item,
+ // use scrolltrigger to trigger on enter and reset on exit
+ toggleActions: "play reset play reset",
+ },
+ };
+};
+
+/** (1) Split Reveal Animation */
+function createSplitRevealAnimation(item) {
+ const params = getParams(item); // 1. get params from attributes
+ const text = split(item, params.type); // 2. split the text
+ item.style.overflow = "hidden"; // 3. set container to overflow
+
+ // 4. create the animation
+ return gsap.fromTo(
+ text,
+ { yPercent: 120 },
+ {
+ ...baseAnimation(item),
+ yPercent: 0,
+ }
+ );
+}
+
+function createScrambledAnimation(item) {
+ const text = item.textContent;
+ const randomText = Array(text.length)
+ .fill()
+ .map(() => String.fromCharCode(Math.floor(Math.random() * (90 - 65) + 65)))
+ .join("")
+ .toLowerCase();
+
+ return gsap.fromTo(
+ item.children[0],
+ {
+ scrambleText: randomText,
+ },
+ {
+ ...baseAnimation(item),
+ scrambleText: text,
+ chars: text,
+ }
+ );
+}
+
+function createAlphaAnimation(item) {
+
+ const params = getParams(item); // 1. get params from attributes
+ const text = split(item, "chars"); // 2. split the text
+
+ return gsap.fromTo(
+ text,
+ { autoAlpha: 0 },
+ {
+ ...baseAnimation(item),
+ autoAlpha: 1,
+ stagger: {
+ each: 0.02,
+ from: "random",
+ },
+ }
+ );
+}
+
+function createSideAnimation(item) {
+ const params = getParams(item);
+ const outer = split(item, "chars");
+ outer.forEach((char) => {
+ char.style.overflow = "hidden";
+ });
+ const inner = split(item.children[0], "chars");
+
+ return gsap.fromTo(
+ inner,
+ { x: 100 },
+ {
+ ...baseAnimation(item),
+ x: 0,
+ stagger: {
+ each: 0.02,
+ from: "end",
+ },
+ }
+ );
+}
+
+function createUpDownAnimation(item) {
+ const params = getParams(item);
+ const outer = split(item, "chars");
+ outer.forEach((char) => {
+ char.style.overflow = "hidden";
+ });
+ const inner = split(item.children[0], "chars");
+
+ return gsap.fromTo(
+ inner,
+ {
+ yPercent: (i) => {
+ return i % 2 === 0 ? 100 : -100;
+ },
+ },
+ {
+ ...baseAnimation(item),
+ yPercent: 0,
+ stagger: {
+ each: 0.02,
+ from: "random",
+ },
+ }
+ );
+}
+
+/** Main Text Effect Wrapper */
+addEventListener("GSAPReady", (event) => {
+ const texts = [...document.querySelectorAll('[data-animate="text"]')];
+
+ texts.forEach((item) => {
+ if (item.dataset.type === "chars") createSplitRevealAnimation(item);
+ else if (item.dataset.type === "words") createSplitRevealAnimation(item);
+ else if (item.dataset.type === "scramble") createScrambledAnimation(item);
+ else if (item.dataset.type === "alpha") createAlphaAnimation(item);
+ else if (item.dataset.type === "side") createSideAnimation(item);
+ else if (item.dataset.type === "updown") createUpDownAnimation(item);
+ });
+});
+
+}
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/marquee.js b/resources/views/templates/neler-yapariz/js/marquee.js
new file mode 100644
index 0000000..1343382
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/marquee.js
@@ -0,0 +1,30 @@
+addEventListener("GSAPReady", (event) => {
+ // console.log("marquee");
+ const wrapper = document.querySelector("[data-animate='marquee']");
+ if (!wrapper) return;
+
+ const sections = [...wrapper.querySelectorAll("[data-marquee='line']")];
+
+ gsap.fromTo(
+ sections,
+ {
+ x: (i) =>
+ i % 2 === 0
+ ? sections[i].offsetWidth / 4
+ : -sections[i].offsetWidth / 4,
+ },
+ {
+ x: (i) =>
+ i % 2 === 0
+ ? -sections[i].offsetWidth / 4
+ : sections[i].offsetWidth / 4,
+ scrollTrigger: {
+ trigger: wrapper,
+ start: "top bottom",
+ end: "bottom top",
+ scrub: true,
+ // invalidateOnRefresh: true,
+ },
+ }
+ );
+});
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/nav.js b/resources/views/templates/neler-yapariz/js/nav.js
new file mode 100644
index 0000000..cb635cb
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/nav.js
@@ -0,0 +1,44 @@
+{
+ const params = {
+ duration: 0.8,
+ ease: "expo.out",
+ };
+
+ const handleSecondaryVisibility = (secondary) => {
+ const observer = new IntersectionObserver(
+ (entries) => {
+ entries.forEach((entry) => {
+ if (entry.isIntersecting) {
+ gsap.to(secondary, {
+ yPercent: 200,
+ ...params,
+ });
+ } else {
+ gsap.to(secondary, {
+ yPercent: 0,
+ ...params,
+ });
+ }
+ });
+ },
+ {
+ threshold: 0.02,
+ rootMargin: "-10% 0px",
+ }
+ );
+
+ const contentElement = document.getElementById("content");
+ if (contentElement) {
+ observer.observe(contentElement);
+ }
+ };
+
+ addEventListener("GSAPReady", (event) => {
+ const wrapper = document.querySelector("[data-module='nav']");
+ if (!wrapper) return;
+ const main = wrapper.children[0];
+ const secondary = wrapper.children[1].children[0];
+
+ handleSecondaryVisibility(secondary);
+ });
+}
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/scrolltrigger.js b/resources/views/templates/neler-yapariz/js/scrolltrigger.js
new file mode 100644
index 0000000..7b02be9
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/scrolltrigger.js
@@ -0,0 +1,108 @@
+const split = (text, type = "chars") => {
+ text.setAttribute("aria-label", text.textContent);
+ const splits = new SplitText(text, { type });
+ splits[type].forEach((char) => char.setAttribute("aria-hidden", "true"));
+ return splits[type];
+};
+
+addEventListener("GSAPReady", (event) => {
+
+ const section = document.querySelector("[data-animate='videogrow']");
+ const video = section.querySelector("[data-videogrow='video']");
+ const img = video.children[0];
+
+ const title = split(
+ section.querySelector("[data-videogrow='title']"),
+ "chars"
+ );
+
+ const tl = gsap.timeline({
+ scrollTrigger: {
+ trigger: section,
+ start: "top center",
+ end: "bottom bottom+=100%",
+ invalidateOnRefresh: true,
+ scrub: 1,
+ },
+ });
+
+ gsap.set(
+ title,
+ {
+ scale: 0,
+ rotation: (i) => Math.random() * 360 - 180,
+ })
+
+ tl.to(
+ title,
+ {
+ scale: 1,
+ duration: 0.2,
+ rotation: 0,
+ ease: "expo.out",
+ stagger: {
+ each: 0.05,
+ from: "random",
+ },
+ }
+ );
+
+ tl.fromTo(
+ video,
+ {
+ clipPath: "inset(10% 50% 10% 50%)",
+ yPercent: 100,
+ },
+ {
+ ease: "power3",
+ clipPath: "inset(0% 0% 0% 0%)",
+ duration: 1,
+ yPercent: 0,
+ },
+ ".3"
+ );
+
+ tl.fromTo(
+ video,
+ {
+ scale: 0.5,
+ // rotation: 180,
+ },
+ {
+ ease: "back.inOut(.2)",
+ scale: 1,
+ duration: 0.8,
+ // rotation: 0,
+ },
+ "<"
+ );
+
+ tl.fromTo(
+ img,
+ {
+ scale: 2.8,
+ yPercent: 40,
+ },
+ {
+ scale: 1.2,
+ duration: 0.8,
+ delay: 0.2,
+ yPercent: 0,
+ },
+ "<"
+ );
+
+ tl.to(video, {
+ scale: 0.9,
+ ease: "linear",
+ });
+
+ tl.to(
+ img,
+ {
+ scale: 1,
+ ease: "linear",
+ },
+ "<"
+ );
+});
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/section-selector.js b/resources/views/templates/neler-yapariz/js/section-selector.js
new file mode 100644
index 0000000..065f24b
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/section-selector.js
@@ -0,0 +1,61 @@
+{
+ /** Section Selector */
+const createObserver = (section, cb) => {
+ const observer = new IntersectionObserver((entries) => {
+ entries.forEach((entry) => {
+ if (entry.isIntersecting && entry.intersectionRatio >= 0.1) {
+ cb(entry.target);
+ }
+ });
+ }, {
+ threshold: 0.2 // This means the callback will fire when at least 10% is visible
+ });
+ observer.observe(section);
+};
+
+ addEventListener("GSAPReady", (event) => {
+ const { lenis } = event.detail;
+
+ const wrapper = document.querySelector("[data-animate='sectionselector']");
+ const items = [...wrapper.children];
+ const highlight = wrapper.querySelector("[data-selector='highlight']");
+ let currentIndex = 0;
+
+ const sections = [...document.querySelectorAll("section")];
+
+ sections.forEach((section, index) => {
+ createObserver(section, () => {
+ items[currentIndex].classList.remove("current");
+ currentIndex = index;
+ items[currentIndex].classList.add("current");
+ moveHighlightTo(index);
+ });
+ });
+
+let flipAnimation = null
+ const moveHighlightTo = (index) => {
+ const state = Flip.getState(highlight);
+ items[index].appendChild(highlight);
+
+ if (flipAnimation) flipAnimation.kill()
+ flipAnimation = Flip.from(state, {
+ duration: 0.5,
+ ease: "expo.out",
+ });
+ };
+
+ items.forEach((item, index) => {
+ item.addEventListener("click", () => {
+ lenis.scrollTo("#" + items[index].dataset.to);
+ });
+
+ item.addEventListener("mouseenter", () => {
+ moveHighlightTo(index);
+ });
+
+ item.addEventListener("mouseleave", () => {
+ moveHighlightTo(currentIndex);
+ });
+ });
+ });
+}
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/slider.js b/resources/views/templates/neler-yapariz/js/slider.js
new file mode 100644
index 0000000..83fe177
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/slider.js
@@ -0,0 +1,378 @@
+// https://codepen.io/GreenSock/pen/gOvvJee?editors=1010
+// https://gsap.com/docs/v3/HelperFunctions/helpers/seamlessLoop/
+
+// https://codepen.io/GreenSock/pen/gOvvJee?editors=1010
+// https://gsap.com/docs/v3/HelperFunctions/helpers/seamlessLoop/
+
+function horizontalLoop(items, config) {
+ let timeline;
+ items = gsap.utils.toArray(items);
+ config = config || {};
+ gsap.context(() => {
+ // use a context so that if this is called from within another context or a gsap.matchMedia(), we can perform proper cleanup like the "resize" event handler on the window
+ let onChange = config.onChange,
+ lastIndex = 0,
+ tl = gsap.timeline({
+ repeat: config.repeat,
+ onUpdate:
+ onChange &&
+ function () {
+ let i = tl.closestIndex();
+ if (lastIndex !== i) {
+ lastIndex = i;
+ onChange(items[i], i);
+ }
+ },
+ paused: config.paused,
+ defaults: { ease: "none" },
+ onReverseComplete: () =>
+ tl.totalTime(tl.rawTime() + tl.duration() * 100),
+ }),
+ length = items.length,
+ startX = items[0].offsetLeft,
+ times = [],
+ widths = [],
+ spaceBefore = [],
+ xPercents = [],
+ curIndex = 0,
+ indexIsDirty = false,
+ center = config.center,
+ pixelsPerSecond = (config.speed || 1) * 100,
+ snap =
+ config.snap === false ? (v) => v : gsap.utils.snap(config.snap || 1), // some browsers shift by a pixel to accommodate flex layouts, so for example if width is 20% the first element's width might be 242px, and the next 243px, alternating back and forth. So we snap to 5 percentage points to make things look more natural
+ timeOffset = 0,
+ container =
+ center === true
+ ? items[0].parentNode
+ : gsap.utils.toArray(center)[0] || items[0].parentNode,
+ totalWidth,
+ getTotalWidth = () =>
+ items[length - 1].offsetLeft +
+ (xPercents[length - 1] / 100) * widths[length - 1] -
+ startX +
+ spaceBefore[0] +
+ items[length - 1].offsetWidth *
+ gsap.getProperty(items[length - 1], "scaleX") +
+ (parseFloat(config.paddingRight) || 0),
+ populateWidths = () => {
+ let b1 = container.getBoundingClientRect(),
+ b2;
+
+ // Reset all items to their natural position first
+ gsap.set(items, {
+ x: 0,
+ xPercent: 0,
+ clearProps: "transform",
+ });
+
+ // Force a reflow
+ items[0].offsetWidth;
+
+ // Get the container's new position after reset
+ startX = items[0].offsetLeft;
+
+ items.forEach((el, i) => {
+ // Get the natural width without any transforms
+ widths[i] = el.offsetWidth;
+
+ // Calculate the space between items
+ b2 = el.getBoundingClientRect();
+ spaceBefore[i] = b2.left - (i ? b1.right : b1.left);
+ b1 = b2;
+
+ // Reset xPercent to 0 for accurate calculations
+ xPercents[i] = 0;
+ });
+
+ // Set all items to their calculated positions
+ gsap.set(items, {
+ xPercent: (i) => xPercents[i],
+ });
+
+ // Calculate total width after all items are positioned
+ totalWidth = getTotalWidth();
+ },
+ timeWrap,
+ populateOffsets = () => {
+ timeOffset = center
+ ? (tl.duration() * (container.offsetWidth / 2)) / totalWidth
+ : 0;
+ center &&
+ times.forEach((t, i) => {
+ times[i] = timeWrap(
+ tl.labels["label" + i] +
+ (tl.duration() * widths[i]) / 2 / totalWidth -
+ timeOffset
+ );
+ });
+ },
+ getClosest = (values, value, wrap) => {
+ let i = values.length,
+ closest = 1e10,
+ index = 0,
+ d;
+ while (i--) {
+ d = Math.abs(values[i] - value);
+ if (d > wrap / 2) {
+ d = wrap - d;
+ }
+ if (d < closest) {
+ closest = d;
+ index = i;
+ }
+ }
+ return index;
+ },
+ populateTimeline = () => {
+ let i, item, curX, distanceToStart, distanceToLoop;
+ tl.clear();
+ for (i = 0; i < length; i++) {
+ item = items[i];
+ curX = (xPercents[i] / 100) * widths[i];
+ distanceToStart = item.offsetLeft + curX - startX + spaceBefore[0];
+ distanceToLoop =
+ distanceToStart + widths[i] * gsap.getProperty(item, "scaleX");
+ tl.to(
+ item,
+ {
+ xPercent: snap(((curX - distanceToLoop) / widths[i]) * 100),
+ duration: distanceToLoop / pixelsPerSecond,
+ },
+ 0
+ )
+ .fromTo(
+ item,
+ {
+ xPercent: snap(
+ ((curX - distanceToLoop + totalWidth) / widths[i]) * 100
+ ),
+ },
+ {
+ xPercent: xPercents[i],
+ duration:
+ (curX - distanceToLoop + totalWidth - curX) / pixelsPerSecond,
+ immediateRender: false,
+ },
+ distanceToLoop / pixelsPerSecond
+ )
+ .add("label" + i, distanceToStart / pixelsPerSecond);
+ times[i] = distanceToStart / pixelsPerSecond;
+ }
+ timeWrap = gsap.utils.wrap(0, tl.duration());
+ },
+ refresh = (deep) => {
+ let progress = tl.progress();
+ tl.progress(0, true);
+
+ // Reset only the x transforms while preserving other properties
+ gsap.set(items, {
+ x: 0,
+ xPercent: 0,
+ });
+
+ // Force a reflow
+ items[0].offsetWidth;
+
+ populateWidths();
+ deep && populateTimeline();
+ populateOffsets();
+
+ if (deep && tl.draggable && tl.paused()) {
+ tl.time(times[curIndex], true);
+ } else {
+ tl.progress(progress, true);
+ }
+ },
+ onResize = () => {
+ if (window.resizeTimeout) clearTimeout(window.resizeTimeout);
+ window.resizeTimeout = setTimeout(() => {
+ refresh(true);
+ }, 100);
+ },
+ proxy;
+ gsap.set(items, { x: 0 });
+ populateWidths();
+ populateTimeline();
+ populateOffsets();
+ window.addEventListener("resize", onResize);
+ function toIndex(index, vars) {
+ vars = vars || {};
+ Math.abs(index - curIndex) > length / 2 &&
+ (index += index > curIndex ? -length : length); // always go in the shortest direction
+ let newIndex = gsap.utils.wrap(0, length, index),
+ time = times[newIndex];
+ if (time > tl.time() !== index > curIndex && index !== curIndex) {
+ // if we're wrapping the timeline's playhead, make the proper adjustments
+ time += tl.duration() * (index > curIndex ? 1 : -1);
+ }
+ if (time < 0 || time > tl.duration()) {
+ vars.modifiers = { time: timeWrap };
+ }
+ curIndex = newIndex;
+ vars.overwrite = true;
+ gsap.killTweensOf(proxy);
+ return vars.duration === 0
+ ? tl.time(timeWrap(time))
+ : tl.tweenTo(time, vars);
+ }
+ tl.toIndex = (index, vars) => toIndex(index, vars);
+ tl.closestIndex = (setCurrent) => {
+ let index = getClosest(times, tl.time(), tl.duration());
+ if (setCurrent) {
+ curIndex = index;
+ indexIsDirty = false;
+ }
+ return index;
+ };
+ tl.current = () => (indexIsDirty ? tl.closestIndex(true) : curIndex);
+ tl.next = (vars) => toIndex(tl.current() + 1, vars);
+ tl.previous = (vars) => toIndex(tl.current() - 1, vars);
+ tl.times = times;
+ tl.progress(1, true).progress(0, true); // pre-render for performance
+ if (config.reversed) {
+ tl.vars.onReverseComplete();
+ tl.reverse();
+ }
+ if (config.draggable && typeof Draggable === "function") {
+ proxy = document.createElement("div");
+ let wrap = gsap.utils.wrap(0, 1),
+ ratio,
+ startProgress,
+ draggable,
+ dragSnap,
+ lastSnap,
+ initChangeX,
+ wasPlaying,
+ align = () =>
+ tl.progress(
+ wrap(startProgress + (draggable.startX - draggable.x) * ratio)
+ ),
+ syncIndex = () => tl.closestIndex(true);
+ typeof InertiaPlugin === "undefined" &&
+ console.warn(
+ "InertiaPlugin required for momentum-based scrolling and snapping. https://greensock.com/club"
+ );
+ draggable = Draggable.create(proxy, {
+ trigger: items[0].parentNode,
+ type: "x",
+ onPressInit() {
+ let x = this.x;
+ gsap.killTweensOf(tl);
+ wasPlaying = !tl.paused();
+ tl.pause();
+ startProgress = tl.progress();
+ refresh();
+ ratio = 1 / totalWidth;
+ initChangeX = startProgress / -ratio - x;
+ gsap.set(proxy, { x: startProgress / -ratio });
+ },
+ onDrag: align,
+ onThrowUpdate: align,
+ overshootTolerance: 0,
+ inertia: true,
+ snap(value) {
+ //note: if the user presses and releases in the middle of a throw, due to the sudden correction of proxy.x in the onPressInit(), the velocity could be very large, throwing off the snap. So sense that condition and adjust for it. We also need to set overshootTolerance to 0 to prevent the inertia from causing it to shoot past and come back
+ if (Math.abs(startProgress / -ratio - this.x) < 10) {
+ return lastSnap + initChangeX;
+ }
+ let time = -(value * ratio) * tl.duration(),
+ wrappedTime = timeWrap(time),
+ snapTime = times[getClosest(times, wrappedTime, tl.duration())],
+ dif = snapTime - wrappedTime;
+ Math.abs(dif) > tl.duration() / 2 &&
+ (dif += dif < 0 ? tl.duration() : -tl.duration());
+ lastSnap = (time + dif) / tl.duration() / -ratio;
+ return lastSnap;
+ },
+ onRelease() {
+ syncIndex();
+ draggable.isThrowing && (indexIsDirty = true);
+ },
+ onThrowComplete: () => {
+ syncIndex();
+ wasPlaying && tl.play();
+ },
+ })[0];
+ tl.draggable = draggable;
+ }
+ tl.closestIndex(true);
+ lastIndex = curIndex;
+ onChange && onChange(items[curIndex], curIndex);
+ timeline = tl;
+ return () => window.removeEventListener("resize", onResize); // cleanup
+ });
+ return timeline;
+}
+
+/* -- Global Params */
+const sliderParams = {
+ duration: 0.5,
+ ease: "power2.out",
+};
+
+addEventListener("GSAPReady", (event) => {
+ const wrapper = document.querySelector("[data-animate='slider']");
+ const slides = [...wrapper.querySelector("[data-slider='slides']").children];
+
+ /* -- Setup Slider UI */
+ const progress = wrapper.querySelector("[data-slider='progress']");
+ const next = wrapper.querySelector("[data-slider='next']");
+ const prev = wrapper.querySelector("[data-slider='prev']");
+ let currentIndex = 0;
+
+ const dots = [...wrapper.querySelector("[data-slider='dots']").children].map(
+ (item, index) => {
+ const btn = item.children[0];
+ btn.addEventListener("click", () => {
+ loop.toIndex(index, sliderParams);
+ });
+
+ return btn;
+ }
+ );
+
+ /* -- Helper Functions */
+ const updateCurrent = (index) => {
+ // handle dots
+ dots[currentIndex].classList.remove("current");
+ dots[index].classList.add("current");
+ slides[currentIndex].classList.remove("current");
+ slides[index].classList.add("current");
+ // handle slides
+ // ...
+ gsap.to(progress.children[0], {
+ width: `${(index / (slides.length - 1)) * 100}%`,
+ duration: 0.6,
+ ease: "expo.out",
+ });
+
+ // save the previous position
+ currentIndex = index;
+ };
+
+ /* -- Setup Slider */
+ let loop;
+ setTimeout(() => {
+ loop = horizontalLoop(slides, {
+ paused: true,
+ draggable: true,
+ // draggableOptions: {
+ // dragResistance: 10,
+ // resistance: 10,
+ // },
+ center: true,
+ onChange: (element, index) => {
+ updateCurrent(index);
+ },
+ });
+ }, 500);
+ // (*) THIS IS JUST TO CHECK PLEASE REMOVE
+
+ next.addEventListener("click", () => {
+ loop.next(sliderParams);
+ });
+
+ prev.addEventListener("click", () => {
+ loop.previous(sliderParams);
+ });
+});
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/js/text.js b/resources/views/templates/neler-yapariz/js/text.js
new file mode 100644
index 0000000..fd829bf
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/js/text.js
@@ -0,0 +1,165 @@
+{
+
+/** Utility Functions */
+const split = (text, type = "chars") => {
+ text.setAttribute("aria-label", text.textContent);
+ const splits = new SplitText(text, { type });
+ splits[type].forEach((char) => char.setAttribute("aria-hidden", "true"));
+ return splits[type];
+};
+
+const getParams = (item) => {
+ const { duration, delay, stagger, ease, type } = item.dataset;
+ const params = {
+ duration: 1.2,
+ delay: 0,
+ type: "chars",
+ };
+
+ if (duration) params.duration = parseFloat(duration);
+ if (delay) params.delay = parseFloat(delay);
+ if (type && (type === "chars" || type === "words" || type === "lines"))
+ params.type = type;
+
+ return params;
+};
+
+const baseAnimation = (item) => {
+ const params = getParams(item);
+ return {
+ duration: params.duration,
+ delay: params.delay,
+ ease: "expo.out",
+ // stagger each item so the letters come in one after the other
+ stagger: {
+ each: 0.04,
+ from: "start",
+ },
+ scrollTrigger: {
+ trigger: item,
+ // use scrolltrigger to trigger on enter and reset on exit
+ toggleActions: "play reset play reset",
+ },
+ };
+};
+
+/** (1) Split Reveal Animation */
+function createSplitRevealAnimation(item) {
+ const params = getParams(item); // 1. get params from attributes
+ const text = split(item, params.type); // 2. split the text
+ item.style.overflow = "hidden"; // 3. set container to overflow
+
+ // 4. create the animation
+ return gsap.fromTo(
+ text,
+ { yPercent: 120 },
+ {
+ ...baseAnimation(item),
+ yPercent: 0,
+ }
+ );
+}
+
+function createScrambledAnimation(item) {
+ const text = item.textContent;
+ const randomText = Array(text.length)
+ .fill()
+ .map(() => String.fromCharCode(Math.floor(Math.random() * (90 - 65) + 65)))
+ .join("")
+ .toLowerCase();
+
+ return gsap.fromTo(
+ item.children[0],
+ {
+ scrambleText: randomText,
+ },
+ {
+ ...baseAnimation(item),
+ scrambleText: text,
+ chars: text,
+ }
+ );
+}
+
+function createAlphaAnimation(item) {
+
+ const params = getParams(item); // 1. get params from attributes
+ const text = split(item, "chars"); // 2. split the text
+
+ return gsap.fromTo(
+ text,
+ { autoAlpha: 0 },
+ {
+ ...baseAnimation(item),
+ autoAlpha: 1,
+ stagger: {
+ each: 0.02,
+ from: "random",
+ },
+ }
+ );
+}
+
+function createSideAnimation(item) {
+ const params = getParams(item);
+ const outer = split(item, "chars");
+ outer.forEach((char) => {
+ char.style.overflow = "hidden";
+ });
+ const inner = split(item.children[0], "chars");
+
+ return gsap.fromTo(
+ inner,
+ { x: 100 },
+ {
+ ...baseAnimation(item),
+ x: 0,
+ stagger: {
+ each: 0.02,
+ from: "end",
+ },
+ }
+ );
+}
+
+function createUpDownAnimation(item) {
+ const params = getParams(item);
+ const outer = split(item, "chars");
+ outer.forEach((char) => {
+ char.style.overflow = "hidden";
+ });
+ const inner = split(item.children[0], "chars");
+
+ return gsap.fromTo(
+ inner,
+ {
+ yPercent: (i) => {
+ return i % 2 === 0 ? 100 : -100;
+ },
+ },
+ {
+ ...baseAnimation(item),
+ yPercent: 0,
+ stagger: {
+ each: 0.02,
+ from: "random",
+ },
+ }
+ );
+}
+
+/** Main Text Effect Wrapper */
+addEventListener("GSAPReady", (event) => {
+ const texts = [...document.querySelectorAll('[data-animate="text"]')];
+
+ texts.forEach((item) => {
+ if (item.dataset.type === "chars") createSplitRevealAnimation(item);
+ else if (item.dataset.type === "words") createSplitRevealAnimation(item);
+ else if (item.dataset.type === "scramble") createScrambledAnimation(item);
+ else if (item.dataset.type === "alpha") createAlphaAnimation(item);
+ else if (item.dataset.type === "side") createSideAnimation(item);
+ else if (item.dataset.type === "updown") createUpDownAnimation(item);
+ });
+});
+
+}
\ No newline at end of file
diff --git a/resources/views/templates/neler-yapariz/navigation.blade.php b/resources/views/templates/neler-yapariz/navigation.blade.php
new file mode 100644
index 0000000..9f1d278
--- /dev/null
+++ b/resources/views/templates/neler-yapariz/navigation.blade.php
@@ -0,0 +1 @@
+