/* ハムトーク。テーマの指定とぶつからないよう、すべて ht- で始める。 */
.ht-app {
	--ht-amber: #ff9800;
	--ht-amber-dark: #b85d00;
	--ht-line: #ffe4a3;
	--ht-cream: #fffbf0;
	--ht-text: #4a3524;
	--ht-muted: #8a6a4a;
	max-width: 720px;
	margin: 0 auto;
	color: var(--ht-text);
	font-size: 15px;
	line-height: 1.75;
	-webkit-text-size-adjust: 100%;
}
.ht-app *, .ht-promo * { box-sizing: border-box; }

/* テーマの記事用の飾り（見出しの丸や強調のマーカーなど）が入り込まないようにする */
.ht-app h2, .ht-app h3, .ht-app h4,
.ht-promo h2, .ht-promo h3 {
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	line-height: 1.6;
}
.ht-app h2::before, .ht-app h3::before, .ht-app h4::before,
.ht-promo h2::before, .ht-promo h3::before { content: none; display: none; }
.ht-app strong, .ht-app b { background: none; font-weight: 800; }
.ht-app p, .ht-promo p { margin: 0; }
.ht-app img { max-width: 100%; height: auto; }

.ht-card {
	background: #fff;
	border: 2px solid var(--ht-line);
	border-radius: 24px;
	padding: 18px;
	box-shadow: 0 10px 30px -18px rgba(184, 93, 0, .5);
	margin-bottom: 16px;
}
@media (min-width: 600px) { .ht-card { padding: 26px; } }

.ht-h {
	margin: 0 0 14px;
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--ht-amber-dark);
}

/* えらぶところ */
.ht-drop {
	border: 2px dashed #ffd070;
	background: var(--ht-cream);
	border-radius: 18px;
	padding: 22px 16px;
	text-align: center;
	cursor: pointer;
	transition: background .15s, border-color .15s;
}
.ht-drop:hover, .ht-drop:focus-visible, .ht-drop.is-over {
	background: #fff4d6;
	border-color: var(--ht-amber);
	outline: none;
}
.ht-drop__icon { font-size: 2rem; line-height: 1; }
.ht-drop__title { margin: 8px 0 2px; font-weight: 800; }
.ht-drop__hint { margin: 0 0 12px; font-size: .78rem; color: var(--ht-muted); }
.ht-drop__btn {
	display: inline-block;
	background: #fff;
	border: 1px solid #ffd070;
	border-radius: 999px;
	padding: 7px 18px;
	font-size: .82rem;
	font-weight: 800;
	color: var(--ht-amber-dark);
}
.ht-drop__preview img {
	max-height: 240px;
	max-width: 100%;
	border-radius: 14px;
	display: block;
	margin: 0 auto 10px;
}
.ht-drop__note { margin: 0 0 10px; font-size: .78rem; color: var(--ht-muted); }
.ht-mini {
	background: #fff;
	border: 1px solid #f0c9a0;
	color: #a4441f;
	border-radius: 999px;
	padding: 5px 14px;
	font-size: .78rem;
	font-weight: 700;
	cursor: pointer;
}

/* 入力 */
.ht-field { margin-top: 18px; }
.ht-label {
	display: block;
	font-size: .8rem;
	font-weight: 800;
	color: var(--ht-amber-dark);
	margin-bottom: 7px;
}
.ht-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.ht-chip { display: inline-flex; }
.ht-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ht-chip span {
	display: block;
	border: 1px solid var(--ht-line);
	background: var(--ht-cream);
	border-radius: 999px;
	padding: 6px 14px;
	font-size: .8rem;
	font-weight: 700;
	cursor: pointer;
	transition: background .15s, color .15s;
}
.ht-chip.is-on span { background: var(--ht-amber); border-color: #e67e00; color: #fff; }
.ht-chip input:focus-visible + span { outline: 2px solid var(--ht-amber); outline-offset: 2px; }

#ht-context {
	width: 100%;
	border: 1px solid var(--ht-line);
	border-radius: 12px;
	padding: 10px 12px;
	font-size: .9rem;
	font-family: inherit;
	background: #fffdf7;
	color: var(--ht-text);
}
#ht-context:focus { outline: 2px solid var(--ht-amber); outline-offset: 1px; }

/* ボタン */
.ht-go {
	display: block;
	width: 100%;
	margin-top: 20px;
	border: 0;
	border-radius: 16px;
	background: linear-gradient(135deg, #ffa726, #f57c00);
	color: #fff;
	font-size: 1.02rem;
	font-weight: 800;
	font-family: inherit;
	padding: 14px 20px;
	cursor: pointer;
	box-shadow: 0 8px 18px -8px rgba(245, 124, 0, .8);
}
.ht-go:hover { filter: brightness(1.05); }
.ht-go:disabled { opacity: .55; cursor: default; filter: none; }
.ht-go--sub { background: linear-gradient(135deg, #43a047, #2e7d32); box-shadow: none; }
.ht-go--x { background: #16181c; box-shadow: none; }
.ht-go--ghost { background: #fff4d6; color: var(--ht-amber-dark); box-shadow: none; }

.ht-remaining { margin: 10px 0 0; font-size: .76rem; color: var(--ht-muted); text-align: center; }
.ht-error {
	margin: 14px 0 0;
	background: #fdecea;
	border: 1px solid #f5c6c0;
	color: #8a241a;
	border-radius: 12px;
	padding: 10px 12px;
	font-size: .84rem;
}

/* 読みとり中 */
.ht-loading { text-align: center; padding: 34px 18px; }
.ht-loading__seed { font-size: 2.6rem; animation: ht-spin 2.4s infinite ease-in-out; }
@keyframes ht-spin {
	0% { transform: rotate(0) scale(1); }
	50% { transform: rotate(180deg) scale(1.15); }
	100% { transform: rotate(360deg) scale(1); }
}
.ht-loading__text { margin: 14px 0 16px; font-weight: 800; }
.ht-bar { width: 190px; height: 8px; margin: 0 auto; background: #fff4d6; border-radius: 999px; overflow: hidden; }
.ht-bar span { display: block; height: 100%; width: 40%; background: var(--ht-amber); border-radius: 999px; animation: ht-slide 1.6s infinite ease-in-out; }
@keyframes ht-slide {
	0% { transform: translateX(-100%); }
	100% { transform: translateX(250%); }
}

/* 結果 */
.ht-stage { background: var(--ht-cream); border: 1px solid var(--ht-line); border-radius: 18px; padding: 16px; }
.ht-bubble {
	position: relative;
	background: #fff;
	border: 2px solid #ffd070;
	border-radius: 18px;
	padding: 14px 16px 16px;
	text-align: center;
	margin-bottom: 18px;
}
.ht-bubble::after {
	content: "";
	position: absolute;
	bottom: -13px;
	left: 50%;
	transform: translateX(-50%);
	border: 13px solid transparent;
	border-bottom: 0;
	border-top-color: #ffd070;
}
.ht-emotion {
	display: inline-block;
	background: #fff4d6;
	border: 1px solid var(--ht-line);
	border-radius: 999px;
	padding: 2px 12px;
	font-size: .74rem;
	font-weight: 800;
	color: var(--ht-amber-dark);
	margin-bottom: 6px;
}
.ht-speech { margin: 0; font-size: 1.1rem; font-weight: 800; line-height: 1.6; }
.ht-photo { text-align: center; }
.ht-photo img { max-height: 300px; max-width: 100%; border-radius: 14px; display: inline-block; }

.ht-facts { display: grid; grid-template-columns: 1fr; gap: 8px; margin: 16px 0; }
@media (min-width: 560px) { .ht-facts { grid-template-columns: repeat(3, 1fr); } }
.ht-fact {
	background: var(--ht-cream);
	border: 1px solid var(--ht-line);
	border-radius: 14px;
	padding: 10px;
	text-align: center;
}
.ht-fact span { display: block; font-size: .72rem; font-weight: 700; color: var(--ht-muted); }
.ht-fact strong { font-size: .95rem; }
.ht-stars { color: #f9a825; letter-spacing: 2px; }

.ht-box { border: 1px solid var(--ht-line); border-radius: 14px; padding: 12px 14px; margin-top: 10px; }
.ht-box h4 { margin: 0 0 4px; font-size: .78rem; font-weight: 800; color: var(--ht-amber-dark); }
.ht-box p { margin: 0; font-size: .9rem; }
.ht-box--advice { background: #f1f8f3; border-color: #cfe6d6; }
.ht-box--advice h4 { color: #2e7d32; }

.ht-share { text-align: center; }
.ht-canvas-wrap {
	max-width: 330px;
	margin: 0 auto 16px;
	border: 1px solid var(--ht-line);
	border-radius: 16px;
	overflow: hidden;
	background: var(--ht-cream);
}
.ht-canvas-wrap canvas { width: 100%; height: auto; display: block; }
.ht-share__btns { display: grid; gap: 8px; }
@media (min-width: 560px) { .ht-share__btns { grid-template-columns: repeat(3, 1fr); } }
.ht-share__btns .ht-go { margin-top: 0; font-size: .88rem; padding: 12px 10px; }

.ht-note { font-size: .76rem; color: var(--ht-muted); line-height: 1.8; margin: 4px 0 0; }

/* トップページなどに置く案内カード */
.ht-promo {
	display: flex;
	gap: 16px;
	align-items: center;
	flex-wrap: wrap;
	background: linear-gradient(135deg, #fff4d6, #ffe4a3);
	border: 2px solid #ffd070;
	border-radius: 24px;
	padding: 20px;
	color: #4a3524;
}
.ht-promo__art { width: 64px; flex: none; }
.ht-promo__body { flex: 1 1 260px; }
.ht-promo__tag { margin: 0; font-size: .74rem; font-weight: 800; color: #b85d00; }
.ht-promo__title { margin: 2px 0 6px; font-size: 1.3rem; font-weight: 800; }
.ht-promo__lead { margin: 0 0 12px; font-size: .86rem; line-height: 1.8; }
.ht-promo__btn {
	display: inline-block;
	background: linear-gradient(135deg, #ffa726, #f57c00);
	color: #fff;
	text-decoration: none;
	font-weight: 800;
	font-size: .9rem;
	border-radius: 999px;
	padding: 11px 24px;
	box-shadow: 0 8px 18px -8px rgba(245, 124, 0, .8);
}
.ht-promo__btn:hover { filter: brightness(1.05); color: #fff; }

/* ---------------------------------------------------------------
 * トップページの最上部に置くときの見出し
 * ------------------------------------------------------------- */
.ht-app--wide { max-width: 1160px; }

.ht-intro { margin-bottom: 16px; }
.ht-intro__badge {
	background: #fff;
	border: 1.5px solid #ffd070;
	border-radius: 999px;
	padding: 5px 16px;
	font-size: .78rem;
	font-weight: 800;
	color: var(--ht-amber-dark);
	margin-bottom: 10px !important;
/* ▼ ここで上下運動のアニメーションを指定しています */
    animation: bounce 2s infinite ease-in-out;
    display: inline-block; /* トランスフォーム（移動）を有効にするために指定 
*/
}
@keyframes bounce {
    0%, 100% {
        transform: translateY(0);      /* 開始時と終了時は元の位置 */
    }
    50% {
        transform: translateY(-6px);   /* 50%（1秒経過時）に上に6px移動 */
    }
}
.ht-intro__row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 8px 28px;
}
.ht-intro__title {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 10px;
	font-size: clamp(1.45rem, 6vw, 2.4rem);
	font-weight: 800;
	line-height: 1.25;
	flex: 0 1 auto;
	min-width: 0;
}
.ht-intro__ja {
	background: linear-gradient(transparent 64%, #ffe9b8 64%);
	letter-spacing: .04em;
}
.ht-intro__en {
	color: var(--ht-amber);
	font-size: .72em;
	letter-spacing: .02em;
	background: linear-gradient(transparent 64%, #ffe9b8 64%);
}
.ht-intro__mark { width: 30px; flex: none; color: var(--ht-amber); }
.ht-intro__mark svg { width: 100%; height: auto; display: block; }
.ht-intro__mark:empty { display: none; }
.ht-intro__lead {
	flex: 1 1 320px;
	font-size: .88rem;
	line-height: 2;
	padding-bottom: 4px;
}
.ht-intro__lead span {
	display: block;
	width: fit-content;
	max-width: 100%;
	background: linear-gradient(transparent 68%, #fff0cc 68%);
}

@media (max-width: 719px) {
	.ht-intro__row { align-items: flex-start; }
	.ht-intro__lead { line-height: 1.9; }
}

/* 案内カード（リンク版）のイラスト */
.ht-promo__art svg { width: 100%; height: auto; display: block; }
.ht-icon-emoji { font-size: 2.4rem; line-height: 1; }
