:root{--paper:#f6f5ef;--ink:#292d28;--muted:#596054;--line:#d4d6cc;--green:#374d3e;--wash:#e8ebe2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,'Noto Sans JP',sans-serif;font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--green)}a:focus-visible,summary:focus-visible{outline:3px solid #7c603a;outline-offset:5px}header,main,footer{max-width:1280px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;padding:30px 6%;gap:24px;border-bottom:1px solid var(--line)}.wordmark{font-size:32px;letter-spacing:-1.5px;line-height:1;text-decoration:none}.wordmark span{display:block;letter-spacing:2px;font-size:9px;margin-top:12px}nav{display:flex;gap:25px;flex-wrap:wrap;font-size:13px}nav a{text-decoration:none;min-height:44px;display:flex;align-items:center}.skip{position:absolute;top:-100px;left:10px;background:white;padding:10px;z-index:10}.skip:focus{top:10px}section{margin:0 6%;padding:76px 0;border-bottom:1px solid var(--line)}h1,h2,h3,p,figure{margin:0}p+p{margin-top:18px}h1{font-size:clamp(48px,7.7vw,100px);line-height:1.05;font-weight:400;letter-spacing:-.055em;margin:25px 0 30px}html[lang=ja] h1{font-size:clamp(46px,7vw,86px);letter-spacing:-.05em;line-height:1.3}h2{font-weight:400;line-height:1.4;font-size:clamp(26px,3vw,38px);letter-spacing:-.025em}h3{font-size:19px;line-height:1.6;font-weight:500;margin-bottom:12px}p{max-width:70ch}.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:65px;align-items:center;padding:55px 0 65px}.eyebrow,.section-head>span,.booking>span{font-size:11px;letter-spacing:2px;font-weight:600;color:var(--muted)}.lead{font-size:18px;line-height:1.9;max-width:48ch}.hero img{display:block;width:100%;height:auto}.hero figure{max-width:450px}.hero figcaption{font-size:11px;color:var(--muted);margin-top:10px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 20px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;background:var(--green);color:white;padding:12px 22px;border:1px solid var(--green);text-decoration:none;font-size:13px;font-weight:500}.button:hover{background:#26382b;color:white}.button.secondary{background:transparent;color:var(--green)}.button.secondary:hover{background:var(--wash)}.note{color:var(--muted);font-size:13px;margin-top:22px}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;padding:34px 0}.facts h2{font-size:20px;margin-bottom:12px}.facts p{font-size:13px;color:var(--muted)}.facts>div+div{border-left:1px solid var(--line);padding-left:32px}.section-head{margin-bottom:35px}.section-head>span{display:block;margin-bottom:13px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}.three p{font-size:15px;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;list-style:none;counter-reset:steps;padding:0;margin:36px 0 0}.steps li{counter-increment:steps;border-top:1px solid var(--line);padding-top:16px}.steps li:before{content:'0' counter(steps);display:block;font-size:13px;color:var(--muted);margin-bottom:20px}.steps p{font-size:14px;color:var(--muted)}.prices{display:grid;grid-template-columns:1fr 1fr;gap:0 50px}.price{display:flex;gap:20px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:24px 0}.price h3{font-size:15px;margin:0;max-width:75%}.price span{font-size:20px;white-space:nowrap}.credential{color:var(--green);font-weight:500;margin-bottom:22px}.bio{max-width:780px}.faq-item{border-bottom:1px solid var(--line);padding:18px 0}.faq-item summary{cursor:pointer;font-size:17px;font-weight:500;min-height:32px;padding-right:20px}.faq-item p{padding:15px 0 4px;color:var(--muted);font-size:15px}.more-faq{margin-top:25px}.more-faq>summary{cursor:pointer;font-size:13px;min-height:44px}.split{display:grid;grid-template-columns:1fr 1fr;gap:45px}.split p{font-size:14px}.map{border:0;width:100%;height:340px;background:var(--wash)}.booking{background:var(--wash);margin:55px 6%;padding:55px;border:0}.booking h2{margin:18px 0}.page-intro{max-width:100%;padding:80px 0 55px}.page-intro h1{font-size:clamp(40px,6vw,72px)}.page-intro .lead{margin-bottom:20px}footer{display:flex;justify-content:space-between;gap:30px;padding:25px 6% 55px;font-size:12px}address{font-style:normal}.footer-name{font-size:16px;margin-bottom:15px}.footer-links{display:flex;flex-direction:column;gap:15px}small{color:var(--muted)}@media(max-width:760px){header{padding:22px 6%;align-items:flex-start;gap:16px;flex-direction:column}.wordmark{font-size:28px}nav{gap:22px;font-size:12px;width:100%;justify-content:space-between}.hero{grid-template-columns:1fr;gap:30px;padding-top:35px}.hero figure{width:100%;max-width:none}.hero img{height:auto}.hero h1{margin-top:20px}.hero .lead{font-size:16px}section{padding:48px 0}.facts{gap:22px;grid-template-columns:1fr}.facts>div+div{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.facts h2{font-size:20px}.three,.split,.prices{grid-template-columns:1fr}.three{gap:30px}.steps{grid-template-columns:1fr 1fr;gap:30px 22px}.steps h3{font-size:17px}.booking{padding:30px 22px;margin:35px 6%}.booking h2{font-size:27px}.actions{gap:10px}.button{padding:12px 17px}.price h3{font-size:14px}.price span{font-size:18px}.page-intro{padding-top:45px}.page-intro h1{overflow-wrap:anywhere}footer{flex-direction:column;padding-top:15px;overflow-wrap:anywhere}.map{height:300px}.faq-item summary{font-size:16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{header,iframe,.actions,.footer-links{display:none}body{background:white}section{break-inside:avoid}.hero{display:block}.hero figure{display:none}}

/* Real photography: preserve the frame and leave space around each image. */
.photo{display:block;min-width:0}
.photo img{display:block;width:100%;height:auto}
.hero>div,.hero figure{min-width:0}
.facts .photo,.steps .photo,.studio-photo{margin-top:24px}
.facts .photo{max-width:280px}
.bio{max-width:none;display:grid;grid-template-columns:1.15fr 1fr;gap:45px;align-items:start}
.bio .photo{max-width:380px;justify-self:end}
.session-photos{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:45px;margin-top:45px}
.session-photos .photo:last-child{max-width:360px;justify-self:center}
@media(max-width:760px){.bio,.session-photos{grid-template-columns:1fr;gap:30px}.bio .photo{justify-self:start;max-width:380px}.session-photos .photo:last-child{justify-self:start}.facts .photo{max-width:360px}}
