:root {
  --ink: #30284b;
  --muted: #6e6585;
  --lavender: #8c76c9;
  --lavender-deep: #64509f;
  --lavender-pale: #eee9fb;
  --blue-pale: #eaf5ff;
  --blue: #73b4de;
  --pink-pale: #fff0f6;
  --pink: #ef9cbd;
  --paper: #fffefe;
  --line: #e6e0f2;
  --shadow: 0 18px 50px rgba(85, 62, 140, 0.12);
  --shadow-soft: 0 10px 26px rgba(79, 57, 128, 0.08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  background: #fbfaff;
  font-family: "Hiragino Sans", "Yu Gothic", "Meiryo", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.75;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; }
em { font-style: normal; }
.container { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 50; padding: 8px 14px; border-radius: 8px; background: var(--ink); color: white; }
.skip-link:focus { top: 16px; }

/* Header */
.site-header { position: relative; z-index: 12; padding: 22px 0; }
.nav { display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.brand { display: inline-flex; align-items: center; flex: none; gap: 10px; color: var(--ink); line-height: 1.15; text-decoration: none; }
.brand-mark { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 13px; color: white; background: linear-gradient(145deg, #9b85d9, #7d66bb); box-shadow: 0 7px 15px rgba(112, 86, 176, .24); }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 1.03rem; letter-spacing: .07em; }
.brand small { margin-top: 3px; color: var(--muted); font-size: .74rem; letter-spacing: .06em; }
.nav-links { display: flex; align-items: center; gap: 28px; margin-left: auto; color: #554d6a; font-size: .9rem; }
.nav-links a { position: relative; text-decoration: none; }
.nav-links a::after { position: absolute; right: 0; bottom: -4px; left: 0; height: 1px; background: var(--lavender); content: ""; transform: scaleX(0); transform-origin: right; transition: transform .2s ease; }
.nav-links a:hover::after, .nav-links a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.nav-toggle { display: none; border: 0; border-radius: 12px; padding: 8px 10px; color: var(--lavender-deep); background: #f1edfb; font-size: 1.2rem; line-height: 1; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; border: 0; border-radius: 999px; padding: 14px 22px; font: inherit; font-weight: 700; line-height: 1.4; text-align: center; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button:focus-visible, .text-link:focus-visible, .back-link:focus-visible, .nav-toggle:focus-visible { outline: 3px solid rgba(115, 180, 222, .55); outline-offset: 3px; }
.button-small { padding: 10px 16px; color: var(--lavender-deep); background: #f1edfb; font-size: .84rem; }
.button-primary { color: white; background: linear-gradient(135deg, #947ed0, #7860b7); box-shadow: 0 13px 25px rgba(112, 86, 176, .28); }
.button-primary:hover { box-shadow: 0 16px 30px rgba(112, 86, 176, .34); }
.back-link { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: .9rem; font-weight: 700; text-decoration: none; }

/* Common headings */
.section { padding: 116px 0; }
.kicker { margin: 0 0 10px; color: var(--lavender-deep); font-size: .76rem; font-weight: 800; letter-spacing: .16em; }
h1, h2, h3, p { overflow-wrap: anywhere; }
h2 { margin: 0; font-size: clamp(2rem, 4vw, 3.15rem); line-height: 1.32; letter-spacing: -.045em; }
h3 { line-height: 1.45; }
.section-top { display: flex; align-items: end; justify-content: space-between; gap: 44px; margin-bottom: 46px; }
.section-intro { max-width: 430px; margin: 0; color: var(--muted); }
.center-heading { max-width: 720px; margin: 0 auto 46px; text-align: center; }
.center-heading > p:last-child { margin: 17px 0 0; color: var(--muted); }
.text-link { color: var(--muted); font-weight: 700; text-decoration: none; transition: color .2s ease; }
.text-link:hover { color: var(--lavender-deep); }

/* Home hero */
.hero { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; min-height: min(720px, calc(100vh - 82px)); gap: clamp(28px, 6vw, 80px); padding: 48px 0 78px; }
.hero-copy { position: relative; z-index: 2; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 16px; padding: 6px 12px; border: 1px solid #e4ddf5; border-radius: 999px; background: rgba(255,255,255,.8); color: var(--lavender-deep); font-size: .82rem; font-weight: 700; letter-spacing: .03em; }
.eyebrow span { color: #f29abc; }
.hero h1 { margin: 0; font-size: clamp(2.75rem, 5.5vw, 5rem); line-height: 1.21; letter-spacing: -.06em; }
.hero h1 em, .gift-feature h3 em, .bonus-hero h1 em { color: var(--lavender); }
.hero-lead { margin: 24px 0 0; color: var(--muted); font-size: clamp(1rem, 1.6vw, 1.12rem); }
.hero-lead strong { color: var(--ink); font-weight: 700; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 30px; }
.hero-note { margin: 17px 0 0; color: #817793; font-size: .82rem; }
.hero-art { position: relative; min-height: 520px; overflow: hidden; border: 1px solid rgba(225, 216, 244, .9); border-radius: 42px; background: radial-gradient(circle at 70% 25%, #fbfaff 0 9%, transparent 25%), linear-gradient(145deg, #e8e1fa 0%, #f6effe 46%, #e9f5fe 100%); box-shadow: var(--shadow); }
.art-glow { position: absolute; border-radius: 999px; filter: blur(3px); }
.glow-one { width: 210px; height: 210px; top: 72px; right: -44px; background: rgba(191, 171, 239, .55); }
.glow-two { width: 170px; height: 170px; bottom: 0; left: -48px; background: rgba(165, 220, 250, .52); }
.art-orbit { position: absolute; border: 1px solid rgba(137, 111, 198, .22); border-radius: 50%; }
.orbit-one { width: 390px; height: 390px; top: 48px; left: 50%; transform: translateX(-50%); }
.orbit-two { width: 286px; height: 286px; top: 99px; left: 50%; transform: translateX(-50%) rotate(26deg); border-color: rgba(255,255,255,.75); }
.art-label { position: absolute; z-index: 5; border: 1px solid rgba(255,255,255,.9); border-radius: 999px; background: rgba(255,255,255,.78); box-shadow: 0 8px 18px rgba(91, 72, 137, .09); color: #746595; font-size: .72rem; font-weight: 700; letter-spacing: .04em; backdrop-filter: blur(7px); }
.label-one { top: 45px; left: 23px; padding: 8px 11px; transform: rotate(-7deg); }
.label-two { right: 16px; bottom: 50px; padding: 8px 13px; transform: rotate(5deg); }
.label-two span { color: #ee94b7; }
.art-note { position: absolute; z-index: 2; top: 186px; left: 28px; color: #6b5a97; font-size: .85rem; font-weight: 700; line-height: 1.6; letter-spacing: .05em; }
.art-note span, .art-note strong { display: block; }
.art-note strong { color: var(--lavender-deep); font-size: 1.05rem; }
.hero-character { position: absolute; z-index: 3; right: -33px; bottom: -42px; width: min(112%, 565px); max-width: none; pointer-events: none; }
.hello-strip { padding: 18px 0; color: #594a82; background: linear-gradient(90deg, #ede8fa, #e9f6fd, #fff0f6); }
.hello-strip-inner { display: flex; align-items: center; justify-content: center; gap: 18px; text-align: center; }
.hello-strip p { margin: 0; font-size: .92rem; }
.hello-strip strong { margin-left: 8px; }
.spark { color: var(--pink); }

/* About */
.about { background: #fffefe; }
.split-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(45px, 10vw, 140px); }
.about-copy { max-width: 575px; color: var(--muted); }
.about-copy p { margin: 0 0 19px; }
.about-copy strong { color: var(--ink); }
.value-points { display: grid; gap: 0; margin-top: 32px; border-top: 1px solid var(--line); }
.value-points div { display: flex; align-items: center; gap: 17px; padding: 14px 0; border-bottom: 1px solid var(--line); color: var(--ink); }
.value-points span { color: var(--lavender); font-size: .75rem; font-weight: 800; letter-spacing: .08em; }

/* Gifts */
.gifts-section { background: #f8f6fd; }
.gift-feature { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(35px, 6vw, 80px); align-items: center; overflow: hidden; padding: clamp(32px, 5.5vw, 68px); border: 1px solid #e5def3; border-radius: 34px; background: var(--paper); box-shadow: var(--shadow-soft); }
.gift-feature-copy > p:not(.gift-label) { margin: 20px 0 0; color: var(--muted); }
.gift-label { display: inline-flex; align-items: center; gap: 8px; margin: 0; color: var(--lavender-deep); font-size: .84rem; font-weight: 800; }
.gift-feature h3 { margin: 15px 0 0; font-size: clamp(1.75rem, 3vw, 2.55rem); letter-spacing: -.045em; }
.check-list { display: grid; gap: 9px; margin: 26px 0 30px; padding: 0; color: #574e69; list-style: none; }
.check-list li { position: relative; padding-left: 26px; }
.check-list li::before { position: absolute; top: .58em; left: 2px; width: 11px; height: 6px; border-bottom: 2px solid var(--lavender); border-left: 2px solid var(--lavender); content: ""; transform: rotate(-45deg); }
.gift-feature-visual { position: relative; min-height: 360px; border-radius: 28px; background: linear-gradient(145deg, #f0eaff, #e8f6ff); }
.prompt-sheet { position: absolute; border-radius: 16px; box-shadow: 0 18px 30px rgba(86, 68, 133, .14); }
.sheet-back { width: 208px; height: 273px; top: 50px; left: calc(50% - 92px); background: #c6b8ec; transform: rotate(-9deg); }
.sheet-front { top: 36px; left: calc(50% - 94px); width: 220px; height: 290px; padding: 27px 23px; background: #fff; transform: rotate(6deg); }
.sheet-kicker { margin: 0; color: var(--lavender); font-size: .66rem; font-weight: 800; letter-spacing: .12em; }
.sheet-lines { display: grid; gap: 10px; margin-top: 25px; }
.sheet-lines i, .document-lines i { display: block; height: 6px; border-radius: 99px; background: #eeeaf6; }
.sheet-lines i:nth-child(2) { width: 76%; }.sheet-lines i:nth-child(3) { width: 89%; }.sheet-lines i:nth-child(4) { width: 64%; }.sheet-lines i:nth-child(5) { width: 81%; }
.sheet-badge { position: absolute; right: 18px; bottom: 20px; display: grid; width: 58px; height: 58px; place-items: center; border-radius: 50%; color: white; background: linear-gradient(145deg, #82c5e6, #8a71c5); font-size: 1.15rem; font-weight: 800; line-height: 1; text-align: center; }
.sheet-badge small { font-size: .42rem; letter-spacing: .05em; }
.floating-chip { position: absolute; z-index: 4; padding: 7px 11px; border: 1px solid rgba(255,255,255,.8); border-radius: 999px; background: rgba(255,255,255,.83); box-shadow: 0 8px 14px rgba(82, 61, 128, .08); color: #675584; font-size: .72rem; font-weight: 800; }
.chip-one { top: 29px; right: 24px; }.chip-two { bottom: 42px; left: 23px; }.chip-three { right: 13px; bottom: 84px; }
.upcoming-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 24px; }
.upcoming-card { min-height: 228px; padding: 29px 31px; border: 1px dashed #d9d1e7; border-radius: 25px; background: rgba(255,255,255,.68); }
.coming-soon { margin: 0; color: #9b91ac; font-size: .69rem; font-weight: 800; letter-spacing: .13em; }
.upcoming-icon { display: grid; width: 42px; height: 42px; place-items: center; margin-top: 18px; border-radius: 14px; font-size: 1.4rem; }
.upcoming-icon.blue { color: #4585ac; background: #e0f2ff; }.upcoming-icon.pink { color: #ba6687; background: #ffe8f1; }
.upcoming-card h3 { margin: 12px 0 0; font-size: 1.18rem; }.upcoming-card > p:last-child { margin: 7px 0 0; color: var(--muted); font-size: .9rem; }

/* Create */
.create-section { background: var(--paper); }
.create-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 22px; }
.portfolio-panel, .categories-panel { min-height: 270px; padding: clamp(28px, 4vw, 48px); border-radius: 29px; }
.portfolio-panel { color: #fff; background: linear-gradient(135deg, #7d68b4 0%, #9074c6 55%, #b8a8e6 100%); box-shadow: 0 15px 35px rgba(109, 82, 167, .18); }
.categories-panel { border: 1px solid #dcecf5; background: #f0f9fe; }
.panel-heading { display: flex; align-items: center; gap: 12px; }.panel-heading h3 { margin: 0; font-size: 1.3rem; }
.mini-orb { display: block; width: 20px; height: 20px; border: 4px solid rgba(255,255,255,.55); border-radius: 50%; background: #f4b7d1; box-shadow: 0 0 0 5px rgba(255,255,255,.12); }.blue-orb { border-color: rgba(112,180,218,.24); background: #70b6dd; box-shadow: 0 0 0 5px rgba(112,180,218,.12); }
.portfolio-panel > p:not(.tiny-note) { max-width: 475px; margin: 18px 0 0; color: rgba(255,255,255,.85); }
.portfolio-tags, .category-list { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 26px; }
.portfolio-tags span { padding: 6px 11px; border: 1px solid rgba(255,255,255,.26); border-radius: 999px; background: rgba(255,255,255,.12); font-size: .8rem; }
.category-list span { padding: 7px 12px; border-radius: 999px; color: #4c7792; background: #fff; box-shadow: 0 4px 10px rgba(101, 162, 199, .09); font-size: .82rem; font-weight: 700; }
.tiny-note { margin: 24px 0 0; color: rgba(255,255,255,.72); font-size: .8rem; }.categories-panel .tiny-note { color: #66849a; }
.button-store { margin-top: 17px; padding: 10px 15px; color: #69549e; background: rgba(255,255,255,.96); box-shadow: 0 8px 16px rgba(54, 35, 98, .16); font-size: .84rem; }.button-store:hover { color: #564182; background: #fff; }

/* Connect and footer */
.connect-section { padding-top: 34px; background: var(--paper); }
.connect-card { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(38px, 8vw, 110px); padding: clamp(37px, 6vw, 72px); overflow: hidden; border-radius: 34px; background: radial-gradient(circle at 94% 90%, rgba(145, 207, 239, .42), transparent 26%), linear-gradient(130deg, #f4efff, #fdfaff 58%, #f4fbff); }
.connect-copy { max-width: 530px; color: var(--muted); }.connect-copy > p { margin: 0; }
.future-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 11px; margin-top: 26px; }
.future-links span { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid #e5def2; border-radius: 12px; background: rgba(255,255,255,.6); color: #5e5572; font-size: .82rem; font-weight: 700; }.future-links b { display: grid; width: 19px; height: 19px; place-items: center; border-radius: 6px; color: white; background: #8e76c8; font-size: .67rem; }.future-links small { margin-left: auto; color: #a499b3; font-size: .66rem; font-weight: 600; }
.site-footer { padding: 54px 0 35px; background: var(--paper); }.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 28px; border-top: 1px solid var(--line); }.footer-inner p { margin: 0; color: var(--muted); font-size: .86rem; }.footer-inner > small { color: #9990a8; font-size: .75rem; }

/* Bonus page */
.bonus-page { background: #fbfaff; }.bonus-hero { padding: 48px 0 90px; }.bonus-hero-grid { display: grid; grid-template-columns: 1.06fr .94fr; align-items: center; gap: clamp(40px, 7vw, 98px); }.bonus-hero-copy .kicker { margin-top: 26px; }.bonus-hero h1 { margin: 0; font-size: clamp(2.45rem, 5vw, 4.3rem); line-height: 1.25; letter-spacing: -.06em; }.bonus-hero-copy > p:not(.eyebrow):not(.kicker) { margin: 22px 0 0; color: var(--muted); }.bonus-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 19px; margin-top: 29px; }.download-count { display: inline-flex; align-items: center; gap: 8px; color: #766b86; font-size: .84rem; }.download-count b { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; color: white; background: #8d76c8; font-size: .9rem; }
.bonus-visual { position: relative; min-height: 450px; overflow: hidden; border: 1px solid #dfd7f1; border-radius: 38px; background: radial-gradient(circle at 84% 16%, #fff 0 4%, transparent 17%), linear-gradient(145deg, #eae3fa, #f6efff 48%, #e4f4fd); box-shadow: var(--shadow); }.bonus-visual .bonus-orbit { position: absolute; border: 1px solid rgba(132, 104, 188, .2); border-radius: 50%; }.bonus-visual .orbit-one { width: 370px; height: 370px; top: 36px; left: 50%; transform: translateX(-50%); }.bonus-visual .orbit-two { width: 270px; height: 270px; top: 86px; left: 50%; transform: translateX(-50%) rotate(29deg); border-color: rgba(255,255,255,.8); }
.bonus-document { position: absolute; z-index: 2; top: 60px; left: 50%; width: 238px; height: 320px; padding: 26px; border: 9px solid rgba(255,255,255,.74); border-radius: 18px; background: linear-gradient(145deg, #fff, #fbfaff); box-shadow: 0 18px 32px rgba(88, 65, 136, .18); transform: translateX(-50%) rotate(-3deg); }.document-top { display: flex; align-items: center; gap: 6px; color: #8d75c7; font-size: .64rem; font-weight: 800; letter-spacing: .08em; }.document-top i { width: 5px; height: 5px; border-radius: 50%; background: #e3d9f7; }.document-top i:nth-child(3) { background: #a8d8ef; }.bonus-document h2 { margin: 36px 0 0; color: #544276; font-size: 1.55rem; line-height: 1.25; letter-spacing: .05em; }.document-lines { display: grid; gap: 9px; margin-top: 23px; }.document-lines i:nth-child(2) { width: 70%; }.document-lines i:nth-child(3) { width: 89%; }.document-lines i:nth-child(4) { width: 62%; }.document-lines i:nth-child(5) { width: 78%; }.document-lines i:nth-child(6) { width: 56%; }.document-footer { display: flex; gap: 5px; margin-top: 20px; }.document-footer span { padding: 4px 6px; border-radius: 5px; background: #f0ecfa; color: #8a78aa; font-size: .55rem; font-weight: 700; }
.contents-section { background: var(--paper); }.contents-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin: 0; padding: 0; list-style: none; }.contents-grid li { min-height: 230px; padding: 26px 22px; border: 1px solid #e7e0f2; border-radius: 21px; background: #fdfcff; }.contents-grid li:nth-child(2) { background: #faf8ff; }.contents-grid li:nth-child(3) { background: #f7fcff; }.contents-grid li:nth-child(4) { background: #fff9fc; }.contents-grid li > span { color: var(--lavender); font-size: .74rem; font-weight: 800; letter-spacing: .09em; }.contents-grid h3 { margin: 18px 0 0; font-size: 1.12rem; }.contents-grid p { margin: 9px 0 0; color: var(--muted); font-size: .88rem; }
.gentle-section { background: #f8f6fd; }.for-grid { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: clamp(40px, 9vw, 130px); }.for-copy p:last-child { margin: 18px 0 0; color: var(--muted); }.for-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }.for-list li { display: flex; align-items: start; gap: 13px; padding: 16px 18px; border: 1px solid #e3dcf1; border-radius: 14px; background: rgba(255,255,255,.74); font-weight: 700; }.for-list span { display: grid; flex: none; width: 22px; height: 22px; place-items: center; margin-top: 3px; border-radius: 50%; color: white; background: var(--lavender); font-size: .75rem; }
.steps-section { background: var(--paper); }.steps-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 21px; }.steps-list article { display: grid; grid-template-columns: auto 1fr; gap: 17px; padding: 7px 0; }.steps-list > article:not(:last-child) { border-right: 1px solid var(--line); padding-right: 21px; }.steps-list > article > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 13px; color: var(--lavender-deep); background: #eee9fb; font-size: .77rem; font-weight: 800; }.steps-list h3 { margin: 0; font-size: 1.05rem; }.steps-list p { margin: 8px 0 0; color: var(--muted); font-size: .88rem; }
.download-section { padding-top: 35px; padding-bottom: 36px; background: var(--paper); }.download-card { max-width: 880px; padding: clamp(36px, 7vw, 70px); border-radius: 34px; background: radial-gradient(circle at 7% 89%, rgba(184, 213, 250, .55), transparent 27%), linear-gradient(135deg, #eee8fb, #fdfaff 61%, #f4fbff); text-align: center; }.download-card h2 { margin: 14px 0 0; }.download-card > p:not(.gift-label):not(.download-note) { margin: 15px 0 0; color: var(--muted); }.download-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 28px; }.download-note { margin: 18px 0 0; color: #7d748d; font-size: .78rem; }
.caution-section { padding-top: 36px; background: var(--paper); }.caution-card { display: flex; align-items: flex-start; gap: 17px; max-width: 880px; padding: 23px 27px; border: 1px solid #eee4ce; border-radius: 18px; background: #fffcf5; }.caution-icon { display: grid; flex: none; width: 27px; height: 27px; place-items: center; margin-top: 3px; border-radius: 50%; color: #9d7a42; background: #f8ebc8; font-weight: 800; font-family: serif; }.caution-card h2 { margin: 0; font-size: 1.05rem; letter-spacing: 0; }.caution-card p { margin: 7px 0 0; color: #796d58; font-size: .87rem; }

/* Small entrance motion that respects user preferences. Content stays visible before JavaScript loads. */
[data-reveal] { opacity: 1; transform: none; }.js [data-reveal] { opacity: 0; transform: translateY(14px); transition: opacity .55s ease, transform .55s ease; }.js [data-reveal].is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 900px) {
  .hero, .bonus-hero-grid { grid-template-columns: 1fr; }.hero { min-height: auto; }.hero-art { min-height: 460px; max-width: 640px; width: 100%; }.bonus-visual { max-width: 640px; width: 100%; }.split-layout, .connect-card, .for-grid { grid-template-columns: 1fr; }.section-top { align-items: start; flex-direction: column; gap: 14px; }.section-intro { max-width: 610px; }.create-grid { grid-template-columns: 1fr; }.contents-grid { grid-template-columns: repeat(2, 1fr); }.gift-feature { grid-template-columns: 1fr; }.gift-feature-visual { min-height: 330px; max-width: 550px; width: 100%; }.steps-list { grid-template-columns: 1fr; }.steps-list > article:not(:last-child) { border-right: 0; border-bottom: 1px solid var(--line); padding: 0 0 20px; }.steps-list > article { padding: 0; }.connect-card { gap: 24px; }
}

@media (max-width: 780px) {
  .container { width: min(100% - 32px, 640px); }.site-header { padding-top: 16px; }.nav { position: relative; gap: 10px; }.nav-toggle { display: grid; place-items: center; margin-left: auto; }.nav-links { position: absolute; top: calc(100% + 12px); right: 0; display: none; flex-direction: column; align-items: stretch; min-width: 215px; gap: 0; margin: 0; padding: 9px; border: 1px solid #e2daf1; border-radius: 16px; background: rgba(255,255,255,.97); box-shadow: var(--shadow-soft); }.nav.menu-open .nav-links { display: flex; }.nav-links a { padding: 10px 12px; }.nav-links a::after { display: none; }.nav-cta { padding: 9px 13px; font-size: .75rem; }.hero { gap: 31px; padding-top: 35px; padding-bottom: 54px; }.hero h1 { font-size: clamp(2.55rem, 12vw, 3.8rem); }.hero-art { min-height: 400px; border-radius: 28px; }.art-orbit.orbit-one { width: 310px; height: 310px; top: 37px; }.art-orbit.orbit-two { width: 225px; height: 225px; top: 77px; }.hero-character { right: -15px; bottom: -29px; width: min(111%, 500px); }.art-note { top: 145px; left: 18px; font-size: .76rem; }.art-note strong { font-size: .9rem; }.label-one { top: 28px; left: 15px; }.label-two { right: 10px; bottom: 27px; }.hello-strip { padding: 14px 0; }.hello-strip p { font-size: .83rem; }.hello-strip strong { display: block; margin-left: 0; }.section { padding: 77px 0; }h2 { font-size: clamp(1.8rem, 8.5vw, 2.6rem); }.gift-feature { padding: 29px 23px; border-radius: 25px; }.gift-feature h3 { font-size: clamp(1.6rem, 8vw, 2.25rem); }.gift-feature-visual { min-height: 300px; }.sheet-back { top: 35px; left: calc(50% - 89px); }.sheet-front { top: 28px; }.upcoming-grid { grid-template-columns: 1fr; }.upcoming-card { min-height: auto; }.portfolio-panel, .categories-panel { min-height: auto; padding: 29px 25px; }.future-links { grid-template-columns: 1fr; }.footer-inner { align-items: flex-start; flex-direction: column; }.footer-inner p { margin-top: 6px; }.bonus-hero { padding: 31px 0 65px; }.bonus-hero h1 { font-size: clamp(2.25rem, 10vw, 3.45rem); }.bonus-visual { min-height: 380px; border-radius: 28px; }.bonus-visual .bonus-orbit.orbit-one { width: 310px; height: 310px; top: 27px; }.bonus-visual .bonus-orbit.orbit-two { width: 220px; height: 220px; top: 74px; }.bonus-document { top: 36px; transform: translateX(-50%) rotate(-3deg) scale(.9); }.contents-grid { grid-template-columns: 1fr; }.contents-grid li { min-height: auto; }.download-card { border-radius: 26px; }.caution-card { padding: 21px 19px; }.caution-card p { font-size: .84rem; }
}

@media (max-width: 390px) { .brand small { display: none; }.nav-cta { padding: 8px 10px; }.hero-actions { align-items: flex-start; flex-direction: column; gap: 14px; }.button-primary { width: 100%; }.download-actions { align-items: stretch; flex-direction: column; }.download-actions .button { width: 100%; } }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; } [data-reveal] { opacity: 1; transform: none; } }

/* Official LINE funnel */
.gift-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 28px; }
.gift-actions .button { margin: 0; }
.line-link-note { max-width: 480px; margin: 14px 0 0; color: #81768f; font-size: .78rem; line-height: 1.65; }
.centered-note { max-width: 600px; margin-right: auto; margin-left: auto; }
.button-line { display: inline-flex; align-items: center; gap: 9px; box-shadow: 0 12px 22px rgba(100, 85, 157, .18); }
.button-line::before { display: grid; width: 18px; height: 18px; place-items: center; border-radius: 6px; background: #78bda7; color: white; content: "L"; font-size: .64rem; font-weight: 900; letter-spacing: 0; }
.button-line.is-pending { opacity: .76; cursor: not-allowed; }
.button-line.is-pending:hover { transform: none; box-shadow: 0 12px 22px rgba(100, 85, 157, .18); }

.line-bridge-section { padding-top: 0; padding-bottom: 40px; background: var(--paper); }
.line-bridge-card { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(28px, 6vw, 74px); align-items: center; padding: clamp(30px, 5vw, 54px); border: 1px solid #e4dcf2; border-radius: 30px; background: linear-gradient(135deg, #fdfaff, #f4fbff); }
.line-bridge-card h2 { margin: 0; font-size: clamp(1.65rem, 3.1vw, 2.45rem); }
.line-bridge-copy { color: var(--muted); }
.line-bridge-copy > p { margin: 0 0 20px; }

.connect-section { padding-top: 35px; padding-bottom: 34px; }
.connect-card { position: relative; }
.line-benefits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-top: 24px; }
.line-benefits span { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid #e5def2; border-radius: 12px; background: rgba(255,255,255,.64); color: #5e5572; font-size: .82rem; font-weight: 700; }
.line-benefits b { display: grid; width: 20px; height: 20px; flex: none; place-items: center; border-radius: 6px; background: #ede7f9; color: #7660aa; font-size: .68rem; }
.connect-line-button { margin-top: 23px; }
.line-steps-wrap { margin-top: 25px; padding: clamp(26px, 4vw, 42px); border: 1px solid #e6dff3; border-radius: 28px; background: #fff; }
.line-steps-lead { max-width: 680px; margin: 0 0 25px; color: var(--muted); font-size: .94rem; }
.line-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 0; padding: 0; list-style: none; }
.line-steps li { position: relative; min-height: 150px; padding: 22px 20px; border-radius: 20px; background: linear-gradient(145deg, #f7f3ff, #fcfbff); }
.line-steps li:not(:last-child)::after { position: absolute; top: 50%; right: -15px; z-index: 1; width: 30px; color: #ad9bd1; content: "→"; font-size: 1.25rem; text-align: center; transform: translateY(-50%); }
.line-steps span { display: block; color: #947dbe; font-size: .67rem; font-weight: 900; letter-spacing: .12em; }
.line-steps strong { display: block; margin-top: 12px; color: var(--ink); font-size: 1.03rem; line-height: 1.45; }
.line-steps p { margin: 9px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.65; }

.roadmap-section { background: #f8f6fd; }
.roadmap-section .center-heading { max-width: 760px; margin-right: auto; margin-left: auto; }
.roadmap-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 38px; }
.roadmap-card { min-height: 204px; padding: 23px 20px; border: 1px solid #e2daef; border-radius: 20px; background: rgba(255,255,255,.78); }
.roadmap-card.is-now { border-color: #cfc0ec; background: linear-gradient(145deg, #f1ebfc, #fff); }
.roadmap-status { margin: 0; color: #9a88ba; font-size: .68rem; font-weight: 900; letter-spacing: .09em; }
.roadmap-card h3 { margin: 14px 0 0; font-size: 1.05rem; line-height: 1.45; }
.roadmap-card p:last-child { margin: 11px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.7; }
.bonus-upcoming-section { background: #f8f6fd; }

/* Three free gifts */
.gift-feature-visual { overflow: hidden; }
.gift-feature-character { position: absolute; z-index: 3; right: -78px; bottom: -24px; width: min(100%, 370px); max-width: none; opacity: .78; pointer-events: none; }
.gift-feature-visual .prompt-sheet { z-index: 4; }
.gift-feature-visual .floating-chip { z-index: 5; }
.gift-audience { margin: 16px 0 0; color: #766b86; font-size: .82rem; line-height: 1.7; }
.gift-audience strong { color: #625578; }
.gift-catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 24px; }
.gift-catalog-card { display: flex; min-height: 462px; flex-direction: column; overflow: hidden; padding: 0 27px 27px; border: 1px solid #e1d9ef; border-radius: 25px; background: rgba(255, 255, 255, .82); box-shadow: 0 10px 22px rgba(85, 62, 140, .04); }
.gift-catalog-card.map-card { border-color: #d8e7f2; background: linear-gradient(145deg, #fcfeff, #fff); }
.gift-catalog-card.templates-card { border-color: #ead9e5; background: linear-gradient(145deg, #fffafe, #fff); }
.gift-card-art { position: relative; min-height: 142px; margin: 0 -27px 20px; overflow: hidden; background: linear-gradient(135deg, #ece6fb, #e7f6ff); }
.templates-card .gift-card-art { background: linear-gradient(135deg, #fff0f6, #eee8fc 62%, #e8f6ff); }
.gift-card-art::before { position: absolute; width: 210px; height: 210px; top: -119px; left: -34px; border: 1px solid rgba(255,255,255,.72); border-radius: 50%; content: ""; }
.gift-card-art img { position: absolute; right: -22px; bottom: -28px; width: 290px; max-width: none; opacity: .88; mix-blend-mode: multiply; object-fit: cover; object-position: 84% center; }
.gift-card-art span { position: absolute; z-index: 1; top: 24px; left: 24px; display: grid; min-width: 55px; height: 34px; place-items: center; padding: 0 10px; border: 1px solid rgba(255,255,255,.76); border-radius: 11px; color: #755fa3; background: rgba(255,255,255,.76); box-shadow: 0 7px 15px rgba(92,70,140,.08); font-size: .78rem; font-weight: 900; letter-spacing: .08em; }
.gift-available { display: inline-flex; align-self: flex-start; margin: 0; padding: 5px 9px; border: 1px solid #dce8e1; border-radius: 999px; color: #5d8d77; background: #f2faf5; font-size: .69rem; font-weight: 900; letter-spacing: .06em; }
.gift-catalog-card h3 { margin: 14px 0 0; color: var(--ink); font-size: clamp(1.3rem, 2vw, 1.65rem); line-height: 1.45; }
.gift-catalog-card > p:not(.gift-available):not(.gift-audience) { margin: 9px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.72; }
.gift-card-cta { width: 100%; min-height: 48px; margin-top: auto; padding: 11px 17px; font-size: .86rem; }

/* Free-gift detail pages */
.free-gift-page { background: #fbfaff; }
.free-gift-page .site-header { background: rgba(251,250,255,.86); backdrop-filter: blur(10px); }
.free-page-hero { padding: 36px 0 76px; background: radial-gradient(circle at 85% 20%, rgba(204,232,248,.68), transparent 25%), linear-gradient(145deg, #f7f2ff 0%, #fff 53%, #effaff 100%); }
.free-page-hero-grid { display: grid; grid-template-columns: 1.02fr .98fr; gap: clamp(35px, 7vw, 92px); align-items: center; }
.free-page-copy .eyebrow { margin-bottom: 20px; }
.free-page-copy h1 { margin: 0; font-size: clamp(2.35rem, 5vw, 4.25rem); line-height: 1.22; letter-spacing: -.06em; }
.free-page-copy h1 em { color: var(--lavender); }
.free-page-copy > p:not(.eyebrow):not(.kicker) { max-width: 620px; margin: 22px 0 0; color: var(--muted); font-size: 1.02rem; }
.free-page-meta { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 23px; }
.free-page-meta span { padding: 6px 10px; border: 1px solid #e3dcef; border-radius: 999px; color: #6b5b87; background: rgba(255,255,255,.78); font-size: .75rem; font-weight: 800; }
.free-page-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 13px; margin-top: 28px; }
.free-page-actions .button { min-height: 50px; }
.free-hero-art { position: relative; min-height: 410px; overflow: hidden; border: 1px solid rgba(222,214,241,.92); border-radius: 34px; background: radial-gradient(circle at 18% 23%, #fff 0 5%, transparent 15%), linear-gradient(145deg, #ede7fb, #f8fbff 67%, #e6f5fe); box-shadow: var(--shadow); }
.free-hero-art::before, .free-hero-art::after { position: absolute; border: 1px solid rgba(143,117,198,.2); border-radius: 50%; content: ""; }
.free-hero-art::before { width: 350px; height: 350px; top: 28px; left: 50%; transform: translateX(-50%); }.free-hero-art::after { width: 245px; height: 245px; top: 80px; left: 50%; border-color: rgba(255,255,255,.72); transform: translateX(-50%) rotate(24deg); }
.free-hero-art img { position: absolute; z-index: 2; right: -76px; bottom: -31px; width: 490px; max-width: none; pointer-events: none; }
.free-art-card { position: absolute; z-index: 3; top: 50%; left: 38px; display: grid; width: 190px; min-height: 205px; align-content: center; padding: 24px; border: 9px solid rgba(255,255,255,.68); border-radius: 18px; background: rgba(255,255,255,.88); box-shadow: 0 18px 32px rgba(88,65,136,.14); transform: translateY(-50%) rotate(-5deg); }
.free-art-card small { color: #8d76c8; font-size: .67rem; font-weight: 900; letter-spacing: .12em; }.free-art-card strong { margin-top: 13px; color: #554578; font-size: 1.45rem; line-height: 1.23; }.free-art-card span { margin-top: 13px; color: #82778e; font-size: .72rem; line-height: 1.55; }
.free-page-section { padding: 88px 0; background: #fff; }.free-page-section.is-tinted { background: #f8f6fd; }
.free-page-section .center-heading { max-width: 770px; }
.free-map-board { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; max-width: 1010px; margin: 35px auto 0; }
.map-choice { display: grid; grid-template-columns: 1fr auto; gap: 14px; align-items: center; min-height: 96px; padding: 18px 20px; border: 1px solid #e2dbee; border-radius: 18px; background: #fff; box-shadow: 0 8px 18px rgba(88,65,136,.04); }
.map-choice:nth-child(3n + 2) { border-color: #dcebf4; background: #fcfeff; }.map-choice:nth-child(3n) { border-color: #efdee7; background: #fffdfd; }
.map-choice p { margin: 0; color: #625a71; font-size: .88rem; font-weight: 800; line-height: 1.55; }.map-choice strong { display: inline-flex; align-items: center; justify-content: center; min-width: 111px; min-height: 35px; padding: 7px 11px; border-radius: 10px; color: #66518e; background: #eee8fa; font-size: .78rem; text-align: center; }.map-choice:nth-child(3n + 2) strong { color: #467d9d; background: #e7f5fe; }.map-choice:nth-child(3n) strong { color: #aa6685; background: #ffedf4; }
.free-download-card { display: flex; align-items: center; justify-content: space-between; gap: 25px; max-width: 900px; margin: 38px auto 0; padding: 24px 27px; border: 1px solid #dfd6ee; border-radius: 21px; background: linear-gradient(135deg, #f5f1fe, #fff 56%, #f2faff); }.free-download-card p { margin: 0; color: var(--muted); font-size: .9rem; }.free-download-card strong { display: block; margin-bottom: 3px; color: var(--ink); font-size: 1.03rem; }
.tool-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 36px; }
.tool-card { display: flex; min-height: 460px; flex-direction: column; padding: 25px; border: 1px solid #e2dcef; border-radius: 23px; background: #fff; box-shadow: 0 10px 22px rgba(85,62,140,.04); }.tool-card:nth-child(2n) { border-color: #dbeaf4; background: #fcfeff; }
.tool-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.tool-number { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 12px; color: #775fa7; background: #eee8fa; font-size: .72rem; font-weight: 900; }.tool-badge { padding: 5px 9px; border: 1px solid #e1daec; border-radius: 999px; color: #887b9b; background: #fbfaff; font-size: .68rem; font-weight: 800; }
.tool-card h3 { margin: 18px 0 0; font-size: 1.35rem; }.tool-one-line { margin: 7px 0 0; color: #705a9a; font-size: .87rem; font-weight: 800; }.tool-card dl { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 20px 0 0; }.tool-card dl div { padding-top: 10px; border-top: 1px solid #eee9f4; }.tool-card dt { color: #877a98; font-size: .69rem; font-weight: 900; letter-spacing: .08em; }.tool-card dd { margin: 3px 0 0; color: #5c5468; font-size: .85rem; line-height: 1.68; }.tool-facts { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }.tool-facts span { padding: 5px 8px; border-radius: 8px; color: #6d5a95; background: #f2edfb; font-size: .69rem; font-weight: 800; }.tool-card .card-link { margin-top: auto; padding-top: 20px; }
.start-three-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 34px; }.start-three-card { padding: 25px 22px; border: 1px solid #e1d9ef; border-radius: 21px; background: #fff; }.start-three-card span { color: #9680be; font-size: .71rem; font-weight: 900; letter-spacing: .1em; }.start-three-card h3 { margin: 13px 0 0; font-size: 1.08rem; }.start-three-card p { margin: 9px 0 0; color: var(--muted); font-size: .86rem; line-height: 1.7; }
.template-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; max-width: 1030px; margin: 0 auto 28px; padding: 16px 18px; border: 1px solid #e3dbee; border-radius: 17px; background: #fff; }.template-controls p { margin: 0; color: var(--muted); font-size: .86rem; }.template-controls .copy-status { color: #6a5a88; font-size: .8rem; font-weight: 800; }
.template-category { margin: 55px 0 0; }.template-category:first-of-type { margin-top: 0; }.template-category-heading { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }.template-category-heading span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 11px; color: #fff; background: #8c76c9; font-size: .74rem; font-weight: 900; }.template-category-heading h2 { font-size: clamp(1.5rem, 3vw, 2.15rem); }
.template-list { display: grid; gap: 19px; }.template-card { padding: 27px; border: 1px solid #e1daef; border-radius: 23px; background: #fff; box-shadow: 0 10px 22px rgba(85,62,140,.035); }.template-card:nth-child(2n) { border-color: #dce9f2; background: #fcfeff; }.template-card-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; }.template-index { display: inline-flex; margin: 0; color: #8d79b4; font-size: .72rem; font-weight: 900; letter-spacing: .1em; }.template-card h3 { margin: 7px 0 0; font-size: clamp(1.2rem, 2.5vw, 1.48rem); }.template-use { margin: 15px 0 0; color: var(--muted); font-size: .92rem; }.template-copy-button { flex: none; min-height: 44px; padding: 10px 15px; border: 1px solid #d7cce9; color: #67538d; background: #f7f3fe; font-size: .78rem; }.template-copy-button:hover { background: #efe9fb; }
.template-subhead { margin: 23px 0 9px; color: #776396; font-size: .76rem; font-weight: 900; letter-spacing: .1em; }.template-code { display: block; max-height: 640px; margin: 0; padding: 19px; overflow: auto; border: 1px solid #e5dff1; border-radius: 16px; color: #474152; background: #faf9fd; font-family: "Yu Gothic UI", "Meiryo", monospace; font-size: .82rem; line-height: 1.75; white-space: pre-wrap; word-break: break-word; }.template-fields { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }.template-fields li { padding: 5px 9px; border-radius: 8px; color: #6d5d89; background: #f0ecf9; font-size: .75rem; font-weight: 700; }.template-example, .template-output, .template-tip { margin: 0; color: var(--muted); font-size: .87rem; line-height: 1.72; }.template-output strong, .template-tip strong { color: #635679; }
.free-note-card { max-width: 1040px; margin: 32px auto 0; padding: 22px 25px; border: 1px solid #eee3cb; border-radius: 18px; color: #746b5d; background: #fffdf7; }.free-note-card h3 { margin: 0; color: #715f47; font-size: 1rem; }.free-note-card ul { display: grid; gap: 7px; margin: 10px 0 0; padding-left: 20px; font-size: .87rem; }

@media (max-width: 900px) {
  .free-page-hero-grid { grid-template-columns: 1fr; }.free-hero-art { max-width: 640px; width: 100%; }.tool-grid { grid-template-columns: 1fr; }.start-three-grid { grid-template-columns: 1fr; }.free-map-board { grid-template-columns: 1fr; }
}
@media (max-width: 780px) {
  .gift-catalog-grid { grid-template-columns: 1fr; gap: 14px; }.gift-catalog-card { min-height: 0; padding: 0 21px 22px; }.gift-card-art { min-height: 128px; margin: 0 -21px 17px; }.gift-feature-character { right: -62px; width: 310px; }.free-page-hero { padding: 22px 0 58px; }.free-page-copy h1 { font-size: clamp(2.1rem, 10vw, 3.35rem); }.free-hero-art { min-height: 345px; border-radius: 27px; }.free-hero-art::before { width: 305px; height: 305px; top: 20px; }.free-hero-art::after { width: 210px; height: 210px; top: 66px; }.free-hero-art img { right: -78px; width: 420px; }.free-art-card { left: 18px; width: 168px; min-height: 182px; padding: 19px; }.free-page-section { padding: 68px 0; }.map-choice { min-height: 0; padding: 16px; }.map-choice strong { min-width: 96px; font-size: .71rem; }.free-download-card { align-items: stretch; flex-direction: column; padding: 21px; }.free-download-card .button { width: 100%; }.tool-card { min-height: 0; padding: 21px; }.tool-card dl { gap: 8px; }.template-controls { align-items: stretch; flex-direction: column; padding: 15px; }.template-controls .button { width: 100%; }.template-card { padding: 21px 17px; border-radius: 20px; }.template-card-head { align-items: stretch; flex-direction: column; }.template-copy-button { width: 100%; }.template-code { max-height: 520px; padding: 15px; font-size: .78rem; }.template-category { margin-top: 42px; }
}

@media (max-width: 900px) {
  .line-bridge-card { grid-template-columns: 1fr; }
  .roadmap-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 780px) {
  .gift-actions { align-items: flex-start; flex-direction: column; gap: 14px; }
  .gift-actions .button { width: 100%; }
  .line-bridge-section { padding-top: 0; padding-bottom: 25px; }
  .line-bridge-card { padding: 28px 24px; border-radius: 25px; }
  .line-benefits { grid-template-columns: 1fr; }
  .connect-line-button { width: 100%; }
  .line-steps { grid-template-columns: 1fr; gap: 10px; }
  .line-steps li { min-height: 0; padding: 20px; }
  .line-steps li:not(:last-child)::after { top: auto; right: auto; bottom: -16px; left: 50%; width: auto; height: 25px; content: "↓"; transform: translateX(-50%); }
  .roadmap-grid { grid-template-columns: 1fr; gap: 12px; }
  .roadmap-card { min-height: 0; padding: 21px; }
}

@media (max-width: 390px) {
  .button-line { justify-content: center; }
  .line-steps-wrap { padding: 23px 18px; }
}

/* AI hub expansion */
.button-secondary { border: 1px solid #d9ceef; color: #68558d; background: #fff; box-shadow: 0 8px 18px rgba(97, 76, 142, .08); }
.button-secondary:hover { color: #59467f; border-color: #beaee2; background: #fbfaff; }
.button-secondary.is-pending, .card-link.is-pending { opacity: .7; cursor: not-allowed; }
.button-secondary.is-pending:hover, .card-link.is-pending:hover { transform: none; }

.works-section { background: #fff; }
.works-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 19px; margin-top: 38px; }
.work-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #e4ddef; border-radius: 22px; background: #fff; box-shadow: 0 10px 24px rgba(73, 58, 116, .05); }
.work-media { position: relative; display: grid; min-height: 182px; place-items: center; margin: 0; overflow: hidden; border-bottom: 1px solid rgba(220, 211, 237, .74); }
.work-media-lavender { background: linear-gradient(145deg, #f4efff, #ece6fa); }
.work-media-blue { background: linear-gradient(145deg, #eefaff, #e4f2fb); }
.work-media-pink { background: linear-gradient(145deg, #fff5f9, #f7ecf7); }
.work-media-icon { position: relative; z-index: 1; display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid rgba(255,255,255,.8); border-radius: 20px; color: #7a65a8; background: rgba(255,255,255,.72); box-shadow: 0 10px 20px rgba(94, 75, 140, .08); font-size: 1.55rem; font-weight: 800; }
.work-media figcaption { position: absolute; z-index: 1; right: 15px; bottom: 14px; color: #87799e; font-size: .72rem; font-weight: 800; letter-spacing: .04em; }
.work-body { display: flex; flex: 1; min-width: 0; flex-direction: column; padding: 22px; }
.work-type { margin: 0; color: #9784b9; font-size: .68rem; font-weight: 900; letter-spacing: .12em; }
.work-body h3 { margin: 11px 0 0; color: var(--ink); font-size: 1.12rem; line-height: 1.45; }
.work-body > p:not(.work-type) { margin: 10px 0 0; color: var(--muted); font-size: .89rem; line-height: 1.72; }
.work-actions { display: flex; align-items: center; min-height: 43px; margin-top: auto; padding-top: 20px; }
.card-link { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; color: #69539a; font-size: .87rem; font-weight: 800; text-decoration: none; }
.card-link:hover { color: #4f3c79; }
.card-link:focus-visible, .button-secondary:focus-visible, .faq-item summary:focus-visible { outline: 3px solid rgba(132, 108, 193, .38); outline-offset: 3px; }
.card-status { display: inline-flex; align-items: center; min-height: 29px; padding: 5px 9px; border: 1px solid #e3ddec; border-radius: 999px; color: #8d829e; background: #fbfaff; font-size: .75rem; font-weight: 800; }

.categories-section { background: #f8f6fd; }
.categories-section .center-heading { max-width: 720px; margin-right: auto; margin-left: auto; }
.category-feature-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 36px; }
.category-feature-grid article { min-height: 196px; padding: 22px 19px; border: 1px solid #e4ddef; border-radius: 19px; background: rgba(255,255,255,.78); }
.category-feature-grid article:nth-child(3n + 2) { background: #f8fcff; border-color: #dcebf5; }
.category-feature-grid article:nth-child(3n) { background: #fff9fc; border-color: #efe0e9; }
.category-feature-grid > article > span { display: inline-flex; color: #9b86be; font-size: .67rem; font-weight: 900; letter-spacing: .1em; }
.category-feature-grid h3 { margin: 13px 0 0; font-size: 1.03rem; }
.category-feature-grid p { margin: 9px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.7; }

.hub-section { background: #fff; }
.content-hub-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; margin-top: 38px; }
.hub-card { display: flex; min-width: 0; min-height: 263px; flex-direction: column; padding: 24px 22px; border: 1px solid #e2dced; border-radius: 21px; background: #fefeff; }
.hub-card:nth-child(2n) { background: #fbfeff; border-color: #dcebf3; }
.hub-status { margin: 0; color: #9a8ba9; font-size: .68rem; font-weight: 900; letter-spacing: .09em; }
.hub-status.active { color: #7a64a7; }
.hub-icon { display: grid; width: 39px; height: 39px; place-items: center; margin-top: 14px; border-radius: 13px; color: #8a72b8; background: #f0eafd; font-size: 1rem; font-weight: 900; }
.hub-icon.blue { color: #4d84a5; background: #e5f5ff; }.hub-icon.pink { color: #b76789; background: #ffebf3; }.hub-icon.lavender { color: #fff; background: #9277c9; }.hub-icon.green { background: #e5f6ee; }
.hub-card h3 { margin: 13px 0 0; font-size: 1.1rem; }
.hub-card > p:not(.hub-status) { margin: 9px 0 0; color: var(--muted); font-size: .86rem; line-height: 1.7; }
.hub-card .card-link, .hub-card .card-status { margin-top: auto; padding-top: 17px; }
.hub-card .card-status { align-self: flex-start; padding-top: 5px; }
.card-link-line { color: #6b519c; }
.link-setting-note { max-width: 700px; margin: 22px auto 0; padding: 12px 16px; border: 1px solid #e7e0ef; border-radius: 13px; color: #81768f; background: #fbfaff; font-size: .8rem; line-height: 1.65; text-align: center; }

.voices-section { background: #f8f6fd; }
.voices-section .center-heading { max-width: 720px; margin-right: auto; margin-left: auto; }
.review-empty { display: flex; align-items: center; gap: 20px; max-width: 800px; margin: 36px auto 0; padding: 27px 30px; border: 1px dashed #d9d0e7; border-radius: 22px; background: rgba(255,255,255,.72); }
.review-empty-icon { display: grid; flex: none; width: 51px; height: 51px; place-items: center; border-radius: 18px; color: #8269b1; background: #eee7fa; font-size: 1.25rem; }
.review-status { margin: 0; color: #9989b4; font-size: .69rem; font-weight: 900; letter-spacing: .1em; }
.review-empty h3 { margin: 7px 0 0; font-size: 1.07rem; }.review-empty p:last-child { margin: 7px 0 0; color: var(--muted); font-size: .86rem; line-height: 1.7; }
.review-slot-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; max-width: 800px; margin: 16px auto 0; }
.review-slot { padding: 16px 17px; border: 1px solid #e3dceb; border-radius: 17px; background: rgba(255,255,255,.56); }
.review-slot span { color: #ac99c5; font-size: .68rem; font-weight: 900; }.review-slot p { margin: 8px 0 0; color: #83778f; font-size: .76rem; }.review-slot strong { display: block; margin-top: 5px; color: #66577a; font-size: .83rem; }

.consult-section { padding-top: 34px; background: #fff; }
.consult-card { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(32px, 7vw, 92px); align-items: center; padding: clamp(33px, 5vw, 58px); overflow: hidden; border: 1px solid #dbeaf3; border-radius: 31px; background: radial-gradient(circle at 89% 91%, rgba(186, 216, 246, .62), transparent 27%), linear-gradient(135deg, #f4efff, #f9fdff 65%); }
.consult-copy > p:not(.kicker):not(.consult-note) { max-width: 600px; margin: 17px 0 0; color: var(--muted); line-height: 1.75; }
.consult-copy .button { margin-top: 24px; }.consult-note { margin: 13px 0 0; color: #82758f; font-size: .8rem; }
.consult-topics { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.consult-topics li { padding: 10px 13px; border: 1px solid rgba(138, 116, 192, .2); border-radius: 999px; color: #64577c; background: rgba(255,255,255,.73); font-size: .85rem; font-weight: 800; }

.faq-section { background: #f8f6fd; }
.faq-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(38px, 8vw, 120px); align-items: start; }
.faq-heading > p:not(.kicker) { margin: 17px 0 0; color: var(--muted); line-height: 1.7; }
.faq-list { display: grid; gap: 10px; }
.faq-item { border: 1px solid #e2dbea; border-radius: 15px; background: rgba(255,255,255,.8); }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; min-height: 53px; padding: 13px 18px; color: #4f445e; cursor: pointer; font-size: .95rem; font-weight: 800; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }.faq-item summary::after { color: #8e76c5; content: "＋"; font-size: 1.2rem; font-weight: 500; }.faq-item[open] summary::after { content: "−"; }
.faq-item p { margin: -1px 18px 0; padding: 0 0 17px; color: var(--muted); font-size: .88rem; line-height: 1.75; }

@media (max-width: 900px) {
  .works-grid, .content-hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .category-feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .consult-card, .faq-layout { grid-template-columns: 1fr; }
}

@media (max-width: 780px) {
  .hero-actions { align-items: stretch; flex-direction: column; }.hero-actions .button { width: 100%; justify-content: center; }
  .works-grid, .content-hub-grid, .category-feature-grid, .review-slot-grid { grid-template-columns: 1fr; }
  .works-grid, .content-hub-grid { gap: 14px; margin-top: 28px; }
  .work-media { min-height: 176px; }.work-body { padding: 20px; }.work-card { border-radius: 20px; }
  .category-feature-grid { gap: 11px; margin-top: 27px; }.category-feature-grid article { min-height: 0; padding: 20px; }
  .hub-card { min-height: 0; padding: 21px; }.hub-card .card-link, .hub-card .card-status { margin-top: 14px; }
  .review-empty { align-items: flex-start; flex-direction: column; padding: 23px 20px; }.review-slot-grid { gap: 9px; }
  .consult-section { padding-top: 25px; }.consult-card { padding: 28px 23px; border-radius: 25px; }.consult-copy .button { width: 100%; justify-content: center; }
  .faq-layout { gap: 27px; }.faq-item summary { min-height: 54px; padding: 14px 15px; font-size: .91rem; }.faq-item p { margin-right: 15px; margin-left: 15px; }
}

@media (max-width: 390px) {
  .work-actions .card-link { width: 100%; justify-content: center; }
  .link-setting-note { text-align: left; }
}

/* LINE registration gift page */
.gift-page { background: #fbfaff; }
.gift-page-hero { padding: 45px 0 88px; }
.gift-page-hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; gap: clamp(32px, 5vw, 70px); }
.gift-page-copy h1 { margin: 0; font-size: clamp(2.45rem, 3.6vw, 3.15rem); line-height: 1.23; letter-spacing: -.06em; }
.gift-page-copy h1 em { color: var(--lavender); }
.gift-page-lead { margin: 23px 0 0; color: var(--muted); font-size: clamp(1rem, 1.6vw, 1.1rem); }
.gift-copy-ready { display: inline-flex; align-items: center; gap: 7px; margin: 17px 0 -7px; padding: 8px 12px; border: 1px solid #e4dcf3; border-radius: 999px; color: #655283; background: rgba(255,255,255,.72); font-size: .84rem; font-weight: 800; }
.gift-copy-ready span { color: #a388d9; }
.gift-page-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 29px; }
.gift-page-actions .copy-prompt-button { min-width: min(100%, 276px); }
.hero-copy-status { max-width: 360px; text-align: left; }
.gift-download-links { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 5px; }
.download-link { color: #6a5791; font-size: .86rem; font-weight: 800; text-decoration: underline; text-decoration-color: #c8bae6; text-underline-offset: 4px; }
.download-link:hover { color: #4f3f71; text-decoration-color: currentColor; }
.button-secondary { border: 1px solid #dfd7ef; color: #675584; background: rgba(255,255,255,.8); box-shadow: 0 8px 19px rgba(77, 60, 117, .07); }
.gift-access-note { max-width: 600px; margin: 18px 0 0; color: #81768f; font-size: .82rem; line-height: 1.7; }
.gift-page-visual { position: relative; min-height: 445px; overflow: hidden; border: 1px solid #e1d9f3; border-radius: 37px; background: radial-gradient(circle at 77% 18%, rgba(255,255,255,.88) 0 7%, transparent 27%), linear-gradient(145deg, #eae4fa, #f7f0fe 52%, #e9f6ff); box-shadow: var(--shadow); }
.gift-page-visual .gift-page-orbit { position: absolute; border: 1px solid rgba(137, 111, 198, .22); border-radius: 50%; }
.gift-page-visual .orbit-one { width: 350px; height: 350px; top: 33px; left: 50%; transform: translateX(-50%); }
.gift-page-visual .orbit-two { width: 248px; height: 248px; top: 85px; left: 50%; border-color: rgba(255,255,255,.82); transform: translateX(-50%) rotate(26deg); }
.gift-page-visual-label { position: absolute; z-index: 2; top: 78px; left: 26px; margin: 0; color: #6e5c99; font-size: .87rem; font-weight: 700; line-height: 1.7; letter-spacing: .03em; }
.gift-page-visual-label strong { color: var(--lavender-deep); font-size: 1.02rem; }
.gift-page-visual img { position: absolute; z-index: 3; right: -39px; bottom: -35px; width: min(111%, 535px); max-width: none; pointer-events: none; }

.gift-overview-section { background: #fff; }
.gift-capability-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.gift-capability-grid li { min-height: 68px; display: flex; align-items: center; padding: 13px 15px; border: 1px solid #e2daef; border-radius: 16px; background: #fdfcff; color: #584d6b; font-size: .91rem; font-weight: 800; }
.gift-capability-grid li::before { display: grid; width: 21px; height: 21px; flex: none; place-items: center; margin-right: 9px; border-radius: 7px; color: white; background: #9078c9; content: "✓"; font-size: .7rem; }
.gift-capability-grid li:nth-child(3n + 2) { border-color: #d9eaf5; background: #fbfeff; }.gift-capability-grid li:nth-child(3n) { border-color: #efdfe8; background: #fffafd; }

.gift-for-section { background: #f8f6fd; }
.gift-for-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.gift-for-grid article { min-height: 168px; padding: 23px 19px; border: 1px solid #e2d9ef; border-radius: 20px; background: rgba(255,255,255,.78); }
.gift-for-grid article:nth-child(2n) { background: #fbfeff; border-color: #dcebf5; }
.gift-for-grid span { display: block; color: #9c87c1; font-size: .69rem; font-weight: 900; letter-spacing: .1em; }
.gift-for-grid p { margin: 16px 0 0; color: #554b68; font-size: .94rem; font-weight: 800; line-height: 1.7; }

.full-prompt-section { background: #fff; }
.prompt-card { padding: clamp(25px, 4.6vw, 52px); border: 1px solid #ddd4ee; border-radius: 31px; background: linear-gradient(135deg, #f7f3ff, #fff 52%, #f7fcff); box-shadow: var(--shadow-soft); }
.prompt-card-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 25px; }
.prompt-card-heading h2 { font-size: clamp(1.8rem, 3.4vw, 2.8rem); }
.prompt-card-heading p:not(.kicker) { max-width: 540px; margin: 12px 0 0; color: var(--muted); }
.prompt-copy-area { flex: none; min-width: min(100%, 274px); }
.copy-prompt-button { width: 100%; min-height: 52px; cursor: pointer; }
.copy-prompt-button:disabled { cursor: wait; opacity: .68; transform: none; }
.copy-status { min-height: 1.7em; margin: 8px 0 0; color: #7f7492; font-size: .78rem; line-height: 1.55; text-align: center; }
.prompt-code { margin: 0; padding: clamp(18px, 3vw, 30px); overflow-x: auto; border: 1px solid #e0d9ed; border-radius: 20px; color: #42395a; background: #fcfbff; box-shadow: inset 0 1px 0 rgba(255,255,255,.8); font-family: "SFMono-Regular", Consolas, "Liberation Mono", "Courier New", monospace; font-size: .9rem; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; tab-size: 2; }
.prompt-code:focus-visible { outline: 3px solid rgba(115, 180, 222, .55); outline-offset: 3px; }
.prompt-copy-bottom { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 20px; padding: 17px; border: 1px solid #e2dbef; border-radius: 17px; background: rgba(255,255,255,.78); }
.prompt-copy-bottom .copy-status { margin: 0; text-align: left; }

.gift-use-section { background: #f8f6fd; }
.gift-use-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.gift-use-steps li { min-height: 207px; padding: 24px 20px; border: 1px solid #e2d9ef; border-radius: 21px; background: rgba(255,255,255,.8); }
.gift-use-steps li:nth-child(2n) { border-color: #dbeaf4; background: #fbfeff; }
.gift-use-steps span { display: inline-flex; padding: 5px 8px; border-radius: 7px; color: #7e66ad; background: #eee8fa; font-size: .67rem; font-weight: 900; letter-spacing: .06em; }
.gift-use-steps strong { display: block; margin-top: 16px; color: #4f455e; font-size: 1rem; line-height: 1.55; }
.gift-use-steps p { margin: 9px 0 0; color: var(--muted); font-size: .87rem; line-height: 1.7; }

.gift-important-section { background: #fff; }
.gift-important-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 1040px; margin: 30px auto 0; }
.gift-important-grid article { position: relative; min-height: 202px; padding: 28px 27px 25px; overflow: hidden; border: 1px solid #dfd6ee; border-radius: 22px; background: linear-gradient(140deg, #fbf9ff, #fff 67%, #f5fbff); box-shadow: 0 12px 28px rgba(83, 63, 120, .06); }
.gift-important-grid article:nth-child(2n) { border-color: #dce9f4; background: linear-gradient(140deg, #f8fcff, #fff 67%, #fcf8ff); }
.gift-important-grid span { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 10px; color: #fff; background: #8e76c8; font-size: .72rem; font-weight: 900; letter-spacing: .06em; }
.gift-important-grid h3 { margin: 19px 0 0; color: #50435f; font-size: clamp(1.1rem, 2vw, 1.35rem); line-height: 1.5; }
.gift-important-grid p { margin: 12px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.75; }

.gift-caution-section { padding-top: 38px; padding-bottom: 38px; background: #fff; }
.gift-caution-card { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(28px, 6vw, 80px); align-items: start; max-width: 1020px; padding: clamp(27px, 4.5vw, 48px); border: 1px solid #eee1c5; border-radius: 25px; background: #fffdf7; }
.gift-caution-card h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); }
.gift-caution-card ul { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.gift-caution-card li { position: relative; padding-left: 23px; color: #716552; font-size: .91rem; line-height: 1.72; }
.gift-caution-card li::before { position: absolute; top: .65em; left: 3px; width: 8px; height: 8px; border-radius: 50%; background: #d2b987; content: ""; }

.next-gifts-section { background: #f8f6fd; }
.gift-line-section { padding-top: 37px; background: #fff; }
.gift-line-card { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 7vw, 92px); align-items: center; padding: clamp(32px, 5vw, 58px); border: 1px solid #dceaf4; border-radius: 31px; background: radial-gradient(circle at 88% 91%, rgba(186,216,246,.62), transparent 27%), linear-gradient(135deg, #f4efff, #f9fdff 65%); }
.gift-line-card h2 { font-size: clamp(1.8rem, 3.7vw, 2.8rem); }
.gift-line-card > div:last-child > p:first-child { max-width: 570px; margin: 0; color: var(--muted); }
.gift-line-card .button { margin-top: 22px; }
.gift-line-note { margin-top: 13px; }

@media (max-width: 900px) {
  .gift-page-hero-grid, .gift-caution-card, .gift-line-card { grid-template-columns: 1fr; }
  .gift-page-visual { max-width: 640px; width: 100%; }
  .gift-capability-grid, .gift-for-grid, .gift-use-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gift-important-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prompt-card-heading { align-items: start; flex-direction: column; }
  .prompt-copy-area { width: min(100%, 360px); }
}

@media (max-width: 780px) {
  .gift-page-hero { padding: 27px 0 65px; }
  .gift-page-copy h1 { font-size: clamp(2.2rem, 10vw, 3.45rem); }
  .gift-page-visual { min-height: 380px; border-radius: 28px; }
  .gift-page-visual .orbit-one { width: 300px; height: 300px; top: 28px; }
  .gift-page-visual .orbit-two { width: 215px; height: 215px; top: 72px; }
  .gift-page-visual-label { top: 58px; left: 19px; font-size: .78rem; }
  .gift-page-visual-label strong { font-size: .9rem; }
  .gift-page-visual img { right: -28px; bottom: -24px; width: min(112%, 470px); }
  .gift-page-actions { align-items: stretch; flex-direction: column; }
  .gift-page-actions .button { width: 100%; }
  .hero-copy-status { max-width: none; text-align: center; }
  .gift-download-links { justify-content: center; }
  .gift-capability-grid, .gift-for-grid, .gift-use-steps { grid-template-columns: 1fr; }
  .gift-capability-grid { gap: 9px; }
  .gift-capability-grid li { min-height: 58px; padding: 11px 14px; }
  .gift-for-grid { gap: 10px; }.gift-for-grid article { min-height: auto; padding: 19px; }
  .prompt-card { padding: 23px 17px; border-radius: 24px; }
  .prompt-card-heading { gap: 17px; margin-bottom: 18px; }
  .prompt-copy-area { width: 100%; }
  .copy-prompt-button { min-height: 54px; }
  .prompt-code { padding: 17px 15px; border-radius: 16px; font-size: .86rem; line-height: 1.75; }
  .prompt-copy-bottom { align-items: stretch; flex-direction: column; padding: 15px; }
  .prompt-copy-bottom .button { width: 100%; }
  .prompt-copy-bottom .copy-status { text-align: center; }
  .gift-use-steps { gap: 10px; }.gift-use-steps li { min-height: 0; padding: 20px; }
  .gift-important-grid { grid-template-columns: 1fr; gap: 11px; }.gift-important-grid article { min-height: 0; padding: 23px 20px; }
  .gift-caution-card { gap: 21px; padding: 25px 21px; border-radius: 21px; }
  .gift-line-card { gap: 22px; padding: 29px 23px; border-radius: 25px; }.gift-line-card .button { width: 100%; }
}
.hero .hero-art { min-height: 0; aspect-ratio: 1; align-self: center; }
.hero .hero-art > :not(.hero-character) { display: none; }
.hero .hero-character { position: static; display: block; width: 100%; max-width: 100%; height: 100%; object-fit: contain; }
.gift-feature-visual { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; min-height: 0; padding: 14px; align-self: center; }
.gift-feature-visual .gift-feature-character { position: static; grid-column: 1 / -1; width: 100%; max-width: 100%; height: auto; border-radius: 20px; opacity: 1; }
.gift-feature-visual .floating-chip { position: static; text-align: center; padding: 8px 3px; font-size: 14px; white-space: normal; }
.gift-card-art { display: flex; flex-direction: column; align-items: center; padding: 16px; gap: 12px; }
.gift-card-art::before { display: none; }
.gift-card-art img { position: static; width: 100%; height: auto; max-width: 340px; border-radius: 16px; opacity: 1; mix-blend-mode: normal; }
.gift-card-art span { position: static; grid-column: 1; grid-row: 1; }
.free-hero-art { display: flex; flex-direction: column; min-height: 0; padding: 16px; gap: 16px; }
.free-hero-art::before, .free-hero-art::after { display: none; }
.free-hero-art .free-art-card { position: static; width: 100%; min-height: 0; transform: none; }
.free-hero-art img { position: static; width: 100%; max-width: 100%; height: auto; border-radius: 20px; }
.work-media.sns-preview { height: 260px; min-height: 0; display: block; }
.sns-preview a { display: block; width: 100%; height: 100%; }
.sns-preview img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
