.theme-vivid {
  --mincho: "Zen Kaku Gothic New", "Yu Gothic", "Meiryo", sans-serif;
  --latin: "Zen Kaku Gothic New", "Yu Gothic", "Meiryo", sans-serif;
  --ink: #402923;
  --ink-body: #493028;
  --ink-80: #51372f;
  --ink-60: #5c4035;
  --rose: #79313d;
  --breeze-x: 0px;
  --breeze-y: 0px;
  --light-shift: 0px;
  padding-bottom: 0;
}
.theme-vivid::after { opacity: .025; }
.theme-vivid .bg { --bg-scale: 1.015; }
.theme-vivid .hero-art { inset: 0; --bg-scale: 1.015; }
.theme-vivid .hero-art img {
  mask-image: none;
  -webkit-mask-image: none;
  object-position: center 66%;
  filter: none;
  animation: none;
  transform: translate3d(var(--breeze-x), var(--breeze-y), 0) scale(1.018);
  transition: transform 1.3s ease-out;
}
.theme-vivid .hero { min-height: max(800px,100svh); background: #f9ddd0; }
.theme-vivid .hero-wash {
  background: radial-gradient(ellipse 40% 47% at 50% 34%,#fff1e7b8 0%,#fff1e768 54%,#fff1e714 81%,transparent 100%);
  animation: breath 10s cubic-bezier(.42,0,.58,1) infinite; 
}
@keyframes breath { 0% { opacity: .82; transform: scale(1); } 40% { opacity: 1; transform: scale(1.04); } 100% { opacity: .82; transform: scale(1); } }
.theme-vivid .hero-content { padding: 180px 0 270px; }
.theme-vivid .hero-copy { width: 100%; align-items: center; text-align: center; }
.theme-vivid .hero-line--one { font-size: clamp(22px,1.9vw,29px); }
.theme-vivid .hero-line--two { font-size: clamp(32px,2.8vw,43px); line-height: 1.9; margin-top: 20px; }
.theme-vivid .hero-line--two .hero-prefix,.theme-vivid .hero-line--two .hero-phrase { display: inline; }
.theme-vivid .hero-line--three { font-size: clamp(34px,3.2vw,47px); margin-top: 23px; }
.theme-vivid .hero::after { display: none; }
.theme-vivid .hero-glow {
  inset: 0;
  opacity: .36;
  background: linear-gradient(118deg,transparent 54%,#fff5c100 57%,#fff5c166 60%,#fff8d81f 66%,transparent 71%);
  mask-image: linear-gradient(transparent 15%,#000 58%,transparent);
  -webkit-mask-image: linear-gradient(transparent 15%,#000 58%,transparent);
  transform: translateX(var(--light-shift));
  transition: transform 1.6s ease-out;
  mix-blend-mode: soft-light;
  animation: none;
}
.theme-vivid .scroll-cue { left: 50%; transform: translateX(-50%); bottom: 26px; }
.theme-vivid .site-header { background: linear-gradient(#fff0e46e,transparent); }
.theme-vivid .brand-name,.theme-vivid .brand-role { text-shadow: 0 1px 12px #fff2db; }
.theme-vivid .site-header .brand { position:relative;isolation:isolate; }
.theme-vivid .site-header .brand::before { content:'';position:absolute;inset:-11px -16px;z-index:-1;background:#fff1e5f0;filter:blur(11px);border-radius:22%;pointer-events:none; }
.theme-vivid .reading::before,.theme-vivid .story::before,.theme-vivid .session::before,
.theme-vivid .trust::before,.theme-vivid .closing::before,
.theme-vivid .reading::after,.theme-vivid .story::after,.theme-vivid .session::after,
.theme-vivid .trust::after { display: none; }
.theme-vivid :is(.reading,.story,.session,.trust,.closing) {
  margin-top: calc(-1 * var(--seam, 110px));
  scroll-margin-top: var(--seam, 110px);
}
.theme-vivid .closing { background: transparent; }
.theme-vivid :is(.reading,.story,.session,.trust,.closing) > :is(.bg,.wash,.trust-veil) {
  -webkit-mask-image: linear-gradient(transparent, #000 var(--seam, 110px));
          mask-image: linear-gradient(transparent, #000 var(--seam, 110px));
}
.theme-vivid .full-bg img { filter: none; }
.theme-vivid .reading { padding: 130px 0 150px; }
.theme-vivid .full-bg--reading img { object-position: 50% 75%; }
.theme-vivid .wash--reading {
  background: radial-gradient(ellipse 40% 79% at 50% 45%,#ffe8dd78 0%,#ffe8dd5e 53%,transparent 100%);
}
.theme-vivid .section-lead { color: #4c2f2b; }
.theme-vivid .reading-shell { max-width: 960px; }
.theme-vivid .methods { margin-top: 44px; }
.theme-vivid .method-word { color: var(--rose); }
.theme-vivid .method-note { color: var(--ink); font-size: 17px; font-weight: 500; letter-spacing: .06em; white-space: nowrap; }
.theme-vivid .bridge { color: var(--ink); font-size: 23px; font-weight: 500; letter-spacing: .12em; line-height: 1.5; }
.theme-vivid .message-list { font-size: 27px; }
.theme-vivid .topics-label,.theme-vivid .declined-label { color: var(--rose); font-size: 17px; font-weight: 700; letter-spacing: .1em; }
.theme-vivid .topics-text { font-size: 23px; font-weight: 500; letter-spacing: .06em; line-height: 1.9; }
.theme-vivid .topics-line { display: flex; justify-content: center; flex-wrap: wrap; gap: .2em .9em; white-space: normal; }
.theme-vivid .topics-line + .topics-line { margin-top: 8px; }
.theme-vivid .topic { white-space: nowrap; }
.theme-vivid .declined-items { font-size: 22px; font-weight: 500; }
.theme-vivid .declined { position:relative;isolation:isolate;width:fit-content;max-width:100%;margin:33px auto 0; }
.theme-vivid .declined::before { content:'';position:absolute;inset:-14px -29px;z-index:-1;background:#ffeddbe0;filter:blur(13px);border-radius:35%;pointer-events:none; }
.theme-vivid .story { padding: 130px 0 150px; }
.theme-vivid .story-grid { display: block; }
.theme-vivid .story-text { max-width: 660px; }
.theme-vivid .story-opening { font-size: 34px; }
.theme-vivid .story-body { margin-top: 35px; }
.theme-vivid .verse { font-size: 19px; font-weight: 500; letter-spacing: .025em; line-height: 2.15; }
.theme-vivid .full-bg--story img { object-position: 78% 70%; transform:scale(1.12);transform-origin:88% 72%; }
.theme-vivid .wash--story {
  background: radial-gradient(ellipse 47% 83% at 29% 46%,#fff0e4e8 0%,#fff0e4db 51%,#fff0e47d 73%,#fff0e400 100%);
}
.theme-vivid .story .signature { padding-right: 35px; }
.theme-vivid .session { padding: 130px 0 150px; }
.theme-vivid .full-bg--session img { object-position: 50% 55%; }
.theme-vivid .wash--session {
  background: radial-gradient(ellipse 54% 70% at 50% 47%,#fff1dae0 0%,#fff1daca 58%,#fff1da5c 81%,transparent 100%);
}
.theme-vivid .offer {
  background: linear-gradient(125deg,#ffe5d3dc,#ffddc8df);
  box-shadow: 0 25px 65px -35px #97613f5c;
}
.theme-vivid .policy {
  background: linear-gradient(125deg,#ffe5d3dc,#ffddc8df);
  box-shadow: 0 25px 65px -35px #97613f5c;
}
.theme-vivid .reservation { position: relative; }
.theme-vivid .reservation::before {
  content: ''; position: absolute; z-index: -1; inset: -42px -30px;
  background: radial-gradient(ellipse closest-side,#fff1dada 30%,transparent 100%);pointer-events: none;
}
.theme-vivid .eyebrow { font-size: 15px; font-weight: 700; }
.theme-vivid .offer-label,.theme-vivid .offer-details dt { font-size: 16px; font-weight: 700; }
.theme-vivid .price { color: var(--rose); }
.theme-vivid .offer-sub,.theme-vivid .cash { font-size: 18px; font-weight: 500; }
.theme-vivid .offer-extra { font-size: 17px; font-weight: 500; }
.theme-vivid .dd-main { font-size: 22px; }
.theme-vivid .dd-main.hours { font-size: 31px; }
.theme-vivid .dd-sub { font-size: 16px; font-weight: 500; }
.theme-vivid .dd-sub .num { font-size: 18px; }
.theme-vivid .reservation-title { font-size: 26px; }
.theme-vivid .reservation-deadline { margin-top: 18px; color: var(--rose); font-size: 17px; font-weight: 700; }
.theme-vivid .flow-step { font-size: 21px; }
.theme-vivid .flow-note,.theme-vivid .reservation-note { color: var(--ink-body); font-size: 16px; font-weight: 500; }
.theme-vivid .policy-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 40px; }
.theme-vivid .policy-list dt { color: var(--ink); font-size: 20px; }
.theme-vivid .policy-list dd { font-size: 18px; font-weight: 500; letter-spacing: .02em; }
.theme-vivid .policy-booking { grid-column: 1 / -1; padding-bottom: 24px; border-bottom: 1px solid #a8695840; }
.theme-vivid .policy-sentence { display: block; }
.theme-vivid .policy-sentence + .policy-sentence { margin-top: 6px; }
.theme-vivid .trust-copy p { font-size: 18px; font-weight: 500; line-height: 2; }
.theme-vivid .trust-copy .trust-intro { font-size: 19px; }
.theme-vivid .signature-title { font-size: 15px; font-weight: 500; color: var(--ink); }
.theme-vivid .closing-note { font-size: 18px; font-weight: 500; }
.theme-vivid .trust { padding: 130px 0 150px; }
.theme-vivid .full-bg--trust img { object-position: 50% 65%; }
.theme-vivid .trust-veil {
  background: radial-gradient(ellipse 61% 82% at 50% 50%,#ffeadca8 0%,#ffeadc78 51%,transparent 100%);
}
.theme-vivid .trust-copy { position:relative;isolation:isolate;max-width:37em; }
.theme-vivid .trust-copy::before { content:'';position:absolute;inset:-12px -24px;z-index:-1;background:#ffe8dd85;filter:blur(20px);border-radius:20%;pointer-events:none; }
.theme-vivid .trust-head { position:relative;isolation:isolate;align-self:start; }
.theme-vivid .trust-head::before { content:'';position:absolute;inset:-16px -24px -18px;z-index:-1;background:#ffe8dd85;filter:blur(20px);border-radius:22%;pointer-events:none; }
.theme-vivid .trust-title { font-size: clamp(28px, 2.5vw, 34px); letter-spacing: .05em; line-height: 1.75; }
.theme-vivid { --footer-pull: 170px; }
.theme-vivid .closing { padding: 130px 0 calc(150px + var(--footer-pull)); }
.theme-vivid .wash--closing {
  background: linear-gradient(180deg,transparent,transparent calc(100% - var(--footer-pull) - 150px),#fbdacecc calc(100% - var(--footer-pull) + 10px),#fbdace),
    radial-gradient(ellipse 42% 58% at 63% 47%,#fff0deed 0%,#fff0decf 49%,#fff0de33 83%,transparent);
}
.theme-vivid .closing-art img { object-position: center 70%; }
.theme-vivid .photo-arch { border-width: 4px;box-shadow: 9px 9px 0 #f9d1c277,0 18px 40px #78463c1a; }
.theme-vivid .portrait-note { background: #fff0dfdb; border-radius: 3px; padding: 4px 7px; color:#624236; }
.theme-vivid .footer {
  position: relative;
  z-index: 1;
  margin-top: calc(-1 * var(--footer-pull));
  background: transparent;
}
.theme-vivid .footer-veil {
  display: block;
  position: absolute;
  inset: -40px 0 0;
  background: linear-gradient(180deg,transparent,#fbdaceb8 44%,#fbdacee0);
  pointer-events: none;
}
.footer-meta { display:flex; flex-direction:column; align-items:flex-end; gap:14px; }
.motion-toggle { min-height:32px;padding:4px 2px;border:0;border-bottom:1px dotted #9a6f61;color:#7a5a4e;background:none;font:11px/1.6 var(--gothic);letter-spacing:.08em;cursor:pointer; }
.motion-toggle:hover{color:#5a3d37;border-bottom-color:#5a3d37}.motion-toggle[hidden]{display:none}
button:focus-visible,a:focus-visible{outline:3px solid #824b3f;outline-offset:5px}
.skip-link { width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);transform:none;white-space:nowrap }
.skip-link:focus { width:auto;height:auto;padding:12px 20px;clip-path:none;overflow:visible;transform:none }
@media(max-width:1100px){
  .theme-vivid .hero-line--two { font-size:34px; }
  .theme-vivid .story-text { max-width:610px; }
  .theme-vivid .story-opening {font-size:32px}
  .theme-vivid .wash--story {background:radial-gradient(ellipse 57% 86% at 30% 46%,#fff0e4f5,#fff0e4e0 58%,transparent 100%)}
}
@media(max-width:900px){
  .theme-vivid .hero-art {left:0}
  .theme-vivid .hero {min-height:max(720px,100svh)}
  .theme-vivid .hero-content {padding:155px 0 230px}
  .theme-vivid .hero-line--one {font-size:clamp(18px,5.1vw,26px)}
  .theme-vivid .hero-line--two {font-size:clamp(22px,5.7vw,31px);margin-top:24px}
  .theme-vivid .hero-line--two .hero-prefix,.theme-vivid .hero-line--two .hero-phrase {display:block}
  .theme-vivid .hero-line--three {font-size:clamp(26px,6.7vw,35px);margin-top:23px}
  .theme-vivid .hero-art img {object-position:left center;transform:scale(1.018)}
  .theme-vivid .hero-line {position:relative;isolation:isolate;color:var(--ink)}
  .theme-vivid .hero-line--one::before {content:'';position:absolute;z-index:-1;inset:-12px -22px;background:#edf7f9d9;filter:blur(14px);border-radius:50%;pointer-events:none}
  .theme-vivid .hero-wash {background:radial-gradient(ellipse 76% 40% at 50% 35%,#fff0e65e,transparent 100%)}
  .theme-vivid .hero-glow {display:none}
  .theme-vivid .hero::after{height:46px}
  .theme-vivid{--seam:64px;--footer-pull:215px}
  .theme-vivid .reading {padding:96px 0 118px}
  .theme-vivid .full-bg--reading img{object-position:53% bottom}
  .theme-vivid .wash--reading{background:radial-gradient(ellipse 57% 80% at 50% 43%,#ffeade7d 0%,#ffeade70 59%,transparent 100%)}
  .theme-vivid .reading-shell {max-width:650px}
  .theme-vivid .message-list{font-size:clamp(20px,5.2vw,26px)}
  .theme-vivid .story {padding:96px 0 118px}
  .theme-vivid .story-text{max-width:640px;margin:auto}
  .theme-vivid .story-opening{font-size:28px}
  .theme-vivid .story-body{margin-top:30px}
  .theme-vivid .verse{font-size:18px;line-height:2.12;letter-spacing:.015em}
  .theme-vivid .story .signature{padding:0}
  .theme-vivid .full-bg--story img{object-position:60% center;transform:scale(1.03);transform-origin:center}
  .theme-vivid .wash--story{background:radial-gradient(ellipse 67% 68% at 50% 43%,#fff0e5d9 0%,#fff0e5cb 56%,#fff0e570 80%,transparent 100%)}
  .theme-vivid .session{padding:96px 0 118px}
  .theme-vivid .full-bg--session img{object-position:78% center}
  .theme-vivid .wash--session{background:linear-gradient(90deg,#ffe9d533,#fff0d9c9 18%,#fff0d9cf 78%,#ffe9d52b)}
  .theme-vivid .session-shell{max-width:630px}
  .theme-vivid .offer{background:#ffe1ccd9;backdrop-filter:none;-webkit-backdrop-filter:none;padding:32px 24px 30px;gap:22px}
  .theme-vivid .policy{background:#ffe1ccd9;backdrop-filter:none;-webkit-backdrop-filter:none}
  .theme-vivid .offer-details{gap:16px}
  .theme-vivid .policy-list{grid-template-columns:1fr;gap:26px}
  .theme-vivid .reservation-title{font-size:24px}
  .theme-vivid .method-note{font-size:16px}
  .theme-vivid .bridge{font-size:21px}
  .theme-vivid .topics-text{font-size:20px;letter-spacing:.03em}
  .theme-vivid .declined-items{font-size:20px}
  .theme-vivid .closing-title{font-size:25px}
  .theme-vivid .reservation::before{inset:-24px -12px;background:radial-gradient(ellipse closest-side,#fff1daba 30%,transparent 100%)}
  .theme-vivid .trust{padding:96px 0 118px}
  .theme-vivid .trust-title{font-size:28px}
  .theme-vivid .trust-veil{background:radial-gradient(ellipse 73% 72% at 50% 48%,#ffeaddab,#ffeadd96 56%,#ffeadc55 85%,transparent)}
  .theme-vivid .trust-grid{max-width:630px}
  .theme-vivid .closing{padding:96px 0 calc(110px + var(--footer-pull))}
  .theme-vivid .wash--closing{background:linear-gradient(180deg,transparent,#ffe6d72e 24%,#ffe6d766 44%,#ffe6d78c 64%,#fbdacecc calc(100% - var(--footer-pull) + 10px),#fbdace)}
  .theme-vivid .closing-art img{object-position:100% 60%;transform:scale(1.14);transform-origin:70% 100%}
  .theme-vivid .footer-veil{inset:-30px 0 0}
  .theme-vivid .closing-copy{position:relative;isolation:isolate}
  .theme-vivid .closing-copy::before{content:'';position:absolute;inset:-22px -16px -26px;z-index:-1;background:#fff0e5bf;filter:blur(20px);border-radius:24%;pointer-events:none}
  .theme-vivid .portrait{position:relative;isolation:isolate}
  .theme-vivid .portrait::before{content:'';position:absolute;inset:-14px -10px;z-index:-1;background:#fff0e58c;filter:blur(18px);border-radius:30%;pointer-events:none}
  .theme-vivid .footer-meta{align-items:center;gap:20px}
  .theme-vivid .sticky-line{left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));height:62px;border:1px solid #c58d7270;border-radius:12px;padding:9px 13px 9px 16px;box-shadow:0 5px 25px #6f4a3426}
  .theme-vivid .line-button--bar{min-height:44px}
}
@media(max-width:380px){
  .theme-vivid .hero-line--two{font-size:21px}.theme-vivid .hero-line--three{font-size:25px}
  .theme-vivid .message-list{font-size:19px}.theme-vivid .story-opening{font-size:26px}
  .theme-vivid .sticky-line{left:6px;right:6px;gap:8px;padding:8px 10px}.theme-vivid .line-button--bar{padding:0 12px}
}
@media(max-width:900px) and (max-height:500px){.theme-vivid .sticky-line{display:none}}
.motion-paused *, .motion-paused *::before, .motion-paused *::after {animation-play-state:paused!important;transition:none!important}
.motion-paused .hero-art img{transform:scale(1.018)!important}
.motion-paused .bg{transform:scale(var(--bg-scale))!important}
.motion-paused .petal,.motion-paused .butterfly,.motion-paused .drift,.motion-paused .hero-glow,.motion-paused .unseen{display:none!important}
.motion-paused .hero-wash{animation:none!important}
.motion-paused .hero-line,.motion-paused [data-reveal],.motion-paused .method,.motion-paused .message-list li,.motion-paused .flow li,.motion-paused .verse,.motion-paused .trust-copy p{opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce){
  .theme-vivid .hero-art img{animation:none!important;transform:scale(1.018)!important;transition:none!important}
  .theme-vivid .hero-glow{display:none}.theme-vivid .hero-wash{animation:none}
}
.theme-vivid {
  --ink: #281b19;
  --ink-body: #30221d;
  --ink-80: #392923;
  --ink-60: #49302a;
  --rose: #742d3b;
  --reading-paper: #fff4e9;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: .015em;
}
.theme-vivid::after { display: none; }
.theme-vivid :is(.hero-copy,.section-title,.story-opening,.method-word,.bridge,.topics-text,.declined-items,.reservation-title,.flow-step,.policy-list dt,.trust-title,.closing-title,.signature-name,.dd-main,.num) { font-weight: 700; letter-spacing: .025em; }
.theme-vivid .brand-name { color: var(--ink); font-weight: 700; }
.theme-vivid .site-header .brand { background: #fff4e9; border-radius: 8px; padding: 10px 12px; }
.theme-vivid .site-header .brand::before { display: none; }
.theme-vivid .brand-role { font-size: 16px; font-weight: 700; letter-spacing: .025em; }
.theme-vivid .hero-content { width: min(880px,calc(100% - 120px)); padding: 0; margin: 155px auto 240px; }
.theme-vivid .hero-copy { color: var(--ink); padding: 44px 38px; background: var(--reading-paper); border-radius: 36px; box-shadow: 0 0 42px 28px var(--reading-paper); }
.theme-vivid .hero-line--one { font-size: 32px; white-space: normal; }
.theme-vivid .hero-line--two { font-size: 37px; line-height: 1.7; margin-top: 25px; }
.theme-vivid .hero-line--three { font-size: 39px; margin-top: 28px; }
.theme-vivid .hero-line--one::before { display: none; }
.theme-vivid :is(.reading-shell,.story-text,.reservation,.trust-grid,.closing-copy),
.theme-vivid .session-shell > .section-head {
  position: relative;
  z-index: 2;
  isolation: isolate;
  padding: 48px;
  background: var(--reading-paper);
  border-radius: 28px;
  box-shadow: 0 0 40px 22px var(--reading-paper);
}
.theme-vivid .reading-shell { max-width: 1020px; }
.theme-vivid .reading .section-title { font-size: 28px; line-height: 1.7; }
.theme-vivid .methods { gap: 52px; margin-top: 40px; }
.theme-vivid .method-word { font-size: 40px; }
.theme-vivid .method-note { position: static; width: 0; display: flex; justify-content: center; align-self: center; margin-top: 12px; white-space: nowrap; font-size: 26px; font-weight: 700; letter-spacing: 0; line-height: 1.3; }
.theme-vivid .special { margin-top: 34px; }
.theme-vivid .bridge { font-size: 25px; margin-bottom: 0; }
.theme-vivid .topics { margin-top: 38px; }
.theme-vivid .topics-label { color: var(--ink); font-size: 42px; font-weight: 700; letter-spacing: .01em; line-height: 1.55; margin-bottom: 32px; }
.theme-vivid .topics-text { color: var(--rose); font-size: 32px; line-height: 1.9; }
.theme-vivid .topics-line { gap: .25em 1em; }
.theme-vivid .message-list { display: grid; gap: 18px; margin-top: 30px; padding-top: 28px; border-top: 1px solid #b88d7970; font-size: 28px; line-height: 1.7; }
.theme-vivid .message-list li { display: block; font-weight: 700; }
.theme-vivid .declined { display: flex; flex-direction: column; gap: 18px; margin-top: 40px; padding-top: 28px; border-top: 1px solid #b88d7970; width: 100%; }
.theme-vivid .declined-label { font-size: 22px; }
.theme-vivid .declined-items { font-size: 25px; line-height: 1.5; }
.theme-vivid .declined::before,.theme-vivid .reservation::before,.theme-vivid .trust-copy::before,.theme-vivid .trust-head::before,.theme-vivid .closing-copy::before { display: none; }
.theme-vivid .story-text { --reading-paper: #fff0e8; max-width: 820px; }
.theme-vivid .story-opening { font-size: 34px; line-height: 1.8; }
.theme-vivid .verse { color: var(--ink); font-size: 22px; font-weight: 700; line-height: 1.9; letter-spacing: .01em; }
.theme-vivid .verse > .vl { display: inline; }
.theme-vivid .verse + .verse { margin-top: 32px; }
.theme-vivid .verse .num,.theme-vivid .section-lead .num { font-size: 1em; }
.theme-vivid .eyebrow { color: var(--rose); font-size: 20px; letter-spacing: .03em; }
.theme-vivid .signature-title { font-size: 20px; font-weight: 700; }
.theme-vivid .signature-name { font-size: 30px; }
.theme-vivid .section-title { font-size: 38px; }
.theme-vivid .section-lead { font-size: 26px; font-weight: 700; color: var(--ink); }
.theme-vivid .session-shell > .section-head { padding: 28px 36px; max-width: 760px; margin: 0 auto 56px; }
.theme-vivid .offer,.theme-vivid .policy { z-index: 2; background: #ffe5d2; }
.theme-vivid .offer { grid-template-columns: 1fr 1.15fr; gap: 44px; padding: 46px; }
.theme-vivid .offer-label,.theme-vivid .offer-details dt { font-size: 20px; letter-spacing: .025em; }
.theme-vivid .offer-details > div { grid-template-columns: 96px minmax(0,1fr); gap: 20px; }
.theme-vivid .offer-price { padding-right: 28px; }
.theme-vivid .price .num { font-size: 62px; }
.theme-vivid .price .unit { font-size: 26px; font-weight: 700; }
.theme-vivid .offer-sub,.theme-vivid .cash,.theme-vivid .offer-extra,.theme-vivid .offer-extension { font-size: 21px; font-weight: 700; }
.theme-vivid .offer-sub { margin-top: 14px; }
.theme-vivid .price { margin: 4px 0 8px; }
.theme-vivid .dd-main { font-size: 24px; }
.theme-vivid .dd-main.hours { font-size: 29px; }
.theme-vivid .dd-sub,.theme-vivid .dd-sub .num { font-size: 20px; font-weight: 700; }
.theme-vivid .reservation { grid-template-columns: 1fr 1.25fr; gap: 40px; margin-top: 90px; }
.theme-vivid .reservation-title { font-size: 28px; }
.theme-vivid .reservation-deadline { font-size: 23px; }
.theme-vivid .flow-step { font-size: 24px; }
.theme-vivid .flow-note,.theme-vivid .reservation-note { font-size: 20px; font-weight: 700; line-height: 1.8; }
.theme-vivid .policy { margin-top: 86px; padding: 42px 46px; }
.theme-vivid .policy-list { gap: 36px; }
.theme-vivid .policy-list dt { font-size: 24px; }
.theme-vivid .policy-list dd { color: var(--ink); font-size: 21px; font-weight: 700; }
.theme-vivid .trust-grid { grid-template-columns: .85fr 1.35fr; gap: 44px; }
.theme-vivid .trust-title { font-size: 31px; }
.theme-vivid .trust-copy p,.theme-vivid .trust-copy .trust-intro { font-size: 21px; font-weight: 700; line-height: 1.95; text-align: left; }
.theme-vivid .closing-title { font-size: 29px; }
.theme-vivid .closing-note { font-size: 20px; font-weight: 700; }
.theme-vivid .closing-copy { padding: 38px; }
.theme-vivid .portrait-note { background: #fff0df; font-size: 18px; font-weight: 700; }
.theme-vivid .footer { background: #fbdace; }
.theme-vivid .footer-veil { display: none; }
.theme-vivid .footer-shell { position: relative; z-index: 2; }
.theme-vivid .copyright,.theme-vivid .motion-toggle { color: var(--ink); font-size: 18px; font-weight: 700; }
.theme-vivid .copyright .num { font-size: inherit; }
.theme-vivid .line-button { font-size: 18px; letter-spacing: .015em; min-height: 60px; }
.theme-vivid .line-button--quiet { font-size: 16px; font-weight: 700; min-height: 48px; }
.theme-vivid .sticky-line { background: #fff4e9; }
.theme-vivid .sticky-info { color: var(--ink); font-weight: 700; letter-spacing: .025em; }
.theme-vivid .sticky-info .num { font-size: 16px; }
.theme-vivid .sticky-sep { background: var(--ink-60); height: 12px; }
.theme-vivid .line-button--bar { font-weight: 700; }
.theme-vivid :is(.petal,.drift,.unseen) { z-index: 0; }
.theme-vivid .hero-copy,.theme-vivid .reading-shell,.theme-vivid .story-text { overflow-wrap: normal; }
@media(max-width:1100px) and (min-width:901px) {
  .theme-vivid .offer { grid-template-columns: 1fr 1fr; gap: 24px; padding: 36px; }
  .theme-vivid .offer-details > div { grid-template-columns: 1fr; gap: 5px; }
  .theme-vivid .reservation { grid-template-columns: 1fr; }
  .theme-vivid .reservation-title .ph { display: inline-block; }
  .theme-vivid .trust-grid { grid-template-columns: 1fr; }
}
@media(max-width:900px) {
  .theme-vivid { font-size: 20px; }
  .theme-vivid .shell { width: calc(100% - 32px); }
  .theme-vivid :is(.reading-shell,.story-text,.reservation,.trust-grid,.closing-copy) { padding: 30px 20px; border-radius: 20px; box-shadow: 0 0 24px 9px var(--reading-paper); }
  .theme-vivid .hero { min-height: 920px; }
  .theme-vivid .hero-content { width: min(620px,calc(100% - 64px)); margin: 175px auto 205px; }
  .theme-vivid .hero-copy { padding: 30px 12px; box-shadow: 0 0 24px 14px var(--reading-paper); border-radius: 28px; }
  .theme-vivid .hero-line--one { font-size: 25px; line-height: 1.75; }
  .theme-vivid .hero-line--two { font-size: 29px; line-height: 1.8; }
  .theme-vivid .hero-line--three { font-size: 30px; }
  .theme-vivid .reading .section-title { font-size: 23px; }
  .theme-vivid .methods { gap: 22px; }
  .theme-vivid .method-word { font-size: 34px; }
  .theme-vivid .method-note { font-size: 24px; margin-top: 10px; }
  .theme-vivid .bridge { font-size: 23px; letter-spacing: .025em; }
  .theme-vivid .topics-label { font-size: 38px; margin-bottom: 28px; }
  .theme-vivid .topics-text { font-size: 26px; line-height: 1.8; }
  .theme-vivid .topics-line { gap: .35em .8em; }
  .theme-vivid .topics-text { letter-spacing: 0; }
  .theme-vivid .topics-line + .topics-line { margin-top: 18px; }
  .theme-vivid .message-list { font-size: 23px; gap: 22px; }
  .theme-vivid .declined-label { font-size: 21px; }
  .theme-vivid .declined-items { font-size: 23px; letter-spacing: .025em; }
  .theme-vivid .declined-items span { padding: 0 12px; }
  .theme-vivid .declined-items span { white-space: nowrap; }
  .theme-vivid .story-opening { font-size: 27px; }
  .theme-vivid .verse { font-size: 21px; line-height: 1.95; text-align: left; }
  .theme-vivid .story .signature { justify-content: center; gap: 12px; flex-wrap: wrap; }
  .theme-vivid .section-title { font-size: 32px; }
  .theme-vivid .section-lead { font-size: 24px; line-height: 1.65; }
  .theme-vivid .session-shell > .section-head { padding: 28px 16px; border-radius: 20px; box-shadow: 0 0 24px 9px var(--reading-paper); }
  .theme-vivid .offer { grid-template-columns: 1fr; padding: 32px 22px; gap: 26px; }
  .theme-vivid .offer-price { padding: 0 0 28px; }
  .theme-vivid .offer-details { gap: 28px; }
  .theme-vivid .offer-details > div { grid-template-columns: 1fr; gap: 8px; }
  .theme-vivid .offer-sub,.theme-vivid .cash,.theme-vivid .offer-extra,.theme-vivid .offer-extension { font-size: 20px; }
  .theme-vivid .dd-main { font-size: 23px; }
  .theme-vivid .dd-main.hours { font-size: 28px; }
  .theme-vivid .reservation { margin-top: 74px; padding-inline: 22px; }
  .theme-vivid .reservation-title { font-size: 26px; }
  .theme-vivid .reservation-deadline { font-size: 22px; }
  .theme-vivid .flow { padding-left: 28px; width: 100%; }
  .theme-vivid .flow-node { left: -30px; }
  .theme-vivid .flow::before { left: 7px; }
  .theme-vivid .flow-step { font-size: 23px; }
  .theme-vivid .flow-note,.theme-vivid .reservation-note { font-size: 20px; }
  .theme-vivid .policy { padding: 32px 22px; margin-top: 70px; }
  .theme-vivid .policy-list dt { font-size: 23px; }
  .theme-vivid .policy-list dd { font-size: 20px; }
  .theme-vivid .trust-title { font-size: 28px; }
  .theme-vivid .trust-copy p,.theme-vivid .trust-copy .trust-intro { font-size: 20px; }
  .theme-vivid .closing-title { font-size: 26px; }
  .theme-vivid .closing-note { font-size: 20px; }
  .theme-vivid .line-button--large { padding: 0 12px; gap: 8px; font-size: 17px; }
  .theme-vivid .sticky-line { height: auto; min-height: 72px; padding: 10px; }
  .theme-vivid .sticky-info { font-size: 15px; }
  .theme-vivid .line-button--bar { font-size: 15px; padding: 0 12px; min-height: 48px; }
}
@media(max-width:560px) {
  .theme-vivid .site-header { padding: 20px 16px; }
  .theme-vivid .brand-name { font-size: 25px; }
  .theme-vivid .site-header .brand { padding: 8px; }
  .theme-vivid .brand-role { font-size: 13px; }
  .theme-vivid .brand-mark { display: none; }
  .theme-vivid .line-button--quiet { padding: 0 12px; font-size: 14px; font-weight: 700; }
  .theme-vivid .line-button--quiet .arrow { display: none; }
  .theme-vivid .hero-line--one .ph { display: block; }
  .theme-vivid .topics-label { font-size: 34px; }
  .theme-vivid .topics-line { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: .4em; }
  .theme-vivid .hero-line--two .hero-phrase .ph { display: block; }
  .theme-vivid .methods { gap: 16px; }
  .theme-vivid .method-word { font-size: 30px; }
  .theme-vivid .method-note { font-size: 22px; }
  .theme-vivid .hero-line--three { font-size: 27px; letter-spacing: 0; }
  .theme-vivid .story-opening { font-size: 25px; }
}
@media(max-width:380px) {
  .theme-vivid .shell { width: calc(100% - 24px); }
  .theme-vivid :is(.reading-shell,.story-text,.reservation,.trust-grid,.closing-copy) { padding-inline: 16px; }
  .theme-vivid .hero-content { width: calc(100% - 52px); }
  .theme-vivid .hero-line--two { font-size: 27px; }
  .theme-vivid .hero-line--three { font-size: 25px; }
  .theme-vivid .topics-label { font-size: 32px; }
  .theme-vivid .topics-text { font-size: 24px; }
  .theme-vivid .methods { gap: 12px; }
  .theme-vivid .verse { font-size: 20px; }
  .theme-vivid .offer,.theme-vivid .policy { padding-inline: 16px; }
  .theme-vivid .line-button--large { font-size: 16px; }
  .theme-vivid .closing-title { font-size: 24px; }
  .theme-vivid .trust-title { font-size: 24px; letter-spacing: .03em; }
}
@media(max-width:480px) {
  .theme-vivid .sticky-line { flex-direction: column; justify-content: center; gap: 7px; min-height: 0; }
  .theme-vivid .sticky-info { display: block; font-size: 16px; line-height: 1.3; }
  .theme-vivid .sticky-info .num { font-size: 17px; }
  .theme-vivid .line-button--bar { width: 100%; font-size: 16px; }
}
@media print{.motion-toggle,.sticky-line,.scroll-cue{display:none!important}.bg{transform:none!important}body{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.theme-vivid { --rose: #4a1a24; }
.theme-vivid .offer, .theme-vivid .policy { border-radius: 12px; }
.theme-vivid .offer::after, .theme-vivid .policy::after { display: none; }
.theme-vivid .policy-booking { border-bottom: 0; padding-bottom: 6px; }
.theme-vivid .hero-copy,
.theme-vivid :is(.reading-shell,.story-text,.reservation,.trust-grid,.closing-copy),
.theme-vivid .session-shell > .section-head,
.theme-vivid .offer, .theme-vivid .policy {
  border-radius: 12px;
  box-shadow: 0 16px 36px -24px rgba(90, 61, 55, .38);
}
.theme-vivid .wash--reading, .theme-vivid .wash--story, .theme-vivid .wash--session, .theme-vivid .trust-veil { background: none; }
.theme-vivid .wash--closing {
  background: linear-gradient(180deg, transparent, transparent calc(100% - var(--footer-pull) - 150px), #fbdacecc calc(100% - var(--footer-pull) + 10px), #fbdace);
}
.theme-vivid .hero-copy,
.theme-vivid :is(.reading-shell,.story-text,.reservation,.trust-grid,.closing-copy),
.theme-vivid .session-shell > .section-head,
.theme-vivid .offer, .theme-vivid .policy {
  --panel-bg: var(--reading-paper);
  position: relative;
  isolation: isolate;
  background: transparent;
  box-shadow: none;
}
.theme-vivid .story-text { --panel-bg: #fff0e8; }
.theme-vivid .offer, .theme-vivid .policy { --panel-bg: #ffe5d2; }
.theme-vivid .hero-copy::before,
.theme-vivid :is(.reading-shell,.story-text,.reservation,.trust-grid,.closing-copy)::before,
.theme-vivid .session-shell > .section-head::before,
.theme-vivid .offer::before, .theme-vivid .policy::before {
  content: "";
  display: block;
  position: absolute;
  inset: -2px;
  z-index: -1;
  border-radius: 18px;
  background: var(--panel-bg);
  filter: blur(16px);
  pointer-events: none;
}
.theme-vivid .story-text { margin: 0 auto; }
@media(max-width:900px) {
  .theme-vivid .hero-copy::before,
  .theme-vivid :is(.reading-shell,.story-text,.reservation,.trust-grid,.closing-copy)::before,
  .theme-vivid .session-shell > .section-head::before,
  .theme-vivid .offer::before, .theme-vivid .policy::before { inset: 0; filter: blur(12px); border-radius: 14px; }
}
.theme-vivid .reading-lead { margin: 22px auto 0; color: var(--ink); font-size: 24px; font-weight: 700; line-height: 1.85; letter-spacing: .02em; max-width: 30em; }
.theme-vivid .reading-lead .vl { display: block; }
.theme-vivid .topics-list { display: grid; gap: 22px; margin: 0; padding: 0; list-style: none; text-align: center; }
.theme-vivid .topics-list li { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.theme-vivid .topics-list .topic { color: var(--rose); font-size: 32px; font-weight: 700; letter-spacing: .02em; line-height: 1.5; white-space: normal; text-wrap: balance; }
.theme-vivid .topics-list .topic-note { color: var(--ink); font-size: 21px; font-weight: 700; line-height: 1.8; letter-spacing: 0; }
.theme-vivid .topics-list .topic-note .vl { display: block; }
.theme-vivid .topics-list li:last-child { margin-top: 10px; padding-top: 26px; border-top: 1px solid #b88d7970; }
.theme-vivid .wash--closing { background: none; }
.theme-vivid .closing { padding: 130px 0 150px; }
.theme-vivid .trust { padding: 130px 0 160px; }
.theme-vivid .footer { margin-top: 0; }
@media(max-width:900px) {
  .theme-vivid .reading-lead { font-size: 21px; line-height: 1.8; }
  .theme-vivid .topics-list { gap: 18px; }
  .theme-vivid .topics-list .topic { font-size: 27px; }
  .theme-vivid .topics-list .topic-note { font-size: 20px; line-height: 1.75; }
  .theme-vivid .closing { padding: 96px 0 118px; }
  .theme-vivid .trust { padding: 96px 0 126px; }
}
@media(max-width:380px) {
  .theme-vivid .topics-list .topic { font-size: 25px; }
  .theme-vivid .topics-list .topic-note { font-size: 19px; }
}
