#present2025 .present-container {
  max-width: 720px;
  margin: 48px auto;
  padding: 0 20px;
  line-height: 1.9;
}
/* タイトル・リード */
#present2025 .present-title {
  font-weight: 800;
  font-size: clamp(22px, 5.2vw, 34px);
  letter-spacing: .02em;
}
#present2025 .lead { opacity: .9; margin: 12px 0 20px; }

/* 入力フォーム周り（スマホ優先） */
#present2025 .present-form { display: block; margin: 12px 0 16px; }
#present2025 .present-form .label { display:inline-block; font-weight:700; margin: 0 8px 8px 0; }
#present2025 input[type="text"] {
  width: 100%; padding: 12px 14px; border: 1px solid #ddd; border-radius: 10px; font-size: 16px;
}
#present2025 .submit-wrap { display: flex; justify-content: center; }
#present2025 .btn-submit, #present2025 .btn-dl {
  display:inline-block; padding: 12px 18px; border-radius: 999px; text-decoration:none; border:none; cursor:pointer; font-weight:800;
  background:#111; color:#fff; line-height:1;
}
#present2025 .btn-dl { margin-top: 10px; font-size: 18px; }

#present2025 .present-form input[type="text"] {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #ddd;
  border-radius: 10px;
  font-size: 16px;
  margin-bottom: 12px; /* ←この行を追加！ */
}

/* ブランド色（ペコリス：#f39800） */
#present2025 .brand { background: #f39800; }
#present2025 .brand:hover, #present2025 .brand:focus { filter: brightness(0.95); }

/* 成功メッセージボックス */
#present2025 .result.ok {
  background: #f0fff4; border: 1px solid #c6f6d5; padding: 18px; border-radius: 14px; margin-top: 8px;
}
#present2025 .result.ok .msg { font-size: clamp(18px, 4.4vw, 22px); margin: 0 0 6px; }
#present2025 .result.ok .sub { margin: 0 0 12px; opacity: .9; }
#present2025 .result.ok .cheer { margin-top: 10px; font-weight: 700; }

/* エラーメッセージ */
#present2025 .result.ng { color: #b00020; font-weight: 700; margin: 6px 0 8px; }

/* キーボード風 */
#present2025 .kbd { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; background:#ffff9e; padding:2px 6px; border-radius:6px; }

/* 紙吹雪キャンバス */
#present2025 canvas.confetti {
  position: relative; display:block; width:100%; height:auto; margin-top: 6px;
  transition: opacity .8s ease;
}
@media (min-width: 768px) {
  #present2025 .present-form { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
  #present2025 .present-form .label { margin: 0; }
  #present2025 input[type="text"] { flex:1 0 300px; }
}
/* 中央揃え（正解ブロック） */
#present2025 .centered { text-align: center; }
#present2025 .centered .btn-dl { margin-left: auto; margin-right: auto; display: inline-block; }

/* ボタンをブランド色で */
#present2025 .brand { background: #f39800; }

/* 紙吹雪：全画面オーバーレイで上から降る */
#present2025 canvas.confetti.overlay {
  position: fixed;   /* 画面全体に重ねる */
  inset: 0;          /* top/right/bottom/left: 0 */
  width: 100vw;
  height: 100vh;
  z-index: 9999;
  pointer-events: none;  /* クリック邪魔しない */
  transition: opacity .9s ease;
}