/* =======================================================
   mypage_manual.css
   - ログイン画面に寄せた黒系背景 + particles
   - 半透明カード
   - マニュアルページ向けレイアウト
======================================================= */

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
}

body {
    margin: 0;
    padding: 0;
    min-height: 100vh;
    font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
    color: #f5f1e8;
    overflow-x: hidden;
    position: relative;
    background: #050505;
}

/* 背景の黒グラデーション */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    background:
        repeating-radial-gradient(rgba(69, 64, 64, 0.47), rgba(51, 49, 49, 0.35) 55.88%, rgba(22, 21, 21, 1));
    z-index: 0;
    pointer-events: none;
}

/* particles背景 */
#particles-js {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

/* =======================================================
   全体レイアウト
======================================================= */
.container {
    position: relative;
    z-index: 2;
    width: min(92%, 1080px);
    margin: 0 auto;
    padding: 48px 0 88px;
}

.manual-hero {
    background: rgba(223, 234, 240, 0.21);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    border-radius: 7px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.32);
    padding: 32px 28px;
    margin-bottom: 32px;
}

.manual-title {
    margin: 0 0 14px 0;
    font-size: clamp(2rem, 3.4vw, 2.8rem);
    line-height: 1.25;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #ffffff;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
}

.manual-goal {
    margin: 0 0 14px 0;
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    line-height: 1.5;
    font-weight: 700;
    color: rgba(122, 230, 244, 0.61);
    border-bottom: dashed 2px;
}

.manual-description {
    margin: 0;
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.92);
}

.manual-image {
    margin-top: 26px;
    text-align: center;
}

.manual-image img {
    display: block;
    height: 30VH;
    margin: 0 auto;
    border-radius: 7px;
}

/* =======================================================
   ステップブロック
======================================================= */
.step-block {
    display: grid;
    gap: 18px;
    background: rgba(255, 255, 255, 0.09);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 7px;
    padding: 24px 24px 22px;
    margin-bottom: 26px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
}

.step-header {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.ume {
    flex: 0 0 auto;
    display: inline-block;
    width: 40px;
    height: 40px;
    background-image:
        radial-gradient(circle, transparent 50%, #F5ED43 50%, #F5ED43 calc(50% + 2px), transparent calc(50% + 2px)),
        radial-gradient(circle, transparent 50%, #F5ED43 50%, #F5ED43 calc(50% + 2px), transparent calc(50% + 2px)),
        radial-gradient(circle, transparent 50%, #F5ED43 50%, #F5ED43 calc(50% + 2px), transparent calc(50% + 2px)),
        radial-gradient(circle, transparent 50%, #F5ED43 50%, #F5ED43 calc(50% + 2px), transparent calc(50% + 2px)),
        radial-gradient(circle, transparent 50%, #F5ED43 50%, #F5ED43 calc(50% + 2px), transparent calc(50% + 2px));
    background-position: 50% 0, 5% 40%, 95% 40%, 23% 95%, 78% 95%;
    background-size: 20px 20px;
    background-repeat: no-repeat;
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.35));
}

.step-number {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: rgba(122, 230, 244, 0.61);
    white-space: nowrap;
}

.step-title {
    margin: 0;
    font-size: clamp(1.15rem, 1.8vw, 1.45rem);
    line-height: 1.5;
    font-weight: 700;
    color: #ffffff;
}

.step-texts {
    display: block;
}

.step-description {
    margin: 0;
    line-height: 1.95;
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.92);
}

.step-memo {
    margin: 0;
    line-height: 1.95;
    font-size: 0.7rem;
    color: rgba(255, 255, 255, 0.92);
}

.manual-link{
  position: relative;
  display: inline-block;
  color: rgba(122, 230, 244, 0.61);
  transition: .3s;
  text-decoration: none;
}

.manual-link::after {
  position: absolute;
  bottom: 0;
  left: 50%;
  content: '';
  width: 0;
  height: 1px;
  background-color: #ffffff;
  transition: .3s;
  transform: translateX(-50%);
}

.manual-link:hover::after{
  width: 100%;
}

/* 説明画像 */
.explain-image {
    margin-top: 4px;
    text-align: center;
}

.explain-image img {
    display: block;
    max-width: 100%;
    margin: 0 auto;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
}

/* コメント補助画像 */
.comment-image {
    margin-top: 4px;
    text-align: right;
}

.comment-image img {
    max-width: min(100%, 360px);
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

/* =======================================================
   下部説明
======================================================= */
.manual-footer {
    background: rgba(255, 255, 255, 0.09);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 18px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
    padding: 28px 24px 32px;
    margin-top: 14px;
}

.confirm-title {
    margin: 0 0 12px 0;
    font-size: 1.35rem;
    font-weight: 700;
    color: #f3d37a;
}

.confirm-description {
    margin: 0;
    line-height: 1.9;
    color: rgba(255, 255, 255, 0.92);
}

.last-message {
    margin-top: 24px;
    margin-bottom: 0;
    font-weight: 700;
    line-height: 1.9;
    color: #ffffff;
}

/* =======================================================
   戻るボタン
======================================================= */
.back-button-wrapper {
    text-align: center;
    margin-top: 34px;
}

.back-button {
    display: inline-block;
    min-width: 240px;
    padding: 14px 28px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: rgba(30, 172, 195, 0.78);
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
    transition:
        background 0.2s ease,
        transform 0.08s ease,
        box-shadow 0.2s ease;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.22);
}

.back-button:hover {
    background: rgba(140, 224, 235, 0.92);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.28);
}

.back-button:active {
    transform: translateY(1px);
}

/* =======================================================
   レスポンシブ
======================================================= */
@media (max-width: 768px) {
    .container {
        width: min(94%, 1080px);
        padding-top: 26px;
        padding-bottom: 72px;
    }

    .manual-hero,
    .step-block,
    .manual-footer {
        padding: 22px 18px;
        border-radius: 16px;
    }

    .step-header {
        align-items: flex-start;
    }

    .comment-image {
        text-align: center;
    }

    .comment-image img {
        max-width: 100%;
    }

    .back-button {
        width: 100%;
        min-width: 0;
    }
}