:root{--ink:#252a2d;--muted:#616b70;--line:#dadddc;--off:#f4f6f5;--accent:#607985;--head:86px;--sans:'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--head) + 24px)}body{margin:0;color:var(--ink);background:#fff;font-family:var(--sans);font-size:15px;line-height:1.9;letter-spacing:.02em}body.locked{overflow:hidden}h1,h2,h3,h4,p,figure,ol,ul,dl,dd{margin:0}h1,h2,h3,h4{font-weight:400}button,input{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}button{border:0;background:none}button:disabled{cursor:not-allowed;opacity:.38}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:#dae6eb}.wrap{max-width:1200px;width:calc(100% - 120px);margin-inline:auto}.section{padding-block:110px}.eyebrow{font:11px/1.5 Arial,sans-serif;letter-spacing:.17em}.micro{font-size:11px;color:var(--muted);line-height:1.8}.sample-banner{height:27px;background:var(--off);font:8px/27px Arial,sans-serif;letter-spacing:.14em;padding-inline:4%;display:flex;justify-content:space-between}.header{height:var(--head);padding:0 4%;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:20;background:#fffffffa;border-bottom:1px solid var(--line)}.brand{font:46px/.78 Arial,sans-serif;letter-spacing:-.075em;display:inline-block}.brand span{display:block;font:8px/1 Arial,sans-serif;letter-spacing:.12em;margin-top:11px}.header nav{display:flex;gap:32px;align-items:center;font-size:12px}.header nav>a{padding-block:15px}.button{min-height:56px;display:inline-flex;gap:36px;align-items:center;justify-content:space-between;padding:14px 24px;background:var(--ink);color:#fff;font-size:13px;border:1px solid var(--ink);transition:background .2s}.button span{font:20px Arial,sans-serif}.button.small{min-height:44px;padding:10px 20px;font-size:12px}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px;border-bottom:1px solid var(--ink);font-size:12px;padding:8px 0}.skip{position:fixed;top:-90px;left:15px;z-index:80;background:white;padding:12px}.skip:focus{top:12px}.hero{padding:24px 4% 0}.hero-media{height:clamp(380px,42vw,610px);position:relative;overflow:hidden;background:#eceeed}.hero-media img{object-position:50% 52%}.hero-word{position:absolute;left:5%;bottom:12%;font:clamp(54px,6.5vw,95px)/.96 Arial,sans-serif;letter-spacing:-.055em;color:#283036}.photo-note{position:absolute;right:16px;bottom:12px;font-size:9px;color:#3e484b;background:#ffffffdc;padding:3px 9px}.hero-caption{display:flex;justify-content:space-between;align-items:center;gap:40px;padding:34px 3% 30px;border-bottom:1px solid var(--line)}h1{font-size:clamp(24px,2.5vw,36px);letter-spacing:.04em;line-height:1.5;margin-top:16px}.hero-links{display:grid;grid-template-columns:auto auto;column-gap:24px;align-items:center}.hero-links .micro{grid-column:1/-1;margin-top:8px}.mobile-break{display:none}.hero-meta{display:flex;justify-content:space-between;padding:20px 0;font:9px Arial,sans-serif;letter-spacing:.12em}.concept{display:grid;grid-template-columns:1fr 1.3fr;gap:12%}.concept>.eyebrow{padding-top:15px}h2{font-size:42px;line-height:1.5;letter-spacing:.03em}.concept h2{margin-bottom:30px}.concept p:not(.eyebrow){font-size:15px;line-height:2.1}.concept .small-copy{color:var(--muted);margin-top:24px}.menu-section{background:var(--off)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:50px}.section-head h2{margin-top:16px}.section-head h2>span{display:block;font-size:13px;margin-top:12px}.section-head>p{font-size:13px;line-height:2}.category-nav{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.category-nav a{display:flex;gap:15px;padding:20px 20px 20px 0;font:11px Arial,sans-serif;align-items:center}.category-nav span{font:14px var(--sans);flex:1}.price-notice{font-size:11px;color:var(--muted);padding:20px 0 0;max-width:870px}.price-notice a{text-decoration:underline;margin-left:8px}.menu-category{display:grid;grid-template-columns:1fr 2fr;gap:8%;padding-top:70px;scroll-margin-top:10px}.category-title .index{font:12px Arial,sans-serif;color:var(--accent)}.category-title h3{font:38px/1.15 Arial,sans-serif;letter-spacing:-.035em;margin-top:10px}.category-title h3 span{display:block;font:13px var(--sans);letter-spacing:.05em;margin-top:12px}.category-title p{font-size:12px;margin-top:25px;color:var(--muted)}.menu-row{border-top:1px solid #bdc6c8;padding:24px 0;display:flex;gap:30px;justify-content:space-between;align-items:start}.menu-row>div{flex:1}.menu-row h4{font-size:17px}.menu-row p:not(.price){font-size:13px;margin-top:9px;line-height:1.8}.duration{display:block;font-size:11px;color:var(--muted);margin-top:12px}.price{font:500 26px/1.2 Arial,sans-serif;white-space:nowrap;text-align:right;letter-spacing:-.02em;padding-top:3px}.price small{display:block;font:10px var(--sans);color:var(--muted);margin-top:12px}.price-text{font:16px var(--sans)}.category-note{font-size:12px;color:var(--muted);line-height:1.9;margin-bottom:17px}.menu-items>.text-link{margin-top:8px;min-width:235px}.menu-detail{font-size:13px;margin:0 0 18px}.menu-detail summary{border-top:1px solid var(--line);padding-top:16px}.menu-detail p{padding-block:15px}.features .section-head{align-items:start}.features .section-head h2{margin-top:0;width:61%}.feature-list{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:70px}.feature-list article{border-top:1px solid var(--line);padding-top:22px}.feature-list article>span{font:10px Arial,sans-serif;letter-spacing:.12em;color:var(--accent)}.feature-list h3{font-size:23px;line-height:1.7;margin:26px 0 20px}.feature-list p{font-size:13px;line-height:2}.gallery{padding-top:20px}.gallery-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:40px 9%;align-items:start}.placeholder{position:relative;background:#e8edee;padding:28px;display:flex;flex-direction:column;justify-content:end;overflow:hidden}.placeholder.tall{height:600px;grid-row:span 2;background:#e8e6e2}.placeholder.wide{height:340px}.placeholder-code{position:absolute;left:28px;top:25px;font:10px Arial,sans-serif;letter-spacing:.15em}.placeholder>p{font-size:17px;position:relative}.placeholder figcaption{font-size:11px;margin-top:8px;position:relative}.placeholder-lines{position:absolute;inset:19%;border:1px solid #a9b3b3;transform:rotate(-8deg)}.placeholder-lines:after{content:'';position:absolute;inset:12%;border:1px solid #a9b3b3}.gallery-copy{font-size:29px;line-height:1.7;padding-top:8px}.gallery-copy span{font:11px/2 var(--sans);display:block;margin-top:20px;color:var(--muted)}.staff{display:grid;grid-template-columns:1fr 1fr;gap:14%;border-top:1px solid var(--line)}.staff h2{margin-top:25px}.staff-role{font-size:12px;color:var(--muted)}.staff-info h3{font-size:26px;margin:10px 0 27px}.staff-info h3 span{display:block;font:12px Arial,sans-serif;margin-top:10px;color:var(--muted)}.staff-info>p:not(.staff-role){font-size:14px;margin-top:20px}.staff-info details{margin-top:30px;border-top:1px solid var(--line);font-size:12px}.staff-info details p{padding-bottom:15px}summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:48px}summary::-webkit-details-marker{display:none}summary>span{font-size:19px}details[open] summary>span{transform:rotate(45deg)}.access{background:var(--off)}.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:14%}.access h2{margin:25px 0 30px}.access dl>div{display:grid;grid-template-columns:100px 1fr;gap:20px;border-bottom:1px solid var(--line);padding:22px 0}.access dt{font:10px/2 Arial,sans-serif;letter-spacing:.1em;color:var(--muted)}.access dd{font-size:14px}.access dd small{display:block;font-size:11px;color:var(--muted);margin-top:8px}.reservation{text-align:center;padding-block:120px}.reservation h2{margin:25px 0}.reservation>div>p:not(.eyebrow){font-size:14px}.reservation .button{margin-top:32px;min-width:295px}.reservation .demo-note{font-size:11px;line-height:1.9;margin-top:22px;color:var(--muted)}.demo-note strong{font:10px Arial,sans-serif;letter-spacing:.1em;margin-right:9px}.footer{border-top:1px solid var(--ink);padding-top:45px;padding-bottom:30px}.footer-top{display:flex;justify-content:space-between;margin-bottom:45px;align-items:center}.footer>.eyebrow{margin-bottom:14px}.footer>p:not(.eyebrow){font-size:11px;line-height:1.9}.footer>.micro{margin-top:12px}.footer-bottom{border-top:1px solid var(--line);padding-top:23px;margin-top:35px;display:flex;justify-content:space-between;font:10px Arial,sans-serif;letter-spacing:.06em}.fixed-cta{display:none}.fixed-cta[hidden]{display:none!important}
/* Booking: all user input remains in volatile page memory. */
dialog{border:0;padding:0;background:#fff;color:var(--ink);width:min(830px,calc(100% - 48px));max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#252a2db3}.booking-shell{padding:26px 40px 30px}.booking-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.booking-top .brand{font-size:34px}.close-dialog{width:44px;height:44px;font-size:32px;line-height:1}.booking-disclaimer{background:var(--off);padding:12px 16px;font-size:11px;line-height:1.9}.booking-disclaimer strong{color:var(--accent);margin-right:9px;font:600 10px Arial,sans-serif;letter-spacing:.1em}.progress{list-style:none;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:25px 0}.progress li{border-top:2px solid var(--line);padding-top:9px;font-size:10px;color:var(--muted);white-space:nowrap;text-align:center}.progress li[aria-current=step]{border-color:var(--ink);color:var(--ink);font-weight:600}.progress li.done{border-color:var(--accent)}.step-label{font:10px Arial,sans-serif;letter-spacing:.12em;color:var(--accent);margin-bottom:9px}#booking-title{font-size:26px;margin-bottom:12px;outline:0}#booking-help{font-size:12px;color:var(--muted);margin-bottom:22px}.booking-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.option{border:1px solid var(--line);text-align:left;padding:17px 18px;display:flex;flex-direction:column;justify-content:space-between;min-height:90px}.option[aria-pressed=true]{border:2px solid var(--accent);padding:16px 17px;background:#eef3f5}.option-title{font-size:14px}.option-meta{font-size:11px;color:var(--muted);margin-top:8px}.option-price{font:18px Arial,sans-serif;margin-top:12px}.selection-summary{border-left:2px solid var(--accent);padding-left:13px;font-size:12px;line-height:1.8;margin-bottom:20px}.calendar-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.calendar-nav button{border:1px solid var(--line);width:44px;height:44px;font-size:20px}.calendar-nav h3{font-size:18px}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.weekdays span{text-align:center;font-size:11px;color:var(--muted);padding-bottom:8px}.calendar-days button{border:1px solid var(--line);min-height:52px;padding:4px;font-size:14px}.calendar-days button small{display:block;font-size:9px;color:var(--muted);line-height:1.2}.calendar-days button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.calendar-days button[aria-pressed=true] small{color:white}.calendar-days button:disabled{background:var(--off)}.calendar-legend{font-size:11px;color:var(--muted);margin-top:12px}.time-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.time-grid button{border:1px solid var(--line);min-height:50px;font:16px Arial,sans-serif}.time-grid button[aria-pressed=true]{background:var(--ink);color:white}.time-grid button:disabled{text-decoration:line-through}.customer-form{display:grid;gap:17px}.field label{font-size:13px;display:block;margin-bottom:6px}.field label span{font-size:10px;color:var(--muted);margin-left:10px}.field input{border:1px solid #acb5b8;min-height:48px;padding:10px 13px;width:100%;border-radius:0;color:var(--ink);background:white;font-size:16px}.fill-demo{justify-self:start;color:var(--accent);text-decoration:underline;padding:8px 0;font-size:12px}.field-error{font-size:12px;color:#994532;margin-top:5px}.review-list>div{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.review-list dt{color:var(--muted)}.review-list dd{overflow-wrap:anywhere}.review-notice{font-size:12px;margin-top:18px;background:var(--off);padding:14px}.booking-actions{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}.booking-actions .button{min-width:180px}.booking-status{font-size:12px;color:#994532;margin-top:10px;min-height:0}.complete-mark{width:60px;height:60px;border:1px solid var(--accent);color:var(--accent);font:32px/60px Arial,sans-serif;text-align:center;margin-bottom:20px}.completion p{font-size:14px;line-height:2}.completion strong{font-weight:500}.completion .selection-summary{margin-top:25px}.completion .text-link{margin-top:20px}.reveal{opacity:1}@media(prefers-reduced-motion:no-preference){.reveal.visible{animation:rise .65s ease both}@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}}@media(hover:hover){.button:not(:disabled):hover{background:var(--accent);border-color:var(--accent)}.option:hover,.calendar-days button:not(:disabled):hover,.time-grid button:not(:disabled):hover{border-color:var(--accent)}.text-link:hover{color:var(--accent)}}
@media(max-width:1050px){.wrap{width:calc(100% - 80px)}.hero-caption{gap:25px;padding-inline:0}.hero-links{display:flex;flex-direction:column;align-items:stretch;gap:4px}.hero-links .button{min-width:210px}.hero-links .text-link{border:0}.hero-word{font-size:72px}.menu-category{grid-template-columns:1fr 2.5fr;gap:6%}.staff,.access-grid{gap:8%}.feature-list{gap:30px}.gallery-grid{gap:30px 6%}}
@media(max-width:700px){:root{--head:70px}.wrap{width:calc(100% - 40px)}body{font-size:14px}.section{padding-block:68px}.sample-banner{font-size:7px;padding-inline:20px;letter-spacing:.07em}.header{padding-inline:20px}.brand{font-size:38px}.brand span{font-size:7px;margin-top:8px}.header nav{gap:16px;font-size:11px}.header .button{padding-inline:14px;gap:15px;font-size:11px}.hero{padding:12px 12px 0}.hero-media{height:390px}.hero-media img{object-position:63% center}.hero-word{font-size:58px;left:7%;bottom:15%;line-height:.95}.photo-note{left:10px;right:auto;bottom:9px;font-size:7px;padding:3px 6px;max-width:calc(100% - 20px)}.hero-caption{display:block;padding:25px 8px 23px}.hero-caption .eyebrow{font-size:9px}h1{font-size:27px;line-height:1.6;letter-spacing:.02em;margin-top:13px}.mobile-break{display:block}.hero-links{margin-top:24px;display:grid;grid-template-columns:1fr auto;gap:10px 18px;align-items:center}.hero-links .button{min-width:0;padding:13px 15px;font-size:12px;gap:10px;min-height:50px}.hero-links .text-link{font-size:11px;gap:10px}.hero-links .micro{margin:0;font-size:9px}.hero-meta{font-size:7px;letter-spacing:.02em;padding:15px 8px;gap:12px}.concept{display:block}.concept>.eyebrow{padding:0;margin-bottom:28px}h2{font-size:30px}.concept h2{margin-bottom:24px}.concept p:not(.eyebrow){font-size:14px}.concept p br{display:none}.concept h2 br{display:block}.concept .small-copy{margin-top:18px}.section-head{display:block;margin-bottom:30px}.section-head>p{margin-top:22px;font-size:13px}.section-head h2{font-size:34px}.section-head h2>span{font-size:12px}.category-nav{grid-template-columns:1fr 1fr}.category-nav a{padding:17px 8px 17px 0;gap:9px;font-size:9px;min-height:55px}.category-nav a:nth-child(-n+2){border-bottom:1px solid var(--line)}.category-nav a:nth-child(2n){padding-left:15px}.category-nav span{font-size:12px}.price-notice{font-size:11px;line-height:1.9}.price-notice a{display:inline-block;margin:5px 0 0}.menu-category{display:block;padding-top:50px}.category-title{margin-bottom:22px}.category-title h3{font-size:32px;display:inline-block;margin:0 0 0 14px;vertical-align:top}.category-title h3 span{font-size:12px;margin-top:7px}.category-title p{margin-top:15px}.menu-row{padding:20px 0;gap:12px;display:grid;grid-template-columns:1fr}.menu-row h4{font-size:16px}.menu-row p:not(.price){font-size:14px}.menu-row .price{text-align:right;font-size:25px;margin-top:3px}.price small{font-size:10px;display:inline;margin-left:12px}.price.price-text{font-size:16px}.duration{font-size:12px}.category-note{font-size:12px}.features .section-head h2{width:100%;font-size:30px;margin-top:25px}.feature-list{display:block;margin-top:32px}.feature-list article{padding:22px 0}.feature-list h3{font-size:21px;margin:15px 0}.feature-list h3 br{display:none}.feature-list p{font-size:14px}.gallery{padding-top:0}.gallery-grid{grid-template-columns:1fr;gap:20px}.placeholder.tall{height:400px;grid-row:auto;width:87%}.placeholder.wide{height:260px;width:87%;justify-self:end}.placeholder{padding:22px}.placeholder-code{left:22px;top:20px}.gallery-copy{font-size:26px;margin:10px 0 0 13%}.gallery-copy span{font-size:11px}.staff{display:block}.staff h2{margin-top:20px}.staff-info{margin-top:35px}.staff-info h3{font-size:24px}.staff-info>p:not(.staff-role){font-size:14px}.access-grid{display:block}.access h2{margin:20px 0}.access dl{margin-top:25px}.access dl>div{grid-template-columns:74px 1fr;gap:13px;padding:18px 0}.access dd{font-size:13px}.access dd small{font-size:11px}.reservation h2{font-size:26px;margin-block:20px}.reservation .button{min-width:0;width:100%;max-width:340px}.reservation>div>p:not(.eyebrow){font-size:13px}.reservation .demo-note{font-size:11px;text-align:left}.footer{padding-top:35px;padding-bottom:calc(102px + env(safe-area-inset-bottom,0px))}.footer-top{margin-bottom:35px}.footer-bottom{display:block;line-height:2}.footer-bottom a{display:block;margin-top:10px}.fixed-cta{position:fixed;bottom:0;left:0;right:0;z-index:25;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:10px 18px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:#fff}.fixed-cta>span{font:9px Arial,sans-serif;letter-spacing:.1em}.fixed-cta small{display:block;font:9px var(--sans);letter-spacing:0;margin-top:5px}.fixed-cta .button{gap:25px}.fixed-cta.hide{display:none}html{scroll-padding-bottom:90px}dialog{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;padding:0}.booking-shell{padding:19px 20px calc(25px + env(safe-area-inset-bottom,0px))}.booking-top{margin-bottom:18px}.booking-disclaimer{font-size:11px;padding:10px 12px}.progress{gap:4px;margin:22px 0}.progress li{font-size:9px;padding-top:8px;letter-spacing:0}.progress li:nth-child(4){font-size:8px}#booking-title{font-size:23px}.booking-options{grid-template-columns:1fr}.option{min-height:0;padding:14px;display:grid;grid-template-columns:1fr auto;gap:5px 12px}.option[aria-pressed=true]{padding:13px}.option-title{font-size:14px}.option-price{font-size:17px;grid-column:2;grid-row:1;margin:0}.option-meta{font-size:10px;grid-column:1/-1;margin:0}.calendar-days,.weekdays{gap:3px}.calendar-days button{min-height:46px;font-size:13px}.calendar-days button small{font-size:8px}.calendar-nav h3{font-size:16px}.time-grid{gap:8px}.time-grid button{font-size:15px;min-height:48px}.booking-actions{gap:15px;margin-top:22px;padding-top:18px}.booking-actions .button{min-width:0;padding-inline:18px;font-size:12px}.booking-actions .text-link{font-size:12px;white-space:nowrap}.review-list>div{grid-template-columns:78px 1fr;gap:12px;font-size:12px}.completion p{font-size:14px}.booking-top .brand{font-size:34px}.field label{font-size:13px}}
@media(max-width:359px){.header nav{gap:10px}.header nav>a{font-size:10px}.header .button{padding-inline:10px;gap:8px}.hero-media{height:340px}.hero-word{font-size:50px}h1{font-size:24px}.hero-links{gap:10px}.hero-links .button{font-size:11px;padding-inline:12px}.hero-links .text-link{font-size:10px;gap:6px}.photo-note{font-size:6.5px}.price small{display:block;margin:8px 0 0}.booking-shell{padding-inline:15px}.progress{gap:3px}.progress li{font-size:8px}.reservation h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}}
[hidden]{display:none!important}
#booking-next>span:first-child{font:inherit}
