:root {--i-bg-about:url(img/bg-about.webp);--i-bg-menu:url(img/bg-menu.webp);--i-hero:url(img/bg-hero.webp);
  --maxw: 1250px;
  --jp: 'Noto Serif JP','Noto Serif CJK JP',"Hiragino Mincho ProN","Yu Mincho",serif;
  --ink: #5B4E45;
  --grey-ink: #4A4A4A;
  --cream: #FAF1E8;
  --grey: #F1F1F1;
  --bar: #FFFCF7;
  --tan: #DED4C6;
}
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  scroll-behavior: smooth;
}
body {
  font-family: var(--jp);
  font-weight: 300;
  color: var(--ink);
  background: var(--grey);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img {
  display: block;
  max-width: 100%;
}
a {
  color: inherit;
  text-decoration: none;
}
.stage {
  position: relative;
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  container-type: inline-size;
  overflow: hidden;
}
.stage>* {
  position: absolute;
}
.t {
  white-space: nowrap;
  line-height: 1;
}
#concept {
  background: var(--cream);
}
#about { background: #F3F1ED var(--i-bg-about) center/cover no-repeat; }
#menu { background: #F3EFE9 var(--i-bg-menu) center/cover no-repeat; }
#qa, #access {
  background: var(--grey);
}
.mhd {
  display: none;
}
.c-grid, .m-grid {
  display: contents;
}
.hero {
  position: relative;
  background: #EBE6E2;
}
.hero-stage {
  aspect-ratio: 2960/1764;
  max-width: var(--maxw);
  margin-inline: auto;
  position: relative;
  container-type: inline-size;
  overflow: hidden;
  background: var(--i-hero) center/cover no-repeat;
}
.hero-stage>* {
  position: absolute;
}
.hv {
  left: 3.10%;
  top: 27.60%;
  width: 5.51%;
  writing-mode: vertical-rl;
  font-size: 1.620cqw;
  line-height: 1.700;
  letter-spacing: .01em;
  color: #6E6259;
  font-weight: 300;
}
.hkanji {
  left: 50.25%;
  top: 42.85%;
  font-size: 7.939cqw;
  line-height: 1;
  color: #584C43;
  font-weight: 400;
}
.hlatin {
  left: 59.53%;
  top: 46.35%;
  font-size: 4.764cqw;
  line-height: 1;
  letter-spacing: .10em;
  color: #584C43;
  font-weight: 300;
}
.hsub {
  left: 14.93%;
  top: 97.22%;
  font-size: 1.25cqw;
  line-height: 1;
  letter-spacing: .065em;
  color: rgba(96,84,74,.62);
  font-weight: 300;
}
.hnav {
  left: 94.95%;
  transform: translateX(-50%);
  font-size: 1.520cqw;
  line-height: 1;
  letter-spacing: .115em;
  color: rgba(255,255,255,.93);
  white-space: nowrap;
  text-shadow: 0 1px 6px rgba(120,110,100,.35);
  transition: opacity .3s;
}
.hnav:hover {
  opacity: .65;
}
.hn1 {
  top: 11.61%;
}
.hn2 {
  top: 18.75%;
}
.hn3 {
  top: 25.89%;
}
.hn4 {
  top: 33.03%;
}
.hn5 {
  top: 40.17%;
}
.hcta {
  left: 79.56%;
  top: 1.70%;
  width: 18.82%;
  height: 7.31%;
  border-radius: 99px;
  background: #AFA194;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.486cqw;
  letter-spacing: .10em;
  color: #fff;
  line-height: 1;
  transition: background .3s;
}
.hcta:hover {
  background: #9E9083;
}
.hcta span {
  position: relative;
  top: -.05em;
}
.topbar {
  position: fixed;
  top:0;right:0;bottom:auto;left:0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px clamp(16px,4vw,52px);
  background: rgba(250,247,243,.88);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(91,78,69,.09);
  transform: translateY(-120%);
  transition: transform .45s cubic-bezier(.4,0,.2,1);
}
.topbar.on {
  transform: none;
}
.topbar .brand {
  font-size: 18px;
  letter-spacing: .16em;
}
.topbar nav {
  display: flex;
  gap: clamp(14px,2.4vw,36px);
  align-items: center;
}
.topbar nav a {
  font-size: 14px;
  letter-spacing: .145em;
  position: relative;
  padding: 4px 0;
  color: #6A5D54;
}
.topbar nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 0;
  height: 1px;
  background: currentColor;
  transition: right .35s;
}
.topbar nav a:hover::after {
  right: 0;
}
.topbar .book {
  font-size: 12.5px;
  letter-spacing: .12em;
  padding: 9px 20px;
  border-radius: 99px;
  background: #A99A88;
  color: #fff;
}
.burger, .drawer {
  display: none;
}
.en {
  font-weight: 300;
  line-height: 1;
  display: block;
}
.ja {
  line-height: 1;
  display: block;
}
.c-en,
.c-sub1,
.c-sub2,
.a-en,
.a-ja,
.m-en,
.m-ja,
.q-en,
.q-ja,
.ac-en,
.ac-ja {
  position: absolute;
  white-space: nowrap;
}
.rl {
  position: absolute;
  height: .068cqw;
  min-height: 1px;
  background: rgba(96,86,78,.66);
}
.rl::before, .rl::after {
  content: "";
  position: absolute;
  top: 50%;
  width: .215cqw;
  height: .215cqw;
  min-width: 3px;
  min-height: 3px;
  border-radius: 50%;
  background: inherit;
}
.rl::before {
  left: 0;
  transform: translate(-45%,-50%);
}
.rl::after {
  right: 0;
  transform: translate(45%,-50%);
}
.ac-d {
  position: absolute;
  width: .068cqw;
  min-width: 1px;
  background: rgba(74,74,74,.62);
}
.ac-d::before, .ac-d::after {
  content: "";
  position: absolute;
  left: 50%;
  width: .215cqw;
  height: .215cqw;
  min-width: 3px;
  min-height: 3px;
  border-radius: 50%;
  background: inherit;
}
.ac-d::before {
  top: 0;
  transform: translate(-50%,-45%);
}
.ac-d::after {
  bottom: 0;
  transform: translate(-50%,45%);
}
#concept .stage {
  aspect-ratio: 2960/1728;
  background: var(--cream);
}
.c-en {
  left: 3.89%;
  top: 37.25%;
  font-size: 4.32cqw;
  letter-spacing: .005em;
  color: #5B4E45;
}
.c-sub1 {
  left: 9.50%;
  top: 48.40%;
  font-size: 1.96cqw;
  letter-spacing: .153em;
  color: #5B4E45;
}
.c-sub2 {
  left: 9.40%;
  top: 54.20%;
  font-size: 1.95cqw;
  letter-spacing: .300em;
  color: #5B4E45;
}
.c-catch {
  font-weight: 300;
  font-size: 4.53cqw;
  letter-spacing: .104em;
  color: var(--ink);
}
.c-catch1 {
  left: 19.95%;
  top: 4.69%;
}
.c-catch2 {
  left: 26.90%;
  top: 16.69%;
}
.cp {
  position: absolute;
}
.cp img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cp figcaption {
  position: absolute;
  transform: translateX(-50%);
  white-space: nowrap;
  color: var(--ink);
  line-height: 1;
}
.cp-house {
  left: 67.57%;
  top: 30.38%;
  width: 30.03%;
  height: 34.43%;
  z-index: 1;
}
.cp-baby {
  left: 58.68%;
  top: 50.64%;
  width: 15.91%;
  height: 42.30%;
  z-index: 2;
}
.cp-work {
  left: 24.76%;
  top: 44.73%;
  width: 17.87%;
  height: 45.49%;
  z-index: 3;
}
.cp-human {
  left: 40.74%;
  top: 35.13%;
  width: 17.94%;
  height: 47.45%;
  z-index: 4;
}
.cp-house figcaption {
  top: 20.23cqw;
  left: 19.12cqw;
  font-size: 2.82cqw;
  letter-spacing: .005em;
}
.cp-baby  figcaption {
  top: 25.00cqw;
  left: 9.72cqw;
  font-size: 2.70cqw;
  letter-spacing: .075em;
}
.cp-work  figcaption {
  top: 26.69cqw;
  left: 7.37cqw;
  font-size: 2.70cqw;
  letter-spacing: .100em;
}
.cp-human figcaption {
  top: 27.94cqw;
  left: 9.72cqw;
  font-size: 2.23cqw;
  letter-spacing: .126em;
}
#about .stage { aspect-ratio: 2960/1648; }
.a-room {
  left: 43.45%;
  top: 0;
  width: 56.55%;
  z-index: 1;
}
.a-en {
  left: 3.21%;
  top: 2.58%;
  font-size: 5.26cqw;
  color: #5B4E45;
}
.a-ja {
  left: 4.26%;
  top: 13.81%;
  font-size: 2.30cqw;
  letter-spacing: .120em;
  color: #5B4E45;
}
.a-rl {
  left: 2.230%;
  top: 22.39%;
  width: 15.574%;
}
.a-body {
  left: 2.1%;
  top: 25.15%;
  z-index: 3;
  font-size: 1.486cqw;
  line-height: 1.498;
  letter-spacing: .068em;
  color: var(--ink);
}
.a-body p {
  margin: 0 0 1.498em;
}
.a-body p:last-child {
  margin: 0;
}
#menu .stage { aspect-ratio: 2960/1672; }
.m-en {
  left: 2.86%;
  top: 3.31%;
  font-size: 5.10cqw;
  color: #5B4E45;
}
.m-ja {
  left: 4.66%;
  top: 14.62%;
  font-size: 2.09cqw;
  letter-spacing: .220em;
  color: #5B4E45;
}
.m-rl {
  left: 1.689%;
  top: 22.19%;
  width: 15.642%;
}
.mi {
  position: absolute;
  z-index: 1;
}
.mi img {
  width: 100%;
  height: auto;
}
.mi figcaption {
  position: absolute;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: 2.72cqw;
  letter-spacing: .028em;
  color: var(--ink);
  line-height: 1;
}
.mi-aroma {
  left: 20.912%;
  top: 0.359%;
  width: 19.257%;
}
.mi-hand {
  left: 41.926%;
  top: 0.239%;
  width: 24.966%;
}
.mi-gypsum {
  left: 69.223%;
  top: 0.299%;
  width: 26.318%;
}
.mi-facial {
  left: 0.101%;
  top: 46.651%;
  width: 25.169%;
}
.mi-stone {
  left: 49.764%;
  top: 45.036%;
  width: 22.264%;
}
.mi-headspa {
  left: 27.568%;
  top: 60.706%;
  width: 25.845%;
}
.mi-aroma   figcaption {
  left: 12.368cqw;
  top: 22.12cqw;
}
.mi-hand    figcaption {
  left: 14.564cqw;
  top: 17.60cqw;
}
.mi-gypsum  figcaption {
  left: 8.747cqw;
  top: 20.43cqw;
}
.mi-facial  figcaption {
  left: 13.789cqw;
  top: 16.50cqw;
}
.mi-stone   figcaption {
  left: 12.566cqw;
  top: 17.39cqw;
}
.mi-headspa figcaption {
  left: 10.232cqw;
  top: 18.03cqw;
}
.m-quotewrap {
  display: contents;
}
.m-quote {
  position: absolute;
  left: 71.824%;
  top: 49.940%;
  width: 28.041%;
  z-index: 2;
}
.m-qtext {
  position: absolute;
  left: 85.84%;
  top: 60.59%;
  transform: translateX(-50%);
  z-index: 3;
  text-align: center;
  font-size: 1.80cqw;
  line-height: 1.618;
  letter-spacing: .005em;
  color: #4E443C;
  white-space: nowrap;
}
#qa .stage {
  aspect-ratio: 2960/916;
  background: var(--grey);
}
.q-leaf {
  left: 3.378%;
  top: 2.183%;
  width: 11.149%;
  mix-blend-mode: multiply;
  opacity: .94;
  z-index: 0;
}
.q-en {
  left: 18.85%;
  top: 6.22%;
  font-size: 4.33cqw;
  letter-spacing: .066em;
  color: #4A4A4A;
}
.q-ja {
  left: 14.96%;
  top: 30.93%;
  font-size: 2.33cqw;
  letter-spacing: .097em;
  color: #4A4A4A;
}
.q-rl {
  left: 16.284%;
  top: 43.67%;
  width: 16.689%;
  background: rgba(74,74,74,.62);
}
.q-list {
  left: 39.26%;
  top: 0;
  width: 58.00%;
  height: 100%;
  z-index: 2;
}
.q-item {
  position: absolute;
  left: 0;
  width: 100%;
  height: 13.40%;
  z-index: 1;
}
.q-item:nth-child(1) {
  top: 12.66%;
}
.q-item:nth-child(2) {
  top: 33.08%;
}
.q-item:nth-child(3) {
  top: 53.38%;
}
.q-item:nth-child(4) {
  top: 73.91%;
}
.q-item.open {
  z-index: 5;
}
.q-btn {
  width: 100%;
  height: 100%;
  background: var(--bar);
  border: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  font-family: inherit;
  font-weight: 300;
  color: var(--grey-ink);
  padding: 0 2.1cqw 0 1.42cqw;
  text-align: left;
}
.q-btn .qq {
  font-size: 2.37cqw;
  letter-spacing: .02em;
  flex: 0 0 auto;
  line-height: 1;
  position: relative;
  top: -.05em;
}
.q-btn .qt {
  font-size: 2.37cqw;
  letter-spacing: .055em;
  margin-left: 2.8cqw;
  flex: 1 1 auto;
  line-height: 1;
  position: relative;
  top: -.05em;
}
.q-btn .qp {
  position: relative;
  width: 1.97cqw;
  height: 1.97cqw;
  flex: 0 0 auto;
}
.q-btn .qp::before, .q-btn .qp::after {
  content: "";
  position: absolute;
  top:0;right:0;bottom:0;left:0;
  margin: auto;
  background: var(--grey-ink);
}
.q-btn .qp::before {
  width: 100%;
  height: .09cqw;
  min-height: 1px;
}
.q-btn .qp::after {
  width: .09cqw;
  min-width: 1px;
  height: 100%;
  transition: transform .4s;
}
.q-item.open .qp::after {
  transform: rotate(90deg);
}
.q-ans {
  position: absolute;
  left: 0;
  top: 100%;
  width: 100%;
  background: var(--bar);
  max-height: 0;
  overflow: hidden;
  transition: max-height .45s cubic-bezier(.4,0,.2,1);
}
.q-item.open .q-ans {
  max-height: 40cqw;
}
.q-ans p {
  padding: 0 2.1cqw 2.4cqw 6.0cqw;
  font-size: 2.02cqw;
  line-height: 1.8;
  letter-spacing: .05em;
  color: #5A5A5A;
}
.nt {
  border: 1px solid var(--tan);
  border-radius: 13px;
  color: #5A5A5A;
}
.nt-lb {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.nt-wv {
  display: block;
  fill: none;
  stroke: #A39A90;
  stroke-width: .9;
}
.nt-en {
  font-family: 'Cormorant Garamond',serif;
  font-style: italic;
  font-weight: 400;
  letter-spacing: .08em;
  line-height: 1.2;
  color: var(--ink);
}
.nt-ja {
  letter-spacing: .15em;
  color: #7A7069;
}
.nt-tx {
  letter-spacing: .05em;
}
.nt-ln {
  color: var(--ink);
  text-decoration: none;
  letter-spacing: .06em;
  border-bottom: 1px solid #A39A90;
  white-space: nowrap;
  transition: opacity .3s;
}
.nt-ln:hover {
  opacity: .6;
}
.nt-ar {
  margin-left: .8em;
}
.q-note {
  position: absolute;
  left: 0;
  top: 70.6%;
  width: 100%;
  height: 27.4%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .5cqw;
  padding: .8cqw 2.4cqw;
  z-index: 0;
}
.q-note .nt-hd {
  display: flex;
  align-items: center;
}
.q-note .nt-lb {
  flex-direction: row;
  align-items: baseline;
  gap: 1cqw;
}
.q-note .nt-wv {
  width: 5cqw;
  height: .7cqw;
  align-self: center;
}
.q-note .nt-en {
  font-size: 1.6cqw;
}
.q-note .nt-ja {
  font-size: 1cqw;
}
.q-note .nt-tx {
  font-size: 1.3cqw;
  line-height: 1.65;
  letter-spacing: .04em;
}
.q-note .nt-ln {
  margin-left: auto;
  font-size: 1.15cqw;
  padding-bottom: .25cqw;
}
.nb {
  display: inline-block;
}
#access .stage {
  aspect-ratio: 2960/1072;
  background: var(--grey);
}
.ac-en {
  left: 3.80%;
  top: 28.80%;
  font-size: 4.71cqw;
  letter-spacing: .062em;
  color: #4A4A4A;
}
.ac-ja {
  left: 7.24%;
  top: 45.89%;
  font-size: 2.17cqw;
  letter-spacing: .170em;
  color: #4A4A4A;
}
.ac-rl {
  left: 3.784%;
  top: 56.72%;
  width: 16.791%;
  background: rgba(74,74,74,.62);
}
.ac {
  color: var(--grey-ink);
}
.ac-row {
  display: contents;
}
.ac-k, .ac-d, .ac-v {
  position: absolute;
}
.ac-zip {
  left: 25.75%;
  top: 8.24%;
  font-size: 2.13cqw;
  letter-spacing: .045em;
}
.ac-ad1 {
  left: 24.95%;
  top: 19.20%;
  font-size: 2.33cqw;
  letter-spacing: .045em;
}
.ac-ad2 {
  left: 24.95%;
  top: 29.41%;
  font-size: 2.13cqw;
  letter-spacing: .100em;
}
.ac-k {
  text-align: justify;
  text-align-last: justify;
  font-size: 2.33cqw;
  line-height: 1;
  color: var(--grey-ink);
}
.ac-v {
  font-size: 2.33cqw;
  letter-spacing: .045em;
  line-height: 1;
  color: var(--grey-ink);
  white-space: nowrap;
}
.k1 {
  left: 25.64%;
  top: 41.58%;
  width: 10.90cqw;
}
.k2 {
  left: 26.93%;
  top: 57.63%;
  width: 9.60cqw;
}
.k3 {
  left: 26.93%;
  top: 74.89%;
  width: 9.60cqw;
}
.v1 {
  left: 40.50%;
  top: 41.58%;
}
.v2 {
  left: 40.50%;
  top: 57.63%;
}
.v3 {
  left: 40.50%;
  top: 74.89%;
}
.d1 {
  left: 37.399%;
  top: 39.459%;
  height: 11.007%;
}
.d2 {
  left: 37.331%;
  top: 56.623%;
  height: 8.955%;
}
.d3 {
  left: 37.331%;
  top: 73.507%;
  height: 8.023%;
}
.mapbtn {
  position: absolute;
  left: 25.64%;
  top: 87.4%;
  display: inline-flex;
  align-items: center;
  gap: .55cqw;
  padding: 1.25cqw 2.3cqw;
  border: 1px solid rgba(74,74,74,.32);
  border-radius: 99px;
  font-size: 1.72cqw;
  letter-spacing: .09em;
  color: #4A4A4A;
  line-height: 1;
  white-space: nowrap;
  transition: background .3s,border-color .3s;
}
.mapbtn:hover {
  background: rgba(74,74,74,.06);
  border-color: rgba(74,74,74,.5);
}
.mapbtn span {
  font-size: 1.5cqw;
  line-height: 1;
}
.credit {
  text-align: center;
  font-size: 11px;
  letter-spacing: .18em;
  color: #9A938D;
  padding: 26px 16px 30px;
  background: var(--grey);
}
.pcv {
  display: block;
}
.spv, .s-cta {
  display: none;
}
.hero-stage {
  background: #EBE6E2!important;
}
.hero-stage::before {
  content: "";
  position: absolute;
  top:-2%;right:-2%;bottom:-2%;left:-2%;
  z-index: 0;
  background: var(--i-hero) center/cover no-repeat;
  animation: kb 26s ease-in-out infinite alternate;
}
@keyframes kb {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.05);
  }
}
.js .rv{
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1);
}
.rv.in {
  opacity: 1;
  transform: none;
}
.mi, .cp {
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
.mi:hover {
  transform: translateY(-.5cqw);
}
.cp:hover {
  transform: translateY(-.35cqw);
}
.q-btn {
  transition: background .35s;
}
.q-btn:hover {
  background: #FFF8EE;
}
.hnav::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -.35cqw;
  height: 1px;
  background: currentColor;
  transition: right .45s;
}
.hnav:hover::after {
  right: 0;
}
.hnav {
  position: absolute;
}
.acbtn {
  position: absolute;
  left: 53.2%;
  top: 87.4%;
  display: inline-flex;
  align-items: center;
  padding: 1.32cqw 2.5cqw;
  border-radius: 99px;
  background: #A99A88;
  color: #fff;
  font-size: 1.72cqw;
  letter-spacing: .09em;
  line-height: 1;
  white-space: nowrap;
  transition: background .3s;
}
.acbtn:hover {
  background: #96887A;
}
.totop {
  position: fixed;
  right: 26px;
  bottom: 26px;
  z-index: 55;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 1px solid rgba(91,78,69,.22);
  background: rgba(250,247,243,.9);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  cursor: pointer;
  display: grid;
  place-items: center;
  opacity: 0;
  visibility: hidden;
  transition: .4s;
}
.totop.on {
  opacity: 1;
  visibility: visible;
}
.totop::before {
  content: "";
  width: 9px;
  height: 9px;
  border-left: 1px solid #6A5D54;
  border-top: 1px solid #6A5D54;
  transform: rotate(45deg) translate(1px,1px);
}
:focus-visible {
  outline: 2px solid #A99A88;
  outline-offset: 3px;
}
@media (max-width:820px) {
  .pcv {
    display: none;
  }
  .spv {
    display: block;
  }
  body {
    background: var(--cream);
  }
  .topbar {
    display: none;
  }
  .totop {
    display: none;
  }
  .burger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    position: fixed;
    top: 12px;
    right: 12px;
    z-index: 80;
    width: 44px;
    height: 44px;
    border: 0;
    background: rgba(250,247,243,.78);
    -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
    border-radius: 50%;
    cursor: pointer;
    padding: 0 11px;
    box-shadow: 0 2px 12px rgba(110,95,80,.10);
    opacity: 0;
    transition: opacity .9s .9s;
  }
  body.ready .burger {
    opacity: 1!important;
  }
  .burger span {
    display: block;
    height: 1px;
    background: var(--ink);
    transition: .35s;
  }
  .burger.on span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }
  .burger.on span:nth-child(2) {
    opacity: 0;
  }
  .burger.on span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }
  .drawer {
    display: flex;
    position: fixed;
    top:0;right:0;bottom:0;left:0;
    z-index: 70;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 30px;
    background: rgba(247,242,236,.975);
    -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
    opacity: 0;
    visibility: hidden;
    transition: .4s;
  }
  .drawer.on {
    opacity: 1;
    visibility: visible;
  }
  .drawer a {
    font-size: 22px;
    letter-spacing: .30em;
  }
  .drawer .bk {
    font-size: 13.5px;
    letter-spacing: .12em;
    background: #A99A88;
    color: #fff;
    padding: 14px 32px;
    border-radius: 99px;
    margin-top: 10px;
  }
  .s-hero {
    position: relative;
    height: 100vh;
  height: 100svh;
    min-height: 560px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    isolation: isolate;
  }
  .s-hero-bg {
    position: absolute;
    top:0;right:0;bottom:0;left:0;
    z-index: -2;
    background: var(--i-hero) 38% center/cover no-repeat;
    animation: kb 26s ease-in-out infinite alternate;
  }
  .s-hero::after {
    content: "";
    position: absolute;
    top:0;right:0;bottom:0;left:0;
    z-index: -1;
    background: linear-gradient(to bottom,rgba(250,241,232,.30) 0%,rgba(250,241,232,0) 26%,
      rgba(250,241,232,.20) 55%,rgba(250,241,232,.86) 88%,var(--cream) 100%);
  }
  .s-hero-in {
    padding: 0 26px 92px;
    text-align: center;
  }
  .s-logo {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 10px;
    font-weight: 400;
  }
  .s-logo .k {
    font-size: 62px;
    line-height: 1;
    color: #544840;
  }
  .s-logo .l {
    font-size: 31px;
    line-height: 1;
    letter-spacing: .10em;
    color: #544840;
    font-weight: 300;
  }
  .s-hrule {
    width: 34px;
    height: 1px;
    background: rgba(91,78,69,.42);
    margin: 20px auto 18px;
    position: relative;
  }
  .s-hrule::before, .s-hrule::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: inherit;
  }
  .s-hrule::before {
    left: 0;
    transform: translate(-45%,-50%);
  }
  .s-hrule::after {
    right: 0;
    transform: translate(45%,-50%);
  }
  .s-tag {
    font-size: 14.5px;
    line-height: 2.15;
    letter-spacing: .10em;
    color: #5F5349;
  }
  .s-sub {
    margin-top: 16px;
    font-size: 9.5px;
    letter-spacing: .34em;
    color: rgba(96,84,74,.66);
  }
  .s-scroll {
    position: absolute;
    left: 50%;
    bottom: 26px;
    width: 1px;
    height: 46px;
    background: linear-gradient(rgba(120,105,95,0),rgba(120,105,95,.7));
    animation: sc 2.6s ease-in-out infinite;
  }
  @keyframes sc {
    0%, 100% {
      opacity: .2;
      transform: scaleY(.5);
    }
    50% {
      opacity: .9;
      transform: scaleY(1);
    }
  }
  .s-sec {
    padding: 78px 24px 84px;
    position: relative;
  }
  .s-concept {
    background: var(--cream);
  }
  .s-about {
    background: #F2F0EC var(--i-bg-about) center/cover no-repeat;
  }
  .s-menu {
    background: #F3EFE9 var(--i-bg-menu) center/cover no-repeat;
  }
  .s-qa, .s-access {
    background: var(--grey);
  }
  .s-hd {
    margin-bottom: 38px;
  }
  .s-hd .en {
    font-size: 38px;
    line-height: 1;
    letter-spacing: .03em;
    color: #5B4E45;
    font-weight: 300;
  }
  .s-hd .ja {
    font-size: 12.5px;
    letter-spacing: .26em;
    margin: 14px 0 0 3px;
    color: #5B4E45;
  }
  .s-hd i {
    display: block;
    width: 118px;
    height: 1px;
    background: rgba(96,86,78,.6);
    margin-top: 20px;
    position: relative;
  }
  .s-hd i::before, .s-hd i::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 3.5px;
    height: 3.5px;
    border-radius: 50%;
    background: inherit;
  }
  .s-hd i::before {
    left: 0;
    transform: translate(-45%,-50%);
  }
  .s-hd i::after {
    right: 0;
    transform: translate(45%,-50%);
  }
  .s-qa .s-hd .en,
  .s-qa .s-hd .ja,
  .s-access .s-hd .en,
  .s-access .s-hd .ja {
    color: #4A4A4A;
  }
  .s-qa .s-hd i, .s-access .s-hd i {
    background: rgba(74,74,74,.6);
  }
  .s-catch {
    font-size: 19px;
    line-height: 2.25;
    letter-spacing: .06em;
    text-align: center;
    color: var(--ink);
    margin-bottom: 46px;
  }
  .s-cgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px 13px;
  }
  .s-cgrid figure:nth-child(even) {
    margin-top: 30px;
  }
  .s-cgrid img {
    width: 100%;
    aspect-ratio: 3/4;
    object-fit: cover;
  }
  .s-cgrid figcaption {
    margin-top: 12px;
    text-align: center;
    font-size: 13px;
    letter-spacing: .16em;
    color: var(--ink);
  }
  .s-room {
    width: calc(100% + 24px);
    max-width: none;
    margin: 0 -24px 38px 0;
    border-radius: 0 0 0 46% / 0 0 0 22%;
  }
  .s-body {
    font-size: 15px;
    line-height: 2.2;
    letter-spacing: .05em;
    color: var(--ink);
  }
  .s-body p {
    margin: 0 0 1.75em;
  }
  .s-body p:last-child {
    margin: 0;
  }
  .s-mgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px 8px;
    margin-bottom: 52px;
  }
  .s-mgrid figure {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }
  .s-mgrid img {
    width: 100%;
    height: 142px;
    object-fit: contain;
  }
  .s-mgrid figcaption {
    margin-top: 6px;
    text-align: center;
    font-size: 13px;
    letter-spacing: .10em;
    color: var(--ink);
  }
  .s-quote {
    position: relative;
    width: min(300px,88%);
    margin: 0 auto;
  }
  .s-quote img {
    width: 100%;
  }
  .s-quote p {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    text-align: center;
    font-size: 13.5px;
    line-height: 1.95;
    letter-spacing: .02em;
    color: #4E443C;
    white-space: nowrap;
  }
  .s-acc {
    display: flex;
    flex-direction: column;
    gap: 11px;
  }
  .s-item {
    background: var(--bar);
    border-radius: 13px;
    overflow: hidden;
    box-shadow: 0 1px 10px rgba(90,80,70,.05);
  }
  .s-item button {
    width: 100%;
    border: 0;
    background: none;
    font-family: inherit;
    font-weight: 300;
    color: var(--grey-ink);
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 19px 17px;
    text-align: left;
    cursor: pointer;
  }
  .s-item .qq {
    font-size: 14.5px;
    padding-top: 2px;
    flex: 0 0 auto;
  }
  .s-item .qt {
    font-size: 15px;
    line-height: 1.62;
    flex: 1 1 auto;
    letter-spacing: .02em;
  }
  .s-item .qp {
    position: relative;
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    margin-top: 7px;
  }
  .s-item .qp::before, .s-item .qp::after {
    content: "";
    position: absolute;
    top:0;right:0;bottom:0;left:0;
    margin: auto;
    background: var(--grey-ink);
  }
  .s-item .qp::before {
    width: 100%;
    height: 1px;
  }
  .s-item .qp::after {
    width: 1px;
    height: 100%;
    transition: transform .4s;
  }
  .s-item.open .qp::after {
    transform: rotate(90deg);
  }
  .s-item .ans {
    max-height: 0;
    overflow: hidden;
    transition: max-height .45s cubic-bezier(.4,0,.2,1);
  }
  .s-item.open .ans {
    max-height: 340px;
  }
  .s-item .ans p {
    padding: 0 17px 20px 42px;
    font-size: 14px;
    line-height: 1.9;
    letter-spacing: .03em;
    color: #5A5A5A;
  }
  .s-note {
    margin-top: 10px;
    padding: 22px 20px 24px;
    text-align: center;
  }
  .s-note .nt-wv {
    width: 96px;
    height: 10px;
    margin-bottom: 8px;
  }
  .s-note .nt-en {
    font-size: 19px;
  }
  .s-note .nt-ja {
    font-size: 12px;
    margin-top: 3px;
  }
  .s-note .nt-tx {
    margin: 14px 0 16px;
    font-size: 14px;
    line-height: 1.9;
  }
  .s-note .nt-ln {
    display: inline-block;
    font-size: 13.5px;
    padding: 4px 2px 3px;
  }
  .s-addr {
    font-size: 16px;
    line-height: 1.95;
    letter-spacing: .05em;
    color: #4A4A4A;
    margin-bottom: 28px;
  }
  .s-addr .zip {
    display: block;
    font-size: 12.5px;
    letter-spacing: .08em;
    margin-bottom: 5px;
  }
  .s-info {
    display: grid;
    grid-template-columns: auto 1px 1fr;
    gap: 15px 15px;
    align-items: center;
    color: #4A4A4A;
    margin-bottom: 32px;
  }
  .s-info dt {
    font-size: 14px;
    letter-spacing: .02em;
    text-align: justify;
    text-align-last: justify;
    width: 66px;
  }
  .s-info .bar {
    width: 1px;
    height: 17px;
    background: rgba(74,74,74,.55);
    position: relative;
    justify-self: center;
  }
  .s-info .bar::before, .s-info .bar::after {
    content: "";
    position: absolute;
    left: 50%;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: inherit;
  }
  .s-info .bar::before {
    top: 0;
    transform: translate(-50%,-45%);
  }
  .s-info .bar::after {
    bottom: 0;
    transform: translate(-50%,45%);
  }
  .s-info dd {
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: .03em;
  }
  .s-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 14px 24px;
    border-radius: 99px;
    font-size: 13.5px;
    letter-spacing: .09em;
    line-height: 1;
    transition: .3s;
  }
  .s-btn.ghost {
    border: 1px solid rgba(74,74,74,.32);
    color: #4A4A4A;
  }
  .s-btn.ghost:active {
    background: rgba(74,74,74,.06);
  }
  .s-credit {
    margin-top: 56px;
    padding-bottom: 74px;
    text-align: center;
    font-size: 10.5px;
    letter-spacing: .2em;
    color: #9A938D;
  }
  .s-cta {
    display: flex;
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: calc(20px + env(safe-area-inset-bottom));
    z-index: 65;
    height: 52px;
    border-radius: 99px;
    background: #A99A88;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 14px;
    letter-spacing: .13em;
    box-shadow: 0 6px 22px rgba(110,95,80,.28);
    transform: translateY(140%);
    transition: transform .45s cubic-bezier(.4,0,.2,1);
  }
  .s-cta.on {
    transform: none;
  }
}
@media (max-width:380px) {
  .s-logo .k {
    font-size: 56px;
  }
  .s-logo .l {
    font-size: 28px;
  }
  .s-catch {
    font-size: 17.5px;
  }
  .s-hd .en {
    font-size: 34px;
  }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after {
    animation: none!important;
    transition-duration: .01ms!important;
  }
  .rv {
    opacity: 1;
    transform: none;
  }
}
html:not(.js) .veil {
  display: none;
}
.veil {
  position: fixed;
  top:0;right:0;bottom:0;left:0;
  z-index: 200;
  background: var(--cream);
  display: grid;
  place-items: center;
  overflow: hidden;
  transition: opacity 1.05s .5s,visibility 1.05s .5s;
}
.veil::before {
  content: "";
  position: absolute;
  top:0;right:0;bottom:0;left:0;
  background: radial-gradient(58% 48% at 50% 45%,rgba(255,255,255,.9),rgba(250,241,232,0) 72%);
  animation: vglow 4.6s ease-in-out infinite alternate;
}
@keyframes vglow {
  from {
    opacity: .30;
  }
  to {
    opacity: .95;
  }
}
.veil::after {
  content: "";
  position: absolute;
  top: 0;
  left: -40%;
  width: 36%;
  height: 100%;
  background: linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.55),rgba(255,255,255,0));
  transform: skewX(-14deg);
  animation: vsweep 2.6s cubic-bezier(.3,.6,.2,1) .7s;
}
@keyframes vsweep {
  to {
    left: 130%;
  }
}
.veil-in {
  position: relative;
  text-align: center;
  z-index: 1;
  transition: opacity .85s .5s,translate .85s .5s;
}
.vk {
  font-size: clamp(52px,7.4vw,92px);
  line-height: 1;
  color: #584C43;
  font-weight: 400;
  opacity: 0;
  filter: blur(18px);
  scale: .90;
  letter-spacing: .28em;
  text-indent: .28em;
  animation: vk 1.6s cubic-bezier(.16,.8,.24,1) .2s forwards;
}
@keyframes vk {
  to {
    opacity: 1;
    filter: blur(0);
    scale: 1;
    letter-spacing: .04em;
    text-indent: .04em;
  }
}
.vline {
  width: 0;
  height: 1px;
  background: rgba(91,78,69,.52);
  margin: 24px auto 0;
  position: relative;
  animation: vline 1.15s cubic-bezier(.16,.8,.24,1) 1.05s forwards;
}
@keyframes vline {
  to {
    width: 78px;
  }
}
.vline::before, .vline::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 3.5px;
  height: 3.5px;
  border-radius: 50%;
  background: inherit;
  opacity: 0;
  animation: vdot .55s ease 2s forwards;
}
.vline::before {
  left: 0;
  transform: translate(-45%,-50%);
}
.vline::after {
  right: 0;
  transform: translate(45%,-50%);
}
@keyframes vdot {
  to {
    opacity: 1;
  }
}
.vsub {
  margin-top: 20px;
  font-size: 9.5px;
  letter-spacing: .46em;
  text-indent: .46em;
  color: rgba(96,84,74,.62);
  opacity: 0;
  animation: vsub 1.2s ease 1.45s forwards;
}
@keyframes vsub {
  to {
    opacity: 1;
  }
}
body.ready .veil {
  opacity: 0;
  visibility: hidden;
}
body.ready .veil-in {
  opacity: 0;
  translate: 0 -16px;
}
.hero-stage::before {
  animation: kbpan 38s ease-in-out infinite alternate;
}
@keyframes kbpan {
  from {
    transform: scale(1.03) translateX(-1.1%);
  }
  to {
    transform: scale(1.07) translateX(1.1%);
  }
}
.js .hv, .js .hkanji, .js .hlatin, .js .hsub, .js .hnav, .js .hcta {
  opacity: 0;
  translate: 0 14px;
  transition: opacity 1.15s cubic-bezier(.2,.7,.2,1),translate 1.15s cubic-bezier(.2,.7,.2,1);
}
body.ready .hv,
body.ready .hkanji,
body.ready .hlatin,
body.ready .hsub,
body.ready .hnav,
body.ready .hcta {
  opacity: 1;
  translate: none;
}
body.ready .hkanji {
  transition-delay: .50s;
}
body.ready .hlatin {
  transition-delay: .66s;
}
body.ready .hv {
  transition-delay: .88s;
}
body.ready .hsub {
  transition-delay: 1.08s;
}
body.ready .hcta {
  transition-delay: .30s;
}
body.ready .hn1 {
  transition-delay: 1.12s;
}
body.ready .hn2 {
  transition-delay: 1.22s;
}
body.ready .hn3 {
  transition-delay: 1.32s;
}
body.ready .hn4 {
  transition-delay: 1.42s;
}
body.ready .hn5 {
  transition-delay: 1.52s;
}
.js .rv>* {
  opacity: 0;
  translate: 0 20px;
  transition: opacity 1.05s cubic-bezier(.2,.7,.2,1),translate 1.05s cubic-bezier(.2,.7,.2,1);
}
.js .rv.in>* {
  opacity: 1;
  translate: none;
}
.rv.in>*:nth-child(1) {
  transition-delay: 0s;
}
.rv.in>*:nth-child(2) {
  transition-delay: .08s;
}
.rv.in>*:nth-child(3) {
  transition-delay: .16s;
}
.rv.in>*:nth-child(4) {
  transition-delay: .24s;
}
.rv.in>*:nth-child(5) {
  transition-delay: .32s;
}
.rv.in>*:nth-child(6) {
  transition-delay: .40s;
}
.rv.in>*:nth-child(n+7) {
  transition-delay: .48s;
}
.cp .ph {
  position: absolute;
  top:0;right:0;bottom:0;left:0;
  overflow: hidden;
}
.cp .ph img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.065);
  translate: 0 var(--px,0px);
  will-change: transform,translate;
  transition: transform .9s cubic-bezier(.2,.7,.2,1);
}
.cp:hover .ph img {
  transform: scale(1.10);
}
.a-room, .rv.in .a-room {
  translate: 0 var(--px,0px);
}
.a-room {
  will-change: translate;
}
@keyframes drift {
  0%, 100% {
    transform: translate3d(0,0,0) rotate(0deg);
  }
  50% {
    transform: translate3d(0,-.55cqw,0) rotate(.35deg);
  }
}
.mi {
  animation: drift 11s ease-in-out infinite;
  transition: filter .5s;
}
.mi-hand {
  animation-duration: 13s;
  animation-delay: -2s;
}
.mi-gypsum {
  animation-duration: 9.5s;
  animation-delay: -4s;
}
.mi-facial {
  animation-duration: 12.5s;
  animation-delay: -1s;
}
.mi-stone {
  animation-duration: 10.5s;
  animation-delay: -5s;
}
.mi-headspa {
  animation-duration: 14s;
  animation-delay: -3s;
}
.mi:hover {
  filter: brightness(1.04) saturate(1.04);
}
.m-quote {
  animation: breathe 16s ease-in-out infinite;
}
@keyframes breathe {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.012);
  }
}
.js .q-ans p, .js .s-item .ans p {
  opacity: 0;
  translate: 0 -6px;
  transition: opacity .5s .1s,translate .5s .1s;
}
.q-item.open .q-ans p, .s-item.open .ans p {
  opacity: 1;
  translate: none;
}
.hcta, .acbtn, .s-cta, .mapbtn {
  overflow: hidden;
}
.topbar .book, .drawer .bk, .s-btn {
  position: relative;
  overflow: hidden;
}
.hcta::after,
.acbtn::after,
.topbar .book::after,
.s-cta::after,
.drawer .bk::after {
  content: "";
  position: absolute;
  top: -60%;
  left: -70%;
  width: 45%;
  height: 220%;
  background: linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.42),rgba(255,255,255,0));
  transform: skewX(-18deg);
  animation: shine 7s ease-in-out infinite;
}
@keyframes shine {
  0%, 68% {
    left: -70%;
  }
  88%, 100% {
    left: 130%;
  }
}
.mapbtn::after {
  content: "";
  position: absolute;
  top:0;right:0;bottom:0;left:0;
  border-radius: 99px;
  background: rgba(74,74,74,0);
  transition: background .35s;
}
.mapbtn:hover::after {
  background: rgba(74,74,74,.05);
}
.js .rl, .js .s-hd i {
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 1.2s cubic-bezier(.2,.7,.2,1) .25s;
}
.js .rv.in .rl, .js .rv.in i {
  transform: scaleX(1);
}
.rv.in .c-catch1 {
  transition-delay: .05s;
}
.rv.in .c-catch2 {
  transition-delay: .22s;
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after {
    animation: none!important;
    transition-duration: .01ms!important;
  }
  .rv>*,
  .hv,
  .hkanji,
  .hlatin,
  .hsub,
  .hnav,
  .hcta,
  .s-hero-in>*,
  .s-scroll,
  .q-ans p,
  .s-item .ans p {
    opacity: 1!important;
    translate: none!important;
  }
  .rl, .s-hd i {
    transform: scaleX(1)!important;
  }
  .veil {
    display: none;
  }
}
@media (max-width:820px) {
  .s-hero-bg {
    position: absolute;
    top: 0;
    left: 50%;
    height: 100%;
    width: auto;
    max-width: none;
    z-index: -2;
    object-fit: cover;
    will-change: transform;
    animation: panx 36s ease-in-out infinite alternate;
  }
  @keyframes panx {
    from {
      transform: translateX(-42%) scale(1.02);
    }
    to {
      transform: translateX(-58%) scale(1.06);
    }
  }
  .js .s-hero-in>* {
    opacity: 0;
    translate: 0 16px;
    transition: opacity 1.15s cubic-bezier(.2,.7,.2,1),translate 1.15s cubic-bezier(.2,.7,.2,1);
  }
  .js body.ready .s-hero-in>* {
    opacity: 1;
    translate: none;
  }
  body.ready .s-hero-in>*:nth-child(1) {
    transition-delay: .45s;
  }
  body.ready .s-hero-in>*:nth-child(2) {
    transition-delay: .62s;
  }
  body.ready .s-hero-in>*:nth-child(3) {
    transition-delay: .78s;
  }
  body.ready .s-hero-in>*:nth-child(4) {
    transition-delay: .96s;
  }
  .js .s-scroll {
    opacity: 0;
    transition: opacity 1s 1.4s;
  }
  body.ready .s-scroll {
    opacity: 1;
  }
  .s-cgrid .ph {
    display: block;
    overflow: hidden;
    aspect-ratio: 3/4;
  }
  .s-cgrid .ph img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.07);
    translate: 0 var(--px,0px);
    will-change: transform,translate;
  }
  .s-mgrid figure {
    animation: drift2 11s ease-in-out infinite;
  }
  .s-mgrid figure:nth-child(2) {
    animation-duration: 13s;
    animation-delay: -2s;
  }
  .s-mgrid figure:nth-child(3) {
    animation-duration: 9.5s;
    animation-delay: -4s;
  }
  .s-mgrid figure:nth-child(4) {
    animation-duration: 12.5s;
    animation-delay: -1s;
  }
  .s-mgrid figure:nth-child(5) {
    animation-duration: 10.5s;
    animation-delay: -5s;
  }
  .s-mgrid figure:nth-child(6) {
    animation-duration: 14s;
    animation-delay: -3s;
  }
  @keyframes drift2 {
    0%, 100% {
      transform: translateY(0);
    }
    50% {
      transform: translateY(-5px);
    }
  }
  .s-quote img {
    animation: breathe 16s ease-in-out infinite;
  }
  .s-cta {
    transition: transform .55s cubic-bezier(.34,1.4,.5,1);
  }
  .s-item {
    transition: box-shadow .35s;
  }
  .s-item.open {
    box-shadow: 0 4px 18px rgba(90,80,70,.10);
  }
  .mi {
    animation: none;
  }
}
:root {
  --brown: #B08D6E;
  --brown-deep: #96745A;
  --brown-pale: rgba(176,141,110,.26);
  --hair: rgba(91,78,69,.16);
  --f-en: 'Cormorant Garamond',serif;
}
.m-quote, .enso svg {
  overflow: visible;
}
.m-quote {
  display: block;
  aspect-ratio: 1/1;
  height: auto;
}
.m-quote path, .enso path {
  fill: none;
  stroke: var(--brown);
  stroke-linecap: round;
  stroke-dasharray: 660;
  stroke-dashoffset: 660;
}
.m-quote .p-thick, .enso .p-thick {
  stroke-width: 9;
  opacity: .14;
}
.m-quote .p-thin, .enso .p-thin {
  stroke-width: 1.8;
  opacity: .62;
}
.rv.in .m-quote path, .enso.in path {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 2.8s cubic-bezier(.3,.7,.3,1) .3s;
}
.m-qtext {
  color: #4E443C;
}
.m-qtext .big {
  color: var(--brown-deep);
}
body.menu-open {
  overflow: hidden;
}
@media (max-width:820px) {
  .s-hero {
    display: block;
    height: auto;
    min-height: 0;
    aspect-ratio: 853/1844;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    container-type: inline-size;
    background: var(--cream);
  }
  .s-hero-bg {
    position: absolute;
    top:0;right:0;bottom:0;left:0;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    z-index: 0;
    animation: none;
    transform: none;
    will-change: auto;
  }
  .s-hero-layers {
    position: absolute;
    top:0;right:0;bottom:0;left:0;
    z-index: 1;
  }
  .hl {
    position: absolute;
    left: var(--l);
    top: var(--t);
    width: var(--w);
    height: var(--h);
  }
  .hl img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .s-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 6%;
    z-index: 2;
    background: linear-gradient(rgba(250,241,232,0),var(--cream));
    pointer-events: none;
  }
  .s-hero-art {
    position: absolute;
    top:0;right:0;bottom:0;left:0;
    z-index: 3;
    pointer-events: none;
  }
  .sh-copy {
    position: absolute;
    writing-mode: vertical-rl;
    font-family: var(--jp);
    font-weight: 300;
    font-size: 2.40cqw;
    letter-spacing: .19em;
    line-height: 1;
    color: #6F6157;
    white-space: nowrap;
    margin: 0;
  }
  .sh-r {
    left: 15.5%;
    top: 24.7%;
    transform: translateX(-50%);
  }
  .sh-l {
    left: 10.0%;
    top: 26.3%;
    transform: translateX(-50%);
  }
  .sh-rule {
    position: absolute;
    left: 10.1%;
    top: 44.4%;
    width: 1px;
    height: 6.9%;
    background: rgba(122,110,100,.5);
    transform-origin: top;
  }
  .sh-nagi {
    position: absolute;
    left: 8.05%;
    top: 65.53%;
    width: 32.12%;
    height: auto;
    color: #8E7355;
    overflow: visible;
  }
  .sh-sub {
    position: absolute;
    left: 31.5%;
    top: 74.1%;
    font-family: var(--f-en);
    font-weight: 300;
    font-size: 1.75cqw;
    letter-spacing: .10em;
    line-height: 1;
    color: #8E8177;
    white-space: nowrap;
  }
  .js .sh-copy, .js .sh-sub {
    opacity: 0;
    translate: 0 10px;
    transition: opacity 1.4s cubic-bezier(.2,.7,.2,1),translate 1.4s cubic-bezier(.2,.7,.2,1);
  }
  body.ready .sh-copy, body.ready .sh-sub {
    opacity: 1;
    translate: none;
  }
  .js .sh-rule {
    transform: scaleY(0);
    transition: transform 1.4s cubic-bezier(.2,.7,.2,1);
  }
  body.ready .sh-rule {
    transform: scaleY(1);
  }
  .sh-nagi .ink {
    fill: none;
    stroke: #fff;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 22;
  }
  .s-scroll {
    bottom: 2.2%;
    opacity: .85;
    z-index: 4;
  }
  .js .hl {
    opacity: 0;
    scale: 1.10;
    filter: blur(12px);
    translate: 0 72px;
    transition: opacity 1.5s cubic-bezier(.2,.7,.2,1),
               translate 1.8s cubic-bezier(.16,.78,.22,1),
               scale 2.1s cubic-bezier(.16,.78,.22,1),
               filter 1.4s ease;
  }
  body.ready .hl {
    opacity: 1;
    translate: none;
    scale: 1;
    filter: none;
  }
  .js .hl-a {
    translate: -72px 42px;
  }
  .js .hl-c {
    translate: 64px -58px;
  }
  .js .hl-b {
    translate: 0 88px;
  }
  .js .hl-d {
    translate: 58px 48px;
  }
  .js .hl-e {
    translate: 0 112px;
  }
  body.ready .hl-c {
    transition-delay: .15s;
  }
  body.ready .hl-a {
    transition-delay: .33s;
  }
  body.ready .hl-b {
    transition-delay: .51s;
  }
  body.ready .hl-d {
    transition-delay: .69s;
  }
  body.ready .hl-e {
    transition-delay: .87s;
  }
  body.ready .sh-r {
    transition-delay: 1.25s;
  }
  body.ready .sh-l {
    transition-delay: 1.45s;
  }
  body.ready .sh-rule {
    transition-delay: 1.75s;
  }
  body.ready .sh-sub {
    transition-delay: 1.95s;
  }
  .drawer {
    display: flex;
    position: fixed;
    top:0;right:0;bottom:0;left:0;
    z-index: 70;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    background: var(--cream);
    -webkit-backdrop-filter: none;
  backdrop-filter: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity .55s ease,visibility .55s ease;
  }
  .drawer::before {
    content: "";
    position: absolute;
    top:0;right:0;bottom:0;left:0;
    pointer-events: none;
    background: radial-gradient(62% 46% at 50% 42%,rgba(255,255,255,.85),rgba(250,241,232,0) 74%);
  }
  .drawer.on {
    opacity: 1;
    visibility: visible;
  }
  .drawer>* {
    position: relative;
    z-index: 1;
  }
  .drawer a {
    font-family: var(--f-en);
    font-weight: 400;
    font-size: 1.2rem;
    letter-spacing: .32em;
    text-indent: .32em;
    color: #5B4E45;
    opacity: 0;
    transform: translateY(10px);
  }
  .drawer.on a {
    opacity: 1;
    transform: none;
    transition: opacity .5s ease,transform .5s ease;
  }
  .drawer.on a:nth-child(1) {
    transition-delay: .16s;
  }
  .drawer.on a:nth-child(2) {
    transition-delay: .23s;
  }
  .drawer.on a:nth-child(3) {
    transition-delay: .30s;
  }
  .drawer.on a:nth-child(4) {
    transition-delay: .37s;
  }
  .drawer.on a:nth-child(5) {
    transition-delay: .44s;
  }
  .drawer.on .bk {
    transition-delay: .53s;
  }
  .drawer .bk {
    font-family: var(--jp);
    font-weight: 300;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: min(268px,78vw);
    margin-top: 14px;
    padding: 1.15em 2.2em;
    border-radius: 999px;
    background: #A99A88;
    color: #fff;
    font-size: 13.5px;
    letter-spacing: .16em;
    line-height: 1;
    box-shadow: 0 8px 26px -14px rgba(110,95,80,.65);
    position: relative;
    overflow: hidden;
  }
  .s-menu {
    padding: 0!important;
  }
  .mn-wrap {
    padding: 78px 24px 10px;
  }
  .chapter {
    text-align: center;
    margin-bottom: 38px;
  }
  .chapter .ch-en {
    display: block;
    font-weight: 300;
    line-height: 1;
    font-size: 38px;
    letter-spacing: .03em;
    color: #5B4E45;
  }
  .chapter .ch-ja {
    display: block;
    font-size: 12.5px;
    letter-spacing: .26em;
    text-indent: .26em;
    color: #5B4E45;
    margin-top: 14px;
  }
  .chapter .ch-rl {
    display: block;
    width: 118px;
    height: 1px;
    background: rgba(96,86,78,.6);
    margin: 20px auto 0;
    position: relative;
  }
  .chapter .ch-rl::before, .chapter .ch-rl::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 3.5px;
    height: 3.5px;
    border-radius: 50%;
    background: inherit;
  }
  .chapter .ch-rl::before {
    left: 0;
    transform: translate(-45%,-50%);
  }
  .chapter .ch-rl::after {
    right: 0;
    transform: translate(45%,-50%);
  }
  .js .rv .ch-rl {
    transform-origin: center;
    transform: scaleX(0);
    transition: transform 1.2s cubic-bezier(.2,.7,.2,1) .25s;
  }
  .js .rv.in .ch-rl {
    transform: scaleX(1);
  }
  .shinagaki {
    max-width: 760px;
    margin: 0 auto;
    border-top: 1px solid var(--hair);
  }
  .dish {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 14px;
    padding: 15px 2px;
    border-bottom: 1px solid var(--hair);
    transition: background .5s ease,
               opacity 1.05s cubic-bezier(.2,.7,.2,1),
               translate 1.05s cubic-bezier(.2,.7,.2,1);
  }
  .dish .row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 2px;
    width: 100%;
  }
  .dish .jp {
    font-size: 1rem;
    letter-spacing: .06em;
    line-height: 1.55;
    color: #4E443C;
  }
  .dish .lead {
    display: none;
  }
  .dish .men {
    font-family: var(--f-en);
    font-style: italic;
    font-weight: 400;
    font-size: .86rem;
    letter-spacing: .10em;
    color: var(--brown-deep);
    flex-basis: 100%;
  }
  .dish .thumb {
    width: 66px;
    aspect-ratio: 1/1;
    border-radius: 50%;
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
  }
  .dish .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .dish .thumb.soon {
    background: rgba(255,252,247,.72);
    border: 1px solid var(--brown-pale);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .dish .thumb.soon span {
    font-size: .62rem;
    letter-spacing: .12em;
    color: #A8A093;
    text-align: center;
    line-height: 1.6;
  }
  .menu-note {
    max-width: 760px;
    margin: 20px auto 0;
    font-size: .72rem;
    letter-spacing: .12em;
    color: #A8A093;
    text-align: right;
  }
  .quote-band {
    position: relative;
    overflow: hidden;
    margin-top: 44px;
    padding: 74px 20px 84px;
    background: linear-gradient(180deg,#F2EEE7 0%,#F8F2EA 46%,#F2EEE7 100%);
  }
  .quote-band::before {
    content: "";
    position: absolute;
    top:-14%;right:-14%;bottom:-14%;left:-14%;
    pointer-events: none;
    background: repeating-radial-gradient(circle at 50% 50%,
        rgba(176,141,110,0) 0 42px,
        rgba(176,141,110,.20) 42px 43px,
        rgba(176,141,110,0) 43px 86px);
    -webkit-mask-image: radial-gradient(ellipse 60% 56% at 50% 50%,transparent 42%,#000 92%);
    mask-image: radial-gradient(ellipse 60% 56% at 50% 50%,transparent 42%,#000 92%);
    opacity: .5;
    animation: calmripple 24s ease-in-out infinite alternate;
  }
  @keyframes calmripple {
    from {
      transform: scale(1);
      opacity: .34;
    }
    to {
      transform: scale(1.05);
      opacity: .62;
    }
  }
  .enso {
    position: relative;
    z-index: 2;
    width: min(84vw,360px);
    aspect-ratio: 1/1;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .enso svg {
    position: absolute;
    top:0;right:0;bottom:0;left:0;
    width: 100%;
    height: 100%;
  }
  .enso p {
    position: relative;
    z-index: 2;
    text-align: center;
    font-size: 13.5px;
    line-height: 2.35;
    letter-spacing: .06em;
    color: #4E443C;
  }
  .enso p .big {
    font-size: 1.2em;
    color: var(--brown-deep);
    letter-spacing: .14em;
  }
}
@media (prefers-reduced-motion:reduce) {
  .m-quote path, .enso path {
    stroke-dashoffset: 0!important;
  }
  .chapter .ch-rl {
    transform: scaleX(1)!important;
  }
  .drawer a {
    opacity: 1!important;
    transform: none!important;
  }
  .s-hero-art>* {
    opacity: 1!important;
    translate: none!important;
    transform: none!important;
  }
  .sh-nagi {
    clip-path: none!important;
  }
  .hl, .hl img {
    opacity: 1!important;
    translate: none!important;
    scale: 1!important;
    filter: none!important;
    animation: none!important;
  }
  .s-hero-layers {
    -webkit-mask-image: none!important;
    mask-image: none!important;
  }
  .s-hero-glow {
    display: none!important;
  }
}

.hero{position:relative;isolation:isolate;overflow:hidden}
.hero::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;
  background:var(--i-hero) center/cover no-repeat;
  filter:blur(48px) saturate(.85) brightness(1.06);transform:scale(1.15);opacity:.5}
.hero::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;
  background:linear-gradient(90deg,var(--cream) 0%,rgba(250,241,232,0) 14%,rgba(250,241,232,0) 86%,var(--cream) 100%)}
.hero-stage{position:relative;z-index:1}

.enso path,.m-quote path{stroke-dashoffset:0}
.js .enso:not(.in) path,.js .rv:not(.in) .m-quote path{stroke-dashoffset:660}
.s-cta{transform:none}
.js .s-cta{transform:translateY(220%)}
.js .s-cta.on{transform:none}

html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
a,button{-webkit-tap-highlight-color:rgba(0,0,0,0)}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .topbar{background:rgba(250,247,243,.97)}
  .burger{background:rgba(250,247,243,.96)}
  .drawer{background:rgba(247,242,236,.995)}
}

@supports not (container-type: inline-size){
  .stage{max-width:1250px}
}

@supports not (translate: 0 1px){
  .rv>*,.hv,.hkanji,.hlatin,.hsub,.hnav,.hcta,.s-hero-in>*{opacity:1!important}
}

.q-leaf{isolation:auto;will-change:auto}

img{-webkit-user-select:none;user-select:none}
.hero-stage,.s-hero{-webkit-transform:translateZ(0);transform:translateZ(0)}

@supports not (aspect-ratio: 1 / 1){
.hero-stage::before{content:"";display:block;padding-top:59.595%}
#concept .stage::before{content:"";display:block;padding-top:58.378%}
#about .stage::before{content:"";display:block;padding-top:55.676%}
#menu .stage::before{content:"";display:block;padding-top:56.486%}
#qa .stage::before{content:"";display:block;padding-top:30.946%}
#access .stage::before{content:"";display:block;padding-top:36.216%}
.s-cgrid .ph::before,.s-cgrid img{padding-top:0}
}
@supports not (container-type: inline-size){
.hv{font-size: 1.620vw}
.hkanji{font-size: 7.939vw}
.hlatin{font-size: 4.764vw}
.hsub{font-size: 1.25vw}
.hnav{font-size: 1.520vw}
.hcta{font-size: 1.486vw}
.rl{height: .068vw}
.rl::before, .rl::after{width: .215vw;height: .215vw}
.ac-d{width: .068vw}
.ac-d::before, .ac-d::after{width: .215vw;height: .215vw}
.c-en{font-size: 4.32vw}
.c-sub1{font-size: 1.96vw}
.c-sub2{font-size: 1.95vw}
.c-catch{font-size: 4.53vw}
.cp-house figcaption{top: 20.23vw;left: 19.12vw;font-size: 2.82vw}
.cp-baby  figcaption{top: 25.00vw;left: 9.72vw;font-size: 2.70vw}
.cp-work  figcaption{top: 26.69vw;left: 7.37vw;font-size: 2.70vw}
.cp-human figcaption{top: 27.94vw;left: 9.72vw;font-size: 2.23vw}
.a-en{font-size: 5.26vw}
.a-ja{font-size: 2.30vw}
.a-body{font-size: 1.486vw}
.m-en{font-size: 5.10vw}
.m-ja{font-size: 2.09vw}
.mi figcaption{font-size: 2.72vw}
.mi-aroma   figcaption{left: 12.368vw;top: 22.12vw}
.mi-hand    figcaption{left: 14.564vw;top: 17.60vw}
.mi-gypsum  figcaption{left: 8.747vw;top: 20.43vw}
.mi-facial  figcaption{left: 13.789vw;top: 16.50vw}
.mi-stone   figcaption{left: 12.566vw;top: 17.39vw}
.mi-headspa figcaption{left: 10.232vw;top: 18.03vw}
.m-qtext{font-size: 1.80vw}
.q-en{font-size: 4.33vw}
.q-ja{font-size: 2.33vw}
.q-btn{padding: 0 2.1vw 0 1.42vw}
.q-btn .qq{font-size: 2.37vw}
.q-btn .qt{font-size: 2.37vw;margin-left: 2.8vw}
.q-btn .qp{width: 1.97vw;height: 1.97vw}
.q-btn .qp::before{height: .09vw}
.q-btn .qp::after{width: .09vw}
.q-item.open .q-ans{max-height: 40vw}
.q-ans p{padding: 0 2.1vw 2.4vw 6.0vw;font-size: 2.02vw}
.q-note{gap: .5vw;padding: .8vw 2.4vw}
.q-note .nt-lb{gap: 1vw}
.q-note .nt-wv{width: 5vw;height: .7vw}
.q-note .nt-en{font-size: 1.6vw}
.q-note .nt-ja{font-size: 1vw}
.q-note .nt-tx{font-size: 1.3vw}
.q-note .nt-ln{font-size: 1.15vw;padding-bottom: .25vw}
.ac-en{font-size: 4.71vw}
.ac-ja{font-size: 2.17vw}
.ac-zip{font-size: 2.13vw}
.ac-ad1{font-size: 2.33vw}
.ac-ad2{font-size: 2.13vw}
.ac-k{font-size: 2.33vw}
.ac-v{font-size: 2.33vw}
.k1{width: 10.90vw}
.k2{width: 9.60vw}
.k3{width: 9.60vw}
.mapbtn{gap: .55vw;padding: 1.25vw 2.3vw;font-size: 1.72vw}
.mapbtn span{font-size: 1.5vw}
.mi:hover{transform: translateY(-.5vw)}
.cp:hover{transform: translateY(-.35vw)}
.hnav::after{bottom: -.35vw}
.acbtn{padding: 1.32vw 2.5vw;font-size: 1.72vw}
50%{transform: translate3d(0,-.55vw,0) rotate(.35deg)}
.sh-copy{font-size: 2.40vw}
.sh-sub{font-size: 1.75vw}
}

html:not(.js) .veil{display:none!important}
html:not(.js) .burger{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
html:not(.js) .rv,html:not(.js) .rv>*{opacity:1!important;translate:none!important}
html:not(.js) .rl,html:not(.js) .s-hd i,html:not(.js) .sh-rule{transform:none!important}

.js .cp{transition:none}
.js [data-focus]{
  -webkit-transform:translateY(var(--px,0px));
          transform:translateY(var(--px,0px));
}
.js [data-focus] .ph{
  -webkit-transform:scale(1.05); transform:scale(1.05);
  will-change:transform;
  -webkit-transition:-webkit-transform 1.3s cubic-bezier(.22,.68,.16,1);
          transition:        transform 1.3s cubic-bezier(.22,.68,.16,1);
}
.js [data-focus].focused .ph{ -webkit-transform:scale(1); transform:scale(1); }
.js [data-focus] .ph img{
  -webkit-transform:scale(1.06); transform:scale(1.06);
  translate:none;
  -webkit-filter:blur(20px); filter:blur(20px);
  -webkit-transition:-webkit-filter 1.3s cubic-bezier(.22,.68,.16,1);
          transition:        filter 1.3s cubic-bezier(.22,.68,.16,1);
}
.js [data-focus].focused .ph img{ -webkit-filter:blur(0); filter:blur(0); }

.js .cp:hover{ -webkit-transform:translateY(var(--px,0px)); transform:translateY(var(--px,0px)); }
.js .cp.focused:hover .ph{ -webkit-transform:scale(1.03); transform:scale(1.03); }
.js .cp.focused:hover .ph img{ -webkit-transform:scale(1.06); transform:scale(1.06); }

@media (max-width:820px){
  .js [data-focus] .ph{ -webkit-transform:scale(1.05); transform:scale(1.05); }
  .js [data-focus].focused .ph{ -webkit-transform:scale(1); transform:scale(1); }
  .js [data-focus] .ph img{
    -webkit-transform:scale(1.07); transform:scale(1.07);
    -webkit-filter:blur(16px); filter:blur(16px);
  }
}
@media (prefers-reduced-motion:reduce){
  .js [data-focus],.js [data-focus] .ph,.js [data-focus] .ph img{
    -webkit-transform:none!important;transform:none!important;
    -webkit-filter:none!important;filter:none!important;transition:none!important}
}

:root{
  --i-soon:url(img/bg-soon.webp);
  --line-ink:#6A5D54;
  --line-edge:rgba(169,154,136,.55);
}

.hcta{
  left:86.78%;
  width:11.6%;
  letter-spacing:.2em;
  text-indent:.2em;
}
.hline{
  left:66.9%;
  top:1.70%;
  width:18.6%;
  height:7.31%;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:99px;
  border:1px solid rgba(255,255,255,.8);
  background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:blur(6px);
          backdrop-filter:blur(6px);
  color:var(--line-ink);
  font-size:1.486cqw;
  letter-spacing:.08em;
  line-height:1;
  white-space:nowrap;
  transition:background .3s;
}
.hline:hover{ background:rgba(255,255,255,.85); }
.hline span{ position:relative; top:-.05em; }
.js .hline{
  opacity:0;
  translate:0 14px;
  transition:opacity 1.15s cubic-bezier(.2,.7,.2,1),translate 1.15s cubic-bezier(.2,.7,.2,1),background .3s;
}
body.ready .hline{ opacity:1; translate:none; transition-delay:.38s,.38s,0s; }

.topbar nav a{ white-space:nowrap; }
.topbar .line{
  font-size:12.5px;
  letter-spacing:.1em;
  padding:8px 18px;
  border-radius:99px;
  border:1px solid var(--line-edge);
  color:var(--line-ink);
  transition:background .3s;
}
.topbar .line:hover{ background:rgba(255,255,255,.7); }
.topbar nav a.line::after{ display:none; }
.topbar .book{ letter-spacing:.2em; text-indent:.2em; }
@media (min-width:821px) and (max-width:1040px){
  .topbar nav{ gap:14px; }
  .topbar nav a{ font-size:13px; letter-spacing:.08em; }
  .topbar .line, .topbar .book{ padding:8px 14px; }
}

.acbtn{ letter-spacing:.2em; text-indent:.2em; }
.acline{
  position:absolute;
  left:66.4%;
  top:87.4%;
  display:inline-flex;
  align-items:center;
  padding:1.32cqw 2.5cqw;
  border-radius:99px;
  border:1px solid var(--line-edge);
  background:rgba(255,255,255,.55);
  color:var(--line-ink);
  font-size:1.72cqw;
  letter-spacing:.08em;
  line-height:1;
  white-space:nowrap;
  transition:background .3s;
}
.acline:hover{ background:rgba(255,255,255,.9); }
.pc-links{
  text-align:center;
  padding:30px 16px 0;
  background:var(--grey);
}
.pc-links a{
  display:inline-flex;
  align-items:center;
  padding:11px 28px;
  border-radius:99px;
  border:1px solid rgba(74,74,74,.32);
  color:#4A4A4A;
  font-size:14px;
  letter-spacing:.12em;
  line-height:1;
  transition:background .3s;
}
.pc-links a:hover{ background:rgba(74,74,74,.06); }

.a-soon{
  aspect-ratio:1050/997;
  background:var(--i-soon) center/100% 100% no-repeat;
}
.a-soon span{
  position:absolute;
  left:50%;
  top:48%;
  -webkit-transform:translate(-50%,-50%);
          transform:translate(-50%,-50%);
  font-size:1.5cqw;
  letter-spacing:.4em;
  text-indent:.4em;
  color:#A8A093;
  white-space:nowrap;
  line-height:1;
}

.s-soon{
  position:relative;
  aspect-ratio:1050/997;
  background:var(--i-soon) center/100% 100% no-repeat;
}
.s-soon span{
  position:absolute;
  left:50%;
  top:48%;
  -webkit-transform:translate(-50%,-50%);
          transform:translate(-50%,-50%);
  font-size:14px;
  letter-spacing:.35em;
  text-indent:.35em;
  color:#A8A093;
  white-space:nowrap;
  line-height:1;
}
@supports not (aspect-ratio:1/1){
  .a-soon::before, .s-soon::before{ content:""; display:block; padding-top:94.95%; }
}
@supports not (container-type:inline-size){
  .hline{ font-size:1.486vw; }
  .acline{ padding:1.32vw 2.5vw; font-size:1.72vw; }
  .a-soon span{ font-size:1.5vw; }
}
@supports not (translate:0 1px){
  .hline{ opacity:1!important; }
}

.drawer .ln{
  font-family:var(--jp);
  font-weight:300;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:min(268px,78vw);
  margin-top:-8px;
  padding:1.05em 2.2em;
  border-radius:999px;
  border:1px solid var(--line-edge);
  background:rgba(255,255,255,.55);
  color:var(--line-ink);
  font-size:13.5px;
  letter-spacing:.14em;
  text-indent:0;
  line-height:1;
}
.drawer .sns{
  font-family:var(--jp);
  font-weight:300;
  font-size:12.5px;
  letter-spacing:.16em;
  text-indent:0;
  color:#8A7D72;
  padding-bottom:3px;
  border-bottom:1px solid rgba(138,125,114,.5);
}
.drawer .bk{ letter-spacing:.24em; text-indent:.24em; }
.drawer.on .ln{ transition-delay:.60s; }
.drawer.on .sns{ transition-delay:.67s; }

.s-links{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

@media (max-width:820px){
  .s-cta{
    gap:8px;
    background:none;
    box-shadow:none;
    overflow:visible;
    border-radius:0;
  }
  .s-cta::after{ content:none; display:none; }
  .s-cta a{
    position:relative;
    overflow:hidden;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:99px;
    font-size:13.5px;
    line-height:1;
    white-space:nowrap;
    box-shadow:0 6px 22px rgba(110,95,80,.24);
  }
  .s-cta .sc-line{
    flex:1.3 1 0;
    border:1px solid var(--line-edge);
    background:rgba(255,252,247,.95);
    color:var(--line-ink);
    letter-spacing:.06em;
  }
  .s-cta .sc-book{
    flex:1 1 0;
    background:#A99A88;
    color:#fff;
    letter-spacing:.24em;
    text-indent:.24em;
  }
  .s-cta .sc-book::after{
    content:"";
    position:absolute;
    top:-60%;
    left:-70%;
    width:45%;
    height:220%;
    background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.42),rgba(255,255,255,0));
    transform:skewX(-18deg);
    animation:shine 7s ease-in-out infinite;
  }
}
@media (max-width:360px){
  .s-cta a{ font-size:12.5px; }
  .s-cta .sc-line{ letter-spacing:.02em; }
}
@media (prefers-reduced-motion:reduce){
  .js .hline{ opacity:1!important; translate:none!important; }
  .s-cta .sc-book::after{ animation:none!important; display:none; }
}

.mi-soon .soon{
  position:absolute;
  -webkit-transform:translate(-50%,-50%);
          transform:translate(-50%,-50%);
  font-size:1.15cqw;
  letter-spacing:.35em;
  text-indent:.35em;
  color:#A8A093;
  white-space:nowrap;
  line-height:1;
  pointer-events:none;
}
@supports not (container-type:inline-size){
  .mi-soon .soon{ font-size:1.15vw; }
}
