:root {
  --paper: #fffdf9;
  --ink: #353052;
  --muted: #6c6385;
  --violet: #7251cc;
  --pink: #dc5a9c;
  --blue: #4189d9;
  --line: #e0d6f1;
  --serif: "Yu Mincho", "Hiragino Mincho ProN", serif;
  color: var(--ink);
  background: var(--paper);
  font-family: "Hiragino Maru Gothic ProN", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; font-size: 14px; line-height: 1.9; -webkit-font-smoothing: antialiased; }
h1, h2, h3, p { margin: 0; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
a, button { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; height: auto; }
[hidden] { display: none !important; }
::selection { background: #f7d4ec; color: #45316d; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.wrap { width: min(1180px, calc(100% - 96px)); margin-inline: auto; }
.section { padding-block: 100px; }
h1, h2 { font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; }
h2 { font-size: clamp(29px, 3.5vw, 46px); font-weight: 800; line-height: 1.55; letter-spacing: .015em; }
h3 { font-size: 19px; font-weight: 700; line-height: 1.65; }
.small { font-size: 11px; color: var(--muted); line-height: 1.9; }
.eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .055em; }
.pink-word { color: var(--pink); }
.button {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  border: 2px solid #fff;
  border-radius: 50px;
  padding: 16px 26px;
  background: linear-gradient(115deg, #7251cc, #9961cd);
  color: white;
  box-shadow: 0 5px 0 #5b3da2, 0 12px 26px #7651cc20;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
  transition: transform .25s, box-shadow .25s;
}
.button:hover { transform: translateY(-4px); box-shadow: 0 8px 0 #5b3da2, 0 17px 28px #7651cc28; }
.button:active { transform: translateY(3px); box-shadow: 0 1px 0 #5b3da2; }
.button span { font-size: 23px; line-height: 1; }
.button .button-label, .pose-button .button-label { font: inherit; }

.skip-link { position: fixed; top: 10px; left: 10px; z-index: 100; padding: 12px 20px; background: white; transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.page-loader { display: none; position: fixed; inset: 0; z-index: 90; place-items: center; background: radial-gradient(ellipse at 50% 45%, #f0e4fa, #fffaf5 65%); pointer-events: none; opacity: 1; transition: opacity .24s ease; }
.has-loader .page-loader { display: grid; }
.page-loader.is-leaving { opacity: 0; }
.loader-card { width: min(300px, 85vw); text-align: center; }
.loader-art { position: relative; display: grid; place-items: center; width: 210px; height: 210px; margin: 0 auto 16px; }
.loader-halo { position: absolute; inset: 14px; border: 1px dashed #cfb9e5; border-radius: 50%; background: #fffafc9c; }
.loader-portrait { position: relative; width: 180px; }
.loader-flower { position: absolute; width: 35px; color: #c5a6df; }
.loader-flower svg { display: block; width: 100%; height: 100%; }
.flower-left { left: -4px; top: 42px; transform: rotate(-16deg); color: #e9a1c6; }
.flower-right { right: -3px; bottom: 38px; transform: rotate(15deg); }
.loader-card > p { font-size: 13px; letter-spacing: .13em; color: #785e91; }
.loader-blooms { display: flex; justify-content: center; gap: 12px; margin-top: 14px; }
.loader-blooms svg { width: 16px; height: 16px; color: #bb99da; }
.loader-blooms svg:nth-child(2) { color: #e6a0c8; }
.loader-blooms svg:nth-child(3) { color: #9dbfdc; }
body[data-motion="running"] .loader-portrait { animation: loader-hop 1.2s ease-in-out infinite; }
body[data-motion="running"] .loader-halo { animation: ring-turn 18s linear infinite; }
body[data-motion="running"] .loader-flower { animation: sparkle-float 2s ease-in-out infinite; }
body[data-motion="running"] .loader-blooms svg { animation: loader-bloom 1.1s ease-in-out infinite; }
body[data-motion="running"] .loader-blooms svg:nth-child(2) { animation-delay: .16s; }
body[data-motion="running"] .loader-blooms svg:nth-child(3) { animation-delay: .32s; }
@keyframes loader-hop { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-9px) rotate(2deg); } }
@keyframes loader-bloom { 0%, 100% { opacity: .45; transform: scale(.65); } 50% { opacity: 1; transform: scale(1); } }
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 14px max(28px, calc((100vw - 1280px) / 2));
  border-bottom: 1px solid #e7def2;
  background: #fffcfff2;
  backdrop-filter: blur(12px);
}
.brand { display: block; flex-shrink: 0; }

.brand > span { font-size: 20px; font-weight: 800; letter-spacing: .025em; line-height: 1.45; }
.brand small { display: block; color: var(--violet); font: 9px/1.8 Arial, sans-serif; letter-spacing: .19em; }
#site-nav { display: flex; align-items: center; gap: 25px; font-size: 11px; font-weight: 700; }
#site-nav a { padding-block: 10px; }
#site-nav a:hover { color: var(--pink); }
#site-nav .nav-contact { display: flex; align-items: center; gap: 20px; border: 1px solid #e2d2f0; background: #f3eafb; border-radius: 40px; padding: 10px 18px; }
.menu-toggle, .header-cta { display: none; }
.motif-defs { position: absolute; pointer-events: none; }
.effect-controls svg, .burst-button svg, .scene-spark svg, .burst-particle svg { display: block; width: 1em; height: 1em; }
.burst-button > span { font-size: 26px; }
.hero-shell {
  position: relative;
  isolation: isolate;
  overflow: clip;
  background: #fffbf4;
}
.hero-art { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hero-main-image { width: 100%; height: 100%; object-fit: cover; object-position: 62% 38%; }
.hero-shell::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #fffdf6fa 0%, #fffaf4ed 27%, #fffaf4a6 43%, #fffaf421 62%, transparent 78%); }
.hero { display: flex; align-items: center; min-height: 770px; padding-block: 40px; }
.hero-copy { position: relative; z-index: 3; width: min(570px, 50%); }
.hero .eyebrow { display: flex; align-items: center; gap: 9px; font-size: 11px; }
.eyebrow-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--pink); box-shadow: 0 0 0 5px #f8d9ef; }
.hero-logo { width: 330px; margin-block: 14px 18px; }
.hero h1 { font-size: clamp(35px, 3.9vw, 54px); font-weight: 800; letter-spacing: -.025em; line-height: 1.5; }
.hero-title-end { font-size: .79em; letter-spacing: -.04em; }
.hero-lead { margin-top: 20px; color: #615077; font-size: 13px; line-height: 2.15; }
.hero-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; margin-top: 26px; }
.hero-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 9px; margin-top: 30px; font-size: 12px; }
.hero-price strong { color: var(--violet); font: 700 33px/1.2 Arial, sans-serif; letter-spacing: -.04em; }
.price-caption { flex-basis: 100%; font-size: 10px; }
.preparation { display: flex; flex-wrap: wrap; gap: 0 .4em; margin-top: 6px; font-size: 10px; }
.preparation span { white-space: nowrap; }
.hero-image-caption { position: absolute; right: max(28px, calc((100vw - 1180px) / 2)); bottom: 32px; display: grid; gap: 2px; border: 1px solid #ffffffb3; border-radius: 14px; padding: 10px 18px; background: #ffffffdb; color: #594068; backdrop-filter: blur(8px); }
.hero-image-caption span { font-size: 9px; }
.hero-image-caption strong { font-size: 14px; }

.motion-toggle { position: fixed; right: 18px; bottom: 18px; z-index: 40; box-shadow: 0 4px 18px #71519318; backdrop-filter: blur(8px); display: flex; align-items: center; gap: 8px; padding: 7px 12px; border: 1px solid #cdbde1; border-radius: 25px; background: #fffafef0; font-size: 10px; }
.motion-indicator { width: 6px; height: 6px; border-radius: 50%; background: var(--violet); }
.motion-toggle[aria-pressed="false"] .motion-indicator { background: #aaa1b8; }
.petal-field { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.petal-field i { position: absolute; top: -50px; left: 4%; width: 14px; height: 24px; border-radius: 90% 10% 85% 15%; background: #f2bbdb; opacity: .6; transform: rotate(30deg); }
.petal-field i:nth-child(2) { left: 18%; animation-delay: -7s !important; background: #c3b2f1; }
.petal-field i:nth-child(3) { left: 35%; animation-delay: -4s !important; width: 10px; height: 17px; }
.petal-field i:nth-child(4) { left: 46%; animation-delay: -11s !important; background: #a9d9c9; }
.petal-field i:nth-child(5) { left: 59%; animation-delay: -2s !important; }
.petal-field i:nth-child(6) { left: 72%; animation-delay: -9s !important; background: #c3b2f1; }
.petal-field i:nth-child(7) { left: 84%; animation-delay: -5s !important; background: #a9d9c9; width: 10px; height: 16px; }
.petal-field i:nth-child(8) { left: 94%; animation-delay: -13s !important; }
.section-label { display: flex; align-items: center; justify-content: space-between; gap: 24px; color: var(--muted); font-size: 10px; margin-bottom: 35px; }
.section-label > span:first-child { color: var(--violet); font: 12px/1.8 Georgia, serif; letter-spacing: .07em; }
.section-label > span:first-child::before { content: "✿"; color: var(--pink); margin-right: 10px; font-size: 18px; vertical-align: middle; }
.playground-grid { display: grid; grid-template-columns: .86fr 1.14fr; gap: 70px; align-items: center; }
.tiny-tag { display: inline-block; font-size: 11px; background: #f6eafa; color: #ac548a; border-radius: 5px; padding: 3px 10px; margin-bottom: 18px; transform: rotate(-3deg); }
.playground-copy > p:not(.tiny-tag):not(.small) { font-size: 13px; color: var(--muted); margin-top: 22px; line-height: 2.1; }
.effect-controls { display: flex; flex-wrap: wrap; gap: 8px; margin-block: 25px 18px; }
.effect-controls button { display: flex; align-items: center; gap: 8px; border: 1px solid #dbcce9; background: white; padding: 8px 16px; border-radius: 30px; font-size: 12px; }
.effect-controls button > span { font-size: 20px; line-height: 1.2; }
.effect-controls button[aria-pressed="true"] { border-color: var(--violet); color: var(--violet); background: #f4eefa; box-shadow: 0 0 0 1px var(--violet); }
.burst-button { min-width: 230px; }
.effect-status { min-height: 24px; margin-top: 14px; }
.playground-note { margin-top: 14px; max-width: 330px; }
.effect-stage { position: relative; padding-block: 16px; perspective: 1000px; }
.play-window { position: relative; border: 2px solid white; border-radius: 22px; box-shadow: 0 20px 50px #70549520, 0 0 0 1px #dfd1f0; background: #fffaff; transform: rotate(-3deg) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)); transition: transform .35s; }
.play-window-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 20px; border-bottom: 1px solid #e7daf0; font-size: 8px; letter-spacing: .1em; color: var(--muted); }
.play-window-bar > span:first-child { color: #d3b9ee; font-size: 9px; }
.play-window-bar > span:last-child { color: var(--pink); font-size: 16px; }
.play-scene { position: relative; isolation: isolate; min-height: 385px; display: grid; place-items: center; overflow: hidden; background: radial-gradient(ellipse at 50% 50%, #fffafd 18%, #f4e9ff 78%); transition: background .4s; }
.scene-character { position: relative; z-index: 2; width: 330px; margin-block: 20px; }
.scene-orbit { position: absolute; width: 80%; aspect-ratio: 1; max-width: 380px; border: 1px dashed #c3a9e5; border-radius: 50%; }
.scene-spark { position: absolute; z-index: 3; color: #b896e3; font-size: 48px; }
.scene-spark-one { top: 20px; right: 26px; }
.scene-spark-two { bottom: 28px; left: 35px; font-size: 32px; color: #eb98c3; }
.scene-tag { position: absolute; z-index: 3; background: #fffdfbe8; border: 1px solid white; border-radius: 9px; box-shadow: 0 5px 20px #8761b415; padding: 9px 15px; font: 700 11px/1.6 Arial, sans-serif; letter-spacing: .1em; color: #8561a7; }
.tag-profile { left: 20px; top: 60px; transform: rotate(-12deg); }
.tag-stream { right: 17px; top: 165px; transform: rotate(12deg); background: #faeffff2; }
.tag-works { left: 50px; bottom: 34px; transform: rotate(6deg); background: #eefafff2; }
.play-window-bottom { display: flex; align-items: center; justify-content: space-between; padding: 12px 20px; border-top: 1px solid #e7daf0; font: italic 12px/1.5 Georgia, serif; color: var(--muted); }
.play-window-bottom > span:last-child { color: var(--pink); font-size: 20px; }
.play-sticker { position: absolute; z-index: 5; bottom: -4px; right: -10px; padding: 9px 19px; border: 3px solid white; border-radius: 6px; background: #e5f5ff; color: #5675aa; font: italic 17px/1.5 Georgia, serif; transform: rotate(5deg); box-shadow: 0 6px 0 #d3e2f6; }
.effect-stage[data-effect="star"] .play-scene { background: radial-gradient(ellipse at center, #d6eaff, #e7e0ff); }
.effect-stage[data-effect="ribbon"] .play-scene { background: radial-gradient(ellipse at center, #fff5f9, #ffe0ee); }
.burst-layer { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.scene-touch { position: absolute; inset: 0; z-index: 5; border: 0; background: transparent; border-radius: 0; }
.scene-touch > span { position: absolute; right: 16px; bottom: 16px; padding: 4px 10px; border: 1px solid #fff; border-radius: 20px; color: #926fa7; background: #ffffffd9; font-size: 9px; }
.scene-touch:hover > span { background: #fff; color: var(--violet); }
.scene-touch:focus-visible { outline-offset: -5px; }
.burst-particle { position: absolute; left: 50%; top: 50%; line-height: 1; color: var(--particle-color); font-size: var(--particle-size); }
.world-banner { padding: 7px; border: 1px solid #dfceb1; border-radius: 24px; overflow: hidden; background: #fffdf9; box-shadow: 0 18px 46px #957eaf12; margin-bottom: 65px; }
.world-banner img { width: 100%; border-radius: 17px; }
.about { border-top: 1px solid var(--line); }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.about-grid h2 { font-size: clamp(26px, 3.1vw, 43px); }
.about-intro { color: var(--violet); font-size: 17px; line-height: 2; margin-top: 22px; }
.about-copy { color: var(--muted); font-size: 13px; line-height: 2.15; }
.about-copy > p + p { margin-top: 20px; }
.botanical-note { display: flex; align-items: center; gap: 15px; color: var(--violet); font-size: 12px; }
.guide-note { position: relative; display: flex; align-items: center; gap: 24px; border: 1px solid #e3d5ee; border-radius: 20px; padding: 25px 30px; margin-top: 45px; background: #f9f2fc; }
.guide-note img { width: 100px; border-radius: 50%; border: 4px solid white; box-shadow: 0 5px 15px #8460b515; flex-shrink: 0; }
.guide-note > div { max-width: 740px; }
.guide-note div > span { font: 10px/1.8 Arial, sans-serif; letter-spacing: .07em; color: var(--violet); }
.guide-note h3 { font-size: 18px; margin-top: 3px; }
.guide-note p { font-size: 12px; color: var(--muted); margin-top: 8px; }
.guide-flower { margin-left: auto; font-size: 65px; color: #d4c1ed; line-height: 1; }
.moments { display: flex; align-items: center; gap: 25px; border-top: 1px solid var(--line); padding-top: 25px; margin-top: 35px; font-size: 11px; }
.moments > p { flex-shrink: 0; color: var(--muted); }
.moments ul { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0; }
.moments li { padding: 5px 14px; border: 1px solid #e1d4ef; border-radius: 30px; background: #fff; }
.gardens { background: #f3effc; border-block: 1px solid var(--line); }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 35px; }
.section-head > p { color: var(--muted); font-size: 12px; }
.garden-picker { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-block: 35px 20px; }
.garden-picker button { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 0 12px; text-align: left; min-height: 75px; padding: 16px 22px; border: 1px solid #d9cbed; border-radius: 14px; background: #fffcff; font-size: 13px; font-weight: 700; transition: transform .25s, background .25s; }
.garden-picker button:hover { transform: translateY(-4px); }
.garden-picker button[aria-selected="true"] { color: white; background: var(--violet); border-color: var(--violet); box-shadow: 0 5px 0 #5c3ca5; }

.garden-picker small {
  grid-column: 2;
  font:
    9px/1.5 Georgia,
    serif;
  letter-spacing: 0.1em;
  opacity: 0.75;
}
.swatch {
  grid-row: span 2;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid #ffffff60;
}
.fantasy-swatch {
  background: linear-gradient(120deg, #767bb1, #24263f);
}
.garden-preview {
  border: 1px solid #cbd2c3;
  border-radius: 18px;
  overflow: hidden;
  background: #fcfbf6;
  margin-top: 22px;
}
.preview-bar {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 22px;
  background: #fdfaff;
  font-size: 10px;
}
.preview-bar > span:first-child {
  font-family: Georgia, serif;
  letter-spacing: 0.08em;
}
.preview-bar > span:last-child {
  font-size: 6px;
  letter-spacing: 0.14em;
  align-self: center;
}
.demo {
  min-height: 430px;
  padding: 30px 42px;
}
.demo-nav {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  font-size: 8px;
  letter-spacing: 0.12em;
}
.demo-nav strong {
  font:
    22px Georgia,
    serif;
}
.demo-kicker {
  font:
    italic 15px/1.8 Georgia,
    serif;
}
.demo h3 {
  font-family: var(--serif);
  font-size: clamp(26px, 3.2vw, 42px);
  font-weight: 500;
  line-height: 1.6;
  margin-block: 14px;
}
.demo-link {
  display: inline-block;
  font-size: 10px;
  padding: 8px 17px;
  border-radius: 30px;
  margin-top: 20px;
}
.cozy-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 35px;
  align-items: center;
  padding-block: 30px 20px;
}
.cozy-layout p:not(.demo-kicker) {
  font-size: 11px;
}
.cozy-demo .demo-link {
  color: white;
}
.cozy-art {
  position: relative;
  display: grid;
  place-items: center;
}
.cozy-orbit {
  position: absolute;
  border-radius: 50%;
  transform: rotate(-15deg);
}
.cozy-sun {
  position: absolute;
  line-height: 1;
}
.cozy-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
}
.cozy-cards > div {
  border-top: 1px solid #d6d7bf;
  padding-top: 18px;
  display: flex;
  flex-direction: column;
}
.cozy-cards small {
  font:
    8px/1.8 Georgia,
    serif;
  letter-spacing: 0.07em;
}
.cozy-cards strong {
  font-size: 15px;
  margin-top: 6px;
}
.cozy-cards span {
  font-size: 9px;
  margin-top: 4px;
}
.preview-description {
  display: grid;
  grid-template-columns: 1fr 2.3fr;
  align-items: center;
  gap: 24px;
  padding: 20px 28px;
  border-top: 1px solid #cbd2c3;
}
.preview-description strong {
  font-size: 12px;
}
.preview-description p {
  font-size: 11px;
  color: var(--muted);
}
.sample-note {
  margin-top: 17px;
  font-size: 10px;
  color: var(--muted);
}
.fantasy-demo {
  position: relative;
  isolation: isolate;
  color: #e8e7ef;
  overflow: hidden;
}
.fantasy-demo .demo-nav {
  position: relative;
  z-index: 2;
}
.fantasy-demo .demo-nav strong {
  font-size: 13px;
  letter-spacing: 0.12em;
}
.fantasy-copy {
  position: relative;
  z-index: 2;
}
.fantasy-demo .demo-kicker {
  font-size: 12px;
  color: #bbb9d6;
}
.fantasy-demo h3 {
  letter-spacing: 0.1em;
}
.fantasy-demo .demo-link {
  border: 1px solid #777d99;
  border-radius: 0;
  letter-spacing: 0.08em;
}
.moon-art {
  position: absolute;
  z-index: 0;
  right: 4%;
  top: 70px;
  width: 350px;
  height: 340px;
}
.moon-disc {
  position: absolute;
  width: 210px;
  height: 210px;
  top: 45px;
  right: 15px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f2edda, #a0a0b8);
  box-shadow: 0 0 70px #cdccd732;
  opacity: 0.7;
}
.moon-disc:after {
  content: "";
  position: absolute;
  inset: 0;
  background: #282c49;
  border-radius: 50%;
  transform: translate(-35px, -26px);
}
.moon-orbit {
  position: absolute;
  inset: 0;
  border: 1px solid #737ba766;
  border-radius: 50%;
  transform: rotate(-33deg) scaleY(0.5);
}
.orbit-two {
  transform: rotate(33deg) scaleY(0.85);
  inset: 35px;
}
.star {
  position: absolute;
  color: #d2d0e0;
}
.star-one {
  top: 0;
  left: 60px;
  font-size: 34px;
}
.star-two {
  right: 0;
  bottom: 50px;
  font-size: 28px;
}
.star-three {
  left: 0;
  bottom: 35px;
  font-size: 16px;
}
.fantasy-bottom {
  display: flex;
  justify-content: space-between;
  border-top: 1px solid #62658266;
  padding-top: 20px;
  font:
    9px/1.8 Georgia,
    serif;
  letter-spacing: 0.05em;
  position: relative;
}
.cool-demo {
  padding: 0;
  display: grid;
  grid-template-columns: 48px 1fr;
  min-height: 450px;
}
.cool-rail {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  text-align: center;
  border-left: 1px solid #a9b3a7;
  font:
    9px/1.6 Arial,
    sans-serif;
  letter-spacing: 0.16em;
  padding-inline: 14px;
}
.cool-main {
  padding: 30px 35px;
}
.cool-demo .demo-nav strong {
  font:
    bold 25px Arial,
    sans-serif;
}
.cool-layout {
  display: grid;
  align-items: center;
  gap: 25px;
}
.cool-demo .demo-kicker {
  font:
    11px/1.8 Arial,
    sans-serif;
  letter-spacing: 0.09em;
}
.cool-demo h3 {
  font-family: inherit;
  font-weight: 700;
  font-size: clamp(26px, 3vw, 40px);
  line-height: 1.65;
}
.cool-layout > div > p:not(.demo-kicker) {
  font-size: 11px;
}
.cool-demo .demo-link {
  border: 1px solid #617166;
  border-radius: 0;
}
.cool-art {
  position: relative;
  border: 1px solid #acb7a7;
  display: grid;
  place-items: center;
}
.cool-art i {
  position: absolute;
  width: 160%;
  height: 35px;
  transform: rotate(-35deg);
  top: 30%;
  left: -25%;
}
.cool-art i + i {
  top: 68%;
  height: 8px;
}
.cool-art > b {
  position: absolute;
  bottom: 12px;
  left: 14px;
  font:
    8px/1.5 Arial,
    sans-serif;
  letter-spacing: 0.1em;
  z-index: 3;
}
.cool-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid #a9b3a7;
}
.cool-bottom > div {
  padding-top: 16px;
  display: flex;
  flex-direction: column;
}
.cool-bottom > div + div {
  border-left: 1px solid #a9b3a7;
  padding-left: 22px;
}
.cool-bottom small {
  font:
    8px/1.7 Arial,
    sans-serif;
  letter-spacing: 0.1em;
}
.cool-bottom strong {
  font-size: 13px;
  margin-top: 8px;
  font-weight: 500;
}
.cozy-swatch { background: linear-gradient(135deg, #d0b4ff, #ffadd9, #92d5fb); }
.cozy-demo { color: #66518b; background: radial-gradient(ellipse at 80% 40%, #ead8ff, transparent 60%), #fff3fb; }
.cozy-demo .demo-nav strong { font: 700 18px/1.5 Arial, sans-serif; letter-spacing: .09em; }
.cozy-demo h3 { font-family: inherit; font-weight: 800; }
.cozy-demo .demo-link { background: #9971cb; box-shadow: 0 4px 0 #7550a4; }
.cozy-art img { position: relative; z-index: 1; }
.cozy-orbit { border: 1px dashed #c7abe3; background: #ffffff5e; width: 92%; height: 90%; }
.cozy-sun { color: #d689b7; right: 3%; top: 8%; font-size: 60px; }
.cozy-cards > div { border-color: #dec9ec; }
.cozy-cards strong { font-family: inherit; font-weight: 700; }
.garden-preview { border-color: #dcccEC; box-shadow: 0 15px 40px #5f3c9010; }
.preview-description { border-color: #e1d4ed; }
.preview-description strong { color: var(--violet); font-weight: 700; }
.preview-bar { color: #776986; }
.fantasy-demo .demo-nav strong { color: #ece7ff; }
.features > h2 { margin-bottom: 35px; }
.feature-list article { display: grid; grid-template-columns: 65px 1fr 140px; align-items: start; gap: 25px; border-top: 1px solid var(--line); padding-block: 32px; }
.feature-number { display: grid; place-items: center; width: 50px; height: 50px; background: #f4eafc; border-radius: 16px; color: #a282c4; font: italic 26px/1 Georgia, serif; transform: rotate(-5deg); }
.feature-list h3 { font-size: 21px; }
.feature-list p { font-size: 12px; color: var(--muted); max-width: 670px; margin-top: 12px; }
.feature-word { font: 11px/1.6 Arial, sans-serif; letter-spacing: .15em; color: var(--violet); text-align: right; padding-top: 9px; }
.plan { background: radial-gradient(ellipse at 80% 20%, #f6ddee, transparent 65%), #f3edfc; }
.plan-grid { display: grid; grid-template-columns: .95fr 1.05fr; align-items: start; gap: 80px; }
.plan-intro > p { font-size: 13px; color: var(--muted); margin-top: 25px; line-height: 2.15; }
.plan-intro > .plan-status { font-size: 11px; padding: 16px 20px; border: 1px solid #e1d3ee; border-radius: 13px; background: #ffffff7a; margin-top: 32px; }
.price-card { position: relative; background: #fffcff; border: 2px solid white; border-radius: 26px; padding: 35px 40px; box-shadow: 0 18px 50px #8763b41a, 0 0 0 1px #decdec; }
.price-card-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; color: var(--violet); font-size: 11px; }
.price-card-head > span:first-child { font: 700 10px/1.8 Arial, sans-serif; letter-spacing: .16em; }
.big-price { color: var(--violet); font: 800 80px/1.3 Arial, sans-serif; letter-spacing: -.065em; margin-top: 12px; }
.tax-note { font-size: 10px; color: var(--muted); }
.included { display: grid; gap: 10px; list-style: none; padding: 24px 0; margin: 22px 0 0; border-top: 1px solid var(--line); font-size: 12px; }
.included li { display: flex; align-items: baseline; gap: 12px; }
.included li::before { content: "✿"; color: var(--pink); }
.price-card .button { width: 100%; margin-top: 3px; font-size: 12px; }
.plan-limits { border-top: 1px solid var(--line); padding-top: 20px; margin-top: 28px; font-size: 10px; color: var(--muted); }
.plan-limits p + p { margin-top: 14px; }
.plan-limits strong { display: block; color: var(--ink); font-weight: 700; margin-bottom: 4px; }
.cost-notes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 35px; margin-top: 55px; padding-top: 32px; border-top: 1px solid #d8c8e8; }
.cost-notes span { font: 10px/1.7 Arial, sans-serif; color: var(--violet); letter-spacing: .08em; }
.cost-notes h3 { font-size: 18px; margin-top: 9px; }
.cost-notes p { font-size: 11px; color: var(--muted); line-height: 2; margin-top: 13px; }
.options { display: grid; grid-template-columns: 1fr 1.5fr; gap: 20px 50px; border-block: 1px solid #d8c8e8; padding-block: 28px; margin-top: 40px; }
.options h3 { font-size: 21px; margin-top: 8px; }
.options > p { font-size: 12px; color: var(--muted); }
.options details { grid-column: 2; }
.options summary { font-size: 12px; }
.options details > p { font-size: 11px; color: var(--muted); padding-top: 12px; }
.flow-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 35px 0 0; padding: 0; list-style: none; }
.flow-list li { position: relative; padding: 25px 20px; border-radius: 20px; border: 1px solid #e6d7f0; background: #fcf8ff; }
.flow-list li:nth-child(even) { background: #fff5fa; border-color: #f0dce9; }
.flow-list li > span { display: block; color: #b090d1; font: italic 36px/1.2 Georgia, serif; }
.flow-list h3 { font-size: 15px; margin-top: 17px; }
.flow-list p { font-size: 11px; color: var(--muted); margin-top: 12px; line-height: 2; }
.flow-note { font-size: 11px; color: var(--muted); margin-top: 24px; }
.faq { display: grid; grid-template-columns: 1fr 2fr; gap: 70px; border-top: 1px solid var(--line); }
.faq h2 { font-size: 32px; margin-top: 10px; }
.faq-list details { border-top: 1px solid var(--line); padding-block: 23px; }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
summary { display: flex; justify-content: space-between; gap: 20px; list-style: none; cursor: pointer; font-size: 13px; line-height: 1.8; }
summary::-webkit-details-marker { display: none; }
summary > span { flex-shrink: 0; color: var(--pink); font-size: 19px; transition: transform .25s; }
details[open] > summary > span { transform: rotate(45deg); }
.faq-list details > p { max-width: 95%; font-size: 12px; color: var(--muted); padding-top: 20px; line-height: 2; }
.contact { overflow: clip; background: radial-gradient(ellipse at 10% 80%, #e0d7ff, transparent 50%), #f6e7f5; border-top: 1px solid #e5d2ee; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 80px; }
.contact-copy { position: relative; }
.contact h2 { font-size: clamp(28px, 3vw, 42px); margin-top: 20px; }
.contact-copy > p:not(.eyebrow) { color: var(--muted); font-size: 12px; margin-top: 24px; }
.contact-address { display: inline-flex; align-items: center; gap: 15px; border-bottom: 1px solid #bca3ce; font: 17px/1.8 Arial, sans-serif; margin-top: 22px; overflow-wrap: anywhere; }
.contact-copy > .small { font-size: 11px !important; }
.contact-character { width: 260px; margin: 30px auto -30px; transform: rotate(-8deg); }
.consultation { position: relative; z-index: 2; background: #fffaff; padding: 30px 34px; border: 2px solid white; border-radius: 22px; box-shadow: 0 12px 40px #8f6cb21a; }
.memo-label { display: flex; justify-content: space-between; align-items: baseline; gap: 15px; font-size: 21px; font-weight: 700; }
.memo-label > span { font-size: 9px; font-weight: 400; color: var(--muted); }
.memo-fields { display: grid; gap: 15px; margin-top: 23px; }
.memo-fields label, .memo-output label { display: block; font-size: 11px; }
.memo-fields input, .memo-fields textarea { display: block; width: 100%; min-height: 45px; padding: 10px 12px; margin-top: 7px; border: 1px solid #ddcfe9; border-radius: 8px; background: #fff; font-size: 16px; line-height: 1.8; }
.memo-fields textarea { resize: vertical; }
.memo-output { margin-top: 23px; }
.memo-output > label { color: var(--muted); font-size: 10px; }
.memo-output > textarea { display: block; width: 100%; min-height: 150px; resize: vertical; margin-top: 6px; padding: 12px; border: 1px solid #e6dcee; border-radius: 8px; background: #f5f0fa; font-size: 12px; line-height: 1.9; }
.copy-button { display: inline-flex; gap: 15px; padding: 8px 0; margin-top: 5px; border: 0; border-bottom: 1px solid #c4aed9; background: transparent; font-size: 11px; }
.copy-status { min-height: 18px; padding-top: 5px; font-size: 10px; color: var(--muted); }
.consultation .button { width: 100%; margin-top: 16px; font-size: 12px; }
.email-note { margin-top: 20px; font-size: 10px; }
.site-footer { padding-bottom: 74px !important; display: grid; grid-template-columns: 1.2fr 1fr auto; align-items: center; gap: 12px 25px; padding-block: 32px; }
.footer-brand { display: flex; align-items: center; gap: 12px; font-size: 19px; font-weight: 800; }
.footer-brand img { width: 72px; }
.footer-brand small { display: block; font: 8px/1.7 Arial, sans-serif; letter-spacing: .15em; color: var(--violet); }
.site-footer p { font-size: 12px; color: var(--muted); }
.site-footer > a:last-of-type { display: flex; gap: 15px; font: 11px/1.8 Arial, sans-serif; }
.site-footer > small { grid-column: 1/-1; text-align: right; font: 9px/1.8 Arial, sans-serif; color: var(--muted); }

body[data-motion="running"] .petal-field i { animation: petal-fall 15s linear infinite; }
body[data-motion="running"] .scene-character { animation: character-float 4.5s ease-in-out infinite; }
body[data-motion="running"] .scene-spark { animation: sparkle-float 5s ease-in-out infinite; }
body[data-motion="running"] .scene-spark-two { animation-delay: -2s; }
body[data-motion="running"] .scene-orbit { animation: ring-turn 40s linear infinite; }
body[data-motion="running"] .cozy-sun { animation: ring-turn 25s linear infinite; }
body[data-motion="running"] .cozy-art img { animation: character-float 6s ease-in-out infinite; }
body[data-motion="running"] .moon-disc { animation: moon-glow 5s ease-in-out infinite; }
body[data-motion="running"] .cool-art i { animation: accent-slide 5s ease-in-out infinite; }
body[data-motion="running"] [data-reveal].reveal-ready { opacity: 0; transform: translateY(28px); transition: opacity .7s, transform .7s; }
body[data-motion="running"] [data-reveal].is-revealed { opacity: 1; transform: none; }
body[data-motion="running"] .garden-preview.is-entering { animation: panel-in .5s ease-out both; }
body[data-motion="running"] .hero-copy { animation: panel-in .7s ease-out both; }
body[data-motion="paused"] *, body[data-motion="paused"] *::before, body[data-motion="paused"] *::after { animation: none !important; transition: none !important; }
body[data-motion="paused"] .play-window { transform: none; }
body[data-motion="paused"] .burst-particle { display: none; }
html:has(body[data-motion="paused"]) { scroll-behavior: auto; }
@keyframes character-float { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-12px) rotate(1deg); } }
@keyframes sparkle-float { 0%, 100% { transform: translateY(0) rotate(-10deg) scale(.94); } 50% { transform: translateY(-12px) rotate(12deg) scale(1.08); } }
@keyframes ring-turn { from { transform: rotate(0); } to { transform: rotate(360deg); } }
@keyframes petal-fall { 0% { transform: translate(0, -35px) rotate(0); } 100% { transform: translate(70px, 860px) rotate(300deg); } }
@keyframes panel-in { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: none; } }
@keyframes moon-glow { 0%, 100% { opacity: .6; } 50% { opacity: .85; } }
@keyframes accent-slide { 0%, 100% { translate: 0; } 50% { translate: 15px -7px; } }

@media (max-width: 1100px) {
  .wrap { width: calc(100% - 72px); }
  #site-nav { gap: 18px; }

  .playground-grid { gap: 45px; }
  .plan-grid, .contact-grid, .about-grid { gap: 50px; }
  .section-head > p { max-width: 44%; }
  .demo { padding: 28px 32px; }
  .cool-demo { padding: 0; }
  .cool-main { padding: 28px 30px; }
  .garden-picker button { padding: 15px; font-size: 12px; }
}
@media (max-width: 900px) {
  .site-header { padding: 13px 28px; }
  .brand > span { font-size: 18px; }

  .js .menu-toggle { display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; gap: 6px; width: 44px; height: 44px; border: 1px solid #ddccec; border-radius: 14px; background: #f7effc; }
  .menu-toggle span { width: 18px; height: 2px; background: var(--violet); transition: transform .25s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .js #site-nav { display: none; position: absolute; top: 100%; inset-inline: 0; padding: 18px 28px 28px; background: #fffcff; border-bottom: 1px solid var(--line); box-shadow: 0 20px 30px #7651bb12; }
  .js #site-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 7px; }
  #site-nav .nav-contact { justify-content: space-between; margin-top: 10px; }
  body:not(.js) .site-header { position: relative; flex-wrap: wrap; }
  body:not(.js) #site-nav { flex-wrap: wrap; gap: 10px 20px; }

  .section { padding-block: 75px; }
  .playground-grid { grid-template-columns: 1fr 1.2fr; gap: 30px; }
  .playground h2 { font-size: 32px; }
  .playground-copy > p:not(.tiny-tag):not(.small) { font-size: 12px; }
  .scene-character { width: 270px; }
  .play-scene { min-height: 330px; }
  .scene-tag { font-size: 9px; padding: 6px 9px; }
  .tag-profile { left: 10px; top: 55px; }
  .tag-stream { right: 10px; }
  .tag-works { left: 22px; bottom: 23px; }
  .scene-spark-one { font-size: 30px; right: 15px; }
  .effect-controls button { padding: 7px 13px; }
  .world-banner { margin-bottom: 45px; }
  .about-grid, .plan-grid, .contact-grid { gap: 35px; }
  .guide-note { padding: 22px; }
  .guide-flower { display: none; }
  .section-head { gap: 30px; }
  .demo { padding: 25px; }
  .cozy-layout, .cool-layout { gap: 25px; }
  .demo-nav { font-size: 7px; }
  .cozy-demo .demo-nav strong { font-size: 15px; }
  .cozy-cards span { font-size: 8px; }
  .moon-art { right: -20px; width: 280px; height: 300px; }
  .moon-disc { width: 175px; height: 175px; }
  .cool-demo { padding: 0; grid-template-columns: 35px 1fr; }
  .cool-rail { padding-inline: 8px; font-size: 8px; }
  .cool-main { padding: 25px; }
  .feature-list article { grid-template-columns: 50px 1fr 100px; gap: 20px; }
  .price-card { padding: 28px; }
  .big-price { font-size: 66px; }
  .cost-notes { gap: 25px; }
  .flow-list { grid-template-columns: repeat(2, 1fr); }
  .faq { grid-template-columns: 1fr 2fr; gap: 35px; }
  .consultation { padding: 25px; }
  .contact-address { font-size: 14px; gap: 10px; }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .site-footer > a:last-of-type { grid-column: 2; justify-content: end; }
}
@media (max-width: 650px) {
  html { scroll-padding-top: 90px; }
  .wrap { width: calc(100% - 40px); }
  .site-header { padding: 11px 20px; }

  .brand > span { font-size: 17px; }
  .brand small { font-size: 8px; }

  .site-header { gap: 10px; }
  .header-cta { display: flex; align-items: center; gap: 5px; margin-left: auto; padding: 7px 10px; border-radius: 30px; background: #f5eafa; color: var(--violet); font-size: 10px; white-space: nowrap; }
  .brand { gap: 8px; }

  .section { padding-block: 60px; }
  h2 { font-size: clamp(26px, 6.7vw, 37px); }
  .section-label { gap: 15px; margin-bottom: 28px; font-size: 9px; }
  .section-label > span:first-child { font-size: 10px; letter-spacing: .02em; }
  .section-label > span:first-child::before { font-size: 15px; margin-right: 6px; }
  .playground-grid { grid-template-columns: 1fr; gap: 35px; }
  .playground-copy { text-align: center; }
  .playground h2 { font-size: 35px; }
  .tiny-tag { margin-bottom: 14px; }
  .playground-copy > p:not(.tiny-tag):not(.small) { font-size: 12px; margin-top: 17px; }
  .effect-controls { justify-content: center; margin-top: 23px; }
  .playground-note { margin-inline: auto; margin-top: 7px; font-size: 10px; }
  .effect-stage { width: min(460px, calc(100% - 12px)); margin-inline: auto; padding-top: 6px; }
  .scene-character { width: 270px; max-width: 88%; }
  .play-scene { min-height: 325px; }
  .play-window-bar { padding: 11px 14px; font-size: 7px; letter-spacing: .05em; }
  .play-window-bottom { padding: 11px 14px; font-size: 11px; }
  .play-sticker { right: -6px; font-size: 14px; padding: 6px 13px; }
  .tag-profile { top: 50px; }
  .scene-spark-two { font-size: 25px; left: 12px; bottom: 50px; }
  .world-banner { padding: 3px; border-radius: 14px; margin-inline: -10px; margin-bottom: 34px; }
  .world-banner img { border-radius: 10px; }
  .about-grid h2 { font-size: clamp(22px, 6.5vw, 32px); }
  .about-grid, .plan-grid, .contact-grid { grid-template-columns: 1fr; gap: 28px; }
  .about-intro { font-size: 15px; margin-top: 20px; }
  .about-copy { font-size: 12px; }
  .botanical-note { gap: 12px; font-size: 11px; }
  .guide-note { align-items: flex-start; gap: 15px; padding: 20px 16px; margin-top: 30px; border-radius: 16px; }
  .guide-note img { width: 62px; border-width: 2px; }
  .guide-note div > span { font-size: 8px; letter-spacing: .025em; }
  .guide-note h3 { font-size: 14px; }
  .guide-note p { font-size: 11px; }
  .moments { flex-direction: column; align-items: start; gap: 13px; font-size: 10px; margin-top: 28px; }
  .moments li { padding: 4px 10px; }
  .section-head { display: block; margin-bottom: 28px; }
  .section-head > p { max-width: none; margin-top: 18px; font-size: 11px; }
  .garden-picker { gap: 7px; margin-top: 28px; }
  .garden-picker button { display: flex; flex-direction: column; align-items: start; gap: 5px; min-height: 88px; padding: 12px 10px; font-size: 10px; border-radius: 12px; }
  .garden-picker small { font-size: 8px; }
  .swatch { width: 18px; height: 18px; }
  .garden-preview { border-radius: 14px; margin-top: 17px; }
  .preview-bar { flex-wrap: wrap; gap: 5px 10px; padding: 11px 14px; font-size: 8px; }
  .preview-bar > span:last-child { display: none; }
  .demo { padding: 22px 20px; }
  .demo-nav { font-size: 7px; gap: 10px; letter-spacing: .025em; }
  .demo-nav strong { font-size: 18px; }
  .cozy-demo .demo-nav strong { font-size: 11px; letter-spacing: .02em; }
  .cozy-layout { grid-template-columns: 1fr; gap: 15px; padding-block: 28px 18px; }
  .cozy-layout > div:first-child { text-align: center; }
  .demo h3 { font-size: 31px; }
  .demo-kicker { font-size: 13px; }
  .cozy-layout p:not(.demo-kicker) { font-size: 10px; }
  .cozy-art { width: 100%; }
  .cozy-orbit { width: 86%; max-width: 280px; }
  .cozy-sun { right: 8%; font-size: 45px; }
  .cozy-cards { gap: 10px; }
  .cozy-cards > div { padding-top: 14px; }
  .cozy-cards strong { font-size: 11px; margin-top: 6px; }
  .cozy-cards small { font-size: 7px; letter-spacing: .02em; }
  .cozy-cards span { font-size: 8px; }
  .preview-description { grid-template-columns: 1fr; gap: 9px; padding: 17px 20px; }
  .preview-description strong { font-size: 11px; }
  .preview-description p { font-size: 10px; }
  .sample-note { font-size: 9px; }
  .fantasy-demo .demo-nav strong { font-size: 9px; letter-spacing: .04em; }
  .fantasy-demo .demo-nav > span { font-size: 6px; }
  .fantasy-demo .demo-kicker { font-size: 10px; }
  .fantasy-demo h3 { margin-block: 12px; }
  .moon-art { right: calc(50% - 135px); top: 58px; width: 270px; height: 200px; }
  .moon-disc { width: 130px; height: 130px; top: 30px; right: 40px; }
  .star-one { font-size: 23px; left: 37px; }
  .star-two { font-size: 20px; right: 20px; bottom: 22px; }
  .star-three { left: 25px; bottom: 20px; }
  .cool-demo { padding: 0; grid-template-columns: 28px 1fr; }
  .cool-main { padding: 22px 17px; }
  .cool-rail { padding-inline: 5px; font-size: 7px; }
  .cool-demo .demo-nav > span { font-size: 6px; letter-spacing: .02em; }
  .cool-demo h3 { font-size: 31px; }
  .cool-demo .demo-kicker { font-size: 10px; }
  .cool-bottom { gap: 12px; }
  .cool-bottom > div + div { padding-left: 12px; }
  .cool-bottom small { font-size: 7px; }
  .cool-bottom strong { font-size: 10px; }
  .feature-list article { grid-template-columns: 37px 1fr; gap: 17px; padding-block: 25px; }
  .feature-number { font-size: 20px; width: 35px; height: 35px; border-radius: 10px; }
  .feature-word { display: none; }
  .feature-list h3 { font-size: 17px; }
  .feature-list p { font-size: 11px; margin-top: 10px; }
  .plan-intro > p { margin-top: 20px; font-size: 12px; }
  .plan-intro > .plan-status { margin-top: 24px; padding: 14px 17px; }
  .price-card { padding: 25px 23px; border-radius: 20px; }
  .big-price { font-size: 70px; }
  .price-card-head { font-size: 10px; }
  .included { font-size: 11px; gap: 8px; }
  .price-card .button { font-size: 11px; padding: 13px 17px; gap: 12px; }
  .cost-notes { grid-template-columns: 1fr; gap: 25px; margin-top: 35px; padding-top: 28px; }
  .cost-notes h3 { font-size: 17px; margin-top: 5px; }
  .cost-notes p { margin-top: 10px; }
  .options { grid-template-columns: 1fr; gap: 15px; margin-top: 28px; }
  .options details { grid-column: 1; }
  .options h3 { font-size: 19px; }
  .flow-list { gap: 12px; }
  .flow-list li { padding: 20px 15px; border-radius: 15px; }
  .flow-list li > span { font-size: 29px; }
  .flow-list h3 { font-size: 13px; margin-top: 14px; }
  .flow-list p { font-size: 10px; margin-top: 10px; }
  .flow-note { font-size: 10px; }
  .faq { grid-template-columns: 1fr; gap: 28px; }
  .faq h2 { font-size: 28px; }
  .faq-list details { padding-block: 19px; }
  summary { font-size: 12px; gap: 17px; }
  .faq-list details > p { max-width: none; font-size: 11px; padding-top: 16px; }
  .contact-grid { gap: 30px; }
  .contact h2 { font-size: 30px; margin-top: 15px; }
  .contact-address { font-size: 16px; }
  .contact-character { width: 160px; margin: 25px 20px -20px auto; }
  .consultation { padding: 25px 22px; border-radius: 18px; }
  .memo-label { font-size: 19px; }
  .memo-output > textarea { font-size: 11px; }
  .consultation .button { font-size: 11px; gap: 10px; padding: 14px 17px; }
  .email-note { font-size: 9px; }
  .site-footer { grid-template-columns: 1fr; gap: 15px; padding-block: 28px; }
  .footer-brand { font-size: 18px; }
  .footer-brand img { width: 58px; }
  .site-footer > a:last-of-type { grid-column: 1; justify-content: start; }
  .site-footer > small { text-align: left; margin-top: 5px; }
}
@media (max-width: 359px) {

  .brand > span { font-size: 15px; }

  .scene-character { width: 240px; }
  .play-scene { min-height: 300px; }
  .scene-tag { font-size: 8px; padding: 6px 8px; }
  .tag-stream { top: 157px; right: 8px; }
  .guide-note { gap: 12px; padding: 17px 12px; }
  .guide-note img { width: 50px; }
  .section-label { font-size: 8px; gap: 10px; }
  .section-label > span:first-child { font-size: 9px; }
  .garden-picker button { font-size: 9px; padding-inline: 8px; }
  .demo { padding: 20px 15px; }
  .cozy-cards strong { font-size: 10px; }
  .cozy-cards span { font-size: 7px; }
  .cozy-demo .demo-nav strong { font-size: 10px; }
  .cozy-demo .demo-nav > span { font-size: 6px; }
  .cool-demo { padding: 0; }
  .cool-main { padding: 22px 14px; }
  .cool-demo .demo-nav strong { font-size: 22px; }
  .cool-demo .demo-nav > span { font-size: 5px; }
  .cool-demo h3 { font-size: 28px; }
  .flow-list { grid-template-columns: 1fr; }
  .contact-address { font-size: 14px; }
  .memo-label > span { font-size: 8px; }
}
.cozy-art { min-height: 380px; }
.cozy-art img { width: 250px; }
.pose-button { position: absolute; bottom: -3px; right: 0; z-index: 3; display: flex; align-items: center; gap: 7px; padding: 8px 14px; border: 2px solid white; border-radius: 30px; background: #fff0f8; color: #a0487b; box-shadow: 0 4px 0 #ecd2e5; font-size: 10px; }
.pose-button > span { font-size: 19px; }
.pose-button:hover { background: #fbe1f1; }
.fantasy-demo { min-height: 600px; background: radial-gradient(ellipse at 80% 35%, #3d3f78, #171d38 70%); }
.fantasy-body { position: relative; display: grid; align-items: center; gap: 25px; }
.fantasy-copy { width: 100%; padding-block: 55px; text-align: left; }
.fantasy-demo h3 { font-size: clamp(30px, 3.4vw, 44px); }
.fantasy-copy > p:not(.demo-kicker) { font-size: 11px; letter-spacing: .035em; color: #dad7ee; }
.night-character { position: relative; display: flex; align-items: center; justify-content: center; padding-block: 22px; }
.night-character img { position: relative; z-index: 1; }
.night-whisper { position: absolute; z-index: 2; font: italic 16px/1.6 Georgia, serif; color: #d5caed; }
.fantasy-demo .moon-art { top: 74px; right: 5%; width: 400px; height: 380px; }
.fantasy-demo .moon-disc { top: 18px; right: 5px; width: 160px; height: 160px; }
.fantasy-demo .moon-disc::after { background: #343763; }
.fantasy-bottom { color: #c4c5e1; gap: 18px; }
.cool-swatch { background: linear-gradient(135deg, #b5a3f0, #557eab, #1c253d); }
.cool-demo { background: #1e273e; color: #f1edff; }
.cool-rail { color: #a0bcdb; border-color: #506481; }
.cool-demo .demo-kicker { color: #b6c9e2; }
.cool-demo .demo-link { border-color: #829abc; background: #2d3955; }
.cool-layout { grid-template-columns: 1.05fr 1fr; padding-block: 25px; }
.cool-art { background: radial-gradient(ellipse at center, #46406b, #26324c 72%); border-color: #536084; }
.cool-art > img { position: relative; z-index: 2; }
.cool-art i { background: #7791c7; opacity: .42; }
.cool-art i + i { background: #bca3e1; opacity: .65; }
.cool-art > b { color: #c1dcf7; }
.cool-bottom { border-color: #52617d; }
.cool-bottom > div + div { border-color: #52617d; }
.cool-bottom small { color: #a6b9d8; }
body[data-motion="running"] .hero-main-image { animation: garden-breathe 24s ease-in-out infinite; }
body[data-motion="running"] .fantasy-demo .star { animation: sparkle-float 6s ease-in-out infinite; }
body[data-motion="running"] .fantasy-demo .star-two { animation-delay: -3s; }
@keyframes garden-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.035); } }
@media (max-width: 1100px) {
  .hero { min-height: 720px; }
  .hero-copy { width: 51%; }
  .hero-logo { width: 290px; }
  .hero h1 { font-size: 43px; }
  .hero-main-image { object-position: 59% 35%; }
}
@media (max-width: 900px) {
  .hero { min-height: 690px; }
  .hero-copy { width: 54%; }
  .hero-logo { width: 270px; }
  .hero h1 { font-size: 35px; }
  .hero .eyebrow { font-size: 9px; }
  .hero-lead { font-size: 11px; }
  .hero-main-image { object-position: 66% 35%; }
  .hero-shell::before { background: linear-gradient(90deg, #fffaf5f2, #fffaf5cf 36%, #fffaf559 60%, transparent 83%); }
  .hero-image-caption { bottom: 28px; right: 22px; padding: 9px 13px; }
  .fantasy-demo { min-height: 550px; }
  .fantasy-body { gap: 10px; }
  .fantasy-demo .moon-art { width: 300px; height: 310px; right: 3%; }
  .fantasy-demo .moon-disc { width: 135px; height: 135px; }
}
@media (max-width: 650px) {
  .hero-art { position: relative; z-index: auto; height: clamp(360px, 112vw, 500px); }
  .hero-main-image { object-position: 67% 30%; }
  .hero-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 74%, #fffbf4); pointer-events: none; }
  .hero-image-caption { z-index: 1; right: 18px; bottom: 30px; padding: 8px 12px; background: #fffaf4db; text-align: right; }
  .hero-image-caption strong { font-size: 12px; }
  .hero-image-caption span { font-size: 8px; }
  .hero-shell::before { display: none; }
  .hero { display: block; min-height: 0; padding-block: 0 26px; }
  .hero-copy { display: block; width: 100%; text-align: center; }
  .hero .eyebrow { justify-content: center; font-size: 9px; margin-bottom: 8px; }
  .hero-logo { width: 280px; margin: 9px auto 18px; }
  .hero h1 { font-size: clamp(29px, 7.8vw, 44px); line-height: 1.5; letter-spacing: -.04em; }
  .hero-title-end { font-size: .83em; }
  .hero-lead { font-size: 11px; margin-top: 17px; line-height: 2; }
  .hero-actions { align-items: center; margin-top: 22px; gap: 15px; }
  .hero-actions .button { padding: 14px 24px; font-size: 13px; }
  .hero-price { justify-content: center; margin-top: 25px; gap: 8px; }
  .hero-price strong { font-size: 30px; }
  .preparation { justify-content: center; font-size: 9px; }

  .cozy-art { min-height: 345px; padding-bottom: 25px; }
  .cozy-art img { width: 210px; }
  .pose-button { font-size: 9px; padding: 7px 12px; }
  .fantasy-body { display: flex; flex-direction: column-reverse; gap: 0; }
  .night-character { width: 100%; padding-block: 20px 0; }
  .fantasy-copy { width: 100%; padding-block: 25px 28px; text-align: center; }
  .fantasy-demo h3 { font-size: 31px; letter-spacing: .07em; }
  .fantasy-copy > p:not(.demo-kicker) { font-size: 9px; }
  .fantasy-demo .moon-art { top: 66px; right: calc(50% - 145px); width: 290px; height: 280px; }
  .fantasy-demo .moon-disc { width: 120px; height: 120px; right: 8px; top: 20px; }
  .fantasy-bottom { gap: 8px; font-size: 7px; }
  .cool-layout { grid-template-columns: 1fr; gap: 25px; padding-block: 28px 23px; }
  .cool-art { padding-top: 10px; }
}
@media (max-width: 359px) {
  .hero-logo { width: 250px; }
  .hero .eyebrow { font-size: 8px; }
}

.guide-profile-link { display: inline-block; margin-top: 15px; color: #635598; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.fantasy-body { grid-template-columns: .85fr 1.3fr; }
.night-character { min-height: 0; padding: 0; aspect-ratio: 1672/941; overflow: hidden; border: 1px solid #8f80b0; border-radius: 12px; }
.night-character img { width: 100%; height: 100%; object-fit: cover; filter: none; }
.night-whisper { bottom: 10px; right: 12px; font-size: 12px; background: #171d38b0; padding: 4px 9px; transform: none; }
.cool-art { min-height: 0; aspect-ratio: 1672/941; padding: 0; overflow: hidden; }
.cool-art > img { width: 100%; height: 100%; object-fit: cover; filter: none; }
.cool-art > b { background: #1e273edb; padding: 4px 8px; font-size: 8px; }
body[data-motion="running"] .night-character img { animation: none; }
.anniversary-sample-link { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 30px; margin-top: 20px; padding: 16px; background: #f1eafa; border: 1px solid #d7c8e6; border-radius: 22px; }
.anniversary-sample-link > img { width: 100%; border-radius: 10px; }
.anniversary-sample-link small { display: block; font-size: 9px; letter-spacing: .12em; color: #807098; }
.anniversary-sample-link strong { display: block; font-size: 19px; margin-block: 12px; }
.anniversary-sample-link > span > span { font-size: 12px; text-decoration: underline; text-underline-offset: 4px; color: #695287; }
@media (max-width: 760px) {
  .fantasy-body { grid-template-columns: 1fr; }
  .night-character { min-height: 0; padding: 0; width: 100%; }
  .night-character img { width: 100%; }
  .cool-art { min-height: 0; }
  .cool-art > img { width: 100%; }
  .anniversary-sample-link { grid-template-columns: 1fr; gap: 18px; padding: 14px; }
  .anniversary-sample-link > span { padding: 0 6px 7px; }
  .anniversary-sample-link strong { font-size: 16px; }
  .anniversary-sample-link > span > span { font-size: 11px; }
}
.guide-profile-link small { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; text-decoration: none; }
.flores-sample-link { display: flex; align-items: center; gap: 24px; margin-top: 36px; padding: 28px; border: 1px solid #d8cfe8; background: #fffaf7; border-radius: 22px; }
.flores-sample-link > img { width: 70px; height: 70px; border-radius: 50%; object-fit: cover; }
.flores-sample-link > div { flex: 1; }
.flores-sample-link > div > span { font-size: 9px; letter-spacing: .15em; color: #86749e; }
.flores-sample-link h3 { margin: 7px 0; font-size: 19px; }
.flores-sample-link p { margin: 0; font-size: 12px; }
.flores-sample-link .button { flex-shrink: 0; font-size: 12px; }
.works { border-bottom: 1px solid var(--line); }
.hero-price .estimate-label { font-size: clamp(24px, 3vw, 33px); font-family: inherit; letter-spacing: -.03em; }
.price-card .estimate-price { font-family: inherit; font-size: clamp(28px, 3.8vw, 44px); letter-spacing: -.035em; margin-block: 22px 10px; }
.plan-policy-link { margin-top: 20px; font-size: 12px; color: var(--muted); }
.about-copy a, .works-stepup p a, .plan-policy-link a, .flow-note a, .faq-list p a, .legal-lead a, .legal-article a, .consultation-policy a, .footer-policies a { text-decoration: underline; text-underline-offset: 4px; }
.legal-page { padding-block: 56px 96px; }
.legal-doc-nav, .legal-back-links { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.legal-doc-nav { margin-bottom: 32px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.legal-doc-nav a, .legal-back-links a { display: inline-flex; align-items: center; padding: 6px 13px; font-size: 12px; color: var(--ink); border: 1px solid var(--line); border-radius: 999px; background: #fffaf5; text-decoration: none; overflow-wrap: anywhere; }
.legal-doc-nav a[aria-current="page"] { background: var(--violet); border-color: var(--violet); color: #fff; }
.legal-page-head { margin-bottom: 32px; }
.legal-page-head h1 { font-size: clamp(22px, 3vw, 34px); line-height: 1.4; margin: 12px 0 14px; overflow-wrap: anywhere; }
.policy-status { margin-top: 18px; padding: 20px 24px; border: 1px solid #e1cfe9; border-radius: 18px; background: #fbf4fc; }
.legal-meta { display: block; font-size: 12px; color: var(--ink); margin: 0 0 8px; overflow-wrap: anywhere; }
.legal-lead { font-size: 13px; color: var(--muted); line-height: 2; margin: 0; overflow-wrap: anywhere; }
.legal-article { padding-top: 28px; margin-top: 28px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); line-height: 2; overflow-wrap: anywhere; scroll-margin-top: 110px; }
.legal-article section + section { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.legal-article h2 { font-size: clamp(18px, 2.2vw, 24px); line-height: 1.5; color: var(--ink); margin: 0 0 14px; overflow-wrap: anywhere; }
.legal-article h3 { margin: 24px 0 8px; font-size: 15px; line-height: 1.6; color: var(--ink); overflow-wrap: anywhere; }
.legal-article p + p { margin-top: 12px; }
.legal-article ul { margin: 10px 0; padding-left: 20px; }
.legal-article li + li { margin-top: 6px; }
.policy-facts { margin: 22px 0 0; }
.policy-facts > div { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 24px; padding-block: 16px; border-bottom: 1px solid #ece4f4; }
.policy-facts dt { font-weight: 700; color: var(--ink); overflow-wrap: anywhere; }
.policy-facts dd { margin: 0; overflow-wrap: anywhere; }
.legal-back-links { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); }
.consultation-policy { margin-bottom: 24px; padding-bottom: 18px; border-bottom: 1px solid #d7c7e8; font-size: 12px; color: var(--muted); }
.footer-policies { grid-column: 1/-1; display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 16px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 11px; }
@media (max-width: 650px) {
  .legal-page { padding-block: 36px 68px; }
  .legal-page-head h1 { font-size: 20px; }
  .legal-article { font-size: 12px; }
  .legal-article h2 { font-size: 17px; }
  .legal-article h3 { font-size: 14px; }
  .policy-facts > div { grid-template-columns: 1fr; gap: 6px; }
}
.work-card { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: 38px; margin-top: 36px; padding: 24px; border: 1px solid var(--line); border-radius: 22px; background: #f5effa; }
.work-preview { overflow: hidden; border: 1px solid #e5dfd3; border-radius: 12px; background: #f8f5ec; }
.work-preview img { width: 100%; }
.work-copy { min-width: 0; padding: 12px 12px 12px 0; }
.work-copy .eyebrow { color: var(--violet); font-size: 10px; letter-spacing: .08em; }
.work-copy h3 { margin-block: 10px 16px; font-size: clamp(19px, 2vw, 25px); }
.work-copy > p:not(.eyebrow):not(.small) { color: var(--muted); font-size: 13px; }
.work-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 26px; padding: 0; list-style: none; }
.work-tags li { padding: 4px 12px; border: 1px solid #dcd0ee; border-radius: 30px; background: #fffdf9; font-size: 11px; }
.work-copy .button { font-size: 12px; }
.work-copy .small { margin-top: 12px; }
.works-stepup { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 24px; padding: 26px 30px; border: 1px solid #d8cfe8; border-radius: 22px; background: #fffaf7; }
.works-stepup > div { flex: 1; min-width: 0; }
.works-stepup .eyebrow { color: var(--violet); font-size: 10px; letter-spacing: .08em; }
.works-stepup h3 { margin: 8px 0 10px; font-size: 19px; }
.works-stepup p:not(.eyebrow) { color: var(--muted); font-size: 12px; line-height: 2; }
.works-stepup .button { flex-shrink: 0; font-size: 12px; }
@media (max-width: 900px) {
  .work-card { grid-template-columns: 1fr; gap: 22px; padding: 18px; }
  .work-copy { padding: 0 6px 8px; }
  .works-stepup { flex-direction: column; align-items: flex-start; gap: 18px; padding: 22px; }
}
@media (max-width: 760px) {
  .guide-profile-link { font-size: 11px; }
  .flores-sample-link { flex-wrap: wrap; gap: 17px; padding: 22px; }
  .flores-sample-link > img { width: 50px; height: 50px; }
  .flores-sample-link > div { flex-basis: calc(100% - 70px); }
  .flores-sample-link h3 { font-size: 15px; }
  .flores-sample-link p { font-size: 11px; }
  .flores-sample-link .button { width: 100%; justify-content: center; font-size: 11px; }
  .works-stepup h3 { font-size: 16px; }
  .works-stepup p:not(.eyebrow) { font-size: 11px; }
  .works-stepup .button { width: 100%; justify-content: center; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(body:not([data-motion="running"])) { scroll-behavior: auto; }
  body:not([data-motion="running"]) *, body:not([data-motion="running"]) *::before, body:not([data-motion="running"]) *::after { animation: none !important; transition: none !important; }
  body:not([data-motion="running"]) [data-reveal].reveal-ready { opacity: 1; transform: none; }
  body:not([data-motion="running"]) .play-window { transform: none; }
}
