:root{
  --ink:#5C4664;
  --paper:#f4f1eb;
  --paper2:#e8e3db;
  --gray:#77736c;
  --charcoal:#5C4664;
  --line:#d3cabd;
  --accent:#7b7180;
  --accent2:#b9b0b8;
  --white:#fff;
  --shadow:0 18px 48px rgba(92,70,100,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans JP',system-ui,sans-serif;line-height:1.9;letter-spacing:.03em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}.site-header{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(to bottom,rgba(92,70,100,.48),rgba(92,70,100,0));color:#fff}.brand img{width:92px;height:auto}.header-cta{font-size:12px;line-height:1;padding:11px 14px;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:rgba(92,70,100,.22);backdrop-filter:blur(10px)}.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:#5C4664}.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.02) saturate(.82)}.hero-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(18,18,18,.36) 0%,rgba(18,18,18,.16) 32%,rgba(18,18,18,.72) 100%),radial-gradient(circle at 45% 42%,rgba(255,255,255,.08),transparent 35%)}.hero-content{position:relative;color:#fff;padding:0 22px 86px;max-width:620px}.eyebrow,.section-kicker{margin:0 0 12px;font-size:11px;text-transform:uppercase;letter-spacing:.22em;color:var(--accent2);font-weight:700}.hero .eyebrow{color:#d5c7b1}.hero h1{margin:0 0 24px;line-height:.94;font-weight:400}.hero h1 span{display:block;font-family:'Pinyon Script',cursive;font-size:clamp(56px,18vw,112px);letter-spacing:0;text-shadow:0 12px 28px rgba(92,70,100,.28)}.hero h1 em{display:block;margin-top:10px;font-style:normal;font-family:'Shippori Mincho',serif;font-size:clamp(22px,7vw,42px);letter-spacing:.08em}.hero-copy{margin:0 0 18px;font-family:'Shippori Mincho',serif;font-size:clamp(28px,8vw,46px);line-height:1.38;letter-spacing:.08em}.hero-lead{max-width:34em;margin:0 0 22px;font-size:14px;color:rgba(255,255,255,.86)}.hero-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.hero-meta span{border:1px solid rgba(255,255,255,.32);border-radius:999px;padding:5px 10px;font-size:11px;background:rgba(92,70,100,.24)}.btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:56px;border-radius:999px;font-weight:700;letter-spacing:.06em}.btn-primary{color:#fff;background:linear-gradient(135deg,#b59a76,#9f8260);box-shadow:0 16px 34px rgba(92,70,100,.24),0 8px 22px rgba(159,130,96,.22);border:1px solid rgba(255,255,255,.24)}.btn-primary:hover{filter:brightness(1.04);transform:translateY(-1px)}.micro-copy{font-size:12px;color:rgba(255,255,255,.72);margin:12px 0 0}.section-narrow,.section-card,.section-wide,.visual-split,.reserve{width:min(100% - 36px,980px);margin:0 auto}.section-narrow{padding:74px 0}.section-narrow h2,.section-card h2,.section-wide h2,.visual-split h2,.reserve h2{font-family:'Shippori Mincho',serif;font-weight:600;line-height:1.55;letter-spacing:.06em;font-size:clamp(26px,7vw,42px);margin:0 0 20px}.section-narrow p{font-size:15px;color:#4f4a44}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:min(100% - 18px,1080px);margin:0 auto 74px}.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:2px;filter:saturate(.88) contrast(.98)}.section-card{padding:34px 22px;margin-bottom:74px;background:rgba(255,255,255,.55);border:1px solid rgba(128,107,85,.18);box-shadow:0 16px 50px rgba(62,54,44,.08)}.info-list{margin:0}.info-list div{display:grid;grid-template-columns:88px 1fr;gap:14px;padding:16px 0;border-top:1px solid var(--line)}.info-list div:first-child{border-top:0}.info-list dt{font-size:12px;color:var(--accent);font-weight:700}.info-list dd{margin:0;font-size:14px}.section-wide{padding-bottom:74px}.section-lead{margin:-10px 0 24px;color:#5b554d}.plan-grid{display:grid;gap:14px}.plan-card{position:relative;padding:26px 22px;background:#fff;border:1px solid var(--line);min-height:154px}.plan-card span{font-family:'Pinyon Script',cursive;color:var(--accent2);font-size:33px}.plan-card h3{margin:2px 0 8px;font-family:'Shippori Mincho',serif;font-size:28px}.price{margin:0;font-size:28px;font-weight:700}.featured{background:#7A677F;color:#fff;border-color:#7A677F;box-shadow:var(--shadow)}.visual-split{display:grid;gap:24px;margin-bottom:74px}.visual-split img{width:100%;aspect-ratio:4/5;object-fit:cover}.option-list{display:grid;gap:10px;margin:24px 0}.option-list div{padding:16px;background:rgba(255,255,255,.56);border:1px solid var(--line)}.option-list strong{display:block;font-family:'Shippori Mincho',serif}.option-list span{display:block;color:#60594f;font-weight:700}.note{font-size:12px;color:#686157;margin:12px 0 0}.dark-card{background:#7A677F;color:#fff;border-color:#7A677F}.dark-card .section-kicker{color:#d5c7b1}.dark-card p{color:rgba(255,255,255,.78)}.time-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:24px 0}.time-grid span{display:grid;place-items:center;min-height:54px;border:1px solid rgba(255,255,255,.22);font-family:'Shippori Mincho',serif;font-size:22px}.flow-list{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:18px}.flow-list li{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:start}.flow-list span{font-family:'Pinyon Script',cursive;font-size:34px;color:var(--accent)}.flow-list p{margin:0}.notes ul{padding-left:1.2em;margin:0}.notes li{margin:8px 0;font-size:14px}.reserve{display:grid;background:#7A677F;color:#fff;margin-bottom:0}.reserve img{width:100%;aspect-ratio:4/3;object-fit:cover;opacity:.86}.reserve-box{padding:34px 22px}.reserve p{color:rgba(255,255,255,.78)}.footer{background:#5C4664;color:#fff;text-align:center;padding:54px 20px 86px}.footer img{width:110px;margin:0 auto 18px}.footer p{font-size:12px;color:rgba(255,255,255,.7);margin:4px 0}.sticky-cta{position:fixed;left:14px;right:14px;bottom:14px;z-index:30;display:flex;align-items:center;justify-content:center;min-height:54px;border-radius:999px;background:linear-gradient(135deg,#b59a76,#9f8260);color:#fff;font-weight:700;box-shadow:0 12px 32px rgba(92,70,100,.24),0 8px 22px rgba(159,130,96,.2)}
@media (min-width:768px){.site-header{padding:20px 32px}.brand img{width:118px}.header-cta{font-size:13px;padding:14px 20px}.hero{align-items:center}.hero-content{padding:90px 56px 60px}.btn{width:auto;min-width:280px;padding:0 28px}.gallery{grid-template-columns:repeat(4,1fr);gap:12px}.section-card{padding:48px}.plan-grid{grid-template-columns:repeat(3,1fr)}.visual-split{grid-template-columns:.85fr 1fr;align-items:center;gap:54px}.time-grid{grid-template-columns:repeat(7,1fr)}.reserve{grid-template-columns:.9fr 1fr;align-items:stretch}.reserve img{height:100%;aspect-ratio:auto}.reserve-box{padding:56px}.sticky-cta{display:none}.hero-bg{object-position:center 62%}}
@media (min-width:1200px){.hero-content{margin-left:calc((100vw - 1120px)/2);padding-left:0}.section-narrow{width:min(100% - 40px,760px)}.hero-bg{object-position:center center}}

.access{display:grid;gap:26px;padding-bottom:74px}.access-copy{background:rgba(255,255,255,.55);border:1px solid rgba(128,107,85,.18);padding:34px 22px;box-shadow:0 16px 50px rgba(62,54,44,.08)}.access-copy p{color:#4f4a44}.access-info{margin:24px 0 0}.access-info div{display:grid;grid-template-columns:88px 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--line)}.access-info dt{font-size:12px;color:var(--accent);font-weight:700}.access-info dd{margin:0;font-size:14px}.sns-actions{display:grid;gap:12px;margin-top:24px}.btn-sub{background:linear-gradient(135deg,#7b7480,#aaa4ab);color:#fff;border:1px solid rgba(255,255,255,.32);box-shadow:0 12px 26px rgba(92,70,100,.18)}.map-link{display:inline-flex;align-items:center;justify-content:center;min-height:50px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.62);font-size:13px;font-weight:700;color:#6b606e}.map-frame{overflow:hidden;border:1px solid var(--line);background:#ddd;min-height:320px;box-shadow:0 16px 50px rgba(62,54,44,.08)}.map-frame iframe{width:100%;height:100%;min-height:320px;border:0;filter:saturate(.75) contrast(.95) grayscale(.18)}.footer a{text-decoration:underline;text-underline-offset:4px}
@media (min-width:768px){.access{grid-template-columns:.9fr 1.1fr;align-items:stretch}.access-copy{padding:48px}.map-frame,.map-frame iframe{min-height:520px}.sns-actions{grid-template-columns:240px 200px;align-items:center}.btn-sub{width:100%;min-width:0}}

/* Soft movement refinements */
.gallery img:nth-of-type(1){transform:rotate(-1.4deg)}
.gallery img:nth-of-type(2){transform:translateY(12px) rotate(1deg)}
.gallery img:nth-of-type(3){transform:translateY(-8px) rotate(-.8deg)}
.gallery img:nth-of-type(4){transform:rotate(1.2deg)}
.section-card,.plan-card,.access-copy,.map-frame,.option-list div,.reserve{
  border-radius:22px;
}
.visual-split img,.reserve img,.gallery img{
  border-radius:14px;
}
.time-grid span{
  border-radius:999px;
  transition:transform .25s ease, background .25s ease;
}
.time-grid span:nth-child(even){transform:translateY(8px)}
.time-grid span:hover{transform:translateY(-2px);background:rgba(255,255,255,.08)}
.flow-list li{
  padding:14px 12px;
  border:1px solid rgba(122,103,127,.18);
  border-radius:18px;
  background:rgba(255,255,255,.28);
}
.btn-primary,.btn-sub,.sticky-cta{
  overflow:visible;
}
@media (max-width:767px){
  .gallery{gap:10px;width:min(100% - 28px,560px);padding:4px 0 10px}
  .gallery img{border-radius:16px;box-shadow:0 12px 28px rgba(92,70,100,.10)}
  .gallery img:nth-of-type(1){transform:translateY(-4px) rotate(-1.2deg)}
  .gallery img:nth-of-type(2){transform:translateY(14px) rotate(1deg)}
  .gallery img:nth-of-type(3){transform:translateY(2px) rotate(.8deg)}
  .gallery img:nth-of-type(4){transform:translateY(20px) rotate(-.9deg)}
  .time-grid span:nth-child(even){transform:none}
}

/* Privacy policy page */
.privacy-page{background:var(--paper);color:var(--ink)}
.privacy-main{padding:110px 18px 72px;width:min(100% - 0px,920px);margin:0 auto}
.privacy-hero{padding:42px 0 26px}
.privacy-hero h1{font-family:'Shippori Mincho',serif;font-size:clamp(34px,7vw,64px);line-height:1.2;margin:0 0 18px;color:var(--ink);letter-spacing:.08em}
.privacy-hero p{margin:0;color:#5f5862;font-size:14px}
.privacy-content{margin-bottom:0;background:rgba(255,255,255,.72)}
.privacy-content h2{font-family:'Shippori Mincho',serif;font-size:20px;margin:30px 0 10px;line-height:1.5;color:var(--ink)}
.privacy-content h2:first-child{margin-top:0}
.privacy-content p,.privacy-content li{font-size:14px;color:#514b53;line-height:2}
.privacy-content ul{padding-left:1.25em;margin:8px 0 22px}
.privacy-studio{margin-top:34px;padding-top:22px;border-top:1px solid var(--line)}
.privacy-studio p{margin:4px 0;font-size:13px}

/* Studio appeal section */
.studio-card{
  background:linear-gradient(145deg, rgba(255,255,255,.68), rgba(232,227,219,.72));
}
.studio-card > p:not(.section-kicker):not(.studio-note){
  color:#4f4a44;
  font-size:15px;
}
.studio-points{
  display:grid;
  gap:12px;
  margin:28px 0 0;
}
.studio-points article{
  padding:20px 18px;
  border:1px solid rgba(122,103,127,.18);
  border-radius:18px;
  background:rgba(255,255,255,.48);
}
.studio-points span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  margin-bottom:10px;
  border-radius:999px;
  background:#7A677F;
  color:#fff;
  font-family:'Shippori Mincho',serif;
  font-size:13px;
}
.studio-points h3{
  margin:0 0 8px;
  font-family:'Shippori Mincho',serif;
  font-size:19px;
  line-height:1.55;
  letter-spacing:.06em;
}
.studio-points p{
  margin:0;
  color:#5a544d;
  font-size:13px;
  line-height:1.9;
}
.studio-note{
  margin:26px 0 0;
  padding-top:18px;
  border-top:1px solid var(--line);
  color:#5C4664;
  font-weight:700;
}
@media (min-width:768px){
  .studio-points{grid-template-columns:repeat(2,1fr);max-width:980px;margin-left:auto;margin-right:auto}
  .studio-points article{padding:24px 20px}
}


/* 2026-06-02 refinements: desktop readability, script numbers, CTA emphasis */
.keep{white-space:nowrap}
@media (min-width:768px){
  .intro.section-narrow{width:min(100% - 40px,1040px)}
  .intro h2{font-size:clamp(34px,4.4vw,58px);line-height:1.58;letter-spacing:.055em}
  .flow.section-narrow{width:min(100% - 40px,980px)}
  .flow-list{grid-template-columns:repeat(3,1fr);gap:16px}
  .flow-list li{display:block;min-height:210px;padding:26px 22px 22px}
  .flow-list span{display:block;margin-bottom:16px;font-size:64px;line-height:.9;color:#8f8494}
  .reserve{margin-bottom:82px}
}
@media (max-width:767px){
  .keep{white-space:normal}
  .flow-list span{font-size:46px;line-height:1;color:#8f8494}
  .reserve{margin-bottom:58px}
}


/* 2026-06-02 client refinements */
.date-feature{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  margin:6px 0 24px;
  padding:18px 20px;
  border:1px solid rgba(122,103,127,.18);
  border-radius:22px;
  background:rgba(255,255,255,.54);
}
.date-feature .date-label{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:#7A677F;
  color:#fff;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
}
.date-feature strong{
  font-family:'Shippori Mincho',serif;
  font-size:clamp(30px,7vw,52px);
  line-height:1;
  letter-spacing:.04em;
  color:var(--ink);
}
.date-feature em{
  font-family:'Pinyon Script',cursive;
  font-style:normal;
  font-size:clamp(18px,3vw,30px);
  line-height:1;
  color:#8f8494;
}
.studio-points span{
  display:block;
  width:auto;
  height:auto;
  margin:0 0 22px;
  border-radius:0;
  background:transparent;
  color:#8f8494;
  font-family:'Pinyon Script',cursive;
  font-size:clamp(54px,9vw,88px);
  line-height:.8;
  justify-content:flex-start;
}
.visual-split h2{
  font-size:clamp(30px,6vw,48px);
}
@media (min-width:768px){
  .date-feature{justify-content:flex-start;padding:22px 26px}
}


/* 2026-06-02 layout refinements */
@media (min-width:768px){
  .intro.section-narrow{width:min(100% - 56px,1120px)}
  .intro h2{font-size:clamp(40px,4.6vw,64px);line-height:1.48;letter-spacing:.055em}
  .intro p{max-width:1040px}
}
@media (max-width:767px){
  .intro h2{font-size:clamp(26px,7vw,36px);line-height:1.55}
  .date-feature em{font-size:24px}
}

/* 2026-06-02 mobile FV balance refinements */
@media (max-width:767px){
  .hero{
    min-height:100svh;
    align-items:flex-end;
  }
  .hero-bg{
    object-position:53% center;
  }
  .hero-shade{
    background:
      linear-gradient(to bottom,rgba(18,18,18,.34) 0%,rgba(18,18,18,.14) 30%,rgba(18,18,18,.78) 100%),
      radial-gradient(circle at 45% 42%,rgba(255,255,255,.06),transparent 36%);
  }
  .hero-content{
    padding:0 28px 56px;
    max-width:100%;
  }
  .hero .eyebrow{
    margin-bottom:10px;
    font-size:10px;
    letter-spacing:.20em;
  }
  .hero h1{
    margin-bottom:20px;
    line-height:1;
  }
  .hero h1 span{
    font-size:clamp(48px,15.5vw,72px);
    line-height:.92;
  }
  .hero h1 em{
    margin-top:8px;
    font-size:clamp(24px,8vw,34px);
    line-height:1.08;
    letter-spacing:.06em;
  }
  .hero-copy{
    margin-bottom:16px;
    font-size:clamp(26px,7.2vw,34px);
    line-height:1.45;
    letter-spacing:.055em;
  }
  .hero-lead{
    max-width:28em;
    margin-bottom:20px;
    font-size:13px;
    line-height:1.95;
    letter-spacing:.025em;
  }
  .hero-meta{
    gap:7px;
    margin-bottom:20px;
  }
  .hero-meta span{
    padding:4px 9px;
    font-size:10.5px;
  }
  .hero .btn{
    min-height:54px;
    font-size:15px;
  }
  .micro-copy{
    font-size:11px;
    line-height:1.8;
  }
}


/* 2026-06-02 CTA balance: avoid too many buttons in first mobile viewport */
@media (max-width:767px){
  .site-header{
    justify-content:flex-start;
    pointer-events:none;
  }
  .site-header .brand{
    pointer-events:auto;
  }
  .header-cta{
    display:none;
  }
  .sticky-cta{
    opacity:0;
    visibility:hidden;
    transform:translateY(18px);
    transition:opacity .28s ease, transform .28s ease, visibility .28s ease;
  }
  body.is-past-hero .sticky-cta{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }
}

/* 2026-06-02 CTA policy: hide top-right CTA on all devices, show sticky CTA only after FV */
.header-cta{
  display:none !important;
}
.site-header{
  justify-content:flex-start;
}
.sticky-cta{
  display:flex !important;
  opacity:0;
  visibility:hidden;
  transform:translateY(18px);
  transition:opacity .28s ease, transform .28s ease, visibility .28s ease;
}
body.is-past-hero .sticky-cta{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
@media (min-width:768px){
  .sticky-cta{
    left:50%;
    right:auto;
    width:min(420px, calc(100% - 40px));
    transform:translate(-50%,18px);
  }
  body.is-past-hero .sticky-cta{
    transform:translate(-50%,0);
  }
}

/* 2026-06-02 Miyabi feature / CTA refinements */
.studio-points span{
  display:block !important;
  width:auto !important;
  height:auto !important;
  margin:0 0 16px !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#8f8494 !important;
  font-family:'Pinyon Script',cursive !important;
  font-size:34px !important;
  line-height:1 !important;
}
.studio-note{
  margin:24px 0 0 !important;
  padding-top:18px !important;
  border-top:1px solid var(--line) !important;
  color:#686157 !important;
  font-size:12px !important;
  line-height:1.9 !important;
  font-weight:400 !important;
}
@media (min-width:768px){
  .studio-points{grid-template-columns:repeat(3,1fr) !important;}
  .studio-points span{font-size:64px !important;line-height:.9 !important;}
  .sticky-cta{display:none !important;}
}
@media (max-width:767px){
  .studio-points span{font-size:46px !important;line-height:1 !important;}
  .reserve-box .btn-primary{display:none !important;}
}
