@charset "UTF-8";
:root{--ink:#1d2821;--forest:#344b3c;--moss:#4a624d;--stone:#e9e7df;--paper:#f4f2eb;--wood:#aa8c70;--mist:#b9c7b7;--text:#29372e}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;background:var(--paper);color:var(--text);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;font-size:16px;line-height:1.95}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:auto}*:focus-visible{outline:3px solid #bc8c5a;outline-offset:4px}::selection{background:#b9c7b7}.skip{position:absolute;top:-5rem;left:1rem;background:white;padding:.5rem 1rem;z-index:100}.skip:focus{top:1rem}.site-header{height:76px;display:flex;align-items:center;padding:0 clamp(22px,4.5vw,75px);gap:40px;background:var(--ink);color:#f4f2eb;position:relative;z-index:20}.brand{min-width:205px;display:flex;align-items:center;gap:13px}.brand-jp{font-family:"Yu Mincho",serif;font-size:23px;letter-spacing:.16em;white-space:nowrap}.brand-en{font:9px Georgia,serif;letter-spacing:.12em;color:#b9c7b7;border-left:1px solid #5e7262;padding-left:12px;line-height:1.5}.site-header nav{display:flex;gap:clamp(14px,2.1vw,32px);margin-left:auto;font-size:12px;letter-spacing:.13em}.site-header nav a{border-bottom:1px solid transparent;padding:8px 0}.site-header nav a:hover{border-color:var(--mist)}.header-book{background:none;border:1px solid #91a291;color:#f4f2eb;min-height:42px;padding:8px 16px;font-size:12px;letter-spacing:.09em}.header-book:hover{background:#405b47}.header-book span{margin-left:17px}.menu-toggle{display:none}.hero{height:min(760px,calc(100svh - 76px));min-height:640px;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(360px,.7fr);background:var(--ink);color:var(--paper);position:relative}.hero-photo{background:url("assets/hero.jpg") 54% center/cover}.hero-panel{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:75px clamp(42px,5vw,90px);position:relative}.hero-panel::before{content:"";position:absolute;left:0;top:14%;bottom:14%;width:1px;background:#6e806b}.eyebrow{font:11px Georgia,serif;letter-spacing:.25em;color:var(--moss)}.hero .eyebrow{color:#bdd1bd}.hero h1{font-size:clamp(51px,4.6vw,74px);line-height:1.56;letter-spacing:.16em;writing-mode:vertical-rl;max-height:390px;margin:45px 0 44px;align-self:center}.hero-panel>p:not(.eyebrow){font-size:14px;letter-spacing:.12em;line-height:2.25;color:#d4dfd2}.hero-next{font-size:12px;letter-spacing:.16em;border-bottom:1px solid #9aad9d;padding-bottom:8px;margin-top:38px}.hero-next span{margin-left:32px}.hero-caption{position:absolute;left:30px;bottom:20px;font:10px Georgia,serif;letter-spacing:.23em;color:#f4f2eb}.hero-caption span{margin:0 12px}.demo-note{text-align:center;background:#dfe7db;padding:10px 20px;color:#455d48;font-size:11px;letter-spacing:.07em}.section{padding:clamp(95px,10vw,160px) clamp(24px,7vw,120px)}.story{display:grid;grid-template-columns:.55fr 2fr .35fr;gap:5vw;max-width:1500px;margin:auto}.section-label{display:flex;align-items:flex-start;gap:13px;color:var(--moss);padding-top:10px}.section-label span{font-family:"Yu Mincho",serif;font-size:67px;line-height:1;color:#b4c2b1}.section-label small{font:10px Georgia,serif;letter-spacing:.19em;writing-mode:vertical-rl}.story-content{max-width:690px}.story h2,.course h2,.seats h2,.information h2,.reservation h2{font-size:clamp(32px,3.4vw,51px);line-height:1.6;letter-spacing:.09em}.story h2{margin:28px 0 31px}.story-content>p:not(.eyebrow){max-width:605px;color:#4d5e50;line-height:2.35;margin-top:21px}.story-aside{writing-mode:vertical-rl;font-family:"Yu Mincho",serif;letter-spacing:.32em;color:#94a894;font-size:17px;border-left:1px solid #bdc9ba;padding-left:15px}.course{background:#e2e5dc}.course-top{display:grid;grid-template-columns:1.1fr 1.5fr 1fr;gap:35px;align-items:start;max-width:1290px;margin:0 auto 75px}.course-top h2{margin-top:-12px}.course-top>p:last-child{font-size:14px;color:#536756;margin-top:16px}.course-body{max-width:1300px;margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(50px,9vw,145px);align-items:center}.course-copy{position:relative;padding:45px 0 35px 55px}.vertical-sub{position:absolute;left:0;top:42px;writing-mode:vertical-rl;font-family:"Yu Mincho",serif;letter-spacing:.2em;color:var(--moss);font-size:13px}.course-copy h3{font-size:clamp(29px,2.8vw,43px);line-height:1.6;letter-spacing:.07em}.course-copy>p:not(.vertical-sub){font-size:14px;color:#4c5f4e;line-height:2.25;margin-top:24px}.course-rule{width:46px;height:1px;background:var(--moss);margin:33px 0}.course-item{border-top:1px solid #bcc8b8;padding:15px 0;display:flex;justify-content:space-between;gap:15px;align-items:baseline}.course-item span{font-family:"Yu Mincho",serif;font-size:19px}.course-item p{font-size:12px;color:#546756;text-align:right}.course-copy small{display:block;margin-top:20px;color:#4d604f;font-size:11px}.course-photo{position:relative}.course-photo::before{content:"";position:absolute;z-index:0;top:-22px;right:-22px;width:75%;height:75%;border:1px solid #95aa95}.course-photo img{position:relative;aspect-ratio:1/1;object-fit:cover}.course-photo figcaption{font-family:"Yu Mincho",serif;color:#526553;text-align:right;font-size:13px;letter-spacing:.15em;margin-top:20px}.interlude{min-height:310px;background:var(--forest);color:#ecf0e8;display:flex;align-items:center;justify-content:center;gap:clamp(50px,12vw,180px);padding:60px 25px}.interlude div{display:flex;gap:25px;font-family:"Yu Mincho",serif;font-size:47px;color:#acbdac}.interlude div span:nth-child(2){transform:translateY(27px)}.interlude p{font-family:"Yu Mincho",serif;font-size:clamp(23px,2.5vw,37px);line-height:1.8;letter-spacing:.09em}.seats{max-width:1500px;margin:auto;display:grid;grid-template-columns:.85fr 1.5fr;gap:8vw}.seats h2{margin-top:20px}.seats-list{border-top:1px solid #aabaae}.seats-list article{border-bottom:1px solid #aabaae;display:grid;grid-template-columns:115px 1fr 80px;gap:25px;padding:31px 0;align-items:start}.seat-mark{font-size:12px;color:#59715c;letter-spacing:.06em}.seats-list h3{font-size:25px;letter-spacing:.08em;line-height:1.2}.seats-list p{font-size:14px;color:#536453;line-height:2;margin-top:12px}.seat-en{font:10px Georgia,serif;letter-spacing:.13em;color:#546b56;text-align:right}.information{background:#e9e7df;display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw}.information h2{margin:17px 0 23px}.info-head>p:last-child{font-size:14px;color:#59695a}.information dl{margin:0;border-top:1px solid #b9c3b6}.information dl div{display:grid;grid-template-columns:150px 1fr;gap:26px;border-bottom:1px solid #b9c3b6;padding:22px 0}.information dt{font-family:"Yu Mincho",serif;font-size:18px}.information dd{margin:0;color:#4e604f;font-size:14px}.reservation{background:var(--ink);color:#edf0e8;text-align:center;padding:110px 24px 120px}.reservation .eyebrow{color:#a9c2aa}.reservation h2{margin:24px 0 37px}.reservation button{background:#d7dfd3;color:var(--ink);border:0;min-width:230px;min-height:52px;padding:12px 24px;font-size:14px;letter-spacing:.1em}.reservation button:hover{background:white}.reservation button span{margin-left:20px}.reservation>p:last-child{font-size:11px;color:#b9c7b7;margin-top:14px}footer{background:#101912;color:#d8e2d6;padding:55px clamp(24px,7vw,120px);display:flex;align-items:center;gap:28px;flex-wrap:wrap;font-size:12px}.footer-brand{font-family:"Yu Mincho",serif;font-size:22px;letter-spacing:.17em}footer small{margin-left:auto;font:10px Georgia,serif;letter-spacing:.13em}.mobile-book{display:none}dialog{border:1px solid #a7b9a6;width:min(92vw,500px);max-height:90vh;padding:31px;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #0008}dialog::backdrop{background:#0e1a12d4}.dialog-head{display:flex;align-items:center;justify-content:space-between}.close-dialog{background:none;border:1px solid #aebcae;font-size:25px;line-height:1;width:38px;height:38px}dialog h2{font-size:30px;margin:12px 0}dialog>p{font-size:13px;color:#536756}#booking-form{display:grid;gap:14px;margin-top:26px}#booking-form label{display:grid;gap:5px;font-size:14px}#booking-form label span{font-size:12px;color:#617463}#booking-form input,#booking-form select{width:100%;min-height:44px;background:white;border:1px solid #91a591;padding:8px 10px;border-radius:0;color:var(--ink)}.dialog-submit{background:var(--forest);border:0;color:white;min-height:48px;margin-top:10px}.dialog-submit:hover{background:#4d6b52}#booking-result{margin-top:18px;background:#dce6d9;padding:12px;color:var(--ink)}
@media(max-width:1050px){.brand{min-width:auto}.brand-en{display:none}.site-header{gap:20px}.hero{grid-template-columns:1.3fr .8fr}.hero-panel{padding:45px}.course-top{grid-template-columns:1fr 1.5fr}.course-top>p:last-child{grid-column:2}.seats-list article{grid-template-columns:90px 1fr}.seat-en{display:none}}
@media(max-width:700px){html{scroll-padding-top:64px}.site-header{height:64px;padding:0 20px}.brand-jp{font-size:19px}.menu-toggle{display:flex;gap:12px;align-items:center;margin-left:auto;background:none;border:0;color:var(--paper);font-size:12px}.menu-toggle span{font-size:20px}.site-header nav{display:none;position:absolute;top:64px;left:0;right:0;background:var(--ink);margin:0;padding:13px 25px 25px;flex-direction:column;gap:0;box-shadow:0 15px 20px #0004}.site-header nav.is-open{display:flex}.site-header nav a{border-bottom:1px solid #576b59;padding:11px 0;font-size:15px}.header-book{display:none}.hero{display:block;height:auto;min-height:0}.hero-photo{height:54svh;min-height:340px;max-height:500px;background-position:center}.hero-panel{padding:32px 25px 49px;min-height:335px;display:block}.hero-panel::before{display:none}.hero h1{writing-mode:horizontal-tb;max-height:none;font-size:48px;line-height:1.4;margin:18px 0}.hero-panel>p:not(.eyebrow){font-size:14px}.hero-next{display:inline-block;margin-top:20px}.hero-caption{left:auto;right:16px;bottom:auto;top:calc(54svh - 25px);font-size:8px}.demo-note{font-size:10px}.section{padding:82px 25px}.story{display:block}.section-label{display:none}.story h2{font-size:35px;margin:15px 0 23px}.story-content>p:not(.eyebrow){font-size:14px}.story-aside{display:none}.course-top{display:block;margin-bottom:40px}.course-top h2{font-size:34px;margin:15px 0 20px}.course-top>p:last-child{margin:0}.course-body{display:flex;flex-direction:column-reverse;gap:30px}.course-photo::before{right:-8px;top:-8px}.course-copy{padding:10px 0 0 35px}.vertical-sub{left:0;top:12px}.course-copy h3{font-size:30px}.course-copy>p:not(.vertical-sub){margin-top:15px}.course-item{display:block}.course-item p{text-align:left;margin-top:2px}.interlude{min-height:230px;display:block;text-align:center;padding:55px 20px}.interlude div{justify-content:center;font-size:31px;gap:18px}.interlude div span:nth-child(2){transform:translateY(13px)}.interlude p{font-size:23px;margin-top:35px}.seats{display:block}.seats h2{font-size:35px}.seats-list{margin-top:45px}.seats-list article{display:block;padding:22px 0}.seat-mark{display:block;margin-bottom:6px}.seats-list h3{font-size:23px}.seats-list p{margin-top:8px}.information{display:block}.information dl{margin-top:38px}.information dl div{display:block}.information dd{margin-top:8px}.reservation{padding:88px 24px 100px}.reservation h2{font-size:36px}footer{display:block;padding:50px 25px 100px}footer p{margin:12px 0}footer small{display:block}.mobile-book{display:block;position:fixed;z-index:15;bottom:0;left:0;right:0;background:#1d2821ef;border-top:1px solid #728972;padding:10px 14px max(10px,env(safe-area-inset-bottom))}.mobile-book button{width:100%;min-height:48px;border:1px solid #bed0bc;background:#d7dfd3;color:var(--ink);font-size:14px}dialog{padding:25px 20px}}
@media(max-width:350px){.hero h1{font-size:42px}.hero-panel{padding-left:19px;padding-right:19px}.section{padding-left:19px;padding-right:19px}.course-photo::before{display:none}.reservation h2{font-size:31px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

#seats-title{font-size:38px;letter-spacing:.04em}
@media(max-width:700px){#seats-title{font-size:30px}}
@media(max-width:350px){#story-title{font-size:31px;letter-spacing:.04em}#seats-title{font-size:26px}}
