body {
    background-color: #050505;
    color: #e0ffff;
    text-align: center;
    font-family: "Yu Gothic", sans-serif;

    /* 背景グリッド */
    background-image:
        linear-gradient(rgba(0, 255, 255, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 255, 255, 0.05) 1px, transparent 1px);

    background-size: 30px 30px;
}

h2 {
    color: #4da6ff;

    font-size: 42px;
    letter-spacing: 4px;

    text-shadow:
        0 0 5px #4da6ff,
        0 0 10px #4da6ff,
        0 0 20px #4da6ff;

    margin-top: 30px;
    margin-bottom: 30px;
}

.sub {
    color: #88ccff;
    letter-spacing: 5px;
    margin-top: -15px;
    margin-bottom: 25px;
}

table {
    margin: 0 auto;

    border-collapse: collapse;

    background-color: #111111;

    border: 2px solid #4da6ff;

    box-shadow:
        0 0 10px #00ffff,
        0 0 25px #4da6ff;

    width: 900px;
}

th {
    background-color: #002244;

    color: #ffffff;

    padding: 15px;

    width: 180px;

    border: 1px solid #4da6ff;
}

td {
    padding: 15px;

    border: 1px solid #4da6ff;

    background-color: #181818;
}

.p_img {
    background-color: #111111;
    padding: 20px;
}

img {
    width: 330px;

    border-radius: 15px;

    box-shadow:
        0 0 10px #00ffff,
        0 0 20px #4da6ff,
        0 0 30px #4da6ff;
}

/* マウスを乗せると少し光る */
table:hover {
    box-shadow:
        0 0 15px #00ffff,
        0 0 35px #4da6ff;
}

img {
    transition: 0.3s;
}

img:hover {
    transform: scale(1.05);
}

.card {
    width: 1000px;

    margin: 30px auto;

    padding: 20px;

    border-radius: 20px;

    background: rgba(10, 10, 10, 0.85);

    box-shadow:
        0 0 20px #4da6ff,
        0 0 40px rgba(77,166,255,0.5);
}

.name {
    color: #00ff99;
    font-weight: bold;

    text-shadow:
        0 0 5px #00ff99,
        0 0 10px #00ff99;
}

body::before {
    content: "";
    position: fixed;

    width: 400px;
    height: 400px;

    top: -120px;
    right: -120px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(0,255,255,0.20) 0%,
            rgba(0,255,255,0.08) 50%,
            transparent 80%
        );

    filter: blur(20px);

    z-index: -1;
}

body::after {
    content: "";
    position: fixed;

    width: 350px;
    height: 350px;

    bottom: -100px;
    left: -100px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(0,255,153,0.15) 0%,
            rgba(0,255,153,0.05) 50%,
            transparent 80%
        );

    filter: blur(20px);

    z-index: -1;
}