@charset "UTF-8";

/* =====================================================
  1.0 - Foundation
===================================================== */


/*
  # Global
---------------------------------------------- */

@font-face {
    font-family: "Helvetica";
    src: local(Helvetica-Regular);
}

@font-face {
    font-family: "HiraginoSans-W3";
    src: local(HiraginoSans-W3);
    font-weight: 300;
}

@font-face {
    font-family: "HiraginoSans-W6";
    src: local(Hiragino Kaku Gothic W6 JIS2004);
    font-weight: 600;
}


/**
 * Default box-sizing
 */

*,
::before,
::after {
    -webkit-box-sizing: inherit;
    box-sizing: inherit;
}


/**
 * Resetting margins, paddings, and borders
 */

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
main,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    border: 0;
    padding: 0;
}


/**
 * Resetting HTML5 Elements for older browsers
 */

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


/*
  # Document & Sections
---------------------------------------------- */

html {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    min-height: 100%;
    overflow-y: scroll;
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    min-height: 100%;
    text-rendering: optimizeLegibility;
    letter-spacing: .05em;
    font: 1em/1.5 sans-serif;
    -webkit-overflow-scrolling: touch;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt";
}


/*
  # Grouping content
---------------------------------------------- */

blockquote,
q {
    quotes: none;
}

blockquote:after,
blockquote:before,
q:after,
q:before {
    content: "";
    content: none;
}

hr {
    overflow: visible;
}

ol,
ul {
    list-style: none;
}

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


/*
  # Text-level semantics
---------------------------------------------- */

a {
    background-color: transparent;
    -webkit-text-decoration-skip: objects;
}

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

abbr[title] {
    border-bottom: none;
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
    text-decoration: underline;
}

b,
strong {
    font-weight: bolder;
}

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

dfn {
    font-style: italic;
}

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

small {
    font-size: .8em;
}

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

sub {
    bottom: -.25em;
}

sup {
    top: -.5em;
}


/*
  # Embedded content
---------------------------------------------- */

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

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

img,
video {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

svg:not([fill]) {
    fill: currentColor;
}

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


/*
  # Tabular data
---------------------------------------------- */

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


/*
  # Forms
---------------------------------------------- */

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

button,
select {
    text-transform: none;
}

button,
input {
    overflow: visible;
}

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

button:-moz-focusring,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
    outline: 1px dotted ButtonText;
}

legend {
    display: table;
    max-width: 100%;
    white-space: normal;
    color: inherit;
}

optgroup {
    font-weight: bold;
}

progress {
    vertical-align: baseline;
}

textarea {
    overflow: auto;
    resize: vertical;
}

[type="checkbox"],
[type="radio"] {
    padding: 0;
}

[type="search"] {
    -webkit-appearance: textfield;
    outline-offset: -2px;
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
}


/*
  # Interactive & Misc
---------------------------------------------- */

summary {
    display: list-item;
}

template,
[hidden] {
    display: none;
}


/*
  # Accessibility
---------------------------------------------- */

[disabled],
[aria-disabled="true"] {
    cursor: not-allowed;
}

[aria-busy="true"] {
    cursor: progress;
}

[aria-controls] {
    cursor: pointer;
}

[aria-hidden="false"][hidden] {
    display: initial;
}

[aria-hidden="false"][hidden]:not(:focus) {
    position: absolute;
    clip: rect(0, 0, 0, 0);
}

:focus:not(:focus-visible),
::before:focus:not(:focus-visible),
::after:focus:not(:focus-visible) {
    outline: none;
}


/**
 * Prettier ignore
 */

@media (prefers-reduced-motion: reduce) {

    *,
    *:before,
    *:after {
        -webkit-transition: none !important;
        transition: none !important;
        -webkit-animation: none !important;
        animation: none !important;
        scroll-behavior: auto !important;
    }
}


/**
 * Checker
 */

button:not([type]):after {
    background-color: red;
    color: #fff;
    content: "警告： このbuttonにはtype属性がありません";
}


/*
  Base
----------------------------------------------------- */

body {
    font-family: "HiraginoSans-W3", "Hiragino Sans", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", sans-serif;
    color: #0d0d0d;
    font-weight: 400;
}

body:before {
    content: "";
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    background-color: #101010;
    z-index: 2;
    opacity: 0;
    -webkit-transition-property: opacity;
    transition-property: opacity;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    pointer-events: none;
}

@media screen and (min-width: 768px) {
    body:before {
        z-index: 1;
    }
}

@media screen and (min-width: 1024px) {
    body:before {
        content: none;
    }
}

.is-drawerActive body:before {
    opacity: 1;
}

a {
    -webkit-transition-property: color, border, background;
    transition-property: color, border, background;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
}


/* =====================================================
  2.0 - Layout
===================================================== */


/*
  Centering
----------------------------------------------------- */

.container {
    max-width: 1440px;
    margin: 0 auto;
}

/* トップ YouTube セクションのコンテナ幅を 960px に制限 */
#home__youtube .container {
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
}


/* #home__case 見出しテキストは右寄せ */
#home__case .headline__left h2,
#home__case .headline__left p {
    text-align: right;
}

.l-container {
    padding: 0 6.25vw;
}

.l-container.-narrow {
    max-width: 1200px;
    margin: 0 auto;
}


/*
  Header
----------------------------------------------------- */

.l-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 13;
    background: #FFF;
}

/* ヘッダー子要素の背景を全幅に、コンテンツは内側の .h__container で幅維持 */
.l-header>* {
    width: 100%;
}

/* 影は親 #header にのみ付与（.h__container には付けない） */
#header {
    box-shadow: 0 1px 15px 0 rgba(53, 57, 61, 0.1);
}

/* ヘッダーの中身は最大幅 1440px で中央寄せ（影は #header にのみ） */
#header .h__container {
    box-shadow: none;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
}

@media screen and (min-width: 1440px) {
    #header .h__container {
        padding-left: 40px;
        padding-right: 40px;
    }
}

/* section の max-width: 1440px をヘッダー内では解除 */
@media screen and (min-width: 1440px) {
    .l-header section {
        max-width: none;
    }
}

/* トップ KV：左ブロックを画面右端にピッタリ寄せ */
.home__header__key__visual .home__header__key__visual__inner__left {
    left: auto !important;
}

/* トップ KV：ヒーロー（「誰かのため」見出し）を中央寄せ */
.home__header__key__visual .home__header__key__visual__hero {
    right: 0;
}

.home__header__key__visual .home__header__key__visual__hero h1 {
    text-align: center !important;
}

/* トップ KV：left＋center をまとめる内側コンテナを最大幅960pxで中央寄せ */
.home__header__key__visual .home__header__key__visual__inner {
    position: relative;
    max-width: 1440px;
    margin: 0 auto;
    height: 100%;
}


/*
  Footer
----------------------------------------------------- */

.l-footer {
    clear: both;
}

/* フッター子要素の背景を全幅に、コンテンツは内側の .container で幅維持 */
footer>* {
    width: 100%;
}

/* フッター内 .container：最大幅 1440px・中央寄せ・レスポンシブ余白 */
footer .container {
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 4.267%;
    padding-right: 4.267%;
}

@media screen and (min-width: 768px) {
    footer .container {
        padding-left: 6.25vw;
        padding-right: 6.25vw;
    }
}

@media screen and (min-width: 1440px) {
    footer .container {
        padding-left: 40px;
        padding-right: 40px;
    }
}

/* footer__info も同様に最大幅 1440px・中央寄せ（余白は .container で確保） */
#footer__info .footer__info {
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
}

/* section の max-width: 1440px をフッター内では解除 */
@media screen and (min-width: 1440px) {
    footer section {
        max-width: none;
    }
}


/*
  Main
----------------------------------------------------- */

.l-main {
    clear: both;
}


/*
  Spacer
----------------------------------------------------- */

.l-spacer.-primary {
    padding: 4rem 0;
}

@media screen and (min-width: 768px) {
    .l-spacer.-primary {
        padding: 6rem 0;
    }
}

@media screen and (min-width: 1024px) {
    .l-spacer.-primary {
        padding: 7.5rem 0;
    }
}

.l-spacer.-secondary {
    padding: 2.5rem 0;
}

@media screen and (min-width: 768px) {
    .l-spacer.-secondary {
        padding: 4rem 0;
    }
}

@media screen and (min-width: 1024px) {
    .l-spacer.-secondary {
        padding: 5rem 0;
    }
}

.l-spacer.-box {
    padding: 5rem 6.25vw;
}

@media screen and (min-width: 1024px) {
    .l-spacer.-area {
        padding: 5rem 5vw;
    }
}

.l-spacer.-center {
    text-align: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.l-spacer.-mtLarge {
    margin-top: 2.5rem;
}

@media screen and (min-width: 768px) {
    .l-spacer.-mtLarge {
        margin-top: 4rem;
    }
}

@media screen and (min-width: 1024px) {
    .l-spacer.-mtLarge {
        margin-top: 5rem;
    }
}

.l-spacer.-mtMedium {
    margin-top: 1.5rem;
}

@media screen and (min-width: 768px) {
    .l-spacer.-mtMedium {
        padding: 2rem 0;
    }
}

@media screen and (min-width: 1024px) {
    .l-spacer.-mtMedium {
        padding: 3rem 0;
    }
}

.l-spacer.-mtSmall {
    margin-top: 0.75rem;
}

@media screen and (min-width: 768px) {
    .l-spacer.-mtSmall {
        padding: 1rem 0;
    }
}

@media screen and (min-width: 1024px) {
    .l-spacer.-mtSmall {
        padding: 1.5rem 0;
    }
}

.l-spacer.-top {
    padding-bottom: 0;
}

.l-spacer.-bottom {
    padding-top: 0;
}

.l-spacer.-offset {
    margin-top: -10rem;
}

.l-spacer.-bgWhite {
    background-color: #fff;
}

.l-spacer.-bgLightGrey {
    background-color: #fafafa;
}

.l-spacer.-bgMurasaki {
    background-color: #0d0d0d;
    color: #fafafa;
}

.l-spacer.-bgHarfLightGrey {
    background-color: #fff;
}

@media screen and (min-width: 768px) {
    .l-spacer.-bgHarfLightGrey {
        position: relative;
        z-index: 0;
    }

    .l-spacer.-bgHarfLightGrey:before,
    .l-spacer.-bgHarfLightGrey:after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        width: 100%;
        z-index: -1;
    }
}

@media screen and (min-width: 768px) and (min-width: 768px) {

    .l-spacer.-bgHarfLightGrey:before,
    .l-spacer.-bgHarfLightGrey:after {
        width: 50%;
    }
}

@media screen and (min-width: 768px) {
    .l-spacer.-bgHarfLightGrey:before {
        left: 0;
        background-color: #fafafa;
    }

    .l-spacer.-bgHarfLightGrey:after {
        right: 0;
        background-color: #f0f0f0;
    }
}

.l-spacer.-bgHarfMurasaki {
    position: relative;
    z-index: 0;
}

.l-spacer.-bgHarfMurasaki:before,
.l-spacer.-bgHarfMurasaki:after {
    content: "";
    position: absolute;
}

.l-spacer.-bgHarfMurasaki:before {
    left: 0;
    top: 0;
    width: 100%;
    height: 30%;
    background-color: #0d0d0d;
    z-index: -1;
}

@media screen and (min-width: 768px) {
    .l-spacer.-bgHarfMurasaki:before {
        height: 60%;
    }
}

@media screen and (min-width: 1200px) {
    .l-spacer.-bgHarfMurasaki:before {
        width: 40%;
        bottom: 0;
        height: auto;
    }
}


/* =====================================================
  3.0 - Object
===================================================== */


/*
  3.1 - Component
----------------------------------------------------- */


/*
  Button
*/

.c-button {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    display: inline-block;
    border: 0;
    background-color: transparent;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    vertical-align: bottom;
}

.c-button.-primary {
    position: relative;
    border-radius: 4rem;
    padding: 1rem 2rem;
    text-align: center;
    font-weight: bold;
    background-color: #0d0d0d;
    color: #fff;
    border: 2px solid #101010;
    overflow: hidden;
    z-index: 0;
}

.c-button.-primary::before {
    content: "";
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 0.5rem;
    height: 0.5rem;
    margin: auto;
    border-radius: 50%;
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    transition-property: opacity, transform;
    transition-property: opacity, transform, -webkit-transform;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    opacity: 0;
    -webkit-transform: scale(1);
    transform: scale(1);
    z-index: -1;
}

.c-button.-primary:hover {
    color: #101010;
}

.c-button.-primary:hover::before {
    opacity: 1;
    -webkit-transform: scale(30);
    transform: scale(30);
}

.c-button.-ghost {
    border: 2px solid #fff;
    padding: 1em;
    border-radius: 2em;
    position: relative;
    overflow: hidden;
    z-index: 0;
}

.c-button.-ghost::before {
    content: "";
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 0.5rem;
    height: 0.5rem;
    margin: auto;
    border-radius: 50%;
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    transition-property: opacity, transform;
    transition-property: opacity, transform, -webkit-transform;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    opacity: 0;
    -webkit-transform: scale(1);
    transform: scale(1);
    z-index: -1;
}

.c-button.-ghost::after {
    content: none;
}

.c-button.-ghost:hover {
    color: #0d0d0d;
}

.c-button.-ghost:hover::before {
    opacity: 1;
    -webkit-transform: scale(30);
    transform: scale(30);
}


/*
  Card
*/

.c-card {
    display: -webkit-box;
    display: flex;
    position: relative;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
}

.c-card__body {
    display: -webkit-box;
    display: flex;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
}

.c-card__thumbnail {
    -webkit-box-ordinal-group: 1;
    -ms-flex-order: 0;
    order: 0;
}

.c-card__image {
    width: 100%;
}


/*
  oreroll
*/

.oreroll {
    -webkit-transition-duration: 1s;
    transition-duration: 1s;
    -webkit-transition-property: opacity, letter-spacing, -webkit-transform;
    transition-property: opacity, letter-spacing, -webkit-transform;
    transition-property: opacity, transform, letter-spacing;
    transition-property: opacity, transform, letter-spacing, -webkit-transform;
    -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    will-change: transform;
}

@media screen and (min-width: 768px) {
    .oreroll[data-tabdelay="0.1s"] {
        -webkit-transition-delay: 0.1s;
        transition-delay: 0.1s;
    }

    .oreroll[data-tabdelay="0.2s"] {
        -webkit-transition-delay: 0.2s;
        transition-delay: 0.2s;
    }

    .oreroll[data-tabdelay="0.3s"] {
        -webkit-transition-delay: 0.3s;
        transition-delay: 0.3s;
    }

    .oreroll[data-tabdelay="0.4s"] {
        -webkit-transition-delay: 0.4s;
        transition-delay: 0.4s;
    }
}

@media screen and (min-width: 768px) {
    .oreroll[data-tabgroup="2"]:nth-child(2n + 1) {
        -webkit-transition-delay: 0s;
        transition-delay: 0s;
    }

    .oreroll[data-tabgroup="2"]:nth-child(2n + 2) {
        -webkit-transition-delay: 0.1s;
        transition-delay: 0.1s;
    }

    .oreroll[data-tabgroup="3"]:nth-child(3n + 1) {
        -webkit-transition-delay: 0s;
        transition-delay: 0s;
    }

    .oreroll[data-tabgroup="3"]:nth-child(3n + 2) {
        -webkit-transition-delay: 0.1s;
        transition-delay: 0.1s;
    }

    .oreroll[data-tabgroup="3"]:nth-child(3n + 3) {
        -webkit-transition-delay: 0.2s;
        transition-delay: 0.2s;
    }

    .oreroll[data-tabgroup="4"]:nth-child(4n + 1) {
        -webkit-transition-delay: 0s;
        transition-delay: 0s;
    }

    .oreroll[data-tabgroup="4"]:nth-child(4n + 2) {
        -webkit-transition-delay: 0.1s;
        transition-delay: 0.1s;
    }

    .oreroll[data-tabgroup="4"]:nth-child(4n + 3) {
        -webkit-transition-delay: 0.2s;
        transition-delay: 0.2s;
    }

    .oreroll[data-tabgroup="4"]:nth-child(4n + 4) {
        -webkit-transition-delay: 0.3s;
        transition-delay: 0.3s;
    }
}

@media screen and (min-width: 1024px) {
    .oreroll[data-lapgroup="4"]:nth-child(4n + 1) {
        -webkit-transition-delay: 0s;
        transition-delay: 0s;
    }

    .oreroll[data-lapgroup="4"]:nth-child(4n + 2) {
        -webkit-transition-delay: 0.1s;
        transition-delay: 0.1s;
    }

    .oreroll[data-lapgroup="4"]:nth-child(4n + 3) {
        -webkit-transition-delay: 0.2s;
        transition-delay: 0.2s;
    }

    .oreroll[data-lapgroup="4"]:nth-child(4n + 4) {
        -webkit-transition-delay: 0.3s;
        transition-delay: 0.3s;
    }
}

.oreroll[data-spdelay="0.1s"] {
    -webkit-transition-delay: 0.1s;
    transition-delay: 0.1s;
}

.oreroll[data-spdelay="0.2s"] {
    -webkit-transition-delay: 0.2s;
    transition-delay: 0.2s;
}

.oreroll[data-spdelay="0.3s"] {
    -webkit-transition-delay: 0.3s;
    transition-delay: 0.3s;
}

.oreroll[data-spdelay="0.4s"] {
    -webkit-transition-delay: 0.4s;
    transition-delay: 0.4s;
}

.oreroll[data-spgroup="2"]:nth-child(2n + 1) {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
}

.oreroll[data-spgroup="2"]:nth-child(2n + 2) {
    -webkit-transition-delay: 0.1s;
    transition-delay: 0.1s;
}

.oreroll[data-spgroup="3"]:nth-child(3n + 1) {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
}

.oreroll[data-spgroup="3"]:nth-child(3n + 2) {
    -webkit-transition-delay: 0.1s;
    transition-delay: 0.1s;
}

.oreroll[data-spgroup="3"]:nth-child(3n + 3) {
    -webkit-transition-delay: 0.2s;
    transition-delay: 0.2s;
}

.oreroll[data-duration="fast"] {
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
}

.oreroll[data-duration="normal"] {
    -webkit-transition-duration: 1s;
    transition-duration: 1s;
}

.oreroll[data-duration="slow"] {
    -webkit-transition-duration: 1s;
    transition-duration: 1s;
}

.oreroll[data-type~="fadeIn"].is-orerollReady {
    opacity: 0;
}

.oreroll[data-type~="fadeIn"].is-orerollActive {
    opacity: 1;
}

.oreroll[data-type~="slideUpIn"].is-orerollReady {
    -webkit-transform: translateY(2.5rem);
    transform: translateY(2.5rem);
    opacity: 0;
}

.oreroll[data-type~="slideUpIn"].is-orerollActive {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
}

.oreroll[data-type~="slideDownIn"].is-orerollReady {
    -webkit-transform: translateY(-2.5rem);
    transform: translateY(-2.5rem);
    opacity: 0;
}

.oreroll[data-type~="slideDownIn"].is-orerollActive {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
}

.oreroll[data-type~="slideLeftIn"].is-orerollReady {
    -webkit-transform: translateX(2.5rem);
    transform: translateX(2.5rem);
    opacity: 0;
}

.oreroll[data-type~="slideLeftIn"].is-orerollActive {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
}

.oreroll[data-type~="slideRightIn"].is-orerollReady {
    -webkit-transform: translateX(-2.5rem);
    transform: translateX(-2.5rem);
    opacity: 0;
}

.oreroll[data-type~="slideRightIn"].is-orerollActive {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
}

.oreroll[data-type~="zoomIn"].is-orerollReady {
    -webkit-transform: scale(0);
    transform: scale(0);
    opacity: 0;
}

.oreroll[data-type~="zoomIn"].is-orerollActive {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
}

.oreroll[data-type~="textClosing"].is-orerollReady {
    letter-spacing: 0.1em;
}

.oreroll[data-type~="textClosing"].is-orerollActive {
    letter-spacing: inherit;
}

.oreroll[data-type="standUpIn"] span {
    display: inline-block;
    -webkit-transition: inherit;
    transition: inherit;
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(1) {
    -webkit-transition-delay: 0.1s;
    transition-delay: 0.1s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(2) {
    -webkit-transition-delay: 0.2s;
    transition-delay: 0.2s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(3) {
    -webkit-transition-delay: 0.3s;
    transition-delay: 0.3s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(4) {
    -webkit-transition-delay: 0.4s;
    transition-delay: 0.4s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(5) {
    -webkit-transition-delay: 0.5s;
    transition-delay: 0.5s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(6) {
    -webkit-transition-delay: 0.6s;
    transition-delay: 0.6s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(7) {
    -webkit-transition-delay: 0.7s;
    transition-delay: 0.7s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(8) {
    -webkit-transition-delay: 0.8s;
    transition-delay: 0.8s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(9) {
    -webkit-transition-delay: 0.9s;
    transition-delay: 0.9s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(10) {
    -webkit-transition-delay: 1s;
    transition-delay: 1s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(11) {
    -webkit-transition-delay: 1.1s;
    transition-delay: 1.1s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(12) {
    -webkit-transition-delay: 1.2s;
    transition-delay: 1.2s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(13) {
    -webkit-transition-delay: 1.3s;
    transition-delay: 1.3s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(14) {
    -webkit-transition-delay: 1.4s;
    transition-delay: 1.4s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(15) {
    -webkit-transition-delay: 1.5s;
    transition-delay: 1.5s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(16) {
    -webkit-transition-delay: 1.6s;
    transition-delay: 1.6s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(17) {
    -webkit-transition-delay: 1.7s;
    transition-delay: 1.7s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(18) {
    -webkit-transition-delay: 1.8s;
    transition-delay: 1.8s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(19) {
    -webkit-transition-delay: 1.9s;
    transition-delay: 1.9s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(20) {
    -webkit-transition-delay: 2s;
    transition-delay: 2s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(21) {
    -webkit-transition-delay: 2.1s;
    transition-delay: 2.1s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(22) {
    -webkit-transition-delay: 2.2s;
    transition-delay: 2.2s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(23) {
    -webkit-transition-delay: 2.3s;
    transition-delay: 2.3s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(24) {
    -webkit-transition-delay: 2.4s;
    transition-delay: 2.4s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(25) {
    -webkit-transition-delay: 2.5s;
    transition-delay: 2.5s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(26) {
    -webkit-transition-delay: 2.6s;
    transition-delay: 2.6s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(27) {
    -webkit-transition-delay: 2.7s;
    transition-delay: 2.7s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(28) {
    -webkit-transition-delay: 2.8s;
    transition-delay: 2.8s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(29) {
    -webkit-transition-delay: 2.9s;
    transition-delay: 2.9s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(30) {
    -webkit-transition-delay: 3s;
    transition-delay: 3s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(31) {
    -webkit-transition-delay: 3.1s;
    transition-delay: 3.1s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(32) {
    -webkit-transition-delay: 3.2s;
    transition-delay: 3.2s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(33) {
    -webkit-transition-delay: 3.3s;
    transition-delay: 3.3s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(34) {
    -webkit-transition-delay: 3.4s;
    transition-delay: 3.4s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(35) {
    -webkit-transition-delay: 3.5s;
    transition-delay: 3.5s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(36) {
    -webkit-transition-delay: 3.6s;
    transition-delay: 3.6s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(37) {
    -webkit-transition-delay: 3.7s;
    transition-delay: 3.7s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(38) {
    -webkit-transition-delay: 3.8s;
    transition-delay: 3.8s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(39) {
    -webkit-transition-delay: 3.9s;
    transition-delay: 3.9s;
}

.oreroll[data-type="standUpIn"] span:nth-of-type(40) {
    -webkit-transition-delay: 4s;
    transition-delay: 4s;
}

.oreroll[data-type="standUpIn"].is-orerollReady span {
    opacity: 0;
    -webkit-transform: scale(0);
    transform: scale(0);
}

.oreroll[data-type="standUpIn"].is-orerollActive span {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
}


/*
  Heading
*/

.c-heading {
    position: relative;
    font-size: 1.25rem;
}

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

.c-heading.-primary {
    font-size: 2rem;
    margin-bottom: 0.5em;
    font-weight: 700;
}

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

@media screen and (min-width: 1024px) {
    .c-heading.-primary {
        font-size: 4rem;
    }
}

.c-heading.-secondary {
    font-size: 1.5rem;
    margin-bottom: 0.5em;
}

@media screen and (min-width: 1024px) {
    .c-heading.-secondary {
        font-size: 3rem;
    }
}

.c-heading.-center {
    text-align: center;
}

.c-heading.-right {
    text-align: right;
}


/*
  Media
*/

.c-media {
    display: block;
    overflow: hidden;
}

.c-media__body {
    float: right;
    width: 65.97938%;
}

.c-media__thumbnail {
    float: left;
    width: 31.95876%;
}

.c-media__thumbnail img {
    width: 100%;
}


/*
  Detail
*/

.c-detail {
    line-height: 2;
    font-size: 0.875rem;
}

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

.c-detail.-center {
    text-align: center;
}


/*
  3.2 - Project
----------------------------------------------------- */


/*
  Intro
*/

.p-intro {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: -webkit-box;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    z-index: 5;
    -webkit-transition-property: opacity, visibility;
    transition-property: opacity, visibility;
    -webkit-transition-duration: 0.3s, 0.1s;
    transition-duration: 0.3s, 0.1s;
    -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-transition-delay: 0, 0.3s;
    transition-delay: 0, 0.3s;
    background-color: #fff;
}

.p-intro__title {
    font-size: 7.5vw;
}

@media screen and (min-width: 768px) {
    .p-intro__title {
        font-size: 4rem;
    }
}

.p-intro__title span {
    display: inline-block;
    -webkit-animation: popUp 2s cubic-bezier(0.165, 0.84, 0.44, 1) infinite both;
    animation: popUp 2s cubic-bezier(0.165, 0.84, 0.44, 1) infinite both;
}

.p-intro__title span:nth-child(1) {
    -webkit-animation-delay: 0.1s;
    animation-delay: 0.1s;
}

.p-intro__title span:nth-child(2) {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
}

.p-intro__title span:nth-child(3) {
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
}

.p-intro__title span:nth-child(4) {
    -webkit-animation-delay: 0.4s;
    animation-delay: 0.4s;
}

.p-intro__title span:nth-child(5) {
    -webkit-animation-delay: 0.5s;
    animation-delay: 0.5s;
}

.p-intro__title span:nth-child(6) {
    -webkit-animation-delay: 0.6s;
    animation-delay: 0.6s;
}

.p-intro__title span:nth-child(7) {
    -webkit-animation-delay: 0.7s;
    animation-delay: 0.7s;
}

.p-intro__title span:nth-child(8) {
    -webkit-animation-delay: 0.8s;
    animation-delay: 0.8s;
}

.is-loaded .p-intro {
    opacity: 0;
    visibility: hidden;
}

@-webkit-keyframes popUp {
    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }

    25% {
        -webkit-transform: translateY(-1rem);
        transform: translateY(-1rem);
    }

    50% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

@keyframes popUp {
    0% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }

    25% {
        -webkit-transform: translateY(-1rem);
        transform: translateY(-1rem);
    }

    50% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}


/*
  Drawer
*/

.p-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    -webkit-transition: opacity 0.2s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 0.2s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 0.2s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    z-index: 2;
    width: 100vw;
    min-height: 100%;
    -webkit-transform: scale(0.7);
    transform: scale(0.7);
    opacity: 0;
    color: #ccc;
}

@media screen and (min-width: 1024px) {
    .p-drawer {
        position: static;
        -webkit-transform: none;
        transform: none;
        -webkit-transition: none;
        transition: none;
        visibility: visible;
        -webkit-box-shadow: none;
        box-shadow: none;
        background-color: transparent;
        padding: 0;
        width: auto;
        height: auto;
        overflow: visible;
        color: inherit;
        opacity: 1;
    }
}

.is-drawerActive .p-drawer {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
}

.is-resize .p-drawer {
    -webkit-transition: none;
    transition: none;
}

.is-resize .p-drawer__title {
    -webkit-transition: none;
    transition: none;
}


/*
  Global Nav
*/

.p-globalNav {
    padding: 18vh 0 0;
}

.p-globalNav a {
    position: relative;
    display: block;
    color: #fff;
    text-decoration: none;
    font-size: 1.5rem;
    -webkit-transform: translateX(0);
    transform: translateX(0);
    padding: 1rem 6.25vw;
}

.p-globalNav a:not(.c-button) {
    -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.p-globalNav a:not(.c-button):hover {
    -webkit-transform: translateX(1rem);
    transform: translateX(1rem);
}

.p-globalNav a.c-button {
    margin: 4rem 0;
    font-size: 1rem;
}

.is-resize .p-globalNav__item {
    -webkit-transition: none;
    transition: none;
}

@media screen and (min-width: 1024px) {
    .p-globalNav {
        position: static;
        margin: 0;
        padding: 0;
        height: auto;
    }

    .p-globalNav a {
        padding: 0.5rem 0;
        font-size: 1rem;
        overflow: hidden;
        display: inline;
    }

    .p-globalNav a:not(.c-button) {
        -webkit-transition: none;
        transition: none;
    }

    .p-globalNav a:after {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        right: 0;
        height: 3px;
        background-color: #fff;
        -webkit-transform: translateX(-110%);
        transform: translateX(-110%);
        -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
        transition: -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
        transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
        transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    }

    .p-globalNav a:hover:after {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }

    .p-globalNav a:not(.c-button):hover {
        -webkit-transform: none;
        transform: none;
    }

    .p-globalNav a.c-button {
        margin: 0;
    }

    .is-drawerActive .p-globalNav__item {
        -webkit-transform: none;
        transform: none;
        -webkit-transition: none;
        transition: none;
    }
}


/*
  Hamburger
*/

.p-hamburger {
    position: absolute;
    top: 0;
    right: 6.25vw;
    bottom: 0;
    left: auto;
    -webkit-transition: background-color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: background-color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    z-index: 5;
    margin: auto 0;
    outline: 0;
    border: 0;
    background-color: transparent;
    width: 40px;
    height: 40px;
    border: 2px solid #fff;
}

@media screen and (min-width: 1024px) {
    .p-hamburger {
        display: none;
    }
}

.p-hamburger:hover,
.p-hamburger:focus {
    background-color: #fff;
}

.p-hamburger:hover .p-hamburger__line,
.p-hamburger:focus .p-hamburger__line {
    background-color: #101010;
}

.p-hamburger__line {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    -webkit-transition: background 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: background 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
    margin: auto;
    background-color: #fff;
    width: 50%;
    height: 2px;
}

.p-hamburger__line:before,
.p-hamburger__line:after {
    display: block;
    position: absolute;
    -webkit-transition: top 0.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s, -webkit-transform 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: top 0.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s, -webkit-transform 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.2s cubic-bezier(0.165, 0.84, 0.44, 1), top 0.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s;
    transition: transform 0.2s cubic-bezier(0.165, 0.84, 0.44, 1), top 0.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s, -webkit-transform 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
    border-radius: inherit;
    background-color: inherit;
    width: 100%;
    height: 100%;
    content: "";
}

.p-hamburger__line:before {
    top: -5px;
}

.p-hamburger__line:after {
    top: 5px;
}

.is-drawerActive .p-hamburger:hover,
.is-drawerActive .p-hamburger:focus {
    background-color: #fff;
}

.is-drawerActive .p-hamburger:hover .p-hamburger__line,
.is-drawerActive .p-hamburger:focus .p-hamburger__line {
    background-color: transparent;
}

.is-drawerActive .p-hamburger:hover .p-hamburger__line:before,
.is-drawerActive .p-hamburger:hover .p-hamburger__line:after,
.is-drawerActive .p-hamburger:focus .p-hamburger__line:before,
.is-drawerActive .p-hamburger:focus .p-hamburger__line:after {
    background-color: #000;
}

.is-drawerActive .p-hamburger__line {
    background-color: transparent;
}

.is-drawerActive .p-hamburger__line:before,
.is-drawerActive .p-hamburger__line:after {
    top: 0;
    -webkit-transition: top 0.2s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s;
    transition: top 0.2s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s;
    transition: transform 0.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s, top 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s, top 0.2s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s;
    background-color: #fff;
}

.is-drawerActive .p-hamburger__line:before {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

.is-drawerActive .p-hamburger__line:after {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}


/*
  Header
*/

.p-header {
    padding: 3rem 0;
    mix-blend-mode: exclusion;
}

.p-header__title {
    line-height: 1;
    font-size: 1rem;
}


/*
  Footer
*/

.p-footer {
    background-color: #0d0d0d;
    color: #fafafa;
    padding: 3.5rem 0;
}

.p-footer a {
    color: inherit;
    text-decoration: none;
}


/*
  Hero
*/

.p-hero {
    position: relative;
    overflow: hidden;
    background-color: #fff;
}

.p-hero__body {
    padding: 8rem 6.25vw 4rem;
}

@media screen and (min-width: 1024px) {
    .p-hero__body {
        padding: 8rem 6.25vw 2rem;
    }
}

.p-hero__title {
    font-size: 11.875vw;
    line-height: 1.25;
}

@media screen and (min-width: 768px) {
    .p-hero__title {
        font-size: 10vw;
    }
}

@media screen and (min-width: 1024px) {
    .p-hero__title {
        font-size: 5.3125vw;
    }
}

.p-hero__text {
    font-size: 0.875rem;
    line-height: 2.25;
}

.p-hero__text.-center {
    text-align: center;
}

@media screen and (min-width: 768px) {
    .p-hero__text {
        font-size: 1rem;
    }
}

@media screen and (min-width: 1200px) {
    .p-hero__text {
        font-size: 1.125rem;
    }
}

.p-hero__strong {
    font-weight: 700;
}

.p-hero__figure {
    -webkit-perspective: 1000px;
    perspective: 1000px;
    background-color: #101010;
    padding: 4rem 6.25vw;
}

@media screen and (min-width: 1024px) {
    .p-hero__figure {
        display: -webkit-box;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        min-height: 100vh;
    }
}

.p-hero__imageWrap {
    position: relative;
    display: block;
    -webkit-perspective: 400px;
    perspective: 400px;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
}

@media screen and (min-width: 1024px) {
    .p-hero__imageWrap {
        margin-top: 5rem;
    }
}

.p-hero__mono {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 1s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 1s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-transform: rotateY(12deg);
    transform: rotateY(12deg);
    opacity: 0;
    display: block;
    position: relative;
}

.p-hero__mono[data-id="1"] {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
}

.p-hero__mono[data-id="2"] {
    -webkit-transition-delay: 0.1s;
    transition-delay: 0.1s;
}

.p-hero__mono[data-id="3"] {
    -webkit-transition-delay: 0.2s;
    transition-delay: 0.2s;
}

.is-over .p-hero__mono {
    -webkit-transform: rotateY(0);
    transform: rotateY(0);
    opacity: 1;
}

.p-hero__mono::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #000;
    mix-blend-mode: saturation;
}

.p-hero__image {
    width: 100%;
}

.p-hero__footer {
    position: absolute;
    bottom: 0;
    left: 50%;
    right: 0;
}

.p-hero__info {
    padding: 4.5rem 4rem;
    background-color: #0d0d0d;
    color: #fff;
    font-size: 0.875rem;
}

.p-hero__scroll {
    padding: 4.5rem 4rem;
    background-color: #fff;
    color: #0d0d0d;
    font-size: 0.875rem;
}

.p-hero__node>span {
    display: inline-block;
    -webkit-transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1), transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1), transform 1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-transform: translateX(2rem);
    transform: translateX(2rem);
    opacity: 0;
}

.p-hero__node>span:nth-child(1) {
    -webkit-transition-delay: 0.1s;
    transition-delay: 0.1s;
}

.p-hero__node>span:nth-child(2) {
    -webkit-transition-delay: 0.2s;
    transition-delay: 0.2s;
}

.p-hero__node>span:nth-child(3) {
    -webkit-transition-delay: 0.3s;
    transition-delay: 0.3s;
}

.p-hero__node>span:nth-child(4) {
    -webkit-transition-delay: 0.4s;
    transition-delay: 0.4s;
}

.p-hero__node>span:nth-child(5) {
    -webkit-transition-delay: 0.5s;
    transition-delay: 0.5s;
}

.p-hero__node>span:nth-child(6) {
    -webkit-transition-delay: 0.6s;
    transition-delay: 0.6s;
}

.p-hero__node>span:nth-child(7) {
    -webkit-transition-delay: 0.7s;
    transition-delay: 0.7s;
}

.p-hero__node>span:nth-child(8) {
    -webkit-transition-delay: 0.8s;
    transition-delay: 0.8s;
}

.p-hero__node>span:nth-child(9) {
    -webkit-transition-delay: 0.9s;
    transition-delay: 0.9s;
}

.p-hero__node>span:nth-child(10) {
    -webkit-transition-delay: 1s;
    transition-delay: 1s;
}

.p-hero__node>span:nth-child(11) {
    -webkit-transition-delay: 1.1s;
    transition-delay: 1.1s;
}

.p-hero__node>span:nth-child(12) {
    -webkit-transition-delay: 1.2s;
    transition-delay: 1.2s;
}

.p-hero__node>span:nth-child(13) {
    -webkit-transition-delay: 1.3s;
    transition-delay: 1.3s;
}

.p-hero__node>span:nth-child(14) {
    -webkit-transition-delay: 1.4s;
    transition-delay: 1.4s;
}

.p-hero__node>span:nth-child(15) {
    -webkit-transition-delay: 1.5s;
    transition-delay: 1.5s;
}

.is-start .p-hero__node>span {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
}

@-webkit-keyframes nodeIn {
    0% {
        -webkit-transform: translateX(0.5rem);
        transform: translateX(0.5rem);
        opacity: 0;
    }

    0% {
        -webkit-transform: translateX(0.5rem);
        transform: translateX(0.5rem);
        opacity: 0;
    }
}

@keyframes nodeIn {
    0% {
        -webkit-transform: translateX(0.5rem);
        transform: translateX(0.5rem);
        opacity: 0;
    }

    0% {
        -webkit-transform: translateX(0.5rem);
        transform: translateX(0.5rem);
        opacity: 0;
    }
}


/*
  Logo
*/

.p-logo {
    display: inline-block;
    font-size: 3.125vw;
    text-decoration: none;
    color: #fff;
    font-size: 1.25rem;
}

@media screen and (min-width: 768px) {
    .p-logo {
        font-size: 2rem;
    }
}

.p-logo.-secondary {
    font-size: 1.5rem;
    text-align: center;
    margin-bottom: 4rem;
}

@media screen and (min-width: 1024px) {
    .p-logo.-secondary {
        text-align: left;
        margin-bottom: 0;
        font-size: 2.75rem;
    }
}

.p-logo.-secondary small {
    display: block;
    font-size: 0.625rem;
}

.p-logo.-twitter {
    width: 1.5rem;
    height: 1.5rem;
    margin: 0.25rem;
}

@media screen and (min-width: 1024px) {
    .p-logo.-twitter {
        margin: 0;
    }
}

.p-logo.-insta {
    width: 1.5rem;
    height: 1.5rem;
    margin: 0.25rem;
}

@media screen and (min-width: 1024px) {
    .p-logo.-insta {
        margin: 0;
    }
}

.media {
    display: block;
    position: relative;
    -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    border-radius: 0.5em;
    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16);
    background-color: #fff;
    text-decoration: none;
    color: inherit;
}

.media:before,
.media:after {
    display: table;
    content: '';
}

.media:after {
    clear: both;
}

.media.-archive {
    margin: 0;
    border: 1px solid #efefef;
    border-radius: 0;
    -webkit-box-shadow: 0 0 0 transparent;
    box-shadow: 0 0 0 transparent;
    padding: 1em;
    overflow: hidden;
    line-height: 1.8;
    color: inherit;
}

.media.-archive[target='_blank']:after {
    content: none;
}

.media-wrap {
    margin: 2rem 0;
}

.p-post__body .grid__item .media-wrap {
    margin-top: 1px;
}

.p-post__body .grid__item:nth-child(1) .media-wrap {
    margin-top: 0;
}

.media[href]:hover {
    -webkit-transform: scale(1.02);
    transform: scale(1.02);
    -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.16);
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.16);
    background-color: #fafafa;
}

.media[href]:hover.-archive {
    z-index: 1;
    border-color: transparent;
    color: inherit;
}

.media__thumbnail {
    position: relative;
    z-index: 0;
    border-radius: 0.5em 0 0 0.5em;
    overflow: hidden;
}

.-archive .media__thumbnail {
    float: left;
    border-radius: 0;
    width: 23%;
}

.media__body {
    float: right;
    margin-bottom: 1.25em;
    padding: 0.5em;
    width: 74%;
}

.media__body--detail {
    margin-bottom: 0;
}

.-archive .media__body {
    margin: 0;
    padding: 0;
}

.media__title {
    font-size: 0.75em;
    font-weight: bold;
}

.-archive .media__title {
    min-height: 3em;
}

.media__text {
    margin-top: 0.5em;
    font-size: 0.625em;
}

.media__badge {
    position: absolute;
    top: -0.4em;
    left: 0.4em;
    z-index: 1;
}

.media__badge--right {
    top: 0;
    left: 0;
    border-radius: 0.5em 0 0 0;
}

.media__meta {
    position: absolute;
    bottom: 0.5em;
}

.-archive .media__meta {
    position: static;
    font-size: 0;
}

.media__meta__item {
    font-size: 0.625em;
}

.media__meta__item.-right {
    text-align: right;
}

.media__meta__item+.media__meta__item {
    display: none;
}

.-archive .media__meta__item {
    display: inline-block;
    position: static;
    width: 50%;
    vertical-align: middle;
    font-size: 0;
    font-size: medium;
}

.media__meta__icon {
    margin-right: 0.25em;
}

.media__view {
    color: #666;
    font-size: 0.625em;
}

.media__view__count {
    color: #0d0d0d;
    font-size: 1.2em;
    font-weight: bold;
}

.media__time {
    color: #666;
    font-size: 0.75em;
}

@media screen and (min-width: 340px) {
    .media__body {
        margin-bottom: 1.5em;
    }

    .media__body--detail {
        margin-bottom: 0;
    }

    .media__title {
        font-size: 0.875em;
    }

    .media__text {
        font-size: 0.75em;
    }
}

@media screen and (min-width: 1024px) {
    .p-post__body .media {
        min-height: 7em;
    }

    .p-post__body .grid__item:nth-child(2) .media-wrap {
        margin-top: 0;
    }

    .p-post__body .grid__item:nth-child(even) .media-wrap {
        margin-left: 1px;
    }

    .media[href]:hover {
        -webkit-box-shadow: 0 3px 16px rgba(0, 0, 0, 0.25);
        box-shadow: 0 3px 16px rgba(0, 0, 0, 0.25);
    }

    .media__body {
        margin-bottom: 3em;
        padding: 1.5em;
        width: 58.3%;
    }

    .media__body--detail {
        margin-bottom: 0;
    }

    .-archive .media__body {
        margin: 0;
        padding: 0;
        width: 72%;
    }

    .media__title {
        font-size: 1em;
    }

    .media__text {
        margin-top: 1em;
        font-size: 0.875em;
    }

    .media__badge {
        top: -1.33em;
        left: 1.33em;
    }

    .media__badge--right {
        top: 0;
        left: 0;
    }

    .media__meta {
        bottom: 1.5em;
    }

    .media__meta__item {
        font-size: 0.75em;
    }

    .media__meta__item+.media__meta__item {
        display: inline-block;
        max-width: 60%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .media__meta__item+.media__meta__item+.media__meta__item {
        margin-left: 1em;
        max-width: 38%;
    }

    .-archive .media__meta__item {
        max-width: none;
        font-size: medium;
    }
}


/*
  Feature
*/

.p-feature {
    background-color: #fff;
    -webkit-box-shadow: 0 0 24px rgba(0, 0, 0, 0.04);
    box-shadow: 0 0 24px rgba(0, 0, 0, 0.04);
    padding: 6rem 4rem;
    text-align: center;
    color: #0d0d0d;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

@media screen and (min-width: 768px) {
    .p-feature {
        padding: 3rem 1.5rem;
    }
}

@media screen and (min-width: 1024px) {
    .p-feature {
        padding: 6rem 4rem;
    }
}

.p-feature img {
    width: 40px;
    height: 40px;
    margin-bottom: 1rem;
}

.p-feature__title {
    font-size: 1.5rem;
}

@media screen and (min-width: 768px) {
    .p-feature__title {
        font-size: 1.25rem;
    }
}

@media screen and (min-width: 1024px) {
    .p-feature__title {
        font-size: 1.5rem;
    }
}

.p-feature__text {
    margin-top: 1rem;
    font-size: 0.75rem;
}


/*
  Box
*/

.p-box.-primary {
    background-color: #010101;
    height: 40.625vw;
}

@media screen and (min-width: 768px) {
    .p-box.-primary {
        height: 31.25vw;
    }
}

@media screen and (min-width: 1024px) {
    .p-box.-primary {
        height: auto;
    }
}

.p-box.-secondary {
    background-color: #efefef;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 2rem 0;
}

@media screen and (min-width: 1024px) {

    .p-box[data-align~="start"] .p-box__body,
    .p-box[data-align~="center"] .p-box__body,
    .p-box[data-align~="end"] .p-box__body {
        padding: 4rem 1rem;
    }
}

.p-box__body {
    -webkit-box-shadow: 0 0 24px rgba(0, 0, 0, 0.04);
    box-shadow: 0 0 24px rgba(0, 0, 0, 0.04);
    background-color: #fff;
    color: #0d0d0d;
    text-align: center;
    padding: 1rem;
    font-size: 0.75rem;
}

.p-box img {
    margin-bottom: 0.5rem;
    max-width: 40px;
    max-height: 40px;
}

[data-dir] .p-box.-secondary {
    background-color: #fafafa;
}


/*
  Gallery
*/

.p-gallery {
    position: relative;
    overflow: hidden;
    -webkit-box-shadow: 0 0 24px rgba(0, 0, 0, 0.04);
    box-shadow: 0 0 24px rgba(0, 0, 0, 0.04);
}

.p-gallery::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #000;
    mix-blend-mode: saturation;
    -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    z-index: 1;
}

.p-gallery__body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1rem;
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    background-color: rgba(0, 0, 0, 0.8);
    color: #fff;
    -webkit-transition: opacity 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    opacity: 0;
    font-size: 0.625rem;
}

@media screen and (min-width: 768px) {
    .p-gallery__body {
        font-size: 0.75rem;
    }
}

.p-gallery__image {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.p-gallery:hover:before {
    opacity: 0;
}

.p-gallery:hover .p-gallery__body {
    opacity: 1;
}

.p-gallery:hover .p-gallery__image {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
}


/*
  Sticky
*/

.p-sticky__item {
    position: -webkit-sticky;
    position: sticky;
    top: 8rem;
}


/*
  Copyright
*/

.p-copyright {
    text-align: center;
    font-size: 0.75rem;
    margin-top: 2rem;
}

@media screen and (min-width: 1024px) {
    .p-copyright {
        text-align: right;
        margin-top: 0.5rem;
    }
}


/*
  3.2 - Utility
----------------------------------------------------- */


/*
  Break
*/

.u-break.-sp {
    display: inline-block;
}

@media screen and (min-width: 768px) {
    .u-break.-sp {
        display: none;
    }
}

.u-break.-tab {
    display: none;
}

@media screen and (min-width: 768px) {
    .u-break.-tab {
        display: inline-block;
    }
}


/*
  wbr
*/

.u-wbr {
    display: inline-block;
}


/*
  text
*/

.u-text.-center {
    text-align: center;
}

.u-text.-large {
    font-size: 1.5rem;
}

@media screen and (min-width: 1024px) {
    .u-text.-large {
        font-size: 2rem;
    }
}

.u-text.-medium {
    font-size: 1rem;
}

@media screen and (min-width: 1024px) {
    .u-text.-medium {
        font-size: 1.5rem;
    }
}


/*
  font
*/

.u-font.-white {
    color: #fff;
}


/*
  Background
*/

.u-bg.-lightGrey {
    background-color: #efefef;
}

.u-bg.-white {
    background-color: #fff;
}

.u-bg.-shadow {
    -webkit-box-shadow: 0 0 24px rgba(0, 0, 0, 0.04);
    box-shadow: 0 0 24px rgba(0, 0, 0, 0.04);
}


/*
  Border
*/

.u-border.-primary {
    border: 1px solid #e0e0e0;
}


/*
  Visually Hidden
*/

.u-visuallyHidden {
    position: absolute;
    margin: -1px;
    border: 0;
    padding: 0;
    width: 1px;
    height: 1px;
    overflow: hidden;
    white-space: nowrap;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
}
