*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper,#faf7ef);color:var(--ink,#34352a);font-family:'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho',serif;font-weight:400;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit;cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}button,a,input,select,textarea,summary{outline-offset:6px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent)}.site-shell{--u:min(.1953125vw,3.125px);max-width:1600px;margin:auto;overflow:clip;position:relative}.skip{position:fixed;top:-100px;left:20px;background:white;padding:16px;z-index:100}.skip:focus{top:10px}.site-header{height:calc(var(--u)*34);padding:0 calc(var(--u)*35);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:30;background:var(--paper)}.brand{display:flex;align-items:center;gap:calc(var(--u)*7);white-space:nowrap;font-size:calc(var(--u)*10);font-weight:600;letter-spacing:.09em}.brand-mark{height:calc(var(--u)*25);width:calc(var(--u)*22);object-fit:contain}.desktop-nav{display:flex;align-items:center;gap:calc(var(--u)*18);font-size:calc(var(--u)*5.4);letter-spacing:.04em}.button{display:inline-flex;align-items:center;justify-content:center;gap:calc(var(--u)*11);padding:calc(var(--u)*9) calc(var(--u)*21);background:var(--accent);border:1px solid transparent;color:var(--button-ink,#fffdf6);border-radius:50px;font-size:calc(var(--u)*8);line-height:1.2;letter-spacing:.08em;transition:background .25s,transform .25s}.button:hover{filter:brightness(1.1);transform:translateY(-2px)}.button.small{font-size:calc(var(--u)*5.5);padding:calc(var(--u)*7) calc(var(--u)*12)}.button.small span{display:none}.button.light{background:#fcfaf3;color:var(--accent)}.text-link{display:inline-flex;gap:calc(var(--u)*11);border-bottom:1px solid color-mix(in srgb,var(--accent) 50%,transparent);padding-bottom:calc(var(--u)*4);font-size:calc(var(--u)*9);letter-spacing:.08em}.text-link:hover{color:var(--accent)}.section-title{font-size:calc(var(--u)*15);line-height:1.4;letter-spacing:.1em;position:relative;padding-bottom:calc(var(--u)*9)}.section-title:after,.rule{content:'';width:calc(var(--u)*21);height:1px;background:var(--accent);display:block}.section-title:after{position:absolute;bottom:0;left:0}.rule{margin:calc(var(--u)*10) 0}.photo{width:100%;height:100%;object-fit:cover}.ornament{pointer-events:none;user-select:none}.faq-list{position:relative;z-index:1}.faq-list details{border-top:1px solid var(--line,#c9c7b9);font-size:calc(var(--u)*8.5)}.faq-list details:last-child{border-bottom:1px solid var(--line,#c9c7b9)}.faq-list summary{padding:calc(var(--u)*7) calc(var(--u)*9);list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:15px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{transition:transform .3s;font-family:Arial,sans-serif;font-size:1.3em}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{padding:0 calc(var(--u)*9) calc(var(--u)*10);line-height:1.9}.site-footer{min-height:calc(var(--u)*50);display:flex;align-items:center;gap:calc(var(--u)*20);padding:calc(var(--u)*10) calc(var(--u)*35);position:relative}.site-footer nav{display:flex;align-items:center;gap:calc(var(--u)*12);font-size:calc(var(--u)*5.3);position:relative;z-index:1}.privacy-trigger{border:0;background:none;padding:0;font-size:inherit}.footer-branch{width:calc(var(--u)*60);height:calc(var(--u)*70);object-fit:contain;position:absolute;right:calc(var(--u)*10);bottom:calc(var(--u)*-22);transform:rotate(35deg)}.menu-toggle{display:none;position:relative;z-index:42;border:0;background:none;width:48px;height:48px}.menu-toggle img{position:absolute;inset:10px;width:28px;height:28px;transition:transform .5s,opacity .3s}.menu-x{opacity:0;transform:rotate(-90deg)}.menu-toggle[aria-expanded=true] .menu-bars{transform:rotate(90deg);opacity:0}.menu-toggle[aria-expanded=true] .menu-x{transform:rotate(0);opacity:1}.menu-overlay{position:fixed;z-index:25;inset:0;background:var(--paper);padding:110px 32px 35px;overflow-y:auto;clip-path:circle(0 at calc(100% - 37px) 30px);transition:clip-path .55s cubic-bezier(.22,1,.36,1)}.menu-overlay.is-open{clip-path:circle(150% at calc(100% - 37px) 30px)}.menu-overlay nav{display:flex;flex-direction:column}.menu-overlay a{font-size:23px;border-bottom:1px solid var(--line,#c9c7b9);padding:20px 0;opacity:0;transform:translateY(18px);transition:opacity .4s,transform .4s}.menu-overlay.is-open a{opacity:1;transform:none;transition-delay:calc(var(--i)*.06s + .12s)}.menu-overlay p{font-size:13px;margin-top:40px;letter-spacing:.1em}dialog{max-width:620px;width:calc(100% - 36px);border:0;padding:50px 35px;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #0003}dialog::backdrop{background:#101710aa}dialog h2{font-size:22px;margin:0 0 22px}dialog p{line-height:1.9;font-size:15px;margin-bottom:14px}.dialog-close{position:absolute;right:12px;top:6px;background:none;border:0;font-size:30px}.sub-heading{text-align:center;padding:75px 20px 55px;background:var(--surface)}.sub-heading h1{font-size:42px;margin:12px 0 28px}.sub-heading>a,.sub-heading>span{font-size:13px}.eyebrow{font-size:13px;letter-spacing:.15em}.sub-section{max-width:1080px;margin:auto;padding:80px 30px;font-size:16px;line-height:2}.sub-section h2{font-size:30px;line-height:1.7;margin-bottom:24px}.sub-section .button,.sub-section .text-link{font-size:14px;margin-top:20px}.teacher-profile,.access-detail{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.teacher-profile .photo{aspect-ratio:4/5;height:auto}.teacher-profile p,.access-detail p{margin-bottom:20px}.access-detail .photo{aspect-ratio:1.4;height:auto}.sub-intro{text-align:center;margin-bottom:50px}.sub-courses{display:grid;gap:65px}.sub-courses article{display:grid;grid-template-columns:1fr 1fr;gap:45px}.sub-courses .photo{height:auto;aspect-ratio:1.25}.sub-courses dl{margin:20px 0}.sub-courses dl div{display:grid;grid-template-columns:100px 1fr;border-bottom:1px solid var(--line);padding:9px 0}.sub-courses dd{margin:0}.trial-section{max-width:820px}.trial-steps{display:flex;justify-content:space-between;gap:20px;list-style:none;padding:0;margin:0 0 50px}.trial-steps b{display:block;color:var(--accent);font-size:30px;font-weight:400}.form-note{font-size:13px;color:var(--ink);padding:15px 18px;border:1px solid var(--line);margin-bottom:30px}fieldset{padding:0;border:0}fieldset legend{font-size:25px;margin-bottom:25px}fieldset label{display:block;margin:0 0 24px;font-size:15px}fieldset label>span{font-size:10px;margin-left:10px;border:1px solid var(--line);padding:2px 5px}input:not([type=checkbox]),select,textarea{display:block;width:100%;border:1px solid var(--line);padding:12px;background:#fffefb;color:#303530;border-radius:0;margin-top:8px}.consent{display:flex!important;gap:10px;align-items:center}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}#form-error{color:#a13223}#form-confirm dl{margin:30px 0}#form-confirm dt{font-size:13px;margin-top:20px}#form-confirm dd{margin:0;padding:8px 0;border-bottom:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere}[hidden]{display:none!important}.reveal-ready{opacity:0;transform:translateY(26px);transition:opacity .85s ease,transform 1s cubic-bezier(.22,1,.36,1)}h1.reveal-ready,h2.reveal-ready,h3.reveal-ready{transform:translateX(-30px)}.photo.reveal-ready{transform:translateX(30px)}.is-visible.reveal-ready{opacity:1;transform:none}
@media(max-width:767px){.site-shell{--u:1px}.site-header{height:72px;padding:0 19px}.brand{font-size:16px;gap:8px;letter-spacing:.05em}.brand-mark{width:29px;height:36px}.desktop-nav{display:none}.menu-toggle{display:block}.button{font-size:13px;padding:14px 25px;gap:15px}.text-link{font-size:13px;padding-bottom:6px;gap:18px}.section-title{font-size:24px;padding-bottom:15px}.section-title:after,.rule{width:30px}.faq-list details{font-size:13px}.faq-list summary{padding:15px 4px}.faq-list details p{padding:0 4px 18px}.site-footer{min-height:150px;padding:28px 22px;display:block}.site-footer nav{font-size:10px;gap:15px;flex-wrap:wrap;margin-top:25px;max-width:88%}.footer-branch{width:70px;height:100px;right:0;bottom:-25px}.sub-heading{padding:50px 20px 38px}.sub-heading h1{font-size:29px}.sub-section{padding:45px 24px;font-size:14px}.sub-section h2{font-size:24px}.teacher-profile,.access-detail,.sub-courses article{grid-template-columns:1fr;gap:30px}.teacher-profile .photo{max-height:430px}.sub-courses{gap:50px}.trial-steps{font-size:11px;gap:10px}.trial-steps b{font-size:25px}.sub-intro{font-size:14px}.reveal-ready{transition-duration:.7s}.menu-overlay{padding-top:94px}.subpage .site-footer{border-top:1px solid var(--line)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.reveal-ready{opacity:1;transform:none!important}.menu-overlay{clip-path:none}.menu-overlay a{opacity:1;transform:none}}

:root{--paper:#fdfbf8;--ink:#604d6b;--accent:#80678d;--surface:#eee8f4;--line:#d9cfc0;--button-ink:#fff}.design-e{font-feature-settings:"palt"}.design-e h1,.design-e h2,.design-e h3{font-weight:400}.skip{position:absolute;top:0;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0}.skip:focus{top:10px;clip-path:none;width:auto;height:auto;padding:16px}.site-header{height:calc(var(--u)*66);padding:0;display:block;text-align:center}.brand{justify-content:center;gap:0;font-weight:400;letter-spacing:.12em;font-size:calc(var(--u)*15);padding-top:calc(var(--u)*14)}.brand-mark{display:none}.desktop-nav{position:absolute;left:calc(var(--u)*150);right:calc(var(--u)*19);top:calc(var(--u)*37);font-size:calc(var(--u)*6.7);letter-spacing:.07em;gap:calc(var(--u)*24);justify-content:flex-end}.button{border-radius:0;font-size:calc(var(--u)*8.5);padding:calc(var(--u)*7) calc(var(--u)*20);letter-spacing:.08em}.button.small{border:1px solid var(--accent);background:transparent;color:var(--ink);font-size:calc(var(--u)*7);padding:calc(var(--u)*6) calc(var(--u)*13)}.hero{height:calc(var(--u)*408);position:relative;isolation:isolate}.hero-photo{position:absolute;inset:0;object-position:center bottom;z-index:-2}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--paper) 0%,#fdfbf8ee 13%,#fdfbf880 27%,#fdfbf800 49%)}.hero-copy{text-align:center;position:relative;padding-top:calc(var(--u)*10)}.eyebrow{font-family:Georgia,serif;font-size:calc(var(--u)*6.5);letter-spacing:.2em;line-height:1.4}.hero .eyebrow{display:flex;justify-content:center;align-items:center;gap:calc(var(--u)*7)}.hero .eyebrow:before,.hero .eyebrow:after{content:'';display:block;width:calc(var(--u)*32);height:1px;background:var(--line)}.hero h1{font-size:calc(var(--u)*27);letter-spacing:.08em;line-height:1.27;margin:calc(var(--u)*8) 0 calc(var(--u)*5)}.hero-copy>p:not(.eyebrow){font-size:calc(var(--u)*11);letter-spacing:.16em;margin:0 0 calc(var(--u)*11)}.homepage h2{font-size:calc(var(--u)*18);line-height:1.5;letter-spacing:.1em}.about{text-align:center;height:calc(var(--u)*130);padding:calc(var(--u)*6) 0}.about>.ornament{width:calc(var(--u)*190);height:calc(var(--u)*22);object-fit:fill;margin:auto;opacity:.7}.about h2{font-size:calc(var(--u)*25);margin:calc(var(--u)*5) 0}.about p{font-size:calc(var(--u)*10.2);line-height:1.7;letter-spacing:.14em}.about>.ornament:last-child{margin-top:calc(var(--u)*3)}.courses{background:var(--surface);padding:calc(var(--u)*14) calc(var(--u)*32) calc(var(--u)*17);text-align:center}.title-rule{display:flex;justify-content:center;align-items:center;gap:calc(var(--u)*3);color:#c7b68d;font-size:calc(var(--u)*7);line-height:1;margin:calc(var(--u)*2) 0 calc(var(--u)*10)}.title-rule:before,.title-rule:after{content:'';height:1px;background:var(--line);width:calc(var(--u)*22)}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(var(--u)*41);position:relative}.course-grid:before{content:'';position:absolute;left:50%;top:calc(var(--u)*12);bottom:0;width:1px;background:#d5c4af}.course-grid:after{content:'◇';position:absolute;left:50%;top:40%;color:#c7b68d;font-size:calc(var(--u)*8);transform:translateX(-50%);background:var(--surface)}.course-grid .photo{height:calc(var(--u)*150);object-position:center}.course-grid h3{font-size:calc(var(--u)*13.5);line-height:1.5;margin:calc(var(--u)*7) 0 calc(var(--u)*5);letter-spacing:.05em}.course-grid p{font-size:calc(var(--u)*8.6);line-height:1.7;letter-spacing:.04em;color:#7d7085;white-space:nowrap}.text-link{font-size:calc(var(--u)*8.5);gap:calc(var(--u)*11);padding-bottom:calc(var(--u)*3);border-color:#b5a8bc;letter-spacing:.08em}.course-grid .text-link{margin-top:calc(var(--u)*10)}.teacher{height:calc(var(--u)*180);padding:calc(var(--u)*18) calc(var(--u)*82) calc(var(--u)*11);display:grid;grid-template-columns:calc(var(--u)*128) 1fr;align-items:center;gap:calc(var(--u)*18)}.teacher>.photo{height:calc(var(--u)*150);border:1px solid #cfbea6;border-radius:50%;padding:calc(var(--u)*2);object-position:center 35%}.teacher h2{font-size:calc(var(--u)*14);line-height:1.4}.teacher .title-rule{justify-content:flex-start;margin:calc(var(--u)*4) 0 calc(var(--u)*24)}.teacher .title-rule:before,.teacher .title-rule:after{width:calc(var(--u)*26)}.teacher h3{font-size:calc(var(--u)*23);letter-spacing:.06em;line-height:1.4;white-space:nowrap}.teacher p{font-size:calc(var(--u)*9.3);letter-spacing:.06em;margin:calc(var(--u)*6) 0 calc(var(--u)*11);white-space:nowrap}.faq{padding:calc(var(--u)*10) calc(var(--u)*49) calc(var(--u)*9);text-align:center;background:#fff}.faq h2{font-size:calc(var(--u)*15)}.faq .title-rule{margin-bottom:calc(var(--u)*5)}.faq-list details{border:1px solid #cec6d5!important;margin-bottom:calc(var(--u)*6);font-size:calc(var(--u)*9.2);text-align:left}.faq-list summary{padding:calc(var(--u)*5) calc(var(--u)*17);line-height:1.6}.faq-list summary span{font-size:calc(var(--u)*17);line-height:1}.faq-list details p{font-size:calc(var(--u)*9)}.access{display:grid;grid-template-columns:51% 49%;gap:calc(var(--u)*18);padding:calc(var(--u)*8) calc(var(--u)*33) calc(var(--u)*9);align-items:center}.access>.photo{height:calc(var(--u)*139)}.access h2{font-size:calc(var(--u)*14)}.access .title-rule{justify-content:flex-start;margin:calc(var(--u)*4) 0 calc(var(--u)*15)}.access h3{font-size:calc(var(--u)*13);line-height:1.5;letter-spacing:.04em}.access p{font-size:calc(var(--u)*8.8);letter-spacing:.03em;line-height:1.7;margin:calc(var(--u)*6) 0 calc(var(--u)*10);white-space:nowrap}.closing{text-align:center;background:var(--surface);padding:calc(var(--u)*13) 0 calc(var(--u)*12)}.closing h2{font-size:calc(var(--u)*18);letter-spacing:.08em}.closing p{font-size:calc(var(--u)*10);margin:calc(var(--u)*2) 0 calc(var(--u)*7);letter-spacing:.08em}.closing .button{font-size:calc(var(--u)*8);padding:calc(var(--u)*7) calc(var(--u)*31)}.site-footer{margin:calc(var(--u)*7) calc(var(--u)*40) 0;border-top:1px solid var(--line);min-height:calc(var(--u)*58);display:block;padding:calc(var(--u)*5) 0}.site-footer .brand{font-size:calc(var(--u)*10);padding-top:calc(var(--u)*3)}.site-footer nav{font-size:calc(var(--u)*6.5);gap:calc(var(--u)*24);justify-content:center;margin-top:calc(var(--u)*9)}
@media(max-width:767px){.site-header{height:76px;padding:0 20px;display:flex}.brand{font-size:17px;letter-spacing:.08em;padding:0}.desktop-nav{display:none}.hero{height:570px}.hero-photo{object-position:center bottom}.hero:after{background:linear-gradient(180deg,var(--paper) 0%,#fdfbf8e6 20%,#fdfbf880 36%,#fdfbf800 65%)}.hero-copy{padding:16px 22px 0}.eyebrow{font-size:9px}.hero .eyebrow{gap:10px}.hero .eyebrow:before,.hero .eyebrow:after{width:36px}.hero h1{font-size:32px;line-height:1.5;margin:16px 0 10px}.hero-copy>p:not(.eyebrow){font-size:12px;letter-spacing:.08em;margin-bottom:22px}.button{font-size:12px;padding:13px 22px}.homepage h2{font-size:25px;letter-spacing:.06em}.about{height:auto;padding:24px 20px}.about>.ornament{width:220px;height:26px}.about h2{font-size:24px;margin:12px 0}.about p{font-size:12px;line-height:1.9;letter-spacing:.04em}.about>.ornament:last-child{margin-top:15px}.courses{padding:30px 25px}.title-rule{font-size:10px;gap:5px;margin:8px 0 25px}.title-rule:before,.title-rule:after{width:30px}.course-grid{grid-template-columns:1fr;gap:32px}.course-grid:before,.course-grid:after{display:none}.course-grid article+article{border-top:1px solid var(--line);padding-top:30px}.course-grid .photo{height:240px}.course-grid h3{font-size:22px;margin:17px 0 12px}.course-grid p{font-size:12px;white-space:normal;line-height:1.9}.text-link{font-size:12px;gap:15px;padding-bottom:5px}.course-grid .text-link{margin-top:18px}.teacher{height:auto;padding:35px 25px;grid-template-columns:1fr;gap:25px;text-align:center}.teacher>.photo{height:235px;width:195px;margin:auto;padding:3px}.teacher h2{font-size:18px}.teacher .title-rule{justify-content:center;margin:8px 0 22px}.teacher .title-rule:before,.teacher .title-rule:after{width:30px}.teacher h3{font-size:25px;white-space:normal;line-height:1.7}.teacher p{font-size:12px;white-space:normal;line-height:1.9;margin:14px 0 18px}.faq{padding:25px}.faq h2{font-size:22px}.faq .title-rule{margin:8px 0 20px}.faq-list details{font-size:12px;margin-bottom:10px}.faq-list summary{padding:13px 14px;line-height:1.5}.faq-list summary span{font-size:21px}.faq-list details p{font-size:12px;padding:0 14px 15px}.access{grid-template-columns:1fr;gap:24px;padding:20px 25px 35px}.access>.photo{height:220px}.access h2{font-size:22px}.access .title-rule{margin:8px 0 20px}.access h3{font-size:20px}.access p{font-size:12px;white-space:normal;line-height:1.9;margin:13px 0 18px}.closing{padding:30px 22px}.closing h2{font-size:23px;line-height:1.7}.closing p{font-size:13px;margin:10px 0 20px}.closing .button{font-size:12px;padding:14px 30px}.site-footer{margin:15px 24px 0;padding:20px 0 25px;min-height:135px}.site-footer .brand{font-size:16px;padding:0}.site-footer nav{font-size:9px;gap:14px;max-width:100%;margin-top:23px}}

/* Reference-aligned desktop rhythm. */
@media(min-width:768px){
  .courses{padding-top:calc(var(--u)*11);padding-bottom:calc(var(--u)*8)}
  .faq{padding-top:calc(var(--u)*8);padding-bottom:calc(var(--u)*3)}
}
