*{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:#f9f6ed;--ink:#33362b;--accent:#596840;--surface:#e8e8d9;--line:#c8c6b7}.hero{height:calc(var(--u)*283);position:relative}.hero-photo{width:57.5%;height:100%;object-position:44% center}.hero-copy{position:absolute;left:60.6%;top:calc(var(--u)*36);right:1%}.hero h1{font-size:calc(var(--u)*20);line-height:1.48;letter-spacing:.03em;white-space:nowrap}.hero p{font-size:calc(var(--u)*9.5);line-height:1.9;margin:calc(var(--u)*6) 0 calc(var(--u)*12);letter-spacing:.08em;white-space:nowrap}.hero-detail{position:absolute;width:27%;height:calc(var(--u)*93);left:50.4%;bottom:0;border-left:calc(var(--u)*2) solid var(--paper)}.hero-branch{position:absolute;width:calc(var(--u)*84);height:calc(var(--u)*157);right:calc(var(--u)*2);bottom:calc(var(--u)*14);object-fit:contain;transform:rotate(10deg)}.split{display:grid;grid-template-columns:52.3% 47.7%;position:relative}.copy{padding-left:calc(var(--u)*35);position:relative}.about{height:calc(var(--u)*177);padding-top:calc(var(--u)*9);padding-bottom:calc(var(--u)*3)}.about .copy{display:flex;justify-content:center;flex-direction:column;padding-top:calc(var(--u)*32)}.about h2{font-size:calc(var(--u)*18);letter-spacing:.08em;white-space:nowrap}.about p{font-size:calc(var(--u)*9.5);letter-spacing:.06em;margin-top:calc(var(--u)*8);white-space:nowrap}.about-branch{width:calc(var(--u)*47);height:calc(var(--u)*72);object-fit:contain;position:absolute;left:calc(var(--u)*9);top:calc(var(--u)*0);transform:rotate(10deg)}.teacher{height:calc(var(--u)*214)}.teacher .copy{padding-top:calc(var(--u)*24)}.teacher h2:not(.section-title){font-size:calc(var(--u)*18);line-height:1.4;letter-spacing:.08em;margin:calc(var(--u)*13) 0 calc(var(--u)*7)}.teacher .section-title{font-size:calc(var(--u)*13)}.teacher p{font-size:calc(var(--u)*9.5);letter-spacing:.06em}.teacher .text-link{margin-top:calc(var(--u)*13)}.teacher>.photo{object-position:center 30%}.courses{background:var(--surface);padding:calc(var(--u)*15) calc(var(--u)*35) calc(var(--u)*16)}.courses>.section-title{margin-bottom:calc(var(--u)*10)}.course-row{display:grid;grid-template-columns:51% 49%;height:calc(var(--u)*126);align-items:center;gap:0}.course-row>div{padding-left:calc(var(--u)*20)}.course-row.reverse{grid-template-columns:49% 51%;margin-top:calc(var(--u)*3);height:calc(var(--u)*132)}.course-row.reverse>div{padding-left:0}.course-row h3{font-size:calc(var(--u)*17);letter-spacing:.08em;margin-bottom:calc(var(--u)*7)}.course-row p{font-size:calc(var(--u)*9.5);letter-spacing:.03em;line-height:1.65}.course-row .text-link{margin-top:calc(var(--u)*12)}.faq{min-height:calc(var(--u)*125);padding:calc(var(--u)*16) calc(var(--u)*35) calc(var(--u)*13);position:relative}.faq-list{width:77%;margin:calc(var(--u)*15) auto 0}.faq-branch{position:absolute;width:calc(var(--u)*58);height:calc(var(--u)*99);right:calc(var(--u)*8);bottom:0;object-fit:contain;transform:rotate(9deg)}.access{padding:calc(var(--u)*9) calc(var(--u)*35) calc(var(--u)*9);background:#f5f1e6;position:relative}.access>.section-title{margin-bottom:calc(var(--u)*8)}.access-row{display:grid;grid-template-columns:58.5% 41.5%;height:calc(var(--u)*150);align-items:center}.access-row>div{padding-left:calc(var(--u)*19)}.access h3{font-size:calc(var(--u)*14);letter-spacing:.1em}.access .rule{margin:calc(var(--u)*7) 0}.access p{font-size:calc(var(--u)*9.5);line-height:1.7}.access .text-link{margin-top:calc(var(--u)*10)}.access-branch{position:absolute;width:calc(var(--u)*55);height:calc(var(--u)*95);right:0;bottom:calc(var(--u)*-2);object-fit:contain;transform:rotate(-20deg)}.closing{display:grid;grid-template-columns:64% 36%;height:calc(var(--u)*123);background:var(--accent);color:#f8f7ed}.closing>div{position:relative;text-align:center;padding:calc(var(--u)*18) 0 calc(var(--u)*14) calc(var(--u)*54)}.closing h2{font-size:calc(var(--u)*18);letter-spacing:.08em;line-height:1.5;white-space:nowrap}.closing p{font-size:calc(var(--u)*10);margin:calc(var(--u)*2) 0 calc(var(--u)*12);letter-spacing:.1em}.closing-branch{position:absolute;left:calc(var(--u)*4);top:calc(var(--u)*10);width:calc(var(--u)*58);height:calc(var(--u)*105);object-fit:contain;filter:brightness(0) invert(.94)}.closing .button{font-size:calc(var(--u)*8.5);padding:calc(var(--u)*9) calc(var(--u)*24)}
@media(max-width:767px){.hero{height:auto;padding-bottom:105px}.hero-photo{width:100%;height:365px;object-position:center 45%}.hero-copy{position:relative;left:auto;right:auto;top:auto;padding:28px 24px 0;z-index:2}.hero h1{font-size:26px;line-height:1.6;white-space:normal}.hero p{font-size:12px;white-space:normal;line-height:1.8;margin:10px 0 17px;letter-spacing:.05em}.hero-detail{width:40%;height:105px;left:auto;right:28px;bottom:0;border:4px solid var(--paper)}.hero-branch{width:60px;height:115px;right:2px;bottom:26px;opacity:.7}.split{grid-template-columns:1fr}.copy{padding-left:24px;padding-right:24px}.about{height:auto;padding:15px 0 0}.about .copy{padding-top:57px;padding-bottom:30px}.about h2{font-size:23px;white-space:normal;line-height:1.6;letter-spacing:.03em}.about p{font-size:12px;white-space:normal;line-height:1.8;margin-top:10px}.about-branch{left:18px;top:0;width:38px;height:65px}.about>.photo{height:265px}.teacher{height:auto}.teacher .copy{padding-top:35px;padding-bottom:32px}.teacher .section-title{font-size:21px}.teacher h2:not(.section-title){font-size:24px;line-height:1.5;margin:24px 0 12px}.teacher p{font-size:12px}.teacher .text-link{margin-top:20px}.teacher>.photo{height:360px;object-position:center 22%}.courses{padding:35px 24px}.courses>.section-title{margin-bottom:24px}.course-row,.course-row.reverse{display:flex;flex-direction:column;align-items:stretch;height:auto;gap:23px;margin:0}.course-row.reverse{margin-top:38px;flex-direction:column-reverse}.course-row>.photo{height:220px}.course-row>div,.course-row.reverse>div{padding:0}.course-row h3{font-size:22px;margin-bottom:12px}.course-row p{font-size:13px;line-height:1.8}.course-row .text-link{margin-top:17px}.faq{padding:35px 24px;min-height:230px}.faq-list{width:100%;margin-top:25px}.faq-branch{width:42px;height:78px;right:8px;top:12px;bottom:auto;opacity:.5}.access{padding:30px 24px 38px}.access>.section-title{margin-bottom:22px}.access-row{grid-template-columns:1fr;height:auto;gap:25px}.access-row>.photo{height:240px}.access-row>div{padding:0}.access h3{font-size:21px}.access p{font-size:13px}.access .text-link{margin-top:18px}.access-branch{width:55px;height:95px;bottom:14px;right:10px}.closing{display:flex;flex-direction:column;height:auto}.closing>div{padding:32px 15px 32px 30px}.closing h2{font-size:22px;white-space:normal;line-height:1.65;letter-spacing:.03em}.closing p{font-size:12px;margin:7px 0 20px}.closing .button{font-size:13px;padding:14px 25px}.closing-branch{width:37px;left:0;height:95px;top:30px;opacity:.6}.closing>.photo{height:210px}}

/* Optical spacing follows the narrow Mincho typesetting in the supplied design. */
.design-a { font-feature-settings: "palt"; }
.design-a .site-shell { background-image: linear-gradient(#f9f6edb8, #f9f6edb8), url("assets/wood-paper.webp"); background-size: 800px; }
.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; }
.design-a h1, .design-a h2, .design-a h3 { font-weight: 600; }
.design-a .ornament:not(.brand-mark) { opacity: .76; }
@media (min-width: 768px) {
  .split { grid-template-rows: minmax(0, 1fr); }
  .split > .photo, .access-row > .photo, .course-row > .photo { min-height: 0; }
  .faq-list summary { line-height: 1.3; padding-block: calc(var(--u) * 6); }
  .site-header { padding-right: calc(var(--u) * 19); }
  .brand { font-size: calc(var(--u) * 10.5); }
  .hero h1 { font-size: calc(var(--u) * 18.5); letter-spacing: .02em; }
  .hero p { font-size: calc(var(--u) * 9); letter-spacing: .06em; }
  .about h2 { font-size: calc(var(--u) * 17.5); letter-spacing: .06em; }
  .about p { font-size: calc(var(--u) * 9); letter-spacing: .04em; }
}
