Check server response of

Server response
NS records
Whois domain
Response headers
Request headers
Raw HTML code
301 Moved Permanently - chtal.com
HTTP Status: 301
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Date: Tue, 06 May 2025 00:14:46 GMT
Content-Type: text/html
Content-Length: 166
Connection: keep-alive
strict-transport-security: max-age=31536000
Location: https://www.chitalleather.com/
X-Cluster-Name: eu-north-1-prod-hosting-red

HTTP Code 301 Moved Permanently

301 status code means that the requested resource has been permanently moved to a new URL. All future requests should use the new address.

When is Code 301 used?

  • When changing a website domain
  • When modifying URL structures
  • When setting up redirects for SEO

What does Code 301 mean for the user?

The browser will automatically redirect the user to the new address, and search engines will update their indexes.

200 OK - https://chtal.com/
HTTP Status: 200
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Date: Tue, 06 May 2025 00:14:47 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
CF-Ray: 93b44787de92f8a0-ARN
CF-Cache-Status: HIT
Age: 203225
Last-Modified: Sun, 27 Apr 2025 18:47:56 GMT
Strict-Transport-Security: max-age=31536000
surrogate-control: max-age=432000
surrogate-key: www.chitalleather.com 6797cfc2ad8a60816f5e9a30 pageId:6797cfc2ad8a60816f5e9a37 6798cd0ccd9ca24a8bf58e51
x-lambda-id: 22cb6628-d58c-4c86-a5a2-64e20ae180a3
vary: Accept-Encoding
Set-Cookie: _cfuvid=Ob6KsOdKm16Z5MGaxe5eGiyfSSg3FHcGJ0M6v1Kv3tw-1746490487203-0.0.1.1-604800000; path=/; domain=.cdn.webflow.com; HttpOnly; Secure; SameSite=None
alt-svc: h3=":443"; ma=86400
X-Cluster-Name: eu-north-1-prod-hosting-red

HTTP Code 200 OK

200 status code is a standard successful HTTP server response. It means that the client’s request (e.g., from a browser) was successfully processed, and the server is delivering the requested data.

When is Code 200 used?

  • When loading a web page
  • When successfully receiving an API response
  • When processing a form or another HTTP request

What does Code 200 mean for the user?

The user receives content without errors, and the page or application functions properly. If Code 200 is accompanied by data, the browser or program processes and displays it to the user.

GET / HTTP/1.1
Host: chtal.com
Accept: */*
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
<!DOCTYPE html><!-- This site was created in Webflow. https://webflow.com --><!-- Last Published: Wed Apr 02 2025 18:38:04 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="www.chitalleather.com" data-wf-page="6797cfc2ad8a60816f5e9a37" data-wf-site="6797cfc2ad8a60816f5e9a30"><head><meta charset="utf-8"/><title>Chital</title><meta content="We are creating the most Impactful Leather™, transforming an ecological challenge into a material with meaning.  At Chital, we are driven by the concept of furtherance—the idea that our work should not only sustain but actively restore, heal, and provide." name="description"/><meta content="Chital" property="og:title"/><meta content="We are creating the most Impactful Leather™, transforming an ecological challenge into a material with meaning.  At Chital, we are driven by the concept of furtherance—the idea that our work should not only sustain but actively restore, heal, and provide." property="og:description"/><meta content="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/67ad185baa92b004fd231ff0_og%20image.png" property="og:image"/><meta content="Chital" property="twitter:title"/><meta content="We are creating the most Impactful Leather™, transforming an ecological challenge into a material with meaning.  At Chital, we are driven by the concept of furtherance—the idea that our work should not only sustain but actively restore, heal, and provide." property="twitter:description"/><meta content="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/67ad185baa92b004fd231ff0_og%20image.png" property="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="Webflow" name="generator"/><link href="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/css/chital-splash.webflow.443307a6a.css" rel="stylesheet" type="text/css"/><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/67ad18ff9c658fb37207a321_favicon.ico" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/67ad18fadcb40e4e1f716da6_web-app-manifest-512x512.png" rel="apple-touch-icon"/><style>
  [fade-delay] {
    opacity: 0.0;
  }
</style></head><body class="home-body"><div class="global-styling w-embed"><style>
html {
	--mask-opacity: 0.0;
}
body {
	overflow-x: hidden;
}
a {
	text-decoration: none;
  color: inherit;
}
[fade-delay].visible {
	opacity: 1.0;
  transition: 0.5s opacity;
}
.w-input:focus {
	border-color: inherit !important;
}
/* Dark color scheme */
/*
.dark .w-input:focus {
	border-color: black !important;
}
*/

/* International telephone input */
.iti__country-list {
	background-color: black !important;
  border-color: #fff6 !important;
}
/*
.dark .iti__country-list {
	background-color: var(--spotted-beige) !important;
}
*/
.iti__country {
	font-weight: inherit;
}
.iti__country-name {
	color: white !important;
}
/*
.dark .iti__country-name {
	color: black !important;
}
*/
.iti__divider {
	border-color: #fff6 !important;
}
input {
  background-color: transparent !important;
}

input::placeholder, textarea::placeholder {
	color: inherit !important;
  opacity: 0.66 !important;
}

input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus, 
input:-webkit-autofill:active {
	-webkit-background-clip: text;
  -webkit-text-fill-color: white;
  transition: background-color 5000s ease-in-out 0s;
  box-shadow: inset 0 0 20px 20px #000000;
}

/*
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0px 1000px white inset !important;
  box-shadow: 0 0 0px 1000px white inset !important;
  background-color: transparent !important;
  color: inherit !important;
}
*/

.nav-br a {
	text-decoration: underline;
}
@media(max-width: 991px) {
	.nav-br.collapsed .mobile-expander {
    top: -20px;
  }
  .nav-br.collapsed .more {
    display: flex;
  }
  .nav-br.collapsed .less {
    display: none;
  }
  .nav-br.collapsed .links-wrapper {
    height: 0;
    transition: 0.3s all;
  }
}

.modal {
	transition: 0.3s all;
}
.modal.hidden {
	transition: 0.3s all;
}
.nav-bottom, .faq-container h2 {
	user-select: none;
  -webkit-user-select: none;
}
.nav-container > * {
	pointer-events: all;
}
.about-container.hidden .movement-wrapper, .faq-container.hidden .movement-wrapper {
	transform: translateY(50vh);
  transition: 0.66s transform;
}
.about-container .movement-wrapper, .faq-container .movement-wrapper {
	transform: translateY(0);
  transition: 0.66s transform;
  transition-delay: 0.3s;
}

.to-expand .w-richtext p {
	margin-bottom: 1em;
}
.to-expand .w-richtext blockquote {
	border-left: 0;
  font-size: inherit;
  font-style: italic;
}
.to-expand .w-richtext figure {
	margin-bottom: 20px;
}
.to-expand .w-richtext a {
	text-decoration: underline;
}
</style></div><div id="about-container" class="about-container hidden"><div class="content-container"><div class="movement-wrapper"><h2>ABOUT</h2><h3>Crafted with Purpose</h3><p class="p-standard">At Chital, we are driven by the concept of furtherance—the idea that our work should not only sustain but actively restore, heal, and provide. We are creating the most Impactful Leather™, transforming an ecological challenge into a material with meaning, and crafting exquisite essentials that carry forward a collective effort toward balance.<br/><br/>Beyond sustainability, toward true reciprocity. Every CHITAL piece represents a shift—from extraction to restoration, from fleeting trends to lasting impact. By working with ethically harvested Hawaiian Axis deer, we turn an environmental challenge into a force for resilience, crafting leather that is as intentional as it is beautiful.</p><h3>A Watershed Moment</h3><p class="p-standard">Every journey has its watershed moment—that point where streams of experience converge into something new. After years of innovating for Nike athletes, creating products that captured global attention in fleeting bursts, I felt the pull of a different current.<br/><br/>Here, in Maui’s upcountry, where the land tells stories of balance, adaptation, and deep connection, I found a path toward impact that runs deeper than momentary hype. It is a path shaped by craft, responsibility, and the belief that what we make should not only be beautiful—but meaningful.</p><h3>Let’s Work Together</h3><p class="p-standard">We invite you to be part of this story. Whether you’re a maker, a designer, or simply someone who values the connection between material and mission, we’d love to hear from you.<br/><br/><span class="underline contact-link">Drop us a line</span>, and let’s talk.</p></div></div></div><div id="faq-container" class="faq-container hidden"><div class="content-container"><div class="movement-wrapper"><h2>Not So FAQ</h2><div class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><div class="expander"><h3 class="expander__heading">What inspires you?</h3><div class="expander__symbol-container"><div class="expander__symbol">[<span class="plus">+</span>]</div><div class="expander__symbol minus">-</div></div></div><div class="to-expand"><div class="p-standard w-richtext"><p><strong>‘O wai ‘oe?</strong><br/><strong>Who are you? What water are you connected to?</strong></p><p>This question, from <a href="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/67b6199d9ce421cbd7e491f5_ModernHuntsmanVolume07_Ku%27ulaniMuise_TylerSharp_MauiNui.pdf" target="_blank">Kuʻulani Muise’s powerful reflection</a>, speaks to the deep relationship between identity and water. In Hawaiian, the word for freshwater—“wai”—can also mean “who.” It reminds us that water shapes us, nourishes us, and connects us to both place and lineage.</p><blockquote><strong>“What water do you return to in recollection or reality?</strong> Is it a rushing run of a river or a memory of morning groundmist? A still-poured lake, perhaps? A torrent, a tidewater or simply the faithful gushing of the kitchen tap? I suspect you can recall one form or another, or most likely many, and now, your waters fresh in mind, what might be gleaned from these connections? </blockquote><blockquote><strong>If we are connected enough to know by name the waters that nourish us, how might we nourish them in return?”</strong></blockquote><p>These words resonate deeply with our vision. At Chital, we believe in honoring the intricate connections between people and place—between land, water, and the materials we craft. Like water shaping the earth, we recognize that our actions leave an imprint. Our work is guided by a commitment to reciprocity: to create with purpose, to restore balance, and to ensure that what nourishes us today continues to sustain generations to come.</p></div></div></div><div role="listitem" class="w-dyn-item"><div class="expander"><h3 class="expander__heading">What does Chital mean?</h3><div class="expander__symbol-container"><div class="expander__symbol">[<span class="plus">+</span>]</div><div class="expander__symbol minus">-</div></div></div><div class="to-expand"><div class="p-standard w-richtext"><p>Like water carving its path through volcanic stone, language carries meaning across time and distance, connecting cultures and landscapes. Chital (चितल) traces its roots to Sanskrit, where it means “spotted” or “variegated”—a name given to the swift, graceful deer adorned with white-flecked coats, reminiscent of stars scattered across the night sky.</p><p>In Indian mythology, these deer move between worlds, symbols of beauty, agility, and adaptability. Today, their descendants roam Maui, becoming part of a new story—one of balance, responsibility, and the deep, intertwined relationship between land and sea. Through Chital, we honor both their past and their evolving role in restoring harmony to the island.</p></div></div></div><div role="listitem" class="w-dyn-item"><div class="expander"><h3 class="expander__heading">Who are your Mission Partners?</h3><div class="expander__symbol-container"><div class="expander__symbol">[<span class="plus">+</span>]</div><div class="expander__symbol minus">-</div></div></div><div class="to-expand"><div class="p-standard w-richtext"><figure class="w-richtext-align-normal w-richtext-figure-type-image"><div><img src="https://cdn.prod.website-files.com/6798cd0ba5eb2a1d6bf8adf0/67ed729c236a75b095501438_mauinui-%23f9e4c9.png" loading="lazy" alt=""/></div></figure><p>Restoring balance to Maui’s delicate ecosystems by helping to manage the exponential growth of Axis deer - a highly invasive species that threatens critical watersheds and native biodiversity.  Through sustainable and stress-free wild harvesting, unlike anything else in the world, Maui Nui  transforms this overabundant species into a nutrient-dense, delicious food source that nourishes communities.</p><p>Visit <a href="http://mauinuivenison.com" target="_blank">mauinuivenison.com</a></p></div></div></div><div role="listitem" class="w-dyn-item"><div class="expander"><h3 class="expander__heading">What is Impactful Leather?</h3><div class="expander__symbol-container"><div class="expander__symbol">[<span class="plus">+</span>]</div><div class="expander__symbol minus">-</div></div></div><div class="to-expand"><div class="p-standard w-richtext"><p><strong>Leather That Tells a Story</strong></p><p>A touch that feels otherworldly. A connection that is deeply grounded. This is leather with a purpose—carrying forward the mission to heal the land, restore balance, and nourish communities. More than sustainable, it’s <strong>Impactful Leather™</strong>—a material with meaning.</p><p>Sourced exclusively from <strong>Hawaiian Axis deer</strong>, each hide comes from a <strong>100% stress-free, wild harvest</strong>, a process pioneered by <strong>Maui Nui Venison</strong> to ethically manage deer populations and regenerate Maui’s ecosystems. This isn’t just leather—it’s a commitment to balance, resilience, and responsible stewardship.</p><p><strong>Crafted for the Senses</strong></p><p>Unlike traditional vegetable-tanned leather, which is often stiff and rigid, our leather harnesses <strong>timeless tanning techniques</strong> combined with the unique properties of Axis deer to create a material that is remarkably supple, irresistibly smooth, and only grows more beautiful with age.</p><p><strong>Full-grain. Full-aniline. Fully alive.</strong></p><p>Every piece reveals the raw, untamed beauty of nature—its grain unhidden, its story unfiltered. As it wears, it patinas, deepening in richness and character, a testament to the journey it takes with you.</p><p>This is leather redefined—<strong>a connection to the land, a touch of the wild, a legacy in the making.</strong></p></div></div></div><div role="listitem" class="w-dyn-item"><div class="expander"><h3 class="expander__heading">How can we work together?</h3><div class="expander__symbol-container"><div class="expander__symbol">[<span class="plus">+</span>]</div><div class="expander__symbol minus">-</div></div></div><div class="to-expand"><div class="p-standard w-richtext"><figure style="max-width:40%" class="w-richtext-align-normal w-richtext-figure-type-image"><div><img src="https://cdn.prod.website-files.com/6798cd0ba5eb2a1d6bf8adf0/67d3164aea8928053bcb9639_leather.jpg" loading="lazy" alt=""/></div></figure><p>We believe leather should be more than just a material—it should carry meaning, tell a story, and contribute to something greater. Impactful Leather™ is sourced with purpose, crafted with care, and designed to connect people, land, and craft in a way that restores balance.</p><p>We love collaborating with craftspeople, artists, leather makers, designers, and makers of all types who share our vision for thoughtful, responsible craftsmanship. Whether you’re working on a small-batch collection, a custom design, or something entirely new, we’d love to explore the possibilities with you.</p><p><br/>Leather availability:</p><p>• Whole hides, approximately 5–7 sq ft</p><p>• Thickness range: 0.8–1.4mm</p><p><br/>Let’s create something meaningful together. Drop us a line and let’s talk about your project.</p><p>‍</p></div></div></div></div></div></div></div></div><div class="central-container masked"><div class="bg-container"><div class="bg-image inactive"></div><div id="bg-video-wrapper" class="bg-video hidden"><div class="video-embed w-embed w-iframe"><style>
#bg-video, .video-poster {
	box-sizing: border-box;
  height: 56.25vw;
  min-height: 100%;
  min-width: 100%;
  transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  width: 177.77777778vh;
}
</style>
<iframe
	id="bg-video"
	title="vimeo-player"
  src="https://player.vimeo.com/video/1058364827?h=4c343f1b5e&background=1"
  width="100%"
  height="100%"
  frameborder="0"   
  allowfullscreen
></iframe></div><div id="video-poster" class="video-poster"></div></div><div class="video-styling w-embed"><style>
.central-container.masked .flat-logo {
	display: none;
}
.central-container.masked .bg-container {
	mask-image: url(https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/6797d6888bddf64a2677c351_Chital_Logotype_BLACK.svg), radial-gradient(rgba(0, 0, 0, var(--mask-opacity)), rgba(0, 0, 0, var(--mask-opacity)));
  mask-repeat: no-repeat;
  /*mask-mode: luminance;*/
  mask-position: center center;
}
.central-container.masked .bg-video.hidden {
	opacity: 0;
}
.bg-container.faded {

}
.bg-container .w-background-video > video {
	z-index: auto !important;
}
</style></div></div><div class="nav-container"><div class="nav-top"><div class="flat-logo w-embed"><svg width="100%" viewBox="0 0 162 31" fill="none" xmlns="http://www.w3.org/2000/svg">
  <g clip-path="url(#clip0_199_122)">
  <path d="M71.4632 18.906C70.9294 18.0005 69.9749 17.9215 68.3354 18.8147C64.7297 20.7782 60.8503 21.828 56.7993 22.3195C54.4981 22.5987 52.4011 22.3795 50.9564 20.1832C49.4435 17.882 47.2254 17.622 44.7294 18.33C41.5921 19.2205 38.4575 20.1096 35.4823 21.4726C35.0642 21.6646 34.5373 21.9696 34.1342 21.6115C33.6522 21.184 34.1301 20.7319 34.3494 20.3479C35.5967 18.1748 36.8453 16.003 38.1389 13.8584C38.7013 12.9257 39.3712 12.106 40.6158 11.9535C41.4205 11.8541 41.9203 11.2863 42.0319 10.4666C42.1368 9.69324 41.7528 9.12136 41.1387 8.72104C40.0643 8.02117 38.9328 7.95717 37.8176 8.62709C36.9515 9.14859 36.2162 9.84438 35.6743 10.6831C33.5895 13.9129 31.2706 17.0038 29.5658 20.4623C29.1382 21.3296 28.5854 21.6101 27.6295 21.5992C24.8476 21.5652 22.0657 21.5216 19.2865 21.8757C15.4057 22.3713 11.514 22.8138 7.80075 22.9377C7.03004 22.9377 6.46358 22.9622 5.89849 22.9323C4.57494 22.8628 4.23044 22.295 4.72881 21.0491C5.76096 18.473 10.373 15.6993 13.1508 16.0316C15.0939 16.2644 17.0316 16.5531 18.9651 16.8526C19.7141 16.9684 20.3935 16.9262 20.7925 16.2222C21.2051 15.4965 20.9886 14.7884 20.4657 14.192C19.8788 13.5208 19.07 13.1912 18.2598 12.8604C14.315 11.2468 10.52 11.7847 6.79583 13.5847C4.35026 14.7666 2.31864 16.421 0.921562 18.7453C-1.48861 22.7512 1.06726 27.5046 5.65611 27.5359C7.99956 27.5522 10.3389 27.3848 12.6742 27.1438C16.6993 26.7285 20.64 25.71 24.6923 25.5003C27.1366 25.3737 27.1366 25.3668 26.7539 27.7742C26.3822 30.1189 28.0285 31.5323 30.2916 30.8106C30.9588 30.5982 31.5906 30.3218 32.1516 29.8942C36.0528 26.9218 40.3571 24.7269 45.0426 23.2277C46.1987 22.8587 47.1124 22.8397 47.943 23.865C49.8602 26.2288 52.3807 27.0798 55.3805 26.5787C56.4521 26.4003 57.5278 26.2356 58.5886 26.0041C62.5497 25.1395 66.4836 24.1986 69.9368 21.9328C71.3883 20.9811 72.0038 19.8264 71.4591 18.9032L71.4632 18.906Z" fill="currentColor"/>
  <path d="M66.8898 16.677C68.7758 17.0936 70.5881 16.8022 72.3039 15.9662C72.8213 15.7143 73.2339 15.2595 73.0841 14.6209C72.9425 14.015 72.4482 13.6991 71.8463 13.6473C71.2458 13.5956 70.6372 13.6365 70.0326 13.6365C68.9909 13.5793 67.9506 13.6079 66.9443 13.8965C66.2403 14.098 65.6303 14.5338 65.5935 15.2854C65.5554 16.071 66.1573 16.5149 66.8898 16.677Z" fill="currentColor"/>
  <path d="M160.868 22.1411C160.603 21.9192 160.3 21.7435 160.015 21.5461C157.487 19.7978 154.541 19.8141 151.705 19.9475C146.573 20.1913 141.543 21.2002 136.579 22.5591C132.516 23.6716 128.486 24.9352 124.309 25.6173C123.228 25.793 122.092 26.0898 121.068 25.6282C120.407 25.33 119.862 24.4109 120.084 23.5953C120.573 21.8102 122.403 20.7863 124.435 19.4642C128.001 17.1426 131.65 15.0307 135.209 12.6969C138.84 10.3154 142.479 7.95167 145.493 4.79135C146.916 3.30038 147.221 1.90744 146.431 0.879421C145.564 -0.249362 144.27 -0.337867 142.341 0.880783C136.355 4.66336 130.547 8.70737 125.328 13.4921C120.859 17.5879 115.456 19.6875 109.671 20.981C107.864 21.3854 105.946 21.4249 104.137 20.6883C103.511 20.4336 103.062 20.1681 103.617 19.362C104.73 17.7431 104.5 16.8131 102.845 15.7238C102.464 15.4719 102.083 15.2922 101.877 14.7993C101.326 13.4744 99.9748 12.6738 98.5559 12.9338C96.8783 13.2402 95.2647 13.774 93.6974 14.4439C88.7532 16.5544 84.4013 19.6589 79.8982 22.5101C78.8429 23.1787 77.7495 23.7601 76.6193 24.2652C76.1577 24.4722 75.7002 23.9684 75.9562 23.5341L75.9616 23.5259C77.4703 20.9565 79.0254 18.4838 80.4374 15.7878C80.8092 15.077 81.426 14.9082 82.1708 14.8782C84.4762 14.787 86.7801 14.6781 89.0827 14.5501C89.9433 14.5024 90.8706 14.3213 90.8611 13.2538C90.8515 12.2816 90.0345 11.9222 89.1508 11.7887C87.6012 11.5572 86.0543 11.5858 84.4843 11.628C82.7332 11.6743 82.6883 11.2781 83.0491 9.9941C83.2983 9.10633 83.2084 8.28391 82.273 7.91627C81.2585 7.51732 80.6049 8.29889 80.1842 9.20436C80.1133 9.3555 80.0575 9.51209 80.0099 9.6714C79.4856 11.4551 79.8928 12.3361 77.4948 12.9093C77.2947 12.957 76.2966 13.1735 75.7859 13.4159C75.3448 13.6255 75.1609 14.1307 75.2508 14.6849C75.3434 15.2608 75.7928 15.2976 76.3851 15.333C77.5888 15.4038 77.7168 15.6857 76.863 17.0133C75.7642 18.7221 74.4719 20.3002 73.2369 21.9151C72.2633 23.1882 71.3278 24.4817 70.5721 25.8951C69.431 28.0288 70.4386 29.8384 72.8474 29.9568C74.2718 30.0263 75.6035 29.6423 76.8644 29.0064C80.319 27.2635 83.6932 25.3859 86.8659 23.1678C87.4691 22.7457 88.1214 22.393 88.7545 22.0145C89.2747 21.7027 89.5743 21.8211 89.8616 22.3944C90.8311 24.3238 91.9354 24.8371 94.0746 24.5757C95.5479 24.3946 96.8048 23.7097 98.0466 23.003C98.9004 22.5183 99.5663 22.4611 100.386 23.1433C101.46 24.0379 102.77 24.5267 104.173 24.7677C107.581 25.3545 110.84 24.7119 114.048 23.6307C114.449 23.4959 114.847 23.3434 115.261 23.2182C115.802 23.0548 116.326 23.5259 116.218 24.0773C116.154 24.4028 116.101 24.7119 116.071 25.0223C115.856 27.2717 117.065 29.1235 119.222 29.8166C120.6 30.2591 122.042 30.3258 123.476 30.2645C126.368 30.1393 129.123 29.2556 131.905 28.5884C136.586 27.4664 141.202 26.0599 145.979 25.3559C150.347 24.7119 154.724 23.6253 159.085 25.4771C160.027 25.8774 161.064 26.0585 161.758 24.9678C162.288 24.1372 161.928 23.0343 160.868 22.1438V22.1411ZM97.7648 19.4805C96.6713 20.0102 95.5711 20.529 94.4627 21.0259C94.2353 21.1281 93.9139 21.2193 93.7328 20.981C93.5449 20.7332 93.7723 20.4895 93.9194 20.2893C94.5376 19.4478 95.1939 18.6349 96.2043 18.2278C96.7694 18.0004 98.1937 18.5927 98.1855 19.1115C98.0766 19.2095 97.9445 19.392 97.7648 19.4791V19.4805Z" fill="currentColor"/>
  </g>
  <defs>
  <clipPath id="clip0_199_122">
  <rect width="162" height="31" fill="white"/>
  </clipPath>
  </defs>
</svg></div><a id="about-toggle" fade-delay="0.3" href="#" class="top-link">About</a><a fade-delay="0.6" href="#" class="top-link contact-link">Contact</a></div><div class="nav-bottom"><div class="inline-subscribe"><div class="w-form"><form id="email-form-2" name="email-form-2" data-name="Email Form 2" method="get" class="inline-subscribe__form" data-wf-page-id="6797cfc2ad8a60816f5e9a37" data-wf-element-id="8b158eeb-6cee-f826-4fcd-283759548bb5" data-turnstile-sitekey="0x4AAAAAAAQTptj2So4dx43e"><input class="inline-subscribe__input w-input" maxlength="256" name="email-3" data-name="Email 3" placeholder="Mobile number or email" type="email" id="multi-input" required=""/><div class="button-wrapper"><img src="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/67abb52cddf0194a36ca5568_subscribe_shape.svg" loading="lazy" alt="" class="button-image"/><input type="submit" data-wait="Please wait..." class="inline-subscribe__submit w-button" value="Subscribe"/></div></form><div class="w-form-done"><div>Thank you! Your submission has been received!</div></div><div class="w-form-fail"><div>Oops! Something went wrong while submitting the form.</div></div></div></div><a id="faq-toggle" fade-delay="0.9" href="#" class="top-link">Not So FAQ</a><div fade-delay="1.2" class="nav-br"><div class="footer-code w-embed w-script"><!--
	Handles functionality triggered by the global footer.
-->

<script>
document.addEventListener('DOMContentLoaded', () => {
	let bgColor = 'white'
  let textColor = 'black'
	const centralContainer = document.querySelector('.central-container')
  if (centralContainer) {
  	bgColor = window.getComputedStyle(centralContainer).backgroundColor
    textColor = window.getComputedStyle(centralContainer).color
  }
	const modals = document.querySelectorAll('.modal')
  // Set modal color scheme to inverse of central area (since it will sit on top of it)
  modals.forEach((modal) => {
  	console.log(modal)
    const bgSvg = modal.querySelector('.modal__shape path')
    if (bgSvg) bgSvg.setAttribute('fill', textColor)
    const bgContents = modal.querySelector('.modal__contents')
    if (bgContents) bgContents.style.color = bgColor
    
    const modalInputs = modal.querySelectorAll('.input')
    modalInputs.forEach((input) => {
    	input.style.borderColor = bgColor
      
      input.addEventListener('focus', () => {
        input.style.borderColor = bgColor
      })
    })
  })

	const onRoot = window.location.pathname === '/' || window.location.pathname === ''

	const collapseEvent = new Event('collapse')
  const bgVideo = document.querySelector('.bg-video')
  const subscribeModal = document.getElementById('subscribe-modal')

	function openSubscribeModal () {
  	if (!onRoot) {
    	window.location.href ='/?subscribe'
      return
    }
  	window.dispatchEvent(collapseEvent)
    if (bgVideo) bgVideo.classList.add('hidden')
    subscribeModal.classList.remove('hidden')
  }

	const urlParams = new URLSearchParams(window.location.search)
  if (urlParams.has('subscribe')) {
  	openSubscribeModal()
  }

	const faqLink = document.getElementById('faq-toggle')
  if (faqLink) {
  	faqLink.addEventListener('click', () => {
    	if (!onRoot) {
      	window.location.href ='/?target=faq'
      }
    })
  }
	// Contact Modal
  const contactModal = document.getElementById('contact-modal')
  
  const contactLinks = document.querySelectorAll('.contact-link')
  contactLinks.forEach((link) => {
    link.addEventListener('click', () => {
    	window.dispatchEvent(collapseEvent)
	    if (bgVideo) bgVideo.classList.add('hidden')
      contactModal.classList.remove('hidden')
    })
  })
  const subscribeLinks = document.querySelectorAll('.subscribe-link')
  subscribeLinks.forEach((link) => {
    link.addEventListener('click', () => {
    	openSubscribeModal()
    })
  })
  const modalHitboxes = document.querySelectorAll('.modal__hitbox')
  modalHitboxes.forEach((box) => {
    box.addEventListener('click', () => {
	    if (bgVideo) bgVideo.classList.remove('hidden')
      box.parentElement.classList.add('hidden')
    })
  })
  
  const mobileExpander = document.querySelector('.mobile-expander')
  const brNav = document.querySelector('.nav-br')
  const linksWrapper = document.querySelector('.links-wrapper')
  console.log(linksWrapper)
  let linksHeight = 180
  if (linksWrapper) linksHeight = linksWrapper.offsetHeight
  if (mobileExpander) {
    mobileExpander.addEventListener('click', () => {
    	if (brNav.classList.contains('collapsed')) {
      	brNav.classList.remove('collapsed')
        linksWrapper.style.height = linksHeight + 'px'
        console.log('Set links height')
      } else {
      	brNav.classList.add('collapsed')
        linksWrapper.style.height = ''
      }
    })
  }
  brNav.classList.add('collapsed')
})
</script></div><div class="mobile-expander"><div class="mr-wrapper more"><div>more</div><img src="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/67d06fb76836873d8beff219_down%20arrow.svg" loading="lazy" alt="" class="arrow up"/></div><div class="mr-wrapper less"><div>less</div><img src="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/67d06fb76836873d8beff219_down%20arrow.svg" loading="lazy" alt="" class="arrow"/></div></div><div class="links-wrapper"><a id="subscribe-toggle" href="#" class="subscribe-link">Subscribe</a><a href="/work-with-us">Work With Us</a><a href="/terms-of-service">Terms of Service</a><a href="/privacy-policy">Privacy Policy</a><p class="copyright">©2025 Chital LLC</p></div></div></div></div><div id="bg-hitbox" class="bg-hitbox"></div></div><div id="subscribe-modal" class="modal hidden"><div class="subscribe-code w-embed w-script"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/build/css/intlTelInput.css">
<style>
.iti {
	display: block !important;
  margin-bottom: 10px;
}
</style>
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/build/js/intlTelInput.min.js"></script>
<script>
const endpointUrl = 'https://dandc-serverless-functions-git-api-updates-dandc.vercel.app/api/klaviyo-signup'

const emailListId = 'UPsqi6'
const smsListId = 'UU5EDu'
const formId = 'chital-signup'
const originId = 'chital'

document.addEventListener('DOMContentLoaded', () => {
	console.log('DOM loaded. Subscribe Modal Code.')
  
  const subscribeModal = document.getElementById('subscribe-modal')
  
  // Custom code for Subscribe modal
  const showEmailForm = document.getElementById('show-email-form')
  const showMobileForm = document.getElementById('show-mobile-form')

  const emailForm = document.getElementById('subscribe-email')
  const emailFormData = document.getElementById('subscribe-email-form')
  const smsForm = document.getElementById('subscribe-mobile')
  const smsFormData = document.getElementById('subscribe-mobile-form')
  
  const smsInput = document.getElementById('subscribe-mobile-number')
  
  const subscribeSubmit = document.getElementById('subscribe-submit')
  const emailError = document.getElementById('email-error')
  const smsError = document.getElementById('sms-error')
  
  const iti = window.intlTelInput(smsInput, {
    utilsScript: 'https://cdn.jsdelivr.net/npm/[email protected]/build/js/utils.min.js',
    onlyCountries: ['us', 'ca'],
    preferredCountries: [],
    initialCountry: 'us'
  })

	let mode = 'email'

  showEmailForm.addEventListener('click', () => {
  	subscribeSubmit.textContent = 'Subscribe'
  	mode = 'email'
  	showEmailForm.classList.add('selected')
    showMobileForm.classList.remove('selected')
    emailForm.classList.remove('inactive')
    smsForm.classList.add('inactive')
  })
  showMobileForm.addEventListener('click', () => {
  	subscribeSubmit.textContent = 'Subscribe'
  	mode = 'sms'
  	showEmailForm.classList.remove('selected')
    showMobileForm.classList.add('selected')
    smsForm.classList.remove('inactive')
    emailForm.classList.add('inactive')
  })
  
  // Email form submission event
  const defaultError = 'Sorry, there was an error. Please try again later.'
  subscribeSubmit.addEventListener('click', async function (event) {
  	if (mode === 'email') {
    	console.log('Submitting email to Klaviyo...')
      emailFormData.reportValidity()

      const formData = new FormData(emailFormData)
      const name = formData.get('subscribe-email-name')
      const email = formData.get('subscribe-email-address')
      const agreement = formData.get('subscribe-email-agree')

      if (!email || !agreement) {
        console.warn('Missing required info.')
        return
      }
      subscribeSubmit.textContent = 'Submitting...'
      emailError.style.display = 'none'

      const bodyObj = {
        fullname: '',
        formId,
        originId,
        email: email,
        listId: emailListId
      }
      if (name) bodyObj.firstName = name

      // POST to the Klaviyo to trigger signup
      let response
      try {
        console.log('Calling Klaviyo endpoint.')
        response = await fetch(endpointUrl, {
          mode: 'cors',
          method: 'POST',
          headers: {
            'Content-Type': 'application/json'
          },
          body: JSON.stringify(bodyObj)
        })
        console.log(response)
      } catch {
        subscribeSubmit.textContent = 'Subscribe'
        emailError.style.display = 'block'
      }

      // Show feedback based on response
      if (response.status == 200) {
        console.log('Success')
        subscribeSubmit.textContent = 'Subscribed!'
      } else {
        subscribeSubmit.textContent = 'Subscribe'
        emailError.style.display = 'block'
      }
      console.log('Email submission complete')
      
    // SMS submission
    } else if (mode === 'sms') {
    	event.preventDefault()
      console.log('Submitting mobile number to Klaviyo...')

			const isValid = iti.isValidNumber()
      if (!isValid) {
      	subscribeSubmit.textContent = 'Subscribe'
        smsError.textContent = 'Invalid Number'
        smsError.style.display = 'block'
      	return
      }
      smsFormData.reportValidity()
      const formData = new FormData(smsFormData)
      const name = formData.get('subscribe-mobile-name')
      const phoneNumber = iti.getNumber()
      const agreement = formData.get('subscribe-mobile-agree')

      if (!phoneNumber || !agreement) {
        console.warn('Missing required info.')
        return
      }
      subscribeSubmit.textContent = 'Submitting...'
      smsError.style.display = 'none'
      smsError.textContent = defaultError

      const bodyObj = {
        fullname: '',
        formId,
        originId,
        phoneNumber,
        listId: smsListId
      }

      if (name) bodyObj.firstName = name

      // POST to the Klaviyo to trigger signup
      let response
      try {
        response = await fetch(endpointUrl, {
          mode: 'cors',
          method: 'POST',
          headers: {
            'Content-Type': 'application/json'
          },
          body: JSON.stringify(bodyObj)
        })
        console.log(response)
      } catch {
        subscribeSubmit.textContent = 'Subscribe'
        smsError.style.display = 'block'
      }

      // Show feedback based on response
      if (response.status == 200) {
        console.log('Success')
        subscribeSubmit.textContent = 'Subscribed!'
      } else {
	      const errorData = await response.json()
      	console.log('Error:', errorData)
        subscribeSubmit.textContent = 'Subscribe'
        smsError.style.display = 'block'
      }
    }
    
  })
})
</script></div><div class="modal__hitbox"></div><div class="modal__central"><div class="modal__shape w-embed"><svg width="908" height="515" viewBox="0 0 908 515" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M129.958 63.2945C345.161 -31.5019 566.3 -14.4257 787.245 89.3368C853.874 120.593 912.26 185.222 907.708 287.435C903.449 384.408 851.326 441.574 780.965 459.126C710.766 476.655 637.68 479.835 565.924 489.339C443.475 514.655 319.412 526.536 194.003 497.215C106.276 476.769 24.8507 418.224 4.92176 301.272C-15.8738 179.018 46.3663 100.147 129.958 63.2945Z" fill="black"/>
</svg></div><div class="modal__contents"><h3 class="modal__header">Subscribe for Updates<em> </em></h3><p class="paragraph">We&#x27;d love to share new projects, product drops, and Maui stories when they become available. Don&#x27;t worry, we are minimalist...we will only send the coolest updates.</p><div class="contact-type"><a id="show-email-form" href="#" class="contact-option selected w-button">Email</a><a id="show-mobile-form" href="#" class="contact-option w-button">SMS</a></div><div class="subscribe-forms-wrapper"><div id="subscribe-email" class="w-form"><form id="subscribe-email-form" name="wf-form-Subscribe-Email" data-name="Subscribe Email" method="post" data-wf-page-id="6797cfc2ad8a60816f5e9a37" data-wf-element-id="7ab7472a-d9ef-cbf9-dbf0-d3d4e3b042b3" data-turnstile-sitekey="0x4AAAAAAAQTptj2So4dx43e"><input class="input w-input" maxlength="256" name="subscribe-email-address" data-name="subscribe-email-address" placeholder="Email Address" data-lpignore="true" type="email" id="subscribe-email-address" data-1p-ignore="true" required=""/><p id="email-error" class="form-error">Sorry, there was an error. Please try again later.</p><label class="w-checkbox"><input type="checkbox" name="subscribe-email-agree" id="subscribe-email-agree" data-name="subscribe-email-agree" required="" class="w-checkbox-input" checked=""/><span class="checkbox-label w-form-label" for="subscribe-email-agree">Emails will be sent by or on behalf of Chital. You may withdraw your consent at any time. <a href="/privacy-policy">Privacy Policy / Do Not Sell My Personal Information</a>.</span></label></form><div class="w-form-done"><div>Thank you! Your submission has been received!</div></div><div class="w-form-fail"><div>Oops! Something went wrong while submitting the form.</div></div></div><div id="subscribe-mobile" class="inactive w-form"><form id="subscribe-mobile-form" name="wf-form-Subscribe-Phone" data-name="Subscribe Phone" action="http://#" method="post" data-wf-page-id="6797cfc2ad8a60816f5e9a37" data-wf-element-id="7ab7472a-d9ef-cbf9-dbf0-d3d4e3b042c0" data-turnstile-sitekey="0x4AAAAAAAQTptj2So4dx43e"><input class="input w-input" maxlength="256" name="subscribe-mobile-number" data-name="subscribe-mobile-number" placeholder="Mobile Number" type="tel" id="subscribe-mobile-number" required=""/><p id="sms-error" class="form-error">Sorry, there was an error. Please try again later.</p><label class="w-checkbox"><input type="checkbox" name="subscribe-mobile-agree" id="subscribe-mobile-agree" data-name="subscribe-mobile-agree" required="" class="w-checkbox-input" checked=""/><span class="checkbox-label w-form-label" for="subscribe-mobile-agree">By submitting this form, I agree to receive text messages from and about Chital (including prerecorded and / or by autodialer). Up to 20 messages per month per opt-in. Consent is not a condition of any purchase. Reply STOP to cancel. Reply HELP for help. Msg &amp; Data Rates may apply. See <a href="/terms-of-service">Terms</a> and <a href="/privacy-policy">Privacy Policy</a>.</span></label></form><div class="w-form-done"><div>Thank you! Your submission has been received!</div></div><div class="w-form-fail"><div>Oops! Something went wrong while submitting the form.</div></div></div><a id="subscribe-submit" href="#" class="text-button a w-button">Subscribe</a></div></div></div></div><div id="contact-modal" class="modal hidden"><div class="modal__hitbox"></div><div class="modal__central"><div class="modal__shape c w-embed"><svg width="695" height="593" viewBox="0 0 695 593" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M88.7857 58.117C247.912 -40.1003 417.505 -8.61122 591.551 123.128C644.035 162.816 692.003 240.665 693.957 358.642C695.855 470.575 659.13 533.926 606.391 550.491C553.773 567.039 498.191 566.837 443.959 574.02C351.899 596.8 257.893 603.956 160.674 563.386C92.6701 535.082 27.4503 463.047 6.0401 326.723C-16.3125 184.221 26.9778 96.3027 88.7857 58.117Z" fill="black"/>
</svg></div><div class="modal__contents"><h3 class="modal__header">Contact Us</h3><div class="w-form"><form id="email-form" name="email-form" data-name="Email Form" method="get" data-wf-page-id="6797cfc2ad8a60816f5e9a37" data-wf-element-id="860dba18-85af-280b-422c-d7fa4d342bd9" data-turnstile-sitekey="0x4AAAAAAAQTptj2So4dx43e"><select id="contact-reason" name="Contact-Reason" data-name="Contact Reason" class="input w-select"><option value="">Select a reason for contacting...</option><option value="partnerships-collaborations">Partnerships &amp; Collaborations</option><option value="product-drops">Product Drops</option><option value="general">General Inquiry</option></select><input class="input w-input" maxlength="256" name="Email" data-name="Email" placeholder="Email Address" type="email" id="contact-email" required=""/><textarea required="" placeholder="Your message" maxlength="5000" id="contact-message" name="Contact-Message" data-name="Contact Message" class="input w-input"></textarea><input type="submit" data-wait="Please wait..." class="text-button w-button" value="Submit"/></form><div class="success-message w-form-done"><div>Thank you! Your message has been sent.</div></div><div class="error-message w-form-fail"><div>Oops! Something went wrong while submitting the form.</div></div></div></div></div></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=6797cfc2ad8a60816f5e9a30" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/js/webflow.schunk.4a394eb5af8156f2.js" type="text/javascript"></script><script src="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/js/webflow.schunk.81c4ce843f2a7706.js" type="text/javascript"></script><script src="https://cdn.prod.website-files.com/6797cfc2ad8a60816f5e9a30/js/webflow.064b67df.1328f736a14348b5.js" type="text/javascript"></script><script>
window.addEventListener('DOMContentLoaded', () => {
  	const fadeInElements = document.querySelectorAll('[fade-delay]')
  	fadeInElements.forEach((el) => {
  		const delay = el.getAttribute('fade-delay')
    	if (delay) {
    		setTimeout(() => {
      		el.classList.add('visible')
      	}, delay * 1000)
    	} else {
    		el.classList.add('visible')
    	}
  	})
})
</script><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/ScrollToPlugin.min.js"></script>
<script src="https://player.vimeo.com/api/player.js"></script>
<script>
gsap.registerPlugin(ScrollToPlugin)

function getEl (id) {
	return document.getElementById(id)
}
const aboutToggle = getEl('about-toggle')
const faqToggle = getEl('faq-toggle')
const aboutContainer = getEl('about-container')
const faqContainer = getEl('faq-container')
let aboutHeight = null
let faqHeight = null

const bgVideoWrapper = getEl('bg-video-wrapper')
const bgPosterImage = getEl('video-poster')
const vimeoVideo = getEl('bg-video')
if (vimeoVideo) {
  const vimeoPlayer = new Vimeo.Player(vimeoVideo)
  vimeoPlayer.on('loaded', () => {
    console.log('Vimeo loaded')
    if (bgVideoWrapper) bgVideoWrapper.classList.remove('hidden')
  })
  vimeoPlayer.on('play', () => {
  	console.log('Vimeo play')
    if (bgPosterImage) bgPosterImage.classList.add('hidden')
  })
}

let holdTimer
const centralContainer = document.querySelector('.central-container')
const navContainer = document.querySelector('.nav-container')
const bgHitbox = getEl('bg-hitbox')
let bgVisible = false
if (bgHitbox) {
  bgHitbox.addEventListener('click', () => {
    bgVisible = !bgVisible
    if (bgVisible) {
      navContainer.classList.add('hidden')
      gsap.to(document.documentElement, {
        duration: 0.5,
        '--mask-opacity': 1,
        ease: 'power2.out'
      })
    } else {
      revertMask()
    }
  })
}

// START Long press
/*
function startTap () {
	console.log('Begin mouse down')
	holdTimer = setTimeout(() => {
  	console.log('Long tap')
    navContainer.classList.add('hidden')
  	gsap.to(document.documentElement, {
    	duration: 0.5,
      '--mask-opacity': 1,
      ease: 'power2.out'
    })
  }, 1000)
}
function endTap () {
	clearTimeout(holdTimer)
  revertMask()
}
document.addEventListener('mousedown', startTap)
document.addEventListener('touchstart', startTap)

document.addEventListener('mouseup', endTap)
document.addEventListener('mouseleave', endTap)
document.addEventListener('touchend', endTap)
document.addEventListener('touchmove', endTap)
*/
// END Long press

function revertMask () {
	navContainer.classList.remove('hidden')
	gsap.to(document.documentElement, {
  	duration: 0.5,
    '--mask-opacity': 0,
    ease: 'power2.out'
  })
}

// Handle closing expandable sections on scroll
const collapseEvent = new Event('collapse')
const amountVisible = 0.99 // How much the central area is visible before triggering
let lastScrollY = window.scrollY
let scrollingDown = false
let paramScroll = false
let firstCollapse = true
window.addEventListener('collapse', () => {
  if (paramScroll) return
	console.log('Collapse event.')
  aboutContainer.style.transition = 'height 0s linear'
  aboutContainer.style.height = '0px'
  aboutContainer.style.transition = ''
  
  faqContainer.style.transition = 'height 0s linear'
  faqContainer.style.height = '0px'
  faqContainer.style.transition = ''

  // if (!firstCollapse) collapseCurrent()
  // firstCollapse = false
})

function getDimensions () {
	console.log('Get dimensions')
  
  const expandableContent = document.querySelectorAll('.to-expand')
  expandableContent.forEach((item, i) => {
  	item.style.height = ''
    item.setAttribute('data-height', item.offsetHeight)
    item.style.height = '0px'
  })

	if (aboutContainer) {
    aboutContainer.classList.add('hidden')
    aboutContainer.style.height = ''
    aboutHeight = aboutContainer.offsetHeight
    console.log('About height', aboutHeight)
    aboutContainer.style.height = '0px'
  }
  if (faqContainer) {
  	faqContainer.classList.add('hidden')
    faqContainer.style.height = ''
    faqHeight = faqContainer.offsetHeight
    console.log('FAQ height', faqHeight)
    faqContainer.style.height = '0px'
  }
  
  if (expandableContent && expandableContent[0]) {
  	const firstExpander = expandableContent[0].previousElementSibling
    expandTargetItem(firstExpander, false)
  }
  
  // if (faqContainer && !paramScroll) faqContainer.style.height = '0px'
}

let lastX = window.innerWidth
window.addEventListener('resize', () => {
	// Only recalculate if there's a change in width
	if (lastX != window.innerWidth) {
  	lastX = window.innerWidth
    getDimensions()
  }
})

// Toggle About / FAQ sections
if (aboutToggle && aboutContainer) {
  aboutToggle.addEventListener('click', () => {
    aboutContainer.style.height = aboutHeight + 'px'
    aboutContainer.classList.remove('hidden')
    setTimeout(() => {
	    gsap.to(window, {
      	duration: 0.5,
        scrollTo: {
        	y: '#about-container',
          offsetY: 0
      	},
        ease: 'power1.out'
      })
    }, 0)
  })
}
function setFaqHeight(target) {
	const windowHeight = window.innerHeight
  if (target < windowHeight) target = windowHeight
  faqContainer.classList.remove('hidden')
  faqContainer.style.height = target + 'px'
}
function openFaq () {
	console.log('Open faq')
	let scrollTween
	setFaqHeight(faqContainer.querySelector('.content-container').offsetHeight)
  setTimeout(() => {
  	console.log('ScrollTo')
    scrollTween = gsap.to(window, {
      duration: 0.5,
      scrollTo: {
        y: '#faq-container',
        offsetY: 0
      },
      ease: 'power1.out'
    })
    paramScroll = false
  }, 0)
}
window.addEventListener('load', () => {
	getDimensions()
  
	const urlParams = new URLSearchParams(window.location.search)
  console.log('URL params:', urlParams)
  if (urlParams.get('target') === 'faq') {
  	console.log('Open FAQ')
    paramScroll = true
    openFaq()
  }
  
  // Set up scroll listener
  window.addEventListener('scroll', () => {
    const currentScrollY = window.scrollY
    scrollingDown = currentScrollY > lastScrollY
    lastScrollY = currentScrollY
  })

  const centralObserver = new IntersectionObserver(([entry]) => {
    if (entry.intersectionRatio >= amountVisible) {
      if (scrollingDown) {
        console.log('Central in view, scrolling down')
      } else {
        console.log('Central in view, scrolling up')
      }
      window.dispatchEvent(collapseEvent)
    }
  }, { threshold: [amountVisible] })
  
  console.log('Central observer.')
  // Finalize intersection observer
  if (centralContainer) centralObserver.observe(centralContainer)
})

if (faqToggle && faqContainer) {
  faqToggle.addEventListener('click', () => {
  	openFaq()
  })
}

// Expand FAQ items
function collapseCurrent () {
	const currentlyExpanded = document.querySelector('.to-expand.expanded')
  if (currentlyExpanded) {
  	const plus = currentlyExpanded.parentElement.querySelector('.plus')
    const minus = currentlyExpanded.parentElement.querySelector('.minus')
    if (plus && minus) {
    	plus.classList.remove('hidden')
      minus.classList.remove('visible')
    }
    currentlyExpanded.classList.remove('expanded')
    currentlyExpanded.style.height = '0px'
    setFaqHeight(faqHeight)
  }
}

function expandTargetItem (expander, expandFaq = true) {
	const toExpand = expander.nextElementSibling
	const plus = expander.querySelector('.plus')
  const minus = expander.querySelector('.minus')
  if (plus && minus) {
    plus.classList.add('hidden')
    minus.classList.add('visible')
  }
  toExpand.classList.add('expanded')
  
  const targetHeight = toExpand.getAttribute('data-height')
  toExpand.style.height = targetHeight + 'px'
  const totalHeight = faqHeight + parseFloat(targetHeight)
  if (expandFaq) setFaqHeight(totalHeight)
}

const expanders = document.querySelectorAll('.expander')
expanders.forEach((expander, i) => {
	expander.addEventListener('click', () => {
  	const toExpand = expander.nextElementSibling
    let closing = false
  	if (toExpand && toExpand.classList.contains('expanded')) closing = true
  
		collapseCurrent()

    if (!closing && toExpand && !toExpand.classList.contains('expanded')) {
      expandTargetItem(expander)
    }
  })
})
</script></body></html>                               

Whois info of domain

Domain Name: CHTAL.COM
Registry Domain ID: 2912094647_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.godaddy.com
Registrar URL: http://www.godaddy.com
Updated Date: 2025-02-19T17:07:08Z
Creation Date: 2024-08-29T06:00:52Z
Registry Expiry Date: 2025-08-29T06:00:52Z
Registrar: GoDaddy.com, LLC
Registrar IANA ID: 146
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: 480-624-2505
Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
Domain Status: clientRenewProhibited https://icann.org/epp#clientRenewProhibited
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
Name Server: HUGH.NS.CLOUDFLARE.COM
Name Server: RUTH.NS.CLOUDFLARE.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2025-05-06T00:14:35Z <<<
For more information on Whois status codes, please visit https://icann.org/epp
NOTICE: The expiration date displayed in this record is the date the
TERMS OF USE: You are not authorized to access or query our Whois
by the following terms of use: You agree that you may use this Data only
to: (1) allow, enable, or otherwise support the transmission of mass