:root {
  --font-body: "dnp-shuei-mgothic-std","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-ja-serif: "shippori-mincho","Yu Mincho",serif;
  --font-en-serif: "ivypresto-display",Georgia,"Times New Roman",serif;
  --mint: #fcfeff;
  --mint-deep: #d6e8e4;
  --ink: #445766;
  --green: #7aafc8;
  --paper: #fcfeff;
  --cream: #f6fafc;
  --line: #dce8ec;
  --pink: #f3d6da;
  --yellow: #f5ecd0;
  --blue: #d7eaf6;
  --coral: #b9ddeb;
}

/* WordPress integration */
.admin-bar .hero-side { top:32px; height:calc(100vh - 32px); }
.wp-site-blocks { min-height:100vh; }
.wp-content-shell { width:min(100% - 32px,760px); margin:0 auto; padding:90px 0; }
.wp-content-shell article { padding:clamp(28px,5vw,58px); border-radius:24px; background:#fff; box-shadow:0 12px 36px rgba(68,87,102,.08); }
.wp-content-shell h1 { margin:0 0 20px; font:500 clamp(28px,5vw,46px)/1.5 var(--font-ja-serif); }
.wp-content-shell .entry-meta { margin-bottom:30px; color:#7a8d9a; font-size:11px; letter-spacing:.08em; }
.wp-content-shell .entry-thumbnail { margin:0 0 32px; overflow:hidden; border-radius:18px; }
.wp-content-shell .entry-thumbnail img { width:100%; height:auto; display:block; }
.wp-content-shell .entry-content { font-size:15px; line-height:2; }
.wp-content-shell .entry-content > * + * { margin-top:1.6em; }
.wp-content-shell .entry-content img { max-width:100%; height:auto; border-radius:12px; }
.wp-post-list { display:grid; gap:18px; }
.wp-post-list article { display:grid; grid-template-columns:180px 1fr; gap:24px; align-items:center; }
.wp-post-list .entry-thumbnail { margin:0; height:140px; }
.wp-post-list .entry-thumbnail img { width:100%; height:100%; object-fit:cover; }
.pagination { margin-top:36px; display:flex; gap:10px; justify-content:center; }
.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:782px) {
  .admin-bar .hero-side { top:46px; height:calc(100vh - 46px); }
}
@media (max-width:650px) {
  .wp-content-shell { width:min(100% - 24px,760px); padding:48px 0; }
  .wp-content-shell article { padding:24px 18px; border-radius:18px; }
  .wp-post-list article { grid-template-columns:110px 1fr; gap:14px; }
  .wp-post-list .entry-thumbnail { height:110px; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--ink); background:#d9ebf3; font-family:var(--font-body); font-weight:400; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
main { overflow:hidden; }
.mobile-topic,.mobile-header,.mobile-feature-index { display:none; }

.magazine-hero {
  width:min(100%,1500px);
  min-height:100vh;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(520px,640px) minmax(330px,1fr);
  align-items:start;
  background:#d9ebf3;
  position:relative;
}
.center-feed { min-width:0; grid-column:2; background:var(--paper); border-left:1px solid var(--line); border-right:1px solid var(--line); }
.inline-menu { display:none; }
.hero-side { min-width:0; padding:44px clamp(30px,4vw,62px); }
.hero-left { display:flex; flex-direction:column; position:relative; }
.hero-left.has-bg {
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  color:#fff;
}
.hero-left.has-bg:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(28,45,72,.72) 0%,rgba(22,38,64,.58) 45%,rgba(18,32,56,.74) 100%);
  pointer-events:none;
}
.hero-left.has-bg > * { position:relative; z-index:1; }
.hero-left.has-bg .today i { background:none; color:#fff; }
.hero-left.has-bg .side-note { border-top-color:rgba(255,255,255,.45); }
.hero-left.has-bg .side-note:before { color:rgba(255,255,255,.7); }
.hero-left.has-bg .side-note span,
.hero-left.has-bg .side-note p { color:#fff; }
.hero-left .logo { width:clamp(232px,18vw,300px); }
.logo { display:block; line-height:0; }
.logo img { display:block; width:100%; height:auto; }
.today { margin-top:80px; width:auto; display:flex; flex-direction:row; align-items:baseline; gap:8px; font:400 32px/1 var(--font-en-serif); font-variant-numeric:lining-nums tabular-nums; }
.today > span { display:inline; width:auto; text-align:left; }
.today i { display:inline-block; width:auto; height:auto; margin:0; background:none; transform:none; font-style:normal; line-height:1; }
.today i:before { content:"/"; }
.today small { margin-left:6px; font:12px Arial,sans-serif; letter-spacing:.1em; }
.season-word {
  width:auto;
  height:auto;
  margin:22px 0 0;
  padding:0;
  border:0;
  border-radius:0;
  display:block;
  background:transparent;
  font-family:var(--font-ja-serif);
  font-size:15px;
  line-height:1.6;
  letter-spacing:.06em;
  writing-mode:horizontal-tb;
  white-space:normal;
}
.hero-left.has-bg .season-word {
  border-color:transparent;
  background:transparent;
  color:#fff;
}
.side-note { width:min(210px,100%); margin-top:auto; padding:17px 0 2px; border-top:1px solid #aab4bd; position:relative; }
.side-note:before { content:"01"; position:absolute; right:0; top:15px; color:#7aafc8; font:italic 12px var(--font-en-serif); }
.side-note span { display:block; padding-right:30px; color:#607d91; font:500 10px var(--font-en-serif); letter-spacing:.14em; text-transform:uppercase; }
.side-note p { margin:11px 0 0; font-family:var(--font-ja-serif); font-size:13px; line-height:1.9; letter-spacing:.03em; }

.feature-stage { position:relative; padding:18px 34px 48px; min-width:0; min-height:820px; overflow:hidden; cursor:grab; touch-action:pan-y; }
.feature-stage.is-dragging { cursor:grabbing; }
.feature-stage.is-dragging { user-select:none; }
.feature-stage.is-dragging a { pointer-events:none; }
.feature-slides { position:relative; height:720px; }
.feature-card { display:flex; flex-direction:column; background:var(--paper); height:720px; border-radius:24px; overflow:hidden; }
.feature-main { width:100%; position:relative; z-index:2; border:1px solid rgba(78,76,69,.16); box-shadow:0 18px 45px rgba(88,79,68,.1); }
.feature-main[data-feature-slide] { position:absolute; inset:0; opacity:0; visibility:hidden; transform:translateX(3%); transition:opacity .65s ease,transform .65s ease,visibility .65s; pointer-events:none; }
.feature-main[data-feature-slide].is-active { opacity:1; visibility:visible; transform:translateX(0); pointer-events:auto; }
.feature-peek { display:none; }
.feature-art { display:block; flex:0 0 68%; min-height:0; position:relative; overflow:hidden; }
.family-art { background:#e9e6df; }
.family-art:before { display:none; }
.family-art img,.story-art img,.season-art img,.special-visual img,.profile-art img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.7) contrast(.9) brightness(1.07); transition:transform .6s ease,filter .6s ease; }
.family-art img { object-position:60% center; }
.family-art .photo-number { position:absolute; left:18px; bottom:15px; color:white; font:italic 34px var(--font-en-serif); text-shadow:0 1px 12px rgba(0,0,0,.35); }
.big-sun { position:absolute; width:150px; height:150px; background:var(--yellow); border-radius:50%; right:15%; top:13%; }
.hill { position:absolute; border-radius:50% 50% 0 0; bottom:-50px; }
.hill-one { background:#a9c8bd; width:430px; height:190px; left:-100px; }
.hill-two { background:#d7c4a8; width:440px; height:160px; right:-190px; }
.adult,.kid { position:absolute; bottom:30px; border-radius:90px 90px 12px 12px; }
.adult { width:120px; height:235px; left:38%; background:#c57860; }
.adult:before,.kid:before { content:""; position:absolute; border-radius:50%; background:#5d6f64; }
.adult:before { width:72px; height:72px; left:24px; top:-51px; }
.adult:after { content:""; position:absolute; width:70px; height:18px; background:#c57860; right:-45px; top:95px; transform:rotate(-25deg); border-radius:10px; }
.kid { width:67px; height:125px; left:65%; background:#e2c46e; }
.kid:before { width:46px; height:46px; left:10px; top:-33px; }
.bird { position:absolute; right:22%; top:12%; font-size:27px; transform:rotate(-8deg); }
.feature-caption { flex:1 1 32%; min-height:0; text-align:center; padding:28px 26px; border-top:1px solid #e6ecf0; background:#fcfeff; }
.feature-caption p { margin:0 0 10px; color:var(--green); font:10px Arial,sans-serif; letter-spacing:.24em; }
.feature-caption h1 { margin:0; font:500 clamp(26px,2.6vw,40px)/1.45 var(--font-ja-serif); letter-spacing:.04em; }
.feature-caption h1 a { color:inherit; text-decoration:none; }
.feature-caption span { display:block; margin-top:12px; font-size:11px; color:#6b756f; }
.quiet-art { background:#d8cbb5; }
.quiet-art span { position:absolute; width:180px; height:240px; border-radius:90px 90px 0 0; background:#84978f; bottom:0; left:28%; }
.feature-index { position:absolute; bottom:22px; left:50%; transform:translateX(-50%); z-index:3; display:flex; align-items:center; gap:9px; font:11px Arial,sans-serif; letter-spacing:.1em; }
.feature-index b { font-size:20px; margin-right:8px; }
.feature-index button,.mobile-feature-index button { border:0; background:transparent; color:inherit; cursor:pointer; padding:5px; font:inherit; }

.hero-right { padding-left:35px; padding-right:35px; }
.top-tools { display:flex; justify-content:flex-end; gap:8px; }
.top-tools button { border:0; color:white; background:var(--green); height:38px; padding:0 25px; border-radius:20px; font:10px Arial,sans-serif; letter-spacing:.16em; cursor:pointer; box-shadow:0 4px 12px rgba(73,105,94,.12); }
.top-tools button.search { width:38px; padding:0; font-size:19px; }
.side-instagram { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:transparent; box-shadow:none; }
.side-instagram img { width:24px; height:24px; display:block; }
.round-menu { display:grid; grid-template-columns:repeat(3,minmax(75px,1fr)); margin-top:34px; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:rgba(255,253,248,.72); }
.round-menu a { padding:18px 4px 14px; display:grid; justify-items:center; border-bottom:1px solid var(--line); min-width:0; }
.round-menu a:not(:nth-child(3n)) { border-right:1px solid var(--line); }
.round-menu .cat-icon,.inline-menu .cat-icon,.site-menu-categories .cat-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:44% 56% 47% 53% / 55% 46% 54% 45%; font:22px Georgia,serif; color:var(--ink); transform:rotate(-2deg); overflow:hidden; }
.round-menu a:nth-child(2) .cat-icon { transform:rotate(3deg); }
.round-menu a:nth-child(3) .cat-icon { transform:rotate(-4deg); }
.round-menu .cat-icon img,.inline-menu .cat-icon img,.site-menu-categories .cat-icon img { width:60%; height:60%; display:block; object-fit:contain; }
.round-menu strong { margin-top:10px; font:9px Arial,sans-serif; letter-spacing:.17em; }
.round-menu small { margin-top:3px; font-size:9px; color:#68726c; }
.ranking-widget { margin-top:27px; }
.ranking-link { display:flex; flex-direction:column; align-items:center; }
.ranking-crown { width:28px; height:28px; margin-bottom:3px; object-fit:contain; }
.ranking-link b { font:29px/1.4 var(--font-en-serif); letter-spacing:.05em; }
.ranking-tabs { display:inline-flex; align-items:center; gap:0; margin:12px auto 0; padding:3px; border:1px solid #c5d5dd; border-radius:999px; background:rgba(255,255,255,.72); }
.ranking-widget .ranking-tabs { display:flex; width:100%; max-width:210px; margin-top:14px; margin-bottom:4px; }
.ranking-tab { flex:1; min-height:30px; padding:0 12px; border:0; border-radius:999px; background:transparent; color:#6f8794; cursor:pointer; font:8px/1 Arial,sans-serif; letter-spacing:.14em; transition:background .25s ease,color .25s ease; }
.ranking-tab.is-active { background:#7aafc8; color:#fff; }
.ranking-tab:disabled { opacity:.4; cursor:default; }
.hero-ranking { margin-top:12px; border-top:1px solid var(--line); }
.hero-ranking a { min-height:78px; display:grid; grid-template-columns:28px 60px 1fr; align-items:center; gap:10px; border-bottom:1px solid var(--line); }
.hero-ranking a > img { width:60px; height:60px; display:block; border-radius:12px; object-fit:cover; filter:saturate(.72) brightness(1.05); }
.hero-ranking span { font:italic 18px var(--font-en-serif); color:var(--green); text-align:center; }
.hero-ranking b { font:500 12px/1.55 var(--font-ja-serif); }
.trend-line { min-height:64px; display:flex; align-items:center; gap:12px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:10px 24px; overflow:auto; white-space:nowrap; font-size:9px; letter-spacing:.06em; background:#f6fafc; }
.trend-line b { font:italic 14px var(--font-en-serif); letter-spacing:.05em; color:var(--green); }
.trend-line a { padding:6px 12px; border:1px solid #bbc9c1; border-radius:20px; background:rgba(255,255,255,.58); }

.section-wrap { width:100%; max-width:none; margin:0; padding:90px 34px; background:var(--paper); }
.editorial-heading { position:relative; margin-bottom:55px; text-align:center; }
.editorial-heading p,.special-heading p { font-size:11px; letter-spacing:.13em; }
.editorial-heading p span { display:inline-block; margin-right:5px; padding:4px 8px; border-radius:12px; background:#f3d6da; color:#445766; font-weight:bold; transform:rotate(-2deg); }
.editorial-heading h2,.season-title h2,.special-heading h2,.ranking h2 { margin:7px 0; font:400 italic 47px var(--font-en-serif); letter-spacing:-.02em; }
.editorial-heading > a { position:absolute; right:0; bottom:5px; padding-bottom:8px; border-bottom:1px solid var(--ink); font-size:11px; }
.stories-grid { display:grid; grid-template-columns:1fr; gap:18px; }
.story-card { min-height:238px; display:grid; grid-template-columns:43% 1fr; overflow:hidden; border:1px solid #dce8ec; border-radius:22px; background:#fff; box-shadow:0 9px 26px rgba(68,87,102,.055); }
.story-card:nth-child(even) { grid-template-columns:1fr 43%; }
.story-card:nth-child(even) .story-art { order:2; }
.story-card:nth-child(even) .story-copy { order:1; }
.story-art { display:block; height:100%; min-height:238px; position:relative; overflow:hidden; background:#ddd; }
.story-art.morning { background:#accabf; }
.story-art.home { background:#dbc9af; }
.story-art.rain { background:#afcbd0; }
.story-art.food { background:#e1c5b8; }
.story-art:before { content:""; position:absolute; width:150px; height:150px; border:1px solid rgba(36,42,38,.35); border-radius:50%; top:-44px; right:-34px; }
.story-art i { position:absolute; display:block; }
.story-art i:nth-of-type(1) { width:105px; height:175px; background:#f5efe4; border-radius:60px 60px 3px 3px; bottom:0; left:27%; }
.story-art i:nth-of-type(2) { width:62px; height:62px; background:#61736a; border-radius:50%; bottom:145px; left:35%; }
.story-art i:nth-of-type(3) { width:64px; height:110px; background:#d2a35f; border-radius:35px 35px 3px 3px; bottom:0; right:18%; }
.story-art:hover img,.season-card:hover img,.special-main:hover img { transform:scale(1.025); filter:saturate(.78) contrast(.93) brightness(1.08); }
.story-copy { min-width:0; padding:32px 27px 25px; position:relative; display:flex; flex-direction:column; justify-content:center; }
.story-meta { display:flex; justify-content:space-between; gap:12px; margin:0; padding:0; font:9px Arial,sans-serif; letter-spacing:.12em; }
.story-meta span { color:var(--green); font-weight:bold; }
.story-meta time { color:#777; }
.story-card h3 { margin:20px 0 9px; padding:0; font:500 17px/1.65 var(--font-ja-serif); }
.story-copy p { margin:0; padding:0; color:#6b716d; font-size:11px; line-height:1.8; }
.story-copy .post-tags { margin-top:12px; }
.more-stories { display:block; width:190px; margin:55px auto 0; padding:13px 4px; border:1px solid #7aafc8; border-radius:28px; background:#f6fafc; color:#557e96; font-size:11px; text-align:center; }
.more-stories span { margin-left:18px; }

.season-section { background:linear-gradient(135deg,#e8f4f8 0%,#dcecf4 54%,#d2e8f1 100%); padding:85px 34px; display:grid; grid-template-columns:1fr; gap:35px; }
.season-title { padding-top:25px; }
.season-title > span { font-size:11px; letter-spacing:.16em; }
.season-title h2 { font-size:44px; color:var(--green); }
.season-title p { margin-top:26px; font-size:12px; line-height:2; color:#65716b; }
.season-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.season-card { background:rgba(255,253,249,.94); padding:10px 10px 20px; border:1px solid rgba(117,124,115,.2); border-radius:22px; overflow:hidden; box-shadow:0 8px 22px rgba(88,79,68,.05); }
.season-art { height:175px; position:relative; overflow:hidden; background:#d5d5cf; }
.season-card .season-art { border-radius:14px; }
.season-card.blue .season-art { background:var(--blue); }
.season-card.pink .season-art { background:var(--pink); }
.season-art > span { position:absolute; right:12px; top:8px; font:italic 40px var(--font-en-serif); color:rgba(255,255,255,.86); text-shadow:0 2px 15px rgba(0,0,0,.25); }
.season-art i:first-of-type { position:absolute; width:125px; height:125px; border-radius:50%; background:rgba(255,255,255,.5); left:20px; bottom:-18px; }
.season-art i:last-of-type { position:absolute; width:55px; height:125px; border:1px solid rgba(36,42,38,.35); border-radius:50%; right:28px; bottom:-35px; transform:rotate(-22deg); }
.season-card small { display:block; margin-top:15px; font:9px Arial,sans-serif; letter-spacing:.16em; color:var(--green); }
.season-card h3 { min-height:80px; margin:9px 0; font:500 15px/1.7 var(--font-ja-serif); }
.season-card b { font-size:10px; }

.special-heading { text-align:center; margin-bottom:50px; }
.special-heading h2 { margin:6px 0; font:400 italic 47px var(--font-en-serif); color:var(--green); }
.special-grid { display:grid; grid-template-columns:1fr; gap:40px; }
.special-main { display:grid; grid-template-columns:1fr; overflow:hidden; border:1px solid #dce8ec; border-radius:24px; background:var(--cream); transition:transform .35s ease,box-shadow .35s ease; }
.special-main:hover { transform:translateY(-2px); box-shadow:0 14px 32px rgba(68,87,102,.08); }
.special-visual { aspect-ratio:16 / 10; height:auto; background:#d8d5ce; position:relative; overflow:hidden; }
.special-visual img { width:100%; height:100%; display:block; object-fit:cover; }
.cup { position:absolute; width:105px; height:90px; background:#f7f2e8; border-radius:8px 8px 48px 48px; bottom:72px; left:35%; display:grid; place-items:center; font:38px Georgia,serif; }
.flower { position:absolute; right:15%; top:20%; font-size:55px; color:#c3725d; }
.book { position:absolute; width:180px; height:14px; background:#6b897c; bottom:58px; left:25%; transform:rotate(-5deg); }
.special-main-copy { padding:28px 32px 32px; }
.special-main small,.special-list small { font:9px Arial,sans-serif; color:var(--green); letter-spacing:.16em; }
.special-main h3 {
  margin:10px 0 12px;
  font:500 24px/1.6 var(--font-ja-serif);
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
}
.special-main p {
  margin:0;
  font-size:12px;
  line-height:1.9;
  color:#6b716d;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
}
.special-list { border-top:1px solid var(--ink); }
.special-list a { min-height:0; padding:18px 0; display:grid; grid-template-columns:104px 1fr 20px; align-items:start; gap:16px; border-bottom:1px solid #acaea8; }
.special-list a > img { width:104px; height:78px; display:block; border-radius:12px; object-fit:cover; filter:saturate(.72) brightness(1.05); }
.special-list b { display:block; margin-top:8px; font:500 15px/1.6 var(--font-ja-serif); }
.special-list a:after { content:"→"; align-self:center; font-style:normal; color:var(--ink); line-height:1; }

.profile-ranking { display:grid; grid-template-columns:1fr; background:#f6fafc; }
.profile-card,.ranking { padding:75px 34px; }
.profile-card { display:grid; grid-template-columns:190px 1fr; gap:32px; background:#d6e8e4; color:var(--ink); }
.profile-art { height:280px; background:#e6ddd5; border-radius:110px 110px 8px 8px; position:relative; overflow:hidden; }
.profile-art img { object-position:50% center; }
.profile-art i { position:absolute; width:110px; height:190px; background:#c47d64; border-radius:60px 60px 0 0; bottom:0; left:55px; }
.profile-art i:before { content:""; position:absolute; width:67px; height:67px; border-radius:50%; background:#637168; left:21px; top:-45px; }
.profile-art span { position:absolute; left:18px; top:28px; color:var(--ink); font:italic 20px Georgia,serif; transform:rotate(-9deg); }
.profile-card small,.ranking header small { font:9px Arial,sans-serif; letter-spacing:.18em; }
.profile-card h2 { margin:5px 0 18px; font:italic 38px var(--font-en-serif); }
.profile-card p { font-size:12px; line-height:2; color:#536977; }
.profile-card a { display:inline-block; margin-top:16px; padding:9px 15px; border:1px solid #7aafc8; border-radius:22px; background:rgba(255,255,255,.55); font-size:10px; }
.ranking { background:#f6fafc; }
.ranking header { margin-bottom:25px; }
.ranking h2 { font-size:40px; color:var(--green); }
.ranking .ranking-tabs { display:inline-flex; margin:18px 0 0; }
.ranking-panel > a { min-height:74px; border-top:1px solid #adafa8; display:grid; grid-template-columns:45px 1fr 20px; align-items:center; gap:10px; }
.ranking-panel > a:last-child { border-bottom:1px solid #adafa8; }
.ranking-panel > a span { font:italic 22px var(--font-en-serif); color:var(--green); }
.ranking-panel > a b { font:500 13px/1.6 var(--font-ja-serif); }
.ranking-panel > a i { font-style:normal; }

footer { padding:58px 34px 28px; display:grid; grid-template-columns:1fr; align-items:end; gap:16px; background:#fff; }
.footer-logo { width:210px; }
footer > p { grid-column:1; font-size:10px; color:#6d746f; }
footer nav { grid-column:1; grid-row:auto; display:flex; justify-content:flex-start; flex-wrap:wrap; gap:22px; font-size:10px; }
.social-links { grid-column:1; display:flex; justify-content:flex-start; gap:22px; font:13px var(--font-body); }
.social-links a { display:inline-flex; align-items:center; gap:9px; }
.instagram-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:transparent; }
.instagram-icon img { width:24px; height:24px; display:block; }
footer > small { grid-column:1; border-top:1px solid #cccfc8; margin-top:25px; padding-top:18px; text-align:left; font:8px Arial,sans-serif; letter-spacing:.12em; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.article-feed { background:#eef6f9; }
.single-stage { padding:32px 34px 70px; }
.single-article { overflow:hidden; border:1px solid rgba(78,76,69,.13); border-radius:24px; background:#fff; box-shadow:0 18px 45px rgba(68,87,102,.08); }
.single-article-header { padding:50px 52px 38px; text-align:center; }
.single-back { display:inline-block; margin-bottom:28px; color:#6f91a5; font:9px Arial,sans-serif; letter-spacing:.18em; }
.single-categories { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.single-categories a { padding:5px 12px; border-radius:16px; background:#e8f4f8; color:#54778b; font-size:9px; letter-spacing:.08em; }
.single-article-header h1 { margin:22px 0 18px; font:500 clamp(30px,3.4vw,44px)/1.55 var(--font-ja-serif); letter-spacing:.04em; }
.single-article-header time { color:#84939c; font:9px Arial,sans-serif; letter-spacing:.15em; }
.single-eyecatch { height:420px; margin:0; overflow:hidden; background:#edf4f6; }
.single-eyecatch img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.76) contrast(.94) brightness(1.04); }
.single-lead { margin:0; padding:42px 52px 0; color:#536977; font-size:14px; line-height:2.1; }
.single-article .entry-content { padding:40px 52px 70px; color:#3f4b52; font-size:15px; line-height:2.15; }
.single-article .entry-content > * { max-width:100%; }
.single-article .entry-content > * + * { margin-top:1.7em; }
.single-article .entry-content h2 {
  margin:2.8em 0 .9em;
  padding:0 0 12px;
  border:0;
  border-bottom:1px solid #d7e4ea;
  background:transparent;
  color:var(--ink);
  font:500 24px/1.65 var(--font-ja-serif);
  letter-spacing:.04em;
}
.single-article .entry-content h3 {
  margin:2.2em 0 .75em;
  padding:0;
  border:0;
  background:transparent;
  color:var(--ink);
  font:500 18px/1.7 var(--font-ja-serif);
  letter-spacing:.03em;
}
.single-article .entry-content h3:before {
  content:"";
  display:inline-block;
  width:10px;
  height:1px;
  margin:0 10px 0 0;
  vertical-align:middle;
  background:#7aafc8;
}
.single-article .entry-content p { margin-top:1.5em; }
.single-article .entry-content a { color:#4c809d; text-decoration:underline; text-underline-offset:3px; }
.single-article .entry-content img { max-width:100%; height:auto; border-radius:14px; }
.single-article .entry-content blockquote { margin:2em 0; padding:20px 24px; border:0; border-radius:14px; background:#f8f3ed; }
.single-article-footer { display:block; padding:26px 52px 36px; border-top:1px solid #e1e8eb; background:#fbfdfe; text-align:center; }
.single-article-footer > a { display:inline-block; margin-top:22px; color:#537c93; font-size:11px; }
.single-author { margin-top:28px; }
.single-author-card { display:grid; grid-template-columns:150px 1fr; gap:28px; align-items:center; padding:34px 36px; border:1px solid #d6e4ea; border-radius:22px; background:#d6e8e4; color:var(--ink); }
.single-author-card .profile-art { height:180px; border-radius:90px 90px 8px 8px; }
.single-author-card small { font:9px Arial,sans-serif; letter-spacing:.18em; color:#5f7d8d; }
.single-author-card h2 { margin:6px 0 12px; font:italic 32px var(--font-en-serif); }
.single-author-card p { margin:0; font-size:12px; line-height:2; color:#536977; }
.single-author-card a { display:inline-block; margin-top:16px; padding:9px 15px; border:1px solid #7aafc8; border-radius:22px; background:rgba(255,255,255,.55); font-size:10px; }
.single-related { margin-top:34px; padding:34px 0 10px; }
.single-related-heading { margin-bottom:22px; }
.single-related-heading span { color:#7aafc8; font:9px Arial,sans-serif; letter-spacing:.18em; }
.single-related-heading h2 { margin:8px 0 0; font:italic 34px var(--font-en-serif); color:var(--green); }
.single-related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.single-related-card { display:block; padding:0 0 18px; overflow:hidden; border:1px solid #d7e4ea; border-radius:18px; background:#fff; transition:transform .35s ease,box-shadow .35s ease; }
.single-related-card:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(68,87,102,.08); }
.single-related-art { height:150px; overflow:hidden; background:#edf4f6; }
.single-related-art img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.75) contrast(.93) brightness(1.05); transition:transform .5s ease; }
.single-related-card:hover .single-related-art img { transform:scale(1.035); }
.single-related-card small { display:block; margin:14px 16px 0; color:#6f91a5; font:8px Arial,sans-serif; letter-spacing:.12em; }
.single-related-card h3 { margin:8px 16px 0; font:500 14px/1.65 var(--font-ja-serif); }
.single-related-card b { display:inline-block; margin:12px 16px 0; color:#5b849a; font-size:10px; font-weight:500; }

.menu-is-open { overflow:hidden; }
.site-menu { position:fixed; inset:0; z-index:10000; visibility:hidden; pointer-events:none; transition:visibility 0s linear .48s; }
.site-menu-backdrop { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; border-radius:0; background:rgba(58,76,89,.55); opacity:0; cursor:pointer; backdrop-filter:blur(0); transition:opacity .46s ease,backdrop-filter .46s ease; }
.site-menu-panel { position:absolute; top:0; right:0; width:min(77vw,1160px); height:100%; padding:34px clamp(38px,5vw,82px) 60px; overflow-y:auto; background:#fff; opacity:0; transform:scale(.992); transform-origin:center right; transition:opacity .42s ease,transform .48s cubic-bezier(.22,1,.36,1); }
.site-menu.is-open { visibility:visible; pointer-events:auto; transition-delay:0s; }
.site-menu.is-open .site-menu-backdrop { opacity:1; backdrop-filter:blur(13px); }
.site-menu.is-open .site-menu-panel { opacity:1; transform:scale(1); }
.site-menu-header { min-height:48px; display:flex; align-items:center; gap:28px; }
.site-menu-logo { width:160px; line-height:0; }
.site-menu-logo img { display:block; width:100%; height:auto; }
.site-menu-instagram { display:inline-flex; align-items:center; gap:8px; font-size:11px; letter-spacing:.08em; }
.site-menu-instagram img { width:24px; height:24px; padding:0; border-radius:0; background:transparent; }
.site-menu-close { display:flex; align-items:center; margin-left:auto; padding:0; border:0; border-radius:25px; background:#445766; color:#fff; cursor:pointer; }
.site-menu-close span { padding:0 23px; font:10px Arial,sans-serif; letter-spacing:.15em; }
.site-menu-close i { width:44px; height:44px; display:grid; place-items:center; border-left:1px solid rgba(255,255,255,.3); border-radius:50%; font:normal 20px/1 Arial,sans-serif; }
.site-menu-search { height:58px; margin:55px 0 50px; display:flex; border:1px solid #cfd8dd; border-radius:31px; overflow:hidden; }
.site-menu-search input { flex:1; min-width:0; padding:0 24px; border:0; outline:0; background:transparent; color:#445766; font-size:13px; }
.site-menu-search input::placeholder { color:#aab5bc; }
.site-menu-search button { width:62px; border:0; background:transparent; color:#445766; cursor:pointer; font-size:22px; }
.site-menu-categories { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #d9e0e3; border-left:1px solid #d9e0e3; }
.site-menu-categories a { min-height:180px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-right:1px solid #d9e0e3; border-bottom:1px solid #d9e0e3; transition:background .25s ease; }
.site-menu-categories a:hover { background:#f6fafc; }
.site-menu-categories .cat-icon { width:72px; height:72px; font:25px Georgia,serif; }
.site-menu-categories strong { margin-top:13px; font:10px Arial,sans-serif; letter-spacing:.15em; }
.site-menu-categories small { margin-top:4px; font-size:9px; }
.site-menu-all { margin:28px 0 65px auto; display:flex; justify-content:flex-end; align-items:center; gap:13px; width:max-content; font-size:12px; }
.site-menu-all span { width:26px; height:26px; display:grid; place-items:center; border:1px solid #9baab2; border-radius:50%; }
.site-menu-links { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.site-menu-links section { border-top:1px solid #9caab2; padding-top:18px; }
.site-menu-links h2 { display:flex; justify-content:space-between; margin:0 0 25px; font:italic 23px var(--font-en-serif); }
.site-menu-links h2 a { font:normal 18px Arial,sans-serif; }
.site-menu-links ul { margin:0; padding:0; list-style:none; }
.site-menu-links li + li { margin-top:12px; }
.site-menu-links li a,.site-menu-links p { font-size:11px; line-height:1.65; }

.archive-stage { min-height:100vh; padding:70px 34px; background:#f6fafc; }
.archive-heading { margin-bottom:42px; text-align:center; }
.archive-heading > span,.page-label { color:#7aafc8; font:9px Arial,sans-serif; letter-spacing:.22em; }
.archive-heading h1 { margin:10px 0 0; font:500 clamp(32px,4vw,44px)/1.5 var(--font-ja-serif); }
.archive-heading > div { margin-top:14px; color:#71808a; font-size:12px; line-height:1.8; }
.archive-list { display:grid; gap:18px; }
.archive-card { display:grid; grid-template-columns:190px 1fr; min-height:190px; overflow:hidden; border:1px solid #d9e4e9; border-radius:18px; background:#fff; }
.archive-card-image { min-height:190px; background:#edf4f6; overflow:hidden; }
.archive-card-image img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.75) brightness(1.04); transition:transform .5s ease; }
.archive-card:hover .archive-card-image img { transform:scale(1.035); }
.archive-card-copy { padding:25px 24px; }
.archive-card-meta { display:flex; justify-content:space-between; gap:10px; color:#81919a; font:8px Arial,sans-serif; letter-spacing:.1em; }
.archive-card-meta span { color:#618397; }
.archive-card h2 { margin:13px 0 8px; font:500 18px/1.65 var(--font-ja-serif); }
.archive-card p { margin:0; color:#687882; font-size:11px; line-height:1.8; }
.archive-card-more { display:inline-block; margin-top:13px; color:#5b849a; font-size:9px; }
.post-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.post-tags a { padding:4px 10px; border-radius:14px; background:#f3f7f9; color:#6a8494; font-size:9px; letter-spacing:.04em; }
.single-article-footer .post-tags { justify-content:center; margin-top:14px; }
.single-article-footer .post-tags a { background:#eef4f7; }
.archive-pagination { margin-top:40px; }
.archive-pagination .nav-links { display:flex; justify-content:center; align-items:center; gap:8px; }
.archive-pagination .page-numbers { min-width:34px; height:34px; padding:0 8px; display:grid; place-items:center; border:1px solid #bad3df; border-radius:18px; background:#fff; font-size:10px; }
.archive-pagination .current { background:#7aafc8; border-color:#7aafc8; color:#fff; }
.empty-content { padding:90px 20px; text-align:center; }
.empty-content p { margin-bottom:22px; }
.page-article .page-label { margin:0 0 12px; }
.page-article .single-article-header h1 { margin-top:8px; }
.not-found-stage { min-height:720px; padding:150px 40px 90px; background:#f6fafc; text-align:center; }
.not-found-stage > span { color:#b9ddeb; font:italic 88px/1 var(--font-en-serif); }
.not-found-stage h1 { margin:24px 0 14px; font:500 30px/1.6 var(--font-ja-serif); }
.not-found-stage p { color:#71808a; font-size:12px; }
.not-found-stage > a { display:inline-block; margin-top:28px; color:#568198; font-size:11px; }
.not-found-search { width:min(100%,430px); height:48px; margin:38px auto 0; display:flex; overflow:hidden; border:1px solid #bdd5e0; border-radius:25px; background:#fff; }
.not-found-search input { flex:1; min-width:0; padding:0 18px; border:0; outline:0; background:transparent; }
.not-found-search button { width:72px; border:0; background:#7aafc8; color:#fff; cursor:pointer; }

@media (prefers-reduced-motion:reduce) {
  .site-menu,.site-menu-backdrop,.site-menu-panel { transition-duration:.01ms; }
}

@media (min-width:1180px) {
  .magazine-hero {
    --shell-width:min(100vw,1500px);
    --feed-width:clamp(520px,42.6667vw,640px);
    grid-template-columns:
      calc((var(--shell-width) - var(--feed-width))/2)
      var(--feed-width)
      calc((var(--shell-width) - var(--feed-width))/2);
  }
  .hero-left,.hero-right {
    position:fixed;
    top:0;
    bottom:0;
    z-index:5;
    width:calc((var(--shell-width) - var(--feed-width))/2);
    height:100vh;
  }
  .hero-left { overflow:hidden; }
  .hero-right { overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
  .hero-left { left:calc((100vw - var(--shell-width))/2); }
  .hero-left.has-bg {
    left:0;
    width:calc((100vw - var(--feed-width)) / 2);
    padding-left:calc((100vw - var(--shell-width)) / 2 + clamp(30px,4vw,62px));
  }
  .hero-right { right:calc((100vw - var(--shell-width))/2); }
  .latest { position:relative; box-shadow:0 -1px 0 rgba(36,42,38,.08); }
  .stories-grid { gap:22px; }
  .story-card { padding-bottom:0; }
}

@media (max-width:1179px) {
  .magazine-hero { grid-template-columns:180px 1fr; }
  .center-feed { grid-column:2; }
  .hero-right { display:none; }
  .inline-menu { display:flex; gap:8px; overflow:auto; padding:18px 14px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#f6fafc; }
  .inline-menu a { min-width:88px; padding:4px 3px; display:grid; justify-items:center; }
  .inline-menu .cat-icon { width:48px; height:48px; font:20px Georgia,serif; }
  .inline-menu strong { margin-top:7px; font:8px Arial,sans-serif; letter-spacing:.11em; }
  .inline-menu small { margin-top:2px; font-size:8px; }
  .top-tools,.ranking-widget { display:none; }
  .round-menu { margin:0; width:100%; grid-template-columns:repeat(6,1fr); border:0; }
  .round-menu a { border:0!important; padding:8px 4px; }
  .round-menu .cat-icon { width:46px; height:46px; }
  .trend-line { grid-row:3; }
  .stories-grid { grid-template-columns:1fr; }
  .season-section { grid-template-columns:1fr; }
  .profile-card { grid-template-columns:160px 1fr; }
  .special-grid,.profile-ranking { grid-template-columns:1fr; }
}

@media (max-width:650px) {
  body { background:var(--paper); }
  .mobile-topic { height:34px; display:flex; align-items:center; gap:10px; padding:0 15px; background:#eff7fb; position:relative; z-index:20; font-size:10px; letter-spacing:.03em; }
  .mobile-topic b { padding:4px 7px 3px; border:1px solid #7aafc8; border-radius:12px; color:#557e96; background:#fff; font:700 9px Arial,sans-serif; letter-spacing:.08em; }
  .mobile-header { height:58px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; position:absolute; z-index:20; top:34px; left:0; right:0; color:var(--ink); }
  .mobile-logo { display:block; width:166px; line-height:0; }
  .mobile-logo img { display:block; width:100%; height:auto; }
  .mobile-header button { width:38px; height:38px; border:0; background:rgba(255,255,255,.78); border-radius:50%; display:grid; place-content:center; gap:4px; }
  .mobile-header button i { width:16px; height:1px; background:var(--ink); display:block; }
  .magazine-hero { grid-template-columns:1fr; grid-template-rows:auto auto auto; min-height:0; background:var(--mint); }
  .center-feed { grid-column:1; border:0; }
  .hero-left { display:none; }
  .feature-stage { padding:0 0 18px; min-height:690px; display:flex; align-items:center; justify-content:center; }
  .feature-slides { width:82%; height:590px; margin-top:34px; }
  .feature-card { height:590px; }
  .feature-main { width:82%; margin-top:34px; border-radius:26px; box-shadow:0 12px 30px rgba(91,77,63,.08); }
  .feature-main[data-feature-slide] { width:100%; margin-top:0; }
  .feature-peek,.feature-index { display:none; }
  .feature-art { flex-basis:65%; border-radius:26px 26px 0 0; }
  .family-art:before { inset:12px; }
  .big-sun { width:95px; height:95px; right:9%; top:14%; }
  .adult { left:28%; transform:scale(.85); transform-origin:bottom; }
  .kid { left:65%; transform:scale(.85); transform-origin:bottom; }
  .feature-caption { flex-basis:35%; padding:22px 12px; background:rgba(255,254,249,.92); }
  .feature-caption p { font-size:8px; }
  .feature-caption h1 { font-size:23px; line-height:1.55; }
  .feature-caption span { font-size:9px; line-height:1.5; }
  .mobile-feature-index { display:flex; position:absolute; align-items:center; justify-content:center; gap:16px; bottom:5px; left:50%; transform:translateX(-50%); font:12px Arial,sans-serif; }
  .mobile-feature-index b { font-size:16px; }
  .mobile-feature-index i { font-style:normal; }
  .mobile-feature-index small { font-size:10px; }
  .single-stage { padding:110px 0 45px; }
  .single-article { border-radius:0; border-left:0; border-right:0; box-shadow:none; }
  .single-article-header { padding:44px 25px 32px; }
  .single-article-header h1 { font-size:29px; }
  .single-eyecatch { height:360px; }
  .single-lead { padding:32px 24px 0; }
  .single-article .entry-content { padding:30px 24px 55px; font-size:14px; }
  .single-article .entry-content h2 { font-size:21px; }
  .single-article-footer { padding:24px 20px 32px; }
  .single-author { margin-top:18px; padding:0 14px; }
  .single-author-card { grid-template-columns:110px 1fr; gap:18px; padding:24px 18px; border-radius:16px; }
  .single-author-card .profile-art { height:140px; }
  .single-author-card h2 { font-size:26px; }
  .single-related { margin-top:24px; padding:24px 14px 0; }
  .single-related-heading h2 { font-size:28px; }
  .single-related-grid { grid-template-columns:1fr; gap:12px; }
  .single-related-card { display:grid; grid-template-columns:118px 1fr; grid-template-rows:auto auto auto; column-gap:14px; padding:0; align-items:start; }
  .single-related-art { grid-row:1 / span 3; height:100%; min-height:118px; }
  .single-related-card small { margin:14px 12px 0 0; }
  .single-related-card h3 { margin:6px 12px 0 0; font-size:13px; }
  .single-related-card b { margin:8px 12px 14px 0; }
  .site-menu-panel { width:100%; padding:18px 16px 40px; }
  .site-menu-header { gap:12px; }
  .site-menu-logo { width:130px; }
  .site-menu-instagram { margin-left:auto; font-size:0; }
  .site-menu-close { margin-left:0; }
  .site-menu-close span { display:none; }
  .site-menu-close i { width:40px; height:40px; border:0; }
  .site-menu-search { margin:35px 0 28px; height:50px; }
  .site-menu-categories { grid-template-columns:repeat(2,1fr); }
  .site-menu-categories a { min-height:138px; }
  .site-menu-categories .cat-icon { width:58px; height:58px; }
  .site-menu-all { margin:24px 0 45px auto; }
  .site-menu-links { grid-template-columns:1fr; gap:38px; }
  .archive-stage { padding:110px 14px 55px; }
  .archive-heading { margin-bottom:30px; }
  .archive-card { grid-template-columns:118px 1fr; min-height:155px; border-radius:14px; }
  .archive-card-image { min-height:155px; }
  .archive-card-copy { padding:18px 13px; }
  .archive-card-meta { flex-direction:column; gap:3px; }
  .archive-card h2 { margin-top:9px; font-size:14px; }
  .archive-card p { display:none; }
  .archive-card .post-tags { margin-top:8px; }
  .archive-card-more { margin-top:10px; }
  .not-found-stage { min-height:100vh; padding:160px 22px 80px; }
  .not-found-stage > span { font-size:72px; }
  .not-found-stage h1 { font-size:24px; }
  .inline-menu { padding:18px 12px 20px; }
  .round-menu { min-width:540px; gap:0; }
  .round-menu a { padding:8px 3px; }
  .round-menu .cat-icon { width:52px; height:52px; border:0; }
  .round-menu small { display:block; }
  .trend-line { min-height:52px; padding:8px 16px; background:#fff; gap:10px; }
  .trend-line b { font-size:12px; }
  .section-wrap { padding:72px 14px; }
  .editorial-heading { text-align:left; padding:0 5px; margin-bottom:32px; }
  .editorial-heading h2,.special-heading h2 { font-size:39px; }
  .editorial-heading > a { display:inline-block; position:static; margin-top:14px; }
  .stories-grid { grid-template-columns:1fr; gap:14px; align-items:start; }
  .story-card,.story-card:nth-child(even) { min-height:164px; grid-template-columns:124px 1fr; border:1px solid #d2cdc5; border-radius:16px; overflow:hidden; background:#fff; box-shadow:0 8px 22px rgba(91,77,63,.045); }
  .story-card:nth-child(even) .story-art { order:0; }
  .story-card:nth-child(even) .story-copy { order:0; }
  .story-art { width:100%; height:100%; min-height:164px; margin:0; }
  .story-art i:nth-of-type(1) { transform:scale(.78); transform-origin:bottom; left:17%; }
  .story-art i:nth-of-type(2) { transform:scale(.78); transform-origin:bottom; left:29%; }
  .story-art i:nth-of-type(3) { transform:scale(.78); transform-origin:bottom; right:8%; }
  .story-copy { padding:25px 13px 14px; justify-content:flex-start; }
  .story-meta { margin:0; padding:0; flex-direction:column; gap:3px; font-size:8px; }
  .story-card h3 { min-height:0; margin:10px 0 0; padding:0; display:block; font-size:13px; line-height:1.65; }
  .story-copy p { display:none; }
  .story-copy .post-tags { margin-top:8px; }
  .more-stories { margin-top:42px; }
  .season-section { padding:65px 14px; gap:26px; }
  .season-title { padding:0 5px; }
  .season-title h2 { font-size:40px; }
  .season-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; overflow:visible; padding-bottom:0; }
  .season-card { min-width:0; padding:8px 8px 16px; border:1px solid #c8dce5; border-radius:16px; }
  .season-art { height:150px; }
  .season-card h3 { min-height:106px; font-size:13px; }
  .special-heading { text-align:left; padding:0 5px; }
  .special-visual { aspect-ratio:4 / 3; }
  .special-main-copy { padding:22px 20px 24px; }
  .special-main h3 { font-size:20px; }
  .special-list a { grid-template-columns:88px 1fr 18px; gap:12px; padding:14px 0; }
  .special-list a > img { width:88px; height:66px; }
  .profile-ranking { display:block; }
  .profile-card { padding:60px 16px; grid-template-columns:120px 1fr; gap:22px; }
  .profile-art { height:210px; }
  .profile-art i { left:22px; }
  .ranking { padding:60px 16px; }
  footer { padding:50px 22px 25px; grid-template-columns:1fr; }
  footer nav { grid-column:1; grid-row:auto; justify-content:flex-start; flex-wrap:wrap; }
  .social-links { grid-column:1; justify-content:flex-start; }
  footer > small { grid-column:1; text-align:left; }
}
