
* {
    box-sizing: border-box;
}


html,
body {
    margin: 0;

    width: 100%;

    min-height: 100%;

    background-color: #0a0a0a;

    color: #ffffff;

    font-family:
        'Helvetica Neue',
        Arial,
        sans-serif;
}




.site-title-area {

    position: fixed;

    top: 0;
    left: 0;

    padding-top: 0;

    z-index: 100;

    pointer-events: none;
}


.header-title {

    margin: 0;

    font-size: 2.5rem;

    font-weight: bold;

    line-height: 1;

    letter-spacing: -1px;
}


.header-subtitle {

    margin-top: 35px;

    margin-bottom: 20px;

    font-size: 1.1rem;
}


.header-meta {

    font-size: 1.05rem;
}


.place-main {

    width: 100%;

    min-height: 100vh;

    display: flex;

    align-items: center;

    justify-content: center;



    padding:

        60px
        230px
        60px
        80px;

}


.map-container {


    position: relative;


    width:
        min(
            62vw,
            760px
        );


    flex-shrink: 0;

}




.hunan-map {

    width: 100%;

    height: auto;

    display: block;

    user-select: none;

    pointer-events: none;

}





.map-point {

    position: absolute;



    width: 18px;

    height: 18px;


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


    cursor: pointer;

    z-index: 20;

}




.dot {

    position: absolute;

    left: 50%;

    top: 50%;


    width: 9px;

    height: 9px;


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


    border-radius: 50%;


    background-color:
        #ffffff;


    box-shadow:

        0 0 0 2px #0a0a0a,

        0 0 8px
        rgba(
            255,
            255,
            255,
            0
        );


    transition:

        transform
        0.25s ease,

        box-shadow
        0.25s ease;

}




.map-point:hover .dot {

    transform:

        translate(
            -50%,
            -50%
        )

        scale(1.8);


    box-shadow:

        0 0 0 2px
        #0a0a0a,

        0 0 12px
        rgba(
            255,
            255,
            255,
            0.8
        );

}




.place-label {

    position: absolute;



    left: 25px;

    top: 50%;


    width: 280px;


    transform:

        translateY(-50%)

        translateX(-10px);


    opacity: 0;

    visibility: hidden;


    pointer-events: none;


    transition:

        opacity
        0.25s ease,

        transform
        0.25s ease;

}



/* 编号 */

.place-number {

    display: block;

    margin-bottom: 5px;


    color: #777;


    font-size: 10px;

    letter-spacing: 2px;

}



/* 地点名字 */

.place-name {

    display: block;


    color: #ffffff;


    font-size: 13px;

    font-weight: 500;


    line-height: 1.35;


    letter-spacing: 1.5px;


    text-transform: uppercase;

}



/* 地址 */

.place-address {

    display: block;


    margin-top: 7px;


    color: #999999;


    font-size: 10px;


    line-height: 1.5;


    letter-spacing: 0.8px;

}




.map-point:hover
.place-label {

    opacity: 1;

    visibility: visible;


    transform:

        translateY(-50%)

        translateX(0);

}



.art-school {

    left: 72.5%;

    top: 33.5%;

}



.heishipu {

    left: 73.5%;

    top: 36%;

}




.jiuzhitang {

    left: 71.5%;

    top: 35%;

}



.cement-plant {

    left: 74.5%;

    top: 34.5%;

}



/* 湘江电厂 */

.power-plant {

    left: 72.5%;

    top: 37%;

}



.map-point.label-left
.place-label {

    left: auto;

    right: 25px;

    text-align: right;

}



@media
(max-width: 768px) {


    .place-main {

        padding:

            180px
            30px
            60px
            30px;

    }


    .map-container {

        width: 90vw;

    }


    .header-title {

        font-size: 1.5rem;

    }


    .header-subtitle {

        font-size: 0.8rem;

    }


    .place-label {

        width: 180px;

    }


    .place-name {

        font-size: 10px;

    }


    .place-address {

        font-size: 9px;

    }

}