@charset "UTF-8";
*,*::before,*::after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role="list"],ol[role="list"]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{width: 100%; height: auto; max-width: 100%;vertical-align: bottom;}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}
/* change min-width to suit your needs */
div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video, input, textarea{
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section,textarea {
	display: block;
}
nav ul {
	list-style: none;
}
del {
	text-decoration: line-through;
}
abbr[title], dfn[title] {
	border-bottom: 1px dotted;
	cursor: help;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
	table-layout:fixed;
}
/* change border colour to suit your needs */
hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #cccccc;
	margin: 1em 0;
	padding: 0;
}
input[type="submit"]{
	cursor:pointer;
	border:none;
	}
textarea{
	resize:vertical;
	overflow:hidden;
}

h1, h2, h3, h4, h5, h6 {
	font-weight:normal;
}
li {
	list-style:none;
}
address{
	font-style:normal;
}
select,input {
-webkit-appearance: none;/* ベンダープレフィックス(Google Chrome、Safari用) */
-moz-appearance: none; /* ベンダープレフィックス(Firefox用) */
appearance: none; /* 標準のスタイルを無効にする */
}

button, html [type="button"], [type="reset"], [type="submit"] {
    -webkit-appearance: button;
}
button, input, select, textarea {
    background-color: transparent;
    border-style: none;
    color: inherit;
}

.pc{display: block !important;}
.sp{ display: none !important;}
@media only screen and (max-width: 768px){
	.pc{display: none !important;}
	.sp{display: block !important;}
}

.block_link{
    position:relative;
}
.block_link a{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    text-indent:-999px;
	background: transparent url("../img/link_bg.png") 0 0 repeat;
	z-index: 10;
}

/* ========================================
 * flex box 
  ========================================*/

.flex-center{
	display: -webkit-flex; /* Safari */ 
	display: flex;
    -webkit-align-items: center; /* Safari */
    align-items: center;
}
.flex-start{
	display: -webkit-flex; /* Safari */ 
	display: flex;
}
.flex-end{
	display: -webkit-flex; /* Safari */ 
	display: flex;
    -webkit-align-items: flex-end; /* Safari */
    align-items: flex-end;
}
/* pcのみ　*/
.flex-center-pc{
	display: -webkit-flex; /* Safari */ 
	display: flex;
    -webkit-align-items: center; /* Safari */
    align-items: center;
}
.flex-start-pc{
	display: -webkit-flex; /* Safari */ 
	display: flex;
}
.flex-end-pc{
	display: -webkit-flex; /* Safari */ 
	display: flex;
    -webkit-align-items: flex-end; /* Safari */
    align-items: flex-end;
}
/* spのみ　*/
.flex-center-sp{
	display: block;
}
.flex-start-sp{
	display: block;
}
.flex-end-sp{
	display: block;
}
.flex-row-reverse{
	-webkit-flex-direction: row-reverse; /* Safari */
  	flex-direction:         row-reverse;
}
.flex-row-reverse-pc{
	-webkit-flex-direction: row-reverse; /* Safari */
  	flex-direction:         row-reverse;
}
.flex-space{
	-webkit-justify-content: space-between; /* Safari */
    justify-content:         space-between;
}
.flex-space-end{
	-webkit-justify-content: flex-end; /* Safari */
    justify-content:         flex-end;
}
.flex-space-start{
	-webkit-justify-content: flex-start; /* Safari */
    justify-content:         flex-start;
}
.flex-space-center{
	-webkit-justify-content: center; /* Safari */
    justify-content:         center;
}
.flex-wrap {
  -webkit-flex-wrap: wrap; /* Safari */
  flex-wrap:         wrap;
}
@media only screen and (max-width: 768px){
	.flex-center-pc{
		display: block;
	}
	.flex-start-pc{
		display: block;
	}
	.flex-end-pc{
		display: block;
	}
	.flex-center-sp{
		display: -webkit-flex; /* Safari */ 
		display: flex;
		-webkit-align-items: center; /* Safari */
		align-items: center;
	}
	.flex-start-sp{
		display: -webkit-flex; /* Safari */ 
		display: flex;
		-webkit-align-items: flex-start; /* Safari */
		align-items: flex-start;
	}
	.flex-end-sp{
		display: -webkit-flex; /* Safari */ 
		display: flex;
		-webkit-align-items: flex-end; /* Safari */
		align-items: flex-end;
	}
	.flex-row-reverse-pc{
		-webkit-flex-direction: row; /* Safari */
		flex-direction:         row;
	}
}

/* ========================================
 *  天地中央
  ========================================*/

.center_layout{
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%); /* Safari用 */
	transform: translate(-50%, -50%);
}
.top_center{
	top: 50%;
	-webkit-transform: translate(0%, -50%); /* Safari用 */
	transform: translate(0%, -50%);
}
.left_center{
	left: 50%;
	-webkit-transform: translate(-50%, 0%);
	transform: translate(-50%, 0%);
}

/* ========================================
 *  animation
  ========================================*/

.fadein {
  opacity: 0;
  transform: translate(0, 5px);
  transition: .8s linear;}

.fadein.scrollin {
  opacity: 1;
  transform: translate(0, 0); }

.delay-100 {
  transition-delay: 100ms; }

.delay-200 {
  transition-delay: 200ms; }

.delay-300 {
  transition-delay: 300ms; }

.delay-400 {
  transition-delay: 400ms; }

.display-none {
  display: none; }

.opacity-0 {
  opacity: 0; }

.linkanime,
.linkanime::after {
  -webkit-transition: all 640ms cubic-bezier(0.165, 0.84, 0.44, 1);
  -moz-transition: all 640ms cubic-bezier(0.165, 0.84, 0.44, 1);
  -o-transition: all 640ms cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: all 640ms cubic-bezier(0.165, 0.84, 0.44, 1); }


/* ========================================
 *  slick
  ========================================*/

/* Slider */
.slick-slider
{
    position: relative;

    display: block;
    box-sizing: border-box;

    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;

    -webkit-touch-callout: none;
    -khtml-user-select: none;
    -ms-touch-action: pan-y;
        touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}

.slick-list
{
    position: relative;

    display: block;
    overflow: hidden;

    margin: 0;
    padding: 0;
}
.slick-list:focus
{
    outline: none;
}
.slick-list.dragging
{
    cursor: pointer;
    cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list
{
    -webkit-transform: translate3d(0, 0, 0);
       -moz-transform: translate3d(0, 0, 0);
        -ms-transform: translate3d(0, 0, 0);
         -o-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
}

.slick-track
{
    position: relative;
    top: 0;
    left: 0;

    display: block;
}
.slick-track:before,
.slick-track:after
{
    display: table;

    content: '';
}
.slick-track:after
{
    clear: both;
}
.slick-loading .slick-track
{
    visibility: hidden;
}

.slick-slide
{
    display: none;
    float: left;

    height: 100%;
    min-height: 1px;
}
[dir='rtl'] .slick-slide
{
    float: right;
}
.slick-slide img
{
    display: block;
}
.slick-slide.slick-loading img
{
    display: none;
}
.slick-slide.dragging img
{
    pointer-events: none;
}
.slick-initialized .slick-slide
{
    display: block;
}
.slick-loading .slick-slide
{
    visibility: hidden;
}
.slick-vertical .slick-slide
{
    display: block;

    height: auto;

    border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
    display: none;
}

.slick-loading .slick-list
{
    background: #fff center center no-repeat;
}
/* Arrows */
.slick-prev{
	font-size: 0;
	line-height: 0;
	position: absolute;
	top: 0;
	left: -30px;
	display: block;
	width: 30px;
	height: 70%;
	background: url("../img/common/arrow_l.svg") no-repeat;
	background-position: center;
	background-size: contain;
	background-size: 8px;
	padding: 0;
	cursor: pointer;
	color: transparent;
	border: none;
	outline: none;
}
.slick-next{
	font-size: 0;
	line-height: 0;
	position: absolute;
	top: 0;
	right: -30px;
	display: block;
	width: 30px;
	height: 70%;
	background: url("../img/common/arrow_r.svg") no-repeat;
	background-position: center;
	background-size: contain;
	background-size: 8px;
	padding: 0;
	cursor: pointer;
	color: transparent;
	border: none;
	outline: none;
}
@media only screen and (max-width: 768px){
	.slick-prev
		{
			font-size: 0;
			line-height: 0;
			position: absolute;
			top: 50%;
			left: -14%;
			-webkit-transform: translate(0, -50%); /* Safari用 */
			transform: translate(0, -50%);
			display: none !important;
			width: 30px;
			height: 30px;
			background: url("../img/common/arrow_l.svg") no-repeat;
			background-position: center;
			background-size: contain;
			padding: 0;
			cursor: pointer;
			color: transparent;
			border: none;
			outline: none;
		}
	.slick-next
		{
			font-size: 0;
			line-height: 0;
			position: absolute;
			top: 50%;
			right: -14%;
			-webkit-transform: translate(0, -50%); /* Safari用 */
			transform: translate(0, -50%);
			display: none !important;
			width: 30px;
			height: 30px;
			background: url("../img/common/arrow_r.svg") no-repeat;
			background-position: center;
			background-size: contain;
			padding: 0;
			cursor: pointer;
			color: transparent;
			border: none;
			outline: none;
		}
}
/* Dots */
.slick-dotted.slick-slider
{
    margin-bottom: 0px;
}
@media only screen and (max-width: 860px){
	.slick-dotted.slick-slider
	{
		margin-bottom: 5px;
	}
}
.slick-dots
{
    position: absolute;
    bottom: 10px;

    display: block;

    width: 90%;
    padding: 0;
    margin: 0 0 0 -45%;
	left: 50%;
	
    list-style: none;

    text-align: center;
}
.slick-dots li
{
    position: relative;

    display: inline-block;

    width: 10px;
    height: 10px;
    margin: 0 1px;
    padding: 0;

    cursor: pointer;
}
@media only screen and (max-width: 860px){
	.slick-dots
	{
		position: relative;
		bottom: 0px;

		display: block;

		width: 90%;
		padding: 0;
		margin: -7% 0 0 -45%;
		left: 50%;

		list-style: none;

		text-align: center;
	}
		.slick-dots li
	{
		position: relative;

		display: inline-block;

		width: 7px;
		height: 7px;
		margin: 0 1% 1%;
		padding: 0;

		cursor: pointer;
	}
}
.slick-dots li button
{
    font-size: 0;
    line-height: 0;

    display: block;

    width: 7px;
    height: 7px;

    cursor: pointer;
	margin: 0 !important;
    color: transparent;
    border: 0;
    outline: none;
	background: #fff;
	opacity: 0.6;
	border-radius: 50%;
}
.slick-dots li button:hover{
	background: #cecece;
	opacity: 1;
    color: black;	
}
.slick-dots li button:hover,
.slick-dots li button:focus
{
    outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before
{
    opacity: 1;
}

.slick-dots li.slick-active button
{
    background: #fff;
	opacity: 1;
    color: black;
}
*:focus {
  outline: none;
}
.slick_thumb .slick-track {
transform:unset!important;
}

/* ========================================
 *  animation
  ========================================*/
a {
    text-decoration: none;
    outline: none;
}

a:hover {
    outline: none;
}

/* https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible */
a:focus {
    /* Provide a fallback style for browsers
	 that don't support :focus-visible */
    outline: none;
    background: lightgrey;
}

a:focus:not(:focus-visible) {
    /* Remove the focus indicator on mouse-focus for browsers
	 that do support :focus-visible */
    background: transparent;
}

a:focus-visible {
    /* Draw a very noticeable focus style for
	 keyboard-focus on browsers that do support
	 :focus-visible */
    outline: 2px solid red;
    background: transparent;
}

.link {
    cursor: pointer;
    font-size: 18px;
    position: relative;
    white-space: nowrap;
    color: var(--color-text);
}

.link::before,
.link::after {
    position: absolute;
    width: 100%;
    height: 1px;
    background: currentColor;
    top: 100%;
    left: 0;
    pointer-events: none;
}

.link::before {
    content: '';
    /* show by default */
}

.link--metis {
    text-transform: lowercase;
}

.link--metis::before {
    transform-origin: 100% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform 0.3s;
}

.link--metis:hover::before {
    transform-origin: 0% 50%;
    transform: scale3d(1, 1, 1);
}

.link--io {
}

.link--io::before {
    transform-origin: 100% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
}

.link--io:hover::before {
    transform-origin: 0% 50%;
    transform: scale3d(1, 1, 1);
    transition-timing-function: cubic-bezier(0.4, 1, 0.8, 1);
}

.link--io::after {
    content: '';
    top: calc(100% + 4px);
    transform-origin: 0% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
}

.link--io:hover::after {
    transform-origin: 100% 50%;
    transform: scale3d(1, 1, 1);
    transition-timing-function: cubic-bezier(0.4, 1, 0.8, 1);
}

.link--thebe {
    text-transform: uppercase;
}

.link--thebe::before {
    transform-origin: 100% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform 0.3s cubic-bezier(0.2, 1, 0.8, 1);
}

.link--thebe:hover::before {
    transform-origin: 0% 50%;
    transform: scale3d(1, 2, 1);
    transition-timing-function: cubic-bezier(0.7, 0, 0.2, 1);
}

.link--thebe::after {
    content: '';
    top: calc(100% + 4px);
    transform-origin: 100% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform 0.4s 0.1s cubic-bezier(0.2, 1, 0.8, 1);
}

.link--thebe:hover::after {
    transform-origin: 0% 50%;
    transform: scale3d(1, 1, 1);
    transition-timing-function: cubic-bezier(0.7, 0, 0.2, 1);
}

.link--leda {
    overflow: hidden;
    line-height: 2;
    font-weight: 700;
}

.link--leda::before {
    height: 2px;
    top: calc(100% - 5px);
    transform-origin: 100% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform 0.3s cubic-bezier(0.5, 0.5, 0.3, 1);
}

.link--leda:hover::before {
    transform-origin: 0% 50%;
    transform: scale3d(1, 1, 1);
}

.link--leda::after {
    content: attr(data-text);
    height: 100%;
    top: 0;
    background: none;
    transform-origin: 100% 50%;
    transform: translate3d(150%, 0, 0);
    transition: transform 0.3s cubic-bezier(0.5, 0.5, 0.3, 1);
}

.link--leda:hover::after {
    transform: translate3d(0, 0, 0);
}

.link--leda span {
    display: inline-block;
    transition: transform 0.3s cubic-bezier(0.5, 0.5, 0.3, 1);
}

.link--leda:hover span {
    transform: translate3d(-150%, 0, 0);
}

.link--ersa {
    padding: 0 10px;
    letter-spacing: 1px;
    text-indent: 1px;
    text-transform: uppercase;
}

.link--ersa::before {
    top: 50%;
    height: 1px;
    transform-origin: 100% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform 0.3s cubic-bezier(0.4, 1, 0.8, 1);
}

.link--ersa:hover::before {
    transform-origin: 0% 50%;
    transform: scale3d(1, 1, 1);
}

.link--ersa span {
    display: inline-block;
    transition: transform 0.3s cubic-bezier(0.4, 1, 0.8, 1);
}

.link--ersa:hover span {
    transform: scale3d(1.1, 1.1, 1.1);
}

.link--elara {
    font-family: aktiv-grotesk-extended, sans-serif;
    font-size: 1.375rem;
}

.link--elara::before {
    transform-origin: 50% 100%;
    transition: clip-path 0.3s, transform 0.3s cubic-bezier(0.2, 1, 0.8, 1);
    clip-path: polygon(0% 0%, 0% 100%, 0 100%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%, 100% 100%, 100% 0%);
}

.link--elara:hover::before {
    transform: translate3d(0, 2px, 0) scale3d(1.08, 3, 1);
    clip-path: polygon(0% 0%, 0% 100%, 50% 100%, 50% 0, 50% 0, 50% 100%, 50% 100%, 0 100%, 100% 100%, 100% 0%);
}

.link--elara span {
    display: inline-block;
    transition: transform 0.3s cubic-bezier(0.2, 1, 0.8, 1);
}

.link--elara:hover span {
    transform: translate3d(0, -2px, 0);
}

.link--dia {
    font-size: 1.75rem;
}

.link--dia::before,
.link--dia::after {
    opacity: 0;
    transform-origin: 50% 0%;
    transform: translate3d(0, 3px, 0);
    transition-property: transform, opacity;
    transition-duration: 0.3s;
    transition-timing-function: cubic-bezier(0.2, 1, 0.8, 1);
}

.link--dia:hover::before,
.link--dia:hover::after {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-timing-function: cubic-bezier(0.2, 0, 0.3, 1);
}

.link--dia::after {
    content: '';
    top: calc(100% + 4px);
    width: 70%;
    left: 15%;
}

.link--dia::before,
.link--dia:hover::after {
    transition-delay: 0.1s;
}

.link--dia:hover::before {
    transition-delay: 0s;
}

.link--kale {
    font-weight: 600;
    text-transform: lowercase;
}

.link--kale::before {
    height: 10px;
    top: 100%;
    opacity: 0;
}

.link--kale:hover::before {
    opacity: 1;
    animation: lineUp 0.3s ease forwards;
}

@keyframes lineUp {
    0% {
        transform-origin: 50% 100%;
        transform: scale3d(1, 0.045, 1);
    }

    50% {
        transform-origin: 50% 100%;
        transform: scale3d(1, 1, 1);
    }

    51% {
        transform-origin: 50% 0%;
        transform: scale3d(1, 1, 1);
    }

    100% {
        transform-origin: 50% 0%;
        transform: scale3d(1, 0.045, 1);
    }
}

.link--kale::after {
    content: '';
    transition: opacity 0.3s;
    opacity: 0;
    transition-delay: 0s;
}

.link--kale:hover::after {
    opacity: 1;
    transition-delay: 0.3s;
}

.link--carpo {
    text-transform: uppercase;
    font-weight: 700;
}

.link--carpo::before {
    transform-origin: 0% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform 0.3s;
}

.link--carpo:hover::before {
    transform: scale3d(1, 1, 1);
}

.link--carpo::after {
    content: '';
    top: calc(100% + 4px);
    transition: transform 0.3s;
    transform-origin: 100% 50%;
}

.link--carpo:hover::after {
    transform: scale3d(0, 1, 1);
}

.link--helike {
    font-weight: bold;
}

.link--helike:hover span {
    animation: glitchText 0.4s linear;
}

@keyframes glitchText {
    0% {
        opacity: 1;
        transform: translate3d(-10px, 0, 0) scale3d(-1, -1, 1);
        -webkit-clip-path: polygon(0 20%, 100% 20%, 100% 21%, 0 21%);
        clip-path: polygon(0 20%, 100% 20%, 100% 21%, 0 21%);
    }

    10% {
        -webkit-clip-path: polygon(0 33%, 100% 33%, 100% 33%, 0 33%);
        clip-path: polygon(0 33%, 100% 33%, 100% 33%, 0 33%);
    }

    20% {
        -webkit-clip-path: polygon(0 44%, 100% 44%, 100% 44%, 0 44%);
        clip-path: polygon(0 44%, 100% 44%, 100% 44%, 0 44%);
    }

    35% {
        -webkit-clip-path: polygon(0 50%, 100% 50%, 100% 20%, 0 20%);
        clip-path: polygon(0 50%, 100% 50%, 100% 20%, 0 20%);
    }

    50% {
        -webkit-clip-path: polygon(0 70%, 100% 70%, 100% 70%, 0 70%);
        clip-path: polygon(0 70%, 100% 70%, 100% 70%, 0 70%);
    }

    60% {
        -webkit-clip-path: polygon(0 80%, 100% 80%, 100% 80%, 0 80%);
        clip-path: polygon(0 80%, 100% 80%, 100% 80%, 0 80%);
    }

    70% {
        -webkit-clip-path: polygon(0 50%, 100% 50%, 100% 55%, 0 55%);
        clip-path: polygon(0 50%, 100% 50%, 100% 55%, 0 55%);
    }

    80% {
        -webkit-clip-path: polygon(0 70%, 100% 70%, 100% 80%, 0 80%);
        clip-path: polygon(0 70%, 100% 70%, 100% 80%, 0 80%);
    }

    90% {
        transform: translate3d(-10px, 0, 0) scale3d(-1, -1, 1);
    }

    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
        -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
    }
}

.link--helike::before {
    height: 2px;
    opacity: 0;
}

.link--helike:hover::before {
    opacity: 1;
    animation: glitchLine 0.4s steps(2, start) forwards;
}

@keyframes glitchLine {
    0% {
        transform: scale3d(1, 1, 1);
    }

    10% {
        transform: translate3d(10px, 0, 0);
    }

    20% {
        transform: translate3d(0, 4px, 0);
    }

    30% {
        transform: scale3d(0.1, 1.4, 1) translate3d(0, -25px, 0);
        transform-origin: 100% 0%;
    }

    40% {
        transform: scale3d(1, 0.3, 1) translate3d(0, 25px, 0);
    }

    50% {
        transform: scale3d(0.5, 0.3, 1) translate3d(-100px, -80px, 0);
    }

    60% {
        transform: scale3d(1, 1.25, 1) translate3d(10px, -5px, 0);
    }

    70% {
        transform: scale3d(0.5, 0.5, 1) translate3d(0, 20px, 0);
    }

    80% {
        transform: translate3d(-30, 10px, 0) scale3d(1, 0.4, 1);
        transform-origin: 100% 0%;
    }

    90% {
        transform: scale3d(1, 0.5, 1) translate3d(0, -15px, 0);
        ;
        transform-origin: 0% 50%;
    }

    100% {
        opacity: 1;
    }
}

.link--mneme {
    font-size: 0.875rem;
    text-transform: uppercase;
}

.link--mneme::before {
    height: 100%;
    top: 0;
    opacity: 0;
}

.link--mneme:hover::before {
    opacity: 1;
    animation: coverUp 0.3s ease forwards;
}

@keyframes coverUp {
    0% {
        transform-origin: 50% 100%;
        transform: scale3d(1, 0.045, 1);
    }

    50% {
        transform-origin: 50% 100%;
        transform: scale3d(1, 1, 1);
    }

    51% {
        transform-origin: 50% 0%;
        transform: scale3d(1, 1, 1);
    }

    100% {
        transform-origin: 50% 0%;
        transform: scale3d(1, 0.045, 1);
    }
}

.link--mneme::after {
    content: '';
    transition: opacity 0.3s;
}

.link--mneme:hover::after {
    opacity: 0;
}

.link--iocaste {
    overflow: hidden;
    padding: 7px 0;
}

.link__graphic {
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    fill: none;
    stroke: #000;
    stroke-width: 1px;
}

.link__graphic--slide {
    top: -3px;
    stroke-width: 2px;
    transition: transform 0.7s;
    transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1);
}

.link:hover .link__graphic--slide {
    transform: translate3d(-66.6%, 0, 0);
}

.link--herse {
    font-size: 1.375rem;
    font-weight: bold;
}

.link--herse::before {
    display: none;
}

.link__graphic--stroke path {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
}

.link:hover .link__graphic--stroke path {
    stroke-dashoffset: 0;
}

/* Trick from https://css-tricks.com/a-trick-that-makes-drawing-svg-lines-way-easier/ */


.link__graphic--arc {
	top: 73%;
	left: -23%;
}

.link__graphic--arc path {
    transition: stroke-dashoffset 0.4s cubic-bezier(0.7, 0, 0.3, 1);
}

.link:hover .link__graphic--arc path {
    transition-timing-function: cubic-bezier(0.8, 1, 0.7, 1);
    transition-duration: 0.3s;
}

.link--carme {
    font-size: 1.25rem;
}

.link--carme::before {
    display: none;
}

.link__graphic--scribble {
    top: 100%;
}

.link__graphic--scribble path {
    transition: stroke-dashoffset 0.6s cubic-bezier(0.7, 0, 0.3, 1);
}

.link:hover .link__graphic--scribble path {
    transition-timing-function: cubic-bezier(0.8, 1, 0.7, 1);
    transition-duration: 0.3s;
}

.link--eirene {
    font-family: europa, sans-serif;
    font-weight: bold;
}

.link--eirene::before {
    height: 7px;
    border-radius: 20px;
    transform: scale3d(1, 1, 1);
    transition: transform 0.2s, opacity 0.2s;
    transition-timing-function: cubic-bezier(0.2, 0.57, 0.67, 1.53);
}

.link--eirene:hover::before {
    transition-timing-function: cubic-bezier(0.8, 0, 0.1, 1);
    transition-duration: 0.4s;
    opacity: 1;
    transform: scale3d(1.2, 0.1, 1);
}

.link--eirene span {
    transform: translate3d(0, -4px, 0);
    display: inline-block;
    transition: transform 0.2s 0.05s cubic-bezier(0.2, 0.57, 0.67, 1.53);
}

.link--eirene:hover span {
    transform: translate3d(0, 0, 0);
    transition-timing-function: cubic-bezier(0.8, 0, 0.1, 1);
    transition-duration: 0.4s;
    transition-delay: 0s;
}

@media screen and (min-width: 53em) {
    .frame {
        text-align: left;
        z-index: 100;
        display: grid;
        align-content: space-between;
        width: 100%;
        max-width: none;
        padding: 3rem 3.5rem;
        pointer-events: none;
        grid-template-columns: 50% 50%;
        grid-template-rows: auto auto auto;
        grid-template-areas: 'title links'
            '... ...'
            'author ...';
    }

    .frame__title-wrap {
        grid-area: title;
    }

    .frame__title {
        margin: 0;
    }

    .frame__tagline {
        position: relative;
        margin-left: 0;
    }

    .frame__links {
        grid-area: links;
        padding: 0;
        justify-self: end;
        align-self: start;
        justify-content: start;
    }

    .frame__author {
        grid-area: author;
    }

    .frame a {
        pointer-events: auto;
    }
}
