:root {
    --container-default: 100%;
    --container-width: 100%;
    --container-padding: 36px;

    --header-h: 94px;

    --color-body: #000000;
    --color-body-rgb: 0,0,0;
    --color-body-bg: #ffffff;
    --color-body-bg-rgb: 255,255,255;
    --color-gray: #959595;
    --color-gray-rgb: 149,149,149;
    --color-gray-light: #838383;
    --color-gray-light-rgb: 131,131,131;
    --color-border: var(--color-gray);
    --color-error: #ff0000;
    --color-placeholder: inherit;
    --color-day-bg: #f5f5f5;
    --color-day-bg-rgb: 245,245,245;
    
    --filter-black: brightness(0);
    --filter-white: brightness(0) invert(1);
    
    --font-heading: 'Akzidenz-Grotesk Pro Ext', 'Prompt', sans-serif;
    --font-sp: 'Phage', sans-serif;
    --font-body: 'Helvetica Neue LT Std', 'Helvetica Neue', 'Helvetica', 'IBM Plex Sans Thai', sans-serif;
    --weight-light: 300;
    --weight-regular: 400;
    --weight-medium: 500;
    --weight-bold: 700;
    
    --font-size-3xs: 10px;
    --font-size-2xs: 12px;
    --font-size-xs: 14px;
    --font-size-sm: 16px;
    --font-size-md: 18px;
    --font-size-lg: 18px;
    --font-size-xl: 20px;
    --font-size-h6: 24px;
    --font-size-h5: 32px;
    --font-size-h4: 40px;
    --font-size-h3: 72px;
    --font-size-h2: 104px;
    --font-size-h1: 84px;

    --icon-size: 20px;
    
    --spacing-5xl: 150px;
    --spacing-5xl-minus: -150px;
    --spacing-4xl: 120px;
    --spacing-4xl-minus: -120px;
    --spacing-3xl: 100px;
    --spacing-3xl-minus: -100px;
    --spacing-2xl: 80px;
    --spacing-2xl-minus: -80px;
    --spacing-xl: 60px;
    --spacing-xl-minus: -60px;
    --spacing-2lg: 50px;
    --spacing-2lg-minus: -50px;
    --spacing-lg: 40px;
    --spacing-lg-minus: -40px;
    --spacing-2md: 35px;
    --spacing-2md-minus: -35px;
    --spacing-md: 30px;
    --spacing-md-minus: -30px;
    --spacing-2sm: 25px;
    --spacing-2sm-minus: -25px;
    --spacing-sm: 20px;
    --spacing-sm-minus: -20px;
    --spacing-xs: 15px;
    --spacing-xs-minus: -15px;
    --spacing-2xs: 10px;
    --spacing-2xs-minus: -10px;
    --spacing-3xs: 5px;
    --spacing-3xs-minus: -5px;

    --weight-body: var(--weight-light);
    --font-size-body: var(--font-size-sm);
    --line-height-body: var(--line-height-md);
    --spacing-container: var(--spacing-md);
    --spacing-container-minus: var(--spacing-md-minus);
    --header-nav-height: 80px;
    --header-noti-height: 0px;
    --header-height: calc(var(--header-nav-height) + var(--header-noti-height));
    --input-height: 40px;
    --button-height: var(--input-height);
    --radius: 12px;
    --radius-x2: 24px;
    --radius-x3: 36px;
    --opacity: 0.5;
    --opacity-light: 0.3;
    
    --transition: 0.4s;
    --transition-x2: 0.8s;
    --timing-function: ease-in-out;
    --cta-shadow: 0 -0.5px 0 0 inset;
}

/*========== FIX STYLE:THEME ==========*/
.c-body { color: var(--color-body) !important;}
.c-gray { color: var(--color-gray) !important;}
.c-error { color: var(--color-error) !important;}

.padding-top-header { padding-top: var(--header-height) !important;}
.padding-top-3xl { padding-top: var(--spacing-3xl) !important;}
.padding-top-2xl { padding-top: var(--spacing-2xl) !important;}
.padding-top-xl { padding-top: var(--spacing-xl) !important;}
.padding-top-lg { padding-top: var(--spacing-lg) !important;}
.padding-top-md { padding-top: var(--spacing-md) !important;}
.padding-top-sm { padding-top: var(--spacing-sm) !important;}
.padding-top-xs { padding-top: var(--spacing-xs) !important;}
.padding-top-2xs { padding-top: var(--spacing-2xs) !important;}
.padding-top-3xs { padding-top: var(--spacing-3xs) !important;}
.padding-bottom-3xl { padding-bottom: var(--spacing-3xl) !important;}
.padding-bottom-2xl { padding-bottom: var(--spacing-2xl) !important;}
.padding-bottom-xl { padding-bottom: var(--spacing-xl) !important;}
.padding-bottom-lg { padding-bottom: var(--spacing-lg) !important;}
.padding-bottom-md { padding-bottom: var(--spacing-md) !important;}
.padding-bottom-sm { padding-bottom: var(--spacing-sm) !important;}
.padding-bottom-xs { padding-bottom: var(--spacing-xs) !important;}
.padding-bottom-2xs { padding-bottom: var(--spacing-2xs) !important;}
.padding-bottom-3xs { padding-bottom: var(--spacing-3xs) !important;}
.padding-y-3xl { padding-top: var(--spacing-3xl) !important; padding-bottom: var(--spacing-3xl) !important;}
.padding-y-2xl { padding-top: var(--spacing-2xl) !important; padding-bottom: var(--spacing-2xl) !important;}
.padding-y-xl { padding-top: var(--spacing-xl) !important; padding-bottom: var(--spacing-xl) !important;}
.padding-y-lg { padding-top: var(--spacing-lg) !important; padding-bottom: var(--spacing-lg) !important;}
.padding-y-md { padding-top: var(--spacing-md) !important; padding-bottom: var(--spacing-md) !important;}
.padding-y-sm { padding-top: var(--spacing-sm) !important; padding-bottom: var(--spacing-sm) !important;}
.padding-y-xs { padding-top: var(--spacing-xs) !important; padding-bottom: var(--spacing-xs) !important;}
.padding-y-2xs { padding-top: var(--spacing-2xs) !important; padding-bottom: var(--spacing-2xs) !important;}
.padding-y-3xs { padding-top: var(--spacing-3xs) !important; padding-bottom: var(--spacing-3xs) !important;}
.margin-top-3xl:not(:first-child) { margin-top: var(--spacing-3xl) !important;}
.margin-top-2xl:not(:first-child) { margin-top: var(--spacing-2xl) !important;}
.margin-top-xl:not(:first-child) { margin-top: var(--spacing-xl) !important;}
.margin-top-lg:not(:first-child) { margin-top: var(--spacing-lg) !important;}
.margin-top-md:not(:first-child) { margin-top: var(--spacing-md) !important;}
.margin-top-sm:not(:first-child) { margin-top: var(--spacing-sm) !important;}
.margin-top-xs:not(:first-child) { margin-top: var(--spacing-xs) !important;}
.margin-top-2xs:not(:first-child) { margin-top: var(--spacing-2xs) !important;}
.margin-top-3xs:not(:first-child) { margin-top: var(--spacing-3xs) !important;}
.margin-bottom-3xl:not(:last-child) { margin-bottom: var(--spacing-3xl) !important;}
.margin-bottom-2xl:not(:last-child) { margin-bottom: var(--spacing-2xl) !important;}
.margin-bottom-xl:not(:last-child) { margin-bottom: var(--spacing-xl) !important;}
.margin-bottom-lg:not(:last-child) { margin-bottom: var(--spacing-lg) !important;}
.margin-bottom-md:not(:last-child) { margin-bottom: var(--spacing-md) !important;}
.margin-bottom-sm:not(:last-child) { margin-bottom: var(--spacing-sm) !important;}
.margin-bottom-xs:not(:last-child) { margin-bottom: var(--spacing-xs) !important;}
.margin-bottom-2xs:not(:last-child) { margin-bottom: var(--spacing-2xs) !important;}
.margin-bottom-3xs:not(:last-child) { margin-bottom: var(--spacing-3xs) !important;}

/*========== FIX STYLE:GENERAL ==========*/
.bg-black { background-color: #000000 !important;}
.bg-white { background-color: #ffffff !important;}
.c-black { color: #000000 !important;}
.c-white { color: #ffffff !important;}
.filter-black { -webkit-filter: brightness(0) !important; filter: brightness(0) !important;}
.filter-white { -webkit-filter: brightness(0) invert(1) !important; filter: brightness(0) invert(1) !important;}
.a-left { text-align: left !important;}
.a-right { text-align: right !important;}
.a-center { text-align: center !important;}
.margin-0 { margin: 0 !important;}
.margin-top-0 { margin-top: 0 !important;}
.margin-bottom-0 { margin-bottom: 0 !important;}
.padding-0 { padding: 0 !important;}
.padding-top-0 { padding-top: 0 !important;}
.padding-bottom-0 { padding-bottom: 0 !important;}
.uppercase { text-transform: uppercase !important;}
.nowrap { white-space: nowrap !important;}
.overflow-hidden { overflow: hidden !important;}
.hidden { display: none !important;}
.alignfull { width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;}
.w-100{ width: 100% !important; }
.w-80{ width: 80% !important; }
.h-100{ height: 100% !important; }

/*========== RESET ==========*/
*, *:before, *:after {
    box-sizing: border-box;
}
::-webkit-scrollbar {
    width: 0px;
    overflow: hidden;
}
::-moz-selection {
    background: var(--color-body);
    color: var(--color-body-bg);
}
::selection {
    background: var(--color-body);
    color: var(--color-body-bg);
}

article, aside, figcaption, figure, picture, footer, header, hgroup, main, nav, section {
    display: block;
}
html {
    font-family: sans-serif;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}
body {
    opacity: 0;
    margin: 0;
    position: relative;
    min-height: 100vh;
    overflow-x: hidden;
    background: var(--color-body-bg);
    color: var(--color-body);
    will-change: opacity;
    transition: opacity var(--transition-x2) var(--timing-function);
}
h1,h2,h3,h4,h5,h6 {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}
p {
    margin: 0;
}
address {
    font-style: normal;
}
ul, ol {
    list-style: none;
}
ul, ol, li {
    margin: 0;
    padding: 0;
}
a {
    color: inherit;
}
a, a:hover, a:focus {
    outline: 0;
    text-decoration: none;
    box-shadow: none;
}
a[href^=tel] {
    white-space: nowrap;
}
a[href^=mailto] {
    word-break: break-word;
}
a, button, [role="button"] {
    cursor: pointer;
}
button, input, textarea, select {
    outline: 0;
    -webkit-appearance: none;
    box-shadow: none;
    border-radius: 0;
    border: 0;
    background: none;
    padding: 0;
    margin: 0;
    min-width: 0;
    font: inherit;
    line-height: normal;
    text-transform: inherit;
    text-align: inherit;
    letter-spacing: inherit;
    text-indent: inherit;
    color: inherit;
}
fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}
img {
    border: 0;
    outline: 0;
    height: auto;
    width: auto;
    max-width: 100%;
    vertical-align: middle;
}
figure {
    margin: 0;
}
table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}
th, td {
    padding: 0;
    font-weight: inherit;
}
iframe {
    border: 0;
}
[tabindex="-1"]:focus {
    outline: 0 !important;
}
script {
    margin: 0 !important;
}

/* Default Responsive */
/*X-Large devices (large desktops, less than 1400px)*/
@media (max-width: 1399.98px) {}

/*Larger devices (desktops, less than 1200px)*/
@media (max-width: 1199.98px) {
    :root{
        --container-padding: 20px;
    }
}

/*Large devices (desktops, less than 1024px)*/
@media (max-width: 1023.98px) {
    
}

/*Medium devices (tablets, less than 992px)*/
@media (max-width: 991.98px) {
    :root{
        --font-size-3xs: 8px;
        --font-size-2xs: 10px;
        --font-size-xs: 13px;
        --font-size-sm: 14px;
        --font-size-md: 14px;
        --font-size-lg: 16px;
        --font-size-xl: 20px;
        --font-size-h4: 16px;
        --font-size-h3: 24px;
        --font-size-h2: 26px;
        --font-size-h1: 30px;
    }
}

/*Small devices (landscape phones, less than 768px)*/
@media (max-width: 767.98px) {
    
}

/*X-Small devices (portrait phones, less than 576px)*/
@media (max-width: 575.98px) {
    
}
/* End of Responsive */

/* 3D BASE */
*,
*::after,
*::before {
	box-sizing: border-box;
}

:root {
	--color-text: #fff;
	--color-bg: #000;
	--color-link: #fff;
	--color-link-hover: #907030;
	--color-title: #907030;
	--perspective: 1500px;
	--grid-item-ratio: 1.5;
	--grid-width: 100%;
	--grid-height: auto;
	--grid-gap: 2vw;
	--grid-columns: 4;
	--grid-inner-scale: 1;
}

/* Page Loader */
.js .loading::before,
.js .loading::after {
	content: '';
	position: fixed;
	z-index: 1000;
}

.js .loading::before {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--color-bg);
}

.js .loading::after {
	top: 50%;
	left: 50%;
	width: 60px;
	height: 60px;
	margin: -30px 0 0 -30px;
	border-radius: 50%;
	opacity: 0.4;
	background: var(--color-link);
	animation: loaderAnim 0.7s linear infinite alternate forwards;

}

@keyframes loaderAnim {
	to {
		opacity: 1;
		transform: scale3d(0.5,0.5,1);
	}
}
main {
	position: relative;
	/* overflow: hidden; */
	width: 100%;
}

.frame {
	position: relative;
	width: 100%;
	padding: 1rem;
	display: grid;
	grid-template-columns: 100%;
	grid-template-areas: 'back' 'prev' 'sponsor';
	grid-gap: 0.5rem;
	justify-items: start;
	align-self: start;
	justify-self: start;
	pointer-events: none;
	align-items: center;
	text-transform: uppercase;
	font-size: 0.85rem;
	background: var(--color-bg-alt);
}

body #cdawrap {
    justify-self: start;
}

.frame a {
	pointer-events: auto;
}

.frame a:not(.frame__title-back) {
	white-space: nowrap;
	overflow: hidden;
	position: relative;
}

.frame a:not(.frame__title-back)::before {
	content: '';
	height: 1px;
	width: 100%;
	background: currentColor;
	position: absolute;
	top: 90%;
	transition: transform 0.3s;
	transform-origin: 0% 50%;
}

.frame a:not(.frame__title-back):hover::before {
	transform: scaleX(0);
	transform-origin: 100% 50%;
}

.frame__title {
	grid-area: title;
	display: flex;
}

.frame__title-main {
	font-size: inherit;
	margin: 0;
	font-weight: inherit;
}

.frame__title-back {
	position: relative;
	display: flex;
	align-items: flex-end;
	margin-bottom: 0.15rem;
}

.frame__title-back span {
	display: none;
}

.frame__title-back svg {
	fill: currentColor;
}

.frame__prev {
	grid-area: prev;
}

.intro {
	height: calc(100vh - 3rem);
    text-align: center;
    place-items: center;
    display: grid;
    margin-bottom: 30vh;
    background: linear-gradient(0deg, transparent, var(--color-bg-alt));
}

.intro__title {
    place-items: center;
    margin: 0;
    line-height: .9;
    display: grid;
    margin-top: 15vh;
    font-weight: 400;
}

.intro__title-pre {
	font-weight: 300;
    font-size: clamp(2rem,8vw,5rem);
    color: var(--color-title);
    text-transform: uppercase;
}

.intro__title-sub {
    font-size: clamp(1.5rem,20vw,8rem);
    max-width: 15ch;
    margin: 0 auto;
}

.intro__info {
	max-width: 15ch;
    opacity: .6;
    margin-bottom: 4rem;
    padding-bottom: 1rem;
    line-height: 1.2;
    position: relative;
    align-self: end;
}

.intro__info::after {
	content: "";
	width: 1px;
	height: 2rem;
	background: #fff;
	position: absolute;
	top: 100%;
	left: 50%;
}

.card-wrap {
	margin-top: 5vh;
	display: grid;
	grid-gap: 2rem;
	grid-auto-flow: row;
	grid-template-columns: 250px;
}

.card__image {
	display: block;
	border-radius: 7px;
	background-size: cover;
	background-position: 50% 50%;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	filter: contrast(0.8);
}

.credits {
	font-size: 1.5rem;
	text-align: center;
	margin: 50vh auto 0;
	padding-bottom: 50vh;
}

.content {
	position: relative;
}

.content__title {
	position: absolute;
	height: 100vh;
	width: 100vw;
	top: 50%;
	left: 50%;
	margin: -50vh 0 0 -50vw;
	padding: 0 10vw;
	display: grid;
	place-items: center;
	text-align: center;
	font-weight: 300;
	font-size: clamp(1.5rem, 15vw, 6.5rem);
}

.content__title--top {
	align-items: start;
}

.content__title--bottom {
	align-items: end;
}

.content__title--left {
	justify-items: start;
	text-align: left;
}

.content__title--right {
	justify-items: end;
	text-align: right;
}

.outro {
	display: grid;
	place-items: center;
	margin: 40vh 0;
}

.grid {
	display: grid;
	place-items: center;
	padding: 2rem;
	width: 100%;
	perspective: none;
}

.grid-wrap {
	height: var(--grid-height);
	width: var(--grid-width);
	display: grid;
	grid-template-columns: repeat(3 ,1fr);
    grid-gap: 24px;
	gap: 24px;
	transform-style: preserve-3d;
}

.grid__item {
	/* aspect-ratio: var(--grid-item-ratio); */
	width: 100%;
	height: auto;
	overflow: hidden;
	position: relative;
	border-radius: 8px;
    background-color: var(--color-body);
}
.grid__item::before{
    content: '';
    display: block;
    width: 100%;
    padding-top: calc((396 / 264) * 100%);
}
.grid__item::after{
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.50) 0%, rgba(0, 0, 0, 0.00) 27.6%, rgba(0, 0, 0, 0.00) 71.87%, rgba(0, 0, 0, 0.50) 100%);
}
.grid__item-inner {
	position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
	/* width: calc(1 / var(--grid-inner-scale) * 100%); */
	/* height: calc(1 / var(--grid-inner-scale) * 100%); */
	background-size: cover;
	background-position: center center;
    z-index: 1;
}

@media screen and (min-width: 53em) {
	.frame {
		grid-template-columns: auto auto auto 1fr;
		grid-template-areas: 'title prev ... sponsor';
		align-content: space-between;
		justify-items: start;
		grid-gap: 2rem;
	}
	.frame__demos {
		justify-self: end;
	}

	.content--outro {
		height: 100vh;
		justify-content: center;
	}

	.card-wrap {
		grid-template-columns: repeat(3,250px);
	}

	body #cdawrap {
	    justify-self: end;
	}
}

html.lenis {
    height: auto;
  }
  
  .lenis.lenis-smooth {
    scroll-behavior: auto;
  }
  
  .lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
  }
  
  .lenis.lenis-stopped {
    overflow: hidden;
  }
  
  .lenis.lenis-scrolling iframe {
    pointer-events: none;
  }