:root {
  --ink: #403936;
  --muted: #746a64;
  --cream: #fff8ed;
  --paper: #fffdf8;
  --green: #3cb4cf;
  --green-dark: #173d79;
  --mint: #e6f4ef;
  --coral: #ee765f;
  --yellow: #f3bd55;
  --peach: #fde6d8;
  --sand: #ead7bf;
  --link: #237cac;
  --line: #eadfd2;
  --shadow: 0 22px 60px rgba(105, 73, 49, .14);
  --radius-lg: 34px;
  --radius-md: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background-color: var(--cream);
  background-image:
    radial-gradient(circle at 10% 4%, rgba(243,189,85,.13) 0 2px, transparent 3px),
    radial-gradient(circle at 88% 12%, rgba(238,118,95,.08) 0 2px, transparent 3px);
  background-size: 44px 44px, 58px 58px;
  font-family: "Meiryo", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-feature-settings: "palt";
  line-height: 1.8;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--green) 70%, white); outline-offset: 3px; }
section[id] { scroll-margin-top: 90px; }

.skip-link {
  position: fixed; left: 1rem; top: -100px; z-index: 1000;
  padding: .7rem 1rem; color: white; background: var(--green-dark);
}
.skip-link:focus { top: 1rem; }
.site-header {
  position: sticky; top: 0; z-index: 40;
  background: color-mix(in srgb, var(--paper) 91%, transparent);
  border-bottom: 1px solid rgba(130,86,54,.11);
  backdrop-filter: blur(14px);
}
.header-inner {
  width: min(1180px, calc(100% - 48px)); height: 78px; margin: auto;
  display: flex; align-items: center; justify-content: space-between;
}
.brand { display: inline-flex; align-items: center; }
.brand-logo { width: 190px; height: auto; }
.global-nav { display: flex; align-items: center; gap: 30px; font-family: "Kiwi Maru", "Meiryo", sans-serif; font-size: 13px; font-weight: 500; }
.global-nav a { position: relative; }
.global-nav a:not(.nav-contact)::after { content: ""; position: absolute; left: 0; bottom: -7px; width: 0; height: 2px; background: var(--coral); transition: width .2s ease; }
.global-nav a:hover::after, .global-nav a:focus-visible::after { width: 100%; }
.nav-contact { padding: 10px 19px; color: white; background: var(--coral); border-radius: 100px; box-shadow: 0 6px 16px rgba(185,76,54,.18); }
.menu-button { display: none; }

.hero { min-height: 440px; position: relative; overflow: hidden; display: grid; align-items: center; }
.hero::before, .hero::after { content: ""; position: absolute; border-radius: 50%; filter: blur(2px); }
.hero::before { width: 430px; height: 430px; right: -130px; top: -80px; background: rgba(243,189,85,.24); }
.hero::after { width: 310px; height: 310px; left: -130px; bottom: -80px; background: rgba(238,118,95,.12); }
.hero-game-icons { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.hero-game-icon { position: absolute; width: 100px; aspect-ratio: 1; object-fit: cover; padding: 6px; background: rgba(255,253,248,.92); border: 1px solid var(--sand); border-radius: 26px; box-shadow: 0 15px 34px rgba(78,59,43,.18); animation: heroIconFloat 5s ease-in-out infinite; }
.icon-tailor { width: 118px; left: 3%; top: 12%; transform: rotate(-8deg); }
.icon-alchemist { width: 96px; left: 14%; bottom: 8%; transform: rotate(7deg); animation-delay: -1.1s; }
.icon-marche { width: 82px; left: 28%; top: 3%; transform: rotate(5deg); animation-delay: -1.8s; }
.icon-marche2 { width: 82px; right: 28%; bottom: 3%; transform: rotate(-5deg); animation-delay: -2.6s; }
.icon-marche3 { width: 122px; right: 3%; top: 11%; transform: rotate(8deg); animation-delay: -3.2s; }
.icon-wallet { width: 96px; right: 14%; bottom: 8%; transform: rotate(-7deg); animation-delay: -3.8s; }
.icon-nshop { width: 78px; right: 27%; top: 3%; transform: rotate(-4deg); animation-delay: -4.4s; }
@keyframes heroIconFloat { 0%, 100% { margin-top: 0; } 50% { margin-top: -8px; } }
.hero-inner { width: min(900px, calc(100% - 48px)); margin: 0 auto; padding: 62px 0 82px; position: relative; z-index: 2; }
.hero-copy { text-align: center; }
.hero-copy h1 { margin: 14px 0 18px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(34px, 3.3vw, 46px); line-height: 1.3; letter-spacing: -.035em; font-weight: 700; }
.hero-copy h1 .hero-line { white-space: nowrap; }
.hero-copy h1 em { color: var(--coral); font-style: normal; position: relative; white-space: nowrap; }
.hero-copy h1 em::after { content: ""; position: absolute; left: 2%; right: 0; bottom: -4px; height: 8px; border-radius: 50%; background: var(--yellow); opacity: .7; transform: rotate(-1deg); }
.eyebrow { margin: 0 0 10px; color: var(--green); font-family: "Kiwi Maru", "Meiryo", sans-serif; font-size: 12px; font-weight: 500; letter-spacing: .18em; }
.eyebrow span { display: inline-block; margin-right: 12px; padding: 3px 9px; color: white; background: var(--coral); border-radius: 100px; letter-spacing: .12em; }
.hero-lead { margin: 0; color: var(--muted); font-size: 16px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-width: 190px; min-height: 54px; padding: 12px 20px; border-radius: 100px; font-family: "Kiwi Maru", "Meiryo", sans-serif; font-size: 13px; font-weight: 500; box-shadow: 0 8px 20px rgba(16,58,152,.12); transition: transform .2s ease, box-shadow .2s ease; }
.button:hover, .button:focus-visible { transform: translateY(-3px); box-shadow: 0 13px 28px rgba(16,58,152,.2); }
.button-primary { color: #fff; background: var(--green-dark); }
.button-secondary { color: #603f2d; background: #ffd9a5; }
.button-switch { color: #fff; background: #d8413b; }
.button-console { color: #fff; background: #52627f; }
.platform-note { margin: 12px 0 0 20px; color: #75819a; font-size: 11px; letter-spacing: .05em; }
.hero-visual { position: relative; padding: 8px 25px 30px; }
.hero-card { position: relative; z-index: 2; padding: 20px; background: var(--paper); border: 1px solid var(--sand); border-radius: 38px; box-shadow: var(--shadow); transform: rotate(1.25deg); }
.hero-card::before { content: ""; position: absolute; inset: 10px; border: 2px dashed rgba(238,118,95,.42); border-radius: 30px; pointer-events: none; }
.hero-card img { width: 100%; aspect-ratio: 2.048; object-fit: cover; border-radius: 23px; background: #e9f7fd; }
.hero-card-label { position: absolute; top: -14px; left: 45px; z-index: 3; padding: 6px 18px; color: #fff; background: var(--coral); border-radius: 6px; font-size: 12px; font-weight: 800; transform: rotate(-4deg); box-shadow: 0 5px 10px rgba(127,35,35,.2); }
.hero-games-link { position: absolute; bottom: 18px; left: 50%; z-index: 3; display: inline-flex; align-items: center; gap: 14px; padding: 11px 22px; transform: translateX(-50%); color: var(--link); background: rgba(255,253,248,.94); border: 1px solid var(--sand); border-radius: 100px; box-shadow: 0 8px 22px rgba(78,59,43,.12); font-size: 12px; font-weight: 800; letter-spacing: .06em; transition: transform .2s ease, box-shadow .2s ease; }
.hero-games-link:hover, .hero-games-link:focus-visible { transform: translateX(-50%) translateY(-3px); box-shadow: 0 12px 28px rgba(78,59,43,.17); }
.hero-games-link span { transition: transform .2s ease; }
.hero-games-link:hover span, .hero-games-link:focus-visible span { transform: translateX(4px); }

.section-pad { padding: 120px max(24px, calc((100% - 1180px) / 2)); }
.latest-section { background: var(--paper); border-block: 1px solid rgba(234,215,191,.65); }
.latest-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 7vw; align-items: center; }
.latest-copy h2 { margin: 0 0 18px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(34px, 4vw, 54px); line-height: 1.35; font-weight: 700; }
.latest-copy > p:not(.eyebrow):not(.platform-note) { color: var(--muted); }
.latest-detail-link { margin-top: 20px; }
.latest-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 58px; padding-top: 38px; border-top: 2px dashed rgba(60,180,207,.28); }
.latest-point { display: grid; grid-template-columns: 42px 1fr; gap: 15px; align-items: start; padding: 21px; background: color-mix(in srgb, var(--cream) 68%, white); border: 1px solid var(--sand); border-radius: 20px; }
.latest-point > span { display: grid; place-items: center; width: 42px; height: 42px; color: #fff; background: var(--coral); border-radius: 50%; font: italic 15px Georgia, serif; }
.latest-point h3 { margin: 0 0 5px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: 17px; }
.latest-point p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.75; }
@media (max-width: 900px) { .latest-points { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .latest-points { margin-top: 42px; padding-top: 30px; } .latest-point { padding: 18px; } }
.section-heading { max-width: 650px; margin-bottom: 55px; }
.section-heading.centered { margin-inline: auto; text-align: center; }
.section-heading h2, .about-copy h2, .support-section h2 { margin: 0 0 17px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(34px, 4vw, 54px); line-height: 1.35; font-weight: 700; }
.section-heading > p:last-child { color: var(--muted); }

.feature-section { background: var(--paper); border-block: 1px solid rgba(234,215,191,.65); }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.feature-card { position: relative; padding: 35px 28px 28px; overflow: hidden; background: #fff7e9; border: 1px solid var(--sand); border-radius: var(--radius-lg); box-shadow: 0 12px 30px rgba(112,78,48,.08); }
.feature-card:nth-child(2) { background: #edf8f4; }
.feature-card:nth-child(3) { background: #fff0eb; }
.feature-card.lifted { transform: translateY(-18px); }
.feature-card h3 { margin: 2px 0 9px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: 21px; font-weight: 700; }
.feature-card p { min-height: 90px; margin: 0 0 24px; color: var(--muted); font-size: 14px; }
.feature-card img { width: 100%; aspect-ratio: 1242 / 2208; object-fit: contain; object-position: center; background: #fff; border-radius: 17px; box-shadow: 0 10px 25px rgba(105,73,49,.16); }
.feature-number { display: block; color: var(--coral); font: italic 26px Georgia, serif; }

.games-section { position: relative; overflow: hidden; background: linear-gradient(180deg, rgba(255,248,237,.72), rgba(255,253,248,.92)); }
.games-section::before { content: "GAMES"; position: absolute; right: -20px; top: 25px; color: rgba(16,58,152,.045); font: 700 min(18vw, 240px)/1 Georgia, serif; letter-spacing: -.05em; }
.game-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; position: relative; }
.game-card { display: block; overflow: hidden; background: var(--paper); border: 1px solid rgba(234,215,191,.8); border-radius: var(--radius-lg); box-shadow: 0 12px 35px rgba(105,73,49,.1); transition: transform .25s ease, box-shadow .25s ease; }
.game-card:hover, .game-card:focus-visible { transform: translateY(-8px); box-shadow: var(--shadow); }
.game-art { height: 275px; display: grid; place-items: center; padding: 22px; overflow: hidden; }
.game-art img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 10px 14px rgba(0,0,0,.14)); transition: transform .3s ease; }
.game-card:hover .game-art img { transform: scale(1.035); }
.game-tailor .game-art { background: #e7f6f8; }
.game-shop .game-art { background: #fff0c6; }
.game-alchemist .game-art { background: #f5e5ed; }
.game-info { padding: 28px 30px 31px; }
.game-tag { margin: 0 0 7px; color: var(--coral); font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.game-info h3 { min-height: 58px; margin: 0 0 12px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: 24px; line-height: 1.45; font-weight: 700; }
.game-info > p:not(.game-tag) { min-height: 75px; color: var(--muted); font-size: 13px; }
.game-card-cta { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; padding-top: 18px; border-top: 1px solid #e2ebf3; color: var(--link); font-size: 13px; font-weight: 800; }
.game-card-cta span, .text-link span { transition: transform .2s ease; }
.game-card:hover .game-card-cta span, .game-card:focus-visible .game-card-cta span, .text-link:hover span, .text-link:focus-visible span { transform: translateX(5px); }
.text-link { display: inline-flex; align-items: center; gap: 17px; margin-top: 42px; color: var(--link); border-bottom: 1px solid var(--link); font-size: 13px; font-weight: 800; }

.news-section { color: #fffaf0; background-color: var(--green-dark); background-image: radial-gradient(circle at 92% 20%, rgba(243,189,85,.16), transparent 26%), radial-gradient(circle at 7% 90%, rgba(238,118,95,.13), transparent 23%); }
.news-layout { display: grid; grid-template-columns: 280px 1fr; gap: 70px; }
.news-section .eyebrow { color: var(--yellow); }
.news-section .section-heading { margin: 0; }
.news-section .text-link { color: #fff; border-color: rgba(255,255,255,.5); }
.news-list a:not(.mobile-link) { min-height: 83px; display: grid; grid-template-columns: 105px 90px 1fr 24px; gap: 18px; align-items: center; border-top: 1px solid rgba(255,255,255,.18); }
.news-list a:not(.mobile-link):last-of-type { border-bottom: 1px solid rgba(255,255,255,.18); }
.news-list time { color: rgba(255,255,255,.65); font: 13px Georgia, serif; }
.news-label { padding: 3px 8px; text-align: center; border: 1px solid rgba(255,255,255,.38); border-radius: 100px; font-size: 9px; }
.news-list strong { font-size: 13px; font-weight: 500; }
.news-list i { color: var(--yellow); font-style: normal; transition: transform .2s ease; }
.news-list a:hover i { transform: translateX(5px); }
.mobile-link { display: none; }
.x-follow-card { display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; margin-top: 54px; padding: 26px 30px; color: var(--ink); background: var(--paper); border: 1px solid rgba(255,255,255,.5); border-radius: 24px; box-shadow: 0 16px 38px rgba(5,24,64,.22); transition: transform .2s ease, box-shadow .2s ease; }
.x-follow-card:hover, .x-follow-card:focus-visible { transform: translateY(-4px); box-shadow: 0 22px 46px rgba(5,24,64,.3); }
.x-follow-mark { display: grid; place-items: center; width: 58px; height: 58px; color: #fff; background: #111; border-radius: 18px; font: 500 27px/1 Arial, sans-serif; }
.x-follow-copy p { margin: 0; }
.x-follow-kicker { color: var(--link); font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.x-follow-copy h3 { margin: 2px 0 3px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: 20px; line-height: 1.5; }
.x-follow-copy > p:last-child { color: var(--muted); font-size: 12px; }
.x-follow-button { display: inline-flex; align-items: center; gap: 14px; min-height: 50px; padding: 11px 20px; color: #fff; background: #111; border-radius: 100px; font-size: 12px; font-weight: 800; white-space: nowrap; transition: transform .2s ease, background .2s ease; }
.x-follow-button span { transition: transform .2s ease; }
.x-follow-card:hover .x-follow-button, .x-follow-card:focus-visible .x-follow-button { background: var(--green-dark); }
.x-follow-card:hover .x-follow-button span, .x-follow-card:focus-visible .x-follow-button span { transform: translateX(4px); }

.about-section { padding-top: 76px; padding-bottom: 76px; background: var(--paper); }
.about-card { display: grid; grid-template-columns: .75fr 1.25fr; gap: 48px; align-items: center; padding: 40px 5vw; background: linear-gradient(135deg, #f8ead9, #e7f5ef 62%, #fff3e4); border: 1px solid var(--sand); border-radius: 34px; box-shadow: 0 18px 45px rgba(105,73,49,.09); }
.about-illustration { min-height: 220px; display: grid; place-items: center; position: relative; }
.about-illustration::before, .about-illustration::after { content: ""; position: absolute; border-radius: 50%; }
.about-illustration::before { width: 200px; height: 200px; background: rgba(255,255,255,.48); }
.about-illustration::after { width: 160px; height: 26px; bottom: 20px; background: rgba(16,58,152,.13); filter: blur(5px); }
.about-logo-panel { width: min(300px, 92%); min-height: 160px; position: relative; z-index: 2; display: grid; place-items: center; gap: 14px; padding: 30px 26px 22px; background: rgba(255,253,248,.94); border: 1px solid rgba(234,215,191,.95); border-radius: 26px; box-shadow: 0 18px 34px rgba(82,61,45,.13); transform: rotate(-1.5deg); }
.about-logo-panel::before { content: ""; position: absolute; inset: 8px; border: 2px dashed rgba(60,180,207,.32); border-radius: 20px; pointer-events: none; }
.about-logo-panel img { width: min(235px, 100%); height: auto; }
.about-logo-panel span { color: var(--muted); font: 700 11px Georgia, serif; letter-spacing: .18em; }
.about-copy h2 { margin-bottom: 12px; font-size: clamp(24px, 2.6vw, 34px); }
.about-copy > p:not(.eyebrow) { max-width: 580px; margin-block: 0; color: #53657e; font-size: 14px; }
.company-data { margin: 20px 0 0; padding-top: 13px; border-top: 1px solid rgba(16,58,152,.18); }
.company-data div { display: grid; grid-template-columns: 100px 1fr; padding: 7px 0; font-size: 13px; }
.company-data dt { color: var(--green); font-weight: 800; }
.company-data dd { margin: 0; }

.support-section { background: #fff8ed; }
.support-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.support-inner > div:first-child > p:last-child { max-width: 520px; color: var(--muted); }
.support-links { background: var(--paper); border: 1px solid rgba(234,215,191,.78); border-radius: var(--radius-lg); box-shadow: 0 12px 35px rgba(105,73,49,.09); }
.support-links a { display: flex; justify-content: space-between; align-items: center; margin: 0 25px; padding: 22px 5px; border-bottom: 1px solid #e2ebf3; font-size: 13px; font-weight: 700; }
.support-links a:last-child { border: 0; }
.support-links i { color: var(--coral); font-style: normal; }

.site-footer { padding: 70px max(24px, calc((100% - 1180px) / 2)) 22px; color: rgba(255,255,255,.8); background: var(--green-dark); }
.footer-inner { display: flex; align-items: end; justify-content: space-between; gap: 40px; padding-bottom: 55px; }
.footer-brand { padding: 8px 12px; background: #fff; border-radius: 10px; }
.footer-brand .brand-logo { width: 170px; }
.footer-inner p { margin: 17px 0 0; font-family: "Kiwi Maru", "Meiryo", sans-serif; font-size: 13px; font-weight: 500; letter-spacing: .08em; }
.footer-inner nav { display: flex; flex-wrap: wrap; gap: 27px; font-size: 12px; }
.footer-inner nav a:hover { color: var(--yellow); }
.copyright { padding-top: 19px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.45); font: 10px Georgia, serif; letter-spacing: .1em; }

@media (max-width: 900px) {
  .header-inner { width: min(100% - 32px, 1180px); height: 68px; }
  .menu-button { width: 42px; height: 42px; display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 8px; border: 0; color: var(--ink); background: transparent; cursor: pointer; }
  .menu-button span { width: 25px; height: 2px; background: currentColor; transition: .2s; }
  .menu-button b { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .menu-button[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .global-nav { position: fixed; inset: 68px 0 auto; display: grid; gap: 0; padding: 18px 24px 28px; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: var(--shadow); transform: translateY(-130%); opacity: 0; visibility: hidden; transition: .25s ease; }
  .global-nav.open { transform: none; opacity: 1; visibility: visible; }
  .global-nav a { padding: 12px 4px; }
  .nav-contact { margin-top: 8px; text-align: center; }
  .hero { min-height: auto; }
  .hero-inner { width: min(100% - 38px, 700px); padding: 52px 0 72px; }
  .hero-actions { justify-content: center; }
  .hero-visual { width: min(600px, 100%); margin: auto; }
  .hero-game-icon { opacity: .78; }
  .icon-tailor { width: 82px; left: 1%; }
  .icon-alchemist { width: 68px; left: 4%; bottom: 9%; }
  .icon-marche3 { width: 86px; right: 1%; }
  .icon-wallet { width: 68px; right: 4%; bottom: 8%; }
  .icon-marche, .icon-marche2, .icon-nshop { display: none; }
  .latest-layout { grid-template-columns: 1fr; gap: 55px; }
  .latest-copy { max-width: 650px; margin: auto; text-align: center; }
  .latest-copy .platform-note { margin-left: 0; }
  .section-pad { padding-top: 90px; padding-bottom: 90px; }
  .feature-grid { grid-template-columns: 1fr; max-width: 600px; margin: auto; }
  .feature-card.lifted { transform: none; }
  .feature-card { display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; }
  .feature-card img { grid-column: 2; grid-row: 1 / span 3; }
  .feature-card p { min-height: 0; }
  .game-grid { grid-template-columns: 1fr 1fr; }
  .game-card:last-child { grid-column: 1 / -1; max-width: calc(50% - 12px); }
  .news-layout { grid-template-columns: 1fr; gap: 20px; }
  .x-follow-card { grid-template-columns: auto 1fr; }
  .x-follow-button { grid-column: 1 / -1; justify-self: start; }
  .desktop-link { display: none; }
  .mobile-link { display: inline-flex; }
  .about-card { grid-template-columns: 1fr; gap: 22px; }
  .about-illustration { min-height: 190px; }
  .support-inner { grid-template-columns: 1fr; gap: 25px; }
}

@media (max-width: 620px) {
  .brand-logo { width: 158px; }
  .hero-inner { padding-top: 42px; }
  .hero-copy h1 { font-size: clamp(30px, 8.5vw, 36px); }
  .hero-lead br { display: none; }
  .hero-game-icon { padding: 3px; border-radius: 15px; opacity: .72; }
  .icon-tailor { width: 68px; left: -12px; top: 9%; }
  .icon-alchemist { width: 56px; left: 3%; bottom: 5%; }
  .icon-marche3 { width: 72px; right: -13px; top: 11%; }
  .icon-wallet { width: 56px; right: 3%; bottom: 5%; }
  .button { width: 100%; }
  .platform-note { margin-left: 0; }
  .hero-visual { padding-inline: 8px; }
  .hero-card { padding: 12px; border-radius: 25px; }
  .hero-card::before { inset: 6px; border-radius: 20px; }
  .hero-card img { border-radius: 17px; }
  .section-pad { padding: 76px 20px; }
  .section-heading { margin-bottom: 38px; }
  .feature-card { display: block; padding: 28px 22px 22px; }
  .feature-card p { margin-bottom: 20px; }
  .game-grid { grid-template-columns: 1fr; }
  .game-card:last-child { grid-column: auto; max-width: none; }
  .game-art { height: 240px; }
  .news-list a:not(.mobile-link) { grid-template-columns: 92px 1fr 20px; gap: 10px; padding: 15px 0; }
  .news-label { justify-self: start; grid-row: 2; }
  .news-list strong { grid-column: 2; grid-row: 1 / span 2; }
  .news-list i { grid-column: 3; grid-row: 1 / span 2; }
  .about-section { padding-top: 54px; padding-bottom: 54px; }
  .about-card { padding: 28px 22px; border-radius: 26px; }
  .about-illustration { min-height: 165px; }
  .about-logo-panel { min-height: 145px; padding: 26px 22px 18px; }
  .company-data div { grid-template-columns: 85px 1fr; }
  .footer-inner { display: block; }
  .footer-inner nav { margin-top: 38px; gap: 15px 24px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* 下層ページ */
.page-main { min-height: 60vh; }
.page-hero { padding: 84px max(24px, calc((100% - 980px) / 2)) 58px; text-align: center; background: linear-gradient(180deg, rgba(255,253,248,.96), rgba(255,248,237,.72)); border-bottom: 1px solid rgba(234,215,191,.72); }
.page-hero h1 { margin: 0 0 13px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(34px, 5vw, 52px); line-height: 1.35; }
.page-hero p:last-child { max-width: 650px; margin: 0 auto; color: var(--muted); }
.breadcrumb { width: min(980px, calc(100% - 48px)); margin: 22px auto 0; color: var(--muted); font-size: 12px; }
.breadcrumb a { color: var(--link); }
.page-content { padding: 52px max(24px, calc((100% - 980px) / 2)) 110px; }
.content-card { padding: clamp(30px, 6vw, 66px); background: var(--paper); border: 1px solid var(--sand); border-radius: var(--radius-lg); box-shadow: 0 16px 42px rgba(105,73,49,.09); }
.content-card > :first-child { margin-top: 0; }
.content-card > :last-child { margin-bottom: 0; }
.content-card h2 { margin: 3.2rem 0 1rem; padding-bottom: .65rem; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(23px, 3vw, 30px); line-height: 1.45; border-bottom: 2px dashed rgba(60,180,207,.32); }
.content-card h3 { margin: 2.2rem 0 .65rem; color: var(--green-dark); font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: 18px; }
.content-card p, .content-card li { color: var(--muted); }
.content-card a:not(.button) { color: var(--link); text-decoration: underline; text-underline-offset: .2em; }
.content-card ul { padding-left: 1.4rem; }
.notice-box { margin: 0 0 34px; padding: 22px 24px; background: #fff0eb; border: 1px solid rgba(238,118,95,.28); border-radius: 18px; }
.notice-box strong { color: #a24433; }
.notice-box p { margin: 0; }
.notice-box p + p { margin-top: .6rem; }
.form-frame-wrap { margin-top: 32px; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 22px; }
.form-frame { display: block; width: 100%; height: 1200px; border: 0; }
.legal-list { margin: 0; }
.legal-list div { display: grid; grid-template-columns: 230px 1fr; gap: 28px; padding: 25px 0; border-bottom: 1px solid var(--line); }
.legal-list div:first-child { padding-top: 0; }
.legal-list div:last-child { padding-bottom: 0; border-bottom: 0; }
.legal-list dt { color: var(--green-dark); font-weight: 700; }
.legal-list dd { margin: 0; color: var(--muted); }
.legal-note { margin-top: 38px; padding: 20px 24px; background: #fff7e9; border-radius: 18px; color: var(--muted); font-size: 13px; }
.page-footer-nav { margin-top: 38px; text-align: center; }
.page-footer-nav .button { min-width: 220px; }

/* アプリポリシー・ゲームガイド */
.policy-updated { color: var(--muted); font-size: 13px; }
.policy-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 24px; }
.policy-app { scroll-margin-top: 100px; padding: 22px; background: #fffaf0; border: 1px solid var(--sand); border-radius: 18px; }
.policy-app h3 { margin-top: 0; }
.policy-app p { margin: .45rem 0; font-size: 14px; }
.module-list { margin: 24px 0 0; }
.module-list div { padding: 22px 0; border-bottom: 1px solid var(--line); }
.module-list div:last-child { border-bottom: 0; }
.module-list dt { margin-bottom: 7px; color: var(--green-dark); font-weight: 700; }
.module-list dd { margin: 0; color: var(--muted); }
.guide-lead { margin-bottom: 28px; padding: 18px 20px; background: #fff7e9; border: 1px solid var(--sand); border-radius: 16px; }
.guide-lead p { margin: 0; }
.guide-toc { padding: 24px; background: #eef8f6; border-radius: 18px; }
.guide-toc h2 { margin-top: 0; }
.guide-toc ul { columns: 2; margin-bottom: 0; }
.guide-article h2 { scroll-margin-top: 100px; }
.game-support { padding-top: 60px; padding-bottom: 60px; }
.support-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 22px; }
.button-outline { color: var(--green-dark); background: transparent; border: 1px solid currentColor; }
.game-privacy { padding-top: 28px; padding-bottom: 28px; text-align: center; }
.support-privacy-link { color: var(--muted); font-size: 12px; text-decoration: underline; text-underline-offset: .25em; }
.support-privacy-link:hover, .support-privacy-link:focus-visible { color: var(--link); }
.support-actions .support-privacy-link { flex-basis: 100%; margin-top: 4px; }

@media (max-width: 620px) {
  .policy-grid { grid-template-columns: 1fr; }
  .guide-toc ul { columns: 1; }
  .support-actions .button { width: 100%; }
}

@media (max-width: 620px) {
  .page-hero { padding: 60px 20px 42px; }
  .breadcrumb { width: calc(100% - 40px); }
  .page-content { padding: 36px 20px 76px; }
  .content-card { padding: 28px 22px; border-radius: 24px; }
  .legal-list div { grid-template-columns: 1fr; gap: 6px; padding: 21px 0; }
  .form-frame-wrap { margin-inline: -10px; border-radius: 16px; }
}
/* 作品詳細ページ */
.game-page { --game-accent: var(--coral); --game-soft: #fff0eb; }
.game-page.game-tailor-page { --game-accent: #de6c58; --game-soft: #e7f6f8; }
.game-page.game-nshop-page { --game-accent: #c8872d; --game-soft: #fff0c6; }
.game-page.game-alchemist-page { --game-accent: #a46180; --game-soft: #f5e5ed; }
.game-alchemist-page .store-actions .button { min-width: 150px; flex: 1 1 150px; }
.game-alchemist-page .game-download .platform-note { margin-inline: auto; color: rgba(255,255,255,.72); }
.game-hero { padding: 74px max(24px, calc((100% - 1180px) / 2)) 86px; background: linear-gradient(145deg, var(--game-soft), var(--paper) 72%); border-bottom: 1px solid rgba(234,215,191,.72); overflow: hidden; }
.game-hero-inner { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(42px, 7vw, 90px); align-items: center; }
.game-hero-copy h1 { margin: 10px 0 18px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(38px, 5.2vw, 68px); line-height: 1.22; letter-spacing: -.035em; }
.game-hero-copy > p:not(.eyebrow):not(.platform-note) { max-width: 580px; color: var(--muted); font-size: 16px; }
.game-category { display: inline-block; margin-top: 14px; padding: 5px 13px; color: var(--game-accent); background: rgba(255,255,255,.68); border: 1px solid color-mix(in srgb, var(--game-accent) 32%, transparent); border-radius: 100px; font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.game-hero-art { position: relative; padding: 20px; background: var(--paper); border: 1px solid var(--sand); border-radius: 34px; box-shadow: var(--shadow); transform: rotate(1deg); }
.game-hero-art::before { content: ""; position: absolute; inset: 10px; border: 2px dashed color-mix(in srgb, var(--game-accent) 40%, transparent); border-radius: 26px; pointer-events: none; }
.game-hero-art img { width: 100%; aspect-ratio: 2.048; object-fit: cover; border-radius: 21px; }
.game-nshop-page .game-hero-art img { object-fit: contain; background: #fff4cf; }
.game-alchemist-page .game-hero-art img { aspect-ratio: 16 / 9; object-fit: contain; background: var(--game-soft); }
.store-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.store-actions .button { min-width: 210px; }
.game-section { padding: 100px max(24px, calc((100% - 1040px) / 2)); }
.game-section.alt { background: var(--paper); border-block: 1px solid rgba(234,215,191,.72); }
.game-intro { max-width: 760px; margin: 0 auto; text-align: center; }
.game-intro h2, .game-section-heading h2 { margin: 0 0 20px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(30px, 4vw, 46px); line-height: 1.4; }
.game-intro p { color: var(--muted); font-size: 16px; }
.game-highlight { color: var(--game-accent); }
.game-section-heading { max-width: 670px; margin-bottom: 44px; }
.game-section-heading > p:last-child { color: var(--muted); }
.story-card { display: grid; grid-template-columns: 170px 1fr; gap: 34px; padding: 42px; background: linear-gradient(135deg, var(--game-soft), var(--paper)); border: 1px solid var(--sand); border-radius: 30px; box-shadow: 0 12px 32px rgba(105,73,49,.08); }
.story-label { color: var(--game-accent); font-family: "Kiwi Maru", "Meiryo", sans-serif; font-size: 13px; letter-spacing: .15em; }
.story-card p { margin: 0; color: var(--muted); }
.story-card-single { grid-template-columns: 1fr; }
.game-feature-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.game-feature-item { padding: 28px; background: var(--paper); border: 1px solid var(--sand); border-radius: 22px; box-shadow: 0 9px 25px rgba(105,73,49,.06); }
.game-feature-item h3 { margin: 0 0 10px; color: var(--game-accent); font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: 19px; }
.game-feature-item p { margin: 0; color: var(--muted); font-size: 14px; }
.recommend-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 11px 25px; margin: 28px 0 0; padding: 0; list-style: none; }
.recommend-list li { position: relative; padding: 12px 16px 12px 38px; background: var(--game-soft); border-radius: 14px; color: var(--muted); }
.recommend-list li::before { content: "✓"; position: absolute; left: 15px; color: var(--game-accent); font-weight: 800; }
.screenshot-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.screenshot-grid figure { margin: 0; padding: 10px; background: var(--paper); border: 1px solid var(--sand); border-radius: 20px; box-shadow: 0 10px 25px rgba(105,73,49,.1); }
.screenshot-grid img { width: 100%; aspect-ratio: 675 / 1200; object-fit: cover; border-radius: 13px; background: #fff; }

.game-related { display: block; padding: 34px; text-align: center; background: var(--game-soft); border: 1px dashed color-mix(in srgb, var(--game-accent) 45%, transparent); border-radius: 24px; }
.game-related h2 { margin: 0 0 12px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: 25px; }
.game-related p { margin: 0; color: var(--muted); }
.game-related .inline-link { color: var(--link); text-decoration: underline; text-underline-offset: .2em; }
.game-related:hover, .game-related:focus-visible { box-shadow: 0 10px 24px rgba(105,73,49,.1); }
.game-download { text-align: center; background: var(--green-dark); color: #fff; }
.game-download h2 { margin: 0 0 8px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(30px, 4vw, 44px); }
.game-download p { margin: 0; color: rgba(255,255,255,.72); }
.game-download .store-actions { justify-content: center; }
.game-download .button-primary { background: #fff; color: var(--green-dark); }
.game-download .button-secondary { background: var(--yellow); }

@media (max-width: 900px) {
  .game-hero-inner { grid-template-columns: 1fr; }
  .game-hero-copy { text-align: center; }
  .game-hero-copy > p:not(.eyebrow):not(.platform-note) { margin-inline: auto; }
  .store-actions { justify-content: center; }
  .platform-note { margin-inline: auto; }
  .game-hero-art { width: min(680px, 100%); margin: auto; }
}
@media (max-width: 620px) {
  .game-hero { padding: 55px 20px 65px; }
  .game-hero-art { padding: 12px; border-radius: 24px; }
  .game-hero-art::before { inset: 6px; border-radius: 19px; }
  .game-hero-art img { border-radius: 16px; }
  .game-section { padding: 72px 20px; }
  .story-card { grid-template-columns: 1fr; gap: 10px; padding: 28px 23px; }
  .game-feature-list, .recommend-list { grid-template-columns: 1fr; }
  .screenshot-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .screenshot-grid figure { padding: 6px; border-radius: 14px; }
  .screenshot-grid img { border-radius: 9px; }
}
/* 作品一覧と旧作 */
.game-page.game-marche-page { --game-accent: #e67f45; --game-soft: #fff0d9; }
.game-page.game-marche2-page { --game-accent: #cc6d7f; --game-soft: #fce7ec; }
.game-page.game-marche3-page { --game-accent: #6b9d50; --game-soft: #eaf4df; }
.game-page.game-planet-page { --game-accent: #66a85d; --game-soft: #e4f2dc; }
.game-page.game-wallet-page { --game-accent: #267ea7; --game-soft: #e4f2f8; }
.game-page.game-slime-page { --game-accent: #70a345; --game-soft: #e9f4dc; }
.game-hero-art.icon-art { min-height: 390px; display: grid; place-items: center; background: var(--game-soft); }
.game-hero-art.icon-art img { width: min(330px, 72%); aspect-ratio: 1; object-fit: contain; image-rendering: auto; filter: drop-shadow(0 16px 20px rgba(65,55,45,.18)); }

.game-marche-page .game-hero-art img,
.game-marche2-page .game-hero-art img { aspect-ratio: 16 / 5; object-fit: contain; background: var(--game-soft); }
.game-tailor-page .screenshot-grid img { object-fit: contain; }
.game-marche-page .screenshot-grid img,
.game-marche2-page .screenshot-grid img { aspect-ratio: 2 / 3; object-fit: contain; }
.series-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 26px; }
.series-links a { padding: 9px 16px; color: var(--link); background: var(--paper); border: 1px solid var(--sand); border-radius: 100px; font-size: 12px; font-weight: 700; }
.special-site-link { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; line-height: 1.35; text-align: center; }
.special-site-note { color: var(--coral); font-size: 11px; font-weight: 700; }
.series-links a.special-site-link { border-radius: 18px; }
.portfolio-hero { padding: 82px max(24px, calc((100% - 980px) / 2)) 66px; text-align: center; background: linear-gradient(160deg, #fff3df, #e8f5f1 62%, #fffdf8); border-bottom: 1px solid var(--sand); }
.portfolio-hero h1 { margin: 9px 0 16px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(38px, 5vw, 58px); }
.portfolio-hero p:last-child { max-width: 680px; margin-inline: auto; color: var(--muted); }
.portfolio-section { padding: 84px max(24px, calc((100% - 1120px) / 2)); }
.portfolio-section.alt { background: var(--paper); border-block: 1px solid var(--line); }
.portfolio-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.portfolio-card { display: block; overflow: hidden; background: var(--paper); border: 1px solid var(--sand); border-radius: 26px; box-shadow: 0 10px 28px rgba(105,73,49,.08); transition: transform .2s ease, box-shadow .2s ease; }
.portfolio-card:hover, .portfolio-card:focus-visible { transform: translateY(-5px); box-shadow: var(--shadow); }
.portfolio-card-art { height: 210px; display: grid; place-items: center; padding: 22px; background: linear-gradient(145deg, #f8efe3, #eef7f3); }
.portfolio-card-art img { width: 100%; height: 100%; object-fit: contain; border-radius: 13px; filter: drop-shadow(0 8px 12px rgba(65,55,45,.12)); }
.portfolio-card.icon-card .portfolio-card-art img { width: 145px; object-fit: contain; filter: drop-shadow(0 8px 12px rgba(65,55,45,.16)); }
.portfolio-card-body { padding: 25px 25px 27px; }
.portfolio-card-body .game-tag { margin-bottom: 6px; }
.portfolio-card-body h2, .portfolio-card-body h3 { min-height: 55px; margin: 0 0 10px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: 21px; line-height: 1.45; }
.portfolio-card-body p:not(.game-tag) { min-height: 76px; margin: 0; color: var(--muted); font-size: 13px; }
.portfolio-card-cta { display: flex; justify-content: space-between; margin-top: 19px; padding-top: 16px; color: var(--link); border-top: 1px solid var(--line); font-size: 13px; font-weight: 700; }
.archive-note { max-width: 760px; margin: 0 auto 42px; padding: 22px 25px; background: #fff7e9; border: 1px solid var(--sand); border-radius: 18px; color: var(--muted); text-align: center; }
.legacy-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.legacy-card { display: grid; grid-template-columns: 115px 1fr; gap: 24px; align-items: center; padding: 28px; background: var(--paper); border: 1px solid var(--sand); border-radius: 24px; }
.legacy-card img { width: 115px; aspect-ratio: 1; object-fit: contain; border-radius: 20px; filter: saturate(.82); }
.legacy-card h2 { margin: 0 0 8px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: 20px; }
.legacy-card p { margin: 0; color: var(--muted); font-size: 13px; }
.status-badge { display: inline-block; margin-bottom: 9px; padding: 3px 9px; color: #786c64; background: #eee8df; border-radius: 100px; font-size: 10px; font-weight: 700; }

@media (max-width: 900px) {
  .portfolio-grid { grid-template-columns: repeat(2, 1fr); }
  .legacy-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .game-hero-art.icon-art { min-height: 280px; }
  .portfolio-hero { padding: 60px 20px 48px; }
  .portfolio-section { padding: 66px 20px; }
  .portfolio-grid { grid-template-columns: 1fr; }
  .portfolio-card-body h2, .portfolio-card-body h3, .portfolio-card-body p:not(.game-tag) { min-height: 0; }
  .legacy-card { grid-template-columns: 82px 1fr; gap: 17px; padding: 21px; }
  .legacy-card img { width: 82px; }
}
/* まんぷくマルシェ シリーズ */
.home-series-feature { display: grid; grid-template-columns: .9fr 1.1fr; gap: 42px; align-items: center; margin-top: 48px; padding: 34px 38px; overflow: hidden; background: linear-gradient(135deg, #fff0d8, #f9e9ec 55%, #eaf4df); border: 1px solid var(--sand); border-radius: 30px; box-shadow: 0 12px 32px rgba(105,73,49,.09); transition: transform .2s ease, box-shadow .2s ease; }
.home-series-feature:hover, .home-series-feature:focus-visible { transform: translateY(-5px); box-shadow: var(--shadow); }
.home-series-images { min-height: 170px; display: grid; align-items: center; position: relative; }
.home-series-images img { width: 65%; position: absolute; padding: 6px; background: var(--paper); border: 1px solid var(--sand); border-radius: 14px; box-shadow: 0 8px 20px rgba(105,73,49,.13); }
.home-series-images img:nth-child(1) { left: 0; top: 8px; transform: rotate(-3deg); }
.home-series-images img:nth-child(2) { right: 0; top: 54px; transform: rotate(3deg); }
.home-series-images img:nth-child(3) { left: 18%; bottom: 0; transform: rotate(-1deg); }
.home-series-copy .game-tag { margin-bottom: 8px; }
.home-series-copy h3 { margin: 0 0 11px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(25px, 3vw, 36px); }
.home-series-copy p:not(.game-tag) { margin: 0; color: var(--muted); font-size: 14px; }
.home-series-copy strong { display: inline-flex; gap: 15px; align-items: center; margin-top: 20px; color: var(--link); font-size: 13px; }
.series-hero { padding: 80px max(24px, calc((100% - 1180px) / 2)) 94px; background: linear-gradient(145deg, #fff0d8, #fce7ec 50%, #eaf4df); border-bottom: 1px solid var(--sand); }
.series-hero-inner { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: center; }
.series-hero-copy h1 { margin: 10px 0 20px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(40px, 5.4vw, 68px); line-height: 1.25; }
.series-hero-copy > p:not(.eyebrow) { color: var(--muted); }
.series-hero-copy .button { margin-top: 22px; }
.series-collage { min-height: 410px; position: relative; }
.series-collage img { width: 76%; position: absolute; padding: 10px; background: var(--paper); border: 1px solid var(--sand); border-radius: 22px; box-shadow: var(--shadow); }
.series-collage img:nth-child(1) { left: 0; top: 5px; transform: rotate(-3deg); }
.series-collage img:nth-child(2) { right: 0; top: 120px; transform: rotate(3deg); }
.series-collage img:nth-child(3) { left: 8%; bottom: 0; transform: rotate(-1deg); }
.series-chapters { display: grid; gap: 28px; }
.series-chapter { display: grid; transition: transform .2s ease, box-shadow .2s ease; grid-template-columns: .9fr 1.1fr; gap: 35px; align-items: center; padding: 30px; background: var(--paper); border: 1px solid var(--sand); border-radius: 28px; box-shadow: 0 10px 28px rgba(105,73,49,.08); }
.series-chapter:hover, .series-chapter:focus-visible { transform: translateY(-4px); box-shadow: var(--shadow); }
.series-chapter:nth-child(even) .series-chapter-art { order: 2; }
.series-chapter-art { display: grid; place-items: center; min-height: 220px; padding: 22px; background: var(--game-soft, #fff3e5); border-radius: 20px; }
.series-chapter-art img { width: 100%; object-fit: contain; filter: drop-shadow(0 9px 13px rgba(65,55,45,.14)); }
.series-chapter-copy .game-tag { margin-bottom: 5px; }
.series-chapter-copy h2, .series-chapter-copy h3 { margin: 0 0 11px; font-family: "M PLUS Rounded 1c", "Meiryo", sans-serif; font-size: clamp(25px, 3vw, 34px); }
.series-chapter-copy p:not(.game-tag) { color: var(--muted); }
.series-chapter-copy .button { margin-top: 10px; }

@media (max-width: 900px) {
  .series-hero-inner { grid-template-columns: 1fr; gap: 35px; }
  .series-hero-copy { text-align: center; }
  .series-collage { width: min(650px, 100%); margin: auto; }
}
@media (max-width: 620px) {
  .home-series-feature { grid-template-columns: 1fr; gap: 20px; padding: 25px 22px; }
  .home-series-images { min-height: 145px; }
  .series-hero { padding: 60px 20px 70px; }
  .series-collage { min-height: 275px; }
  .series-collage img { padding: 6px; border-radius: 14px; }
  .series-collage img:nth-child(2) { top: 85px; }
  .series-chapter { grid-template-columns: 1fr; gap: 22px; padding: 22px; }
  .series-chapter:nth-child(even) .series-chapter-art { order: 0; }
  .series-chapter-art { min-height: 165px; }
}
@media (max-width: 620px) {
  .x-follow-card { gap: 15px; margin-top: 40px; padding: 22px 20px; }
  .x-follow-mark { width: 50px; height: 50px; border-radius: 15px; font-size: 24px; }
  .x-follow-copy h3 { font-size: 17px; }
  .x-follow-copy > p:last-child { display: none; }
  .x-follow-button { width: 100%; justify-content: center; }
}
