@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=Noto+Sans+JP:wght@400;500&family=Noto+Serif+JP:wght@400;500&display=swap');
:root{--paper:#faf7f0;--sand:#ede7dc;--ink:#454e43;--muted:#777a6c;--olive:#71846c;--rose:#b68170;--line:#d9dbcc;--serif:'Cormorant Garamond','Noto Serif JP',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;color:var(--ink);background:var(--paper);font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif;line-height:2}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--olive);outline-offset:6px}img{display:block;max-width:100%;object-fit:cover}p{font-size:14px;letter-spacing:.025em}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2{font-family:'Noto Serif JP',serif;font-weight:400;letter-spacing:.09em;line-height:1.85}h2{font-size:clamp(27px,3vw,40px);margin:18px 0 30px}h3{font-weight:500}.eyebrow{font:500 10px/1.8 'Noto Sans JP',sans-serif;letter-spacing:.22em;color:var(--olive)}.header{display:flex;align-items:center;justify-content:space-between;padding:24px 5%;position:sticky;top:0;z-index:20;background:#faf7f0f5;border-bottom:1px solid #deded170;backdrop-filter:blur(12px)}.brand{font:400 45px/.8 var(--serif);letter-spacing:.05em;color:var(--olive)}.brand span{display:block;font:400 8px/1 sans-serif;letter-spacing:.24em;margin-top:12px}.header nav{display:flex;gap:28px;align-items:center}.header nav a,.header nav button{font-size:12px;letter-spacing:.04em}.header nav button,.menu-button,.text-link{border:0;background:none}.header nav a:hover,.header nav button:hover{color:var(--rose)}.menu-button{display:none}.hero{position:relative;padding:36px 6% 65px;overflow:hidden;background:radial-gradient(ellipse at 0 80%,#e8e9dc88,transparent 58%),var(--paper)}.hero-inner{max-width:1280px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center}.hero-copy{padding:15px 0 30px}.hero-script{font:italic 400 clamp(32px,3.8vw,58px)/1.2 var(--serif);color:var(--rose);margin:20px 0 30px;letter-spacing:-.02em}.hero h1{font-size:clamp(31px,3.4vw,51px);margin:0 0 25px;line-height:1.65}.hero h1 span{color:var(--olive)}.intro{font-size:12px;line-height:2.3;margin-bottom:30px}.hero-reviews{min-width:0;position:relative}.hero-photo{position:relative;padding-bottom:19px}.hero-photo img{width:100%;height:350px;object-position:50% 49%;border-radius:48% 48% 0 0}.photo-caption{position:absolute;bottom:0;left:-25px;font:italic 35px/1.2 var(--serif);color:#677f78;transform:rotate(-5deg);background:var(--paper);padding:3px 12px}.hero-review-copy{padding:22px 10px 0}.hero-review-copy>.eyebrow{color:var(--rose);margin:0 0 6px;font-size:10px}.teacher-review-lead{font-family:'Noto Serif JP',serif;font-size:16px;line-height:1.8;margin:5px 0 12px}.hero-reviews ul{padding:0;margin:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:7px 16px}.hero-reviews li{font-size:10px;line-height:1.8;border-top:1px solid var(--line);padding-top:7px}.hero-reviews li:before{content:'✧';color:var(--rose);margin-right:5px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:52px;border-radius:0;padding:14px 25px;font-size:12px;line-height:1.6;letter-spacing:.04em;transition:background .2s,transform .2s}.button:after{content:'↗';font-size:18px}.dark{background:var(--olive);color:#fff;border:1px solid var(--olive)}.dark:hover{background:#566b55;transform:translateY(-2px)}.outline{border-bottom:1px solid var(--olive);color:var(--olive);padding:8px 0;min-height:35px;font-size:10px;margin-top:10px}.vertical-note{position:absolute;right:18px;top:100px;writing-mode:vertical-rl;font:9px/1.5 sans-serif;letter-spacing:.2em;color:var(--rose)}.scroll-note{position:absolute;bottom:15px;left:6%;font:9px/1.5 sans-serif;letter-spacing:.2em;display:flex;align-items:center;gap:20px;color:var(--olive)}.scroll-note span{font-size:26px}.section{padding:100px max(6%,calc((100% - 1180px)/2))}.welcome{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center;position:relative}.welcome-photos{position:relative;margin:0 0 40px}.welcome-main{width:78%;height:490px;object-position:50% 43%}.welcome-small{position:absolute;width:51%;height:205px;bottom:-35px;right:0;border:9px solid var(--paper);transform:rotate(5deg)}.welcome-photos>span{position:absolute;top:45px;right:-3%;writing-mode:vertical-rl;font:italic 29px/1 var(--serif);color:var(--rose)}.welcome-copy p:not(.eyebrow){line-height:2.25}.text-link{padding:12px 0;border-bottom:1px solid var(--olive);font-size:12px}.text-link span{margin-left:25px}.course{background:#e9eddf;position:relative}.section-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #cbd2bf;padding-bottom:15px;margin-bottom:45px}.serial{font:10px/1.8 sans-serif;letter-spacing:.16em;color:var(--muted)}.course-layout{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:start}.course-layout h2{margin-top:0}.course-photo{width:135px;height:175px;float:right;transform:rotate(6deg);margin:0 4px 18px 25px;border:6px solid #f8f6ed;box-shadow:0 5px 15px #52644512}.course-en{font:italic 32px/1.2 var(--serif);color:var(--rose);margin:26px 0}.teacher-course-note{font-size:13px}.course-consultation{margin-top:30px;clear:both}.syllabus h3{font-family:'Noto Serif JP',serif;font-size:20px;margin-top:0}.learning-intro{font-size:12px;color:var(--muted)}.learning-steps{list-style:none;padding:0;margin:25px 0 0}.learning-step details{border-top:1px solid #c4cdb9;padding:22px 0}.learning-step:last-child details{border-bottom:1px solid #c4cdb9}.learning-step summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:17px}.learning-step summary::-webkit-details-marker{display:none}.learning-step summary:after{content:'＋';margin-left:auto;color:var(--olive);font-size:20px}.learning-step details[open] summary:after{content:'−'}.learning-icon{width:44px;height:44px;color:var(--olive);flex-shrink:0}.learning-icon svg{width:100%;height:100%}.learning-label{display:flex;flex-direction:column;gap:3px}.learning-number{font:10px/1.4 sans-serif;letter-spacing:.15em;color:var(--rose)}.learning-title{font-size:15px}.learning-detail{padding:12px 0 0 61px}.learning-lead{font-size:13px;color:var(--olive);margin:0 0 7px}.learning-description{font-size:12px;margin:0}.reviews{position:relative}.reviews>h2,.reviews>.eyebrow{text-align:center}.reviews-intro{max-width:670px;text-align:center;margin:0 auto 45px;line-height:2.2}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 28px}.review-card{position:relative;border-top:1px solid var(--line);padding:25px 8px 15px;background:none}.review-number{font:italic 45px/1 var(--serif);color:#a2b09c}.review-card h3{font-family:'Noto Serif JP',serif;font-size:16px;line-height:1.9;min-height:60px;margin:15px 0}.review-card blockquote{margin:0}.review-card blockquote p{font-size:12px;line-height:2.2;color:#686b60}.review-disclaimer{font-size:10px;color:var(--muted);line-height:1.9;margin:30px auto 0;max-width:900px}.explore{position:relative;background:#f0e9df;display:grid;grid-template-columns:1fr 1fr;column-gap:8%;align-items:center}.explore>.eyebrow{grid-column:1}.explore>h2{grid-column:1;margin-bottom:35px}.explore-photo{grid-column:2;grid-row:1/4;align-self:stretch}.explore-photo img{width:100%;height:100%;max-height:590px;object-position:48% 50%;border-radius:220px 220px 0 0}.module-grid{grid-column:1;display:flex;flex-direction:column}.module-grid button{display:grid;grid-template-columns:30px 1fr 25px;align-items:center;text-align:left;position:relative;border:0;border-top:1px solid #d3c9ba;background:transparent;padding:22px 0}.module-grid button:last-child{border-bottom:1px solid #d3c9ba}.module-grid button:hover .module-title{color:var(--rose)}.module-num{font:italic 17px var(--serif);color:var(--rose);align-self:start}.module-title{font-family:'Noto Serif JP',serif;font-size:19px;grid-column:2}.module-description{font-size:11px;line-height:1.8;grid-column:2;margin-top:8px;color:var(--muted)}.module-plus{grid-column:3;grid-row:1/3;color:var(--olive);font-size:23px}.closing{position:relative;isolation:isolate;min-height:475px;display:flex;align-items:center;justify-content:flex-end;padding-top:70px;padding-bottom:70px;overflow:hidden}.closing-photo{position:absolute;inset:0;width:100%;height:100%;object-position:center 50%;z-index:-2}.closing:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#faf7f000 15%,#faf7f0bd 52%,#faf7f0f5 100%);z-index:-1}.closing-copy{width:50%;text-align:center}.closing h2{font-size:32px;margin:15px 0 20px}.closing .button{margin-top:10px}footer{padding:45px 6%;display:flex;gap:25px;align-items:center;justify-content:space-between}footer p{font-size:10px}.instagram-link{font:italic 19px var(--serif);color:var(--rose);border-bottom:1px solid #cda694}.copyright{font-size:9px}.mobile-cta{display:none}dialog{border:1px solid var(--line);width:calc(100% - 32px);max-width:760px;max-height:87svh;background:var(--paper);color:var(--ink);padding:25px 45px 45px;overscroll-behavior:contain}dialog::backdrop{background:#35463899;backdrop-filter:blur(6px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:15px;position:sticky;top:-25px;padding:15px 0;background:var(--paper);z-index:1}.close{background:none;border:0;font-size:23px;min-width:44px;min-height:44px}.modal-open{overflow:hidden}dialog h2{font-size:28px}dialog p{font-size:13px}.panel-lead{font-family:'Noto Serif JP',serif;font-size:17px}.panel-photo{width:100%;height:300px;object-position:50% 38%;margin-bottom:25px}.portfolio-item{border-top:1px solid var(--line);padding:22px 0}.portfolio-item>span{font:10px sans-serif;letter-spacing:.15em;color:var(--rose)}.portfolio-item h3{font-family:'Noto Serif JP',serif;font-size:20px}.portfolio-item p{margin-bottom:0}
@media(min-width:1500px){.hero-photo img{height:420px}.hero-copy{padding-bottom:60px}}
@media(max-width:1050px){.header nav{gap:16px}.hero{padding-left:5%;padding-right:5%}.hero-inner{gap:5%}.hero h1{font-size:36px}.hero-script{font-size:40px}.hero-photo img{height:320px}.hero-reviews ul{grid-template-columns:1fr}.hero-reviews li{padding-top:4px}.hero-reviews li:nth-child(n+4){display:list-item}.hero-review-copy{padding-top:13px}.hero-reviews .teacher-review-lead{font-size:14px}.welcome-main{height:430px}.welcome{gap:6%}.section{padding-top:80px;padding-bottom:80px}.course-layout{gap:6%}.review-grid{gap:24px}.review-card h3{font-size:15px}}
@media(max-width:760px){html{scroll-padding-top:80px}.header{padding:19px 6%}.brand{font-size:35px}.brand span{font-size:7px;margin-top:9px}.menu-button{display:block;font-size:11px;padding:10px 0}.menu-button span{font-size:19px;margin-left:10px}.header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:25px 6%;border-bottom:1px solid var(--line);align-items:stretch}.header nav.open{display:flex;flex-direction:column;gap:20px}.header nav button{text-align:left;padding:0}.hero{padding:28px 6% 50px}.hero-inner{display:flex;flex-direction:column;gap:25px}.hero-copy{width:100%;padding:0}.hero-copy>.eyebrow{font-size:8px;margin-top:0}.hero-script{font-size:38px;margin:18px 0 18px}.hero h1{font-size:clamp(29px,7.8vw,39px);line-height:1.7;margin-bottom:20px}.intro{font-size:11px;line-height:2.3;margin-bottom:23px}.hero-copy>.button{font-size:12px;min-height:51px}.hero-reviews{width:100%;display:grid;grid-template-columns:1fr;gap:17px}.hero-photo img{height:300px;border-radius:46% 46% 0 0;object-position:50% 52%}.hero-photo{margin:5px 0 0 12%}.photo-caption{left:-10%;font-size:32px}.hero-review-copy{padding:3px 0 5px}.hero-review-copy>.eyebrow{font-size:9px}.teacher-review-lead{font-size:14px!important;margin-bottom:15px}.hero-reviews ul{grid-template-columns:1fr 1fr;gap:10px 14px}.hero-reviews li{font-size:9px;padding-top:7px}.hero-reviews .outline{margin-top:12px}.vertical-note{right:8px;top:40px;font-size:8px}.scroll-note{bottom:12px;font-size:8px}.section{padding:65px 6%}.welcome{display:flex;flex-direction:column;gap:35px}.welcome-photos{width:100%;margin-bottom:40px;padding-left:2%}.welcome-main{height:390px;width:75%}.welcome-small{height:180px;bottom:-35px;right:1%;width:52%}.welcome-photos>span{right:3%;font-size:27px}.welcome-copy{width:100%}h2{font-size:27px;letter-spacing:.065em;line-height:1.8}.welcome-copy p:not(.eyebrow){font-size:13px}.section-heading{margin-bottom:32px;padding-bottom:10px}.serial{font-size:8px}.course-layout{grid-template-columns:1fr;gap:44px}.course-photo{height:145px;width:110px;margin-left:12px}.course-en{font-size:29px}.course-layout p{font-size:13px}.course-consultation .button{font-size:11px;width:100%}.learning-title{font-size:14px}.learning-icon{width:38px;height:38px}.learning-detail{padding-left:55px}.reviews-intro{text-align:left;font-size:12px;margin-bottom:30px}.review-grid{grid-template-columns:1fr;gap:8px}.review-card{padding:22px 0 20px;display:grid;grid-template-columns:45px 1fr;gap:0 15px}.review-number{font-size:35px;grid-column:1;grid-row:1/3}.review-card h3{min-height:0;font-size:15px;margin:0 0 12px;grid-column:2}.review-card blockquote{grid-column:2}.review-card blockquote p{margin:0;font-size:12px}.review-disclaimer{font-size:9px}.explore{display:flex;flex-direction:column;align-items:stretch}.explore>h2{margin-bottom:25px}.explore-photo{order:0;margin:0 0 25px}.explore-photo img{height:330px;width:100%;border-radius:160px 160px 0 0}.module-grid{width:100%}.module-title{font-size:18px}.closing{min-height:560px;padding-top:250px;padding-bottom:55px;justify-content:center}.closing-photo{object-position:36% 45%}.closing:after{background:linear-gradient(180deg,#faf7f000 5%,#faf7f035 25%,#faf7f0ef 60%,#faf7f0 100%)}.closing-copy{width:100%}.closing h2{font-size:28px}.closing p{font-size:13px}footer{padding:35px 6% 105px;flex-wrap:wrap;gap:22px}footer>.brand{width:40%}footer>p:not(.copyright){order:3;width:100%;margin:0}.copyright{order:4;margin:0}.instagram-link{margin-left:auto}.mobile-cta{display:block;position:fixed;bottom:0;left:0;right:0;z-index:18;padding:10px 6% max(10px,env(safe-area-inset-bottom));background:#faf7f0ee;border-top:1px solid var(--line);backdrop-filter:blur(8px)}.mobile-cta a{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;background:var(--olive);color:white;font-size:12px;min-height:46px}.mobile-cta a:after{content:'↗';font-size:20px}dialog{padding:18px 22px 30px}.dialog-top{top:-18px}dialog h2{font-size:24px}.panel-photo{height:250px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Personal story: click to play, preserving the portrait frame. */
.story-video{margin:28px 0 12px;max-width:290px}.story-video video{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:contain;background:#20251f;border:7px solid #fffdf8;box-shadow:0 10px 32px #454e4318;border-radius:4px}.story-video figcaption{font-size:11px;color:var(--olive);line-height:1.8;margin-top:10px}.story-video figcaption span{display:block;font-size:10px;color:var(--muted)}@media(max-width:760px){.story-video{max-width:290px;width:100%;margin:28px auto 20px}}

.story-open{display:flex;align-items:center;gap:14px;width:100%;max-width:360px;margin:24px 0 12px;padding:15px 17px;border:1px solid var(--line);background:#f1eee4;text-align:left;font-size:12px;line-height:1.7}.story-open small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.story-open>span:last-child{margin-left:auto;color:var(--olive);font-size:20px}.story-play{display:grid;place-items:center;background:var(--olive);color:white;width:36px;height:36px;border-radius:50%;flex-shrink:0;font-size:12px;padding-left:2px}.story-open:hover{background:#e7eadf}#story-dialog{width:min(390px,calc(100vw - 28px));padding:0;background:#172018;border:0;max-height:92svh;overflow:visible}#story-dialog video{display:block;width:100%;max-height:85svh;aspect-ratio:9/16;object-fit:contain}#story-dialog::backdrop{background:#172018c9;backdrop-filter:blur(7px)}.story-close{position:absolute;right:8px;top:8px;z-index:2;width:40px;height:40px;border:1px solid #ffffff60;border-radius:50%;background:#172018b8;color:white;font-size:18px;padding:0}@media(max-width:760px){.story-open{max-width:100%}}
