/*=========================
  共通
=========================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:"Yomogi",cursive;

    background:#fffdf4;

    color:#555;

    line-height:1.8;

    overflow-x:hidden;

    background-image:

    repeating-linear-gradient(

        to bottom,

        transparent 0px,

        transparent 34px,

        rgba(170,210,255,.25) 35px

    );

}

/* 赤いノート線 */

body::before{

    content:"";

    position:fixed;

    left:70px;

    top:0;

    width:3px;

    height:100%;

    background:#ff9f9f;

    opacity:.4;

    z-index:-1;

}

/*=========================
 Header
=========================*/

header{

    width:100%;

    position:sticky;

    top:0;

    z-index:999;

    background:white;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:18px 8%;

    box-shadow:0 3px 10px rgba(0,0,0,.08);

}

.logo{

    font-size:32px;

    color:#55a96b;

}

nav ul{

    list-style:none;

    display:flex;

    gap:28px;

}

nav a{

    color:#555;

    text-decoration:none;

    transition:.3s;

    font-size:18px;

}

nav a:hover{

    color:#55a96b;

}

/*=========================
 Hero
=========================*/

.hero{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:70px;

    padding:80px 8%;

}

.hero-left{

    flex:1;

}

.note{

    display:inline-block;

    background:#ffe58a;

    padding:8px 18px;

    border-radius:30px;

    margin-bottom:20px;

    transform:rotate(-2deg);

}

.hero h1{

    font-size:60px;

    color:#55a96b;

    margin-bottom:25px;

}

.hero h1 span{

    color:#ff9b52;

}

.hero p{

    font-size:20px;

    margin-bottom:35px;

}

.button{

    display:inline-block;

    padding:15px 30px;

    background:#55a96b;

    color:white;

    border-radius:40px;

    text-decoration:none;

    transition:.3s;

    box-shadow:0 6px 0 #3b7d4f;

}

.button:hover{

    transform:translateY(-3px);

}

.hero-right{

    flex:1;

    position:relative;

    text-align:center;

}

.hero-circle{

    width:320px;

    height:320px;

    background:#dff5d8;

    border-radius:50%;

    position:absolute;

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    z-index:-1;

}

.hero-right img{

    width:80%;

    max-width:380px;

}

.speech{

    display:inline-block;

    background:white;

    padding:15px 20px;

    border-radius:20px;

    margin-top:20px;

    box-shadow:0 5px 15px rgba(0,0,0,.1);

}

/*=========================
 Section
=========================*/

.section{

    padding:90px 8%;

}

.section h2{

    display:inline-block;

    background:#fff2a8;

    padding:10px 22px;

    border-radius:15px;

    transform:rotate(-2deg);

    box-shadow:4px 4px 0 #f2d564;

    color:#55a96b;

    margin-bottom:25px;

}

.section-text{

    margin-bottom:45px;

    font-size:18px;

}

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

.about-box{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:60px;

    align-items:center;

}

.about-image img{

    width:100%;

    border-radius:25px;

    box-shadow:0 8px 20px rgba(0,0,0,.1);

}

.about-text p{

    margin-bottom:18px;

}

.memo{

    margin-top:25px;

    background:#fff4be;

    border-left:8px solid #ffd447;

    padding:18px;

    border-radius:15px;

}

/*=========================
  牌カード
=========================*/

.card-area{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(230px,1fr));

    gap:35px;

    margin-top:40px;

}

.card{

    position:relative;

    background:#ffffff;

    border-radius:25px;

    padding:35px 25px;

    text-align:center;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

    transition:.3s;

}

.card:hover{

    transform:translateY(-8px) rotate(-1deg);

    box-shadow:0 15px 30px rgba(0,0,0,.15);

}

/* マスキングテープ */

.tape{

    position:absolute;

    width:90px;

    height:22px;

    background:rgba(255,233,120,.7);

    top:-10px;

    left:50%;

    transform:translateX(-50%) rotate(-4deg);

    border-radius:4px;

    opacity:.9;

}

.card img{

    width:110px;

    height:110px;

    object-fit:contain;

    margin:10px auto 20px;

    display:block;

}

.card h3{

    color:#55a96b;

    font-size:25px;

    margin-bottom:15px;

}

.card p{

    font-size:17px;

    margin-bottom:18px;

}

/* ワンポイント */

.point{

    background:#eaf9e8;

    border-radius:15px;

    padding:12px;

    font-size:15px;

    color:#4f7f59;

}

/*=========================
  ゲームの流れ
=========================*/

.flow-area{

    display:flex;

    justify-content:center;

    align-items:flex-start;

    gap:20px;

    flex-wrap:wrap;

    margin-top:40px;

}

.flow-card{

    width:210px;

    background:white;

    border-radius:25px;

    padding:30px 20px;

    text-align:center;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

    transition:.3s;

}

.flow-card:hover{

    transform:translateY(-8px);

}

.icon{

    width:70px;

    height:70px;

    border-radius:50%;

    background:#dff5d8;

    margin:0 auto 18px;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:30px;

    color:#55a96b;

}

.flow-card h3{

    color:#55a96b;

    margin-bottom:12px;

}

.arrow{

    font-size:42px;

    color:#ffb347;

    align-self:center;

}

/*=========================
  クイズ
=========================*/

.quiz-box{

    max-width:650px;

    margin:50px auto 0;

    background:#ffffff;

    padding:35px;

    border-radius:25px;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

    text-align:center;

}

.quiz-box h3{

    margin-bottom:25px;

    color:#55a96b;

}

.quiz-btn{

    display:block;

    width:100%;

    margin:12px 0;

    padding:15px;

    border:none;

    border-radius:18px;

    background:#dff5d8;

    font-family:"Yomogi",cursive;

    font-size:18px;

    cursor:pointer;

    transition:.3s;

}

.quiz-btn:hover{

    background:#c6ecc0;

}

#quiz-result{

    margin-top:20px;

    font-size:22px;

    color:#ff8a3d;

    font-weight:bold;

}

/*=========================
  Q&A
=========================*/

.qa-box{

    max-width:900px;

    margin:40px auto;

}

.qa-box details{

    background:#ffffff;

    border-radius:20px;

    margin-bottom:20px;

    padding:20px 25px;

    box-shadow:0 6px 15px rgba(0,0,0,.08);

    transition:.3s;

}

.qa-box details:hover{

    transform:translateX(5px);

}

.qa-box summary{

    cursor:pointer;

    font-size:20px;

    color:#55a96b;

    font-weight:bold;

    list-style:none;

}

.qa-box summary::-webkit-details-marker{

    display:none;

}

.qa-box summary::before{

    content:"🌼 ";

}

.qa-box details p{

    margin-top:15px;

    line-height:2;

}

/*=========================
  Footer
=========================*/

footer{

    margin-top:80px;

    background:#55a96b;

    color:white;

    text-align:center;

    padding:60px 20px;

}

footer h2{

    font-size:34px;

    margin-bottom:10px;

}

footer p{

    margin:10px 0;

}

.footer-links{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:25px;

    margin:30px 0;

}

.footer-links a{

    color:white;

    text-decoration:none;

    transition:.3s;

}

.footer-links a:hover{

    transform:rotate(-3deg);

    text-decoration:underline;

}

.copy{

    opacity:.8;

    font-size:14px;

}

/*=========================
  ふわっと表示
=========================*/

.fade{

    opacity:0;

    transform:translateY(40px);

    transition:1s;

}

.fade.show{

    opacity:1;

    transform:translateY(0);

}

/*=========================
  ゆらゆらアニメーション
=========================*/

.hero-right img{

    animation:float 3s ease-in-out infinite;

}

@keyframes float{

    0%{

        transform:translateY(0px);

    }

    50%{

        transform:translateY(-12px);

    }

    100%{

        transform:translateY(0px);

    }

}

/*=========================
  手書き風アイコン
=========================*/

.card::after{

    content:"✨";

    position:absolute;

    right:15px;

    bottom:15px;

    font-size:20px;

    transform:rotate(15deg);

}

/*=========================
  スマホ対応
=========================*/

@media(max-width:900px){

header{

    flex-direction:column;

    gap:20px;

}

nav ul{

    flex-wrap:wrap;

    justify-content:center;

}

.hero{

    flex-direction:column-reverse;

    text-align:center;

}

.hero h1{

    font-size:42px;

}

.about-box{

    grid-template-columns:1fr;

}

.flow-area{

    flex-direction:column;

    align-items:center;

}

.arrow{

    transform:rotate(90deg);

}

}

@media(max-width:600px){

.logo{

    font-size:24px;

}

.section{

    padding:70px 6%;

}

.section h2{

    font-size:30px;

}

.hero h1{

    font-size:34px;

}

.hero p{

    font-size:17px;

}

.button{

    width:100%;

    text-align:center;

}

.card{

    padding:25px;

}

.flow-card{

    width:100%;

}

.quiz-box{

    padding:25px;

}

}

/*=========================
  麻雀完成形
=========================*/


#shape .card img{

    width:120px;

    height:120px;

}




/*=========================
  役図鑑
=========================*/


.category-title{

    margin-top:60px;

    margin-bottom:25px;

    font-size:32px;

    color:#55a96b;

    background:#fff2a8;

    display:inline-block;

    padding:8px 20px;

    border-radius:20px;

    transform:rotate(-2deg);

    box-shadow:4px 4px 0 #f2d564;

}





.yaku-card{

    position:relative;

    background:white;

    border-radius:25px;

    padding:30px 25px;

    text-align:center;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

    transition:.3s;

    overflow:hidden;

}




.yaku-card:hover{

    transform:

    translateY(-10px)

    rotate(-1deg);

    box-shadow:

    0 15px 30px rgba(0,0,0,.15);

}




/* レア度 */

.rarity{

    position:absolute;

    top:15px;

    left:15px;

    background:#fff4be;

    color:#ff9b52;

    padding:8px 12px;

    border-radius:15px;

    font-size:14px;

    line-height:1.4;

    font-weight:bold;

}




.yaku-card img{

    width:130px;

    height:130px;

    object-fit:contain;

    margin:35px auto 15px;

}





.yaku-card h3{

    color:#55a96b;

    font-size:28px;

    margin-bottom:20px;

}





/* ステータス */

.status{

    background:#f8fff5;

    border-radius:18px;

    padding:15px;

    margin:20px 0;

    text-align:left;

}





.status p{

    display:flex;

    justify-content:space-between;

    margin:8px 0;

    font-size:15px;

}





.status span{

    color:#ffb347;

    font-weight:bold;

    letter-spacing:2px;

}





.yaku-card .point{

    margin-top:20px;

    background:#eaf9e8;

    color:#4f7f59;

    border-radius:15px;

    padding:12px;

}





/* 図鑑カードのキラキラ */

.yaku-card::after{

    content:"✨";

    position:absolute;

    right:15px;

    bottom:15px;

    font-size:22px;

    transform:rotate(15deg);

}





/* 役満カード */

.yaku-card .rarity{

    background:#ffe0a8;

    color:#e67e22;

}




/*=========================
  詳細感アップ
=========================*/


.yaku-card p{

    font-size:16px;

    line-height:1.8;

}




/*=========================
  スマホ対応
=========================*/


@media(max-width:600px){


.category-title{

    font-size:26px;

}



.yaku-card{

    padding:25px 20px;

}


.yaku-card img{

    width:110px;

    height:110px;

}


.status span{

    letter-spacing:1px;

    font-size:14px;

}


}

/*=========================
  役図鑑アニメーション
=========================*/


.yaku-card{

    opacity:0;

    transform:translateY(40px);

}



.yaku-card.show-yaku{

    opacity:1;

    transform:translateY(0);

}



.yaku-card.selected{

    transform:

    scale(1.03);

    box-shadow:

    0 18px 35px rgba(0,0,0,.18);

}

/*=========================
  麻雀のゴール
=========================*/


#goal .card{

    background:#fff;

}



#goal .card img{

    width:120px;

    height:120px;

    object-fit:contain;

}




#goal .card h3{

    color:#55a96b;

}





/*=========================
  麻雀用語辞典
=========================*/


.word-card{

    transition:.3s;

}



.word-card:hover{

    transform:

    translateY(-8px)

    rotate(-1deg);

}




.word-card img{

    width:100px;

    height:100px;

    object-fit:contain;

}




.word-card .point{

    margin-top:15px;

}





/*=========================
  初心者診断
=========================*/


.diagnosis-box{


    max-width:700px;

    margin:50px auto 0;

    background:white;

    padding:40px;

    border-radius:30px;

    text-align:center;

    box-shadow:

    0 8px 20px rgba(0,0,0,.08);


}





.diagnosis-box h3{


    color:#55a96b;

    font-size:24px;

    margin-bottom:30px;


}





.diagnosis-btn{


    display:block;

    width:100%;

    margin:15px 0;

    padding:18px;


    border:none;

    border-radius:25px;


    background:#eaf9e8;


    font-family:"Yomogi",cursive;


    font-size:20px;


    cursor:pointer;


    transition:.3s;


}





.diagnosis-btn:hover{


    background:#d3f0ce;


    transform:

    translateY(-5px);


}





#diagnosis-result{


    margin-top:30px;


    font-size:22px;


    color:#ff9b52;


    font-weight:bold;


    line-height:2;


}





/*=========================
  診断結果カード
=========================*/


.result-card{


    margin-top:25px;


    background:#fff4be;


    border-radius:20px;


    padding:25px;


    animation:

    resultShow .5s ease;


}





@keyframes resultShow{


    from{


        opacity:0;


        transform:translateY(20px);


    }


    to{


        opacity:1;


        transform:translateY(0);


    }


}





/*=========================
  スマホ対応
=========================*/


@media(max-width:600px){



.diagnosis-box{


    padding:25px 20px;


}




.diagnosis-btn{


    font-size:17px;


}


}
