@charset "utf-8";
:root{--olive:#25331b;--olive-dark:#1d2916;--sage:#9daa8c;--moss:#718068;--cream:#f4f1e8;--paper:#faf8f2;--line:#d2d4c7;--ink:#2e3728;--muted:#64715d;--sans:"Noto Sans JP",sans-serif;--serif:"Noto Serif JP",serif;--display:"Cormorant Garamond",Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.9;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}img{display:block;max-width:100%}h1,h2,h3,h4,p{margin-top:0}::selection{background:#c5d0ac;color:var(--olive-dark)}:focus-visible{outline:2px solid #a0b878;outline-offset:4px}.skip-link{position:absolute;top:-100px;left:1rem;background:var(--olive);color:white;padding:.5rem 1rem;z-index:20}.skip-link:focus{top:1rem}.site-header{height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,4.5vw,84px);background:var(--paper);position:relative;z-index:10;border-bottom:1px solid #e9e9de}.brand{display:flex;align-items:center;gap:13px;flex:none;color:var(--olive);line-height:1}.brand img{width:36px;height:36px}.brand strong{display:block;font:500 27px/1 var(--display);letter-spacing:.025em}.brand small{display:block;font:400 8px/1.8 var(--sans);letter-spacing:.24em;margin-top:5px}.site-nav{display:flex;align-items:center;gap:clamp(19px,2.55vw,44px);height:100%}.site-nav>a:not(.nav-contact){font:400 12px/1 var(--display);font-size:16px;letter-spacing:.04em;position:relative;transition:color .25s}.site-nav>a:not(.nav-contact):after{content:"";height:1px;background:var(--moss);position:absolute;bottom:-9px;left:0;width:0;transition:width .25s}.site-nav>a:hover:after,.site-nav>a[aria-current="page"]:after{width:100%}.site-nav>a:hover{color:var(--moss)}.nav-contact{font:500 10px var(--sans);letter-spacing:.13em;border:1px solid var(--olive);padding:15px 20px;margin-left:7px;transition:background .25s,color .25s}.nav-contact:hover{background:var(--olive);color:white}.nav-contact span{margin-left:9px;font-size:16px}.menu-toggle{display:none}.eyebrow{font:500 10px/1.4 var(--sans);letter-spacing:.23em;color:var(--moss);text-transform:uppercase}.eyebrow.light{color:#c0cba8}.section{padding:clamp(78px,10vw,160px) clamp(24px,7.5vw,140px)}.section-topline{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:17px;margin-bottom:65px;color:var(--moss);font-size:10px;letter-spacing:.14em}.section-topline .eyebrow{margin:0}.jp-heading{font:400 clamp(29px,3.35vw,54px)/1.65 var(--serif);letter-spacing:.04em;color:var(--olive)}.jp-heading em{font-style:normal;color:#7e9074}.display-heading{font:300 clamp(66px,9vw,148px)/.85 var(--display);letter-spacing:-.035em;margin:0 0 77px;color:var(--olive)}.display-heading em{font-weight:300;color:var(--moss)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:44px;min-width:218px;border-bottom:1px solid var(--olive);padding:10px 0 16px;font-size:12px;letter-spacing:.08em;transition:color .25s,gap .25s}.text-link:hover{color:var(--moss);gap:54px}.text-link span{font-size:18px}.body-copy p{margin:0 0 1.7em;line-height:2.2}
/* Home: a portrait-led editorial opening */
.home-hero{min-height:min(740px,calc(100svh - 90px));display:grid;grid-template-columns:50% 50%;background:var(--olive);color:var(--cream)}.hero-text{padding:clamp(30px,5vw,90px) clamp(30px,6vw,110px) 40px clamp(28px,7.5vw,140px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.hero-text:after{content:"";position:absolute;right:-135px;top:-95px;width:430px;height:720px;border:1px solid rgba(205,219,181,.13);border-radius:50%;transform:rotate(-24deg);pointer-events:none}.hero-middle{display:flex;align-items:center;gap:25px;margin:55px 0 30px}.hero-vertical{font:400 9px var(--display);letter-spacing:.28em;writing-mode:vertical-rl;transform:rotate(180deg);color:#a5b08d;border-left:1px solid #596851;padding-left:15px;white-space:nowrap}.hero-pretitle{font:400 clamp(12px,1.25vw,16px) var(--serif);letter-spacing:.12em;color:#d3dcc4;margin-bottom:34px}.hero-text h1{font:300 clamp(76px,9vw,158px)/.72 var(--display);letter-spacing:-.055em;margin:0 0 40px;position:relative;z-index:1}.hero-text h1 em{font-weight:300;color:#aebd9b}.hero-japanese{font:400 14px var(--serif);letter-spacing:.3em}.hero-bottom{display:flex;justify-content:space-between;align-items:end;border-top:1px solid rgba(228,234,213,.35);padding-top:23px;position:relative;z-index:1}.hero-bottom p{font:400 13px/1.9 var(--serif);letter-spacing:.07em;margin:0}.circle-link,.round-arrow{border:1px solid #aebd9b;border-radius:50%;display:grid;place-items:center;flex:none;width:56px;height:56px;font-size:25px;line-height:1;transition:background .25s,color .25s,transform .25s}.circle-link:hover,.round-arrow:hover{background:var(--cream);color:var(--olive);transform:rotate(45deg)}.hero-photo{position:relative;overflow:hidden;min-height:500px}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:62% 48%;filter:saturate(.82)}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(37,51,27,.13),transparent 40%)}.hero-photo-caption{position:absolute;bottom:36px;right:36px;color:white;font:500 10px var(--sans);letter-spacing:.24em;text-shadow:0 1px 6px #222;z-index:1}.thin-band{height:80px;display:flex;align-items:center;justify-content:space-around;background:#dfe5d3;color:var(--olive);font:400 13px var(--display);letter-spacing:.23em}.band-star{font-size:19px;color:#798b68}.philosophy-section{display:grid;grid-template-columns:24% 1fr;gap:5vw;background:var(--paper)}.section-index{font:400 11px var(--sans);letter-spacing:.2em;color:var(--moss);padding-top:12px}.philosophy-main{max-width:1000px}.philosophy-main .eyebrow{display:block;margin-bottom:28px}.philosophy-main .jp-heading{margin-bottom:35px}.lead{font:400 clamp(18px,2vw,27px)/2 var(--serif);letter-spacing:.05em;max-width:790px;margin-bottom:60px}.philosophy-columns{display:grid;grid-template-columns:.9fr 1.1fr;gap:7vw;padding-top:40px;border-top:1px solid var(--line)}.dreams p{font:400 15px/1.8 var(--serif);margin-bottom:16px;color:#63785c}.philosophy-columns .body-copy{font-size:13px}.split-feature{display:grid;grid-template-columns:50% 50%;min-height:730px;background:#dce3d3}.feature-photo{position:relative;max-height:850px;overflow:hidden}.feature-photo img{width:100%;height:100%;object-fit:cover;object-position:center 26%;filter:saturate(.83)}.photo-number{position:absolute;left:35px;bottom:33px;color:white;letter-spacing:.2em;font-size:10px;text-shadow:0 1px 5px #222}.feature-copy{padding:clamp(50px,9vw,150px) clamp(35px,9vw,155px);display:flex;flex-direction:column;justify-content:center;align-items:start}.feature-copy h2{font:300 clamp(73px,8vw,132px)/.82 var(--display);letter-spacing:-.05em;margin:45px 0 60px;color:var(--olive)}.feature-copy h2 em{color:#75896c}.feature-copy .jp-sub{font:400 21px var(--serif);margin-bottom:27px}.feature-copy>p:not(.jp-sub){max-width:430px;line-height:2.25;margin-bottom:45px}.studio-section{background:var(--paper);display:grid;grid-template-columns:40% 54%;justify-content:space-between;gap:4%;align-items:center}.studio-heading{align-self:center}.studio-heading .eyebrow{display:block;margin-bottom:45px}.studio-heading h2{margin-bottom:30px}.studio-heading p{max-width:420px;line-height:2.2;margin-bottom:35px}.studio-image{position:relative}.studio-image img{width:100%;aspect-ratio:1.35;object-fit:cover}.studio-image span{display:block;text-align:right;font:500 9px var(--sans);letter-spacing:.2em;margin-top:13px;color:var(--moss)}.features{background:var(--cream)}.feature-list{border-top:1px solid var(--olive)}.feature-list article{display:grid;grid-template-columns:18% 1fr 5%;align-items:start;gap:3%;padding:34px 0;border-bottom:1px solid #cbd0c1}.feature-list article>span:first-child{font:300 40px var(--display);color:var(--moss)}.feature-list h3{font:400 24px var(--serif);letter-spacing:.05em;margin-bottom:10px}.feature-list p{max-width:650px;margin:0;line-height:2}.feature-list article>span:last-child{font-size:22px;text-align:right}.lesson-preview{background:#e8ecdf}.lesson-preview-grid{display:grid;grid-template-columns:45% 45%;gap:10%}.lesson-preview-grid>div:first-child p{max-width:500px;line-height:2.25;margin:33px 0}.rate-list{border-top:1px solid var(--olive)}.rate-list>div{display:grid;grid-template-columns:1fr auto;gap:4px;padding:21px 0;border-bottom:1px solid #c0caba}.rate-list>div>span{font:400 16px var(--serif)}.rate-list strong{font:400 28px var(--display);white-space:nowrap}.rate-list strong small{font:11px var(--sans)}.rate-list>div>small{grid-column:1/-1;color:var(--muted)}.rate-list>a{display:flex;justify-content:space-between;padding:20px 0;font-size:12px;letter-spacing:.06em}.rate-list>a span{font-size:18px}.contact-strip{background:var(--olive);color:var(--cream);padding:clamp(60px,7vw,110px) clamp(24px,7.5vw,140px);display:flex;align-items:end;justify-content:space-between;gap:40px}.contact-strip h2{font:400 clamp(29px,3vw,48px)/1.5 var(--serif);margin:20px 0 13px}.contact-strip p{margin:0;color:#d0d8c5}.button-outline{border:1px solid #c6d0bc;padding:19px 26px;white-space:nowrap;font-size:12px;letter-spacing:.06em;display:flex;gap:45px;align-items:center;transition:background .25s,color .25s}.button-outline:hover{background:var(--cream);color:var(--olive)}.button-outline span{font-size:18px}
/* Inner page masthead */
.page-intro{min-height:390px;padding:75px clamp(24px,7.5vw,140px) 50px;background:var(--olive);color:var(--cream);display:flex;justify-content:space-between;align-items:end;position:relative;overflow:hidden}.page-intro:before{content:"";width:650px;height:480px;border:1px solid #6c7c5a;border-radius:50%;position:absolute;right:-70px;top:-290px;transform:rotate(-25deg);opacity:.33}.page-intro h1{font:300 clamp(95px,12vw,190px)/.8 var(--display);letter-spacing:-.06em;margin:24px 0 26px}.page-intro h1 span{color:#a8bc94}.page-intro p{font:400 15px var(--serif);letter-spacing:.11em;margin:0}.intro-index{font:400 10px var(--sans);letter-spacing:.2em;color:#aabb99;white-space:nowrap}.profile-main{display:grid;grid-template-columns:42% 50%;gap:8%;align-items:start;background:var(--paper)}.profile-image{position:relative;margin-top:-220px;z-index:2}.profile-image img{width:100%;max-height:740px;object-fit:cover;object-position:center top}.profile-image span{display:block;font:400 12px var(--display);letter-spacing:.25em;color:var(--moss);margin-top:16px}.profile-bio{padding-top:20px}.profile-bio h2{font:400 clamp(33px,3vw,52px) var(--serif);margin:30px 0 0;letter-spacing:.12em}.latin-name{font:400 30px var(--display);color:var(--moss);margin-bottom:40px}.mentor-section{display:grid;grid-template-columns:1fr 1fr;gap:10%;background:#e4eadc}.mentor-section .eyebrow{display:block;margin-bottom:35px}.mentor-section h3{font:400 23px var(--serif);margin-bottom:25px}.mentor-section .text-link{margin-top:14px}
/* Lessons */
.lesson-opening{display:grid;grid-template-columns:40% 52%;gap:8%;align-items:center}.lesson-opening .eyebrow{display:block;margin-bottom:37px}.lesson-opening h2{margin-bottom:25px}.lesson-opening p{line-height:2.2;max-width:520px}.lesson-opening .fine-note{font-size:12px;color:var(--muted);margin-top:26px}.lesson-opening img{width:100%;aspect-ratio:1.4;object-fit:cover}.pricing-section{background:#e5ebdc}.pricing-block{display:grid;grid-template-columns:36% 1fr;gap:8%;border-top:1px solid #bec9b5;padding:45px 0}.pricing-block:last-child{border-bottom:1px solid #bec9b5}.pricing-label>span{font:500 10px var(--sans);letter-spacing:.17em;color:var(--moss)}.pricing-label h3{font:400 clamp(22px,2.2vw,32px)/1.55 var(--serif);margin:20px 0 13px}.pricing-label p{line-height:2.1;color:#53624c;max-width:330px}.pricing-detail h4{font:500 13px var(--sans);margin:20px 0 5px;color:var(--olive)}.pricing-detail h4:first-child{margin-top:0}.pricing-detail>p{font-size:12px;color:#687763;margin:10px 0 16px}.price-line{display:flex;align-items:baseline;justify-content:space-between;gap:15px;border-bottom:1px solid #c4cdbf;padding:10px 0}.price-line span{font-size:14px}.price-line strong{font:400 32px var(--display);white-space:nowrap;color:var(--olive)}.price-line strong small{font:400 11px var(--sans)}.lesson-notes,.contact-info{background:var(--paper)}.lesson-notes h2,.contact-info h2{margin-bottom:58px}.notes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 9%}.notes-grid article{border-top:1px solid var(--line);padding-top:18px}.notes-grid article>span{font:300 36px var(--display);color:var(--moss)}.notes-grid h3{font:400 21px var(--serif);margin:20px 0}.notes-grid p{line-height:2.1;color:#43503d}.notes-grid strong{font-weight:600;color:var(--olive)}
/* Concerts */
.concert-lead{display:grid;grid-template-columns:48% 1fr;gap:8%;background:var(--paper);align-items:center}.concert-lead .eyebrow{display:block;margin-bottom:30px}.concert-lead h2{margin-bottom:0}.concert-lead .body-copy{font-size:16px;border-left:1px solid var(--line);padding-left:45px}.past-concerts{background:#e9eee3}.concert-entry{display:grid;grid-template-columns:43% 49%;gap:8%;padding:0 0 100px;align-items:center}.concert-entry+.concert-entry{border-top:1px solid #c5d0c0;padding:100px 0 0}.concert-entry.reverse .concert-poster{order:2}.concert-poster{max-height:750px;overflow:hidden;background:#d3d7cb}.concert-poster img{width:100%;height:100%;max-height:750px;object-fit:contain}.concert-date{font:400 25px var(--display);letter-spacing:.07em;color:var(--moss)}.concert-date small{font:500 10px var(--sans);letter-spacing:.12em;border:1px solid var(--moss);padding:7px 11px;margin-left:14px;vertical-align:middle}.concert-content h3{font:400 clamp(29px,3vw,47px)/1.55 var(--serif);margin:24px 0 38px}.concert-content dl{margin:0 0 30px;border-top:1px solid #c6d0c1}.concert-content dl div{display:grid;grid-template-columns:80px 1fr;border-bottom:1px solid #c6d0c1;padding:11px 0;gap:20px}.concert-content dt{font-weight:500;color:var(--moss)}.concert-content dd{margin:0}.concert-content h4{font:500 16px var(--serif);margin:20px 0 12px}.program-list{padding-left:20px;line-height:2;margin-bottom:25px}.concert-content>p{line-height:2.1;margin-bottom:24px}.music-work{background:var(--paper)}.music-work-grid{display:grid;grid-template-columns:44% 48%;gap:8%}.music-work-grid>div:first-child p{line-height:2.2;margin-bottom:25px}.work-lists>div{padding-bottom:30px;border-bottom:1px solid var(--line);margin-bottom:32px}.work-lists h3{font:400 21px var(--serif);margin-bottom:20px}.work-lists h3 small{display:block;font:400 12px var(--display);letter-spacing:.14em;color:var(--moss);margin-top:5px}.work-lists p{line-height:2;padding-left:15px;border-left:1px solid var(--sage)}
/* Contact */
.contact-main{display:grid;grid-template-columns:37% 55%;gap:8%;background:var(--paper)}.contact-aside .eyebrow{display:block;margin-bottom:34px}.contact-aside>p{line-height:2.2;margin-bottom:65px}.contact-detail{border-top:1px solid var(--line);padding:22px 0}.contact-detail>span{display:block;font:500 10px var(--sans);letter-spacing:.2em;color:var(--moss);margin-bottom:14px}.contact-detail>a{font:400 20px var(--display);word-break:break-word;text-decoration:underline;text-underline-offset:5px}.contact-detail>a span{font-size:15px}.contact-detail p{margin:0}.contact-form-wrap{padding:42px clamp(27px,4vw,70px) 60px;background:#e7ecdf}.contact-form-wrap h2{font:400 clamp(23px,2vw,32px) var(--serif);margin:20px 0 13px}.form-note{font-size:12px;line-height:1.9;color:#56664f;margin-bottom:35px}.contact-form-wrap form{display:grid;gap:22px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form-wrap label{font-size:12px;display:flex;flex-direction:column;gap:8px}.contact-form-wrap label span{color:#9b6658}.contact-form-wrap input,.contact-form-wrap select,.contact-form-wrap textarea{width:100%;border:1px solid #c7d1bf;background:#f9f9f5;border-radius:0;padding:14px 15px;color:var(--olive);outline:none;transition:border .25s}.contact-form-wrap textarea{resize:vertical;min-height:140px}.contact-form-wrap input:focus,.contact-form-wrap select:focus,.contact-form-wrap textarea:focus{border-color:var(--olive);box-shadow:0 0 0 1px var(--olive)}.submit-button{background:var(--olive);border:1px solid var(--olive);color:white;padding:17px 24px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .25s,color .25s;text-align:left;font-size:12px;letter-spacing:.08em}.submit-button:hover{background:transparent;color:var(--olive)}.submit-button span{font-size:18px}.form-status{margin:0;font-size:12px;min-height:1em;color:var(--olive)}
/* Footer */
.site-footer{background:var(--olive-dark);color:#dce4d3;padding:100px clamp(24px,7.5vw,140px) 28px}.footer-top{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid #596750;padding-bottom:90px}.footer-top h2{font:300 clamp(76px,10vw,160px)/.76 var(--display);letter-spacing:-.05em;margin:35px 0;color:#ecf0e7}.footer-top h2 em{color:#9fae91;font-weight:300}.footer-top p{font:400 13px/2 var(--serif);max-width:480px;margin:0}.round-arrow{width:82px;height:82px;font-size:34px}.footer-bottom{display:grid;grid-template-columns:1.3fr 1.5fr 1fr;gap:30px;align-items:start;padding:46px 0 75px}.footer-brand{display:flex;align-items:center;gap:12px;font:400 30px var(--display)}.footer-bottom nav{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;font:400 17px var(--display)}.footer-social{display:grid;gap:14px;font:400 15px var(--display)}.footer-bottom a:hover{color:#abc29b}.copyright{border-top:1px solid #596750;padding-top:20px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.06em;color:#a5b29c}
.reveal{animation:rise-in .8s both}@keyframes rise-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.site-header{padding:0 30px}.site-nav{gap:18px}.nav-contact{display:none}.hero-text{padding-left:6vw;padding-right:4vw}.hero-text h1{font-size:clamp(72px,9vw,120px)}.section{padding-left:6vw;padding-right:6vw}.contact-strip,.site-footer{padding-left:6vw;padding-right:6vw}.page-intro{padding-left:6vw;padding-right:6vw}.feature-copy{padding-left:6vw;padding-right:6vw}}
@media(max-width:760px){.site-header{height:72px;padding:0 20px}.brand strong{font-size:23px}.brand img{width:31px;height:31px}.brand small{font-size:7px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:7px;width:40px;height:40px;border:0;background:none;cursor:pointer;z-index:12}.menu-toggle span{width:26px;height:1px;background:var(--olive);display:block;transition:transform .25s}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}.site-nav{display:none;position:absolute;top:72px;left:0;right:0;height:auto;background:var(--paper);padding:22px 25px 32px;box-shadow:0 13px 18px #1b2b1c1a;flex-direction:column;align-items:stretch;gap:0}.site-nav.is-open{display:flex}.site-nav>a:not(.nav-contact){font-size:26px;padding:13px 0;border-bottom:1px solid var(--line)}.site-nav .nav-contact{display:flex;margin:22px 0 0;justify-content:space-between}.home-hero{display:flex;flex-direction:column;min-height:0}.hero-text{min-height:500px;padding:40px 25px 30px}.hero-middle{margin:60px 0 40px}.hero-text h1{font-size:clamp(90px,16vw,140px)}.hero-photo{height:500px;min-height:0}.hero-photo img{object-position:60% center}.thin-band{height:65px;gap:9px;overflow:hidden;white-space:nowrap;font-size:10px;letter-spacing:.11em}.thin-band span:nth-last-child(-n+2){display:none}.section{padding:75px 24px}.section-topline{margin-bottom:48px}.display-heading{font-size:clamp(66px,13vw,105px);margin-bottom:54px}.philosophy-section,.philosophy-columns,.split-feature,.studio-section,.lesson-preview-grid,.profile-main,.mentor-section,.lesson-opening,.pricing-block,.concert-lead,.concert-entry,.music-work-grid,.contact-main{grid-template-columns:1fr;gap:35px}.section-index{margin-bottom:5px}.philosophy-main .jp-heading{font-size:32px}.lead{font-size:19px;margin-bottom:35px}.philosophy-columns{gap:25px}.split-feature{display:flex;flex-direction:column}.feature-photo{height:590px}.feature-copy{padding:70px 24px 85px}.feature-copy h2{font-size:100px;margin:35px 0}.studio-section{display:flex;flex-direction:column;align-items:stretch}.studio-heading{align-self:stretch}.studio-image img{aspect-ratio:1.28}.feature-list article{grid-template-columns:50px 1fr 20px;gap:12px}.feature-list h3{font-size:20px}.feature-list article>span:first-child{font-size:30px}.lesson-preview-grid{gap:50px}.contact-strip{padding:70px 24px;display:block}.button-outline{display:inline-flex;margin-top:35px}.page-intro{min-height:300px;padding:65px 24px 40px}.page-intro h1{font-size:clamp(100px,20vw,150px)}.profile-main{gap:40px}.profile-image{margin-top:-130px;width:min(80%,460px)}.profile-bio{padding-top:0}.mentor-section{gap:35px}.lesson-opening img{order:-1}.pricing-block{gap:15px;padding:35px 0}.pricing-label h3{margin:15px 0}.notes-grid{grid-template-columns:1fr;gap:30px}.concert-lead .body-copy{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}.concert-entry{gap:30px;padding-bottom:65px}.concert-entry+.concert-entry{padding-top:65px}.concert-entry.reverse .concert-poster{order:0}.concert-poster{max-width:480px;margin:auto}.contact-main{gap:45px}.contact-aside>p{margin-bottom:35px}.contact-form-wrap{margin:0 -24px;padding:38px 24px 50px}.site-footer{padding:80px 24px 26px}.footer-top{padding-bottom:55px}.footer-top h2{font-size:clamp(76px,13vw,130px)}.footer-bottom{grid-template-columns:1fr 1fr;gap:30px}.footer-brand{grid-column:1/-1}.copyright{gap:20px}}
@media(max-width:470px){.hero-text{min-height:455px}.hero-middle{gap:14px}.hero-text h1{font-size:clamp(78px,19vw,99px)}.hero-pretitle{font-size:11px}.hero-photo{height:340px}.hero-photo-caption{font-size:8px;right:15px;bottom:16px}.page-intro{min-height:250px}.page-intro h1{font-size:clamp(80px,21vw,105px)}.intro-index{display:none}.profile-image{width:86%;margin-top:-100px}.display-heading{font-size:68px}.feature-copy h2{font-size:82px}.feature-photo{height:520px}.form-row{grid-template-columns:1fr}.footer-top{display:block}.round-arrow{margin-top:40px}.footer-top h2{font-size:76px}.footer-bottom{grid-template-columns:1fr 1fr}.footer-brand{font-size:27px}.copyright{flex-direction:column}.concert-date small{margin-left:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Keep required markers inline with their labels. */
.contact-form-wrap label{display:block}
.contact-form-wrap input,.contact-form-wrap select,.contact-form-wrap textarea{display:block;margin-top:8px}
/* User-supplied vertical portrait: keep the face and upper body in view. */
.hero-photo img{object-position:center 12%}
@media(min-width:761px){.home-hero{height:min(740px,calc(100svh - 90px));min-height:620px;grid-template-rows:minmax(0,1fr)}.hero-photo{min-height:0;height:100%}}
/* Navy direction: a classical stage mood with soft blue-gray transitions. */
:root{--olive:#344e68;--olive-dark:#263f58;--sage:#b6c9d7;--moss:#48647c;--cream:#f4f3ef;--paper:#faf9f6;--line:#cbd6df;--ink:#2b3948;--muted:#5c6d7d}
.hero-text:after{border-color:rgba(221,235,245,.25)}
.hero-vertical{color:#f0f5f8;border-left-color:#afc3d3}
.hero-pretitle,.hero-text h1 em{color:#dceaf4}
.eyebrow.light,.intro-index{color:#f0f5f8}
.page-intro:before{border-color:#bfd1de;opacity:.45}
.page-intro h1 span{color:#d4e5ef}
.hero-photo:after{background:linear-gradient(90deg,rgba(34,55,75,.16),transparent 40%)}
.thin-band{background:#e5ecf1}.band-star{color:#8aa0b1}
.split-feature{background:#e2e9ee}.features{background:#f1f3f3}.lesson-preview{background:#e9eff3}
.mentor-section,.pricing-section{background:#e5edf2}.past-concerts{background:#e7edf2}.contact-form-wrap{background:#e9eff3}
.jp-heading em,.feature-copy h2 em{color:#7891a4}.dreams p{color:#526f85}
.site-footer{color:#e9f0f5}
.footer-top h2 em{color:#c3d6e4}
.footer-top,.copyright{border-color:#829bad}
.page-intro{min-height:340px}
.page-intro h1{font-size:clamp(72px,8vw,124px)}
.display-heading{font-size:clamp(58px,7vw,112px)}
.feature-copy h2{font-size:clamp(62px,6.6vw,105px)}
.footer-top h2{font-size:clamp(72px,8.5vw,132px)}
@media(max-width:760px){.page-intro{min-height:270px}.page-intro h1{font-size:clamp(72px,14vw,108px)}.display-heading{font-size:clamp(54px,10vw,82px)}.feature-copy h2{font-size:82px}.footer-top h2{font-size:clamp(68px,11vw,100px)}}
@media(max-width:470px){.page-intro{min-height:240px}.page-intro h1{font-size:clamp(70px,15vw,86px)}.display-heading{font-size:58px}.feature-copy h2{font-size:72px}.footer-top h2{font-size:68px}}
.contact-strip p,.copyright{color:#eef3f6}
.profile-image{margin-top:-165px}
@media(max-width:760px){.profile-image{margin-top:-85px}}
@media(max-width:470px){.profile-image{margin-top:-75px}}
.circle-link,.round-arrow,.button-outline{border-color:#c5d8e6}
.footer-bottom a:hover{color:#c7dce9}
/* Keep the two requested English slogans out of the layout. */
.pricing-section .pricing-title{margin:0 0 60px}
.site-footer .footer-message{font:400 clamp(24px,2.6vw,38px)/1.7 var(--serif);letter-spacing:.035em;max-width:950px;margin:30px 0 0;color:var(--cream)}
@media(max-width:760px){.pricing-section .pricing-title{margin-bottom:42px}.site-footer .footer-message{font-size:clamp(21px,5vw,30px);line-height:1.8}}
/* Upcoming performances — prioritize the supplied flyers over archive entries. */
.upcoming-concerts{background:#eff3f6}
.upcoming-concerts .upcoming-title{font-size:clamp(32px,3.4vw,50px);margin:0 0 70px}
.upcoming-concerts .concert-entry{grid-template-columns:36% 56%;gap:8%;padding:0 0 80px}
.upcoming-concerts .concert-entry+.concert-entry{border-color:#cbd6df;padding:80px 0}
.upcoming-concerts .concert-entry:last-child{padding-bottom:0}
.upcoming-concerts .concert-poster{display:block;max-height:none;background:#e1e8ed;box-shadow:0 12px 32px rgba(30,49,67,.12)}
.upcoming-concerts .concert-poster img{width:100%;height:auto;max-height:700px;object-fit:contain}
.upcoming-concerts .concert-content h3{font-size:clamp(25px,2.4vw,38px);line-height:1.5;margin:19px 0 30px}
.upcoming-concerts .concert-content dl{margin-bottom:22px}
.flyer-links{display:flex;gap:18px;flex-wrap:wrap}
.flyer-links .text-link{min-width:180px;gap:20px;padding-top:6px}
@media(max-width:760px){.upcoming-concerts .upcoming-title{font-size:32px;margin-bottom:42px}.upcoming-concerts .concert-entry{grid-template-columns:1fr;gap:28px;padding-bottom:68px}.upcoming-concerts .concert-entry+.concert-entry{padding:68px 0}.upcoming-concerts .concert-entry:last-child{padding-bottom:0}.upcoming-concerts .concert-poster{max-width:480px;margin:0 auto}.upcoming-concerts .concert-content dl div{grid-template-columns:70px 1fr;gap:12px}}
.contact-aside .jp-heading{font-size:clamp(28px,2.6vw,42px);line-height:1.7}
.contact-form-wrap .honey-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0}
.form-privacy{margin:-10px 0 0;font-size:11px;line-height:1.85;color:var(--moss)}
.form-privacy a{text-decoration:underline;text-underline-offset:3px}
.form-status[data-state="pending"]{color:var(--moss)}
.form-status[data-state="success"]{color:#305c50;font-weight:600}
.form-status[data-state="error"]{color:#9b3d3d;font-weight:600}
.submit-button:disabled{opacity:.68;cursor:wait}
.contact-form-wrap .lesson-field[hidden]{display:none}
/* The studio's Japanese name sits beneath the pianist's name in the hero. */
.hero-identity{min-width:0}
.hero-japanese{margin-bottom:10px}
.hero-studio-link{position:relative;z-index:1;display:inline-flex;align-items:center;gap:17px;border-bottom:1px solid #adbfce;padding:0 0 7px;color:var(--cream);font:400 14px var(--serif);letter-spacing:.3em;transition:color .25s,border-color .25s}
.hero-studio-link:hover{color:#fff;border-color:#fff}
.hero-studio-link>span:last-child{font:400 17px/1 var(--sans);transition:transform .25s}
.hero-studio-link:hover>span:last-child{transform:translate(3px,-3px)}
@media(max-width:470px){.hero-japanese{margin-bottom:7px}}
