@charset "UTF-8";

#video {
    margin: auto;
    max-width: 600px;
}

.video-description {
    text-align: center;
    max-width: 700px;
    margin: auto;
    padding-top: 60px;
    padding-bottom: 30px;
}

.video-description h2 {
    font-size: 14px;
    color: #555555;
    font-weight: 100;
}

.video-description p {
    font-size: 13px;
}
 
.video {
    position:relative;
    width: 100%;
    max-width: 560px;
    margin: auto;
}
 
.video::before {
    content: "";
    display: block;
    width: 100%;
    padding-top: 56.25%;
}
 
.video iframe{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}

#video h1 {
  display: block;
  width: 100%;
  text-align: center;
}

@media (max-width: 480px){
  #video { padding: 0 16px; }
}


.loader-wrap{
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.6); 
  backdrop-filter: blur(2px);        /* 対応ブラウザで軽くぼかす */
  z-index: 9999;
  transition: opacity .25s ease;
}
.loader-wrap.is-hidden{
  opacity: 0;
  pointer-events: none;
}

/* 中央に置くためのラッパ */
.loader-inner{
  display: inline-block;
}


.self-building-square-spinner, .self-building-square-spinner * {
  box-sizing: border-box;
}
.self-building-square-spinner {
  width: 40px;
  height: 40px;
}

.self-building-square-spinner .square {
  width: 10px;
  height: 10px;
  margin-right: calc(10px / 3);
  margin-top: calc(10px / 3);
  background: #555555;
  float: left;
  position: relative;
  opacity: 0;
  animation: self-building-square-spinner 6s infinite;
}
.self-building-square-spinner .square:nth-child(1){ animation-delay: calc(300ms * 6); }
.self-building-square-spinner .square:nth-child(2){ animation-delay: calc(300ms * 7); }
.self-building-square-spinner .square:nth-child(3){ animation-delay: calc(300ms * 8); }
.self-building-square-spinner .square:nth-child(4){ animation-delay: calc(300ms * 3); }
.self-building-square-spinner .square:nth-child(5){ animation-delay: calc(300ms * 4); }
.self-building-square-spinner .square:nth-child(6){ animation-delay: calc(300ms * 5); }
.self-building-square-spinner .square:nth-child(7){ animation-delay: calc(300ms * 0); }
.self-building-square-spinner .square:nth-child(8){ animation-delay: calc(300ms * 1); }
.self-building-square-spinner .square:nth-child(9){ animation-delay: calc(300ms * 2); }
.self-building-square-spinner .clear{ clear: both; }

@keyframes self-building-square-spinner {
  0%   { opacity: 0;   transform: translateY(-6px); }
  5%   { opacity: 1;   transform: translateY(0); }
  50.9%{ opacity: 1;   transform: translateY(0); }
  55.9%{ opacity: 0;   transform: translateY(-6px); }
}


:root{
  --spinner-size: 40px;
  --square: 10px;
}
@media (max-width: 480px){
  :root{
    --spinner-size: 28px;
    --square: 7px;
  }
}
.loader-wrap{
  position: fixed;
  inset: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px); /* iOS Safari */
  z-index: 9999;
  transition: opacity .25s ease;
}
.loader-wrap.is-hidden{ opacity: 0; pointer-events: none; }

/* スピナー本体 */
.self-building-square-spinner{ width: var(--spinner-size); height: var(--spinner-size); }
.self-building-square-spinner, .self-building-square-spinner * { box-sizing: border-box; }
.self-building-square-spinner .square{
  width: var(--square);
  height: var(--square);
  margin-right: calc(var(--square) / 3);
  margin-top: calc(var(--square) / 3);
  background: #555555;
  float: left;
  position: relative;
  opacity: 0;
  animation: self-building-square-spinner 6s infinite;
}
.self-building-square-spinner .square:nth-child(1){ animation-delay: calc(300ms * 6); }
.self-building-square-spinner .square:nth-child(2){ animation-delay: calc(300ms * 7); }
.self-building-square-spinner .square:nth-child(3){ animation-delay: calc(300ms * 8); }
.self-building-square-spinner .square:nth-child(4){ animation-delay: calc(300ms * 3); }
.self-building-square-spinner .square:nth-child(5){ animation-delay: calc(300ms * 4); }
.self-building-square-spinner .square:nth-child(6){ animation-delay: calc(300ms * 5); }
.self-building-square-spinner .square:nth-child(7){ animation-delay: calc(300ms * 0); }
.self-building-square-spinner .square:nth-child(8){ animation-delay: calc(300ms * 1); }
.self-building-square-spinner .square:nth-child(9){ animation-delay: calc(300ms * 2); }
.self-building-square-spinner .clear{ clear: both; }
@keyframes self-building-square-spinner{
  0%{ opacity:0; transform: translateY(-6px); }
  5%{ opacity:1; transform: translateY(0); }
  50.9%{ opacity:1; transform: translateY(0); }
  55.9%{ opacity:0; transform: translateY(-6px); }
}

/* ローディング中はスクロール固定*/
body.loading{ overflow: hidden; touch-action: none; }