:root{--paper:#fcf6fb;--ink:#55204a;--text:#65465c;--accent:#8c245e;--soft:#f3deed;--line:#dfbdd4;--white:#fff9fe;--serif:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif CJK JP",serif;--sans:"Hiragino Sans","Yu Gothic","Meiryo","Noto Sans CJK JP",sans-serif;--wrap:min(1268px,88%);color-scheme:light}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--text);font:16px/1.9 var(--sans);overflow-wrap:anywhere}img,svg{display:block;max-width:100%}img{height:auto}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{font:inherit}h1,h2,h3{color:var(--ink);font-family:var(--serif);line-height:1.48;margin:0;font-weight:600}h1{font-size:clamp(2.4rem,5vw,4.25rem);letter-spacing:.045em;font-weight:500}h2{font-size:clamp(1.65rem,3vw,2.45rem);letter-spacing:.035em}h3{font-size:clamp(1.15rem,1.9vw,1.6rem)}p{margin:0}p+p{margin-top:.75rem}.wrap{width:var(--wrap);margin-inline:auto}.skip{position:absolute;z-index:10;top:0;left:12px;background:white;color:var(--ink);padding:.5rem 1rem;transform:translateY(-150%)}.skip:focus{transform:none}.header{background:var(--paper);position:relative;z-index:3}.head{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.55rem;color:var(--ink);flex-shrink:0}.brand img{width:43px}.brand-name{font:34px/.96 Baskerville,Georgia,serif;letter-spacing:-.035em}.brand-caption{font:10px/1.5 var(--sans);letter-spacing:.085em;margin-top:.34rem;display:block}.nav{display:flex;align-items:center;gap:clamp(.8rem,2.5vw,2.5rem);font-size:.86rem;font-weight:600;color:var(--ink)}.nav-item{position:relative;padding:8px 0;white-space:nowrap}.nav-item:hover,.nav-item[aria-current]{color:var(--accent)}.nav-item[aria-current]::after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:1px;background:currentColor}.nav-toggle{display:none}.crumb{border-top:1px solid var(--line);display:flex;align-items:center;flex-wrap:wrap;gap:.8rem;min-height:55px;font-size:.82rem}.crumb a:hover{text-decoration:underline}.crumb strong{color:var(--ink)}.button{display:inline-flex;min-height:49px;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1.05rem;border:1px solid transparent;background:var(--accent);color:white;border-radius:4px;font-size:.86rem;font-weight:650;line-height:1.5;transition:background-color .18s,color .18s;max-width:100%}.button:hover{background:#641741}.button.ghost{background:transparent;color:var(--ink);border-color:#b2739d}.button.ghost:hover{background:#f8e7f3}.button.light{color:var(--ink);background:var(--soft)}.button.light:hover{background:white}.nav .button{min-height:43px;white-space:nowrap}.arrow{font-size:1.1em;line-height:1;flex-shrink:0}.textlink{color:var(--accent);font-size:.89rem;font-weight:650;display:inline-flex;align-items:center;gap:.65rem;width:fit-content;min-height:36px}.textlink:hover{text-decoration:underline;text-underline-offset:4px}.hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(115deg,#fff2fc 8%,#f7e0f0 55%,#d19ac6 100%)}.hero::before{content:"";position:absolute;z-index:-1;inset:-68% -9% 11% -35%;border:1px solid #fff8;border-radius:50%;transform:rotate(-12deg);pointer-events:none}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,6rem);align-items:center;padding-block:clamp(3.1rem,6.2vw,6.7rem);min-height:clamp(440px,42vw,650px)}.hero.reverse .art{order:-1}.hero-copy{position:relative}.eyebrow{color:var(--accent);font-weight:650;font-size:.84rem;letter-spacing:.08em;margin-bottom:.7rem}.en{font:italic clamp(1.25rem,2.4vw,1.85rem)/1.25 Baskerville,Georgia,serif;color:var(--accent);margin-bottom:.9rem}.hero-copy .intro{margin:1.35rem 0 1.55rem;max-width:34em}.hero-copy .tagline{font:clamp(1.25rem,2vw,1.9rem)/1.7 var(--serif);color:var(--ink);margin-top:1rem}.hero-copy .availability{font-size:.82rem;margin-top:1rem}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem .9rem}.art{position:relative;min-width:0;isolation:isolate}.art img,.art .symbol{width:100%;aspect-ratio:1.26;object-fit:cover;border-radius:27%;background:#e7c1de}.art.moon img{object-position:90% 49%}.art::before,.art::after{content:"";position:absolute;pointer-events:none;z-index:-1;border:1px solid #fff9;inset:-11px;border-radius:28%}.art::after{inset:-22px;border-color:#fff6}.star{position:absolute;right:-12px;top:16%;color:white;font:26px/1 Georgia,serif;pointer-events:none}.star.second{top:auto;right:auto;left:-13px;bottom:21%;font-size:33px}.symbol{position:relative;display:grid;place-items:center;background:linear-gradient(135deg,#f9e6f4,#c984b6)!important}.symbol::before,.symbol::after{content:"";position:absolute;width:56%;aspect-ratio:1;border:1px solid #fce7fa;border-radius:50%}.symbol::after{width:67%;opacity:.65}.symbol .lotus-mark{width:30%;position:relative;z-index:1}.section{padding-block:clamp(3.4rem,7vw,7rem)}.section.compact{padding-block:clamp(2.8rem,5.3vw,5.2rem)}.section+.section.contiguous{padding-top:0}.section-title{margin-bottom:clamp(1.45rem,3.5vw,2.8rem)}.section-title p{margin-top:.55rem}.center{text-align:center}.center p{max-width:58ch;margin-inline:auto}.band{background:var(--soft)}.band .lotus-mark{width:56px;margin:0 auto .9rem}.lotus-mark{width:43px;height:auto}.cards,.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.75rem,2.4vw,1.8rem)}.cards.two,.grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.2rem,4vw,3.5rem)}.card{background:var(--soft);border-radius:5px;padding:clamp(1.1rem,3vw,2rem);display:flex;flex-direction:column;align-items:flex-start}.card h3{margin-bottom:.55rem}.card p{margin-bottom:1rem}.card .textlink{margin-top:auto}.card .lotus-mark{margin-bottom:.55rem}.cards.ruled .card,.steps .card{background:transparent;border-top:1px solid var(--line);border-radius:0;padding:1.3rem 0 0}.steps .n{font:1.28rem Baskerville,Georgia,serif;color:var(--accent);background:var(--soft);border-radius:50%;display:grid;place-items:center;width:36px;height:36px;margin-bottom:.7rem}.band .steps .n{background:var(--paper)}.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,5vw,5rem);align-items:center}.feature img{width:100%;aspect-ratio:1.62;object-fit:cover;border-radius:6px}.feature .copy p{margin-top:1rem;max-width:42em}.feature .copy .actions{margin-top:1.2rem}.feature .logo-panel{height:100%}.rule-top{border-top:1px solid var(--line)}.callout{background:var(--soft);border-radius:5px;padding:clamp(1.3rem,3vw,2.5rem);display:flex;justify-content:space-between;align-items:center;gap:1.25rem}.callout h2,.callout h3{margin-bottom:.35rem}.callout .button{flex:none}.logo-panel{display:grid;place-content:center;text-align:center;justify-items:center;gap:.5rem;padding:2.1rem;background:var(--soft);color:var(--ink);border-radius:5px;min-height:250px}.logo-panel .lotus-mark{width:95px}.logo-panel strong{font:clamp(2rem,4vw,3.6rem)/1.2 Baskerville,Georgia,serif}.logo-panel p{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--line);width:100%;font:1.05rem/1.75 var(--serif)}.faq{border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line);padding:.65rem 0}.faq summary{cursor:pointer;color:var(--ink);font-weight:650;list-style:none;display:flex;align-items:center;gap:.8rem;min-height:38px}.faq summary::-webkit-details-marker{display:none}.faq summary::before{content:"Q";font:1.55rem Baskerville,Georgia,serif;color:var(--accent)}.faq summary::after{content:"＋";margin-left:auto;color:var(--accent);padding:0 .3rem}.faq details[open] summary::after{content:"−"}.faq details p{padding:.35rem 1.9rem .65rem}.ending{background:#742557;color:#fff1fa;padding:clamp(2.3rem,5vw,4rem) 0}.ending h2{color:#fff6fc;font-size:clamp(1.45rem,2.8vw,2.25rem);margin-bottom:.45rem}.ending .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.3rem}.footer .wrap{min-height:88px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.85rem;padding-block:1rem}.footer .brand-name{font-size:27px}.footer .brand img{width:32px}.footlinks{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.84rem;color:var(--ink)}.footlinks a:hover{text-decoration:underline}.price-feature{display:grid;grid-template-columns:1.65fr 1fr;gap:clamp(1.2rem,5vw,5rem);align-items:center}.price-feature p{margin-top:.75rem}.price-box,.price{padding:1rem 1.35rem;background:var(--soft);border-radius:5px;color:var(--ink)}.price-box .eyebrow{margin-bottom:.3rem}.prices{font:600 clamp(1.1rem,2.1vw,1.48rem)/1.62 var(--serif);white-space:nowrap;font-variant-numeric:tabular-nums}.fee-list{border-top:1px solid var(--line)}.fee-row{display:grid;grid-template-columns:8.4rem 1fr minmax(185px,22%);align-items:center;gap:1.25rem;border-bottom:1px solid var(--line);padding:1rem 0}.fee-row h3{margin-bottom:.25rem}.fee-row p{font-size:.94rem}.fee-row .eyebrow{align-self:start;margin-top:.18rem}.fee-row .price{text-align:center}.note{font-size:.86rem;margin-top:1rem}.listing{border-top:1px solid var(--line)}.list-row{display:grid;grid-template-columns:8rem minmax(0,1fr) auto;gap:1.2rem;align-items:start;border-bottom:1px solid var(--line);padding:1.15rem 0}.list-row h3{margin-bottom:.25rem}.list-row p{font-size:.94rem}.list-row .eyebrow{padding-top:.25rem;margin-bottom:0}.list-row .textlink{white-space:nowrap}.timeline{list-style:none;margin:0;padding:0 0 0 1.5rem;border-left:1px solid var(--line)}.timeline li{position:relative;padding:0 0 1.9rem}.timeline li:last-child{padding-bottom:0}.timeline li::before{content:"";position:absolute;top:.6rem;left:calc(-1.5rem - 4px);width:7px;height:7px;background:var(--accent);border-radius:100%;box-shadow:0 0 0 3px var(--soft)}.timeline h3{margin:.1rem 0 .3rem}.timeline .eyebrow{margin:0}.line-panel{background:var(--soft);display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:2rem;padding:clamp(1.35rem,4vw,3rem);border-radius:6px}.line-panel h3{margin-bottom:.6rem}.line-panel p{margin-bottom:1rem}.line-panel img{width:180px}.line-panel .line-id{font-weight:650;color:var(--ink)}.line-panel figure{margin:0}.line-panel figcaption{text-align:center;font-size:.74rem;margin-top:.25rem}.example{background:var(--soft);padding:clamp(1.35rem,4vw,2.5rem);border-radius:5px}.example ul{padding-left:1.3rem;margin:.5rem 0 0}.example h3{margin-bottom:.4rem}.example .example-side{border-left:1px solid var(--line);padding-left:1.5rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
@media(max-width:960px){.nav{gap:.85rem;font-size:.8rem}.nav .button{padding-inline:.7rem}.brand-name{font-size:30px}.hero-grid{gap:2.8rem}.fee-row{grid-template-columns:1fr minmax(160px,27%);gap:.4rem 1.25rem}.fee-row .eyebrow{grid-column:1;margin-bottom:0}.fee-row .price{grid-column:2;grid-row:span 2}.list-row{grid-template-columns:6rem minmax(0,1fr) auto;gap:.85rem}}
@media(max-width:860px){:root{--wrap:calc(100% - 36px)}body{font-size:.95rem}.head{min-height:69px}.brand img{width:34px}.brand-name{font-size:28px}.brand-caption{font-size:9px}.nav-toggle{display:inline-flex;align-items:center;gap:.5rem;justify-content:center;min-height:44px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink);font-size:.84rem;padding:.3rem .7rem;cursor:pointer}.js .nav:not(.open){display:none}.nav{position:absolute;inset:100% 0 auto;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 12px 24px #55204a10;padding:.55rem 18px 1rem}.nav-item{padding:.7rem .5rem;border-bottom:1px solid var(--line)}.nav-item[aria-current]::after{display:none}.nav .button{margin-top:.7rem}.no-js .head{display:block;padding-top:1rem}.no-js .nav{position:static;padding:0 0 1rem;border:0;box-shadow:none}.no-js .nav-toggle{display:none}.crumb{min-height:45px;font-size:.75rem;gap:.45rem}.hero-grid{grid-template-columns:1fr;gap:2.1rem;padding-block:2.25rem 3.2rem;min-height:0}.hero.reverse .art{order:0}.art{width:min(92%,470px);margin-inline:auto}.art img,.art .symbol{aspect-ratio:1.5;border-radius:23%}.art::before,.art::after{border-radius:24%;inset:-7px}.art::after{inset:-14px}.hero-copy .intro{margin:1rem 0 1.15rem}.hero-copy .tagline{margin-top:.65rem}.section,.section.compact{padding-block:3rem}.cards,.cards.two,.steps,.grid-two,.feature,.price-feature{grid-template-columns:1fr}.cards,.steps{gap:1rem}.section-title{margin-bottom:1.35rem}.card h3{margin-bottom:.3rem}.card p{margin-bottom:.55rem}.cards.ruled .card,.steps .card{padding:.8rem 0 0}.feature img{aspect-ratio:1.48}.feature.reverse img{order:-1}.callout,.ending .wrap{align-items:flex-start;flex-direction:column}.footer .wrap{min-height:0}.logo-panel{min-height:210px}.list-row{grid-template-columns:minmax(0,1fr);gap:.25rem}.list-row .eyebrow{padding-top:0}.list-row .textlink{min-height:30px}.line-panel{gap:1rem;grid-template-columns:minmax(0,1fr) 104px}.line-panel img{width:104px}.line-panel figcaption{font-size:.68rem}.example .example-side{border-left:0;border-top:1px solid var(--line);padding:1rem 0 0}.faq details p{padding-right:.65rem}}
@media(max-width:470px){.fee-row{grid-template-columns:1fr;gap:.4rem}.fee-row .price{grid-column:auto;grid-row:auto;text-align:left;width:fit-content;padding:.45rem .85rem}.fee-row .prices{display:flex;flex-wrap:wrap;gap:.1rem .85rem}.fee-row .prices span{white-space:nowrap}.line-panel{grid-template-columns:1fr}.line-panel img{width:142px}.line-panel figcaption{text-align:left}.actions .button{font-size:.82rem}.section-title p{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
@media (min-width:471px) and (max-width:960px){.fee-row>div:nth-child(2){grid-column:1;grid-row:2}.fee-row>.price{grid-column:2;grid-row:1/span 2}}
.note a{text-decoration:underline;text-underline-offset:.2em}
.hero h1{font-size:clamp(2rem,4.18vw,3.75rem)}
@media(max-width:860px){.hero h1{font-size:clamp(1.68rem,8.6vw,2.35rem)}body:has(.nav .button[aria-current=page]) .hero h1{font-size:clamp(1.6rem,7.6vw,2.2rem)}}
.choice .choice-name{color:var(--ink);font-weight:650;margin:.2rem 0 .55rem}
.choice .choice-meta{border-top:1px solid var(--line);margin-top:auto;padding-top:.8rem;width:100%}
.choice .choice-meta p{font-size:.86rem;margin:0 0 .25rem}
.first-step-link{margin-top:.7rem}

/* Photo crops follow the approved page mockups. */
.art.home img, .art.first img { aspect-ratio: 1.1; }
.art.session img { object-position: 50% 46%; }
.art.portrait img, .feature img[src$="portrait.webp"] { object-position: 50% 20%; }
.art.first img { object-position: 50% 43%; }
.art.booking img { object-position: 50% 77%; }
.feature img[src$="talk.webp"] { object-position: 72% 94%; }
.diagram .feature { grid-template-columns: minmax(180px, 310px) minmax(0, 1fr); }
.diagram .feature img { aspect-ratio: auto; object-fit: contain; }
.service { display: grid; grid-template-columns: minmax(110px, 15%) minmax(0, 1fr); gap: 1rem; padding: clamp(1.35rem, 3.5vw, 2.4rem) 0; border-top: 1px solid var(--line); }
.service:last-of-type { border-bottom: 1px solid var(--line); }
.service h3 { margin-bottom: .6rem; }
.service > .eyebrow { padding-top: .32rem; }
.service .service-meta { width: fit-content; margin-top: .9rem; padding: .3rem .8rem; background: var(--soft); color: var(--accent); border-radius: 4px; font-size: .88rem; font-weight: 650; }
.spread { background: var(--soft); padding: clamp(1rem, 2.7vw, 1.8rem); border-radius: 5px; margin-top: 1.3rem; display: grid; grid-template-columns: 1fr minmax(130px, 23%); align-items: center; gap: 1.4rem; }
.spread h4 { color: var(--ink); margin: 0 0 .35rem; }
.spread ol { padding-left: 1.4rem; margin: 0; }
.spread figure { margin: 0; }
.spread img { border-radius: 4px; }
.spread figcaption { text-align: center; font-size: .8rem; margin-top: .35rem; }
.fee-note { margin-top: .9rem; font-size: .86rem; }
.stats { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.stats div { background: var(--soft); display: flex; flex-direction: column-reverse; gap: .45rem; padding: 1.5rem .65rem; text-align: center; border-radius: 5px; color: var(--ink); }
.stats dd { margin: 0; font-weight: 650; }
.stats strong { font: clamp(2.1rem, 5.5vw, 4.35rem)/1 Baskerville, Georgia, serif; }
.stats dt { font-size: .9rem; }
.line-panel .actions, .channel-cards { margin-top: 1.2rem; }
.hero .intro { white-space: normal; }
.mobile-line { display: none; }
@media (max-width: 860px) {
  html { --mobile-line-space: calc(69px + env(safe-area-inset-bottom, 0px)); scroll-padding-bottom: var(--mobile-line-space); }
  body { padding-bottom: var(--mobile-line-space); }
  .mobile-line {
    display: block;
    position: fixed;
    z-index: 4;
    inset: auto 0 0;
    padding: 9px 0 calc(10px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--line);
    background: var(--paper);
  }
  .mobile-line .button {
    display: flex;
    justify-content: center;
    width: min(var(--wrap), 30rem);
    margin-inline: auto;
    font-size: .94rem;
  }
}
@media (max-width: 860px) {
  .diagram .feature { grid-template-columns: 1fr; }
  .diagram .feature img { width: min(100%, 290px); }
  .art.first img { aspect-ratio: 1.03; }
}
@media (max-width: 520px) {
  .service { grid-template-columns: 1fr; gap: .2rem; }
  .service > .eyebrow { margin-bottom: .1rem; }
  .spread { grid-template-columns: 1fr; }
  .spread figure { width: min(100%, 180px); }
  .stats { grid-template-columns: 1fr; gap: .5rem; }
  .stats div { padding: .8rem .5rem; }
}

.photo-stack { position: relative; aspect-ratio: 1.1; }
.photo-card { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.photo-card.is-front { opacity: 1; z-index: 2; }
.photo-stack img[src$="portrait.webp"] { object-position: 50% 24%; }
.photo-stack img[src$="first.webp"] { object-position: 50% 47%; }
.photo-toggle {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 0;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--paper);
  color: var(--ink);
  min-height: 44px;
  padding: .35rem .75rem;
  font-size: .75rem;
  cursor: pointer;
}
.art.home .star { z-index: 2; }

@media (prefers-reduced-motion: no-preference) {
  .motion-ready .hero .art { animation: lotus-appear .8s cubic-bezier(.22,.61,.36,1) both; }
  .motion-ready .hero-copy > * {
    animation: lotus-rise .7s cubic-bezier(.22,.61,.36,1) var(--entry-delay, .12s) both;
  }
  .hero-copy h1 { --entry-delay: .23s; }
  .hero-copy .intro, .hero-copy .tagline { --entry-delay: .33s; }
  .hero-copy .actions, .hero-copy .availability { --entry-delay: .43s; }
  .motion-ready .hero-copy > :focus-within { animation: none; }

  .photo-card.is-entering { animation: lotus-card .85s cubic-bezier(.22,.61,.36,1) both; }
  .photo-card.is-leaving { z-index: 1; animation: lotus-card-out .85s ease both; }
  .scroll-reveal {
    animation: lotus-rise .72s cubic-bezier(.22,.61,.36,1) var(--reveal-delay, 0ms) both;
  }
  .scroll-reveal:focus-within { animation: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

@keyframes lotus-appear { from { opacity: .1; } to { opacity: 1; } }
@keyframes lotus-rise {
  from { opacity: .15; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes lotus-card {
  from { opacity: 0; transform: translateX(6%) rotate(4deg) scale(.94); }
  to { opacity: 1; transform: translateX(0) rotate(0) scale(1); }
}
@keyframes lotus-card-out {
  from { opacity: 1; transform: translateX(0) rotate(0); }
  to { opacity: 0; transform: translateX(-4%) rotate(-3deg) scale(.97); }
}

@media (min-width: 861px) and (max-width: 1050px) {
  .nav { gap: .6rem; font-size: .8rem; }
  .nav .button { padding-inline: .7rem; gap: .55rem; }
}
