﻿@charset "utf-8";

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

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  color: #ffffff;
  background: #0d0d0f;
  font-family:
    "Noto Sans JP",
    -apple-system,
    BlinkMacSystemFont,
    "Helvetica Neue",
    "Yu Gothic",
    "Hiragino Sans",
    Arial,
    sans-serif;
  line-height: 1.6;
  overflow: hidden;
}
/* font preview
body {
  margin: 0;
  color: #ffffff;
  background: #0d0d0f;

  font-family:
    var(--site-font-family, -apple-system),
    BlinkMacSystemFont,
    "Helvetica Neue",
    "Yu Gothic",
    "Hiragino Sans",
    Arial,
    sans-serif;
  line-height: 1.6;
  overflow: hidden;
}
*/

img,
video {
  display: block;
  width: 100%;
  height: auto;
}

button {
  appearance: none;
  border: none;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

:root {
  --bg: #0d0d0f;
  --fg-soft: rgba(255, 255, 255, 1.0);

  --container-pad-x: clamp(20px, 3vw, 44px);
  --eyebrow-size: 13px;
  --title-size: clamp(32px, 6vw, 50px);
  --text-size: clamp(12px, 1.0vw, 14px);
  --section-content-width: min(720px, 100%);

  --nav-right: clamp(10px, 1.4vw, 22px);
  --nav-gap: 8px;

  --ease-main: cubic-bezier(0.22, 1, 0.36, 1);
  --dur-fast: 0.28s;
  --dur-mid: 0.6s;
  --dur-slow: 1.1s;

  --loading-z: 90;
  --opening-z: 80;
  --nav-z: 50;
  --shell-z: 10;

  --fallback-max-width: 1024px;
  --fallback-max-height: 720px;
  
  --bottom-nav-height: 100px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}


/* ===============================
   SP Blocker（1050px以下）
================================ */

/* デフォルトは非表示 */
#sp-blocker {
  position: fixed;
  inset: 0;
  z-index: 999999;

  display: none;

  background: #000;
  color: #fff;

  align-items: center;
  justify-content: center;
  text-align: center;

  padding: 20px;
}

/* 中央テキスト */
.sp-blocker__inner {
  font-size: clamp(14px, 1vw, 16px);
  letter-spacing: 0.08em;
  line-height: 1.6;
  opacity: 0.85;
}

/* 1050px以下で発動 */
/*
@media (max-width: 1050px) {
  #sp-blocker {
    display: flex;
  }
  body {
    overflow: hidden;
  }
}
*/
@media (max-width: 1050px) {
  #sp-blocker {
    display: none !important;
  }
}


/* =========================================
   About CTA
========================================= */

#page-about {
  position: relative;
}

.about-all-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 230px;
  height: 56px;
  padding: 0 34px;

  border: 1px solid rgba(255,255,255,.75);
  border-radius: 999px;

  background: rgba(0,0,0,.22);
  color: #fff;
  text-decoration: none;

  font-size: 13px;
  letter-spacing: .14em;

  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.about-all-button--pc {
  position: absolute;
  right: 10vw;
  bottom: 18vh;
  z-index: 40;
}

.about-all-button--sp {
  display: none;
}

/* SP */
@media (max-width: 1050px) {
  .about-all-button--pc {
    display: none !important;
  }

  .about-all-button--sp {
    display: flex !important;

    width: 100%;
    max-width: 300px;
    min-width: 0;
    height: 48px;

    margin: 28px 0 0;

    font-size: 11px;
    letter-spacing: .12em;
  }
}
