:root{--navy:#11294c;--gold:#ae8045;--paper:#fffdf9;--line:#e9d7b9}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--navy);font-family:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP',serif;line-height:1.9}a{color:inherit;text-decoration:none}header{padding:16px 5%;display:flex;justify-content:space-between;align-items:center;background:#fffdf9f5;border-bottom:1px solid var(--line)}.brand{font-size:22px;letter-spacing:.15em;white-space:nowrap}.mark{color:var(--gold);font-size:34px;vertical-align:middle;margin-right:12px}nav{display:flex;gap:24px;align-items:center;font-size:13px}.button{display:inline-block;background:linear-gradient(110deg,#c49a64,#9b713b);color:white;border-radius:40px;padding:12px 36px;text-align:center;letter-spacing:.08em;box-shadow:0 3px 10px #57422116}.outline{border:1px solid var(--gold);border-radius:30px;padding:7px 22px;color:var(--navy)}main{min-height:70vh}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:410px;background:#f7f2e9}.hero-copy{padding:65px 10% 55px 12%;align-self:center}.hero img{width:100%;height:100%;min-height:410px;object-fit:cover}.eyebrow{font-size:15px;letter-spacing:.12em;margin:0}h1{font-size:clamp(32px,4.4vw,58px);line-height:1.45;letter-spacing:.09em;margin:12px 0 24px}h2{text-align:center;font-size:25px;letter-spacing:.13em;margin:0 0 34px}h2:before,h2:after{content:' — ✦ — ';color:var(--gold);font-size:17px}.wrap{max-width:1060px;margin:auto;padding:58px 28px}.themes{display:flex;justify-content:center;gap:0;padding:24px 20px;background:white}.themes span{width:23%;max-width:230px;text-align:center;border-right:1px solid var(--line);font-size:15px}.themes span:last-child{border:0}.themes b{display:block;font-size:27px;color:var(--gold);font-weight:normal}.featured{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:white}.featured img{width:100%;height:100%;object-fit:cover}.featured article{padding:32px}.featured h3{font-size:31px;margin:8px 0}.badge{font-size:12px;background:#b48a53;color:white;border-radius:20px;padding:4px 16px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:22px}.card{border:1px solid var(--line);background:white}.card img{width:100%;height:135px;object-fit:cover}.card p{margin:10px 18px}.voices{background:linear-gradient(90deg,#071a39ec,#071a3950),url('assets/stars.jpg') center/cover;color:white;padding:48px max(7%,24px)}blockquote{font-size:24px;margin:12px 0}.note{text-align:center;color:#655f59;font-size:14px}.intro{text-align:center;font-size:18px}.soft{background:#f8f5ef}.consults{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.consults div{border:1px solid var(--line);padding:22px 8px;text-align:center;background:#fffdf9}.consults b{display:block;font-size:28px;color:var(--gold);font-weight:normal}.consults .spiritual{border-color:#dfd2e7;color:#795899;background:#faf6fd}.prices{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}.price{width:calc(33.33% - 14px);min-width:170px;border:1px solid var(--line);padding:22px;text-align:center;background:white}.price strong{display:block;color:#a85b35;font-size:27px;font-weight:normal}.price b{font-size:26px;font-weight:normal;border-bottom:1px solid var(--line);display:block}.price small{display:block;margin-top:10px}.rate{text-align:center;font-size:26px;margin:0 0 25px}.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;text-align:center}.flow b{font-size:25px;font-weight:normal}.flow span{color:var(--gold);display:block}.center{text-align:center}.breadcrumbs{font-size:12px;max-width:1060px;margin:auto;padding:16px 28px}.back{display:inline-block;margin-top:22px;border-bottom:1px solid var(--navy)}footer{padding:38px 6%;background:#0c2344;color:white;display:flex;justify-content:space-between;align-items:center}.trial{font-family:sans-serif;background:#f1e7d7;color:#5d4a31;text-align:center;font-size:12px;padding:7px 15px}.placeholder{padding:28px;background:white;border:1px solid var(--line);text-align:center}a:focus-visible{outline:3px solid #bb8951;outline-offset:5px}a:hover{filter:brightness(1.08)}@media(max-width:700px){header{padding:12px 18px}.brand{font-size:17px}.mark{font-size:27px;margin-right:6px}nav{gap:12px}nav a:not(:last-child){display:none}nav .outline{font-size:12px;padding:5px 14px}.hero{min-height:0}.hero-copy{padding:32px 20px}h1{font-size:30px}.hero img{min-height:310px}.hero .button{padding:10px 18px;font-size:13px}.eyebrow{font-size:12px}.wrap{padding:38px 20px}h2{font-size:21px}h2:before,h2:after{font-size:11px}.themes{padding:16px 8px}.themes span{font-size:12px;width:25%}.featured{grid-template-columns:1fr}.featured img{height:210px}.featured article{padding:23px}.cards{gap:10px}.card img{height:95px}.card p{font-size:12px;margin:8px}.consults{grid-template-columns:repeat(2,1fr);gap:12px}.intro{font-size:16px}.price{width:calc(50% - 9px);min-width:0;padding:14px 9px}.price strong{font-size:24px}.rate{font-size:21px}.flow{gap:12px;font-size:13px}.flow b{font-size:20px}blockquote{font-size:20px}footer{display:block;font-size:13px}.button{padding:12px 25px}}@media(max-width:400px){h1{font-size:26px}.hero-copy{padding:25px 14px}.hero img{min-height:290px}.brand{font-size:15px}}
/* Keep image dimensions independent of grid row height. */
img{display:block;max-width:100%}.hero,.featured{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hero>* , .featured>*{min-width:0}.hero img{height:auto;min-height:0;aspect-ratio:5/4;object-fit:cover;align-self:center}.featured img{height:auto;min-height:0;aspect-ratio:2/1;align-self:center}.card img{height:auto;aspect-ratio:2.4/1;object-fit:cover}.button{max-width:100%;white-space:normal}.wrap{width:100%}
@media(max-width:700px){.hero,.featured{grid-template-columns:minmax(0,1fr)}.hero{background:#faf7f1}.hero-copy{text-align:center;padding:30px 22px}.hero img{height:auto;min-height:0;aspect-ratio:auto;width:100%;object-fit:contain}.hero h1{font-size:36px;margin:12px 0 20px}.hero .button{font-size:15px;padding:12px 28px}.featured img{height:auto;aspect-ratio:auto;width:100%}.cards{grid-template-columns:1fr;gap:18px}.card{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);align-items:center}.card img{height:auto;aspect-ratio:auto}.card p{font-size:15px;margin:12px}h2{font-size:21px;letter-spacing:.04em;line-height:1.65}h2:before,h2:after{content:none}.themes{display:grid;grid-template-columns:1fr 1fr;gap:15px}.themes span{width:100%;max-width:none;font-size:14px}.themes span:nth-child(2){border-right:0}.rate{font-size:20px}.flow{grid-template-columns:1fr;text-align:left;gap:18px}.flow>div{border-bottom:1px solid var(--line);padding-bottom:14px}.flow span{display:inline-block;margin-right:15px}.flow p{font-size:15px;margin:6px 0}.breadcrumbs{padding:12px 20px}.brand{font-size:17px}.hero-copy .eyebrow{font-size:14px}}

.review-link{display:inline-block;margin-top:14px;padding:8px 22px;border:1px solid #fff;border-radius:30px;color:#fff;background:#0c234455;font-size:14px;line-height:1.6}.review-link:hover{background:#ffffff22}

.hero:has(img[src$="hero-smooth.png"]){display:grid;grid-template-columns:1fr;position:relative;background:#fffaf2}.hero:has(img[src$="hero-smooth.png"]) img{grid-area:1/1;width:100%;height:auto;min-height:0;aspect-ratio:auto}.hero:has(img[src$="hero-smooth.png"]) .hero-copy{grid-area:1/1;z-index:1;width:44%;padding:30px 10%;box-sizing:content-box;align-self:center}.hero:has(img[src$="hero-smooth.png"]) h1{font-size:clamp(28px,4vw,52px)}
@media(max-width:700px){.hero:has(img[src$="hero-smooth.png"]){display:flex;flex-direction:column}.hero:has(img[src$="hero-smooth.png"]) .hero-copy{width:auto;padding:26px 20px;box-sizing:border-box;align-self:stretch}.hero:has(img[src$="hero-smooth.png"]) img{width:100%;height:auto;object-fit:contain}}

/* Unified identity and readable hero typography. */
.hero-copy .identity{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .35em;margin:0 0 14px;line-height:1.55;letter-spacing:.04em;font-weight:600;font-size:clamp(26px,3.1vw,44px)}
.identity .name,.identity .institute{font-size:inherit;white-space:nowrap}
@media(min-width:701px){
.hero:has(img[src$="hero-smooth.png"]) .hero-copy{width:49%;padding:36px clamp(24px,5vw,80px);box-sizing:border-box}
.hero:has(img[src$="hero-smooth.png"]) h1{font-size:clamp(40px,4.5vw,64px);letter-spacing:.06em;margin:12px 0 28px}
.hero .button{font-size:19px;padding:15px 34px}
}
@media(max-width:700px){.hero-copy .identity{justify-content:center;font-size:26px;margin-bottom:12px}}
@media(max-width:360px){.hero-copy .identity{font-size:23px}}

/* Customer voices arriving like gifts from a meteor-filled sky. */
.testimonials{background:linear-gradient(90deg,rgba(7,26,57,.72),rgba(7,26,57,.2) 52%,rgba(7,26,57,.03)),url('assets/meteor-shower.webp') center/cover;min-height:400px;display:flex;flex-direction:column;justify-content:center}
.testimonials blockquote{text-shadow:0 2px 8px #06142f;max-width:600px}
.testimonials .review-link{align-self:flex-start;background:#071a3977}
@media(max-width:700px){.testimonials{background-position:62% center;min-height:410px;background-image:linear-gradient(90deg,rgba(7,26,57,.72),rgba(7,26,57,.35)),url('assets/meteor-shower.webp')}}

/* Prominent, readable customer review link on both screen sizes. */
.testimonials .review-link{font-size:20px;font-weight:600;line-height:1.6;padding:14px 30px;border:2px solid #cdb27a;background:#11294c;color:#fff;box-shadow:0 4px 16px #020c2426;margin-top:20px;letter-spacing:.04em;max-width:100%;text-align:center}
.testimonials .review-link:hover{background:#19385f;border-color:#e6d1aa;filter:none}
@media(max-width:700px){.testimonials .review-link{font-size:18px;padding:14px 20px;min-height:56px}}

/* Equal mobile image frames, with closer crystal framing. */
.card-visual{display:contents}
@media(max-width:700px){
  .card{grid-template-columns:minmax(0,46%) minmax(0,1fr)}
  .card-visual{display:block;aspect-ratio:1/1;overflow:hidden}
  .card .card-visual img{width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;object-position:center}
  .card .card-visual img[src$="crystal-rainbow.webp"]{object-position:53% 50%;transform:scale(1.12);transform-origin:53% 50%}
}

/* Original portrait, cropped only by the circular display frame. */
.portrait{width:220px;height:220px;max-width:100%;border-radius:50%;object-fit:cover;object-position:50% 20%;border:3px solid #e9d7b9;box-shadow:0 5px 22px #11294c0d;margin:0 auto 24px}
.teller-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:48px;align-items:center;max-width:800px;margin:auto;text-align:left}
.teller-layout .portrait{margin:0}.teller-name{font-size:30px;margin:6px 0 18px;letter-spacing:.12em}.teller-copy p{margin:10px 0}.profile-link{margin-top:18px}.profile-title{font-size:32px;margin:0 0 32px}.profile-name{margin:12px 0}.profile-name:before,.profile-name:after{content:none}.profile-achievements{margin:28px auto;padding:12px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:680px}
@media(max-width:700px){.teller-layout{grid-template-columns:1fr;gap:24px;text-align:center}.teller-layout .portrait{margin:0 auto}.portrait{width:200px;height:200px}.teller-copy p{font-size:15px}.teller-name{font-size:28px}.profile-achievements{padding:12px 0}}

/* A quiet, high-resolution star field behind the closing reservation. */
.reservation-banner{background:linear-gradient(90deg,#071a3918,#071a3929,#071a3918),url('assets/reservation-stars.webp') center/cover no-repeat;padding:64px 24px;min-height:200px;display:flex;align-items:center;justify-content:center;border-top:1px solid #cdb27a55}
@media(max-width:700px){.reservation-banner{padding:48px 20px;min-height:180px;background-size:auto 100%}}

/* Monthly schedule and the verified studio location. */
.calendar-image{display:block;max-width:560px;margin:0 auto 12px}.calendar-image img{width:100%;height:auto;border-radius:4px;border:1px solid var(--line)}
.calendar-hint{font-size:13px;color:#655f59;margin:10px 0 20px}.access-map{display:block;width:100%;height:360px;margin:24px 0;border-radius:4px}.map-link{display:inline-block}
@media(max-width:700px){.calendar-image{max-width:100%}.access-map{height:300px}.placeholder{padding:22px 14px}}

.access-directions p{margin:8px 0}.access-directions span,.access-name span{display:inline-block}.access-directions span+span{margin-left:.6em}.access-sign{font-size:14px}
@media(max-width:700px){.access-directions span{display:block}.access-directions span+span{margin-left:0}.access-name span{display:block}.access-sign{font-size:13px;letter-spacing:0}.access-directions{font-size:15px;line-height:1.85}}

.access-address{font-style:normal;font-size:14px;line-height:1.9;margin:14px 0 24px}.access-address span{display:block}

/* Eight-point signature star: long cardinal rays and shorter diagonal rays. */
.star-mark{display:inline-block;width:34px;height:34px;vertical-align:middle;flex-shrink:0}
@media(max-width:700px){.star-mark{width:27px;height:27px}}
