@charset "UTF-8";
/* =========================================================

Foundation

========================================================= */
:root {
  --color-black: #000;
  --color-white: #fff;
  --color-primary: #fcf9d5;
  --color-bg-white: #fff;
  --color-bg-primary: #fcf9d5;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-family-sans: "Noto Sans JP", sans-serif;
  --font-family-eng: "democratica", sans-serif;
  --site-padding: calc(120 / 1512 * 100vw);
  --site-padding-lg: calc(160 / 1512 * 100vw);
  --site-padding-md: calc(80 / 1512 * 100vw);
  --site-padding-sm: calc(30 / 390 * 100vw);
  --site-padding-xs: calc(20 / 390 * 100vw);
  --site-margin: calc(120 / 1512 * 100vw);
  --site-margin-lg: calc(160 / 1512 * 100vw);
  --site-margin-md: calc(80 / 1512 * 100vw);
  --site-margin-sm: calc(30 / 390 * 100vw);
  --easeInSine: cubic-bezier(0.47, 0, 0.745, 0.715);
  --easeOutSine: cubic-bezier(0.39, 0.575, 0.565, 1);
  --easeInOutSine: cubic-bezier(0.445, 0.05, 0.55, 0.95);
  --easeInQuad: cubic-bezier(0.55, 0.085, 0.68, 0.53);
  --easeOutQuad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --easeInOutQuad: cubic-bezier(0.455, 0.03, 0.515, 0.955);
  --easeInCubic: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  --easeOutCubic: cubic-bezier(0.215, 0.61, 0.355, 1);
  --easeInOutCubic: cubic-bezier(0.645, 0.045, 0.355, 1);
  --easeInQuart: cubic-bezier(0.895, 0.03, 0.685, 0.22);
  --easeOutQuart: cubic-bezier(0.165, 0.84, 0.44, 1);
  --easeInOutQuart: cubic-bezier(0.77, 0, 0.175, 1);
  --easeInQuint: cubic-bezier(0.755, 0.05, 0.855, 0.06);
  --easeOutQuint: cubic-bezier(0.23, 1, 0.32, 1);
  --easeInOutQuint: cubic-bezier(0.86, 0, 0.07, 1);
  --easeInExpo: cubic-bezier(0.95, 0.05, 0.795, 0.035);
  --easeOutExpo: cubic-bezier(0.19, 1, 0.22, 1);
  --easeInOutExpo: cubic-bezier(1, 0, 0, 1);
  --easeInCirc: cubic-bezier(0.6, 0.04, 0.98, 0.335);
  --easeOutCirc: cubic-bezier(0.075, 0.82, 0.165, 1);
  --easeInOutCirc: cubic-bezier(0.785, 0.135, 0.15, 0.86);
  --easeInBack: cubic-bezier(0.6, -0.28, 0.735, 0.045);
  --easeOutBack: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --easeInOutBack: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/*! destyle.css v4.0.0 | MIT License | https://github.com/nicolas-cusan/destyle.css */
*, :after, :before {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

body {
  margin: 0;
}

main {
  display: block;
}

address, blockquote, dl, figure, form, iframe, p, pre, table {
  margin: 0;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

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

dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

hr {
  box-sizing: content-box;
  height: 0;
  margin: 0;
  overflow: visible;
  clear: both;
  color: inherit;
  border-top-width: 1px;
}

pre {
  font-family: monospace, monospace;
  font-size: inherit;
}

address {
  font-style: inherit;
}

a {
  color: inherit;
  text-decoration: none;
  background-color: transparent;
}

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

b, strong {
  font-weight: bolder;
}

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

small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

embed, iframe, img, object, svg {
  vertical-align: bottom;
}

button, input, optgroup, select, textarea {
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  text-align: inherit;
  text-transform: inherit;
  vertical-align: middle;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border-radius: 0;
}

[type=button], [type=reset], [type=submit], button {
  cursor: pointer;
}

[type=button]:disabled, [type=reset]:disabled, [type=submit]:disabled, button:disabled {
  cursor: default;
}

:-moz-focusring {
  outline: auto;
}

select:disabled {
  opacity: inherit;
}

option {
  padding: 0;
}

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
}

legend {
  padding: 0;
}

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

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

[type=number] {
  -webkit-appearance: textfield;
  appearance: textfield;
}

label[for] {
  cursor: pointer;
}

details {
  display: block;
}

summary {
  display: list-item;
}

[contenteditable]:focus {
  outline: auto;
}

table {
  border-collapse: collapse;
  border-color: inherit;
}

caption {
  text-align: left;
}

td, th {
  padding: 0;
  vertical-align: top;
}

th {
  font-weight: bold;
  text-align: left;
}

html {
  font-size: calc(7 * 1px + 0.625vw);
}

html.is-header-search-open, html.is-megamenu-open, html.is-modal-show, html.is-side-nav-open {
  overflow: hidden;
}

@media screen and (max-width: 1024px) {
  html {
    font-size: 1.1111111111vw;
  }
}
@media screen and (max-width: 767px) {
  html {
    font-size: 4.2666666667vw;
  }
}
/******************************************************************************

* BASIC

*******************************************************************************/
html {
  font-size: 62.5%;
}

body {
  /*height: 100%;*/
  color: var(--color-primary);
  font-size: 1rem;
  font-family: var(--font-family-sans);
  position: relative;
  font-weight: 400;
  -webkit-font-kerning: normal;
          font-kerning: normal;
  /*-moz-font-feature-settings: "palt";
  font-feature-settings: "palt";*/
  font-feature-settings: "palt";
  -ms-font-feature-settings: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1;
  /*letter-spacing: $letter-spacing-md;*/
  background: var(--color-primary);
  word-wrap: break-word;
  vertical-align: baseline;
  white-space: normal;
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  overflow-x: hidden;
  overflow-y: scroll;
  box-sizing: border-box;
  transition: var(--easeOutCubic) 1.5s;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: var(--font-weight-medium);
}

a {
  color: currentcolor;
  -webkit-tap-highlight-color: transparent;
}

a:hover {
  color: currentcolor;
  text-decoration: none;
}

a:focus {
  text-decoration: none;
}

:active, :focus, :hover, :visited, a, a:active, a:focus, a:hover, a:visited {
  text-decoration: none;
  outline: none !important;
}

blockquote {
  margin: 0;
}

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

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

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

html.is-modal-open {
  overflow: hidden;
}

html.is-modal-open body {
  overscroll-behavior: none;
}

/* =========================================================

Layout

========================================================= */
/*content*/
.l-content {
  width: 100%;
  position: relative;
  z-index: 101;
}

.l-content-body {
  position: relative;
  opacity: 0;
  transition: var(--easeOutCubic) 0.8s;
  transition-delay: 1s;
}
.is-page-loaded .l-content-body {
  opacity: 1;
}

.l-container {
  padding: calc(150/1512*100vw) var(--site-padding-md);
  position: relative;
}
@media (max-width: 767px) {
  .l-container {
    padding: calc(100/390*100vw) var(--site-padding-sm);
  }
}
.p-news .l-container {
  padding-top: 0;
}
.p-news-detail .l-container {
  padding-top: 0;
}
.l-content-header {
  padding-top: calc(210/1512*100vw);
}
@media (max-width: 767px) {
  .l-content-header {
    padding-top: calc(130/390*100vw);
  }
}

.l-content-header__inner {
  display: flex;
  padding: 0 var(--site-padding-md);
  justify-content: space-between;
}
@media (max-width: 767px) {
  .l-content-header__inner {
    padding: 0 var(--site-padding-sm);
  }
}

.l-content-header__heading {
  font-size: 4.5333333vw;
  font-family: var(--font-family-eng);
  font-weight: var(--font-weight-medium);
  margin-bottom: min(calc(80 / 1512 * 100vw), 80px);
}
@media (max-width: 767px) {
  .l-content-header__heading {
    margin-bottom: min(calc(50 / 390 * 100vw), 50px);
    font-size: 10vw;
  }
}

.l-main {
  position: relative;
  z-index: 2;
  transition: var(--easeOutCubic) 1.2s;
  width: 100%;
}

/*wrapper*/
.l-wrapper {
  position: relative;
  width: 100%;
}
.l-wrapper:after {
  position: absolute;
  width: 100%;
  height: 100%;
  background: var(--color-black);
  content: "";
  top: 0;
  left: 0;
  z-index: 11;
  opacity: 0;
  transition: var(--easeOutCubic) 0.5s;
  pointer-events: none;
}
.is-gnav-open .l-wrapper:after {
  opacity: 0.8;
}

/*@import "layout/parallax";*/
/* =========================================================

Object

========================================================= */
/* ---------------------------------------------------------

Component

--------------------------------------------------------- */
/* ---------------------------------------------------------

Project

--------------------------------------------------------- */
.p-top-kv {
  width: 100%;
  height: 100svh;
}

.p-top-kv__inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.p-top-kv__img {
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: var(--easeOutCubic) 1.2s;
}
.is-page-loaded .p-top-kv__img {
  opacity: 1;
}

.p-top-kv__img-item {
  width: 100%;
  height: 100%;
}
.p-top-kv__img-item img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.p-top-kv__ttl {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  justify-content: center;
  width: 100%;
  opacity: 0;
  transition: var(--easeOutCubic) 0.8s;
  transition-delay: 0.5s;
}
.is-page-loaded .p-top-kv__ttl {
  opacity: 1;
}
.p-top-kv__ttl img {
  width: calc(1170/1920*100vw);
  height: calc(44/1920*100vw);
}
@media (max-width: 767px) {
  .p-top-kv__ttl img {
    width: calc(284/390*100vw);
    height: calc(40/390*100vw);
  }
}

.p-top-kv__place {
  position: absolute;
  bottom: calc(45/1080*100vh);
  left: 50%;
  display: flex;
  justify-content: center;
  transform: translateX(-50%);
  width: 100%;
  opacity: 0;
  transition: var(--easeOutCubic) 0.8s;
  transition-delay: 0.5s;
}
.is-page-loaded .p-top-kv__place {
  opacity: 1;
}
@media (max-width: 767px) {
  .p-top-kv__place {
    bottom: calc(30/693*100dvh);
  }
}
.p-top-kv__place img {
  width: calc(576/1920*100vw);
  height: calc(78/1920*100vw);
}
@media (max-width: 767px) {
  .p-top-kv__place img {
    width: calc(277/390*100vw);
    height: calc(38/390*100vw);
  }
}

.p-top-kv__sns {
  position: absolute;
  top: calc(47/1080*100vh);
  right: calc(44/1920*100vw);
  opacity: 0;
  transition: var(--easeOutCubic) 0.8s;
  transition-delay: 0.5s;
}
.is-page-loaded .p-top-kv__sns {
  opacity: 1;
}
@media (max-width: 767px) {
  .p-top-kv__sns {
    top: calc(58/693*100dvh);
    right: calc(17/390*100vw);
  }
}

.p-top-kv__sns-list {
  display: flex;
  gap: 4rem;
  font-family: var(--font-family-eng);
  font-size: 2rem;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.2em;
}
@media (max-width: 767px) {
  .p-top-kv__sns-list {
    display: table;
    text-align: right;
    font-size: 1.8rem;
    line-height: 2.1rem;
  }
}
.p-top-kv__sns-list a {
  transition: var(--easeOutCubic) 0.8s;
}
.p-top-kv__sns-list a:hover {
  opacity: 0.5;
}

.p-top-kv__contact {
  position: absolute;
  bottom: calc(36/1080*100vh);
  right: calc(48/1920*100vw);
  z-index: 11;
  opacity: 0;
  transition: var(--easeOutCubic) 0.8s;
  transition-delay: 0.5s;
}
.is-page-loaded .p-top-kv__contact {
  opacity: 1;
}
@media (max-width: 767px) {
  .p-top-kv__contact {
    top: calc(21/693*100dvh);
    right: calc(17/390*100vw);
    bottom: inherit;
  }
}
.p-top-kv__contact a {
  transition: var(--easeOutCubic) 0.8s;
  font-family: var(--font-family-eng);
  font-size: 3rem;
  letter-spacing: 0.2em;
  font-weight: var(--font-weight-bold);
  transition: var(--easeOutCubic) 0.8s;
}
@media (max-width: 767px) {
  .p-top-kv__contact a {
    font-size: 1.8rem;
  }
}
.p-top-kv__contact a:hover {
  opacity: 0.5;
}

/* ---------------------------------------------------------


Utility

--------------------------------------------------------- */
.u-sp-block {
  display: none !important;
}
@media (max-width: 767px) {
  .u-sp-block {
    display: block !important;
  }
}

.u-tab-block {
  display: none !important;
}
@media (max-width: 1023px) {
  .u-tab-block {
    display: block !important;
  }
}

.u-pc-block {
  display: block !important;
}
@media (max-width: 767px) {
  .u-pc-block {
    display: none !important;
  }
}

.u-sp-inline {
  display: none !important;
}
@media (max-width: 767px) {
  .u-sp-inline {
    display: inline !important;
  }
}

.u-pc-inline {
  display: inline !important;
}
@media (max-width: 767px) {
  .u-pc-inline {
    display: none !important;
  }
}

.u-font-jp {
  font-family: var(--font-family-sans);
}

.u-c-white {
  color: var(--color-white);
}

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

.u-ta-r {
  text-align: right;
}

/* =========================================================
IMG
========================================================= */
.u-img-responsive {
  display: inline-block;
  max-width: 100%;
  height: auto;
}

/* =========================================================
ANIMATION
========================================================= */
.u-fadeup {
  opacity: 0;
  transform: translateY(6rem);
  transition: var(--easeOutCubic) 0.8s;
}
.u-fadeup.is-onscreen {
  opacity: 1;
  transform: translateY(0);
}

.ambient-glitch {
  position: relative;
  display: inline-block;
  opacity: 0;
  filter: blur(18px);
  transform: translateY(24px) scale(0.98);
}

.ambient-glitch::before,
.ambient-glitch::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}

.ambient-glitch::before {
  color: rgba(180, 220, 255, 0.8);
}

.ambient-glitch::after {
  color: rgba(255, 180, 230, 0.7);
}

.ambient-glitch.is-onscreen {
  animation: ambientGlitchIn 2s var(--easeOutCubic) forwards;
}

.ambient-glitch.is-onscreen::before {
  animation: ambientGlitchBefore 2.4s var(--easeOutCubic) forwards;
}

.ambient-glitch.is-onscreen::after {
  animation: ambientGlitchAfter 2.4s var(--easeOutCubic) forwards;
}

.is-page-loaded .l-content-header__heading.ambient-glitch {
  animation: ambientGlitchIn 2s var(--easeOutCubic) forwards;
}

.is-page-loaded .l-content-header__heading.ambient-glitch::before {
  animation: ambientGlitchBefore 2.4s var(--easeOutCubic) forwards;
}

.is-page-loaded .l-content-header__heading.ambient-glitch::after {
  animation: ambientGlitchAfter 2.4s var(--easeOutCubic) forwards;
}

@keyframes ambientGlitchIn {
  0% {
    opacity: 0;
    filter: blur(18px);
    transform: translateY(24px) scale(0.98);
    letter-spacing: 0.1em;
  }
  35% {
    opacity: 1;
    filter: blur(6px);
    transform: translateY(0) scale(1.015);
    letter-spacing: 0.02em;
  }
  42% {
    transform: translate(2px, -1px) scale(1.015);
  }
  45% {
    transform: translate(-2px, 1px) scale(1.015);
  }
  48% {
    transform: translate(0, 0) scale(1.015);
  }
  70% {
    filter: blur(1.5px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) scale(1);
  }
}
@keyframes ambientGlitchBefore {
  0%, 30% {
    opacity: 0;
    transform: translate(0, 0);
    -webkit-clip-path: inset(0 0 100% 0);
            clip-path: inset(0 0 100% 0);
  }
  36% {
    opacity: 0.3;
    transform: translate(-4px, 1px);
    -webkit-clip-path: inset(12% 0 64% 0);
            clip-path: inset(12% 0 64% 0);
  }
  42% {
    opacity: 0.15;
    transform: translate(3px, -1px);
    -webkit-clip-path: inset(48% 0 36% 0);
            clip-path: inset(48% 0 36% 0);
  }
  50%, 100% {
    opacity: 0;
    transform: translate(0, 0);
    -webkit-clip-path: inset(0 0 100% 0);
            clip-path: inset(0 0 100% 0);
  }
}
@keyframes ambientGlitchAfter {
  0%, 32% {
    opacity: 0;
    transform: translate(0, 0);
    -webkit-clip-path: inset(0 0 100% 0);
            clip-path: inset(0 0 100% 0);
  }
  38% {
    opacity: 0.3;
    transform: translate(4px, -1px);
    -webkit-clip-path: inset(62% 0 18% 0);
            clip-path: inset(62% 0 18% 0);
  }
  44% {
    opacity: 0.2;
    transform: translate(-3px, 1px);
    -webkit-clip-path: inset(24% 0 58% 0);
            clip-path: inset(24% 0 58% 0);
  }
  52%, 100% {
    opacity: 0;
    transform: translate(0, 0);
    -webkit-clip-path: inset(0 0 100% 0);
            clip-path: inset(0 0 100% 0);
  }
}
.ambient-glitch-hover {
  position: relative;
  display: inline-block;
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1);
  cursor: pointer;
}

.ambient-glitch-hover::before,
.ambient-glitch-hover::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}

.ambient-glitch-hover::before {
  color: rgba(180, 220, 255, 0.8);
}

.ambient-glitch-hover::after {
  color: rgba(255, 180, 230, 0.7);
}

/* hoverした時に発火 */
.ambient-glitch-hover:hover {
  animation: ambientGlitchHoverIn 1s var(--easeOutCubic) forwards;
}

.ambient-glitch-hover:hover::before {
  animation: ambientGlitchBefore 1.4s var(--easeOutCubic) forwards;
}

.ambient-glitch-hover:hover::after {
  animation: ambientGlitchAfter 1.4s var(--easeOutCubic) forwards;
}

@keyframes ambientGlitchHoverIn {
  0% {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) scale(1);
  }
  20% {
    filter: blur(6px);
    transform: translateY(0) scale(1.015);
  }
  42% {
    transform: translate(2px, -1px) scale(1.015);
  }
  45% {
    transform: translate(-2px, 1px) scale(1.015);
  }
  48% {
    transform: translate(0, 0) scale(1.015);
  }
  70% {
    filter: blur(1.5px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) scale(1);
  }
}