/* --------------------
   Reset
-------------------- */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:'Inter','Noto Sans JP',sans-serif;
    background:#f7f6f2;
    color:#111;
    line-height:1.9;

}

/* --------------------
Header
-------------------- */

header{

    position:fixed;
    top:0;
    left:0;

    width:100%;

    padding:32px 6%;

    display:flex;
    justify-content:space-between;
    align-items:flex-start;

    z-index:100;

    background:rgba(247,246,242,.75);
    backdrop-filter:blur(12px);

}

.logo{

    text-decoration:none;
    color:#111;

    font-size:20px;
    line-height:1.3;
    font-weight:700;

}

nav{

    display:flex;
    gap:40px;

}

nav a{

    text-decoration:none;
    color:#111;

    font-size:15px;
    transition:.3s;

}

nav a:hover{

    opacity:.45;

}


/* --------------------
Section
-------------------- */

section{

    display:grid;

    grid-template-columns:180px 1fr;

    gap:80px;

    padding:180px 8%;

}

.section-number{

    font-size:90px;

    font-weight:700;

    color:#ddd;

    line-height:1;

}

.section-content h2{

    font-size:64px;

    margin-bottom:60px;

    font-weight:700;

}

.section-content h3{

    font-size:34px;

    margin-bottom:30px;

}

.section-content p{

    max-width:760px;

    margin-bottom:28px;

    font-size:17px;

}

/* --------------------
Works
-------------------- */

.work{

    display:flex;

    justify-content:space-between;

    align-items:center;

    text-decoration:none;

    color:#111;

    padding:38px 0;

    border-bottom:1px solid #ddd;

    font-size:28px;

    transition:.35s;

}

.work:hover{

    padding-left:25px;

}

/* --------------------
Skills
-------------------- */

.skills ul{

    list-style:none;

}

.skills li{

    font-size:42px;

    padding:20px 0;

    border-bottom:1px solid #ddd;

}

/* --------------------
Contact
-------------------- */

.contact{

    display:block;

    text-align:center;

    background:#d9d7d5;

}

.contact h2{

    font-size:clamp(50px,8vw,120px);

    margin-bottom:50px;

    line-height:1;

}

.contact p{

    font-size:20px;

    line-height:2.2;

}

/* --------------------
Footer
-------------------- */

footer{

    padding:60px;

    text-align:center;

    background:#d9d7d5;

    font-size:14px;

    color:#777;

}

/* --------------------
Responsive
-------------------- */

@media(max-width:900px){

header{

    flex-direction:column;
    gap:20px;

}

nav{

    gap:20px;
    flex-wrap:wrap;

}

section{

    grid-template-columns:1fr;

    gap:40px;

    padding:120px 8%;

}

.section-number{

    font-size:60px;

}

.section-content h2{

    font-size:42px;

}

.section-content h3{

    font-size:28px;

}

.work{

    font-size:22px;

}

.skills li{

    font-size:30px;

}

@media(max-width:900px){

    .hero h1{

        font-size:70px;

        line-height:.9;

    }

}

.hero-text{

    bottom:40px;

}

}
/* ==========================
fade
========================== */

.fade{

    opacity:0;

    transform:translateY(60px);

    transition:1.2s;

}

.show{

    opacity:1;

    transform:translateY(0);

}


/* ==========================
Header Scroll
========================== */

header{

    transition:.5s;

}

header.active{

    padding:24px 6%;

    background:rgba(247,246,242,.95);

}


/* =====================
Hero
===================== */

.hero{

    position:relative;

    height:72vh;

    display:flex;

    align-items:flex-start;

    padding:120px 6% 0;

    background:#d9d7d5;

    overflow:hidden;

}

/* ----------文字---------- */

.hero-text{

    position:relative;

    z-index:10;

    width:55%;

    margin-top:20px;

     margin-left:60px;

}

.hero h1{

       font-size:clamp(120px,10vw,180px);

    line-height:.88;


}

/* ----------画像---------- */

.hero-image{

    position:absolute;

    right:10%;

    top:58%;

    transform:translateY(-50%);

    width:65%;

    z-index:1;

}
.hero-image::before{

    content:"";

    position:absolute;

    left:0;
    top:0;

    width:750px;
    height:200%;

    background:linear-gradient(
        to right,
        rgba(247,246,242,1) 0%,
        rgba(247,246,242,.85) 25%,
        rgba(247,246,242,.45) 60%,
        rgba(247,246,242,0) 100%
    );

    z-index:5;

    pointer-events:none;

}
.hero-image{

    -webkit-mask-image: linear-gradient(
        to right,
        transparent,
        black 15%,
        black 100%
    );

    mask-image: linear-gradient(
        to right,
        transparent,
        black 15%,
        black 100%
    );
}

.hero-image img{

    width:100%;

    height:450px;

    object-fit:cover;

}
/* ==========================
Works Hover
========================== */

.work{

    position:relative;

    overflow:hidden;

}

.work::before{

    content:"";

    position:absolute;

    left:0;

    bottom:0;

    width:0;

    height:2px;

    background:#111;

    transition:.4s;

}

.work:hover::before{

    width:100%;

}

/* ==========================
Playground
========================== */

.playground{

    position: relative;

    width: 100%;

    height: 180px;

      padding:0; 

    background: #d9d7d5;   /* Heroと同じグレー */

    overflow: hidden;


}

/* ボール */

.ball{

    position:absolute;

    right:300px;

    bottom:80px;

    width:40px;

}
@keyframes bounceBall{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-25px);
    }

    100%{
        transform:translateY(0);
    }

}

/* 犬 */

.dog{

    position:absolute;

    top:10px;

    right:-200px;

    width:180px;

}
/* --------------------------
最初は走る画像だけ表示
-------------------------- */

.stop{width:160px;
}

.sit1,
.sit2{ 

    display: none;

}
