@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600&family=Noto+Sans+JP:wght@400;500;600&display=swap');
:root{--ink:#292722;--muted:#77746d;--paper:#f8f6f4;--white:#fff;--coral:#df624d;--green:#647269;--line:#e9e5e1;--sans:'Noto Sans JP',sans-serif;--serif:'Noto Serif JP',serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.9 var(--sans)}a{color:inherit}a:hover{color:var(--coral)}.wrap{width:min(1100px,calc(100% - 48px));margin:auto}.header{height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font:600 21px var(--serif);letter-spacing:.11em;text-decoration:none}.nav{display:flex;align-items:center;gap:25px;font-size:12px}.nav a{text-decoration:none}.nav .cta{background:var(--coral);color:#fff;padding:9px 18px}.hero{min-height:calc(100vh - 84px);display:grid;grid-template-columns:1fr .92fr;align-items:center;gap:64px;padding:56px 0 74px}.eyebrow{font-size:10px;letter-spacing:.2em;color:var(--coral);font-weight:600}.hero h1{font:500 clamp(40px,6vw,69px)/1.6 var(--serif);letter-spacing:.08em;margin:24px 0}.hero p{color:var(--muted);font-size:14px;max-width:470px}.hero-art{height:min(68vh,620px);min-height:380px;background:linear-gradient(150deg,#e9e5df,#d9ded6);position:relative;overflow:hidden;display:grid;place-items:center}.hero-art:before,.hero-art:after{content:'';position:absolute;width:67%;height:90%;border:1px solid rgba(100,114,105,.35);border-radius:50%;transform:rotate(37deg)}.hero-art:after{transform:rotate(-37deg)}.art-title{position:relative;z-index:1;font:500 34px var(--serif);letter-spacing:.14em;color:#59655e}.scroll{position:absolute;bottom:18px;left:50%;font-size:9px;letter-spacing:.2em;color:var(--muted)}.section{padding:100px 0}.section-title{text-align:center;margin-bottom:44px}.section-title h2{font:500 34px var(--serif);letter-spacing:.08em;margin:9px 0}.section-title p{font-size:13px;color:var(--muted)}.intro{max-width:680px;margin:auto;text-align:center;font:400 18px/2.2 var(--serif);letter-spacing:.06em}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:#fff;padding:28px 26px;border:1px solid var(--line)}.card small{font-size:10px;letter-spacing:.18em;color:var(--coral)}.card h3{font:500 20px var(--serif);margin:8px 0}.card p{font-size:13px;color:var(--muted);margin:0}.story{background:#eeece7}.story-inner{max-width:720px;margin:auto}.story-inner p{font:400 16px/2.2 var(--serif);letter-spacing:.04em}.contact-panel{text-align:center;background:#e8e9e2;padding:54px 20px}.contact-panel h2{font:500 30px var(--serif);margin:6px 0}.button{display:inline-block;margin-top:16px;background:var(--coral);color:white;text-decoration:none;padding:11px 26px;font-size:12px}.footer{border-top:1px solid var(--line);padding:25px 0;margin-top:60px;color:var(--muted);font-size:11px}.footer-inner{display:flex;justify-content:space-between;gap:18px}.footer-links{display:flex;gap:20px}.footer-links a{text-decoration:none}.legal{max-width:850px;margin:auto;padding:66px 0}.legal h1{font:500 clamp(30px,5vw,43px) var(--serif);letter-spacing:.06em;margin:8px 0 12px}.legal .lead{color:var(--muted);font-size:13px;margin-bottom:32px}.legal h2{font-size:17px;margin:32px 0 8px}.legal p,.legal li{font-size:13px;color:#5c5a54}.legal-table{border-collapse:collapse;width:100%;background:white;border:1px solid var(--line)}.legal-table th,.legal-table td{text-align:left;vertical-align:top;padding:14px 16px;border-bottom:1px solid var(--line);font-size:13px}.legal-table th{width:28%;background:#f0efeb;font-weight:500}.fill{display:inline-block;color:#a45e43;background:#fff2e9;padding:1px 5px;border-radius:2px}.notice{padding:15px 17px;border:1px solid #ecd9ca;background:#fff7f0;color:#855a43;font-size:12px}.updated{font-size:11px;color:var(--muted)}@media(max-width:740px){.wrap{width:calc(100% - 32px)}.header{height:auto;min-height:74px;align-items:flex-start;padding:15px 0;gap:12px;flex-direction:column}.nav{gap:13px;flex-wrap:wrap}.hero{grid-template-columns:1fr;gap:34px;padding-top:26px;min-height:auto}.hero-art{grid-row:1;height:54vh;min-height:300px}.hero h1{font-size:44px}.scroll{bottom:12px}.section{padding:68px 0}.cards{grid-template-columns:1fr}.card{padding:21px}.intro{font-size:16px}.footer-inner{flex-direction:column}.legal{padding:48px 0}.legal-table th,.legal-table td{padding:10px;font-size:12px}.legal-table th{width:32%}}
.price-section{background:#eeece7}.price-card{padding:28px 24px}.price-card.featured{border-top:3px solid var(--coral)}.price-card h3{margin:7px 0 2px}.price-card p.price{font:500 32px var(--serif);color:var(--ink);margin:4px 0}.price-card p.price span{font-size:16px;margin-left:3px}.price-card p.tax{font-size:10px;color:var(--muted);padding-bottom:15px;border-bottom:1px solid var(--line)}.price-card ul{padding-left:1.2em;margin:16px 0 0}.price-card li{font-size:12px;margin:8px 0;color:#5c5a54}.price-note{max-width:850px;margin:17px auto 0;text-align:center;font-size:11px;color:var(--muted)}
.hero h1{font-size:clamp(28px,4.5vw,50px)}.hero h1 .title-line{display:block;white-space:nowrap}
@media(max-width:740px){.hero h1{font-size:clamp(28px,10vw,50px)}}
.hero-art{isolation:isolate;background:#eeece7}.hero-art:before,.hero-art:after{display:none}.hero-art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.art-lockup{position:absolute;z-index:1;left:22px;right:22px;bottom:48px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:15px 18px;background:rgba(248,246,244,.88);backdrop-filter:blur(4px)}.art-title{font-size:27px;color:#59655e}.art-tagline{font-size:10px;letter-spacing:.08em;color:#5e5a54}.scroll{z-index:1}
.instructor-link{margin:10px 0 20px}
@media(max-width:740px){.hero-art{height:54vh;min-height:300px}.art-lockup{left:14px;right:14px;bottom:40px;padding:12px 14px}.art-title{font-size:23px}.art-tagline{font-size:9px}}
.title-line:nth-child(2){margin-left:.55em;margin-top:.18em}
.hero-art{display:grid;place-items:center;background:radial-gradient(ellipse at 50% 46%,#fffdfb 0%,#f0eee8 63%,#e6e8df 100%);color:#65766c}
.brand-emblem{width:min(62%,330px);height:auto;filter:drop-shadow(0 10px 24px rgba(70,82,73,.08))}
.story-visual{padding-top:30px;padding-bottom:92px}
.story-visual .section-title{max-width:680px;margin:0 auto 28px}
.story-image{max-width:600px;margin:0 auto;padding:14px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 50px rgba(54,48,38,.08)}
.story-image img{display:block;width:100%;height:auto}
.story-image figcaption{padding:10px 2px 0;text-align:right;color:var(--muted);font-size:10px}
@media(max-width:740px){.title-line:nth-child(2){margin-left:.2em;margin-top:.16em}.story-visual{padding-top:4px;padding-bottom:62px}.story-image{padding:8px}.story-image figcaption{font-size:9px}}
.hero-art{height:min(58vh,540px);min-height:380px;max-width:500px;margin-left:auto;background:#eeece7}
.hero-art>img.hero-photo{object-fit:cover;object-position:center}
.career-cta{margin:32px 0 18px;padding:25px 28px;background:#f8f6f4;border:1px solid var(--line)}
.career-cta-lead{margin:0 0 14px;font:500 16px/1.9 var(--serif);letter-spacing:.04em}
.career-cta-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.career-cta-links .button{margin-top:0}
.career-cta-links .button-quiet{background:#fff;color:var(--green);border:1px solid #cbd0ca}
@media(max-width:740px){.hero-art{height:min(54vh,400px);min-height:300px;margin:0;max-width:none}.career-cta{padding:20px 17px}.career-cta-lead{font-size:14px}.career-cta-links{flex-direction:column;align-items:stretch}.career-cta-links .button{text-align:center}}
.art-lockup{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:0 22px}.art-tagline{max-width:340px;color:#59655e;font:400 12px/1.8 var(--sans);letter-spacing:.12em}
.story-note{font-size:11px!important;color:var(--muted)!important}
.reservation{padding-top:30px}.reservation-panel{max-width:720px;margin:0 auto;padding:30px 34px;background:#fff;border:1px solid var(--line);text-align:center}.reservation-panel p{font-size:13px;color:var(--muted)}.reservation-panel .reservation-status{color:var(--ink);font-size:15px}.reservation-setup{padding-top:12px;border-top:1px solid var(--line);font-size:11px!important}
@media(max-width:740px){.reservation-panel{padding:24px 18px}}

.hero-art{width:100%}

