/*
Theme Name: HANAMUSUME Bloom
Theme URI: https://hanamusume.jp/
Author: HANAMUSUME PROJECT
Description: 花の事実・文化・贈答と花娘を二層で伝えるHANAMUSUME専用テーマ。
Version: 0.9.17
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: hanamusume-bloom
*/

:root {
  --hmsm-ink: #25221f;
  --hmsm-muted: #716b64;
  --hmsm-paper: #fffdf8;
  --hmsm-petal: #f6d9df;
  --hmsm-petal-strong: #d85879;
  --hmsm-coral: #ee816f;
  --hmsm-leaf: #416452;
  --hmsm-leaf-soft: #dce8df;
  --hmsm-gold: #bd8a3a;
  --hmsm-line: #e8e1d7;
  --hmsm-radius: 24px;
  --hmsm-shadow: 0 20px 55px rgba(79, 57, 47, .10);
  --hmsm-serif: "Yu Mincho", "Hiragino Mincho ProN", serif;
  --hmsm-sans: "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

.entry-faq,
.entry-sources {
    margin-top: clamp(2.5rem, 6vw, 5rem);
    padding-top: 2rem;
    border-top: 1px solid var(--hmsm-line, #ded8d2);
}

.entry-faq details {
    padding: 1rem 0;
    border-bottom: 1px solid var(--hmsm-line, #ded8d2);
}

.entry-faq summary {
    cursor: pointer;
    font-weight: 700;
}

.entry-sources a {
    overflow-wrap: anywhere;
}

.story-navigation {
    margin-top: clamp(2.5rem, 6vw, 5rem);
    padding: clamp(1.4rem, 4vw, 2.2rem);
    border: 1px solid var(--hmsm-line);
    border-radius: var(--hmsm-radius);
    background: linear-gradient(145deg, #fffaf6, #f5eee7);
}

.story-navigation__teaser { font-family: var(--hmsm-serif); font-size: 1.12rem; }
.story-navigation__links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; margin-top: 1.25rem; font-size: .86rem; }
.story-navigation__links a { font-weight: 800; }
.story-navigation__links span { color: var(--hmsm-muted); }

.entry-content .comic-summary { margin-top: 0; padding: 22px 24px; border-radius: 18px; background: #fff7f5; line-height: 1.9; }
.entry-content .comic-summary strong { color: var(--hmsm-petal-strong); }
.entry-content .comic-note { color: var(--hmsm-muted); font-size: .86rem; }
.entry-featured--comic-overlay { position: relative; }
.comic-002-overlay { position: absolute; inset: 0; pointer-events: none; }
.comic-002-balloon { position: absolute; display: grid; place-items: center; margin: 0; padding: .38em .5em; overflow: hidden; color: #342c28; font-family: var(--hmsm-sans); font-size: clamp(.66rem, .92vw, .78rem); font-weight: 800; line-height: 1.12; text-align: center; text-wrap: nowrap; white-space: nowrap; }
.comic-002-balloon--1 { top: 2.35%; left: 5.9%; width: 18.7%; height: 12.2%; }
.comic-002-balloon--2 { top: 1.75%; left: 37.15%; width: 10.8%; height: 8.6%; }
.comic-002-balloon--3 { top: 1.75%; left: 52.75%; width: 12.3%; height: 9.3%; }
.comic-002-balloon--4 { top: 1.75%; left: 67.75%; width: 12.4%; height: 8.9%; }
.comic-002-balloon--5 { top: 51.25%; left: 10.6%; width: 16.2%; height: 8.1%; }
.comic-002-balloon--6 { top: 51.25%; left: 34.65%; width: 13.3%; height: 9.4%; }
.comic-002-balloon--7 { top: 52.45%; left: 51.35%; width: 9.7%; height: 9.2%; }
.comic-002-balloon--8 { top: 51.75%; left: 62.35%; width: 11.2%; height: 9.4%; }
.comic-002-balloon--9 { top: 51.25%; left: 74.55%; width: 11.9%; height: 9.4%; }
.comic-002-balloon--10 { top: 51.55%; left: 87.15%; width: 10.3%; height: 8.9%; }
.comic-002-mobile { display: none; }
.comic-003-overlay { position: absolute; inset: 0; pointer-events: none; }
.comic-003-balloon { position: absolute; display: grid; place-items: center; margin: 0; padding: .42em .7em; overflow: hidden; color: #342c28; font-family: var(--hmsm-sans); font-size: clamp(.74rem, 1vw, .88rem); font-weight: 800; line-height: 1.16; text-align: center; text-wrap: balance; }
.comic-003-balloon--1 { top: 2.1%; left: 5.2%; width: 19.8%; height: 10.3%; }
.comic-003-balloon--2 { top: 2.2%; left: 31.4%; width: 16%; height: 8.4%; }
.comic-003-balloon--3 { top: 2.2%; left: 53.1%; width: 18.8%; height: 10.2%; }
.comic-003-balloon--4 { top: 2.2%; left: 77.4%; width: 18.7%; height: 10.1%; }
.comic-003-balloon--5 { top: 52.1%; left: 5.2%; width: 20%; height: 9.1%; }
.comic-003-balloon--6 { top: 52.1%; left: 29.8%; width: 18%; height: 9.1%; }
.comic-003-balloon--7 { top: 52.1%; left: 53.1%; width: 18.4%; height: 9.1%; }
.comic-003-balloon--8 { top: 52.1%; left: 77.3%; width: 18.5%; height: 9.1%; }
.comic-003-mobile { display: none; }

@media (max-width: 560px) {
  .entry-featured--comic-overlay { display: none; }
  .comic-002-mobile { display: grid; gap: 10px; margin: 0 0 clamp(1.5rem, 5vw, 2.5rem); }
  .comic-002-mobile-panel { position: relative; overflow: hidden; aspect-ratio: 1; border: 1px solid rgba(52, 44, 40, .28); border-radius: 4px; background-image: var(--comic-image); background-repeat: no-repeat; background-size: 200% 200%; }
  .comic-002-mobile-panel--1 { background-position: 0 0; }
  .comic-002-mobile-panel--2 { background-position: 100% 0; }
  .comic-002-mobile-panel--3 { background-position: 0 100%; }
  .comic-002-mobile-panel--4 { background-position: 100% 100%; }
  .comic-002-mobile-balloon { position: absolute; display: grid; place-items: center; margin: 0; padding: .35em .45em; overflow: hidden; color: #342c28; font-family: var(--hmsm-sans); font-size: clamp(.7rem, 2.85vw, .8rem); font-weight: 800; line-height: 1.12; text-align: center; text-wrap: nowrap; white-space: nowrap; }
  .comic-002-mobile-balloon--1 { top: 5%; left: 11.8%; width: 37.6%; height: 25.2%; }
  .comic-002-mobile-balloon--2 { top: 3.5%; left: 72.8%; width: 23.2%; height: 17.2%; }
  .comic-002-mobile-balloon--3 { top: 5%; left: 6.4%; width: 23.8%; height: 15.6%; }
  .comic-002-mobile-balloon--4 { top: 4.4%; left: 34.3%; width: 26.5%; height: 16.8%; padding-block: .2em; line-height: 1.05; }
  .comic-002-mobile-balloon--5 { top: 2.5%; left: 21.2%; width: 32.4%; height: 16.2%; }
  .comic-002-mobile-balloon--6 { top: 2.5%; left: 69.3%; width: 26.6%; height: 18.8%; }
  .comic-002-mobile-balloon--7 { top: 4.9%; left: 2.7%; width: 19.4%; height: 18.4%; }
  .comic-002-mobile-balloon--8 { top: 2.4%; left: 22.6%; width: 23.6%; height: 15.8%; }
  .comic-002-mobile-balloon--9 { top: 2%; left: 47.2%; width: 23.4%; height: 16.6%; }
  .comic-002-mobile-balloon--10 { top: 2.2%; left: 71.6%; width: 23.2%; height: 16.4%; }
  .comic-003-mobile { display: grid; gap: 10px; margin: 0 0 clamp(1.5rem, 5vw, 2.5rem); }
  .comic-003-mobile-panel { position: relative; overflow: hidden; aspect-ratio: 1; border: 1px solid rgba(52, 44, 40, .28); border-radius: 4px; background-image: var(--comic-image); background-repeat: no-repeat; background-size: 200% 200%; }
  .comic-003-mobile-panel--1 { background-position: 0 0; }
  .comic-003-mobile-panel--2 { background-position: 100% 0; }
  .comic-003-mobile-panel--3 { background-position: 0 100%; }
  .comic-003-mobile-panel--4 { background-position: 100% 100%; }
  .comic-003-mobile-balloon { position: absolute; display: grid; place-items: center; margin: 0; padding: .4em .55em; overflow: hidden; color: #342c28; font-family: var(--hmsm-sans); font-size: clamp(.75rem, 3vw, .88rem); font-weight: 800; line-height: 1.16; text-align: center; text-wrap: balance; }
  .comic-003-mobile-balloon--1 { top: 4.2%; left: 10.4%; width: 39.6%; height: 20.6%; }
  .comic-003-mobile-balloon--2 { top: 4.4%; left: 62.8%; width: 32%; height: 16.8%; }
  .comic-003-mobile-balloon--3 { top: 4.4%; left: 6.2%; width: 37.6%; height: 20.4%; }
  .comic-003-mobile-balloon--4 { top: 4.4%; left: 54.8%; width: 37.4%; height: 20.2%; }
  .comic-003-mobile-balloon--5 { top: 4.2%; left: 10.4%; width: 40%; height: 18.2%; }
  .comic-003-mobile-balloon--6 { top: 4.2%; left: 59.6%; width: 36%; height: 18.2%; }
  .comic-003-mobile-balloon--7 { top: 4.2%; left: 6.2%; width: 36.8%; height: 18.2%; }
  .comic-003-mobile-balloon--8 { top: 4.2%; left: 54.6%; width: 37%; height: 18.2%; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--hmsm-ink);
  background: var(--hmsm-paper);
  font-family: var(--hmsm-sans);
  line-height: 1.8;
}
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .2em; }
img { max-width: 100%; height: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.screen-reader-text:focus { position: fixed; z-index: 9999; width: auto; height: auto; clip: auto; top: 1rem; left: 1rem; padding: .7rem 1rem; background: #fff; }

.hmsm-shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,253,248,.92); border-bottom: 1px solid rgba(232,225,215,.85); backdrop-filter: blur(16px); }
.site-header__inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.site-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.site-brand__mark { width: 38px; aspect-ratio: 1; display: grid; place-items: center; color: #fff; border-radius: 50% 50% 46% 54%; background: var(--hmsm-petal-strong); transform: rotate(-8deg); font-family: var(--hmsm-serif); }
.site-brand__name { font-family: var(--hmsm-serif); font-size: clamp(1.05rem, 2vw, 1.35rem); letter-spacing: .08em; }
.site-brand__tagline { display: block; color: var(--hmsm-muted); font-size: .68rem; letter-spacing: .08em; }
.site-nav { min-width: 0; overflow-x: auto; scrollbar-width: none; }
.site-nav::-webkit-scrollbar { display: none; }
.site-nav ul { display: flex; align-items: center; gap: 17px; width: max-content; margin: 0; padding: 0; list-style: none; }
.site-nav a { text-decoration: none; white-space: nowrap; font-size: .8rem; font-weight: 700; }
.site-nav a:hover, .site-nav a:focus-visible { color: var(--hmsm-petal-strong); }
.site-nav li:first-child a { color: var(--hmsm-petal-strong); font-weight: 900; }

.hmsm-news-desk { border-top: 1px solid var(--hmsm-line); border-bottom: 1px solid var(--hmsm-line); background: #fffaf6; }
.hmsm-news-desk .hmsm-shell { padding-top: clamp(42px, 6vw, 68px); padding-bottom: clamp(42px, 6vw, 68px); }
.hmsm-news-desk__header { display: grid; grid-template-columns: minmax(210px, .55fr) minmax(0, 1.45fr); gap: clamp(24px, 6vw, 78px); align-items: end; margin-bottom: 28px; }
.hmsm-news-desk__header > div > p, .hmsm-news-index__header > p { margin: 0 0 5px; color: var(--hmsm-petal-strong); font-size: .66rem; font-weight: 900; letter-spacing: .2em; }
.hmsm-news-desk__header h2 { margin: 0; font-family: var(--hmsm-serif); font-size: clamp(1.8rem, 2.6vw, 2.3rem); font-weight: 500; line-height: 1.2; }
.hmsm-news-desk__header > p { max-width: 620px; margin: 0; color: var(--hmsm-muted); font-size: .86rem; }
.hmsm-news-list { border-top: 1px solid var(--hmsm-ink); }
.hmsm-news-list ol { margin: 0; padding: 0; list-style: none; }
.hmsm-news-list li { border-bottom: 1px solid var(--hmsm-line); }
.hmsm-news-list a { display: grid; grid-template-columns: 118px minmax(0, 1fr) 28px; gap: 20px; align-items: center; padding: 18px 4px; text-decoration: none; transition: color .2s ease, background-color .2s ease; }
.hmsm-news-list a:hover, .hmsm-news-list a:focus-visible { color: var(--hmsm-petal-strong); background: rgba(246,217,223,.18); }
.hmsm-news-list time { color: var(--hmsm-muted); font-size: .75rem; font-variant-numeric: tabular-nums; letter-spacing: .05em; }
.hmsm-news-list__title { min-width: 0; font-family: var(--hmsm-serif); font-size: clamp(1rem, 1.6vw, 1.16rem); font-weight: 600; line-height: 1.55; }
.hmsm-news-list__arrow { color: var(--hmsm-petal-strong); font-size: 1rem; text-align: right; transition: transform .2s ease; }
.hmsm-news-list a:hover .hmsm-news-list__arrow, .hmsm-news-list a:focus-visible .hmsm-news-list__arrow { transform: translateX(4px); }
.hmsm-news-desk__actions { display: flex; justify-content: flex-end; gap: 16px 28px; margin-top: 22px; }
.hmsm-news-desk__actions a { display: inline-flex; align-items: center; min-height: 44px; color: var(--hmsm-leaf); font-size: .8rem; font-weight: 800; text-decoration: none; }
.hmsm-news-desk__actions a:first-child { color: var(--hmsm-petal-strong); }
.hmsm-news-desk .hmsm-shell { padding-top: clamp(28px, 4vw, 44px); padding-bottom: clamp(30px, 4vw, 48px); }
.hmsm-daily-board__header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.hmsm-daily-board__header p { margin: 0; }
.hmsm-daily-board__header > p:last-child { color: var(--hmsm-muted); font-size: .72rem; font-variant-numeric: tabular-nums; }
.hmsm-daily-board { display: grid; grid-template-columns: 1.15fr .925fr .925fr; gap: 14px; align-items: stretch; }
.hmsm-daily-card { display: flex; min-width: 0; min-height: 360px; flex-direction: column; padding: clamp(20px, 2.3vw, 30px); border: 1px solid var(--hmsm-line); border-radius: 22px; background: rgba(255,255,255,.82); }
.hmsm-daily-card--news { background: linear-gradient(145deg, #fff, #fff8f5); }
.hmsm-daily-card--fortune { background: linear-gradient(145deg, #fff9fa, #f7ebe9); }
.hmsm-daily-card--weather { background: linear-gradient(145deg, #f9fcfa, #edf5f0); }
.hmsm-daily-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.hmsm-daily-card header small { display: block; margin-bottom: 4px; color: var(--hmsm-petal-strong); font-size: .58rem; font-weight: 900; letter-spacing: .16em; }
.hmsm-daily-card--weather header small { color: var(--hmsm-leaf); }
.hmsm-daily-card h2 { margin: 0; font-family: var(--hmsm-serif); font-size: clamp(1.45rem, 2.2vw, 2rem); font-weight: 500; line-height: 1.22; }
.hmsm-daily-card__symbol { display: grid; flex: 0 0 42px; width: 42px; aspect-ratio: 1; place-items: center; color: #fff; border-radius: 50% 48% 52% 46%; background: var(--hmsm-petal-strong); font: 700 1rem/1 var(--hmsm-serif); transform: rotate(-5deg); }
.hmsm-daily-card__weather-icon { display: grid; flex: 0 0 46px; width: 46px; aspect-ratio: 1; place-items: center; color: var(--hmsm-leaf); border-radius: 50%; background: rgba(255,255,255,.72); font-size: 1.65rem; }
.hmsm-daily-news-list { margin: 0; padding: 0; list-style: none; }
.hmsm-daily-news-list li { border-top: 1px solid var(--hmsm-line); }
.hmsm-daily-news-list li:last-child { border-bottom: 1px solid var(--hmsm-line); }
.hmsm-daily-news-list a { display: grid; grid-template-columns: 44px minmax(0,1fr) 18px; gap: 10px; align-items: start; padding: 13px 0; text-decoration: none; }
.hmsm-daily-news-list time { padding-top: 2px; color: var(--hmsm-muted); font-size: .63rem; font-variant-numeric: tabular-nums; }
.hmsm-daily-news-list span { min-width: 0; font-family: var(--hmsm-serif); font-size: .88rem; font-weight: 600; line-height: 1.55; }
.hmsm-daily-news-list b { color: var(--hmsm-petal-strong); font-weight: 500; }
.hmsm-daily-card__link { display: inline-flex; align-items: center; align-self: flex-start; margin-top: auto; padding-top: 18px; color: var(--hmsm-leaf); font-size: .74rem; font-weight: 900; text-decoration: none; }
.hmsm-daily-card__link:hover, .hmsm-daily-card__link:focus-visible { color: var(--hmsm-petal-strong); }
.hmsm-daily-card__empty { color: var(--hmsm-muted); font-size: .78rem; }
.hmsm-daily-card__note { display: block; margin-top: 7px; color: var(--hmsm-muted); font-size: .58rem; line-height: 1.55; }
.hmsm-fortune__flower { margin: 0 0 8px; color: var(--hmsm-petal-strong); font-family: var(--hmsm-serif); font-size: 1.7rem; font-weight: 600; }
.hmsm-fortune__message { margin: 0 0 14px; font-family: var(--hmsm-serif); font-size: .94rem; line-height: 1.7; }
.hmsm-daily-facts { margin: 0; }
.hmsm-daily-facts > div { display: grid; grid-template-columns: 64px 1fr; gap: 10px; padding: 8px 0; border-top: 1px solid rgba(216,88,121,.16); }
.hmsm-daily-facts dt { color: var(--hmsm-petal-strong); font-size: .63rem; font-weight: 900; }
.hmsm-daily-facts dd { margin: 0; font-size: .69rem; line-height: 1.55; }
.hmsm-weather__area { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--hmsm-leaf); font-size: .76rem; font-weight: 900; }
.hmsm-weather__area span { padding: 2px 7px; border: 1px solid rgba(65,100,82,.22); border-radius: 999px; font-size: .55rem; }
.hmsm-weather__summary { min-height: 3.2em; margin: 10px 0 12px; font-family: var(--hmsm-serif); font-size: 1rem; font-weight: 600; line-height: 1.6; }
.hmsm-weather__metrics { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 14px; border-top: 1px solid rgba(65,100,82,.2); border-bottom: 1px solid rgba(65,100,82,.2); }
.hmsm-weather__metrics > div { padding: 9px 0; }
.hmsm-weather__metrics > div + div { padding-left: 14px; border-left: 1px solid rgba(65,100,82,.2); }
.hmsm-weather__metrics dt { color: var(--hmsm-muted); font-size: .58rem; }
.hmsm-weather__metrics dd { margin: 1px 0 0; font-family: var(--hmsm-serif); font-size: 1.15rem; }
.hmsm-weather__tip { margin: 0; color: var(--hmsm-muted); font-size: .69rem; line-height: 1.6; }
.hmsm-news-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0; color: rgba(255,255,255,.68); font-size: .7rem; }
.hmsm-news-meta span { color: #ef9caf; font-weight: 900; letter-spacing: .12em; }
.hmsm-news-meta b, .hmsm-news-trustline strong, .hmsm-news-index__topics b { padding: 3px 8px; border: 1px solid rgba(161,210,177,.55); border-radius: 999px; color: #bde1c7; font-size: .64rem; letter-spacing: .04em; }
.hmsm-news-index__lead h2 a { text-decoration: none; }
.hmsm-news-lead__link { display: inline-flex; gap: 8px; margin-top: 14px; color: #fff; font-size: .78rem; font-weight: 900; text-decoration: none; }

.hmsm-news-index { min-height: 70vh; padding: clamp(58px, 8vw, 104px) 0; background: #f4f0e9; }
.hmsm-news-index__header { display: grid; grid-template-columns: minmax(0, .9fr) minmax(280px, .55fr); align-items: end; gap: 14px 44px; padding-bottom: 30px; border-bottom: 3px solid var(--hmsm-ink); }
.hmsm-news-index__header > p { grid-column: 1 / -1; }
.hmsm-news-index__header h1 { margin: 0; font-family: var(--hmsm-serif); font-size: clamp(2.8rem, 7vw, 6rem); font-weight: 500; line-height: 1.05; }
.hmsm-news-index__header > span { color: var(--hmsm-muted); font-size: .82rem; }
.hmsm-news-index__lead { padding: clamp(34px, 6vw, 70px) 0; border-bottom: 1px solid var(--hmsm-line); }
.hmsm-news-index__lead .hmsm-news-meta { color: var(--hmsm-muted); }
.hmsm-news-index__lead .hmsm-news-meta b, .hmsm-news-index__topics b { color: var(--hmsm-leaf); border-color: rgba(65,100,82,.38); }
.hmsm-news-index__lead h2 { max-width: 1000px; margin: 18px 0; font-family: var(--hmsm-serif); font-size: clamp(2rem, 5vw, 4.6rem); font-weight: 500; line-height: 1.2; }
.hmsm-news-index__lead > p:not(.hmsm-news-meta) { max-width: 780px; color: var(--hmsm-muted); }
.hmsm-news-index__topics { padding-top: clamp(36px, 6vw, 64px); }
.hmsm-news-index__lead-image { display: block; margin: 0 0 clamp(24px, 4vw, 42px); overflow: hidden; border-radius: var(--hmsm-radius); box-shadow: var(--hmsm-shadow); }
.hmsm-news-index__lead-image img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.hmsm-news-index__topics > h2 { margin: 0 0 20px; font-family: var(--hmsm-serif); font-size: 2rem; }
.hmsm-news-index__topics ol { margin: 0; padding: 0; list-style: none; }
.hmsm-news-index__topics li { border-top: 1px solid var(--hmsm-line); }
.hmsm-news-index__topics article { display: grid; grid-template-columns: 180px 1fr minmax(220px, .65fr); gap: 24px; align-items: baseline; padding: 24px 0; }
.hmsm-news-index__topics article > p { display: flex; flex-direction: column; align-items: start; gap: 8px; margin: 0; color: var(--hmsm-muted); font-size: .68rem; }
.hmsm-news-index__topics h3 { margin: 0; font-family: var(--hmsm-serif); font-size: 1.35rem; line-height: 1.45; }
.hmsm-news-index__topics h3 a { text-decoration: none; }
.hmsm-news-index__topics article > span { color: var(--hmsm-muted); font-size: .78rem; }
.hmsm-news-trustline { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 18px; }
.hmsm-news-trustline strong { color: var(--hmsm-leaf); border-color: rgba(65,100,82,.38); }
.hmsm-news-trustline span { color: var(--hmsm-muted); font-size: .72rem; }

.hmsm-hero { position: relative; overflow: hidden; padding: clamp(32px, 4vw, 54px) 0 0; background: linear-gradient(145deg, #fffdf8 20%, #faf4ec 100%); }
.hmsm-hero .hmsm-shell { width: min(1500px, calc(100% - 64px)); }
.hmsm-hero::after { content: "花"; position: absolute; right: max(2vw, 16px); bottom: -14vw; color: rgba(216,88,121,.055); font: 700 min(47vw, 640px)/1 var(--hmsm-serif); pointer-events: none; }
.hmsm-hero__layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); align-items: center; gap: clamp(24px, 4vw, 60px); padding-bottom: clamp(34px, 4vw, 52px); }
.hmsm-hero__copy { position: relative; z-index: 2; padding-left: clamp(0px, calc((100vw - 1260px) / 2), 160px); }
.hmsm-kicker { margin: 0 0 16px; color: var(--hmsm-leaf); font-size: .78rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.hmsm-hero h1 { max-width: 760px; margin: 0; font-family: var(--hmsm-serif); font-size: clamp(3rem, 5.6vw, 5.25rem); font-weight: 500; line-height: 1.02; letter-spacing: -.04em; }
.hmsm-hero h1 em { color: var(--hmsm-petal-strong); font-style: normal; }
.hmsm-hero__lead { max-width: 610px; margin: 18px 0 0; font-size: clamp(.98rem, 1.25vw, 1.08rem); line-height: 1.75; }
.hmsm-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.hmsm-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 20px; border: 1px solid var(--hmsm-ink); border-radius: 999px; text-decoration: none; font-size: .86rem; font-weight: 800; transition: .2s ease; }
.hmsm-button--primary { color: #fff; border-color: var(--hmsm-ink); background: var(--hmsm-ink); }
.hmsm-button:hover, .hmsm-button:focus-visible { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(37,34,31,.15); }
.hmsm-hero__visual { position: relative; width: min(47vw, 580px); margin: 0; justify-self: end; }
.hmsm-hero__visual::before { content: ""; position: absolute; inset: 18px -18px -18px 18px; z-index: -1; border-radius: 34% 3% 34% 3%; background: var(--hmsm-leaf-soft); }
.hmsm-hero__visual img { display: block; width: 100%; aspect-ratio: 1.25; object-fit: cover; object-position: 67% center; border-radius: 3% 34% 3% 34%; box-shadow: 0 24px 60px rgba(69,49,43,.18); }
.hmsm-hero__visual figcaption { position: absolute; right: -12px; bottom: 24px; padding: 11px 15px; color: var(--hmsm-ink); border: 1px solid rgba(37,34,31,.14); background: rgba(255,253,248,.9); font-size: .58rem; font-weight: 900; letter-spacing: .16em; line-height: 1.5; transform: rotate(3deg); }

.hmsm-section { padding: clamp(64px, 8vw, 112px) 0; }
.hmsm-section--ink { color: #fff; background: var(--hmsm-ink); }
.hmsm-section--soft { background: var(--hmsm-leaf-soft); }
.hmsm-section__head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 34px; }
.hmsm-section__head h2 { margin: 0; font-family: var(--hmsm-serif); font-size: clamp(2rem, 4vw, 3.8rem); font-weight: 500; line-height: 1.2; }
.hmsm-section__head p { max-width: 480px; margin: 0; color: var(--hmsm-muted); }
.hmsm-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 22px; }
.hmsm-card { grid-column: span 4; overflow: hidden; min-height: 280px; padding: 28px; border: 1px solid var(--hmsm-line); border-radius: var(--hmsm-radius); background: #fff; box-shadow: var(--hmsm-shadow); }
.hmsm-card--wide { grid-column: span 6; }
.hmsm-card__eyebrow { color: var(--hmsm-petal-strong); font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.hmsm-card h2, .hmsm-card h3 { margin: 14px 0 12px; font-family: var(--hmsm-serif); font-size: 1.55rem; font-weight: 600; line-height: 1.35; }
.hmsm-card h2 a, .hmsm-card h3 a { text-decoration: none; }
.hmsm-card p { color: var(--hmsm-muted); }
.hmsm-card__meta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 22px; color: var(--hmsm-muted); font-size: .78rem; }
.hmsm-card--flower { position: relative; padding-top: 64px; transition: transform .22s ease, box-shadow .22s ease; }
.hmsm-card--flower:has(.hmsm-card__photo) { padding-top: 0; }
.hmsm-card__photo { display: block; margin: -1px -1px 24px; overflow: hidden; border-radius: var(--hmsm-radius) var(--hmsm-radius) 0 0; background: #f4eee8; }
.hmsm-card__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .35s ease; }
.hmsm-card--article { padding: 0; }
.hmsm-card--article .hmsm-card__photo { margin: 0; }
.hmsm-card--article .hmsm-card__photo img { aspect-ratio: 3 / 2; }
.hmsm-card--article .hmsm-card__body { padding: 26px 28px 30px; }
.hmsm-card--article:hover .hmsm-card__photo img { transform: scale(1.025); }
.hmsm-card--flower:hover .hmsm-card__photo img { transform: scale(1.025); }
.hmsm-card--flower:has(.hmsm-card__photo) .hmsm-card__number { top: 22px; color: #fff; text-shadow: 0 2px 16px rgba(37,34,31,.55); }
.hmsm-card--flower:hover { transform: translateY(-5px); box-shadow: 0 26px 66px rgba(79,57,47,.15); }
.hmsm-card__number { position: absolute; top: 20px; right: 24px; color: rgba(216,88,121,.22); font: 500 2.4rem/1 var(--hmsm-serif); }
.hmsm-card__link, .hmsm-text-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; color: var(--hmsm-leaf); text-decoration: none; font-size: .83rem; font-weight: 800; }
.hmsm-card__link span, .hmsm-text-link span { transition: transform .2s ease; }
.hmsm-card__link:hover span, .hmsm-text-link:hover span { transform: translateX(4px); }
.hmsm-empty { grid-column: 1 / -1; padding: 34px; border: 1px dashed var(--hmsm-line); border-radius: var(--hmsm-radius); color: var(--hmsm-muted); text-align: center; }
.hmsm-section__action { margin: 34px 0 0; text-align: right; }

.hmsm-section--hub { background: #f4eee8; }
.hmsm-content-hub { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; }
.hmsm-content-banner { position: relative; grid-column: span 4; min-height: 320px; overflow: hidden; color: #fff; border-radius: 26px; box-shadow: var(--hmsm-shadow); text-decoration: none; isolation: isolate; }
.hmsm-content-banner:first-child, .hmsm-content-banner:nth-child(2) { grid-column: span 6; min-height: 390px; }
.hmsm-content-banner img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.hmsm-content-banner--comic img { object-position: center 14%; }
.hmsm-content-banner--characters img { object-position: center 22%; }
.hmsm-content-banner__veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20,24,21,.03) 16%, rgba(24,27,24,.88) 100%); }
.hmsm-content-banner__copy { position: absolute; inset: auto 0 0; display: flex; flex-direction: column; padding: clamp(22px, 4vw, 34px); }
.hmsm-content-banner__copy small { font-size: .65rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.hmsm-content-banner__copy strong { margin-top: 6px; font-family: var(--hmsm-serif); font-size: clamp(1.65rem, 3vw, 2.55rem); line-height: 1.2; }
.hmsm-content-banner__copy span { max-width: 36em; margin-top: 8px; color: rgba(255,255,255,.86); font-size: .82rem; }
.hmsm-content-banner__copy b { margin-top: 16px; font-size: .78rem; }
.hmsm-content-banner__copy i { margin-left: 5px; font-style: normal; transition: transform .2s ease; }
.hmsm-content-banner:hover img, .hmsm-content-banner:focus-visible img { transform: scale(1.035); }
.hmsm-content-banner:hover i, .hmsm-content-banner:focus-visible i { display: inline-block; transform: translateX(4px); }

.hmsm-character-lineup { margin: 0 0 34px; overflow: hidden; border-radius: 30px; background: #f4eee8; box-shadow: var(--hmsm-shadow); }
.hmsm-character-lineup img { display: block; width: 100%; max-height: 660px; object-fit: cover; object-position: center 24%; }
.hmsm-character-lineup figcaption { padding: 14px 20px; color: var(--hmsm-muted); font-size: .75rem; }
.hmsm-character-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.hmsm-character-card { padding: 26px; border: 1px solid var(--hmsm-line); border-radius: 22px; background: #fff; }
.hmsm-character-card p { margin: 0; color: var(--hmsm-petal-strong); font-size: .68rem; font-weight: 900; letter-spacing: .08em; }
.hmsm-character-card h2 { margin: 10px 0; font-family: var(--hmsm-serif); font-size: 1.7rem; }
.hmsm-character-card > span { display: block; color: var(--hmsm-muted); font-size: .82rem; }
.hmsm-character-card a { display: inline-block; margin-top: 18px; color: var(--hmsm-leaf); font-size: .76rem; font-weight: 800; text-decoration: none; }
.hmsm-character-card i { font-style: normal; }
.hmsm-character-grid--profiles { align-items: stretch; }
.hmsm-character-card--profile { padding: 0; overflow: hidden; }
.hmsm-character-card__image { display: block; margin: 0; }
.hmsm-character-card__image img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; }
.hmsm-character-card__body { padding: 24px; }
.hmsm-character-card__body h2 a { margin: 0; color: inherit; font-size: inherit; font-weight: inherit; text-decoration: none; }
.hmsm-section--compact { padding-bottom: 0; }

.hmsm-section--order { background: linear-gradient(135deg, #e9f0eb 0%, #f6eee7 100%); }
.hmsm-order { display: grid; grid-template-columns: minmax(210px, .55fr) minmax(230px, .7fr) minmax(360px, 1.05fr); gap: clamp(22px, 4vw, 52px); align-items: center; }
.hmsm-order__intro h2 { margin: 0 0 24px; font-family: var(--hmsm-serif); font-size: clamp(2.8rem, 5.5vw, 5.8rem); font-weight: 500; line-height: 1.08; }
.hmsm-order__intro > p:last-child { max-width: 420px; color: #58645c; }
.hmsm-order__photo { margin: 0; align-self: stretch; min-height: 470px; overflow: hidden; border-radius: 48% 48% 8px 8px; box-shadow: var(--hmsm-shadow); }
.hmsm-order__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 56% center; }
.hmsm-order__card { position: relative; padding: clamp(28px, 5vw, 54px); border: 1px solid rgba(37,34,31,.16); border-radius: 4px; background: rgba(255,253,248,.94); box-shadow: 18px 18px 0 rgba(65,100,82,.13); transform: rotate(-1deg); }
.hmsm-order__card::before { content: ""; position: absolute; top: -14px; left: 42%; width: 116px; height: 28px; background: rgba(246,217,223,.8); transform: rotate(2deg); }
.hmsm-order__label { margin: 0 0 22px; color: var(--hmsm-petal-strong); font-size: .68rem; font-weight: 900; letter-spacing: .18em; }
.hmsm-order__card dl { margin: 0; }
.hmsm-order__card dl > div { display: grid; grid-template-columns: 130px 1fr; gap: 18px; padding: 13px 0; border-bottom: 1px dotted rgba(37,34,31,.22); }
.hmsm-order__card dt { color: var(--hmsm-muted); font-size: .77rem; font-weight: 800; }
.hmsm-order__card dd { margin: 0; font-size: .9rem; }
.hmsm-order__example { margin: 24px 0 12px; padding: 16px; background: #f8f2ea; font-family: var(--hmsm-serif); font-size: 1rem; }
.hmsm-order__card small { display: block; color: var(--hmsm-muted); font-size: .68rem; }

.hmsm-dual { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.hmsm-dual__panel { position: relative; min-height: 360px; padding: clamp(30px, 5vw, 58px); border-radius: var(--hmsm-radius); overflow: hidden; }
.hmsm-dual__panel:first-child { background: var(--hmsm-leaf-soft); }
.hmsm-dual__panel:last-child { color: #fff; background: var(--hmsm-leaf); }
.hmsm-dual h2 { margin: 0 0 18px; font-family: var(--hmsm-serif); font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 500; line-height: 1.18; }

.hmsm-manifesto { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(40px, 10vw, 150px); align-items: start; }
.hmsm-manifesto__photo { position: relative; grid-column: 1 / -1; margin: 0 0 clamp(12px, 3vw, 34px); overflow: hidden; border-radius: 3px 54px 3px 54px; }
.hmsm-manifesto__photo img { display: block; width: 100%; aspect-ratio: 2.35; object-fit: cover; object-position: center 54%; opacity: .96; }
.hmsm-manifesto__photo figcaption { position: absolute; left: 22px; bottom: 20px; max-width: calc(100% - 44px); padding: 9px 13px; color: var(--hmsm-ink); background: rgba(255,253,248,.9); font-family: var(--hmsm-serif); font-size: .9rem; }
.hmsm-manifesto .hmsm-kicker { color: #e49aab; }
.hmsm-manifesto h2 { margin: 0; font-family: var(--hmsm-serif); font-size: clamp(2.4rem, 5vw, 5.2rem); font-weight: 500; line-height: 1.2; }
.hmsm-manifesto__copy { padding-top: 32px; }
.hmsm-manifesto__copy p { margin: 0; color: #d5d0c9; font-size: clamp(1rem, 1.5vw, 1.14rem); }
.hmsm-manifesto__copy p + p { margin-top: 1.8em; }
.hmsm-policy { display: grid; grid-template-columns: minmax(240px, .65fr) minmax(0, 1.35fr); gap: clamp(44px, 9vw, 130px); }
.hmsm-policy__intro { position: sticky; top: 115px; align-self: start; }
.hmsm-policy__intro h2 { margin: 0 0 24px; font-family: var(--hmsm-serif); font-size: clamp(2.7rem, 5vw, 5.4rem); font-weight: 500; line-height: 1.15; }
.hmsm-policy__intro > p:last-child { color: var(--hmsm-muted); font-size: .72rem; }
.hmsm-policy__items { border-top: 1px solid var(--hmsm-line); }
.hmsm-policy__items article { display: grid; grid-template-columns: 50px 1fr; gap: 18px; padding: 30px 0; border-bottom: 1px solid var(--hmsm-line); }
.hmsm-policy__items article > span { color: var(--hmsm-petal-strong); font-size: .7rem; font-weight: 900; }
.hmsm-policy__items h3 { margin: 0 0 10px; font-family: var(--hmsm-serif); font-size: 1.35rem; }
.hmsm-policy__items p { margin: 0; color: var(--hmsm-muted); }
.hmsm-smallprint { display: grid; grid-template-columns: .65fr 1.35fr; gap: clamp(40px, 8vw, 110px); }
.hmsm-smallprint h2 { margin: 0; font-family: var(--hmsm-serif); font-size: clamp(2.3rem, 4vw, 4rem); font-weight: 500; line-height: 1.25; }
.hmsm-smallprint__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 34px; }
.hmsm-smallprint__grid h3 { margin: 0 0 8px; font-family: var(--hmsm-serif); font-size: 1.05rem; }
.hmsm-smallprint__grid p { margin: 0; color: #56655d; font-size: .82rem; }

.site-main { min-height: 65vh; }
.entry-wrap { width: min(820px, calc(100% - 40px)); margin: 0 auto; padding: 72px 0 110px; }
.entry-wrap--wide { width: min(1180px, calc(100% - 40px)); }
.entry-header { margin-bottom: 42px; }
.entry-title {
  max-width: 34em;
  margin: 0;
  font-family: var(--hmsm-serif);
  font-size: clamp(2rem, 3.2vw, 2.8rem);
  font-weight: 500;
  line-height: 1.28;
  letter-spacing: -.015em;
  overflow-wrap: anywhere;
}
.entry-meta { margin-top: 16px; color: var(--hmsm-muted); font-size: .85rem; }
.entry-content { font-size: 1.04rem; }
.entry-content > * + * { margin-top: 1.6em; }
.entry-content h2, .entry-content h3 { font-family: var(--hmsm-serif); line-height: 1.35; }
.entry-featured { margin: 0 0 clamp(34px, 6vw, 64px); }
.entry-featured img { display: block; width: 100%; border-radius: var(--hmsm-radius); box-shadow: var(--hmsm-shadow); }
.hmsm-visual-note { margin: -14px 0 28px; color: var(--hmsm-muted); font-size: .76rem; }
.hmsm-stat-card { margin: 34px 0 42px; padding: clamp(24px, 4vw, 38px); border: 1px solid var(--hmsm-line); border-radius: var(--hmsm-radius); background: #fffaf6; }
.hmsm-stat-card h2 { margin-top: 0; }
.hmsm-stat-bars { display: grid; gap: 18px; margin: 22px 0; }
.hmsm-stat-bars > div { display: grid; grid-template-columns: minmax(130px, .55fr) minmax(210px, 1fr); gap: 5px 18px; align-items: end; }
.hmsm-stat-bars strong { font-size: .88rem; }
.hmsm-stat-bars span { color: var(--hmsm-muted); font-size: .75rem; text-align: right; }
.hmsm-stat-bars i { grid-column: 1 / -1; display: block; width: 100%; height: 10px; overflow: hidden; border-radius: 999px; background: #eadfd8; }
.hmsm-stat-bars i::after { content: ''; display: block; width: var(--hmsm-bar); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--hmsm-leaf), var(--hmsm-petal-strong)); }
.hmsm-stat-table { width: 100%; margin: 26px 0; border-collapse: collapse; font-size: .82rem; }
.hmsm-stat-table caption { margin-bottom: 10px; color: var(--hmsm-muted); text-align: left; font-weight: 800; }
.hmsm-stat-table th, .hmsm-stat-table td { padding: 10px 12px; border: 1px solid var(--hmsm-line); text-align: left; }
.hmsm-stat-table thead th { background: var(--hmsm-leaf-soft); }
.hmsm-stat-card > p:last-child { margin-bottom: 0; color: var(--hmsm-muted); font-size: .72rem; }
.hmsm-character-visuals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 3vw, 28px); margin: 0 0 clamp(34px, 6vw, 64px); }
.hmsm-character-visuals figure { position: relative; margin: 0; overflow: hidden; border-radius: var(--hmsm-radius); background: #f5eee9; box-shadow: var(--hmsm-shadow); }
.hmsm-character-visuals figure > span { position: absolute; z-index: 1; top: 16px; left: 16px; padding: 8px 12px; border-radius: 999px; background: rgba(255,255,255,.9); color: var(--hmsm-ink); font-size: .68rem; font-weight: 900; letter-spacing: .06em; }
.hmsm-character-visuals img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; }
.hmsm-character-snapshot { margin: 0 0 clamp(34px, 6vw, 58px); padding: clamp(24px, 5vw, 38px); border: 1px solid rgba(216,88,121,.24); border-radius: var(--hmsm-radius); background: linear-gradient(145deg, #fff9f6, #f6eee9); }
.hmsm-character-snapshot__eyebrow { margin: 0; color: var(--hmsm-petal-strong); font-size: .68rem; font-weight: 900; letter-spacing: .13em; }
.hmsm-character-snapshot h2 { margin: 8px 0 24px; font-family: var(--hmsm-serif); font-size: clamp(1.7rem, 4vw, 2.35rem); font-weight: 500; }
.hmsm-character-snapshot dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; }
.hmsm-character-snapshot__item { padding: 18px 20px; border: 1px solid var(--hmsm-line); border-radius: 16px; background: rgba(255,255,255,.84); }
.hmsm-character-snapshot__item--wish { grid-column: 1 / -1; background: #fff; }
.hmsm-character-snapshot dt { color: var(--hmsm-petal-strong); font-size: .72rem; font-weight: 900; letter-spacing: .04em; }
.hmsm-character-snapshot dd { margin: 7px 0 0; font-size: .94rem; line-height: 1.75; }
.entry-content > blockquote:first-child { margin: 0 0 2em; padding: 24px clamp(20px, 5vw, 34px); border-left: 4px solid var(--hmsm-petal-strong); border-radius: 0 16px 16px 0; background: #fff7f5; font-family: var(--hmsm-serif); font-size: clamp(1.2rem, 3vw, 1.55rem); line-height: 1.75; }
.entry-content .hmsm-character-naming { padding: 14px 18px; border-radius: 14px; background: var(--hmsm-leaf-soft); color: #3d5247; font-size: .88rem; }
.entry-content .hmsm-character-relations { padding-left: 1.25em; }
.entry-content .hmsm-character-relations li + li { margin-top: .75em; }
.entry-content .hmsm-character-relations strong { color: var(--hmsm-leaf); }
.hmsm-character-destinations { margin-top: clamp(52px, 8vw, 88px); }
.hmsm-destination-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.hmsm-destination-card { position: relative; display: block; min-height: 320px; overflow: hidden; border-radius: var(--hmsm-radius); color: #fff; box-shadow: var(--hmsm-shadow); text-decoration: none; }
.hmsm-destination-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 25%, rgba(26,24,22,.86)); }
.hmsm-destination-card img { display: block; width: 100%; height: 100%; min-height: 320px; object-fit: cover; transition: transform .35s ease; }
.hmsm-destination-card:hover img { transform: scale(1.025); }
.hmsm-destination-card > span { position: absolute; z-index: 1; right: 24px; bottom: 24px; left: 24px; }
.hmsm-destination-card strong, .hmsm-destination-card small { display: block; }
.hmsm-destination-card strong { font-family: var(--hmsm-serif); font-size: clamp(1.5rem, 3vw, 2.2rem); }
.hmsm-destination-card small { margin-top: 8px; font-size: .82rem; line-height: 1.7; }
.hmsm-facts { margin: 28px 0; padding: 26px; border: 1px solid var(--hmsm-line); border-radius: 18px; background: #fff; }
.hmsm-facts dl { display: grid; grid-template-columns: minmax(110px, .35fr) 1fr; gap: 10px 20px; margin: 0; }
.hmsm-facts dt { color: var(--hmsm-muted); font-size: .82rem; font-weight: 800; }
.hmsm-facts dd { margin: 0; }
.hmsm-notice { margin: 0 0 34px; padding: 18px 20px; color: #4f5f56; border-left: 4px solid var(--hmsm-leaf); background: var(--hmsm-leaf-soft); font-size: .84rem; }
.hmsm-character-bridge { margin-top: 52px; padding: clamp(24px, 5vw, 38px); border: 1px solid rgba(216,88,121,.24); border-radius: var(--hmsm-radius); background: linear-gradient(145deg, #fff9f6, #f5eee7); }
.hmsm-character-bridge h2 { margin-top: 0; }
.hmsm-sources { margin-top: 64px; padding-top: 34px; border-top: 1px solid var(--hmsm-line); }
.hmsm-sources h2 { margin: 0 0 20px; font-family: var(--hmsm-serif); font-size: 1.65rem; }
.hmsm-sources ol { margin: 0; padding-left: 1.4em; }
.hmsm-sources li + li { margin-top: 14px; }
.hmsm-sources small { display: block; color: var(--hmsm-muted); }
.navigation.pagination { margin-top: 42px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers { display: grid; place-items: center; min-width: 40px; min-height: 40px; padding: 4px 10px; border: 1px solid var(--hmsm-line); border-radius: 999px; text-decoration: none; }
.page-numbers.current { color: #fff; border-color: var(--hmsm-ink); background: var(--hmsm-ink); }

.entry-context-nav { margin: 0 0 30px; }
.entry-context-nav a { display: inline-flex; gap: 8px; align-items: center; color: var(--hmsm-leaf); font-size: .82rem; font-weight: 800; text-decoration: none; }
.entry-context-nav span { transition: transform .2s ease; }
.entry-context-nav a:hover span { transform: translateX(-3px); }

.entry-related { margin-top: clamp(3.5rem, 8vw, 6.5rem); padding-top: 2rem; border-top: 1px solid var(--hmsm-line); }
.entry-related__head { display: flex; justify-content: space-between; align-items: end; gap: 18px; margin-bottom: 22px; }
.entry-related__head h2 { margin: 4px 0 0; font-family: var(--hmsm-serif); font-size: clamp(2rem, 4vw, 3rem); font-weight: 500; }
.entry-related__head > a { color: var(--hmsm-leaf); font-size: .8rem; font-weight: 800; text-decoration: none; }
.entry-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.entry-related__card { overflow: hidden; border: 1px solid var(--hmsm-line); border-radius: 18px; background: #fff; }
.entry-related__image { display: block; overflow: hidden; }
.entry-related__image img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .3s ease; }
.entry-related__card:hover img { transform: scale(1.025); }
.entry-related__card > div { padding: 16px 17px 19px; }
.entry-related__card time { color: var(--hmsm-petal-strong); font-size: .65rem; font-weight: 800; letter-spacing: .08em; }
.entry-related__card h3 { margin: 8px 0; font-family: var(--hmsm-serif); font-size: 1.05rem; line-height: 1.45; }
.entry-related__card h3 a { text-decoration: none; }
.entry-related__card p { margin: 0; color: var(--hmsm-muted); font-size: .75rem; line-height: 1.65; }

.content-discovery { margin-top: clamp(4rem, 9vw, 8rem); padding-top: clamp(2rem, 5vw, 3.5rem); border-top: 1px solid var(--hmsm-line); }
.content-discovery__head { max-width: 680px; margin-bottom: 24px; }
.content-discovery__head h2 { margin: 4px 0 8px; font-family: var(--hmsm-serif); font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 500; }
.content-discovery__head > p:last-child { color: var(--hmsm-muted); }
.content-discovery__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.content-discovery__card { display: flex; flex-direction: column; min-height: 190px; padding: 22px; border: 1px solid var(--hmsm-line); border-radius: 20px; background: linear-gradient(145deg, #fff, #faf4ef); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.content-discovery__card:hover { transform: translateY(-3px); box-shadow: var(--hmsm-shadow); border-color: rgba(216, 88, 121, .3); }
.content-discovery__card.is-current { background: linear-gradient(145deg, #fff7f7, #f7ebe9); border-color: rgba(216, 88, 121, .3); }
.content-discovery__card small { color: var(--hmsm-petal-strong); font-size: .6rem; font-weight: 900; letter-spacing: .15em; }
.content-discovery__card strong { margin-top: 7px; font-family: var(--hmsm-serif); font-size: 1.3rem; }
.content-discovery__card span { margin-top: 7px; color: var(--hmsm-muted); font-size: .75rem; line-height: 1.65; }
.content-discovery__card b { margin-top: auto; padding-top: 14px; color: var(--hmsm-leaf); font-size: .72rem; }
.content-discovery__card i { margin-left: 4px; font-style: normal; }

.hmsm-article-index { min-height: 70vh; padding: clamp(58px, 8vw, 104px) 0; background: #faf7f1; }
.hmsm-article-index__header { max-width: 900px; margin-bottom: clamp(34px, 6vw, 64px); }
.hmsm-article-index__header h1 { margin: 6px 0 14px; font-family: var(--hmsm-serif); font-size: clamp(2.7rem, 7vw, 5.6rem); font-weight: 500; line-height: 1.12; }
.hmsm-article-index__header > p:last-child { max-width: 720px; color: var(--hmsm-muted); }
.hmsm-article-index__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.hmsm-article-index__grid .hmsm-card { grid-column: auto; }

.site-footer { padding: 52px 0; color: #ebe8e1; background: var(--hmsm-ink); }
.site-footer__inner { display: flex; justify-content: space-between; gap: 30px; }
.site-footer p { margin: 0; color: #bdb8b0; font-size: .82rem; }
.site-footer__brand strong { font-family: var(--hmsm-serif); font-size: 1.3rem; letter-spacing: .1em; }
.site-footer__brand p { margin-top: 9px; }
.site-footer__nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 12px 24px; }
.site-footer__nav a { color: #d8d3cb; text-decoration: none; font-size: .78rem; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 42px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); }

@media (max-width: 820px) {
  .site-header__inner { min-height: 68px; align-items: flex-start; flex-direction: column; gap: 6px; padding: 10px 0 8px; }
  .site-brand__tagline { display: none; }
  .site-nav { width: 100%; padding-bottom: 3px; }
  .site-nav ul { gap: 18px; }
  .hmsm-section__head { align-items: start; flex-direction: column; }
  .hmsm-news-desk__header, .hmsm-news-index__header { grid-template-columns: 1fr; }
  .hmsm-news-index__topics article { grid-template-columns: 130px 1fr; }
  .hmsm-news-index__topics article > span { grid-column: 2; }
  .hmsm-hero__layout { grid-template-columns: 1fr; }
  .hmsm-hero .hmsm-shell { width: min(100% - 40px, 680px); }
  .hmsm-hero__copy { padding-left: 0; }
  .hmsm-hero__visual { width: min(100%, 680px); justify-self: center; }
  .hmsm-hero__visual img { aspect-ratio: 1.75; object-position: 70% center; }
  .hmsm-card, .hmsm-card--wide { grid-column: span 6; }
  .hmsm-content-banner, .hmsm-content-banner:first-child, .hmsm-content-banner:nth-child(2) { grid-column: span 6; min-height: 330px; }
  .hmsm-character-grid { grid-template-columns: 1fr 1fr; }
  .hmsm-dual { grid-template-columns: 1fr; }
  .hmsm-manifesto, .hmsm-policy, .hmsm-smallprint, .hmsm-order { grid-template-columns: 1fr; }
  .hmsm-order__photo { min-height: 390px; border-radius: 34px 34px 8px 8px; }
  .hmsm-manifesto__photo img { aspect-ratio: 1.55; }
  .hmsm-policy__intro { position: static; }
  .hmsm-daily-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hmsm-daily-card--news { grid-column: 1 / -1; min-height: 0; }
  .hmsm-daily-card { min-height: 340px; }
  .entry-related__grid, .content-discovery__grid, .hmsm-article-index__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .hmsm-shell { width: min(100% - 28px, 1180px); }
  .entry-title {
    font-size: clamp(1.65rem, 7.6vw, 2.1rem);
    line-height: 1.3;
    letter-spacing: -.01em;
  }
  .hmsm-card, .hmsm-card--wide { grid-column: 1 / -1; }
  .hmsm-content-banner, .hmsm-content-banner:first-child, .hmsm-content-banner:nth-child(2) { grid-column: 1 / -1; min-height: 300px; }
  .hmsm-character-grid { grid-template-columns: 1fr; }
  .hmsm-news-list a { grid-template-columns: minmax(0, 1fr) 20px; gap: 5px 12px; padding: 16px 0; }
  .hmsm-news-list time { grid-column: 1; }
  .hmsm-news-list__title { grid-column: 1; overflow-wrap: anywhere; }
  .hmsm-news-list__arrow { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .hmsm-news-desk__actions { justify-content: flex-start; }
  .hmsm-news-index__topics article { grid-template-columns: 1fr; gap: 8px; }
  .hmsm-news-index__topics article > span { grid-column: 1; }
  .hmsm-character-visuals, .hmsm-destination-grid { grid-template-columns: 1fr; }
  .hmsm-character-snapshot dl { grid-template-columns: 1fr; }
  .hmsm-character-snapshot__item--wish { grid-column: auto; }
  .hmsm-hero { padding-top: 28px; }
  .hmsm-hero .hmsm-shell { width: min(100% - 28px, 680px); }
  .hmsm-hero__layout { gap: 0; }
  .hmsm-hero__copy { display: contents; }
  .hmsm-hero__copy .hmsm-kicker { order: 1; }
  .hmsm-hero__copy h1 { order: 2; font-size: clamp(2.55rem, 13vw, 3rem); }
  .hmsm-hero__visual { order: 3; margin-top: 14px; }
  .hmsm-hero__lead { order: 4; margin-top: 14px; font-size: .92rem; line-height: 1.65; overflow-wrap: anywhere; }
  .hmsm-actions { order: 5; align-items: stretch; flex-direction: row; margin-top: 14px; }
  .hmsm-button { flex: 1 1 0; width: auto; min-width: 0; padding: 0 12px; font-size: .75rem; text-align: center; }
  .hmsm-hero__visual { width: 100%; }
  .hmsm-hero__visual img { aspect-ratio: 2.05; }
  .hmsm-hero__visual figcaption { right: 8px; bottom: 12px; }
  .hmsm-smallprint__grid { grid-template-columns: 1fr; }
  .hmsm-order__card { box-shadow: 10px 10px 0 rgba(65,100,82,.13); }
  .hmsm-order__photo { min-height: 330px; }
  .hmsm-manifesto__photo img { aspect-ratio: 1.2; }
  .hmsm-order__card dl > div { grid-template-columns: 1fr; gap: 3px; }
  .site-footer__inner { flex-direction: column; }
  .site-footer__nav { justify-content: flex-start; }
  .site-footer__bottom { flex-direction: column; }
  .hmsm-facts dl { grid-template-columns: 1fr; }
  .hmsm-stat-bars > div { grid-template-columns: 1fr; }
  .hmsm-stat-bars span { text-align: left; }
  .hmsm-daily-board__header { align-items: flex-start; flex-direction: column; gap: 2px; }
  .hmsm-daily-board { grid-template-columns: 1fr; }
  .hmsm-daily-card--news { grid-column: auto; }
  .hmsm-daily-card { min-height: 0; }
  .entry-related__head { align-items: start; flex-direction: column; }
  .entry-related__grid, .content-discovery__grid, .hmsm-article-index__grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
