:root{--paper: #f3eee6;--ink: #1c1814;--muted: #5c5348;--line: #c9bfb0;--rule: #2c241c;--highlight: #e8dfd2;--white: #faf7f2;--serif: "Cormorant Garamond", "Times New Roman", serif;--sans: "Source Sans 3", "Helvetica Neue", sans-serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1.05rem;line-height:1.55}img,iframe{max-width:100%}a{color:var(--ink)}a:hover{text-decoration-thickness:2px}.skip{position:absolute;left:1rem;top:-3rem;background:var(--ink);color:var(--paper);padding:.5rem .75rem;z-index:60}.skip:focus{top:1rem}.site-footer{padding:1.25rem 1.5rem}.site-header{--header-pad-y: 1rem;--header-logo: 3.5rem;--header-height: calc(var(--header-logo) + var(--header-pad-y) * 2);position:sticky;top:0;z-index:50;display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;height:var(--header-height);padding:0 1.5rem;padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid transparent;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:saturate(1.2) blur(14px);backdrop-filter:saturate(1.2) blur(14px);transition:border-color .28s ease,box-shadow .28s ease,background-color .28s ease}@supports not (background: color-mix(in srgb,white 50%,transparent)){.site-header{background:#f3eee6e6}}.site-header.is-compact{border-bottom-color:var(--line);background:color-mix(in srgb,var(--paper) 94%,transparent);box-shadow:0 1px color-mix(in srgb,var(--ink) 6%,transparent)}.brand{display:grid;place-items:center;width:var(--header-logo);height:var(--header-logo);flex-shrink:0;line-height:0}.brand img{width:var(--header-logo);height:var(--header-logo);border-radius:50%;transform:scale(1);transform-origin:center;transition:transform .28s cubic-bezier(.22,1,.36,1)}.site-header.is-compact .brand img{transform:scale(.72)}.hero-logo{display:block;width:min(16rem,72%);height:auto;margin:0 auto .75rem}.footer-logo{width:4.5rem;height:4.5rem;margin:0 auto .75rem;border-radius:50%}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}nav ul{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:.35rem .85rem;list-style:none;margin:0;padding:0}nav a{text-decoration:none;font-size:.95rem;transition:color .2s ease,background-color .2s ease,border-color .2s ease}@media(prefers-reduced-motion:reduce){.site-header,.brand img,nav a{transition:none}}nav a[aria-current=page]{border-bottom:1px solid var(--ink)}nav a.book{border:1px solid var(--ink);padding:.2rem .7rem}nav a.book[aria-current=page],nav a.book:hover{background:var(--ink);color:var(--paper)}main{flex:1;width:min(44rem,calc(100% - 2.5rem));margin:0 auto;padding:2.5rem 0 4rem}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2}h1{font-size:2.6rem;margin:0 0 .35rem;text-align:center}.kicker{margin:0 0 .5rem;text-align:center;letter-spacing:.32em;text-transform:uppercase;font-size:.72rem;color:var(--muted)}.lede{text-align:center;color:var(--muted);margin:0 0 2rem}.rule{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;margin:2.25rem 0 1.25rem}.rule:before,.rule:after{content:"";flex:1;height:1px;background:var(--line)}.hero-actions,.actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin:1.75rem 0 0}.hero-locale{margin:1rem 0 0;text-align:center}.hero-locale a{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;color:var(--muted);font-size:.9rem;letter-spacing:.12em;text-transform:uppercase}.hero-locale a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:.2em}.hero-locale .pin{width:.95rem;height:.95rem;flex-shrink:0}.btn{display:inline-block;text-decoration:none;border:1px solid var(--ink);padding:.55rem 1.1rem;font:inherit;font-size:.95rem;line-height:inherit;background:transparent;color:var(--ink);cursor:pointer;appearance:none}.btn.primary,.btn:hover{background:var(--ink);color:var(--paper)}.hours{width:100%;border-collapse:collapse;margin:0 0 1rem}.hours th,.hours td,.menu td,.menu th{text-align:left;padding:.45rem 0;border-bottom:1px solid var(--line);font-weight:400}.hours td:last-child,.menu td:last-child,.menu td:nth-child(3){text-align:right;font-variant-numeric:tabular-nums}.note{background:var(--highlight);padding:.65rem .85rem;margin:.75rem 0 1.5rem}.menu{width:100%;border-collapse:collapse;margin:0 0 2rem}.menu caption{text-align:left;font-family:var(--serif);font-size:1.45rem;margin:0 0 .5rem;caption-side:top}.menu .zh{display:block;font-size:.8rem;color:var(--muted)}.wayfinding-grid{display:grid;gap:1.25rem;margin:1rem 0 1.75rem}@media(min-width:720px){.wayfinding-grid{grid-template-columns:1fr 1fr;gap:1rem 1.25rem;align-items:start}}.wayfinding{margin:0}.wayfinding img{display:block;width:100%;height:auto;aspect-ratio:3 / 4;object-fit:cover;border:1px solid var(--line)}.wayfinding figcaption{margin-top:.5rem;font-size:.95rem;color:var(--muted)}.page-book{min-height:100dvh}.page-book main{width:min(44rem,calc(100% - 2.5rem));margin-inline:auto;padding:1.5rem 0 2.5rem;flex:0 0 auto;display:block;background:transparent}.book-panel{background:var(--white);border:1px solid var(--line)}.book-intro{padding:1.75rem 1.25rem 1.25rem;text-align:center;border-bottom:1px solid var(--line)}.book-intro .kicker{margin-bottom:.35rem}.book-intro h1{font-size:2.2rem;margin:0 0 .4rem}.callout{margin:0 auto .85rem;max-width:28rem;padding:.65rem .9rem;background:var(--highlight);border:1px solid var(--line);font-size:.92rem;line-height:1.4;color:var(--ink);text-align:center}.book-intro .lede{margin:0;font-size:.95rem}.book-launch{padding:1.75rem 1.25rem 2rem;text-align:center;border-top:1px solid var(--line)}.book-launch-copy{margin:0 auto 1.25rem;max-width:28rem;color:var(--muted)}.book-launch .actions{justify-content:center}.book-launch .note{margin-top:1.25rem}.booking-dialog{width:min(40rem,100vw);height:min(56rem,100vh);max-width:100vw;max-height:100vh;margin:auto;padding:0;border:1px solid var(--line);background:#fff;color:var(--ink)}.booking-dialog::backdrop{background:color-mix(in srgb,var(--ink) 45%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.booking-dialog-chrome{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;padding:.65rem .75rem;border-bottom:1px solid var(--line);background:var(--paper)}.booking-dialog-chrome form{display:block;margin:0}.booking-dialog-close{justify-self:start;font:inherit;font-size:.9rem;padding:.35rem .65rem;border:1px solid var(--line);background:var(--white);color:var(--ink);cursor:pointer}.booking-dialog-close:hover{border-color:var(--ink)}.booking-dialog-title{margin:0;font-family:var(--serif);font-size:1.25rem;font-weight:600;text-align:center}.booking-dialog-spacer{justify-self:end;width:4.5rem}.booking-dialog-frame{display:block;width:100%;height:calc(100% - 3.1rem);border:0;background:#fff;color-scheme:light}@media(max-width:640px){.booking-dialog{width:100vw;height:100vh;height:100dvh;border:0;border-radius:0}}.page-book .site-footer{padding-block:1.25rem 1.5rem}.map{width:100%;height:16rem;border:0;margin:1rem 0 1.5rem}form{display:grid;gap:.85rem}label span{display:block;font-size:.85rem;margin-bottom:.25rem}input,textarea{width:100%;font:inherit;padding:.55rem .65rem;border:1px solid var(--line);background:var(--white);color:var(--ink)}textarea{min-height:8rem;resize:vertical}button[type=submit]{font:inherit;cursor:pointer;background:var(--ink);color:var(--paper);border:0;padding:.7rem 1.1rem;justify-self:start}.hp{position:absolute;left:-10000px}.captcha{margin:.25rem 0}ul.policy{padding-left:1.15rem}ul.policy li{margin:.45rem 0}.site-footer{border-top:1px solid var(--line);text-align:center;color:var(--muted);font-size:.9rem}.site-footer p{margin:.35rem 0}.thanks{text-align:center}@media(max-width:640px){h1{font-size:2.1rem}.site-header{--header-pad-y: .65rem;--header-logo: 2.25rem;flex-wrap:nowrap;align-items:center;gap:.5rem;padding:0 .75rem;padding-top:env(safe-area-inset-top,0px)}.site-header.is-compact .brand img{transform:scale(.82)}.site-header nav{flex:1;min-width:0}nav ul{flex-wrap:nowrap;justify-content:flex-end;gap:.2rem .4rem}nav a{font-size:.72rem;white-space:nowrap}nav a.book{padding:.15rem .45rem}}
