:root{--black:#1a1a1a;--ink:#444;--muted:#5c5c5c;--line:#e2e2e2;--line-strong:#c8c8c8;--gray:#f2f2f2;--gray-2:#dcdcdc;--white:#fff;--blue:#9cc5d6;--blue-soft:#dbeaf1;--blue-pale:#eef5f8;--blue-deep:#3f7186;--serif:"Cormorant Garamond", "Times New Roman", serif;--mincho:"Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;--sans:"Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", sans-serif;--header-h:76px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}body{background:var(--white);color:var(--black);font-family:var(--sans);letter-spacing:.05em;-webkit-text-size-adjust:100%;margin:0;line-height:1.9}img{max-width:100%;height:auto;display:block}a{color:inherit}a:hover{color:var(--muted)}:focus-visible{outline:2px solid var(--blue-deep);outline-offset:3px}::selection{background:var(--gray-2)}.container{max-width:1200px;margin:0 auto;padding:0 24px}.narrow{max-width:880px}.section{padding:120px 0}.section.gray,.section.pale{background:var(--gray)}.dark{background:var(--black);color:var(--white)}.pre{white-space:pre-line}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.js .reveal{opacity:0;transition:opacity 1s,transform 1s;transform:translateY(24px)}.js .reveal.is-in{opacity:1;transform:none}.heading{text-align:center;margin-bottom:64px}.heading .en{font-family:var(--serif);color:var(--muted);letter-spacing:.06em;margin:0 0 2px;font-size:24px;font-style:italic;font-weight:500}.dark .heading .en{color:var(--blue)}.heading h2{font-family:var(--mincho);letter-spacing:.18em;margin:0;font-size:30px;font-weight:500}.heading:after{content:"";background:linear-gradient(var(--blue), var(--blue)) left center / 28px 1px no-repeat, linear-gradient(var(--blue), var(--blue)) right center / 28px 1px no-repeat;width:72px;height:9px;margin:22px auto 0;display:block;position:relative}.heading{position:relative}.heading:before{content:"";border:1px solid var(--blue);width:7px;height:7px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)rotate(45deg)}.btn{min-height:54px;font:inherit;letter-spacing:.16em;border:1px solid var(--black);background:var(--black);color:var(--white);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:14px;padding:14px 44px;font-size:14px;text-decoration:none;transition:background .3s,color .3s,border-color .3s;display:inline-flex}.btn:after{content:"";background:currentColor;width:18px;height:1px;transition:width .3s}.btn:hover{background:var(--ink);border-color:var(--ink);color:var(--white)}.btn:hover:after{width:26px}.btn.outline{color:var(--black);background:0 0}.btn.outline:hover{background:var(--black);border-color:var(--black);color:var(--white)}.dark .btn{background:var(--white);color:var(--black);border-color:var(--white)}.dark .btn:hover{background:var(--gray-2);border-color:var(--gray-2);color:var(--black)}.dark .btn.outline{color:var(--white);background:0 0}.dark .btn.outline:hover{background:var(--white);border-color:var(--white);color:var(--black)}.site-header{z-index:50;border-top:3px solid var(--blue);border-bottom:1px solid var(--line);backdrop-filter:blur(8px);background:#fffffff2;position:sticky;top:0}.header-inner{height:calc(var(--header-h) - 4px);justify-content:space-between;align-items:center;gap:24px;display:flex}.brand{font-family:var(--serif);letter-spacing:.06em;white-space:nowrap;font-size:28px;font-weight:600;text-decoration:none}.brand span{color:var(--muted);font-style:italic;font-weight:500}.gnav ul{gap:4px 30px;margin:0;padding:0;list-style:none;display:flex}.gnav a{letter-spacing:.14em;padding:10px 0;font-size:13px;text-decoration:none;display:block;position:relative}.gnav a:after{content:"";background:var(--blue-deep);height:1px;transition:left .3s,right .3s;position:absolute;bottom:4px;left:50%;right:50%}.gnav a:hover:after{left:0;right:0}.menu-toggle{display:none}@media (width<=900px){.menu-toggle{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;gap:6px;width:48px;height:48px;padding:0 12px;display:inline-flex}.menu-toggle span{background:var(--black);height:1px;transition:transform .25s,opacity .25s;display:block}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(7px)rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.gnav{inset:var(--header-h) 0 auto 0;background:var(--white);border-bottom:1px solid var(--line);display:none;position:fixed}.gnav.open{display:block}.gnav ul{flex-direction:column;gap:0;padding:8px 24px 24px}.gnav li+li{border-top:1px solid var(--line)}.gnav a{padding:16px 0;font-size:15px}.gnav a:after{display:none}}.hero{position:relative;overflow:hidden}.hero-inner{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:min(84vh,760px);padding:64px 24px;display:flex;position:relative}.hero-arch{aspect-ratio:5/6;background:var(--gray);border-radius:999px 999px 0 0;width:min(520px,86vw);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero-arch:after{content:"";border:1px solid var(--blue);border-bottom:0;border-radius:999px 999px 0 0;position:absolute;inset:-18px}.hero-side{font-family:var(--serif);letter-spacing:.4em;color:var(--muted);writing-mode:vertical-rl;font-size:14px;font-style:italic;position:absolute;top:50%;transform:translateY(-50%)}.hero-side.left{left:40px;transform:translateY(-50%)rotate(180deg)}.hero-side.right{right:40px}.hero-logo{mix-blend-mode:multiply;width:min(440px,72vw);position:relative}.hero-photo{aspect-ratio:5/6;object-fit:cover;border-radius:999px 999px 0 0;width:min(520px,86vw);position:relative}.hero-tag{letter-spacing:.5em;color:var(--muted);margin:0;font-size:11px;position:relative}.hero-scroll{background:var(--blue);width:1px;height:64px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@media (width<=600px){.hero-side{display:none}}.concept{text-align:center}.concept .catch{font-family:var(--mincho);letter-spacing:.16em;margin:0 0 44px;font-size:clamp(21px,3.2vw,28px);font-weight:500;line-height:1.8}.concept .catch:before{content:"《";color:var(--blue-deep)}.concept .catch:after{content:"》";color:var(--blue-deep)}.concept .body{max-width:720px;color:var(--ink);margin:0 auto;font-size:15px;line-height:2.5}.concept .rose{opacity:.55;mix-blend-mode:multiply;width:min(340px,80%);margin:56px auto 0}.concept .closing{font-family:var(--mincho);letter-spacing:.1em;margin:28px 0 0;padding:0 8px;font-size:17px;font-weight:500;display:inline-block}.open{text-align:center;background:var(--gray);padding:88px 0;position:relative}.open:before,.open:after{content:"";background:var(--blue);height:1px;position:absolute;left:0;right:0}.open:before{top:10px}.open:after{bottom:10px}.open-inner{flex-direction:column;align-items:center;gap:6px;display:flex}.open .en{font-family:var(--serif);color:var(--muted);margin:0;font-size:26px;font-style:italic}.open .date{font-family:var(--serif);letter-spacing:.08em;margin:0;font-size:clamp(52px,8vw,84px);font-weight:500;line-height:1.1}.open .date small{letter-spacing:.2em;vertical-align:middle;color:var(--muted);margin-left:.6em;font-size:.32em}.services{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:48px 40px;display:grid}.service{scroll-margin-top:calc(var(--header-h) + 24px);flex-direction:column;display:flex}.service-frame{position:relative}.service-num{z-index:1;font-family:var(--serif);color:var(--blue-deep);font-size:56px;font-style:italic;line-height:1;position:absolute;top:-18px;left:-6px}.service-img,.service-ph{aspect-ratio:4/5;background:var(--gray);border-radius:999px 999px 0 0;width:100%}.service-img{object-fit:cover}.service-ph{color:var(--muted);place-items:center;display:grid}.service-ph svg{width:64px;height:64px}.service-body{flex-direction:column;flex:1;gap:8px;padding:28px 4px 0;display:flex}.service .en{font-family:var(--serif);color:var(--muted);margin:0;font-size:18px;font-style:italic}.service h3{font-family:var(--mincho);letter-spacing:.12em;margin:0;font-size:23px;font-weight:500}.service .lead{color:var(--muted);margin:0 0 6px;font-size:13px}.service .summary{color:var(--ink);border-top:1px solid var(--line);margin:0;padding-top:14px;font-size:14px}.service-more{cursor:pointer;min-height:44px;font:inherit;letter-spacing:.14em;color:var(--black);background:0 0;border:0;align-self:flex-start;align-items:center;gap:10px;margin-top:auto;padding:16px 0 0;font-size:13px;display:inline-flex}.service-more:after{content:"+";border:1px solid var(--blue);border-radius:50%;place-items:center;width:26px;height:26px;font-size:15px;line-height:1;display:grid}.service-dialog{background:var(--white);width:min(640px,100% - 32px);max-height:calc(100dvh - 48px);color:var(--black);border:0;border-radius:24px;padding:56px 40px 48px}.service-dialog::backdrop{background:#1a1a1a73}.service-dialog .dialog-body{border-top:1px solid var(--line);color:var(--ink);margin:20px 0 0;padding-top:20px;font-size:14px;line-height:2.1}.dialog-close{cursor:pointer;background:0 0;border:0;width:44px;height:44px;position:absolute;top:10px;right:10px}.dialog-close:before,.dialog-close:after{content:"";background:var(--black);width:20px;height:1px;position:absolute;top:21px;left:12px}.dialog-close:before{transform:rotate(45deg)}.dialog-close:after{transform:rotate(-45deg)}html:has(.service-dialog[open]){overflow:hidden}@media (width<=600px){.service-dialog{padding:52px 24px 36px}}.staff-list{flex-direction:column;gap:72px;display:flex}.staff{flex-wrap:wrap-reverse;align-items:center;gap:40px 72px;display:flex}.staff-text{flex:999 380px;min-width:0}.staff-name{font-family:var(--mincho);letter-spacing:.14em;margin:0;font-size:24px;font-weight:500}.staff-role{color:var(--muted);letter-spacing:.12em;margin:0 0 18px;font-size:13px}.staff-profile{color:var(--ink);margin:0;font-size:14px}.staff-photo,.staff-ph{aspect-ratio:4/5;outline:1px solid var(--blue);outline-offset:10px;border-radius:999px 999px 0 0;flex:240px;max-width:300px}.staff-photo{object-fit:cover;background:var(--white)}.staff-ph{background:var(--white);color:var(--muted);place-items:center;font-size:13px;display:grid}.menu-tabs{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:44px;display:flex}.menu-tabs button{font:inherit;letter-spacing:.14em;border:1px solid var(--line-strong);cursor:pointer;min-height:46px;color:var(--ink);background:0 0;border-radius:999px;padding:10px 30px;font-size:14px;transition:background .3s,color .3s,border-color .3s}.menu-tabs button:hover{border-color:var(--black);color:var(--black)}.menu-tabs button[aria-selected=true]{background:var(--black);border-color:var(--black);color:var(--white)}.courses{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:40px;display:grid}.course{background:var(--gray);padding:24px 28px}.course h4{font-family:var(--mincho);letter-spacing:.12em;margin:0 0 6px;font-size:17px;font-weight:500}.course p{color:var(--ink);margin:0;font-size:13px}.price-table{border-collapse:collapse;width:100%;font-size:14px}.price-table th{letter-spacing:.14em;text-align:right;border-bottom:1px solid var(--black);color:var(--black);white-space:nowrap;padding:12px 8px;font-size:12px;font-weight:500}.price-table th:first-child,.price-table td:first-child{text-align:left;padding-left:0}.price-table td{border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding:12px 8px}.price-table td:first-child{white-space:normal}.price-table td.none{color:var(--line-strong)}.price-table tbody tr{transition:background .2s}.price-table tbody tr:hover{background:var(--gray)}.menu-note{color:var(--muted);margin:20px 0 0;font-size:13px}.reserve{text-align:center}.reserve-text{color:#cfcfcf;max-width:640px;margin:0 auto;font-size:15px}.reserve-tel{font-family:var(--serif);letter-spacing:.1em;margin:36px 0 0;font-size:36px}.reserve-tel a{text-decoration:none}.reserve-tel a:hover{color:var(--gray-2)}.reserve-tel span{color:var(--gray-2);letter-spacing:.2em;margin-right:.6em;font-size:.5em}.reserve-hours{color:#cfcfcf;margin:4px 0 0;font-size:13px}.reserve-actions{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:44px;display:flex}.voices{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}.voice{background:var(--gray);flex-direction:column;gap:16px;margin:0;padding:40px 32px 32px;display:flex;position:relative}.voice:before{content:"“";font-family:var(--serif);color:var(--blue);font-size:72px;line-height:1;position:absolute;top:-6px;left:24px}.voice blockquote{color:var(--ink);white-space:pre-line;margin:0;font-size:14px}.voice figcaption{color:var(--muted);font-size:13px}.empty{text-align:center;max-width:640px;color:var(--ink);background:var(--gray);border-radius:999px;margin:0 auto;padding:32px 24px;font-size:14px}.recruit{padding:0 0 120px}.recruit-inner{border:1px solid var(--blue);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px 48px;padding:56px 64px;display:flex;position:relative}.recruit-inner:before{content:"";border:1px solid var(--line);pointer-events:none;position:absolute;inset:8px}.recruit .en{font-family:var(--serif);color:var(--muted);margin:0;font-size:22px;font-style:italic}.recruit h2{font-family:var(--mincho);letter-spacing:.16em;margin:0 0 8px;font-size:26px;font-weight:500}.recruit p{color:var(--ink);margin:0;font-size:14px}@media (width<=600px){.recruit-inner{padding:40px 28px}}.contact-mail{text-align:center;color:var(--ink);margin:-32px 0 44px;font-size:14px}.form{flex-direction:column;gap:24px;max-width:720px;margin:0 auto;display:flex}.field{letter-spacing:.1em;flex-direction:column;gap:8px;font-size:14px;display:flex}.field .req{background:var(--black);color:var(--white);letter-spacing:.1em;vertical-align:1px;border-radius:999px;margin-left:10px;padding:2px 8px;font-size:10px}.field .opt{color:var(--muted);margin-left:10px;font-size:11px}.form input,.form select,.form textarea{font:inherit;border:1px solid var(--line-strong);background:var(--white);color:var(--black);border-radius:4px;padding:14px 16px;font-size:16px;transition:border-color .2s,box-shadow .2s}.form textarea{resize:vertical;min-height:160px}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--blue-deep);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.form .hp{position:absolute;left:-9999px}.form .btn{align-self:center;min-width:260px}.form-status{text-align:center;min-height:1.9em;margin:0;font-size:14px}.form-status.error{color:#b00020}.privacy-note{color:var(--muted);text-align:center;margin:0;font-size:12px}.access-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:64px;display:grid}.access-grid h2{font-family:var(--mincho);letter-spacing:.16em;margin:0 0 28px;font-size:23px;font-weight:500}.access-grid h2 .en{font-family:var(--serif);color:var(--muted);letter-spacing:.06em;font-size:20px;font-style:italic;font-weight:500;display:block}.map{aspect-ratio:16/10;background:var(--gray);filter:grayscale()contrast(.95);border:0;width:100%;display:block}.info{grid-template-columns:6.5em 1fr;margin:28px 0 0;font-size:14px;display:grid}.info dt,.info dd{border-bottom:1px solid var(--line);padding:12px 0}.info dt{color:var(--muted);letter-spacing:.1em}.info dd{margin:0}.cal{background:var(--white);border:1px solid var(--line);padding:28px}.cal-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.cal-head p{font-family:var(--mincho);letter-spacing:.12em;margin:0;font-size:18px;font-weight:500}.cal-head button{width:44px;height:44px;font:inherit;color:var(--black);border:1px solid var(--blue);cursor:pointer;background:0 0;border-radius:50%;font-size:18px}.cal-head button:hover:not(:disabled){background:var(--gray)}.cal-head button:disabled{opacity:.3;cursor:default}.cal-grid{text-align:center;font-variant-numeric:tabular-nums;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;font-size:13px;display:grid}.cal-grid .wd{color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:4px;padding:6px 0;font-size:12px}.cal-grid .wd:first-child{color:var(--muted)}.cal-grid .d{aspect-ratio:1;border-radius:50%;place-items:center;width:100%;max-width:44px;margin:0 auto;padding:8px 0;display:grid}.cal-grid .closed{background:var(--black);color:var(--white)}.cal-grid .opening{outline:1px solid var(--black);outline-offset:-1px;font-weight:700}.cal-grid .today{text-underline-offset:4px;text-decoration:underline}.cal-legend{color:var(--ink);flex-wrap:wrap;gap:8px 20px;margin-top:18px;font-size:12px;display:flex}.cal-legend span{align-items:center;gap:8px;display:inline-flex}.cal-legend i{border-radius:50%;width:14px;height:14px;display:inline-block}.cal-legend .k-closed{background:var(--black)}.cal-legend .k-open{outline:1px solid var(--black);outline-offset:-1px}.cal-note{color:var(--muted);margin:12px 0 0;font-size:12px}.registration{background:var(--gray);padding:64px 0}.registration h2{font-family:var(--mincho);letter-spacing:.12em;margin:0 0 20px;font-size:16px;font-weight:500}.reg-table{border-top:1px solid var(--line-strong);grid-template-columns:minmax(8.5em,auto) 1fr;margin:0;font-size:13px;display:grid}.reg-table dt{border-bottom:1px solid var(--line-strong);color:var(--ink);background:#fff9;padding:12px 16px}.reg-table dd{border-bottom:1px solid var(--line-strong);margin:0;padding:12px 16px}.site-footer{background:var(--black);color:#cfcfcf;text-align:center;border-top:3px solid var(--blue);padding:56px 24px 40px;font-size:12px}.site-footer .brand{color:var(--white);font-size:26px}.site-footer .brand span{color:var(--blue)}.site-footer ul{flex-wrap:wrap;justify-content:center;gap:4px 24px;margin:20px 0;padding:0;list-style:none;display:flex}.site-footer a{letter-spacing:.12em;text-decoration:none}.site-footer a:hover{color:var(--white)}.site-footer small{letter-spacing:.16em;margin-top:8px;display:block}@media (width<=600px){.section{padding:88px 0}.heading{margin-bottom:48px}.heading h2{letter-spacing:.1em;font-size:23px}.hero-inner{min-height:calc(103.2vw + 96px);padding:48px 16px}.container{padding:0 16px}.menu-tabs button{padding:10px 20px}.price-table{font-size:13px}.reg-table{grid-template-columns:1fr}.reg-table dt{border-bottom:0;padding-bottom:4px}.reg-table dd{padding-top:4px}.cal{padding:20px 14px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.js .reveal{opacity:1;transform:none}}
