@charset 'UTF-8';
/* =====================================================
* Base
* ================================================== */

/* -----------------------------------------------------
 * font
 * -------------------------------------------------- */

@import url(//fonts.googleapis.com/css?family=Roboto:400,700,900);
/*! normalize.css v3.0.0 | MIT License | git.io/normalize */

html {
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	font-family: sans-serif;
}

body {
	margin: 0;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
	display: block;
}

audio,
canvas,
progress,
video {
	display: inline-block;
	vertical-align: baseline;
}

audio:not([controls]) {
	display: none;
	height: 0;
}

[hidden],
template {
	display: none;
}

a {
	background-color: transparent;
}

a:active,
a:hover {
	outline: 0;
}

abbr[title] {
	border-bottom: 1px dotted;
}

b,
strong {
	font-weight: bold;
}

dfn {
	font-style: italic;
}

h1 {
	margin: 0.67em 0;
	font-size: 2em;
}

mark {
	background: #ff0;
	color: #000;
}

small {
	font-size: 80%;
}

sub,
sup {
	position: relative;
	font-size: 75%;
	line-height: 0;
	vertical-align: baseline;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

img {
	border: 0;
}

svg:not(:root) {
	overflow: hidden;
}

figure {
	margin: 1em 40px;
}

hr {
	box-sizing: content-box;
	height: 0;
}

pre {
	overflow: auto;
}

code,
kbd,
pre,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

button,
input,
optgroup,
select,
textarea {
	margin: 0;
	color: inherit;
	font: inherit;
}

button {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

button,
html input[type=button],
input[type=reset],
input[type=submit] {
	cursor: pointer;
	-webkit-appearance: button;
}

button[disabled],
html input[disabled] {
	cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	padding: 0;
	border: 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] {
	box-sizing: content-box;
	-webkit-appearance: textfield;
}

input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
	-webkit-appearance: none;
}

fieldset {
	margin: 0 2px;
	padding: 0.35em 0.625em 0.75em;
	border: 1px solid #c0c0c0;
}

legend {
	padding: 0;
	border: 0;
}

textarea {
	overflow: auto;
}

optgroup {
	font-weight: bold;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

td,
th {
	padding: 0;
}

@font-face {
	font-family: 'NotoSansCJKjp-Jxck';
  font-weight: 400;
  font-style: normal;
  src: local('NotoSansCJKjp-Regular.otf'), local('NotoSansJP-Regular.otf'), url('/font/NotoSansCJKjp-Jxck-Regular.woff') format('woff');
}

@font-face {
	font-family: 'NotoSansCJKjp-Jxck';
  font-weight: 700;
  font-style: normal;
  src: local('NotoSansCJKjp-Bold.otf'), local('NotoSansJP-Bold.otf'), url('/font/NotoSansCJKjp-Jxck-Bold.woff') format('woff');
}

@font-face {
	font-family: 'Georgia';
  font-weight: 400;
  font-style: normal;
  src: local('Georgia'), url('/font/georgia.woff2') format('woff2'), url('/font/georgia.otf') format('opentype');
}

@font-face {
	font-family: 'Georgia';
  font-weight: 700;
  font-style: normal;
  src: local('Georgia Bold'), url('/font/georgiab.woff2') format('woff2'), url('/font/georgiab.otf') format('opentype');
}

@font-face {
	font-family: 'Georgia';
  font-weight: 400;
  font-style: italic;
  src: local('Georgia Italic'), url('/font/georgiai.woff2') format('woff2'), url('/font/georgiai.otf') format('opentype');
}

@font-face {
	font-family: 'Georgia';
  font-weight: 700;
  font-style: italic;
  src: local('Georgia Bold Italic'), url('/font/georgiaz.woff2') format('woff2'), url('/font/georgiaz.otf') format('opentype');
}

/* -----------------------------------------------------
 * Init
 * -------------------------------------------------- */

*,
*:before,
*:after {
	box-sizing: border-box;
}

/* normalize overwrite */

html {
	position: relative;
	min-height: 100%;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 62.5%;
}

body {
	height: 100%;
	margin: 0;
	padding: 0;
	background: #fff;
	color: #181c1f;
	font-size: 1.6rem;
	line-height: 1.5;
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: unset;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
}

ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

figure {
	margin: 0;
}

a {
	color: #181c1f;
	text-decoration: none;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	image-rendering: -webkit-optimize-contrast;
	image-rendering: crisp-edges;
}

em {
	font-weight: 700;
	font-style: normal;
}

/* =====================================================
* State
* ================================================== */

/* =====================================================
 * Module
 * ================================================== */

/* -----------------------------------------------------
 * component: btn
 * -------------------------------------------------- */

.c-btn {
	display: inline-flex;
	position: relative;
	z-index: 0;
	overflow: hidden;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	height: 5.4rem;
	margin: 0;
	padding: 0;
	padding: 0 4rem;
	border: 0;
	border: 2px solid #181c1f;
	border-radius: 0;
	border-radius: 3rem;
	background: none transparent;
	background-color: #181c1f;
	background-clip: padding-box;
	color: inherit;
	color: #fff;
	font-size: inherit;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
	vertical-align: middle;
	transition: border 0.3s ease, color 0.3s ease;
	appearance: none;
	-moz-appearance: none;
	-webkit-appearance: none;
}

.c-btn::-ms-clear {
	display: none;
}

.c-btn::-ms-reveal {
	display: none;
}

.c-btn::-ms-expand {
	display: none;
}

.c-btn::before {
	content: '';
	display: block;
	position: absolute;
	z-index: -1;
	width: 110%;
	height: 110%;
	background-color: #181c1f;
	transition: -webkit-transform 0.3s ease-in-out;
	transition: transform 0.3s ease-in-out;
	transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
	-webkit-transform-origin: left top;
	transform-origin: left top;
}

.c-btn.sz-s {
	height: 4rem;
}

.c-btn.cl-white {
	border-color: #fff;
	background-color: transparent;
}

.c-btn.cl-white::before {
	-webkit-transform: scale(0, 1);
	transform: scale(0, 1);
	-webkit-transform-origin: right top;
	transform-origin: right top;
}

/* -----------------------------------------------------
 * component: heading
 * -------------------------------------------------- */

/* - 見出し: default */

.c-heading {
	display: grid;
}

.c-heading .title {
	font-size: 2.3rem;
	font-weight: 700;
	line-height: 1.4;
}

.c-heading .sup {
	color: #d6000a;
	font-size: 1.8rem;
	line-height: 1.5;
}

/* - 見出し: 左側赤ライン付 */

.c-heading-line {
	position: relative;
	padding: 0.8rem 0 0.8rem 1.6rem;
	border-left: 0.4rem solid #d6000a;
	font-size: 2.3rem;
	font-weight: 700;
	line-height: 1.4;
}

.c-heading-line .sup {
	font-size: 1.8rem;
	line-height: 1.5;
}

/* - 見出し: home */

.c-heading-home {
	font-family: 'Georgia', serif;
	font-size: 5.6rem;
	font-weight: 400;
	line-height: 1.15;
	text-align: center;
}

.c-heading-home.cl-white {
	color: #fff;
}

.c-heading-home-2 {
	position: relative;
	padding: 0 0 2.4rem;
	font-size: 2.3rem;
	font-weight: 700;
	line-height: 1.4;
}

.c-heading-home-2::before {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 6rem;
	height: 0.2rem;
	background-color: #d6000a;
	pointer-events: none;
}

.c-heading-home-2.cl-white {
	color: #fff;
}

.c-heading-home-2.border-none {
	padding: 0;
}

.c-heading-home-2.border-none::before {
	display: none;
}

/* - 見出し: section */

.c-heading-section {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.8rem 0;
}

.c-heading-section .title {
	font-family: 'Noto Serif JP', serif;
	font-size: 2.6rem;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
}

.c-heading-section sup {
	display: block;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.5;
	text-align: center;
}

.c-heading-section.en .title {
	font-family: 'Noto Sans JP', sans-serif;
}

/* -----------------------------------------------------
 * component: hr
 * -------------------------------------------------- */

.c-hr {
	margin: 0 1.2rem;
	border: 0;
	border-top: 1px solid #000;
}

/* -----------------------------------------------------
 * component: spinner
 * -------------------------------------------------- */

.c-spinner {
	width: 4rem;
	height: 4rem;
	border: 2px solid rgba(24, 28, 31, 0.1);
	border-top: 2px solid #181c1f;
	border-radius: 50%;
	-webkit-animation: spin 1s linear infinite;
	animation: spin 1s linear infinite;
}

@-webkit-keyframes spin {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}

	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

@keyframes spin {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}

	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

/* -----------------------------------------------------
 * totop
 * -------------------------------------------------- */

.c-totop {
	display: block;
}

/* Splide スライダー（必要な基本スタイルを手動で定義） */

.splide {
	visibility: hidden;
	position: relative;
	width: calc(100vw - var(--scrollbar-width)) !important;
	max-width: calc(100vw - var(--scrollbar-width)) !important;
}

.splide.is-initialized {
	visibility: visible;
}

.splide__track {
	position: relative;
	z-index: 0;
	overflow: visible !important;
}

.splide__list {
	display: flex;
	list-style: none;
	height: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

.splide__slide {
	display: flex;
	flex-shrink: 0;
	justify-content: center;
	align-items: center;
	margin: 0;
	padding: 0;
}

/* カスタマイズ */

.js-photo-slider {
	overflow: hidden;
	width: 100%;
}

.js-photo-slider .splide__track {
	overflow: hidden;
}

.js-photo-slider .splide__list {
	align-items: center;
	height: auto;
}

.js-photo-slider .splide__slide {
	width: auto;
	height: auto;
}

.js-photo-slider .splide__slide figure {
	display: block;
	flex-shrink: 0;
	margin: 0;
}

.js-photo-slider .splide__slide img {
	display: block;
	height: auto;
	-o-object-fit: cover;
	object-fit: cover;
}

/* -----------------------------------------------------
 * page: article
 * -------------------------------------------------- */

.l-section-contents .p-article h2,
.p-article h2 {
	margin: 2.4rem 0 0;
	font-size: 1.8rem;
}

.l-section-contents .p-article p,
.l-section-contents .p-article ul,
.l-section-contents .p-article ol,
.p-article p,
.p-article ul,
.p-article ol {
	margin: 1.6rem 0 0 !important;
}

.l-section-contents .p-article p.policy-date,
.l-section-contents .p-article ul.policy-date,
.l-section-contents .p-article ol.policy-date,
.p-article p.policy-date,
.p-article ul.policy-date,
.p-article ol.policy-date {
	margin: 3.2rem 0 0 !important;
	text-align: right;
}

.l-section-contents .p-article ol,
.p-article ol {
	padding: 0 0 0 1.5em;
}

.l-section-contents .p-article a,
.p-article a {
	text-decoration: underline;
	transition: opacity 0.2s ease;
}

/* -----------------------------------------------------
 * Parts: column
 * -------------------------------------------------- */

/* -----------------------------------------------------
 * Parts: dataset
 * -------------------------------------------------- */

.p-dataset {
	margin: 3.2rem 0 0;
}

.p-dataset dt {
	display: flex;
	justify-content: center;
	margin: 2.4rem 0 0;
}

.p-dataset dt img {
	display: block;
	width: 12rem;
	aspect-ratio: 1/1;
	-o-object-fit: contain;
	object-fit: contain;
}

.p-dataset dd {
	margin: 0.6rem 0 0;
}

.p-dataset dd .title {
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.5;
}

.p-dataset dd p {
	margin: 0.6rem 0 0;
}

/* -----------------------------------------------------
 * Parts: gnav
 * -------------------------------------------------- */

.p-gnav ul {
	display: flex;
}

.p-gnav a {
	position: relative;
	padding-bottom: 0.3rem;
	color: #fff;
}

.p-gnav a::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: #fff;
	transition: -webkit-transform 0.3s;
	transition: transform 0.3s;
	transition: transform 0.3s, -webkit-transform 0.3s;
	-webkit-transform: scale(0, 1);
	transform: scale(0, 1);
	-webkit-transform-origin: right top;
	transform-origin: right top;
}

.p-gnav a .ja {
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 2.2222222222;
}

.p-gnav a .en {
	font-family: 'Georgia', serif;
	font-size: 1.2rem;
	font-weight: 400;
	text-align: center;
}

/* -----------------------------------------------------
 * Parts: images
 * -------------------------------------------------- */

.p-images {
	display: grid;
	padding: 0 0 8.8rem;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}

.p-images figure {
	position: relative;
	transition: -webkit-clip-path 1s ease, -webkit-transform 1s ease;
	transition: clip-path 1s ease, transform 1s ease;
	transition: clip-path 1s ease, transform 1s ease, -webkit-clip-path 1s ease, -webkit-transform 1s ease;
}

.p-images figure:nth-child(1) {
	top: 8.8rem;
	-webkit-transform: translateY(-4rem);
	transform: translateY(-4rem);
	-webkit-clip-path: inset(0 0 100% 0);
	clip-path: inset(0 0 100% 0);
}

.p-images figure:nth-child(2) {
	top: 4.4rem;
	-webkit-transform: translateY(4rem);
	transform: translateY(4rem);
	-webkit-clip-path: inset(100% 0 0 0);
	clip-path: inset(100% 0 0 0);
}

.p-images figure:nth-child(3) {
	-webkit-transform: translateY(-4rem);
	transform: translateY(-4rem);
	-webkit-clip-path: inset(0 0 100% 0);
	clip-path: inset(0 0 100% 0);
}

.p-images.arrow figure:nth-child(1) {
	top: 8rem;
	-webkit-transform: translateY(-4rem);
	transform: translateY(-4rem);
	-webkit-clip-path: inset(0 0 100% 0);
	clip-path: inset(0 0 100% 0);
}

.p-images.arrow figure:nth-child(2) {
	top: 0;
	-webkit-transform: translateY(4rem);
	transform: translateY(4rem);
	-webkit-clip-path: inset(100% 0 0 0);
	clip-path: inset(100% 0 0 0);
}

.p-images.arrow figure:nth-child(3) {
	top: 5rem;
	-webkit-transform: translateY(-4rem);
	transform: translateY(-4rem);
	-webkit-clip-path: inset(0 0 100% 0);
	clip-path: inset(0 0 100% 0);
}

.p-images.col-2 {
	grid-template-columns: repeat(2, 1fr);
}

.p-images.col-2 figure:nth-child(1) {
	top: 0;
	-webkit-transform: translateY(-4rem);
	transform: translateY(-4rem);
	-webkit-clip-path: inset(0 0 100% 0);
	clip-path: inset(0 0 100% 0);
}

.p-images.col-2 figure:nth-child(2) {
	top: 3.5rem;
	-webkit-transform: translateY(4rem);
	transform: translateY(4rem);
	-webkit-clip-path: inset(100% 0 0 0);
	clip-path: inset(100% 0 0 0);
}

.p-images.is-anim-start figure:nth-child(1),
.p-images.is-anim-start figure:nth-child(2),
.p-images.is-anim-start figure:nth-child(3) {
	-webkit-transform: translateY(0);
	transform: translateY(0);
	-webkit-clip-path: inset(0);
	clip-path: inset(0);
}

/* -----------------------------------------------------
 * Parts: sing
 * -------------------------------------------------- */

.p-sign {
	margin: 3.6rem 0 0 !important;
	text-align: right;
}

.p-sign img {
	display: inline-block;
	width: auto;
	height: 2.9rem;
	margin-top: 0.8rem;
}

/* -----------------------------------------------------
 * Parts: sdw spiral
 * -------------------------------------------------- */

.p-spiral {
	position: relative;
	z-index: 0;
}

.p-spiral .canvas {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 34rem;
	pointer-events: none;
}

html.is-safari-mac .p-spiral .canvas {
	-webkit-filter: blur(15px);
	filter: blur(15px);
}

.p-spiral figure a {
	display: flex;
	justify-content: center;
	align-items: center;
	transition: -webkit-transform 0.3s ease;
	transition: transform 0.3s ease;
	transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.p-spiral figure img {
	display: block;
}

/* =====================================================
 * Layout
 * ================================================== */

/* -----------------------------------------------------
 * layout: footer
 * -------------------------------------------------- */

.l-footer {
	position: relative;
	z-index: 6;
	background-color: #181c1f;
	color: #fff;
	transition: opacity 0.3s ease;
}

.l-footer.is-fade-out {
	opacity: 0 !important;
}

.l-footer-inner {
	padding: 3.2rem 1.6rem;
}

.l-footer-info address {
	margin: 2.4rem 0 0;
	font-size: 1.4rem;
	font-style: normal;
	line-height: 1.7857142857;
	text-align: center;
}

.l-footer-logo {
	display: block;
	width: 14.6rem;
	margin: 0 auto;
	transition: opacity 0.2s ease;
	aspect-ratio: 146/88;
}

.l-footer-logo img {
	width: 100%;
	height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

.l-footer-nav {
	display: flex;
	flex-direction: column;
	margin: 2.4rem 0 0;
	gap: 2.4rem;
}

.l-footer-menu {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

.l-footer-menu a {
	display: block;
	color: #fff;
	font-size: 1.8rem;
	font-weight: 700;
	font-style: normal;
	line-height: 2;
	transition: opacity 0.2s ease;
}

.l-footer-group {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	font-size: 1.4rem;
	line-height: 2.2857142857;
	gap: 0.2rem 1.6rem;
}

.l-footer-group .heading {
	font-weight: 700;
}

.l-footer-group a {
	color: #fff;
	font-weight: 500;
	text-decoration: underline;
	transition: opacity 0.2s ease;
}

.l-footer-bottom {
	margin: 2.4rem 0 0;
	padding: 1.6rem 0 0;
	border-top: 1px solid #fff;
}

.l-footer-bottom ul {
	display: flex;
	overflow: hidden;
	justify-content: center;
	gap: 2.1rem;
}

.l-footer-bottom a {
	position: relative;
	color: #fff;
	font-size: 1.2rem;
	line-height: 2.0833333333;
	letter-spacing: 0.075em;
	transition: opacity 0.2s ease;
	-webkit-font-feature-settings: 'palt';
	font-feature-settings: 'palt';
}

.l-footer-bottom a::before {
	content: '/';
	display: block;
	position: absolute;
	right: calc(100% + 0.8rem);
}

/* -----------------------------------------------------
 * layout: header
 * -------------------------------------------------- */

.l-header {
	position: fixed;
	z-index: 8;
	top: 0;
	left: 0;
	width: 100%;
	height: 7rem;
	background-color: #000;
}

.l-header .js-header-gradient {
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.l-header-inner {
	display: flex;
	position: relative;
	z-index: 10;
	justify-content: space-between;
	align-items: center;
	padding: 0 0 0 1.6rem;
}

.l-header-logo {
	display: block;
	width: 22.7rem;
	transition: opacity 0.2s ease;
	aspect-ratio: 227/34;
}

.l-header-logo img {
	width: 100%;
	height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

.l-header-toggle {
	display: flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	width: 7rem;
	height: 7rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none transparent;
	background-clip: padding-box;
	color: inherit;
	font-size: inherit;
	vertical-align: middle;
	appearance: none;
	-moz-appearance: none;
	-webkit-appearance: none;
}

.l-header-toggle::-ms-clear {
	display: none;
}

.l-header-toggle::-ms-reveal {
	display: none;
}

.l-header-toggle::-ms-expand {
	display: none;
}

.l-header-toggle span {
	display: block;
	position: relative;
	width: 2.6rem;
	height: 2px;
	border-radius: 2px;
	background-color: #fff;
	transition: background-color 0.2s ease;
	will-change: background-color;
}

.l-header-toggle span::before,
.l-header-toggle span::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: 2px;
	background-color: #fff;
	transition: -webkit-transform 0.2s ease;
	transition: transform 0.2s ease;
	transition: transform 0.2s ease, -webkit-transform 0.2s ease;
	will-change: transform;
}

.l-header-toggle span::before {
	-webkit-transform: translate3d(0, -0.9rem, 0);
	transform: translate3d(0, -0.9rem, 0);
}

.l-header-toggle span::after {
	-webkit-transform: translate3d(0, 0.9rem, 0);
	transform: translate3d(0, 0.9rem, 0);
}

.l-header-toggle:is(.is-menu-open *) span {
	background-color: rgba(255, 255, 255, 0);
}

.l-header-toggle:is(.is-menu-open *) span::before {
	-webkit-transform: translate3d(0, 0, 0) rotateZ(45deg);
	transform: translate3d(0, 0, 0) rotateZ(45deg);
}

.l-header-toggle:is(.is-menu-open *) span::after {
	-webkit-transform: translate3d(0, 0, 0) rotateZ(-45deg);
	transform: translate3d(0, 0, 0) rotateZ(-45deg);
}

@-webkit-keyframes smokeFlow1 {
	0%, 100% {
		opacity: 0.6;
		-webkit-transform: translate(50%, -50%) scale(0.87) rotate(0deg);
		transform: translate(50%, -50%) scale(0.87) rotate(0deg);
		-webkit-filter: blur(40px) hue-rotate(0deg);
		filter: blur(40px) hue-rotate(0deg);
	}

	25% {
		opacity: 0.65;
		-webkit-transform: translate(48%, -48%) scale(0.95) rotate(30deg);
		transform: translate(48%, -48%) scale(0.95) rotate(30deg);
		-webkit-filter: blur(45px) hue-rotate(20deg);
		filter: blur(45px) hue-rotate(20deg);
	}

	50% {
		opacity: 0.85;
		-webkit-transform: translate(52%, -52%) scale(1.07) rotate(60deg);
		transform: translate(52%, -52%) scale(1.07) rotate(60deg);
		-webkit-filter: blur(35px) hue-rotate(-25deg);
		filter: blur(35px) hue-rotate(-25deg);
	}

	75% {
		opacity: 0.7;
		-webkit-transform: translate(49%, -49%) scale(0.93) rotate(90deg);
		transform: translate(49%, -49%) scale(0.93) rotate(90deg);
		-webkit-filter: blur(42px) hue-rotate(15deg);
		filter: blur(42px) hue-rotate(15deg);
	}
}

@keyframes smokeFlow1 {
	0%, 100% {
		opacity: 0.6;
		-webkit-transform: translate(50%, -50%) scale(0.87) rotate(0deg);
		transform: translate(50%, -50%) scale(0.87) rotate(0deg);
		-webkit-filter: blur(40px) hue-rotate(0deg);
		filter: blur(40px) hue-rotate(0deg);
	}

	25% {
		opacity: 0.65;
		-webkit-transform: translate(48%, -48%) scale(0.95) rotate(30deg);
		transform: translate(48%, -48%) scale(0.95) rotate(30deg);
		-webkit-filter: blur(45px) hue-rotate(20deg);
		filter: blur(45px) hue-rotate(20deg);
	}

	50% {
		opacity: 0.85;
		-webkit-transform: translate(52%, -52%) scale(1.07) rotate(60deg);
		transform: translate(52%, -52%) scale(1.07) rotate(60deg);
		-webkit-filter: blur(35px) hue-rotate(-25deg);
		filter: blur(35px) hue-rotate(-25deg);
	}

	75% {
		opacity: 0.7;
		-webkit-transform: translate(49%, -49%) scale(0.93) rotate(90deg);
		transform: translate(49%, -49%) scale(0.93) rotate(90deg);
		-webkit-filter: blur(42px) hue-rotate(15deg);
		filter: blur(42px) hue-rotate(15deg);
	}
}

@-webkit-keyframes smokeFlow2 {
	0%, 100% {
		opacity: 0.5;
		-webkit-transform: translate(50%, -50%) scale(0.9) rotate(0deg);
		transform: translate(50%, -50%) scale(0.9) rotate(0deg);
		-webkit-filter: blur(50px) hue-rotate(0deg);
		filter: blur(50px) hue-rotate(0deg);
	}

	33% {
		opacity: 0.7;
		-webkit-transform: translate(51%, -49%) scale(1) rotate(-40deg);
		transform: translate(51%, -49%) scale(1) rotate(-40deg);
		-webkit-filter: blur(45px) hue-rotate(-30deg);
		filter: blur(45px) hue-rotate(-30deg);
	}

	66% {
		opacity: 0.55;
		-webkit-transform: translate(49%, -51%) scale(1.07) rotate(-80deg);
		transform: translate(49%, -51%) scale(1.07) rotate(-80deg);
		-webkit-filter: blur(55px) hue-rotate(25deg);
		filter: blur(55px) hue-rotate(25deg);
	}
}

@keyframes smokeFlow2 {
	0%, 100% {
		opacity: 0.5;
		-webkit-transform: translate(50%, -50%) scale(0.9) rotate(0deg);
		transform: translate(50%, -50%) scale(0.9) rotate(0deg);
		-webkit-filter: blur(50px) hue-rotate(0deg);
		filter: blur(50px) hue-rotate(0deg);
	}

	33% {
		opacity: 0.7;
		-webkit-transform: translate(51%, -49%) scale(1) rotate(-40deg);
		transform: translate(51%, -49%) scale(1) rotate(-40deg);
		-webkit-filter: blur(45px) hue-rotate(-30deg);
		filter: blur(45px) hue-rotate(-30deg);
	}

	66% {
		opacity: 0.55;
		-webkit-transform: translate(49%, -51%) scale(1.07) rotate(-80deg);
		transform: translate(49%, -51%) scale(1.07) rotate(-80deg);
		-webkit-filter: blur(55px) hue-rotate(25deg);
		filter: blur(55px) hue-rotate(25deg);
	}
}

@-webkit-keyframes smokeFlow3 {
	0%, 100% {
		opacity: 0.4;
		-webkit-transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		-webkit-filter: blur(35px) hue-rotate(0deg);
		filter: blur(35px) hue-rotate(0deg);
	}

	20% {
		opacity: 0.45;
		-webkit-transform: translate(48%, -51%) scale(0.93) rotate(36deg);
		transform: translate(48%, -51%) scale(0.93) rotate(36deg);
		-webkit-filter: blur(30px) hue-rotate(40deg);
		filter: blur(30px) hue-rotate(40deg);
	}

	40% {
		opacity: 0.55;
		-webkit-transform: translate(52%, -49%) scale(1) rotate(72deg);
		transform: translate(52%, -49%) scale(1) rotate(72deg);
		-webkit-filter: blur(38px) hue-rotate(-35deg);
		filter: blur(38px) hue-rotate(-35deg);
	}

	60% {
		opacity: 0.42;
		-webkit-transform: translate(49%, -52%) scale(1.07) rotate(108deg);
		transform: translate(49%, -52%) scale(1.07) rotate(108deg);
		-webkit-filter: blur(32px) hue-rotate(30deg);
		filter: blur(32px) hue-rotate(30deg);
	}

	80% {
		opacity: 0.48;
		-webkit-transform: translate(51%, -48%) scale(0.95) rotate(144deg);
		transform: translate(51%, -48%) scale(0.95) rotate(144deg);
		-webkit-filter: blur(36px) hue-rotate(-20deg);
		filter: blur(36px) hue-rotate(-20deg);
	}
}

@keyframes smokeFlow3 {
	0%, 100% {
		opacity: 0.4;
		-webkit-transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		-webkit-filter: blur(35px) hue-rotate(0deg);
		filter: blur(35px) hue-rotate(0deg);
	}

	20% {
		opacity: 0.45;
		-webkit-transform: translate(48%, -51%) scale(0.93) rotate(36deg);
		transform: translate(48%, -51%) scale(0.93) rotate(36deg);
		-webkit-filter: blur(30px) hue-rotate(40deg);
		filter: blur(30px) hue-rotate(40deg);
	}

	40% {
		opacity: 0.55;
		-webkit-transform: translate(52%, -49%) scale(1) rotate(72deg);
		transform: translate(52%, -49%) scale(1) rotate(72deg);
		-webkit-filter: blur(38px) hue-rotate(-35deg);
		filter: blur(38px) hue-rotate(-35deg);
	}

	60% {
		opacity: 0.42;
		-webkit-transform: translate(49%, -52%) scale(1.07) rotate(108deg);
		transform: translate(49%, -52%) scale(1.07) rotate(108deg);
		-webkit-filter: blur(32px) hue-rotate(30deg);
		filter: blur(32px) hue-rotate(30deg);
	}

	80% {
		opacity: 0.48;
		-webkit-transform: translate(51%, -48%) scale(0.95) rotate(144deg);
		transform: translate(51%, -48%) scale(0.95) rotate(144deg);
		-webkit-filter: blur(36px) hue-rotate(-20deg);
		filter: blur(36px) hue-rotate(-20deg);
	}
}

@-webkit-keyframes smokeFlow3Ellipse {
	0%, 100% {
		opacity: 0.3;
		-webkit-transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		-webkit-filter: blur(60px) hue-rotate(0deg);
		filter: blur(60px) hue-rotate(0deg);
	}

	20% {
		opacity: 0.35;
		-webkit-transform: translate(48%, -52%) scale(0.92) rotate(18deg);
		transform: translate(48%, -52%) scale(0.92) rotate(18deg);
		-webkit-filter: blur(55px) hue-rotate(25deg);
		filter: blur(55px) hue-rotate(25deg);
	}

	40% {
		opacity: 0.32;
		-webkit-transform: translate(52%, -48%) scale(1) rotate(36deg);
		transform: translate(52%, -48%) scale(1) rotate(36deg);
		-webkit-filter: blur(65px) hue-rotate(-20deg);
		filter: blur(65px) hue-rotate(-20deg);
	}

	60% {
		opacity: 0.4;
		-webkit-transform: translate(49%, -51%) scale(1.05) rotate(54deg);
		transform: translate(49%, -51%) scale(1.05) rotate(54deg);
		-webkit-filter: blur(58px) hue-rotate(30deg);
		filter: blur(58px) hue-rotate(30deg);
	}

	80% {
		opacity: 0.33;
		-webkit-transform: translate(51%, -49%) scale(0.95) rotate(72deg);
		transform: translate(51%, -49%) scale(0.95) rotate(72deg);
		-webkit-filter: blur(62px) hue-rotate(-15deg);
		filter: blur(62px) hue-rotate(-15deg);
	}
}

@keyframes smokeFlow3Ellipse {
	0%, 100% {
		opacity: 0.3;
		-webkit-transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		-webkit-filter: blur(60px) hue-rotate(0deg);
		filter: blur(60px) hue-rotate(0deg);
	}

	20% {
		opacity: 0.35;
		-webkit-transform: translate(48%, -52%) scale(0.92) rotate(18deg);
		transform: translate(48%, -52%) scale(0.92) rotate(18deg);
		-webkit-filter: blur(55px) hue-rotate(25deg);
		filter: blur(55px) hue-rotate(25deg);
	}

	40% {
		opacity: 0.32;
		-webkit-transform: translate(52%, -48%) scale(1) rotate(36deg);
		transform: translate(52%, -48%) scale(1) rotate(36deg);
		-webkit-filter: blur(65px) hue-rotate(-20deg);
		filter: blur(65px) hue-rotate(-20deg);
	}

	60% {
		opacity: 0.4;
		-webkit-transform: translate(49%, -51%) scale(1.05) rotate(54deg);
		transform: translate(49%, -51%) scale(1.05) rotate(54deg);
		-webkit-filter: blur(58px) hue-rotate(30deg);
		filter: blur(58px) hue-rotate(30deg);
	}

	80% {
		opacity: 0.33;
		-webkit-transform: translate(51%, -49%) scale(0.95) rotate(72deg);
		transform: translate(51%, -49%) scale(0.95) rotate(72deg);
		-webkit-filter: blur(62px) hue-rotate(-15deg);
		filter: blur(62px) hue-rotate(-15deg);
	}
}

@-webkit-keyframes smokeFlowSimple1 {
	0%, 100% {
		opacity: 0.6;
		-webkit-transform: translate(50%, -50%) scale(0.87) rotate(0deg);
		transform: translate(50%, -50%) scale(0.87) rotate(0deg);
		-webkit-filter: blur(40px);
		filter: blur(40px);
	}

	25% {
		opacity: 0.65;
		-webkit-transform: translate(48%, -48%) scale(0.95) rotate(30deg);
		transform: translate(48%, -48%) scale(0.95) rotate(30deg);
		-webkit-filter: blur(35px);
		filter: blur(35px);
	}

	50% {
		opacity: 0.85;
		-webkit-transform: translate(52%, -52%) scale(1.07) rotate(60deg);
		transform: translate(52%, -52%) scale(1.07) rotate(60deg);
		-webkit-filter: blur(30px);
		filter: blur(30px);
	}

	75% {
		opacity: 0.7;
		-webkit-transform: translate(49%, -49%) scale(0.93) rotate(90deg);
		transform: translate(49%, -49%) scale(0.93) rotate(90deg);
		-webkit-filter: blur(38px);
		filter: blur(38px);
	}
}

@keyframes smokeFlowSimple1 {
	0%, 100% {
		opacity: 0.6;
		-webkit-transform: translate(50%, -50%) scale(0.87) rotate(0deg);
		transform: translate(50%, -50%) scale(0.87) rotate(0deg);
		-webkit-filter: blur(40px);
		filter: blur(40px);
	}

	25% {
		opacity: 0.65;
		-webkit-transform: translate(48%, -48%) scale(0.95) rotate(30deg);
		transform: translate(48%, -48%) scale(0.95) rotate(30deg);
		-webkit-filter: blur(35px);
		filter: blur(35px);
	}

	50% {
		opacity: 0.85;
		-webkit-transform: translate(52%, -52%) scale(1.07) rotate(60deg);
		transform: translate(52%, -52%) scale(1.07) rotate(60deg);
		-webkit-filter: blur(30px);
		filter: blur(30px);
	}

	75% {
		opacity: 0.7;
		-webkit-transform: translate(49%, -49%) scale(0.93) rotate(90deg);
		transform: translate(49%, -49%) scale(0.93) rotate(90deg);
		-webkit-filter: blur(38px);
		filter: blur(38px);
	}
}

@-webkit-keyframes smokeFlowSimple2 {
	0%, 100% {
		opacity: 0.5;
		-webkit-transform: translate(50%, -50%) scale(0.9) rotate(0deg);
		transform: translate(50%, -50%) scale(0.9) rotate(0deg);
		-webkit-filter: blur(50px);
		filter: blur(50px);
	}

	33% {
		opacity: 0.7;
		-webkit-transform: translate(51%, -49%) scale(1) rotate(-40deg);
		transform: translate(51%, -49%) scale(1) rotate(-40deg);
		-webkit-filter: blur(42px);
		filter: blur(42px);
	}

	66% {
		opacity: 0.55;
		-webkit-transform: translate(49%, -51%) scale(1.07) rotate(-80deg);
		transform: translate(49%, -51%) scale(1.07) rotate(-80deg);
		-webkit-filter: blur(48px);
		filter: blur(48px);
	}
}

@keyframes smokeFlowSimple2 {
	0%, 100% {
		opacity: 0.5;
		-webkit-transform: translate(50%, -50%) scale(0.9) rotate(0deg);
		transform: translate(50%, -50%) scale(0.9) rotate(0deg);
		-webkit-filter: blur(50px);
		filter: blur(50px);
	}

	33% {
		opacity: 0.7;
		-webkit-transform: translate(51%, -49%) scale(1) rotate(-40deg);
		transform: translate(51%, -49%) scale(1) rotate(-40deg);
		-webkit-filter: blur(42px);
		filter: blur(42px);
	}

	66% {
		opacity: 0.55;
		-webkit-transform: translate(49%, -51%) scale(1.07) rotate(-80deg);
		transform: translate(49%, -51%) scale(1.07) rotate(-80deg);
		-webkit-filter: blur(48px);
		filter: blur(48px);
	}
}

@-webkit-keyframes smokeFlowSimple3 {
	0%, 100% {
		opacity: 0.3;
		-webkit-transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		-webkit-filter: blur(60px);
		filter: blur(60px);
	}

	33% {
		opacity: 0.4;
		-webkit-transform: translate(48%, -52%) scale(0.95) rotate(36deg);
		transform: translate(48%, -52%) scale(0.95) rotate(36deg);
		-webkit-filter: blur(55px);
		filter: blur(55px);
	}

	66% {
		opacity: 0.35;
		-webkit-transform: translate(52%, -48%) scale(1.05) rotate(72deg);
		transform: translate(52%, -48%) scale(1.05) rotate(72deg);
		-webkit-filter: blur(58px);
		filter: blur(58px);
	}
}

@keyframes smokeFlowSimple3 {
	0%, 100% {
		opacity: 0.3;
		-webkit-transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		transform: translate(50%, -50%) scale(0.85) rotate(0deg);
		-webkit-filter: blur(60px);
		filter: blur(60px);
	}

	33% {
		opacity: 0.4;
		-webkit-transform: translate(48%, -52%) scale(0.95) rotate(36deg);
		transform: translate(48%, -52%) scale(0.95) rotate(36deg);
		-webkit-filter: blur(55px);
		filter: blur(55px);
	}

	66% {
		opacity: 0.35;
		-webkit-transform: translate(52%, -48%) scale(1.05) rotate(72deg);
		transform: translate(52%, -48%) scale(1.05) rotate(72deg);
		-webkit-filter: blur(58px);
		filter: blur(58px);
	}
}

/* -----------------------------------------------------
 * layout: kv（下層）
 * -------------------------------------------------- */

.l-kv {
	position: relative;
	z-index: 2;
	padding: 0 0 1rem;
}

.l-kv::before {
	content: '';
	display: block;
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	width: 30.4rem;
	height: 19rem;
	background: url(/img/bg_kv_underlay_sp.webp) no-repeat 0 0/contain;
	transition: -webkit-clip-path 1s ease 0.3s;
	transition: clip-path 1s ease 0.3s;
	transition: clip-path 1s ease 0.3s, -webkit-clip-path 1s ease 0.3s;
	pointer-events: none;
	-webkit-clip-path: inset(0 100% 0 0);
	clip-path: inset(0 100% 0 0);
}

.l-kv.is-anim-start::before {
	-webkit-clip-path: inset(0);
	clip-path: inset(0);
}

.l-kv-bg {
	display: block;
	position: relative;
	z-index: 0;
	width: 100%;
	height: 18rem;
	pointer-events: none;
}

.l-kv-bg img {
	display: block;
	position: relative;
	z-index: 0;
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.l-kv .title {
	display: flex;
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	justify-content: flex-start;
	align-items: center;
	height: 18rem;
	padding: 0 2rem;
	color: #fff;
	font-family: 'Georgia', serif;
	font-size: 2.6rem;
	font-weight: 400;
}

/* -----------------------------------------------------
 * layout
 * -------------------------------------------------- */

.l-wrapper {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	padding-top: var(--header-height);
}

/* -----------------------------------------------------
 * layout: loading
 * -------------------------------------------------- */

.l-loading {
	display: flex;
	visibility: visible;
	position: fixed;
	z-index: 13;
	top: 0;
	left: 0;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	background-color: #fff;
	opacity: 1;
	transition: opacity 1000ms ease-out, visibility 1000ms ease-out;
}

.l-loading.is-fadeout {
	visibility: hidden;
	opacity: 0;
}

.l-loading-inner {
	color: #181c1f;
	text-align: center;
}

.l-loading-spinner {
	display: flex;
	justify-content: center;
	margin-bottom: 2rem;
}

.l-loading-text {
	opacity: 0.8;
	font-size: 1.4rem;
	font-weight: 300;
	letter-spacing: 0.1em;
}

/* -----------------------------------------------------
 * main element fade animation
 * -------------------------------------------------- */

.l-main {
	opacity: 1;
	transition: opacity 800ms ease-out;
}

.l-main.is-fadeout {
	opacity: 0;
}

/* -----------------------------------------------------
 * layout: main
 * -------------------------------------------------- */

.l-main {
	position: relative;
	z-index: 3;
	flex-grow: 1;
	min-width: 320px;
	background-color: #fff;
	opacity: 1;
	transition: opacity 0.3s ease;
}

.l-main.is-fade-out {
	opacity: 0 !important;
}

.l-main-bottom-effect {
	position: absolute;
	z-index: -1;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 40rem;
	pointer-events: none;
}

.l-main-bottom-effect::before {
	content: '';
	display: block;
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(to bottom, rgb(255, 255, 255) 0%, rgba(255, 255, 255, 0) 100%);
}

.l-main-bottom-effect canvas {
	z-index: 0;
	height: 100%;
}

/* -----------------------------------------------------
 * layout: section
 * -------------------------------------------------- */

.l-section {
	position: relative;
	z-index: 1;
	padding: 4.8rem 0 6rem;
}

.l-section-bg-head {
	position: absolute;
	z-index: 0;
	top: -1rem;
	left: 0;
	width: 100%;
	pointer-events: none;
}

.l-section-bg-head img {
	display: block;
	width: 100%;
	height: auto;
}

.l-section header,
.l-section-contents {
	position: relative;
	z-index: 1;
}

.l-section-contents {
	position: relative;
	margin: 4.8rem 0 0;
	padding: 0 1.2rem;
}

.l-section-contents.box {
	padding: 4.8rem 1.2rem;
}

.l-section-contents.flat .l-section-contents-inner {
	margin: 0;
}

.l-section-contents-inner {
	margin-top: 2.4rem;
}

.l-section-contents-inner + .l-section-contents-inner {
	margin-top: 3.2rem;
}

.l-section-contents-bg {
	display: block;
	position: absolute;
	z-index: 0;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.l-section-contents-bg img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.l-section-contents figure {
	display: grid;
	margin: 2.4rem 0 0;
	justify-items: center;
}

.l-section-contents figure.l-section-contents-bg {
	margin: 0;
}

.l-section-contents p {
	margin: 2.4rem 0 0;
	font-size: 1.6rem;
	line-height: 1.5;
}

.l-section-contents p + p {
	margin-top: 1.25em;
}

.l-section-contents table {
	width: 100%;
	margin: 2.4rem 0 0;
}

.l-section-contents table th,
.l-section-contents table td {
	border-bottom: 1px solid #666;
	font-size: 1.6rem;
	line-height: 1.5;
}

.l-section-contents table th {
	padding: 1.3rem 1rem;
	font-weight: 700;
}

.l-section-contents table td {
	padding: 1.3rem 0 1.3rem 1.2rem;
}

.l-section-image {
	display: block;
	margin: 2.4rem 0 0;
	padding: 0 1.2rem;
}

/* =====================================================
 * Overwrite
 * ================================================== */

/* -----------------------------------------------------
 * js: glitch
 * -------------------------------------------------- */

.js-glitch {
	position: relative;
	overflow: hidden;
	background-image: var(--glitch-bg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

figure .js-glitch {
	display: block;
	width: 100%;
	height: 100%;
}

.js-glitch img {
	visibility: hidden;
	position: absolute;
	opacity: 0;
}

.js-glitch::before,
.js-glitch::after {
	content: '';
	position: absolute;
	z-index: 2;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-image: var(--glitch-bg);
	background-repeat: no-repeat;
	background-position: var(--glitch-bg-position, center);
	background-size: cover;
	opacity: 0.8;
	pointer-events: none;
}

.js-glitch::before,
.js-glitch::after,
.js-glitch .channel {
	-webkit-animation-play-state: paused;
	animation-play-state: paused;
}

.js-glitch.is-anim-start::before,
.js-glitch.is-anim-start::after,
.js-glitch.is-anim-start .channel {
	-webkit-animation-play-state: running;
	animation-play-state: running;
}

.js-glitch::before {
	-webkit-animation: glitch-before 3s linear infinite alternate both;
	animation: glitch-before 3s linear infinite alternate both;
}

@-webkit-keyframes glitch-before {
	0% {
		-webkit-transform: translate(-1.5%, 0.1%) scale(1.01);
		transform: translate(-1.5%, 0.1%) scale(1.01);
		-webkit-clip-path: polygon(0% 10%, 100% 10%, 100% 18%, 0% 18%);
		clip-path: polygon(0% 10%, 100% 10%, 100% 18%, 0% 18%);
		-webkit-filter: brightness(1.1) contrast(1.2) saturate(1.3) hue-rotate(3deg);
		filter: brightness(1.1) contrast(1.2) saturate(1.3) hue-rotate(3deg);
	}

	2% {
		-webkit-transform: translate(2%, -0.05%) scale(0.99);
		transform: translate(2%, -0.05%) scale(0.99);
		-webkit-clip-path: polygon(0% 45%, 100% 45%, 100% 52%, 0% 52%);
		clip-path: polygon(0% 45%, 100% 45%, 100% 52%, 0% 52%);
		-webkit-filter: brightness(0.95) contrast(1.1) saturate(0.8) hue-rotate(-2deg);
		filter: brightness(0.95) contrast(1.1) saturate(0.8) hue-rotate(-2deg);
	}

	4% {
		-webkit-transform: translate(-1%, 0.15%) scale(1.02);
		transform: translate(-1%, 0.15%) scale(1.02);
		-webkit-clip-path: polygon(0% 72%, 100% 72%, 100% 79%, 0% 79%);
		clip-path: polygon(0% 72%, 100% 72%, 100% 79%, 0% 79%);
		-webkit-filter: brightness(1.15) contrast(1.05) saturate(1.5) hue-rotate(4deg);
		filter: brightness(1.15) contrast(1.05) saturate(1.5) hue-rotate(4deg);
	}

	6% {
		-webkit-transform: translate(1.2%, -0.1%) scale(0.98);
		transform: translate(1.2%, -0.1%) scale(0.98);
		-webkit-clip-path: polygon(0% 25%, 100% 25%, 100% 31%, 0% 31%);
		clip-path: polygon(0% 25%, 100% 25%, 100% 31%, 0% 31%);
		-webkit-filter: brightness(0.9) contrast(1.3) saturate(1.1) hue-rotate(-3deg);
		filter: brightness(0.9) contrast(1.3) saturate(1.1) hue-rotate(-3deg);
	}

	8% {
		-webkit-transform: translate(-2.5%, 0.05%) scale(1.015);
		transform: translate(-2.5%, 0.05%) scale(1.015);
		-webkit-clip-path: polygon(0% 60%, 100% 60%, 100% 68%, 0% 68%);
		clip-path: polygon(0% 60%, 100% 60%, 100% 68%, 0% 68%);
		-webkit-filter: brightness(1.08) contrast(1.08) saturate(0.9) hue-rotate(2deg);
		filter: brightness(1.08) contrast(1.08) saturate(0.9) hue-rotate(2deg);
	}

	10% {
		-webkit-transform: translate(1.8%, -0.12%) scale(0.995);
		transform: translate(1.8%, -0.12%) scale(0.995);
		-webkit-clip-path: polygon(0% 5%, 100% 5%, 100% 12%, 0% 12%);
		clip-path: polygon(0% 5%, 100% 5%, 100% 12%, 0% 12%);
		-webkit-filter: brightness(1.05) contrast(1.15) saturate(1.2) hue-rotate(-1deg);
		filter: brightness(1.05) contrast(1.15) saturate(1.2) hue-rotate(-1deg);
	}

	12% {
		-webkit-transform: translate(-0.8%, 0.08%) scale(1.005);
		transform: translate(-0.8%, 0.08%) scale(1.005);
		-webkit-clip-path: polygon(0% 82%, 100% 82%, 100% 88%, 0% 88%);
		clip-path: polygon(0% 82%, 100% 82%, 100% 88%, 0% 88%);
		-webkit-filter: brightness(0.98) contrast(1.25) saturate(0.85) hue-rotate(3deg);
		filter: brightness(0.98) contrast(1.25) saturate(0.85) hue-rotate(3deg);
	}

	14% {
		-webkit-transform: translate(1.5%, -0.06%) scale(0.985);
		transform: translate(1.5%, -0.06%) scale(0.985);
		-webkit-clip-path: polygon(0% 35%, 100% 35%, 100% 43%, 0% 43%);
		clip-path: polygon(0% 35%, 100% 35%, 100% 43%, 0% 43%);
		-webkit-filter: brightness(1.12) contrast(1.05) saturate(1.4) hue-rotate(-2deg);
		filter: brightness(1.12) contrast(1.05) saturate(1.4) hue-rotate(-2deg);
	}

	16% {
		-webkit-transform: translate(-1.8%, 0.12%) scale(1.01);
		transform: translate(-1.8%, 0.12%) scale(1.01);
		-webkit-clip-path: polygon(0% 55%, 100% 55%, 100% 61%, 0% 61%);
		clip-path: polygon(0% 55%, 100% 55%, 100% 61%, 0% 61%);
		-webkit-filter: brightness(0.92) contrast(1.18) saturate(1.05) hue-rotate(2deg);
		filter: brightness(0.92) contrast(1.18) saturate(1.05) hue-rotate(2deg);
	}

	18% {
		-webkit-transform: translate(0.8%, -0.04%) scale(1);
		transform: translate(0.8%, -0.04%) scale(1);
		-webkit-clip-path: polygon(0% 15%, 100% 15%, 100% 23%, 0% 23%);
		clip-path: polygon(0% 15%, 100% 15%, 100% 23%, 0% 23%);
		-webkit-filter: brightness(1.06) contrast(1.12) saturate(1.15) hue-rotate(-1deg);
		filter: brightness(1.06) contrast(1.12) saturate(1.15) hue-rotate(-1deg);
	}

	20% {
		opacity: 0.8;
		-webkit-transform: none;
		transform: none;
		-webkit-clip-path: none;
		clip-path: none;
		-webkit-filter: none;
		filter: none;
	}

	50% {
		opacity: 0.4;
	}

	80% {
		opacity: 0.1;
	}

	100% {
		opacity: 0;
		-webkit-transform: none;
		transform: none;
		-webkit-clip-path: none;
		clip-path: none;
		-webkit-filter: none;
		filter: none;
	}
}

@keyframes glitch-before {
	0% {
		-webkit-transform: translate(-1.5%, 0.1%) scale(1.01);
		transform: translate(-1.5%, 0.1%) scale(1.01);
		-webkit-clip-path: polygon(0% 10%, 100% 10%, 100% 18%, 0% 18%);
		clip-path: polygon(0% 10%, 100% 10%, 100% 18%, 0% 18%);
		-webkit-filter: brightness(1.1) contrast(1.2) saturate(1.3) hue-rotate(3deg);
		filter: brightness(1.1) contrast(1.2) saturate(1.3) hue-rotate(3deg);
	}

	2% {
		-webkit-transform: translate(2%, -0.05%) scale(0.99);
		transform: translate(2%, -0.05%) scale(0.99);
		-webkit-clip-path: polygon(0% 45%, 100% 45%, 100% 52%, 0% 52%);
		clip-path: polygon(0% 45%, 100% 45%, 100% 52%, 0% 52%);
		-webkit-filter: brightness(0.95) contrast(1.1) saturate(0.8) hue-rotate(-2deg);
		filter: brightness(0.95) contrast(1.1) saturate(0.8) hue-rotate(-2deg);
	}

	4% {
		-webkit-transform: translate(-1%, 0.15%) scale(1.02);
		transform: translate(-1%, 0.15%) scale(1.02);
		-webkit-clip-path: polygon(0% 72%, 100% 72%, 100% 79%, 0% 79%);
		clip-path: polygon(0% 72%, 100% 72%, 100% 79%, 0% 79%);
		-webkit-filter: brightness(1.15) contrast(1.05) saturate(1.5) hue-rotate(4deg);
		filter: brightness(1.15) contrast(1.05) saturate(1.5) hue-rotate(4deg);
	}

	6% {
		-webkit-transform: translate(1.2%, -0.1%) scale(0.98);
		transform: translate(1.2%, -0.1%) scale(0.98);
		-webkit-clip-path: polygon(0% 25%, 100% 25%, 100% 31%, 0% 31%);
		clip-path: polygon(0% 25%, 100% 25%, 100% 31%, 0% 31%);
		-webkit-filter: brightness(0.9) contrast(1.3) saturate(1.1) hue-rotate(-3deg);
		filter: brightness(0.9) contrast(1.3) saturate(1.1) hue-rotate(-3deg);
	}

	8% {
		-webkit-transform: translate(-2.5%, 0.05%) scale(1.015);
		transform: translate(-2.5%, 0.05%) scale(1.015);
		-webkit-clip-path: polygon(0% 60%, 100% 60%, 100% 68%, 0% 68%);
		clip-path: polygon(0% 60%, 100% 60%, 100% 68%, 0% 68%);
		-webkit-filter: brightness(1.08) contrast(1.08) saturate(0.9) hue-rotate(2deg);
		filter: brightness(1.08) contrast(1.08) saturate(0.9) hue-rotate(2deg);
	}

	10% {
		-webkit-transform: translate(1.8%, -0.12%) scale(0.995);
		transform: translate(1.8%, -0.12%) scale(0.995);
		-webkit-clip-path: polygon(0% 5%, 100% 5%, 100% 12%, 0% 12%);
		clip-path: polygon(0% 5%, 100% 5%, 100% 12%, 0% 12%);
		-webkit-filter: brightness(1.05) contrast(1.15) saturate(1.2) hue-rotate(-1deg);
		filter: brightness(1.05) contrast(1.15) saturate(1.2) hue-rotate(-1deg);
	}

	12% {
		-webkit-transform: translate(-0.8%, 0.08%) scale(1.005);
		transform: translate(-0.8%, 0.08%) scale(1.005);
		-webkit-clip-path: polygon(0% 82%, 100% 82%, 100% 88%, 0% 88%);
		clip-path: polygon(0% 82%, 100% 82%, 100% 88%, 0% 88%);
		-webkit-filter: brightness(0.98) contrast(1.25) saturate(0.85) hue-rotate(3deg);
		filter: brightness(0.98) contrast(1.25) saturate(0.85) hue-rotate(3deg);
	}

	14% {
		-webkit-transform: translate(1.5%, -0.06%) scale(0.985);
		transform: translate(1.5%, -0.06%) scale(0.985);
		-webkit-clip-path: polygon(0% 35%, 100% 35%, 100% 43%, 0% 43%);
		clip-path: polygon(0% 35%, 100% 35%, 100% 43%, 0% 43%);
		-webkit-filter: brightness(1.12) contrast(1.05) saturate(1.4) hue-rotate(-2deg);
		filter: brightness(1.12) contrast(1.05) saturate(1.4) hue-rotate(-2deg);
	}

	16% {
		-webkit-transform: translate(-1.8%, 0.12%) scale(1.01);
		transform: translate(-1.8%, 0.12%) scale(1.01);
		-webkit-clip-path: polygon(0% 55%, 100% 55%, 100% 61%, 0% 61%);
		clip-path: polygon(0% 55%, 100% 55%, 100% 61%, 0% 61%);
		-webkit-filter: brightness(0.92) contrast(1.18) saturate(1.05) hue-rotate(2deg);
		filter: brightness(0.92) contrast(1.18) saturate(1.05) hue-rotate(2deg);
	}

	18% {
		-webkit-transform: translate(0.8%, -0.04%) scale(1);
		transform: translate(0.8%, -0.04%) scale(1);
		-webkit-clip-path: polygon(0% 15%, 100% 15%, 100% 23%, 0% 23%);
		clip-path: polygon(0% 15%, 100% 15%, 100% 23%, 0% 23%);
		-webkit-filter: brightness(1.06) contrast(1.12) saturate(1.15) hue-rotate(-1deg);
		filter: brightness(1.06) contrast(1.12) saturate(1.15) hue-rotate(-1deg);
	}

	20% {
		opacity: 0.8;
		-webkit-transform: none;
		transform: none;
		-webkit-clip-path: none;
		clip-path: none;
		-webkit-filter: none;
		filter: none;
	}

	50% {
		opacity: 0.4;
	}

	80% {
		opacity: 0.1;
	}

	100% {
		opacity: 0;
		-webkit-transform: none;
		transform: none;
		-webkit-clip-path: none;
		clip-path: none;
		-webkit-filter: none;
		filter: none;
	}
}

.js-glitch::after {
	-webkit-animation: glitch-after 3s linear infinite alternate both;
	animation: glitch-after 3s linear infinite alternate both;
}

@-webkit-keyframes glitch-after {
	0% {
		-webkit-transform: translate(-1.5%, 0.1%) scale(1.01);
		transform: translate(-1.5%, 0.1%) scale(1.01);
		-webkit-clip-path: polygon(0% 10%, 100% 10%, 100% 18%, 0% 18%);
		clip-path: polygon(0% 10%, 100% 10%, 100% 18%, 0% 18%);
		-webkit-filter: brightness(1.1) contrast(1.2) saturate(1.3) hue-rotate(3deg);
		filter: brightness(1.1) contrast(1.2) saturate(1.3) hue-rotate(3deg);
	}

	2% {
		-webkit-transform: translate(2%, -0.05%) scale(0.99);
		transform: translate(2%, -0.05%) scale(0.99);
		-webkit-clip-path: polygon(0% 45%, 100% 45%, 100% 52%, 0% 52%);
		clip-path: polygon(0% 45%, 100% 45%, 100% 52%, 0% 52%);
		-webkit-filter: brightness(0.95) contrast(1.1) saturate(0.8) hue-rotate(-2deg);
		filter: brightness(0.95) contrast(1.1) saturate(0.8) hue-rotate(-2deg);
	}

	4% {
		-webkit-transform: translate(-1%, 0.15%) scale(1.02);
		transform: translate(-1%, 0.15%) scale(1.02);
		-webkit-clip-path: polygon(0% 72%, 100% 72%, 100% 79%, 0% 79%);
		clip-path: polygon(0% 72%, 100% 72%, 100% 79%, 0% 79%);
		-webkit-filter: brightness(1.15) contrast(1.05) saturate(1.5) hue-rotate(4deg);
		filter: brightness(1.15) contrast(1.05) saturate(1.5) hue-rotate(4deg);
	}

	6% {
		-webkit-transform: translate(1.2%, -0.1%) scale(0.98);
		transform: translate(1.2%, -0.1%) scale(0.98);
		-webkit-clip-path: polygon(0% 25%, 100% 25%, 100% 31%, 0% 31%);
		clip-path: polygon(0% 25%, 100% 25%, 100% 31%, 0% 31%);
		-webkit-filter: brightness(0.9) contrast(1.3) saturate(1.1) hue-rotate(-3deg);
		filter: brightness(0.9) contrast(1.3) saturate(1.1) hue-rotate(-3deg);
	}

	8% {
		-webkit-transform: translate(-2.5%, 0.05%) scale(1.015);
		transform: translate(-2.5%, 0.05%) scale(1.015);
		-webkit-clip-path: polygon(0% 60%, 100% 60%, 100% 68%, 0% 68%);
		clip-path: polygon(0% 60%, 100% 60%, 100% 68%, 0% 68%);
		-webkit-filter: brightness(1.08) contrast(1.08) saturate(0.9) hue-rotate(2deg);
		filter: brightness(1.08) contrast(1.08) saturate(0.9) hue-rotate(2deg);
	}

	10% {
		-webkit-transform: translate(1.8%, -0.12%) scale(0.995);
		transform: translate(1.8%, -0.12%) scale(0.995);
		-webkit-clip-path: polygon(0% 5%, 100% 5%, 100% 12%, 0% 12%);
		clip-path: polygon(0% 5%, 100% 5%, 100% 12%, 0% 12%);
		-webkit-filter: brightness(1.05) contrast(1.15) saturate(1.2) hue-rotate(-1deg);
		filter: brightness(1.05) contrast(1.15) saturate(1.2) hue-rotate(-1deg);
	}

	12% {
		-webkit-transform: translate(-0.8%, 0.08%) scale(1.005);
		transform: translate(-0.8%, 0.08%) scale(1.005);
		-webkit-clip-path: polygon(0% 82%, 100% 82%, 100% 88%, 0% 88%);
		clip-path: polygon(0% 82%, 100% 82%, 100% 88%, 0% 88%);
		-webkit-filter: brightness(0.98) contrast(1.25) saturate(0.85) hue-rotate(3deg);
		filter: brightness(0.98) contrast(1.25) saturate(0.85) hue-rotate(3deg);
	}

	14% {
		-webkit-transform: translate(1.5%, -0.06%) scale(0.985);
		transform: translate(1.5%, -0.06%) scale(0.985);
		-webkit-clip-path: polygon(0% 35%, 100% 35%, 100% 43%, 0% 43%);
		clip-path: polygon(0% 35%, 100% 35%, 100% 43%, 0% 43%);
		-webkit-filter: brightness(1.12) contrast(1.05) saturate(1.4) hue-rotate(-2deg);
		filter: brightness(1.12) contrast(1.05) saturate(1.4) hue-rotate(-2deg);
	}

	16% {
		-webkit-transform: translate(-1.8%, 0.12%) scale(1.01);
		transform: translate(-1.8%, 0.12%) scale(1.01);
		-webkit-clip-path: polygon(0% 55%, 100% 55%, 100% 61%, 0% 61%);
		clip-path: polygon(0% 55%, 100% 55%, 100% 61%, 0% 61%);
		-webkit-filter: brightness(0.92) contrast(1.18) saturate(1.05) hue-rotate(2deg);
		filter: brightness(0.92) contrast(1.18) saturate(1.05) hue-rotate(2deg);
	}

	18% {
		-webkit-transform: translate(0.8%, -0.04%) scale(1);
		transform: translate(0.8%, -0.04%) scale(1);
		-webkit-clip-path: polygon(0% 15%, 100% 15%, 100% 23%, 0% 23%);
		clip-path: polygon(0% 15%, 100% 15%, 100% 23%, 0% 23%);
		-webkit-filter: brightness(1.06) contrast(1.12) saturate(1.15) hue-rotate(-1deg);
		filter: brightness(1.06) contrast(1.12) saturate(1.15) hue-rotate(-1deg);
	}

	20% {
		opacity: 0.8;
		-webkit-transform: none;
		transform: none;
		-webkit-clip-path: none;
		clip-path: none;
		-webkit-filter: none;
		filter: none;
	}

	50% {
		opacity: 0.4;
	}

	80% {
		opacity: 0.1;
	}

	100% {
		opacity: 0;
		-webkit-transform: none;
		transform: none;
		-webkit-clip-path: none;
		clip-path: none;
		-webkit-filter: none;
		filter: none;
	}
}

@keyframes glitch-after {
	0% {
		-webkit-transform: translate(-1.5%, 0.1%) scale(1.01);
		transform: translate(-1.5%, 0.1%) scale(1.01);
		-webkit-clip-path: polygon(0% 10%, 100% 10%, 100% 18%, 0% 18%);
		clip-path: polygon(0% 10%, 100% 10%, 100% 18%, 0% 18%);
		-webkit-filter: brightness(1.1) contrast(1.2) saturate(1.3) hue-rotate(3deg);
		filter: brightness(1.1) contrast(1.2) saturate(1.3) hue-rotate(3deg);
	}

	2% {
		-webkit-transform: translate(2%, -0.05%) scale(0.99);
		transform: translate(2%, -0.05%) scale(0.99);
		-webkit-clip-path: polygon(0% 45%, 100% 45%, 100% 52%, 0% 52%);
		clip-path: polygon(0% 45%, 100% 45%, 100% 52%, 0% 52%);
		-webkit-filter: brightness(0.95) contrast(1.1) saturate(0.8) hue-rotate(-2deg);
		filter: brightness(0.95) contrast(1.1) saturate(0.8) hue-rotate(-2deg);
	}

	4% {
		-webkit-transform: translate(-1%, 0.15%) scale(1.02);
		transform: translate(-1%, 0.15%) scale(1.02);
		-webkit-clip-path: polygon(0% 72%, 100% 72%, 100% 79%, 0% 79%);
		clip-path: polygon(0% 72%, 100% 72%, 100% 79%, 0% 79%);
		-webkit-filter: brightness(1.15) contrast(1.05) saturate(1.5) hue-rotate(4deg);
		filter: brightness(1.15) contrast(1.05) saturate(1.5) hue-rotate(4deg);
	}

	6% {
		-webkit-transform: translate(1.2%, -0.1%) scale(0.98);
		transform: translate(1.2%, -0.1%) scale(0.98);
		-webkit-clip-path: polygon(0% 25%, 100% 25%, 100% 31%, 0% 31%);
		clip-path: polygon(0% 25%, 100% 25%, 100% 31%, 0% 31%);
		-webkit-filter: brightness(0.9) contrast(1.3) saturate(1.1) hue-rotate(-3deg);
		filter: brightness(0.9) contrast(1.3) saturate(1.1) hue-rotate(-3deg);
	}

	8% {
		-webkit-transform: translate(-2.5%, 0.05%) scale(1.015);
		transform: translate(-2.5%, 0.05%) scale(1.015);
		-webkit-clip-path: polygon(0% 60%, 100% 60%, 100% 68%, 0% 68%);
		clip-path: polygon(0% 60%, 100% 60%, 100% 68%, 0% 68%);
		-webkit-filter: brightness(1.08) contrast(1.08) saturate(0.9) hue-rotate(2deg);
		filter: brightness(1.08) contrast(1.08) saturate(0.9) hue-rotate(2deg);
	}

	10% {
		-webkit-transform: translate(1.8%, -0.12%) scale(0.995);
		transform: translate(1.8%, -0.12%) scale(0.995);
		-webkit-clip-path: polygon(0% 5%, 100% 5%, 100% 12%, 0% 12%);
		clip-path: polygon(0% 5%, 100% 5%, 100% 12%, 0% 12%);
		-webkit-filter: brightness(1.05) contrast(1.15) saturate(1.2) hue-rotate(-1deg);
		filter: brightness(1.05) contrast(1.15) saturate(1.2) hue-rotate(-1deg);
	}

	12% {
		-webkit-transform: translate(-0.8%, 0.08%) scale(1.005);
		transform: translate(-0.8%, 0.08%) scale(1.005);
		-webkit-clip-path: polygon(0% 82%, 100% 82%, 100% 88%, 0% 88%);
		clip-path: polygon(0% 82%, 100% 82%, 100% 88%, 0% 88%);
		-webkit-filter: brightness(0.98) contrast(1.25) saturate(0.85) hue-rotate(3deg);
		filter: brightness(0.98) contrast(1.25) saturate(0.85) hue-rotate(3deg);
	}

	14% {
		-webkit-transform: translate(1.5%, -0.06%) scale(0.985);
		transform: translate(1.5%, -0.06%) scale(0.985);
		-webkit-clip-path: polygon(0% 35%, 100% 35%, 100% 43%, 0% 43%);
		clip-path: polygon(0% 35%, 100% 35%, 100% 43%, 0% 43%);
		-webkit-filter: brightness(1.12) contrast(1.05) saturate(1.4) hue-rotate(-2deg);
		filter: brightness(1.12) contrast(1.05) saturate(1.4) hue-rotate(-2deg);
	}

	16% {
		-webkit-transform: translate(-1.8%, 0.12%) scale(1.01);
		transform: translate(-1.8%, 0.12%) scale(1.01);
		-webkit-clip-path: polygon(0% 55%, 100% 55%, 100% 61%, 0% 61%);
		clip-path: polygon(0% 55%, 100% 55%, 100% 61%, 0% 61%);
		-webkit-filter: brightness(0.92) contrast(1.18) saturate(1.05) hue-rotate(2deg);
		filter: brightness(0.92) contrast(1.18) saturate(1.05) hue-rotate(2deg);
	}

	18% {
		-webkit-transform: translate(0.8%, -0.04%) scale(1);
		transform: translate(0.8%, -0.04%) scale(1);
		-webkit-clip-path: polygon(0% 15%, 100% 15%, 100% 23%, 0% 23%);
		clip-path: polygon(0% 15%, 100% 15%, 100% 23%, 0% 23%);
		-webkit-filter: brightness(1.06) contrast(1.12) saturate(1.15) hue-rotate(-1deg);
		filter: brightness(1.06) contrast(1.12) saturate(1.15) hue-rotate(-1deg);
	}

	20% {
		opacity: 0.8;
		-webkit-transform: none;
		transform: none;
		-webkit-clip-path: none;
		clip-path: none;
		-webkit-filter: none;
		filter: none;
	}

	50% {
		opacity: 0.4;
	}

	80% {
		opacity: 0.1;
	}

	100% {
		opacity: 0;
		-webkit-transform: none;
		transform: none;
		-webkit-clip-path: none;
		clip-path: none;
		-webkit-filter: none;
		filter: none;
	}
}

.js-glitch .channel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: inherit;
	background-size: cover;
	mix-blend-mode: screen;
}

.js-glitch .channel::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	mix-blend-mode: multiply;
}

.js-glitch .channel.r {
	-webkit-animation: rgb-shift-r 3s steps(1, jump-end) infinite alternate both;
	animation: rgb-shift-r 3s steps(1, jump-end) infinite alternate both;
}

@-webkit-keyframes rgb-shift-r {
	0% {
		-webkit-transform: translate(-0.3%, 0.08%);
		transform: translate(-0.3%, 0.08%);
	}

	2% {
		-webkit-transform: translate(0.15%, -0.04%);
		transform: translate(0.15%, -0.04%);
	}

	4% {
		-webkit-transform: translate(-0.12%, 0.05%);
		transform: translate(-0.12%, 0.05%);
	}

	6% {
		-webkit-transform: translate(0.2%, -0.02%);
		transform: translate(0.2%, -0.02%);
	}

	8% {
		-webkit-transform: translate(-0.18%, 0.06%);
		transform: translate(-0.18%, 0.06%);
	}

	10% {
		-webkit-transform: translate(0.1%, -0.03%);
		transform: translate(0.1%, -0.03%);
	}

	12% {
		-webkit-transform: translate(-0.08%, 0.04%);
		transform: translate(-0.08%, 0.04%);
	}

	14% {
		-webkit-transform: translate(0.25%, -0.05%);
		transform: translate(0.25%, -0.05%);
	}

	16% {
		-webkit-transform: translate(-0.14%, 0.02%);
		transform: translate(-0.14%, 0.02%);
	}

	18% {
		-webkit-transform: translate(0.09%, -0.03%);
		transform: translate(0.09%, -0.03%);
	}

	20% {
		opacity: 1;
		-webkit-transform: none;
		transform: none;
	}

	50% {
		opacity: 0.6;
	}

	80% {
		opacity: 0.2;
	}

	100% {
		opacity: 0;
		-webkit-transform: none;
		transform: none;
	}
}

@keyframes rgb-shift-r {
	0% {
		-webkit-transform: translate(-0.3%, 0.08%);
		transform: translate(-0.3%, 0.08%);
	}

	2% {
		-webkit-transform: translate(0.15%, -0.04%);
		transform: translate(0.15%, -0.04%);
	}

	4% {
		-webkit-transform: translate(-0.12%, 0.05%);
		transform: translate(-0.12%, 0.05%);
	}

	6% {
		-webkit-transform: translate(0.2%, -0.02%);
		transform: translate(0.2%, -0.02%);
	}

	8% {
		-webkit-transform: translate(-0.18%, 0.06%);
		transform: translate(-0.18%, 0.06%);
	}

	10% {
		-webkit-transform: translate(0.1%, -0.03%);
		transform: translate(0.1%, -0.03%);
	}

	12% {
		-webkit-transform: translate(-0.08%, 0.04%);
		transform: translate(-0.08%, 0.04%);
	}

	14% {
		-webkit-transform: translate(0.25%, -0.05%);
		transform: translate(0.25%, -0.05%);
	}

	16% {
		-webkit-transform: translate(-0.14%, 0.02%);
		transform: translate(-0.14%, 0.02%);
	}

	18% {
		-webkit-transform: translate(0.09%, -0.03%);
		transform: translate(0.09%, -0.03%);
	}

	20% {
		opacity: 1;
		-webkit-transform: none;
		transform: none;
	}

	50% {
		opacity: 0.6;
	}

	80% {
		opacity: 0.2;
	}

	100% {
		opacity: 0;
		-webkit-transform: none;
		transform: none;
	}
}

.js-glitch .channel.r::before {
	background: #f00;
}

.js-glitch .channel.g {
	-webkit-animation: rgb-shift-g 3s steps(1, jump-end) infinite alternate both;
	animation: rgb-shift-g 3s steps(1, jump-end) infinite alternate both;
}

@-webkit-keyframes rgb-shift-g {
	0% {
		-webkit-transform: translate(-0.3%, 0.08%);
		transform: translate(-0.3%, 0.08%);
	}

	2% {
		-webkit-transform: translate(0.15%, -0.04%);
		transform: translate(0.15%, -0.04%);
	}

	4% {
		-webkit-transform: translate(-0.12%, 0.05%);
		transform: translate(-0.12%, 0.05%);
	}

	6% {
		-webkit-transform: translate(0.2%, -0.02%);
		transform: translate(0.2%, -0.02%);
	}

	8% {
		-webkit-transform: translate(-0.18%, 0.06%);
		transform: translate(-0.18%, 0.06%);
	}

	10% {
		-webkit-transform: translate(0.1%, -0.03%);
		transform: translate(0.1%, -0.03%);
	}

	12% {
		-webkit-transform: translate(-0.08%, 0.04%);
		transform: translate(-0.08%, 0.04%);
	}

	14% {
		-webkit-transform: translate(0.25%, -0.05%);
		transform: translate(0.25%, -0.05%);
	}

	16% {
		-webkit-transform: translate(-0.14%, 0.02%);
		transform: translate(-0.14%, 0.02%);
	}

	18% {
		-webkit-transform: translate(0.09%, -0.03%);
		transform: translate(0.09%, -0.03%);
	}

	20% {
		opacity: 1;
		-webkit-transform: none;
		transform: none;
	}

	50% {
		opacity: 0.6;
	}

	80% {
		opacity: 0.2;
	}

	100% {
		opacity: 0;
		-webkit-transform: none;
		transform: none;
	}
}

@keyframes rgb-shift-g {
	0% {
		-webkit-transform: translate(-0.3%, 0.08%);
		transform: translate(-0.3%, 0.08%);
	}

	2% {
		-webkit-transform: translate(0.15%, -0.04%);
		transform: translate(0.15%, -0.04%);
	}

	4% {
		-webkit-transform: translate(-0.12%, 0.05%);
		transform: translate(-0.12%, 0.05%);
	}

	6% {
		-webkit-transform: translate(0.2%, -0.02%);
		transform: translate(0.2%, -0.02%);
	}

	8% {
		-webkit-transform: translate(-0.18%, 0.06%);
		transform: translate(-0.18%, 0.06%);
	}

	10% {
		-webkit-transform: translate(0.1%, -0.03%);
		transform: translate(0.1%, -0.03%);
	}

	12% {
		-webkit-transform: translate(-0.08%, 0.04%);
		transform: translate(-0.08%, 0.04%);
	}

	14% {
		-webkit-transform: translate(0.25%, -0.05%);
		transform: translate(0.25%, -0.05%);
	}

	16% {
		-webkit-transform: translate(-0.14%, 0.02%);
		transform: translate(-0.14%, 0.02%);
	}

	18% {
		-webkit-transform: translate(0.09%, -0.03%);
		transform: translate(0.09%, -0.03%);
	}

	20% {
		opacity: 1;
		-webkit-transform: none;
		transform: none;
	}

	50% {
		opacity: 0.6;
	}

	80% {
		opacity: 0.2;
	}

	100% {
		opacity: 0;
		-webkit-transform: none;
		transform: none;
	}
}

.js-glitch .channel.g::before {
	background: #0f0;
}

.js-glitch .channel.b {
	-webkit-animation: rgb-shift-b 3s steps(1, jump-end) infinite alternate both;
	animation: rgb-shift-b 3s steps(1, jump-end) infinite alternate both;
}

@-webkit-keyframes rgb-shift-b {
	0% {
		-webkit-transform: translate(-0.3%, 0.08%);
		transform: translate(-0.3%, 0.08%);
	}

	2% {
		-webkit-transform: translate(0.15%, -0.04%);
		transform: translate(0.15%, -0.04%);
	}

	4% {
		-webkit-transform: translate(-0.12%, 0.05%);
		transform: translate(-0.12%, 0.05%);
	}

	6% {
		-webkit-transform: translate(0.2%, -0.02%);
		transform: translate(0.2%, -0.02%);
	}

	8% {
		-webkit-transform: translate(-0.18%, 0.06%);
		transform: translate(-0.18%, 0.06%);
	}

	10% {
		-webkit-transform: translate(0.1%, -0.03%);
		transform: translate(0.1%, -0.03%);
	}

	12% {
		-webkit-transform: translate(-0.08%, 0.04%);
		transform: translate(-0.08%, 0.04%);
	}

	14% {
		-webkit-transform: translate(0.25%, -0.05%);
		transform: translate(0.25%, -0.05%);
	}

	16% {
		-webkit-transform: translate(-0.14%, 0.02%);
		transform: translate(-0.14%, 0.02%);
	}

	18% {
		-webkit-transform: translate(0.09%, -0.03%);
		transform: translate(0.09%, -0.03%);
	}

	20% {
		opacity: 1;
		-webkit-transform: none;
		transform: none;
	}

	50% {
		opacity: 0.6;
	}

	80% {
		opacity: 0.2;
	}

	100% {
		opacity: 0;
		-webkit-transform: none;
		transform: none;
	}
}

@keyframes rgb-shift-b {
	0% {
		-webkit-transform: translate(-0.3%, 0.08%);
		transform: translate(-0.3%, 0.08%);
	}

	2% {
		-webkit-transform: translate(0.15%, -0.04%);
		transform: translate(0.15%, -0.04%);
	}

	4% {
		-webkit-transform: translate(-0.12%, 0.05%);
		transform: translate(-0.12%, 0.05%);
	}

	6% {
		-webkit-transform: translate(0.2%, -0.02%);
		transform: translate(0.2%, -0.02%);
	}

	8% {
		-webkit-transform: translate(-0.18%, 0.06%);
		transform: translate(-0.18%, 0.06%);
	}

	10% {
		-webkit-transform: translate(0.1%, -0.03%);
		transform: translate(0.1%, -0.03%);
	}

	12% {
		-webkit-transform: translate(-0.08%, 0.04%);
		transform: translate(-0.08%, 0.04%);
	}

	14% {
		-webkit-transform: translate(0.25%, -0.05%);
		transform: translate(0.25%, -0.05%);
	}

	16% {
		-webkit-transform: translate(-0.14%, 0.02%);
		transform: translate(-0.14%, 0.02%);
	}

	18% {
		-webkit-transform: translate(0.09%, -0.03%);
		transform: translate(0.09%, -0.03%);
	}

	20% {
		opacity: 1;
		-webkit-transform: none;
		transform: none;
	}

	50% {
		opacity: 0.6;
	}

	80% {
		opacity: 0.2;
	}

	100% {
		opacity: 0;
		-webkit-transform: none;
		transform: none;
	}
}

.js-glitch .channel.b::before {
	background: #00f;
}

figure .js-glitch img {
	display: block;
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.js-glitch.hover-effect::before,
.js-glitch.hover-effect::after,
.js-glitch.hover-effect .js-glitch-channel {
	-webkit-animation-play-state: paused;
	animation-play-state: paused;
}

.js-glitch.light .js-glitch-channel {
	display: none;
}

/* -----------------------------------------------------
 * js: parallax
 * -------------------------------------------------- */

.js-parallax {
	transition: -webkit-transform 3s ease-in-out;
	transition: transform 3s ease-in-out;
	transition: transform 3s ease-in-out, -webkit-transform 3s ease-in-out;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
	will-change: transform;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.js-parallax-container {
	position: relative;
	overflow: hidden;
}

.js-parallax-container .js-parallax {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: auto;
}

.js-parallax-bg {
	background-repeat: no-repeat;
	background-attachment: scroll;
	background-position: center center;
	background-size: cover;
	transition: background-position 5s linear;
	will-change: background-position;
}

/* スクロール登場アニメーション */

.js-scroll-anim[data-anim=fade],
.js-scroll-anim-target[data-anim=fade] {
	opacity: 0;
	transition: opacity 1s ease-out;
}

.js-scroll-anim[data-anim=fade-up],
.js-scroll-anim-target[data-anim=fade-up] {
	opacity: 0;
	transition: opacity 1s ease-out, -webkit-transform 1s ease-out;
	transition: opacity 1s ease-out, transform 1s ease-out;
	transition: opacity 1s ease-out, transform 1s ease-out, -webkit-transform 1s ease-out;
	-webkit-transform: translateY(5rem);
	transform: translateY(5rem);
}

.js-scroll-anim[data-anim=fade-down],
.js-scroll-anim-target[data-anim=fade-down] {
	opacity: 0;
	transition: opacity 1s ease-out, -webkit-transform 1s ease-out;
	transition: opacity 1s ease-out, transform 1s ease-out;
	transition: opacity 1s ease-out, transform 1s ease-out, -webkit-transform 1s ease-out;
	-webkit-transform: translateY(-5rem);
	transform: translateY(-5rem);
}

.js-scroll-anim[data-anim=fade-right],
.js-scroll-anim > .js-scroll-anim-target[data-anim=fade-right] {
	opacity: 0;
	transition: opacity 1s ease-out, -webkit-transform 1s ease-out;
	transition: opacity 1s ease-out, transform 1s ease-out;
	transition: opacity 1s ease-out, transform 1s ease-out, -webkit-transform 1s ease-out;
	-webkit-transform: translateX(-5rem);
	transform: translateX(-5rem);
}

.js-scroll-anim[data-anim=clip-left],
.js-scroll-anim-target[data-anim=clip-left] {
	transition: -webkit-clip-path 1s ease;
	transition: clip-path 1s ease;
	transition: clip-path 1s ease, -webkit-clip-path 1s ease;
	-webkit-clip-path: inset(0 0 0 100%);
	clip-path: inset(0 0 0 100%);
}

.js-scroll-anim[data-anim=clip-right],
.js-scroll-anim-target[data-anim=clip-right] {
	transition: -webkit-clip-path 1s ease;
	transition: clip-path 1s ease;
	transition: clip-path 1s ease, -webkit-clip-path 1s ease;
	-webkit-clip-path: inset(0 100% 0 0);
	clip-path: inset(0 100% 0 0);
}

.js-scroll-anim[data-anim=clip-top],
.js-scroll-anim-target[data-anim=clip-top] {
	transition: -webkit-clip-path 1s ease;
	transition: clip-path 1s ease;
	transition: clip-path 1s ease, -webkit-clip-path 1s ease;
	-webkit-clip-path: inset(100% 0 0 0);
	clip-path: inset(100% 0 0 0);
}

.js-scroll-anim[data-anim=clip-bottom],
.js-scroll-anim-target[data-anim=clip-bottom] {
	transition: -webkit-clip-path 1s ease;
	transition: clip-path 1s ease;
	transition: clip-path 1s ease, -webkit-clip-path 1s ease;
	-webkit-clip-path: inset(0 0 100% 0);
	clip-path: inset(0 0 100% 0);
}

.js-scroll-anim[data-anim=blur],
.js-scroll-anim-target[data-anim=blur] {
	opacity: 0;
	transition: opacity 1s ease-out, -webkit-filter 1s ease-out;
	transition: opacity 1s ease-out, filter 1s ease-out;
	transition: opacity 1s ease-out, filter 1s ease-out, -webkit-filter 1s ease-out;
	-webkit-filter: blur(1rem);
	filter: blur(1rem);
}

.js-scroll-anim[data-anim=blur-down],
.js-scroll-anim-target[data-anim=blur-down] {
	opacity: 0;
	transition: opacity 1s ease-out, -webkit-filter 2s ease-out, -webkit-transform 1s ease;
	transition: opacity 1s ease-out, filter 2s ease-out, transform 1s ease;
	transition: opacity 1s ease-out, filter 2s ease-out, transform 1s ease, -webkit-filter 2s ease-out, -webkit-transform 1s ease;
	-webkit-transform: translateY(-7.5rem);
	transform: translateY(-7.5rem);
	-webkit-filter: blur(1rem);
	filter: blur(1rem);
}

.js-scroll-anim:is(.is-loaded *).is-anim-start[data-anim=fade],
.js-scroll-anim:is(.is-loaded *).is-anim-start > .js-scroll-anim-target[data-anim=fade] {
	opacity: 1;
}

.js-scroll-anim:is(.is-loaded *).is-anim-start[data-anim=fade-up],
.js-scroll-anim:is(.is-loaded *).is-anim-start > .js-scroll-anim-target[data-anim=fade-up],
.js-scroll-anim:is(.is-loaded *).is-anim-start[data-anim=fade-down],
.js-scroll-anim:is(.is-loaded *).is-anim-start > .js-scroll-anim-target[data-anim=fade-down] {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}

.js-scroll-anim:is(.is-loaded *).is-anim-start[data-anim=fade-right],
.js-scroll-anim:is(.is-loaded *).is-anim-start > .js-scroll-anim-target[data-anim=fade-right] {
	opacity: 1;
	-webkit-transform: translateX(0);
	transform: translateX(0);
}

.js-scroll-anim:is(.is-loaded *).is-anim-start[data-anim=blur],
.js-scroll-anim:is(.is-loaded *).is-anim-start > .js-scroll-anim-target[data-anim=blur] {
	opacity: 1;
	-webkit-filter: blur(0);
	filter: blur(0);
}

.js-scroll-anim:is(.is-loaded *).is-anim-start[data-anim=blur-down],
.js-scroll-anim:is(.is-loaded *).is-anim-start > .js-scroll-anim-target[data-anim=blur-down] {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
	-webkit-filter: blur(0);
	filter: blur(0);
}

.js-scroll-anim:is(.is-loaded *).is-anim-start[data-anim=clip-left],
.js-scroll-anim:is(.is-loaded *).is-anim-start[data-anim=clip-right],
.js-scroll-anim:is(.is-loaded *).is-anim-start[data-anim=clip-top],
.js-scroll-anim:is(.is-loaded *).is-anim-start[data-anim=clip-bottom],
.js-scroll-anim:is(.is-loaded *).is-anim-start > .js-scroll-anim-target[data-anim=clip-left],
.js-scroll-anim:is(.is-loaded *).is-anim-start > .js-scroll-anim-target[data-anim=clip-right],
.js-scroll-anim:is(.is-loaded *).is-anim-start > .js-scroll-anim-target[data-anim=clip-top],
.js-scroll-anim:is(.is-loaded *).is-anim-start > .js-scroll-anim-target[data-anim=clip-bottom] {
	-webkit-clip-path: inset(0);
	clip-path: inset(0);
}

/* -----------------------------------------------------
 * js: text animation
 * -------------------------------------------------- */

.js-text-anim-target {
	display: inline-block;
	opacity: 0;
	transition: opacity 0.6s ease, -webkit-transform 0.6s ease;
	transition: opacity 0.6s ease, transform 0.6s ease;
	transition: opacity 0.6s ease, transform 0.6s ease, -webkit-transform 0.6s ease;
	-webkit-transform: translateY(1rem);
	transform: translateY(1rem);
}

.is-anim-start .js-text-anim-target {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}

.js-text-anim.is-anim-start .js-text-anim-target {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}

.js-text-anim[data-text-anim=fade] .js-text-anim-target {
	-webkit-transform: none;
	transform: none;
}

.js-text-anim[data-text-anim=fade].is-anim-start .js-text-anim-target {
	-webkit-transform: none;
	transform: none;
}

.js-text-anim[data-text-anim=up] .js-text-anim-target {
	-webkit-transform: translateY(1.5rem);
	transform: translateY(1.5rem);
}

.js-text-anim[data-text-anim=up].is-anim-start .js-text-anim-target {
	-webkit-transform: translateY(0);
	transform: translateY(0);
}

.js-text-anim[data-text-anim=slide-right] .js-text-anim-target {
	-webkit-transform: translateX(-1rem);
	transform: translateX(-1rem);
}

.js-text-anim[data-text-anim=slide-right].is-anim-start .js-text-anim-target {
	-webkit-transform: translateX(0);
	transform: translateX(0);
}

.js-text-anim[data-text-anim=slide-left] .js-text-anim-target {
	-webkit-transform: translateX(1rem);
	transform: translateX(1rem);
}

.js-text-anim[data-text-anim=slide-left].is-anim-start .js-text-anim-target {
	-webkit-transform: translateX(0);
	transform: translateX(0);
}

.js-text-anim[data-text-anim=scale] .js-text-anim-target {
	-webkit-transform: scale(0.8);
	transform: scale(0.8);
}

.js-text-anim[data-text-anim=scale].is-anim-start .js-text-anim-target {
	-webkit-transform: scale(1);
	transform: scale(1);
}

.js-text-anim[data-text-anim=rotate] .js-text-anim-target {
	-webkit-transform: rotate(-10deg);
	transform: rotate(-10deg);
}

.js-text-anim[data-text-anim=rotate].is-anim-start .js-text-anim-target {
	-webkit-transform: rotate(0);
	transform: rotate(0);
}

/* -----------------------------------------------------
 * Display
 * -------------------------------------------------- */

.u-show-br-sp {
	display: none;
}

.u-show-br-pc {
	display: none;
}

/* -----------------------------------------------------
 * Text
 * -------------------------------------------------- */

/* font-family
---------------------------------------- */

.u-font-en {
	font-family: 'Roboto', sans-serif !important;
}

.u-font-ge {
	font-family: 'Georgia', serif !important;
}

.u-font-ja {
	font-family: 'Noto Sans JP', sans-serif !important;
}

/* text-align
---------------------------------------- */

.u-al-left {
	text-align: left !important;
}

.u-al-center {
	text-align: center !important;
}

.u-al-right {
	text-align: right !important;
}

/* writing-mode
---------------------------------------- */

.u-wm-rl {
	-ms-writing-mode: tb-rl !important;
	-webkit-writing-mode: vertical-rl !important;
	writing-mode: vertical-rl !important;
}

@media screen and (min-width: 768px) {
	.c-heading .title {
		font-size: 3.2rem;
	}

	.c-heading .sup {
		font-size: 2.4rem;
	}

	.c-heading-line {
		padding: 0 0 0 3rem;
		border-width: 0.8rem;
		font-size: 3.2rem;
	}

	.c-heading-line .sup {
		font-size: 2.4rem;
	}

	.c-heading-home {
		font-size: 9.6rem;
	}

	.c-heading-home-2 {
		font-size: 3.2rem;
	}

	.c-heading-home-2::before {
		width: 7rem;
	}

	.c-heading-section {
		gap: 2.4rem 0;
	}

	.c-heading-section .title {
		font-size: 4rem;
	}

	.c-heading-section.en .title {
		font-size: 3.2rem;
	}

	.c-hr {
		max-width: 60rem;
		margin: 0 auto;
	}

	.l-section-contents .p-article h2,
  .p-article h2 {
		margin: 3.2rem 0 0;
		font-size: 2rem;
	}

	.l-section-contents .p-article p,
  .l-section-contents .p-article ul,
  .l-section-contents .p-article ol,
  .p-article p,
  .p-article ul,
  .p-article ol {
		margin: 2.4rem 0 0 !important;
	}

	.l-section-contents .p-article p.policy-date,
  .l-section-contents .p-article ul.policy-date,
  .l-section-contents .p-article ol.policy-date,
  .p-article p.policy-date,
  .p-article ul.policy-date,
  .p-article ol.policy-date {
		margin: 4.8rem 0 0 !important;
	}

	.p-col {
		display: flex;
		justify-content: space-between;
		gap: 9.2rem;
	}

	.p-col.reverse {
		flex-direction: row-reverse;
	}

	.p-dataset {
		display: grid;
		align-items: start;
		margin: 4.2rem 0 0;
		grid-template-columns: 12rem 1fr;
		gap: 3.2rem 4rem;
	}

	.p-dataset.reverse {
		direction: rtl;
	}

	.p-dataset.reverse * {
		direction: ltr;
	}

	.p-dataset dt {
		margin: 0;
	}

	.p-dataset dd {
		margin: 0;
	}

	.p-dataset dd .title {
		font-size: 2.4rem;
	}

	.p-dataset dd p {
		margin: 1rem 0 0;
	}

	.p-gnav ul {
		gap: 3rem;
	}

	.p-gnav li.is-current a {
		pointer-events: none;
	}

	.p-gnav li.is-current a::before {
		transition: none;
		-webkit-transform: scale(1, 1);
		transform: scale(1, 1);
		-webkit-transform-origin: left top;
		transform-origin: left top;
	}

	.p-gnav a .ja {
		font-size: clamp(12px, 1.8rem, 18px);
		font-weight: 500;
		line-height: 1.2;
	}

	.p-gnav a .en {
		display: none;
	}

	.p-images {
		min-width: 44rem;
		max-width: 44rem;
	}

	.p-images.col-2 {
		min-width: 49rem;
		max-width: 49rem;
	}

	.p-images.col-2 figure:nth-child(2) {
		top: 5rem;
	}

	.p-sign {
		margin: 5.6rem 0 0 !important;
	}

	.p-spiral .canvas {
		height: calc(100vh - var(--header-height));
		max-height: 60rem;
	}

	.p-spiral figure img {
		width: auto;
		height: calc(100vh - var(--header-height) - 2rem);
		min-height: 30rem;
		max-height: 60rem;
	}

	.l-footer-inner {
		max-width: 128rem;
		margin: 0 auto;
		padding: 5.6rem 4rem 4.8rem;
	}

	.l-footer-upper {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
	}

	.l-footer-info address {
		font-size: 1.6rem;
		line-height: 1.5625;
		text-align: left;
	}

	.l-footer-logo {
		width: 21rem;
		margin: 0;
	}

	.l-footer-nav {
		align-items: flex-end;
		max-width: 65rem;
		margin: 0;
		gap: 4.8rem;
	}

	.l-footer-menu {
		flex-direction: row;
		gap: 3rem;
	}

	.l-footer-menu a {
		font-size: 1.6rem;
	}

	.l-footer-group {
		justify-content: flex-end;
		line-height: 3.1428571429;
		gap: 0 1.6rem;
	}

	.l-footer-bottom ul {
		justify-content: flex-start;
	}

	.l-header {
		height: 9rem;
	}

	.l-header-inner {
		height: 100%;
		padding: 0 4rem;
	}

	.l-header-logo {
		width: 24rem;
	}

	.l-header-toggle {
		display: none;
	}

	.l-kv {
		padding: 0 0 3.8rem;
	}

	.l-kv::before {
		width: 90.3rem;
		height: 33.8rem;
		background-image: url(/img/bg_kv_underlay.webp);
	}

	.l-kv-bg {
		height: 30rem;
	}

	.l-kv .title {
		height: 30rem;
		padding: 0 13rem;
		font-size: 4rem;
	}

	.l-section {
		padding: 8rem 0 12rem;
	}

	.l-section-bg-head {
		top: -3.8rem;
	}

	.l-section-contents {
		max-width: 108rem;
		margin: 12rem auto 0;
		padding: 0 4rem;
	}

	.l-section-contents.box {
		padding: 12rem 4rem;
	}

	.l-section-contents.flat {
		max-width: none;
		margin-right: calc((100vw - 100% - var(--scrollbar-width)) / 2 * -1);
		margin-left: calc((100vw - 100% - var(--scrollbar-width)) / 2 * -1);
		padding-right: 0;
		padding-left: 0;
	}

	.l-section-contents.flat .l-section-contents-inner {
		max-width: 108rem;
		margin: 0 auto;
		padding: 0 4rem;
	}

	.l-section-contents-inner {
		margin-top: 5.6rem;
	}

	.l-section-contents-inner + .l-section-contents-inner {
		margin-top: 8rem;
	}

	.l-section-contents figure {
		margin: 4.8rem 0 0;
	}

	.l-section-contents p {
		margin: 4.8rem 0 0;
	}

	.l-section-contents table {
		max-width: 96rem;
		margin: 4.8rem auto 0;
	}

	.l-section-contents table th {
		padding: 2.8rem 4rem;
	}

	.l-section-contents table td {
		padding: 2.8rem 4rem;
	}

	.l-section-image {
		max-width: 108rem;
		margin: 8rem auto 0;
		padding: 0 4rem;
	}

	.u-hide-pc {
		display: none !important;
	}

	.u-show-pc {
		display: block !important;
	}

	.u-show-br-pc {
		display: inline-block !important;
	}
}

@media screen and (max-width: 767px) {
	html {
		font-size: 2.6666666667vw !important;
	}

	.p-dataset dt:first-child {
		margin: 0;
	}

	.p-gnav ul {
		flex-direction: column;
		padding: 3.2rem 0;
		gap: 3.2rem;
	}

	.p-gnav li {
		display: flex;
		justify-content: center;
	}

	.p-gnav a {
		display: flex;
		flex-direction: column;
	}

	.p-gnav a .ja {
		text-align: center;
	}

	.p-images {
		margin: 3.6rem 0 0;
	}

	.l-header-nav {
		display: block;
		position: fixed;
		z-index: 5;
		top: var(--header-height);
		left: 0;
		overflow: auto;
		width: 100%;
		height: calc(100vh - var(--header-height));
		background-color: rgba(24, 28, 31, 0.95);
		transition: -webkit-transform 0.3s ease;
		transition: transform 0.3s ease;
		transition: transform 0.3s ease, -webkit-transform 0.3s ease;
		-webkit-transform: translate3d(-110vw, 0, 0);
		transform: translate3d(-110vw, 0, 0);
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
		will-change: transform;
	}

	.l-header-nav:is(.is-menu-open *) {
		-webkit-transform: translate3d(0, 0, 0);
		transform: translate3d(0, 0, 0);
	}

	.js-parallax[data-parallax-mobile=false] {
		-webkit-transform: none !important;
		transform: none !important;
	}

	.js-parallax-bg[data-parallax-mobile=false] {
		background-position: center center !important;
	}

	.u-hide-sp {
		display: none !important;
	}

	.u-show-sp {
		display: block !important;
	}

	.u-show-br-sp {
		display: inline-block !important;
	}
}

@media screen and (min-width: 768px) and (max-width: 1279px) {
	html {
		font-size: 0.78125vw !important;
	}
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
	body {
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}
}

@media (hover: hover) {
	.c-btn {
		background-color: transparent;
	}

	.c-btn:hover {
		color: #181c1f;
	}

	.c-btn:hover::before {
		-webkit-transform: scale(0, 1);
		transform: scale(0, 1);
		-webkit-transform-origin: right top;
		transform-origin: right top;
	}

	.c-btn.cl-white:hover {
		border-color: #181c1f;
		color: #fff;
	}

	.c-btn.cl-white:hover::before {
		-webkit-transform: scale(1, 1);
		transform: scale(1, 1);
		-webkit-transform-origin: left top;
		transform-origin: left top;
	}

	.l-section-contents .p-article a:hover,
  .p-article a:hover {
		opacity: 0.7;
	}

	.l-section-contents .p-article a:hover,
  .p-article a:hover {
		text-decoration: none;
	}

	.p-gnav a:hover::before {
		-webkit-transform: scale(1, 1);
		transform: scale(1, 1);
		-webkit-transform-origin: left top;
		transform-origin: left top;
	}

	.p-spiral figure a:hover {
		-webkit-transform: scale3d(1.05, 1.05, 1);
		transform: scale3d(1.05, 1.05, 1);
	}

	.l-footer-logo:hover {
		opacity: 0.7;
	}

	.l-footer-menu a:hover {
		opacity: 0.7;
	}

	.l-footer-group a:hover {
		opacity: 0.7;
	}

	.l-footer-group a:hover {
		text-decoration: none;
	}

	.l-footer-bottom a:hover {
		opacity: 0.7;
	}

	.l-header-logo:hover {
		opacity: 0.7;
	}

	.js-glitch.hover-effect:hover::before,
  .js-glitch.hover-effect:hover::after,
  .js-glitch.hover-effect:hover .js-glitch-channel {
		-webkit-animation-play-state: running;
		animation-play-state: running;
	}
}