:root{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:#402c30;background:#fffdfc;font-size:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-weight:600}img{display:block;max-width:100%}a{color:inherit}.hero{background:#fff}.hero img{width:100%;height:auto}.wrap{width:min(100% - 48px,1060px);margin-inline:auto}.section{padding:clamp(72px,8vw,108px) 0}.section h2{font-size:clamp(1.85rem,3vw,2.6rem);line-height:1.45;font-weight:900;letter-spacing:.015em;color:#9f2c58;margin:0 0 38px}.section p{font-size:clamp(1.16rem,1.5vw,1.28rem);line-height:1.78;margin:0;font-weight:600}.section p+p{margin-top:.7em}.meaning-block+.meaning-block{margin-top:2.2rem}.emphasis{font-size:1.13em;font-weight:900;color:#a82b59}.accent{font-weight:900;color:#bd3d6e}.intro{padding:clamp(56px,8vw,90px) 0;background:#fff2f5;text-align:center}.intro .wrap{max-width:850px}.intro h1{font-size:clamp(2.05rem,4.4vw,3.25rem);line-height:1.42;font-weight:900;color:#92264e;margin:0 0 42px}.intro p{font-size:clamp(1.23rem,2vw,1.5rem);line-height:1.76;margin:0}.intro .meaning-block+.meaning-block{margin-top:2.3rem}.action{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:62px;padding:18px 32px;background:#a62657;color:#fff;border-radius:100px;text-decoration:none;font-size:1.08rem;font-weight:900;box-shadow:0 10px 25px #9c36502b;transition:transform .2s,background .2s}.action:hover{background:#8e1e49;transform:translateY(-2px)}.intro .action{margin-top:32px}.has-media .prose{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(260px,.88fr);gap:clamp(40px,6vw,78px);align-items:center}.media-left .prose{grid-template-columns:minmax(260px,.88fr) minmax(0,1.12fr)}.text-side{max-width:630px}.checklist{list-style:none;padding:0;margin:0 0 2.2rem}.checklist li{position:relative;padding-left:1.7em;font-size:clamp(1.16rem,1.5vw,1.28rem);line-height:1.75;font-weight:750}.checklist li:before{content:'✓';position:absolute;left:0;color:#c33870;font-weight:900}.media-slot{margin:0;min-height:280px;border:2px dashed #df9bb2;border-radius:24px;background:linear-gradient(145deg,#fff3f6,#fff9ef);color:#9e4866;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px}.media-slot span{font-size:1.1rem;font-weight:850}.media-slot small{font-size:.9rem;line-height:1.55}.media-slot.portrait{min-height:470px}.media-slot.landscape{min-height:280px}.section#s0{background:#fffdfb}.section#s1{background:#fff6ef}.section#s2{background:#fffdfb}.section#s3{background:#fff1f5}.section#s4{background:#fffdfb}.section#s5{background:#fff6ef}.section#s6{background:#fffdfb}.section#s7{background:#fff0f4}.centered{text-align:center}.centered .prose{max-width:850px;margin-inline:auto}.centered .landscape{max-width:790px;margin:2.6rem auto}.flow-section{text-align:center}.steps{list-style:none;counter-reset:step;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:0;margin:0 auto 50px;max-width:1010px}.steps li{counter-increment:step;padding:24px 18px;background:#fff2f5;border:1px solid #efcada;border-radius:18px;font-size:1.1rem;font-weight:850;line-height:1.55;text-align:left}.steps li:before{content:counter(step,decimal-leading-zero);display:block;color:#c2396d;font:900 1.8rem Georgia,serif;margin-bottom:12px}.flow-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:clamp(40px,6vw,74px);align-items:center}.flow-detail .text-side{margin:auto}.profile-slot{width:min(100%,390px);margin:0 auto 3rem}.profile-copy{max-width:810px;margin:auto}.offer{max-width:740px;margin:auto;padding:clamp(30px,5vw,56px);background:#fff;border:2px solid #e9a4b8;border-radius:28px;box-shadow:0 18px 45px #ad41601a}.offer>strong{display:block;font-size:clamp(1.35rem,2.3vw,1.8rem);line-height:1.5;color:#512d3b}.offer .price{font-size:clamp(2rem,4vw,2.7rem);font-weight:900;color:#a12856;margin:18px 0}.offer .action{margin-top:22px}.ending-section{background:linear-gradient(180deg,#fff2f5 0%,#fffaf0 100%)}.ending-section .prose{max-width:850px;margin:auto}.ending-section .action{margin-top:2.9rem}.ending-photo{margin-top:3.4rem!important}.section .prose strong:not(.emphasis){font-weight:900}@media(max-width:760px){.wrap{width:min(100% - 38px,1060px)}.section{padding:64px 0}.section h2{font-size:1.75rem;margin-bottom:28px}.section p,.checklist li{font-size:1.14rem}.intro{text-align:left}.intro h1{font-size:clamp(2rem,7vw,2.65rem)}.has-media .prose,.media-left .prose,.flow-detail{grid-template-columns:1fr;gap:30px}.has-media .media-slot,.flow-detail .media-slot{width:min(100%,450px);margin:auto}.media-left .media-slot{order:2}.media-left .text-side{order:1}.media-slot.portrait{min-height:350px}.media-slot.landscape{min-height:220px}.steps{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:35px}.steps li{padding:18px}.profile-slot{margin-bottom:2rem}.ending-section .action{width:100%}}@media(max-width:410px){.steps{grid-template-columns:1fr}.action{width:100%}}
/* MASTER 3: readable rhythm, restrained accents, and purposeful imagery. */
:root{color:#372c2e;background:#fffdfb}
body{font-weight:500}
.hero{max-width:1800px;margin:auto}
.intro{background:#fff6f7}
.section{padding-block:clamp(76px,9vw,124px)}
.section h2{max-width:900px;letter-spacing:.02em}
.section p{font-weight:500;line-height:1.9}
.section .prose{font-weight:500}
.section#s0,.section#s2,.section#s4,.section#s6{background:#fffdfb}
.section#s1,.section#s5{background:#fff8f4}
.section#s3,.section#s7{background:#fff6f8}
.section#s0 .prose,.section#s2 .prose,.section#s3 .prose{align-items:center}
.aside-note{margin:0;padding:clamp(28px,4vw,52px);border-left:5px solid #da4c7c;background:#fff5f6;align-self:center;max-width:420px}
.aside-note span{color:#a52c5b;font-size:.92rem;font-weight:800;letter-spacing:.1em}
.aside-note p{font-size:clamp(1.3rem,2.2vw,1.7rem);font-weight:800;line-height:1.65;margin-top:20px}
.card-note{background:#faf3ff;border-color:#9874bb}.step-note{background:#fff8e9;border-color:#e9ab46}
.flow-detail{display:block;max-width:760px;margin:auto;text-align:left}.flow-detail .text-side{max-width:none}
.profile-copy{text-align:left;max-width:680px}.profile-section h2{text-align:center}.profile-slot{min-height:420px}
.profile-copy .meaning-block+.meaning-block{margin-top:2.6rem}
.media-slot{background:#fff;border:1.5px dashed #c98099;color:#824355}
.action:focus-visible{outline:4px solid #f4a6c2;outline-offset:4px}
@media(max-width:760px){.section{padding-block:68px}.section p{line-height:1.82}.aside-note{width:100%;max-width:none}.profile-copy{text-align:left}.hero img{width:100%}}

.session-photo{max-width:790px;margin:2.6rem auto;overflow:hidden;border-radius:20px;box-shadow:0 18px 38px #54372f25}.session-photo img{width:100%;height:auto;display:block}

/* Supplied photographs placed in the reserved editorial areas. */
.content-photo{margin:0;min-width:0;overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 16px 38px #5232431c}
.content-photo img{display:block;width:100%;height:auto;object-fit:cover}
.content-photo figcaption{padding:12px 18px 16px;text-align:center;color:#664552;font-size:.91rem;font-weight:700;line-height:1.6}
.portrait-photo{max-width:410px;justify-self:center}
.portrait-photo img{max-height:510px;object-position:center 20%}
.card-photo img{max-height:600px;object-position:center}
.flow-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);max-width:none;gap:clamp(30px,5vw,65px);align-items:center}
.flow-detail .content-photo img{aspect-ratio:4/3;object-fit:cover}
.profile-photo{width:min(100%,440px);margin:0 auto 3rem}
.profile-photo img{aspect-ratio:4/4;object-fit:cover;object-position:50% 20%}
.ending-photo{max-width:740px;margin:3.4rem auto 0!important}
.ending-photo img{aspect-ratio:2/1;object-fit:cover}
@media(max-width:760px){.flow-detail{grid-template-columns:1fr}.flow-detail .content-photo{max-width:520px;margin:auto}.content-photo figcaption{font-size:.88rem}.portrait-photo img{max-height:400px}.profile-photo img{aspect-ratio:1/1}}

/* Paired descriptions of in-person and Zoom sessions. */
.flow-section .prose{max-width:1060px}
.flow-intro,.flow-outro{max-width:750px;margin-inline:auto;text-align:center}
.session-modes{display:grid;gap:34px;margin:52px 0}
.mode-row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(24px,4vw,54px);padding:clamp(22px,3vw,34px);background:#fff8f9;border-radius:26px;text-align:left}
.mode-row:nth-child(2){background:#f6f8ff}
.mode-copy h3{font-size:clamp(1.48rem,2vw,1.85rem);font-weight:900;color:#9f2c58;margin:0 0 18px}
.mode-copy p{font-size:clamp(1.08rem,1.3vw,1.2rem);font-weight:600;line-height:1.8}
.mode-image img{aspect-ratio:16/9;object-fit:cover}
@media(max-width:760px){.mode-row{grid-template-columns:1fr;gap:22px}.mode-image{width:100%}.session-modes{margin:38px 0}}

/* Friendly rounded headings and consistent alignment. */
.intro h1,.section h2,.mode-copy h3{font-family:"Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN W4","Zen Maru Gothic","M PLUS Rounded 1c",ui-rounded,"Yu Gothic",Meiryo,sans-serif;letter-spacing:.02em}
.intro h1{font-weight:900}
.section#s1 h2,.section#s2 h2,.section#s4 h2,.section#s5 h2,.section#s6 h2,.section#s7 h2,.section#s8 h2{max-width:none;text-align:center;margin-inline:auto}
.section#s3 h2{text-align:left}
.profile-copy,.profile-copy .meaning-block{text-align:center}
.stage-name{font-weight:900;color:#6b2849}
.two-photo-column{display:grid;gap:24px;align-self:start}
.two-photo-column .content-photo img{max-height:340px;object-fit:cover}
.next-photo-slot{min-height:210px}
.comic-slot{max-width:840px;min-height:210px;margin:0 auto 58px}
.gift-illustration{max-width:790px;margin:2.6rem auto 0}
.gift-illustration img{aspect-ratio:16/9;object-fit:cover}
.voices-section{background:linear-gradient(180deg,#fff9f2,#fff2f8);text-align:center}
.voices-section h2{max-width:none;text-align:center;margin-inline:auto}
.voices-lead{max-width:650px;margin:0 auto 32px!important}
.voices-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px;align-items:start}
.voice-card{margin:0;background:white;border-radius:20px;overflow:hidden;box-shadow:0 12px 30px #7d3a561c}
.voice-card img{display:block;width:100%;height:285px;object-fit:cover;object-position:center 33%}
.voice-card figcaption{padding:12px 14px;font-size:.9rem;font-weight:700;color:#6e4453}
.voice-bubble{position:relative;background:white;border:2px solid #f3a4bf;border-radius:24px;padding:20px 16px;color:#9b2858;box-shadow:0 12px 26px #8f466316}
.voice-bubble:before{content:"";position:absolute;top:-12px;left:calc(50% - 11px);width:19px;height:19px;background:white;border-left:2px solid #f3a4bf;border-top:2px solid #f3a4bf;transform:rotate(45deg)}
.voice-bubble p{font-size:clamp(1.14rem,1.7vw,1.35rem);font-weight:900;line-height:1.5;margin:0}
.voices-note{margin:28px auto 0!important;font-size:.9rem!important;color:#745b64}
@media(max-width:760px){.voices-grid{grid-template-columns:1fr 1fr}.voice-card img{height:250px}.two-photo-column{max-width:520px;margin:auto}.profile-copy{text-align:center}}
@media(max-width:520px){.voices-grid{grid-template-columns:1fr}.voice-card img{height:320px}.voice-bubble{margin-bottom:10px}.comic-slot{min-height:150px}}

.voice-item{display:grid;gap:17px;min-width:0}
@media(max-width:760px){.intro{text-align:center}.voice-item:last-child{grid-column:1/-1;max-width:390px;justify-self:center;width:100%}}
@media(max-width:520px){.voice-item:last-child{grid-column:auto;max-width:none}}

.comic{margin:0 auto 58px;text-align:center}
.comic .comic-heading{font-size:clamp(1.55rem,2.6vw,2.15rem);margin:0 auto 24px}
.comic-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.comic-panel{margin:0;min-width:0;background:#fff;border:2px solid #f0c3d2;border-radius:18px;overflow:hidden;box-shadow:0 12px 27px #71395216}
.comic-panel img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.comic-panel figcaption{padding:14px 9px;color:#72314d;font-size:1rem;font-weight:900;line-height:1.4}
.comic-panel b{display:inline-grid;place-items:center;width:1.6em;height:1.6em;margin-right:.24em;background:#ef7196;color:#fff;border-radius:50%;font-size:.88em}
.comic-hint{display:none}
@media(max-width:760px){.comic-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:14px}.comic-panel{flex:0 0 min(72vw,300px);scroll-snap-align:start}.comic-hint{display:block;margin:10px 0 0!important;font-size:.85rem!important;color:#815767}}

.next-step-photo img{aspect-ratio:16/9;object-fit:cover}

/* Guest-photo story: speech bubbles are illustrative, never attributed quotations. */
.voices-section{background:linear-gradient(160deg,#fff9ee,#fff0f7 55%,#f4f9ff)}
.voices-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:stretch}
.voice-item{display:block;margin:0;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 12px 32px #844b681a}
.voice-photo{position:relative;min-width:0;aspect-ratio:3/4;overflow:hidden;background:#f6eaf0}
.voice-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
.photo-bubble{position:absolute;bottom:7%;left:5%;max-width:88%;padding:.65rem .9rem;border-radius:24px;background:#fff;color:#942858;font-size:clamp(.85rem,1.25vw,1.1rem);line-height:1.35;font-weight:900;box-shadow:0 4px 16px #3d1c263b;border:2px solid #f4a2bc;text-align:center}
.photo-bubble:before{content:"";position:absolute;top:-13px;left:25%;width:17px;height:17px;transform:rotate(45deg);background:#fff;border-top:2px solid #f4a2bc;border-left:2px solid #f4a2bc}
.bubble-right{left:auto;right:5%}.bubble-right:before{left:auto;right:25%}
.voice-item figcaption{padding:.9rem .65rem;color:#674657;font-size:.94rem;font-weight:700;line-height:1.5}
.voice-wide{grid-column:2/4;max-width:560px;width:100%;justify-self:center}
.voice-wide .voice-photo{aspect-ratio:16/9}.voice-wide .voice-photo img{object-position:center}
.voices-note{max-width:760px;line-height:1.7}
@media(max-width:900px){.voices-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.voice-wide{grid-column:1/-1}.photo-bubble{font-size:1rem}}
@media(max-width:520px){.voices-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.voice-photo{aspect-ratio:3/4}.photo-bubble{font-size:.78rem;padding:.4rem .5rem;border-radius:15px}.voice-item figcaption{font-size:.8rem}.voice-wide{grid-column:1/-1}.voices-note{font-size:.82rem!important}}
/* Keep bubbles near each person's face while leaving the cards visible. */
.voice-photo .photo-bubble{top:34%;bottom:auto}
.voice-wide .photo-bubble{top:42%;bottom:auto}

/* Softer typography and clearer alternation between sections. */
.intro h1,.section h2,.mode-copy h3,.accent,.emphasis,.role-label,.stage-name,.offer>strong{
  font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN","HG丸ｺﾞｼｯｸM-PRO",ui-rounded,Meiryo,sans-serif;
}
.intro{background:#fce5ee}
.section#s0,.section#s2,.section#s4,.section#s6{background:#fffefc}
.section#s1,.section#s5{background:#fff2e5}
.section#s3,.section#s7{background:#fce7f0}
.voices-section{background:#fff4e8}
.ending-section{background:linear-gradient(180deg,#fce7ef 0%,#fff4dc 100%)}
.content-photo figcaption,.comic-panel figcaption,.profile-photo figcaption{
  font-family:"Yomogi","Hiragino Maru Gothic ProN",ui-rounded,Meiryo,sans-serif;
  font-size:clamp(1.02rem,1.5vw,1.16rem);font-weight:700;color:#7a3654;
}
.stage-name{color:#bd3d70;font-weight:900}
.role-label{font-weight:900;color:#a83260}
.profile-promise{margin-top:1.6em!important;text-decoration:underline wavy #e58aad;text-underline-offset:.34em;font-weight:700!important}

/* Each text area centers within its own column, without crossing into the image. */
#s2 .text-side,#s3 .text-side,.mode-copy{text-align:center}
#s2 .text-side,#s3 .text-side{margin-inline:auto}
#s3 h2{text-align:center;max-width:none;margin-inline:auto}
.mode-row{text-align:center}
.mode-copy{width:100%;margin-inline:auto}
.mode-copy h3,.mode-copy p{text-align:center}
.card-photo-stack{display:grid;gap:22px;align-self:center;max-width:380px;width:100%;justify-self:center}
.card-photo-stack .card-photo img{width:100%;height:240px;max-height:none;object-fit:cover;object-position:center}
.portrait-photo{max-width:480px}
.portrait-photo img{width:100%;aspect-ratio:4/3;max-height:none;object-fit:cover;object-position:center center}
.two-photo-column .next-step-photo img{aspect-ratio:16/9;object-fit:cover}

/* Quotes sit over each photograph on a shared grid, leaving faces visible. */
.voice-group+.voice-group{margin-top:4.1rem}
.voice-group h3{font-family:"Zen Maru Gothic",ui-rounded,Meiryo,sans-serif;color:#a13261;font-size:clamp(1.32rem,2vw,1.7rem);margin:0 0 24px;text-align:center}
.voices-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;align-items:start}
.voice-item,.voice-item:last-child{margin:0;background:none;border-radius:0;box-shadow:none;max-width:none;width:auto;grid-column:auto;min-width:0;justify-self:stretch;display:flex;flex-direction:column;align-items:stretch}
.voice-photo{width:100%;aspect-ratio:1/1;overflow:hidden;border-radius:18px;box-shadow:0 10px 26px #844b681a;background:#f9e7ed}
.voice-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
.voice-group:first-of-type .voice-item:nth-child(3) img{object-position:73% 27%}
.voice-group:first-of-type .voice-item:nth-child(4) img{object-position:24% 23%}
.voice-bubble-text{position:relative;display:grid;place-items:center;min-height:86px;margin:0 8px 17px;padding:10px 13px;background:#fff;border:2px solid #e997b5;border-radius:32px;color:#9c315b;font-family:"Zen Maru Gothic",ui-rounded,Meiryo,sans-serif;font-weight:900;font-size:clamp(.92rem,1.5vw,1.1rem);line-height:1.4;box-shadow:0 8px 20px #9d477117}
.voice-bubble-text:after{content:"";position:absolute;width:16px;height:16px;bottom:-10px;left:calc(50% - 8px);transform:rotate(45deg);background:#fff;border-right:2px solid #e997b5;border-bottom:2px solid #e997b5}
.no-quotes .voice-photo{margin-top:0}
.voices-note{max-width:780px;margin-top:3rem!important;font-size:.95rem!important}
@media(max-width:850px){.voices-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card-photo-stack{max-width:560px}.card-photo-stack .card-photo img{height:220px}}
@media(max-width:520px){.voices-grid{gap:12px}.voice-bubble-text{min-height:85px;margin:0 2px 13px;padding:8px 7px;font-size:.85rem}.voice-photo{border-radius:12px}.voice-group+.voice-group{margin-top:3.5rem}.voices-note{font-size:.87rem!important}}

/* Keep the first guest's smile large, in a slightly portrait shaped photograph. */
.portrait-photo{max-width:420px}
.portrait-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 48%}

/* Crop the phone interface away in the browser; preserve the supplied card artwork. */
.card-photo-stack{max-width:335px;gap:22px}
.card-photo-stack .card-photo{border-radius:22px;overflow:hidden}
.card-photo-stack .card-photo img{width:100%;height:auto;aspect-ratio:709/980;object-fit:cover;object-position:center 36%;max-height:none}
#s2 .text-side .meaning-block p+p{margin-top:1.3em}

/* One shared group of guests, then a separate three-image live gallery. */
.guests-together{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.guests-together .voice-duo{grid-column:span 2}
.guests-together .voice-duo .voice-photo{aspect-ratio:16/9}
.guests-together .voice-duo .voice-photo img{object-position:center}
.guests-together .voice-duo .voice-bubble-text{align-self:flex-start;width:min(64%,300px);margin-left:8%;margin-right:0}
.guests-together .voice-duo .voice-bubble-text:after{left:16%}
.collab-live{margin-top:4.3rem;border-top:2px solid #f1bfcb;padding-top:3.5rem}
.collab-live h3{font-family:"Zen Maru Gothic",ui-rounded,Meiryo,sans-serif;color:#a13261;font-size:clamp(1.38rem,2.3vw,1.85rem);margin:0 auto 2rem;line-height:1.55;max-width:800px}
.live-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.live-grid figure{margin:0;display:grid;place-items:center;min-width:0;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 12px 28px #844b681a}
.live-grid img{display:block;width:100%;height:100%;max-height:350px;aspect-ratio:4/3;object-fit:contain;background:#fff}
@media(max-width:850px){.card-photo-stack{max-width:360px}.guests-together{grid-template-columns:repeat(2,minmax(0,1fr))}.live-grid{grid-template-columns:1fr;max-width:550px;margin-inline:auto}.live-grid img{max-height:380px}}
@media(max-width:520px){.guests-together{gap:12px}.guests-together .voice-duo{grid-column:1/-1}.collab-live{margin-top:3.4rem;padding-top:2.8rem}}

/* Soft color changes borrow from the cards without competing with photographs. */
.intro{background:linear-gradient(150deg,#ffedf4,#f9e8fa 62%,#fff8df)}
#s0{background:#fffefa!important}
#s1{background:#eaf8f6!important}
#s2{background:#f2edfb!important}
#s3{background:#fff0f3!important}
#s4{background:#eaf5fc!important}
#s5{background:#fff5df!important}
#s6{background:#f8effa!important}
.voices-section{background:#fff8ef}
.testimonials-section{background:#ecf7f4}
.gift-section{background:#f5ecfb!important}
.ending-section{background:linear-gradient(150deg,#fff0f5,#fce7f0 58%,#fff5d8)}
.intro-sixty{display:inline-block;margin-top:.9em}
.action{position:relative;isolation:isolate;background:linear-gradient(120deg,#c51c78,#ae2c9a);border:3px solid #fff;border-radius:45% 55% 50% 50% / 65% 64% 36% 35%;padding:20px 36px;color:#fff;font-family:"Zen Maru Gothic",ui-rounded,Meiryo,sans-serif;font-size:1.13rem;line-height:1.45;box-shadow:0 8px 0 #e9a4d0,0 17px 30px #a02b8133}
.action:before,.action:after{content:'♥';font-size:.85em;color:#ffe4f4;position:absolute;top:50%;transform:translateY(-50%)}
.action:before{left:14px}.action:after{right:14px}
.action:hover{background:linear-gradient(120deg,#ac1568,#942681);transform:translateY(-2px)}
.testimonials-section h2{text-align:center;margin-bottom:18px}
.testimonials-lead{text-align:center;margin-bottom:40px!important}
.testimonials-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;max-width:1000px;margin:auto}
.testimonial-card{position:relative;margin:0;padding:34px 32px;background:#fff;border:2px solid #eab3cf;border-radius:42% 38% 39% 44% / 24% 28% 27% 26%;box-shadow:0 14px 30px #9b5f9a1b;text-align:center;display:grid;place-items:center;min-height:180px}
.testimonial-card:nth-child(3n+2){border-color:#c5b1e9;background:#fdfaff}
.testimonial-card:nth-child(3n){border-color:#a4d8d0;background:#fafffe}
.testimonial-card:last-child:nth-child(odd){grid-column:1/-1;max-width:600px;justify-self:center}
.testimonial-card:after{content:'';position:absolute;bottom:-12px;left:18%;width:24px;height:24px;background:inherit;border-right:2px solid #eab3cf;border-bottom:2px solid #eab3cf;transform:rotate(35deg);border-radius:0 0 8px 0}
.testimonial-card p{font-family:"Zen Maru Gothic",ui-rounded,Meiryo,sans-serif;font-size:clamp(1.1rem,1.6vw,1.35rem);font-weight:700;color:#64314f;line-height:1.7;margin:0}
.testimonials-note{text-align:center;font-size:.88rem!important;color:#6d5e69;margin:42px auto 0!important;max-width:720px}
@media(max-width:640px){.testimonials-grid{grid-template-columns:1fr;gap:24px}.testimonial-card{min-height:140px;padding:28px 26px;border-radius:32px}.testimonial-card:last-child:nth-child(odd){grid-column:auto}.action{padding-inline:31px;font-size:1rem}.action:before{left:8px}.action:after{right:8px}}

/* A brighter pink hierarchy and a real cloud silhouette for invitations. */
.intro h1,.section h2,.mode-copy h3,.comic-heading{color:#d12b78}
.accent,.emphasis,.role-label,.stage-name{color:#c12e75}
.offer .price,.offer>strong{color:#c12970}
.checklist li:before,.steps li:before{color:#e02c86}
.voice-bubble-text,.collab-live h3{color:#c32c76}
.soft-emphasis{font-family:"Zen Maru Gothic",ui-rounded,Meiryo,sans-serif;font-weight:900;color:#b82d72}
.action,.action:hover{background:transparent url("cloud-cta.svg") center / 100% 100% no-repeat;border:0;border-radius:0;box-shadow:none;filter:drop-shadow(0 9px 0 #f7a8d0) drop-shadow(0 13px 14px #c73c8a3b);color:#fff;min-width:360px;min-height:116px;padding:31px 51px 34px;font-size:1.2rem;line-height:1.35;text-shadow:0 1px 2px #ac1d68aa;transition:transform .2s,filter .2s}
.action:hover{transform:translateY(-3px);filter:drop-shadow(0 10px 0 #f7a8d0) drop-shadow(0 16px 16px #c73c8a44)}
.action:before,.action:after{content:none}
.action span{display:block;position:relative;z-index:1}
.ending-section .action{width:min(100%,570px);min-height:135px;padding-inline:62px}
.offer .action{margin-top:25px}
.offer-eyebrow{display:block;color:#d63686;font-family:"Zen Maru Gothic",ui-rounded,Meiryo,sans-serif;font-size:1.05rem;font-weight:900;margin-bottom:12px}
.offer-detail{margin-top:1.1em!important;font-size:1.08rem!important}
.offer-section .prose{max-width:850px}
.mini-offer{max-width:650px;margin:30px auto 0;padding:34px 30px;background:#fffdfd;border:2px solid #efb3d5;border-radius:28px;box-shadow:0 11px 25px #be6d9a16;text-align:center}
.mini-offer h3{margin:0;color:#c12e75;font:900 clamp(1.3rem,2vw,1.65rem)/1.55 "Zen Maru Gothic",ui-rounded,Meiryo,sans-serif}
.mini-offer .mini-price{color:#cd317d;font-weight:900;font-size:clamp(1.7rem,3vw,2.1rem);margin:.45em 0 .5em}
.mini-offer p:last-child{font-size:1.08rem}
#s3 h2{transform:translateX(.65em)}
.testimonial-card{border-radius:48px;min-height:220px;padding:34px 39px}
.testimonial-card p{font-size:clamp(1.07rem,1.5vw,1.25rem)}
@media(max-width:760px){#s3 h2{transform:none}.action{width:min(100%,460px);min-width:0;min-height:120px}.ending-section .action{width:100%;min-height:144px;padding-inline:13%}.mini-offer{padding:27px 20px}}
@media(max-width:410px){.action{padding-inline:13%;font-size:1.04rem}.ending-section .action{font-size:.99rem}.testimonial-card{padding:28px 22px}}

/* The full service name reads as one distinct three-line signature. */
.brand-lockup{max-width:740px;margin:0 auto;padding:clamp(26px,5vw,44px) 18px;border:2px solid #f5b6d6;border-radius:34px;background:linear-gradient(155deg,#fff,#fff5fb 62%,#fff9ed);box-shadow:0 14px 34px #db6aa525;text-align:center;font-family:"Zen Maru Gothic",ui-rounded,Meiryo,sans-serif}
.brand-lockup .brand-prelude{display:block;color:#d9358d;font-family:"Yomogi","Zen Maru Gothic",ui-rounded,sans-serif;font-size:clamp(1.45rem,3.2vw,2.05rem);font-weight:700;line-height:1.5;margin-bottom:.35em}
.brand-lockup strong{display:block;color:#d62b82;font-size:clamp(1.5rem,3.5vw,2.38rem);font-weight:900;line-height:1.5;letter-spacing:.015em}
.brand-lockup strong:last-child{color:#c62f83}
.line-link{display:inline-block;margin-top:23px;padding:14px 24px;border:2px solid #5bac8e;border-radius:18px;background:#f5fffa;color:#216950;text-decoration:none;font:900 1.05rem/1.5 "Zen Maru Gothic",ui-rounded,Meiryo,sans-serif;box-shadow:0 7px 0 #cae9d9;transition:transform .2s,background .2s}
.line-link:hover{background:#e7f8ee;transform:translateY(-2px)}
.line-link:focus-visible{outline:3px solid #318769;outline-offset:3px}
#s3 h2{transform:translateX(1.65em)}
.accent,.emphasis,.soft-emphasis,.role-label,.stage-name{color:#d53488}
@media(max-width:760px){#s3 h2{transform:translateX(.8em)}.brand-lockup{padding:26px 13px}.brand-lockup strong{font-size:clamp(1.3rem,5.3vw,1.95rem)}.line-link{width:100%;font-size:.99rem;padding:14px 12px}}

/* Center the customer heading and unify the closing handwritten signature. */
.testimonials-section .wrap>h2{width:100%;max-width:none;margin-inline:auto;text-align:center;transform:none}
.brand-lockup,.brand-lockup .brand-prelude,.brand-lockup strong,.brand-lockup strong:last-child{font-family:"Yomogi","Zen Maru Gothic",ui-rounded,sans-serif;font-weight:700;color:#e33091}
.brand-lockup .brand-prelude,.brand-lockup strong{font-size:clamp(1.4rem,3.3vw,2.15rem);line-height:1.55;letter-spacing:.01em}
.brand-lockup .brand-prelude{margin-bottom:0}
@media(max-width:760px){.brand-lockup .brand-prelude,.brand-lockup strong{font-size:clamp(1.2rem,5vw,1.8rem)}}

/* A shared thought between the two card choosing photos. */
.two-photo-column .card-choice-cloud{position:relative;isolation:isolate;max-width:100%;margin:0 auto;padding:22px 32px;color:#b82a76;text-align:center;font:700 clamp(1.07rem,1.8vw,1.33rem)/1.7 "Yomogi","Zen Maru Gothic",ui-rounded,sans-serif;filter:drop-shadow(0 8px 14px #bc66972b)}
.two-photo-column .card-choice-cloud:before{content:"";position:absolute;inset:0;z-index:-1;background:#fff7fc;border:2px solid #e68cbd;border-radius:45% 50% 42% 49% / 50% 40% 55% 43%;transform:rotate(-2deg)}

/* More room for each customer and their cards; the two-person photo stays wide. */
.guests-together .voice-item:not(.voice-duo) .voice-photo{aspect-ratio:2/3}
.guests-together .voice-item:not(.voice-duo) .voice-photo img{object-fit:contain;object-position:center;background:#f8edf3}
.guests-together .voice-duo .voice-photo{aspect-ratio:16/9}
/* The live screenshots share one frame size and show people at comparable scale. */
.live-grid figure{height:auto;aspect-ratio:16/9}
.live-grid figure img{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover}
.live-grid figure:first-child img{transform:scale(1.2)}
.live-grid figure:last-child img{object-fit:contain}
.reading-examples{background:#fff9ed}
.reading-examples .reading-lead{margin:0 auto 2.2rem;max-width:760px}
.reading-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:920px;margin:0 auto;align-items:stretch}
.reading-grid .content-photo{display:flex;flex-direction:column}
.reading-grid .content-photo img{width:100%;height:clamp(300px,43vw,540px);object-fit:cover;object-position:center}
.reading-grid .content-photo:first-child img{object-position:center 70%}
.reading-grid .content-photo figcaption{margin-top:auto;font-family:"Yomogi","Zen Maru Gothic",ui-rounded,sans-serif;font-size:1.1rem;font-weight:700}
.reading-grid small{font-family:"Zen Maru Gothic",ui-rounded,sans-serif;font-size:.8rem;color:#7b6874}
#s5.profile-section{background:#ffedf5!important}
.profile-photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:900px;margin:0 auto 3rem;align-items:stretch}
.profile-photo-pair .profile-photo{width:100%;margin:0;display:flex;flex-direction:column}
.profile-photo-pair .profile-photo img{width:100%;height:420px;aspect-ratio:auto;object-fit:cover;object-position:center 18%}
.profile-photo-pair .teacher-photo img{object-position:center}
.profile-photo-pair .profile-photo figcaption{margin-top:auto}
@media(max-width:760px){.reading-grid{grid-template-columns:1fr;max-width:520px}.reading-grid .content-photo img{height:auto;aspect-ratio:4/5;object-fit:contain;background:#f9edf3}.profile-photo-pair{gap:12px}.profile-photo-pair .profile-photo img{height:clamp(190px,42vw,320px);aspect-ratio:auto}.profile-photo-pair figcaption{font-size:.8rem;padding:9px 7px}}
@media(max-width:520px){.live-grid figure{aspect-ratio:16/9}.profile-photo-pair{gap:8px}.profile-photo-pair figcaption{font-size:.73rem}}

/* Show only the black card artwork: the screenshots' phone UI and outer blue/white rims stay outside the clipped frame. */
#s2 .card-photo-stack .card-photo{width:100%;aspect-ratio:670/955;border-radius:22px;overflow:hidden;background:#090909}
#s2 .card-photo-stack .card-photo img{width:100%;height:100%;aspect-ratio:auto;max-height:none;object-fit:cover;object-position:center 35%;transform:scale(1.06);display:block}
#s2 .card-photo-stack .card-photo:nth-child(2) img{object-position:center 39%}
/* Original image proportions keep the faces and all laid-out cards in view. */
.reading-grid .content-photo img,.reading-grid .content-photo:first-child img{width:100%;height:auto;aspect-ratio:auto;max-height:none;object-fit:contain;object-position:center;background:#f8edf3}
/* Customer portraits in one balanced row, then four masked guests per row. */
.guests-together{display:block}
.face-guests{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:18px;align-items:stretch;max-width:980px;margin:0 auto 34px}
.masked-guests{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:start}
.face-guests .voice-item,.masked-guests .voice-item{grid-column:auto;max-width:none;width:100%}
.face-guests .voice-photo{height:265px;aspect-ratio:auto!important}
.face-guests .voice-photo img{width:100%;height:100%;object-fit:cover;background:#f8edf3}
.face-guests .voice-item:first-child .voice-photo img{object-position:center 47%}
.face-guests .voice-duo .voice-bubble-text{align-self:center;margin-inline:auto;width:min(90%,380px)}
.masked-guests .voice-photo{aspect-ratio:2/3!important;background:#f8edf3}
.masked-guests .voice-photo img{width:100%;height:100%;object-fit:contain;object-position:center}
@media(max-width:850px){.masked-guests{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.face-guests{grid-template-columns:1fr;gap:15px}.face-guests .voice-photo{height:auto;aspect-ratio:4/3!important}.face-guests .voice-duo .voice-photo{aspect-ratio:16/9!important}.masked-guests{gap:12px}}

/* The five-panel visual leads the flow, with the detailed explanations directly beneath it. */
.flow-section .comic{margin:0 auto 3.2rem}
.flow-section .comic-heading{text-align:center}
/* Crop extra ceiling and tabletop so the man reads clearly at the same gallery scale. */
.face-guests .voice-item:first-child .voice-photo img{object-position:center 20%;transform:scale(1.17)}
/* Normalize the seven anonymizing stickers to a shared visual diameter while keeping cards visible. */
.masked-guests .voice-photo{overflow:hidden;display:grid;place-items:center}
.masked-guests .voice-photo img{object-fit:contain;object-position:center;transform-origin:center center}
.masked-guests img[src="gallery-mask-1.webp"]{transform:scale(1.04)}
.masked-guests img[src="gallery-mask-2.webp"]{transform:scale(.92)}
.masked-guests img[src="gallery-mask-3.webp"]{transform:scale(.82)}
.masked-guests img[src="gallery-mask-4.webp"]{transform:scale(1.06)}
.masked-guests img[src="gallery-mask-5.webp"]{transform:scale(1.18)}
.masked-guests img[src="gallery-mask-6.webp"]{transform:scale(1.25)}
.masked-guests img[src="gallery-mask-7.webp"]{transform:scale(1.04)}

/* On phones, keep the examples compact and give Shinopy's own photographs room. */
@media(max-width:760px){
  .reading-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:600px}
  .reading-grid .content-photo img,.reading-grid .content-photo:first-child img{height:auto;aspect-ratio:auto;object-fit:contain}
  .reading-grid figcaption{font-size:.78rem;padding:10px 7px}
  .profile-photo-pair{grid-template-columns:1fr;max-width:480px;gap:22px}
  .profile-photo-pair .profile-photo img{height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center 18%}
  .profile-photo-pair .teacher-photo img{aspect-ratio:4/3;object-position:center}
.profile-photo-pair figcaption{font-size:.9rem;padding:12px}
}

/* Keep faces prominent while leaving the cards in the session examples visible. */
.reading-grid .content-photo:first-child{overflow:hidden}
.reading-grid .content-photo:first-child img{transform:scale(1.08);transform-origin:50% 42%}
.masked-guests img[src="gallery-mask-4.webp"]{transform:scale(1.2)}
.face-guests .voice-item:first-child .voice-photo img{object-fit:cover;object-position:center 43%;transform:scale(1.1)}
.live-grid figure:first-child img{transform:none;object-fit:contain;clip-path:inset(0 0 0 2%)}
@media(max-width:760px){
  .face-guests .voice-item:first-child .voice-photo{aspect-ratio:4/5!important}
  .face-guests .voice-item:first-child .voice-photo img{object-fit:cover;object-position:center 40%;transform:scale(1.02)}
  .live-grid figure:last-child{aspect-ratio:1/1}
.live-grid figure:last-child img{object-fit:contain}
}

/* Deliberate short lines on phones, without changing desktop line breaks. */
.mobile-break{display:none}
@media(max-width:760px){
  .mobile-break{display:block}
  .intro h1{font-size:clamp(1.65rem,7.3vw,2.3rem)}
}

/* Match the scale of the two card-reading portraits and align their captions. */
.reading-grid .content-photo:first-child img{transform:scale(1.17);transform-origin:50% 40%}
.reading-grid .content-photo figcaption{margin-top:0}

/* Use one frame shape for all guests; crop empty room while keeping their cards. */
.masked-guests .voice-photo{border-radius:18px;aspect-ratio:2/3!important}
.masked-guests .voice-photo img,
.masked-guests img[src^="gallery-mask-"]{width:100%;height:100%;object-fit:cover;object-position:center 24%;transform:none}
.masked-guests img[src="gallery-mask-1.webp"],
.masked-guests img[src="gallery-mask-2.webp"],
.masked-guests img[src="gallery-mask-6.webp"]{object-position:center 16%}
@media(max-width:760px){
  .face-guests .voice-item:first-child .voice-photo{width:min(78%,420px);margin-inline:auto}
  .face-guests .voice-item:first-child .voice-photo img{transform:none;object-position:center 42%}
  .masked-guests .voice-photo{border-radius:14px}
}

/* Crop each side of the first Zoom screenshot separately so both faces read at the same scale. */
.live-grid .live-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;background:#ffe0ee}
.live-grid .live-split span{height:100%;min-width:0;overflow:hidden}
.live-grid .live-split span img{width:100%;height:100%;object-fit:cover;clip-path:none}
.live-grid .live-split span:first-child img{object-position:17% center;transform:scale(1.2)}
.live-grid .live-split span:last-child img{object-position:89% center;transform:none}

/* Clip enlargement inside each photograph so the captions stay fully visible. */
.reading-grid .reading-photo-frame{width:100%;aspect-ratio:3/4;overflow:hidden;background:#f8edf3}
.reading-grid .content-photo .reading-photo-frame img,
.reading-grid .content-photo:first-child .reading-photo-frame img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center}
.reading-grid .content-photo:first-child .reading-photo-frame img{transform:scale(1.2);transform-origin:50% 42%}
.reading-grid .content-photo:nth-child(2) .reading-photo-frame img{transform:none}
.reading-grid .content-photo figcaption{position:relative;z-index:1;background:#fff}

/* Balance the sticker sizes without changing the seven matching photo frames. */
.masked-guests img[src="gallery-mask-3.webp"]{transform:scale(.94)}
.masked-guests img[src="gallery-mask-4.webp"]{transform:scale(1.25)}

/* Give the three live images a closer face scale, while keeping the poster legible. */
.live-grid .live-split span:first-child img{transform:scale(1.25)}
.live-grid .live-split span:last-child img{transform:scale(1.18)}
.live-grid figure:nth-child(2) img{transform:scale(.9);object-fit:cover;background:#ffe0ee}
.live-grid figure:last-child img{transform:scale(1.1)}

/* Keep each opening thought separate and center the next section heading. */
.intro-worries p+p{margin-top:1.25em}
#s3 h2{width:100%;max-width:none;margin-inline:auto;text-align:center;transform:none}
@media(max-width:760px){#s3 h2{transform:none}}

/* The LINE invitation uses a soft green cloud, matching the existing LINE colors. */
.line-link,.line-link:hover{position:relative;display:inline-flex;align-items:center;justify-content:center;text-align:center;width:min(100%,460px);min-height:110px;margin-top:23px;padding:25px 53px;background:#e4f8ed;border:0;border-radius:0;color:#216950;box-shadow:none;filter:drop-shadow(0 7px 0 #b9ddc9) drop-shadow(0 11px 15px #56a17b3d);-webkit-mask:url("cloud-cta.svg") center / 100% 100% no-repeat;mask:url("cloud-cta.svg") center / 100% 100% no-repeat}
.line-link:hover{transform:translateY(-2px)}
.line-link>span[aria-hidden]{position:absolute;right:11%;top:50%;transform:translateY(-50%)}
@media(max-width:410px){.line-link{padding-inline:42px;font-size:.95rem}}

/* Final alignment and photo framing refinements */
#s3 h2{transform:translateX(1.45em)}
#reading-examples h2{transform:translateX(1.05em)}
.masked-guests img[src="gallery-mask-1.webp"]{object-position:center 38%;transform:scale(1.08)}
.masked-guests img[src="gallery-mask-2.webp"]{object-position:center 22%;transform:translateX(5%) scale(1.06)}
.masked-guests img[src="gallery-mask-3.webp"]{object-position:center 22%;transform:translateX(5%) scale(1.04)}
.masked-guests img[src="gallery-mask-4.webp"]{object-position:center 27%;transform:scale(1.4)}
.masked-guests img[src="gallery-mask-5.webp"]{object-position:center 24%;transform:scale(1.27)}
.masked-guests img[src="gallery-mask-6.webp"]{object-position:center 43%;transform:translateX(5%) scale(1.12)}
.masked-guests img[src="gallery-mask-7.webp"]{object-position:center 24%;transform:scale(1.03)}
.live-grid .live-split-middle span:first-child img{object-position:0% center;transform:scale(1.04)}
.live-grid .live-split-middle span:last-child img{object-position:100% center;transform:scale(1.04)}
.line-link,.line-link:hover{background:transparent url("cloud-cta-green.svg") center / 100% 100% no-repeat;-webkit-mask:none;mask:none;filter:drop-shadow(0 7px 0 #a6d9bd) drop-shadow(0 12px 16px #56a17b40)}
@media(max-width:760px){#s3 h2{transform:translateX(1.45em)}#reading-examples h2{transform:translateX(.65em)}.live-grid figure:last-child{aspect-ratio:4/3}.live-grid figure:last-child img{object-fit:cover;object-position:center 65%;transform:none}}
.testimonial-context{margin-top:1rem;text-align:right;color:#8d6279;font:700 .84rem/1.5 "Zen Maru Gothic",ui-rounded,Meiryo,sans-serif}

/* Requested fine adjustments: keep the middle live image at its former size. */
#reading-examples h2{transform:translateX(1.75em)}
.masked-guests img[src="gallery-mask-1.webp"]{object-position:center 72%;transform:scale(1.08)}
.masked-guests img[src="gallery-mask-2.webp"]{transform:translateX(11%) scale(1.07)}
.masked-guests img[src="gallery-mask-4.webp"]{transform:translateX(6%) scale(1.65)}
.masked-guests img[src="gallery-mask-6.webp"]{object-position:center 74%;transform:translateX(5%) scale(1.12)}
.live-grid .live-split:first-child span:first-child img{object-position:17% center;transform:scale(1.5)}
.live-grid .live-split:first-child span:last-child img{object-position:89% center;transform:scale(1.4)}
.live-grid figure:nth-child(2) img{transform:scale(.9)}
.live-grid figure:last-child img{object-fit:cover;object-position:center 65%;transform:none}
.line-link,.line-link:hover{filter:drop-shadow(0 6px 0 #c8e9d6) drop-shadow(0 10px 15px #56a17b28)}
@media(max-width:760px){#reading-examples h2{transform:translateX(1.35em)}.live-grid figure:last-child{aspect-ratio:3/2}.live-grid figure:last-child img{object-fit:cover;object-position:center 66%;transform:none}}

/* Bigger, readable original Soaris card photos beside the explanation. */
#s2 .prose{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:clamp(24px,4vw,46px)}
#s2 .card-photo-stack{max-width:400px;gap:20px}
#s2 .card-photo-stack .card-photo{width:100%;aspect-ratio:4/5}
#s2 .card-photo-stack .card-photo img{object-fit:cover;object-position:center 39%;transform:scale(1.03)}
#s2 .card-photo-stack .card-photo:nth-child(2) img{object-position:center 47%}

/* The green invitation has the same cloud silhouette and dimensions as pink. */
.line-link,.line-link:hover{width:min(100%,360px);min-height:116px;padding:31px 51px 34px;font-size:1.08rem;line-height:1.35}
.line-link>span[aria-hidden]{display:none}

/* Lift the monkey and lion, with enough image overlap to fill each frame. */
.masked-guests img[src="gallery-mask-1.webp"]{object-position:center 90%;transform:translateY(-3%) scale(1.12)}
.masked-guests img[src="gallery-mask-3.webp"]{object-position:center 84%;transform:translateX(5%) translateY(-4%) scale(1.13)}
.masked-guests img[src="gallery-mask-6.webp"]{object-position:center 94%;transform:translateX(5%) translateY(-7%) scale(1.2)}

/* Center-crop the square poster so both faces and chins remain visible. */
.live-grid figure:last-child{aspect-ratio:1/1}
.live-grid figure:last-child img{object-fit:cover;object-position:center;transform:scale(1.18);transform-origin:center 55%}
@media(max-width:760px){#s2 .prose{grid-template-columns:1fr}#s2 .card-photo-stack{max-width:min(100%,440px)}.live-grid figure:last-child{aspect-ratio:1/1}.live-grid figure:last-child img{object-fit:cover;object-position:center;transform:scale(1.18);transform-origin:center 55%}.line-link{width:min(100%,360px)}}

/* Show both full card sheets while hiding the phone screenshot border. */
#s2 .card-photo-stack{max-width:430px}
#s2 .card-photo-stack .card-photo{aspect-ratio:68/100}
#s2 .card-photo-stack .card-photo img{object-position:center 37%;transform:scale(1.055)}
#s2 .card-photo-stack .card-photo:nth-child(2) img{object-position:center 40%}
/* Move the card-count heading one character back toward the photo midpoint. */
#reading-examples h2{transform:translateX(.75em)}
@media(max-width:760px){#reading-examples h2{transform:translateX(.35em)}}

/* Crop precisely to the black printed sheets, without clipping the cards. */
#s2 .card-photo-stack .card-photo{aspect-ratio:141/200;background:#050505}
#s2 .card-photo-stack .card-photo img{object-position:center 35.6%;transform:translateX(-.8%) scale(1.055)}
#s2 .card-photo-stack .card-photo:nth-child(2) img{object-position:center 40.2%}

/* Three face-visible guest photos: two portraits and the existing wide pair. */
.face-guests{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr)}
.face-guests .voice-item:nth-child(2) .voice-photo img{object-position:center 20%}
.two-photo-column .next-step-photo img{aspect-ratio:auto;object-fit:contain}
/* Desktop keeps four masked guests per row, even in a narrower window. */
.masked-guests{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:850px) and (pointer:coarse){.masked-guests{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.face-guests{grid-template-columns:repeat(2,minmax(0,1fr))}.face-guests .voice-duo{grid-column:1/-1}}
@media(max-width:520px){.face-guests{grid-template-columns:1fr}.face-guests .voice-item:not(.voice-duo) .voice-photo{width:min(78%,420px);margin-inline:auto}}

/* Keep the two individual guest portraits at one size, with the flyer cropped away. */
.face-guests .voice-item:not(.voice-duo) .voice-photo{height:auto;aspect-ratio:4/5!important;overflow:hidden;border-radius:18px}
.face-guests .voice-item:not(.voice-duo) .voice-photo img{width:100%;height:100%;object-fit:cover;display:block}
.face-guests .voice-item:first-child .voice-photo img{object-position:center 28%;transform:translateX(2%) scale(1.06)}
.face-guests .voice-item:nth-child(2) .voice-photo img{object-position:center 30%;transform:translateX(-2%) scale(1.04)}
.face-guests .voice-duo .voice-photo{width:100%;height:auto;aspect-ratio:8/5!important;margin-inline:auto;overflow:hidden;border-radius:18px;background:#29252d}
.face-guests .voice-duo .voice-photo img{width:100%;height:100%;object-fit:cover;object-position:center;transform:none}
@media(max-width:520px){.face-guests .voice-item:first-child .voice-photo img{object-position:center 28%;transform:translateX(2%) scale(1.06)}.face-guests .voice-duo .voice-photo{aspect-ratio:8/5!important}}

/* Reduce only the oversized covered face; keep the seven photo frames uniform. */
.masked-guests img[src="gallery-mask-3.webp"]{transform:translateX(5%) translateY(-4%) scale(1.03)}

/* Two collaboration stills on the left and the full announcement on the right. */
.live-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto;max-width:1000px;margin-inline:auto;align-items:center}
.live-grid figure:first-child{grid-column:1;grid-row:1;aspect-ratio:16/9}
.live-grid figure:nth-child(2){grid-column:1;grid-row:2;aspect-ratio:16/9}
.live-grid figure:last-child{grid-column:2;grid-row:1/3;aspect-ratio:1/1}
.live-grid figure:last-child img{object-fit:contain;object-position:center;transform:none;background:#fff}
@media(max-width:760px){.live-grid{grid-template-columns:1fr;grid-template-rows:auto;max-width:550px}.live-grid figure:first-child,.live-grid figure:nth-child(2),.live-grid figure:last-child{grid-column:1;grid-row:auto}.live-grid figure:last-child{aspect-ratio:1/1}.live-grid figure:last-child img{object-fit:contain;transform:none}}

/* Center the heading within the same full-width container as the two photos. */
#reading-examples h2{width:100%;max-width:none;margin-inline:auto;text-align:center;transform:none}
@media(max-width:760px){#reading-examples h2{transform:none}}

/* Make the opening question prominent while retaining the headline hierarchy. */
.intro-worries .intro-question{display:inline;overflow-wrap:anywhere;font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.65;font-weight:900;color:#cd267a;background:linear-gradient(transparent 72%,#ffc6df 72%);padding-inline:.06em}
@media(max-width:760px){.intro-worries .intro-question{font-size:clamp(1.4rem,5.5vw,1.75rem)}}

/* Keep the two people centered in the cleaned birthday photograph. */
.profile-photo-pair .teacher-photo img{object-position:center 10%}

/* The invitation for each session is the first thing to notice. */
.offer-section .offer-eyebrow{width:fit-content;max-width:100%;margin:0 auto 16px;padding:0 .08em .08em;font-size:clamp(1.55rem,2.6vw,2.1rem);line-height:1.5;font-weight:900;color:#ed3b9a;box-shadow:inset 0 -.26em #ffe1ef}
.offer-section .offer>strong{font-size:clamp(1.2rem,1.8vw,1.5rem);line-height:1.6}
.offer-section .mini-offer .offer-eyebrow{color:#318966;box-shadow:inset 0 -.26em #d9f4e5}
@media(max-width:520px){.offer-section .offer-eyebrow{font-size:clamp(1.32rem,5vw,1.6rem)}}

/* Show the event dress and shoes completely at every screen width. */
.profile-photo-pair{align-items:center}
.profile-photo-pair .profile-photo figcaption{margin-top:0}
.profile-photo-pair .teacher-photo img{width:100%;height:auto;aspect-ratio:auto!important;object-fit:contain;object-position:center}

/* Show both full-length portraits at their matching natural proportions. */
.profile-photo-pair .profile-photo:first-child img{width:100%;height:auto;aspect-ratio:auto!important;object-fit:contain;object-position:center}

/* Phone screens display two masked guests per row, regardless of pointer type. */
@media(max-width:760px){.masked-guests{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:761px){.masked-guests{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Soften the trial-session invitation to match its pale green cloud. */
.offer-section .mini-offer .offer-eyebrow{color:#589e7a;box-shadow:inset 0 -.26em #e4f8ed}

/* Match both profile photos to the event portrait and align their edges. */
.profile-photo-pair{align-items:start}
.profile-photo-pair .profile-photo img,
.profile-photo-pair .teacher-photo img,
.profile-photo-pair .profile-photo:first-child img{width:100%;height:auto;aspect-ratio:1025/1534!important;object-fit:cover;object-position:center}
.profile-photo-pair .profile-photo figcaption{min-height:4.2em}

/* Keep the opening concern copy dominant on phones. */
@media(max-width:760px){#s0 .portrait-photo{width:min(66%,240px);max-width:none;margin-inline:auto}#s0 .portrait-photo img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 46%;max-height:none}}

/* A gentler green for the mini-session heading. */
.offer-section .mini-offer .offer-eyebrow{color:#6eaa88}

/* Keep the earlier PC line breaks, and use separate copy layout on phones. */
.desktop-copy{display:contents}
.phone-copy{display:none}
@media(max-width:760px){
  .desktop-copy{display:none}
  .phone-copy{display:contents}
  #s3 h2{transform:none!important;text-align:center}
  #reading-examples h2{transform:none!important;text-align:center}
}

/* Let the five voices read as distinct Soaris color notes on every screen. */
  .testimonials-section{background:#fff}
  .testimonial-card:nth-child(1){background:#fff0f7;border-color:#e69abe}
  .testimonial-card:nth-child(2){background:#f4efff;border-color:#b7a0e6}
  .testimonial-card:nth-child(3){background:#e9f7ef;border-color:#8fcbb0}
  .testimonial-card:nth-child(4){background:#fff0ed;border-color:#eba69f}
  .testimonial-card:nth-child(5){background:#eaf4ff;border-color:#91bce7}
  .testimonial-card:nth-child(1)::after{border-color:#e69abe}
  .testimonial-card:nth-child(2)::after{border-color:#b7a0e6}
  .testimonial-card:nth-child(3)::after{border-color:#8fcbb0}
  .testimonial-card:nth-child(4)::after{border-color:#eba69f}
  .testimonial-card:nth-child(5)::after{border-color:#91bce7}

@media(max-width:760px){
  #s3 h2{transform:translateX(.55em)!important;text-align:center}
  .mandala-word{display:inline-block;color:#d12b78;font-weight:900;text-decoration:underline wavy #e96cac;text-underline-offset:.22em}
  .smile-mark{display:inline-block;font-size:.75em;vertical-align:middle;white-space:nowrap}
}

.pink-heart{display:inline-block;color:#f23f9a;font-family:Arial,sans-serif;font-size:1.18em;line-height:1;text-shadow:0 2px 0 #ffc7df,0 0 7px #ffc4e2;vertical-align:-.04em;margin-left:.12em}

/* Introduce the cards first, then explain the collaborative reading. */
#s2 .reading-subheading{font-family:"Zen Maru Gothic",ui-rounded,"Yu Gothic",sans-serif;font-size:clamp(1.45rem,2vw,1.9rem);line-height:1.55;color:#cf2c78;text-align:center;margin:2rem 0 1.6rem}
#s0 .portrait-photo img{object-position:center 42%}
.face-guests .voice-item:first-child .voice-photo img{object-position:center 43%;transform:none}
.masked-guests .voice-moved .voice-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;transform:none}

@media(max-width:760px){
  #s2 h2{font-size:clamp(1.35rem,5.6vw,1.75rem)}
  #s2 .prose{display:flex;flex-direction:column;gap:0;align-items:center}
  #s2 .card-photo-stack,#s2 .text-side,#s2 .text-side>.meaning-block:first-child{display:contents}
  #s2 .card-photo-stack .card-photo{width:min(100%,430px);margin:0 auto 24px}
  #s2 .card-photo-stack .card-photo:first-child{order:1}
  #s2 .text-side>.meaning-block:first-child>p:first-child{order:2;margin:0 auto 32px}
  #s2 .card-photo-stack .card-photo:nth-child(2){order:3}
  #s2 .text-side>.meaning-block:first-child>p:nth-child(2){order:4;margin:0 auto 24px}
  #s2 .reading-subheading{order:5;margin:3rem auto 2rem;max-width:22ch}
  #s2 .text-side>.meaning-block:nth-of-type(2){order:6;margin:0 auto}
  #s2 .text-side>.meaning-block:nth-of-type(3){order:7;margin:2rem auto 0}
  #s2 .text-side>.meaning-block:nth-of-type(4){order:8;margin:2rem auto 0}
  .face-guests .voice-item:first-child .voice-photo img{object-position:center 43%;transform:none}
}

/* The visit flows from choosing cards to the next step, then into the profile. */
#s3{background:#eaf8f2!important}
.ending-section{background:linear-gradient(150deg,#fff9df,#fff1cf 58%,#ffebd9)}
.testimonials-section{background:#fff}

/* Match the other portrait frames, then crop the empty ceiling and table. */
.masked-guests .voice-moved .voice-photo,
.masked-guests .voice-item:nth-child(2) .voice-photo{
  display:block;
  aspect-ratio:2/3!important;
  overflow:hidden;
}
.guests-together .masked-guests .voice-item.voice-moved .voice-photo img{
  position:static;
  width:100%;
  height:auto;
  max-width:none;
  aspect-ratio:2/3;
  object-fit:cover;
  object-position:center 35%;
  transform:translateX(-5%) scale(1.2);
}
.guests-together .masked-guests .voice-item:nth-child(2) .voice-photo img[src="gallery-mask-1.webp"]{
  position:static;
  width:100%;
  height:auto;
  max-width:none;
  aspect-ratio:2/3;
  object-fit:cover;
  object-position:center 40%;
  transform:scale(1);
}
.masked-guests img[src="gallery-mask-2.webp"]{
  object-position:center 23%;
  transform:translateX(2%) scale(1.01);
}

/* On phones, show the card selection photos before the outcome and next step. */
@media(max-width:760px){
  #s3 .two-photo-column{order:1}
  #s3 .text-side{order:2}
}

/* Trim a little empty wall above the two guests while retaining both books. */
.face-guests .voice-duo .voice-photo img{
  transform:scale(1.06);
  transform-origin:center bottom;
}

/* Give the three face-visible photos the same visual weight as the row below on desktop. */
@media(min-width:761px){
  .face-guests{max-width:1060px}
  .face-guests .voice-item:not(.voice-duo) .voice-photo{aspect-ratio:3/4!important}
  .face-guests .voice-duo .voice-photo{aspect-ratio:3/2!important}
}

#s0 .goodness-emphasis{
  font-weight:900;
  color:#b42a68;
  text-decoration-line:underline;
  text-decoration-style:wavy;
  text-decoration-color:#e78caf;
  text-decoration-thickness:1.5px;
  text-underline-offset:.22em;
}

/* Keep the swapped guest photos framed within the existing portrait slots. */
.guests-together .face-guests .voice-item:first-child .voice-photo img[src="gallery-face-new-woman.jpg"]{
  object-position:center 35%;
  transform:translateX(-5%) scale(1.2);
}
.guests-together .masked-guests .voice-item:first-child .voice-photo img[src="gallery-face-1.webp"]{
  width:100%;
  height:100%;
  max-width:none;
  aspect-ratio:auto;
  object-fit:cover;
  object-position:center 35%;
  transform:translateY(-12%) scale(1.3);
  transform-origin:center center;
}

/* Phone gallery: two portraits side by side, with the pair below at full width. */
@media(max-width:520px){
  .face-guests{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .face-guests .voice-item:not(.voice-duo) .voice-photo{
    width:100%;
    aspect-ratio:2/3!important;
  }
  .face-guests .voice-duo{grid-column:1/-1}
}
