*{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: #101816;
  --ink: #eeeae0;
  --accent: #b59b62;
  --surface: #1b2520;
  --line: #786b49;
  --button-ink: #fffaf0;
}
.design-b { font-feature-settings: "palt"; }
.design-b h1, .design-b h2, .design-b h3 { font-weight: 400; }
.homepage .site-header { position: absolute; top: 0; width: 100%; background: transparent; }
.site-header { padding: 0 calc(var(--u)*15); height: calc(var(--u)*47); }
.brand { font-size: calc(var(--u)*12); letter-spacing: .12em; }
.brand-mark { height: calc(var(--u)*34); width: calc(var(--u)*31); }
.desktop-nav { gap: calc(var(--u)*12); font-size: calc(var(--u)*5.6); }
.button { border-radius: 0; font-size: calc(var(--u)*8); padding: calc(var(--u)*8) calc(var(--u)*15); }
.button.small { background: transparent; border-color: var(--accent); color: #d0b780; padding: calc(var(--u)*7) calc(var(--u)*10); }
.hero { height: calc(var(--u)*292); position: relative; }
.hero-photo { position: absolute; inset: 0; object-position: center; }
.hero:after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#0a11145c,transparent 65%); pointer-events: none; }
.hero-copy { position: absolute; z-index: 1; left: calc(var(--u)*32); top: calc(var(--u)*85); }
.hero h1 { font-size: calc(var(--u)*34); line-height: 1.35; letter-spacing: .05em; }
.hero-copy>p { font-size: calc(var(--u)*11); letter-spacing: .13em; margin: calc(var(--u)*6) 0 calc(var(--u)*12); }
.hero-actions { display: flex; align-items: center; gap: calc(var(--u)*12); }
.hero .text-link { font-size: calc(var(--u)*8); border-color: #c8b790; }
.eyebrow { font-size: calc(var(--u)*6.5); letter-spacing: .23em; color: var(--accent); }
.long-rule { display: block; border-top: 1px solid var(--line); margin-top: calc(var(--u)*10); width: 91%; }
.philosophy { height: calc(var(--u)*118); padding: calc(var(--u)*22) calc(var(--u)*32) 0; display: grid; grid-template-columns: 49% 51%; }
.philosophy h2 { font-size: calc(var(--u)*21); line-height: 1.4; letter-spacing: .03em; white-space: nowrap; }
.philosophy p:not(.eyebrow) { font-size: calc(var(--u)*10); letter-spacing: .1em; margin-top: calc(var(--u)*4); white-space: nowrap; }
.values { display: flex; gap: calc(var(--u)*25); margin-top: calc(var(--u)*13); font-size: calc(var(--u)*10); letter-spacing: .12em; }
.values span+span { border-left: 1px solid var(--accent); padding-left: calc(var(--u)*27); }
.section-title { font-size: calc(var(--u)*21); letter-spacing: .09em; padding-bottom: 0; line-height: 1.5; }
.section-title:after { display: none; }
.courses { padding: 0 calc(var(--u)*32) calc(var(--u)*16); }
.courses .section-title { margin-bottom: calc(var(--u)*8); }
.course-row { display: grid; grid-template-columns: 63% 37%; align-items: center; min-height: calc(var(--u)*124); }
.course-row>.photo { height: calc(var(--u)*124); min-height: 0; }
.course-row>div { padding-left: calc(var(--u)*20); }
.course-row h3 { font-size: calc(var(--u)*18); line-height: 1.4; white-space: nowrap; letter-spacing: .04em; }
.rule { width: calc(var(--u)*17); margin: calc(var(--u)*8) 0; }
.course-row p { font-size: calc(var(--u)*10); line-height: 1.45; letter-spacing: .02em; }
.course-row .text-link { font-size: calc(var(--u)*9); margin-top: calc(var(--u)*9); color: var(--accent); padding-bottom: calc(var(--u)*3); }
.course-row+.course-row { margin-top: calc(var(--u)*10); border-top: 1px solid var(--line); padding-top: calc(var(--u)*12); }
.course-row+.course-row>.photo { height: calc(var(--u)*130); }
.teacher-banner { position: relative; height: calc(var(--u)*220); color: #2b2a24; background: #ece9df; }
.teacher-banner>.photo { position: absolute; inset: 0; }
.teacher-banner .copy { position: relative; z-index: 1; padding: calc(var(--u)*19) calc(var(--u)*32); }
.teacher-banner .section-title { font-size: calc(var(--u)*22); margin: calc(var(--u)*2) 0 calc(var(--u)*15); }
.teacher-banner .section-title:after { display: block; bottom: calc(var(--u)*-5); width: calc(var(--u)*21); }
.teacher-banner h3 { font-size: calc(var(--u)*23); line-height: 1.4; letter-spacing: .06em; }
.teacher-banner .copy>p:not(.eyebrow) { font-size: calc(var(--u)*11); margin: calc(var(--u)*10) 0; }
.teacher-banner .text-link { font-size: calc(var(--u)*10); }
.faq { padding: calc(var(--u)*20) calc(var(--u)*32) calc(var(--u)*17); }
.faq .section-title { margin-bottom: calc(var(--u)*7); }
.faq-list { margin: 0; width: 100%; }
.faq-list details { font-size: calc(var(--u)*11); }
.faq-list summary { padding: calc(var(--u)*9) 0; line-height: 1.5; letter-spacing: .08em; }
.faq-list summary span { color: var(--accent); font-size: calc(var(--u)*18); font-weight: 300; }
.faq-list details p { font-size: calc(var(--u)*10); }
.access { padding: calc(var(--u)*3) calc(var(--u)*32) calc(var(--u)*14); }
.access .section-title { margin-bottom: calc(var(--u)*3); }
.access-row { display: grid; grid-template-columns: 63% 37%; align-items: center; }
.access-row>.photo { height: calc(var(--u)*128); }
.access-row>div { padding-left: calc(var(--u)*20); }
.access h3 { font-size: calc(var(--u)*16); letter-spacing: .05em; white-space: nowrap; }
.access p { font-size: calc(var(--u)*10); line-height: 1.5; }
.access .text-link { font-size: calc(var(--u)*8.5); color: var(--accent); margin-top: calc(var(--u)*12); }
.closing { position: relative; height: calc(var(--u)*166); }
.closing>.photo { position: absolute; inset: 0; }
.closing>div { position: relative; z-index: 1; padding: calc(var(--u)*46) calc(var(--u)*32) 0; }
.closing h2 { font-size: calc(var(--u)*20); line-height: 1.4; letter-spacing: .06em; }
.closing p { font-size: calc(var(--u)*10); margin: calc(var(--u)*4) 0 calc(var(--u)*12); letter-spacing: .08em; }
.site-footer { margin: 0 calc(var(--u)*13); padding: calc(var(--u)*11) calc(var(--u)*8); border-top: 1px solid var(--line); min-height: calc(var(--u)*60); gap: 0; justify-content: space-between; }
.site-footer .brand { font-size: calc(var(--u)*10); }
.site-footer nav { font-size: calc(var(--u)*5); gap: calc(var(--u)*11); }
.menu-toggle img { filter: invert(1); }
.subpage .site-header { border-bottom: 1px solid var(--line); }
.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; color: #182019; }
@media(max-width:767px) {
 .site-header { height: 76px; padding: 0 17px; }
 .brand { font-size: 15px; letter-spacing: .07em; gap: 6px; }
 .brand-mark { width: 32px; height: 38px; }
 .hero { height: 620px; }
 .hero-photo { object-position: 67% center; }
 .hero:after { background: linear-gradient(90deg,#07100eb3,transparent 90%),linear-gradient(0deg,#10181670,transparent 70%); }
 .hero-copy { left: 25px; right: 20px; top: 177px; }
 .hero h1 { font-size: 44px; line-height: 1.45; }
 .hero-copy>p { font-size: 13px; line-height: 1.8; margin: 17px 0 25px; letter-spacing: .08em; }
 .button { font-size: 12px; padding: 14px 19px; }
 .hero-actions { gap: 20px; flex-wrap: wrap; }
 .hero .text-link { font-size: 11px; }
 .eyebrow { font-size: 9px; }
 .philosophy { height: auto; padding: 35px 25px 48px; display: block; }
 .long-rule { width: 100%; margin: 14px 0 28px; }
 .philosophy h2 { font-size: 24px; white-space: normal; line-height: 1.6; }
 .philosophy p:not(.eyebrow) { font-size: 12px; white-space: normal; line-height: 1.8; margin-top: 13px; }
 .values { font-size: 12px; gap: 20px; margin-top: 22px; }
 .values span+span { padding-left: 20px; }
 .section-title { font-size: 27px; }
 .courses { padding: 0 25px 40px; }
 .courses .section-title { margin: 4px 0 24px; }
 .course-row { grid-template-columns: 1fr; gap: 25px; }
 .course-row>.photo,.course-row+.course-row>.photo { height: 195px; }
 .course-row>div { padding: 0; }
 .course-row h3 { font-size: 24px; white-space: normal; }
 .rule { width: 25px; margin: 15px 0; }
 .course-row p { font-size: 13px; line-height: 1.9; }
 .course-row .text-link { font-size: 13px; margin-top: 17px; }
 .course-row+.course-row { margin-top: 30px; padding-top: 30px; }
 .teacher-banner { height: 550px; }
 .teacher-banner>.photo { height: 300px; top: auto; object-position: 73% center; }
 .teacher-banner .copy { padding: 30px 25px; }
 .teacher-banner .section-title { font-size: 25px; margin: 5px 0 22px; }
 .teacher-banner h3 { font-size: 27px; line-height: 1.4; }
 .teacher-banner .copy>p:not(.eyebrow) { font-size: 13px; margin: 14px 0; }
 .teacher-banner .text-link { font-size: 13px; }
 .faq { padding: 35px 25px; }
 .faq .section-title { margin: 4px 0 20px; }
 .faq-list details { font-size: 13px; }
 .faq-list summary { padding: 17px 0; }
 .faq-list summary span { font-size: 20px; }
 .faq-list details p { font-size: 12px; }
 .access { padding: 8px 25px 35px; }
 .access .section-title { margin: 4px 0 20px; }
 .access-row { grid-template-columns: 1fr; gap: 25px; }
 .access-row>.photo { height: 210px; }
 .access-row>div { padding: 0; }
 .access h3 { font-size: 22px; }
 .access p { font-size: 13px; line-height: 1.8; }
 .access .text-link { font-size: 12px; margin-top: 17px; }
 .closing { height: 300px; }
 .closing>.photo { object-position: 64% center; filter: brightness(.67); }
 .closing>div { padding: 85px 25px 0; }
 .closing h2 { font-size: 24px; line-height: 1.6; }
 .closing p { font-size: 13px; margin: 12px 0 21px; }
 .site-footer { margin: 0 15px; padding: 25px 10px; }
 .site-footer .brand { font-size: 15px; }
 .site-footer nav { font-size: 10px; gap: 15px; max-width: 100%; }
}

@media (min-width: 768px) {
  .course-row p { font-size: calc(var(--u) * 9.1); line-height: 1.5; }
  .faq .section-title { line-height: 1.3; }
  .faq-list summary span { line-height: 1; }
  .faq { padding-bottom: calc(var(--u) * 14); }
  .faq .eyebrow { line-height: 1.1; }
  .access .eyebrow { font-size: calc(var(--u) * 6.5); }
}
