@charset "utf-8";

/*--------------------------------------------------
  reset css
--------------------------------------------------*/
/* margin, paddingの幅を考慮せずに幅指定を可能にする */
* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -o-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }
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, menu, nav, output, ruby, section, summary, time, mark, audio, video { 
  padding: 0; margin: 0; border: 0; font-style:normal; font-weight: normal; font-size: 97.5%; vertical-align: baseline;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
html {
  font-family: "Noto Serif", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "ＭＳ ゴシック", sans-serif;
}
h1, h2, h3, h4, h5, h6 {
  /*font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;*/
  font-family: "Noto Serif JP", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "ＭＳ ゴシック", sans-serif;
}
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
input, textarea { padding: 0; margin: 0; }
input[type="button"],input[type="submit"] { -webkit-appearance: none; }
ol, ul{ list-style:none; }
table{ border-collapse: collapse; border-spacing:0; width: 100%; }
caption, th{ text-align: left; }
a:focus { outline:none; }
img { width: 100%; height: auto; display: block; vertical-align: bottom; }
.inline_block { display: inline-block; *display: inline; *zoom: 1; }
/* 入力フォームのパーツデザイン */
input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"],
input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"],
input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"],
select, textarea, .field {
  padding: 0 14px; display: block; height: 44px; line-height: 44px;
  vertical-align: middle; box-shadow: none; border: 0;
  width: 100%; background-color: #fff; font-size: 16px; border: 1px solid #ccc;
  -webkit-transition: background-color 0.24s ease-in-out;
  transition: background-color 0.24s ease-in-out;
}
input::-webkit-input-placeholder, input:-ms-input-placeholder, input::-moz-placeholder {
  color: #ccc; font-weight: normal;
}
select {
  -webkit-appearance: none;
  /* 1 */
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAHCAYAAADXhRcnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOEZCMjYxMEYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOEZCMjYxMUYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ4RkIyNjBFRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ4RkIyNjBGRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Vxkp9gAAAI9JREFUeNpidHFxucHAwKAOxE+AmJmBMPgLxDJAfJMFSKwD4kqoAClgA+P///8ZXF1dPaCGcBKh6QcQB+3evXs7WDMIAA2QB1I7gFgDj0aQFz2BGh+AOEwwUaDAQyBlCMR7cGjcC5KHaQQBuM3IAOiKTiBVhiTUDdRUhq4Oq2aoAelAahIQ5wM1zsCmBiDAADhYMJXVZ9u9AAAAAElFTkSuQmCC);
  background-repeat: no-repeat;
  background-position: 97.5% center;
}


/*--------------------------------------------------
  reset css
--------------------------------------------------*/
/* PC対応 */
@media screen and (min-width: 781px) {
  .pc_view { display:block; }
  .sp_view { display:none; }
}

/* スマートフォン対応 */
@media screen and (max-width: 780px) {
  .pc_view { display:none; }
  .sp_view { display:block; }
}

/*--------------------------------------------------
  リンク
--------------------------------------------------*/
/*【注意】順番を入れ替えると正常に動作しなくなります*/
a {
  color: #707070; text-decoration: none; -webkit-transition: 0.3s; -moz-transition: 0.3s;
  -o-transition: 0.3s; -ms-transition: 0.3s; transition: 0.3s;
}
a:visited { color: #1A1311; }
a:hover { color: #1A1311; /*background: rgba(255,255,255,0.8);*/ opacity:0.8; -moz-opacity:0.8; filter: alpha(opacity=80); }
a:active { color: #1A1311; }



/*--------------------------------------------------
  画像
--------------------------------------------------*/


/*--------------------------------------------------
  装飾
--------------------------------------------------*/
/* margin */

/* padding */

/* 位置揃え */

/* フォント */
html, body { width: 100%; height: 100%; color: #000; background-color: #FFF; line-height: 1.6;  }
html { font-size:62.5%; }   /* ！！！消去厳禁！！！ */
body { font-size: 1.6rem; }
.bold { font-weight: bold; }
em { color: #586370; }
strong, b { font-weight: 600; }
p { margin: 0 0 1em 0; }
.underline { border-bottom: 2px solid; padding-bottom: 0.1em; }
a.underline { color: #5B97E1; }
.ttl_second { font-family: 'Lato', sans-serif; }
.ttl_centerline { position: relative; text-align: center; }
.ttl_centerline::before { content: ''; display: block; width: 100%; border-bottom: 1px solid #05428E; position: absolute; top: 50%; z-index: 0; }
.ttl_centerline span { background: #fff; padding: 0 1em; color: #05428E; font-size: 5.0rem; font-weight: bold; font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN"; position: relative; z-index: 1; }


.mb10 { margin-bottom: 10px!important; }
.mb20 { margin-bottom: 20px!important; }
.mb30 { margin-bottom: 30px!important; }
.mb40 { margin-bottom: 40px!important; }
.mb50 { margin-bottom: 50px!important; }
.mb60 { margin-bottom: 60px!important; }
.mb70 { margin-bottom: 70px!important; }
.mb80 { margin-bottom: 80px!important; }
.mb90 { margin-bottom: 90px!important; }
.mb100 { margin-bottom: 100px!important; }

.pl1em { padding-left: 1em!important; }
.pl2em { padding-left: 2em!important; }
.pl10 { padding-left: 10px!important; }
.pl20 { padding-left: 20px!important; }
.pl30 { padding-left: 30px!important; }
.pl40 { padding-left: 40px!important; }
.pl50 { padding-left: 50px!important; }
.pl60 { padding-left: 60px!important; }
.pl70 { padding-left: 70px!important; }
.pl80 { padding-left: 80px!important; }
.pl90 { padding-left: 90px!important; }
.pl100 { padding-left: 100px!important; }

.w50 { width: 50%!important; }
.w100 { width: 100%!important; }

/* PC, TAB, SP共通 */
/* clearfixを使用する場合は、親要素のclassに「cf」を追加する */
.cf:after { content: ""; clear: both; display: block; }


.flex { display: flex; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; justify-content: space-between; align-items: stretch; }

/* 矢印アイコン */
.arrow { position: relative; display: inline-block; padding: 0 16px 0 0; vertical-align: middle; text-decoration: none; }
.arrow::before, .arrow::after {position: absolute;top: 0;bottom: 0;right: 0;margin: auto;content: "";vertical-align: middle;}
.maru::after { right: 5px; width: 3px; height: 3.2px; border-top: 1px solid #fff; border-right: 1px solid #fff; -webkit-transform: rotate(45deg); transform: rotate(45deg); }
.maru:hover::after { border-color: #fff; }

a.blank[target="_blank"] {
  &:after {
    content: '(外部リンク)';
    display: inline-block;
/*
    background: url(img/link_blank.svg);
    background-size: 100%;
    margin: 0 0.25rem;
    width: 20px;
    height: 20px;
*/
  }
}

  /* font-family */
  .mincho { font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; }
  .gothic { font-family: "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "ＭＳ ゴシック", sans-serif; }
  .marugo { font-family:"ヒラギノ丸ゴ Pro W4","ヒラギノ丸ゴ Pro","Hiragino Maru Gothic Pro","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","HG丸ｺﾞｼｯｸM-PRO","HGMaruGothicMPRO"; }
  .meiryo { font-family: "メイリオ", "Meiryo", sans-serif; }
  .italic { 
    -webkit-transform: skewX(-15deg);
    -moz-transform: skewX(-15deg);
    -o-transform: skewX(-15deg);
    transform: skewX(-15deg);
    -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1, M12=-0.26794919243112214, M21=0, M22=1, SizingMethod='auto expand')";
  }
  .zenmaru { font-family: 'Zen Maru Gothic', serif; }
  .biz-udpgothic-regular {
    font-family: "BIZ UDPGothic", sans-serif;
    font-weight: 400;
    font-style: normal;
  }
  
  .biz-udpgothic-bold {
    font-family: "BIZ UDPGothic", sans-serif;
    font-weight: 700;
    font-style: normal;
  }
  

  .disc { list-style: disc; padding: 0 0 0 1em; }
  .disc li { margin-left: 0.5em; }
  .disc li::marker { font-size: 170%; }
  .disc li span { color: #E6305B; font-weight: bold; }
  .decimal { list-style: decimal; padding: 0 0 0 1em; }
  .decimal li { margin-left: 0.5em; }
  .decimal li::marker {  }
  .decimal li span { color: #E6305B; font-weight: bold; }
  .num { counter-reset: number 0; }
  .num li { margin-left: 1.8em; }
  .num li::before { counter-increment: number 1; content: "" counter(number) "　 "; margin: 0 0em 0 -1.8em; }

  .mac .num li,
  .iphone .num li,
  .ipad .num li {
    width: calc(100% - 3.6em);
  }
  .mac .num li::before,
  .iphone .num li::before,
  .ipad .num li::before {
    margin: 0 0 0 -1.8em;
  }

  .circle { list-style: circle; padding: 0 0 0 1.5em; }
  .diamond { list-style: none; padding: 0 0 0 2.4em; }
  .diamond li { margin-bottom: 10px; }
  .diamond li::before { content:'◆ '; margin-left: -1.4em; }
  .grecaptcha-badge { display: none!important; }


/*--------------------------------------------------
  ローディングロゴアニメーション
  --------------------------------------------------*/
  /* Loading背景画面設定　*/
  #splash {
    /*fixedで全面に固定*/
      position: fixed;
      width: 100%;
      height: 100%;
      z-index: 999;
      background:#fff;
      text-align:center;
      top: 0;
    }
    
    /* Loading画像中央配置　*/
    #splash_logo {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      text-align: center;
    }
    
    /* Loading アイコンの大きさ設定　*/
    #splash_logo img {
      width:100px;
      margin: 0 auto 10px;
    }
    #splash_logo .image {  }
    #splash_logo .name {  }
    
    /* fadeUpをするアイコンの動き */
    #splash .fadeUp{
    animation-name: fadeUpAnime;
    animation-duration:0.5s;
    animation-fill-mode:forwards;
    opacity: 0;
    }
    
    @keyframes fadeUpAnime{
      from {
        opacity: 0;
      transform: translateY(0);
      }
    
      to {
        opacity: 1;
      transform: translateY(0);
      }
    }
    
    
      /*--------------------------------------------------
      エフェクト
      --------------------------------------------------*/
    /* 上からフェードイン */
    .slide-top {
      opacity: 0;
      transform: translate(0, -20px);
      transition: all 1s ease-out;
     }
    
    /* 下からフェードイン */
    .slide-bottom {
      opacity: 0;
      transform: translate(0, 20px);
      transition: all 1s ease-out;
     }
    
     /* 左からフェードイン */
    .slide-left {
      opacity: 0;
      transform: translate(-20px, 0);
      transition: all 1s ease-out;
     }
    
    /* 右からフェードイン */
    .slide-right {
      opacity: 0;
      transform: translate(20px, 0);
      transition: all 1s ease-out;
     }
    
    
     /*--------------------------------------------------
      animetion
      --------------------------------------------------*/
    .anim { opacity: 0; }
    /* フェードイン */
    .fadein.is-animated {
      animation: fadeIn 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1 forwards;
    }
    
    @keyframes fadeIn {
      0% {
        opacity: 0;
      }
      100% {
        opacity: 1;
      }
    }
    
    /* スライドイン */
    .slidein.is-animated {
      animation: slideIn 1s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards;
    }
    
    @keyframes slideIn {
      0% {
        transform: translateX(180px);
        opacity: 0;
      }
      100% {
        transform: translateX(0);
      }
      40%,100% {
        opacity: 1;
      }
    }
    
    /* ズームイン */
    .zoomin.is-animated {
      animation: zoomIn 0.8s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards;
    }
    
    @keyframes zoomIn {
      0% {
        transform: scale(0.8);
        opacity: 0;
      }
      100% {
        opacity: 1;
        transform: scale(1);
      }
    }
    
    /* ぽよよん */
    .poyoyon.is-animated {
      animation: poyoyon 0.5s cubic-bezier(0.12, 0, 0.39, 0) 1 forwards;
    }
    
    @keyframes poyoyon {
      0% {
        transform: translateX(140px);
        opacity: 0;
      }
      50% {
        transform: translateX(0);
      }
      65% {
        transform: translateX(30px);
      }
      100% {
        transform: translateX(0);
      }
      20%,100% {
        opacity: 1;
      }
    }
    
    /* ぽよよん2 */
    .poyoyon2.is-animated {
      animation: poyoyon2 1s ease-in-out 1 forwards;
    }
    
    @keyframes poyoyon2 {
      0%  {
        transform: scale(1.0, 1.0) translate(0, 0);
      }
      15% {
        transform: scale(0.98, 0.9) translate(0, 5px);
      }
      30% {
        transform: scale(1.02, 1.0) translate(0, 8px);
      }
      50% {transform: scale(0.98, 1.05) translate(0, -8px);
      }
      70% {
        transform: scale(1.0, 0.9) translate(0, 5px);
      }
      100% {
        transform: scale(1.0, 1.0) translate(0, 0);
      }
      0%, 100% {
        opacity: 1;
      }
    }
    
    /* ぽよよん3 */
    .poyoyon3 {
      animation: poyoyon3 2.5s infinite;
      opacity: 1;
    }
    @keyframes poyoyon3 {
      0%, 40% {
        transform: skew(0deg, 0deg);
      }
      5% {
        transform: skew(5deg, 5deg);
      }
      10% {
        transform: skew(-4deg, -4deg);
      }
      15% {
        transform: skew(3deg, 3deg);
      }
      20% {
        transform: skew(-2deg, -2deg);
      }
      25% {
        transform: skew(1deg, 1deg);
      }
      30% {
        transform: skew(-0.6deg, -0.6deg);
      }
      35% {
        transform: skew(0.3deg, 0.3deg);
      }
    }
    
    
    /* ポップアップ */
    .popup.is-animated {
      animation: popup 0.6s cubic-bezier(0.22, 1, 0.36, 1) 1 forwards;
    }
    
    @keyframes popup {
      0% {
        transform: translateY(40px) scale(0.8);
        opacity: 0;
      }
      100% {
        transform: translateY(0) scale(1.0);
      }
      80%, 100% {
        opacity: 1;
      }
    }
    
    /* どくどく */
    .poyopoyo {
      animation: poyopoyo 2s ease-out infinite;
      opacity: 1;
    }
    @keyframes poyopoyo {
      0%, 40%, 60%, 80% {
        transform: scale(1.0);
      }
      50%, 70% {
        transform: scale(0.95);
      }
    }
    
    /* ななめから出てくる */
    .slide-skew.is-animated {
      animation: slide-skew 0.4s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards;
    }
    
    @keyframes slide-skew {
      0% {
        transform: translate(180px,30px);
        opacity: 0;
      }
      100% {
        transform: translate(0,0);
      }
      20%,100% {
        opacity: 1;
      }
    }
    
    
    /* きらん */
    .kiran {
      opacity: 1;
      overflow: hidden;
      position: relative;
      cursor: pointer;
    }
    .kiran::before {
      background-color: #fff;
      content: "";
      display: block;
      position: absolute;
      top: -100px;
      left: 0;
      width: 30px;
      height: 100%;
      opacity: 0;
      transition: cubic-bezier(0.32, 0, 0.67, 0);
    }
    .kiran:hover::before {
      animation: kiran 0.5s linear 1;
    }
    
    @keyframes kiran {
      0% {
        transform: scale(2) rotate(45deg);
        opacity: 0;
      }
      20% {
        transform: scale(20) rotate(45deg);
        opacity: 0.6;
      }
      40% {
        transform: scale(30) rotate(45deg);
        opacity: 0.4;
      }
      80% {
        transform: scale(45) rotate(45deg);
        opacity: 0.2;
      }
      100% {
        transform: scale(50) rotate(45deg);
        opacity: 0;
      }
    }
    
    /* 背景色が流れてくる */
    .bg .bg-wrap {
      position: relative;
      display: inline-block;
      margin-top: 5px;
    }
    .bg.is-animated .bg-wrap::before {
      animation: bg 2.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
      background: linear-gradient(to right, #362ae0 0%,#3b79cc 50%,#42d3ed 100%);
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      transform-origin: left center;
    }
    .bg .bg-wrap .inn {
      color: #fff;
      display: inline-block;
      font-size: 36px;
      font-weight: bold;
      padding: 5px 15px;
      position: relative;
      z-index: 1;
    }
    
    @keyframes bg {
      0% {
        opacity: 0;
        transform: scaleX(0) translateX(-5%);
      }
      30% {
        transform: scaleX(1) translateX(0);
      }
      100% {
        transform: scaleX(1) translateX(0);
      }
      30%, 100% {
        opacity: 1;
      }
    }
    
    /* 文字がぬるりと現れる */
    .matrix .bg-wrap,
    .matrix .bg-wrap .inn {
      display: block;
    }
    
    .matrix .bg-wrap {
      overflow: hidden;
      opacity: 0;
    }
    
    .matrix .bg-wrap + .bg-wrap {
      margin-top: 10px;
    }
    
    .matrix .bg-wrap .inn.large {
      font-size: 36px;
      font-weight: bold;
    }
    .matrix .bg-wrap .inn.small {
      font-size: 15px;
    }
    
    .matrix .bg-wrap .inn {
      opacity: 0;
      transform: matrix(1, 0, 0, 1, 0, 100);
      transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1);
    }
    
    .matrix.is-animated .bg-wrap {
      opacity: 1;
    }
    
    .matrix.is-animated .bg-wrap .inn {
      opacity: 1;
      transform: matrix(1, 0, 0, 1, 0, 0);
    }
    
    /* 背景色が消えてから表示されるテキスト */
    .mask-bg {
      color: transparent;
      display: inline-block;
      font-size: 36px;
      font-weight: bold;
      overflow: hidden;
      position: relative;
      transition: color 0ms 450ms;
    }
    .mask-bg::after {
      background: linear-gradient(to right, #362ae0 0%,#3b79cc 50%,#42d3ed 100%);
      bottom: 0;
      content: '';
      display: block;
      left: 0;
      position: absolute;
      right: 0;
      top: 0;
      transform: translate(0, 100%);
    }
    
    .mask-bg.is-animated {
      color: #362ae0;
    }
    .mask-bg.is-animated::after {
      animation: mask-bg 1.2s cubic-bezier(0.8, 0, 0.170, 1);
    }
    
    @keyframes mask-bg {
      0% {
        transform: translate(0, 101%)
      }
      40%, 60% {
        transform: translate(0, 0%)
      }
      100% {
        transform: translate(0, -100%)
      }
    }
    
    
    /* 線が伸びる */
    .line {
      display: block;
      position: relative;
      margin-top: 20px;
    }
    .line::after {
      background: linear-gradient(to right, #362ae0 0%,#3b79cc 50%,#42d3ed 100%);
      content: '';
      display: block;
      height: 1px;
      width: 0;
      transform: translateX(-50%);
      transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1);
      position: absolute;
      bottom: 0;
      left: 50%;
    }
    .line.is-animated::after {
      width: 100%;
    }
    
    
    /* フェードアップ */
    .fadeup.is-animated {
      animation: fadeup 1s cubic-bezier(0.33, 1, 0.68, 1) 1 forwards;
    }
    
    @keyframes fadeup {
      0% {
        transform: translateY(30px);
        opacity: 0;
      }
      80% {
        opacity: 1;
      }
      100% {
        opacity: 1;
        transform: translateY(0);
      }
    }
    
    /* ボーダーが緩やかにつく */
    .stroke {
      background: #f0f0f0;
      max-width: 400px;
      height: 250px;
      position: relative;
    }
    
    .stroke .border {
      content: "";
      position: absolute;
      opacity: 0;
    }
    .stroke .border.top,
    .stroke .border.bottom {
      width: calc(100% - 20px);
    }
    .stroke .border.top {
      border-top: 3px solid #362ae0;
      right: 0;
      top: 0;
    }
    .stroke .border.bottom {
      border-bottom: 3px solid #362ae0;
      left: 0;
      bottom: 0;
    }
    
    .stroke .border.right,
    .stroke .border.left {
      height: calc(100% - 20px);
    }
    .stroke .border.right {
      border-right: 3px solid #362ae0;
      right: 0;
      top: 0;
    }
    .stroke .border.left {
      border-left: 3px solid #362ae0;
      left: 0;
      bottom: 0;
    }
    
    .stroke.is-animated .border {
      opacity: 1;
    }
    
    .stroke.is-animated .border.top,
    .stroke.is-animated .border.bottom {
      animation: stroke-width 1.8s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .stroke.is-animated .border.right,
    .stroke.is-animated .border.left {
      animation: stroke-height 1.8s cubic-bezier(0.22, 1, 0.36, 1);
    }
    
    @keyframes stroke-width {
      0% {
        width: 0;
        opacity: 1;
      }
      100% {
        width: calc(100% - 20px);
        opacity: 1;
      }
    }
    
    @keyframes stroke-height {
      0% {
        height: 0;
        opacity: 1;
      }
      100% {
        height: calc(100% - 20px);
        opacity: 1;
      }
    }
    
    /* 文字が滑らかに表示される */
    .smooth {
      clip-path: inset(0 100% 0 0);
      display: inline-block;
      font-size: 36px;
      font-weight: bold;
      transition: 1.4s cubic-bezier(0.37, 0, 0.63, 1);
      transition-property: clip-path;
      line-height: 1;
      height: 40px;
      margin-top: 15px;
    }
    .smooth.is-animated {
      clip-path: inset(0);
    }
    
    /* ふわふわ */
    .fuwafuwa {
      animation: fuwafuwa 3s infinite ease-in-out .8s alternate;
      background: url(../img/ico-apple.svg) no-repeat center center / 60px auto;
      display: inline-block;
      transition: 1.5s ease-in-out;
      width: 70px;
      height: 70px;
      margin-top: 15px;
    }
    
    @keyframes fuwafuwa {
      0% {
        transform:translate(0, 0) rotate(-7deg);
      }
      50% {
        transform:translate(0, -7px) rotate(0deg);
      }
      100% {
        transform:translate(0, 0) rotate(7deg);
      }
    }
    
    /* ゆったりスクロールボタン */
    
    .scroll {
      display: inline-block;
      padding-top: 70px;
      position: relative;
    }
    .scroll::before {
      animation: scroll 3.5s infinite;
      border: solid #000;
      border-width: 0 0 1px 1px;
      content: "";
      display: inline-block;
      margin: auto;
      position: absolute;
      top: 0;
      right: 0;
      left: 0;
      transform: rotate(-45deg);
      width: 20px;
      height: 20px;
    }
    @keyframes scroll {
      0% {
        transform: rotate(-45deg) translate(0, 0);
      }
      80% {
        transform: rotate(-45deg) translate(-30px, 30px);
      }
      0%, 80%, 100% {
        opacity: 0;
      }
      40% {
        opacity: 1;
      }
    }
    
    /* くるくる回りながら出現 */
    .kurukuru {
      background: linear-gradient(to right, #362ae0 0%,#3b79cc 50%,#42d3ed 100%);
      width: 50px;
      height: 50px;
      opacity: 0;
      padding-bottom: 40px;
    }
    .kurukuru.is-animated {
      animation: kurukuru 1.4s ease-out;
      opacity: 1;
    }
    @keyframes kurukuru {
      0%{
        transform: rotateY(0) translateY(40px);
        opacity: 0;
      }
      100%{
        transform: rotateY(360deg) translateY(0);
        opacity: 1;
      }
    }
    
    
    
    
    