@font-face{font-family:Tabu Display;src:url('/assets/fonts/cormorant-garamond-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Tabu Sans;src:url('/assets/fonts/manrope-medium.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}

/* Stage 1 is scoped to the header and hero. The existing sections keep their styles. */
.tabu-header,.tabu-hero,.tabu-skip{
  --tabu-graphite:#242322;
  --tabu-ivory:#eee7e1;
  --tabu-muted:#d1c7c1;
  --tabu-rose:#d6a3ad;
  --tabu-button:#ac4c69;
  --tabu-sans:'Tabu Sans',Arial,sans-serif;
  --tabu-display:'Tabu Display',Georgia,serif;
  font-family:var(--tabu-sans);
  font-weight:500;
}
.tabu-header ::selection,.tabu-hero ::selection{background:#d6a3ad;color:#242322}
.tabu-header :focus-visible,.tabu-hero :focus-visible,.tabu-skip:focus-visible{outline:2px solid #f2bacb;outline-offset:6px}
.tabu-skip{position:fixed;top:12px;left:12px;z-index:100;transform:translateY(-180%);background:var(--tabu-ivory);color:var(--tabu-graphite);padding:13px 18px;font-size:14px}
.tabu-skip:focus{transform:none}
.tabu-header{position:absolute;inset:0 0 auto;z-index:20;color:var(--tabu-muted);background:linear-gradient(180deg,#242322f5 0%,#242322f0 70%,#24232200 100%)}
.tabu-header__inner{position:relative;max-width:1680px;min-height:104px;margin:auto;padding:20px 64px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.tabu-brand{display:inline-flex;align-items:center;gap:18px;min-height:52px;flex-shrink:0}
.tabu-brand img{display:block;width:48px;height:52px}
.tabu-brand span{font-size:9px;line-height:1.7;letter-spacing:1.1px;text-transform:uppercase}
.tabu-brand .tabu-brand__address{display:block;margin-top:4px;font-size:10px;line-height:1.5;letter-spacing:.1px;text-transform:none}
.tabu-nav{display:flex;align-items:center;gap:24px}
.tabu-nav>a{display:inline-flex;align-items:center;min-height:44px;font-size:12px;white-space:nowrap;text-underline-offset:5px}
.tabu-nav>a:hover{color:var(--tabu-ivory);text-decoration:underline}
.tabu-nav>a[aria-current]{color:var(--tabu-rose)}
.tabu-button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:56px;padding:16px 25px;background:var(--tabu-button);color:#fff9f6;border:0;border-radius:1px;font-family:var(--tabu-sans);font-size:11px;font-weight:500;line-height:1.4;letter-spacing:1.2px;text-transform:uppercase;transition:background-color .2s ease,color .2s ease}
.tabu-button>svg{width:21px;height:21px;flex-shrink:0}
.tabu-button:hover{background:#b05270}
.tabu-button:active{background:#99415d}
.tabu-header__book{min-height:48px;padding:12px 22px;font-size:10px;flex-shrink:0}
.tabu-header .tabu-menu{display:none}
.tabu-hero{position:relative;isolation:isolate;overflow:hidden;min-height:clamp(760px,58vw,900px);height:auto;background:linear-gradient(110deg,#252423 0%,#242322 35%,#373332 100%);color:var(--tabu-ivory)}
.tabu-hero__media-track{display:contents}
.tabu-hero__media{position:absolute;inset:0 0 0 31%;z-index:-2;--tabu-shade-horizontal:linear-gradient(90deg,#242322 0%,#242322e0 8%,#24232242 29%,transparent 44%,transparent 84%,#24232233 100%);--tabu-shade-vertical:linear-gradient(0deg,#242322 0%,transparent 15%,transparent 90%,#24232266 100%)}
.tabu-hero__photo{position:absolute;inset:0}
.tabu-hero__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.tabu-hero__veil{display:none;pointer-events:none}
.tabu-hero__media::before{content:'';position:absolute;z-index:1;right:0;bottom:0;width:25%;height:27%;background:linear-gradient(90deg,transparent,#242322 38%);-webkit-mask-image:linear-gradient(transparent,#000 34%);mask-image:linear-gradient(transparent,#000 34%)}
.tabu-hero__media::after{content:'';position:absolute;inset:0;background:var(--tabu-shade-horizontal),var(--tabu-shade-vertical);pointer-events:none}
.tabu-hero__inner{position:relative;max-width:1680px;min-height:100%;margin:auto;padding:0 64px}
.tabu-hero__copy{width:430px;padding-top:158px;padding-bottom:45px}
.tabu-hero__motto{margin:0 0 26px;font-size:10px;line-height:1.5;letter-spacing:3px;text-transform:uppercase;color:var(--tabu-muted)}
.tabu-hero__identity{position:relative;margin-bottom:27px;--tabu-mark-width:208px;--tabu-mark-height:225px}
.tabu-hero__logo{display:block;width:208px;height:225px;object-fit:contain;object-position:left center}
.tabu-hero__identity>p{margin:14px 0 0;font-size:11px;line-height:1.65;letter-spacing:3.1px;text-transform:uppercase}
.tabu-hero__identity>p>span{font-size:10px;letter-spacing:2.8px}
.tabu-hero__identity>.tabu-hero__place{position:absolute;left:calc(var(--tabu-mark-width)*1.53);top:calc((var(--tabu-mark-height) - var(--tabu-mark-width)*1.042857)/2 + var(--tabu-mark-width)*.257143);width:calc(var(--tabu-mark-width)*1.85);margin:0;color:var(--tabu-ivory);font-family:var(--tabu-display);font-size:calc(var(--tabu-mark-width)*.148);font-weight:400;line-height:1.15;letter-spacing:0;text-transform:none}
.tabu-hero__messages{display:grid;align-items:center;min-height:3.45em}
.tabu-hero__message{grid-area:1/1;margin:0;font:inherit;color:inherit;opacity:0;visibility:hidden;transform:translate3d(0,10px,0);transition:opacity 420ms cubic-bezier(.16,1,.3,1),transform 420ms cubic-bezier(.16,1,.3,1),visibility 420ms;pointer-events:none}
.tabu-hero__message>span{display:block}
.tabu-hero__message[data-hero-message="1"]{text-shadow:0 1px 0 #242322,0 -1px 0 #242322,1px 0 0 #242322,-1px 0 0 #242322}
.tabu-hero__message.is-current{opacity:1;visibility:visible;transform:translate3d(0,0,0)}
.tabu-hero__place-controls{display:flex;align-items:center;width:max-content;gap:2px;margin-top:3px}
.tabu-hero__place-controls[hidden],.tabu-hero__message[hidden]{display:none}
.tabu-hero__place-controls>button{display:grid;place-items:center;width:52px;height:44px;margin:0;padding:0;border:0;border-radius:1px;background:transparent;color:var(--tabu-muted);cursor:pointer}
.tabu-hero__place-controls i{position:relative;display:block;width:44px;height:2px;--tabu-message-line:#8b8581}
.tabu-hero__place-controls i::before{content:'';position:absolute;inset:-1px;background:var(--tabu-graphite)}
.tabu-hero__place-controls i::after{content:'';position:absolute;inset:0;background:var(--tabu-message-line);transition:background-color 180ms ease}
.tabu-hero__place-controls [aria-pressed=true]>i{--tabu-message-line:var(--tabu-rose)}
.tabu-hero__place-controls>button:hover{color:var(--tabu-ivory)}
.tabu-hero__place-controls>button[aria-pressed=false]:hover>i{--tabu-message-line:var(--tabu-ivory)}
.tabu-hero__place-controls [data-hero-message-pause]{width:44px}
.tabu-hero__place-controls svg{width:13px;height:13px}
.tabu-hero__place-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.tabu-intro-active .tabu-hero__place{opacity:0;transform:translateY(10px)}
.tabu-hero h1{font-family:var(--tabu-display);font-size:60px;font-weight:400;line-height:.93;letter-spacing:-1.1px;margin:0 0 25px;max-width:430px;color:var(--tabu-ivory);white-space:nowrap;scroll-margin-top:24px}
.tabu-hero__description{max-width:315px;margin:0 0 29px;color:var(--tabu-muted);font-size:13px;line-height:1.65}
.tabu-hero__reading-shade{display:none;pointer-events:none}
.tabu-hero__book{min-width:292px}
.tabu-hero__signature{position:absolute;right:64px;bottom:56px;margin:0;padding:15px 0 0 20px;background:linear-gradient(90deg,transparent,#242322cf 30%);color:var(--tabu-muted);font-size:10px;line-height:2.45;letter-spacing:2px;text-transform:uppercase}
.tabu-hero-in-view .mobile-nav{visibility:hidden}
@keyframes tabu-arrive{from{opacity:.7;transform:translateY(9px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){.tabu-hero__copy{animation:tabu-arrive .8s cubic-bezier(.16,1,.3,1) both}}
@media(min-width:1700px){.tabu-hero__copy{padding-top:174px}.tabu-hero__logo{width:230px;height:249px}.tabu-hero__identity{--tabu-mark-width:230px;--tabu-mark-height:249px}.tabu-hero h1{font-size:66px}.tabu-hero__description{font-size:14px;max-width:330px}}
@media(max-width:1199px){.tabu-header__inner,.tabu-hero__inner{padding-inline:40px}.tabu-header__inner{gap:20px}.tabu-nav{gap:16px}.tabu-brand{gap:12px}.tabu-brand span{font-size:8px;letter-spacing:.7px}.tabu-nav>a{font-size:11px}.tabu-header__book{padding-inline:16px}.tabu-hero__signature{right:40px}.tabu-hero__copy{width:390px}.tabu-hero h1{font-size:56px}}
@media(max-width:1023px){
 .tabu-header__inner{min-height:92px;gap:16px}
 .tabu-header__book{margin-left:auto}
 .tabu-header .tabu-menu{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;min-width:44px;margin:0;padding:0;color:var(--tabu-ivory);background:transparent;border:1px solid #ac99925c;border-radius:1px}
 .tabu-nav{display:none;position:absolute;top:100%;left:24px;right:24px;padding:18px 22px;background:#292625;border:1px solid #625751;color:var(--tabu-ivory)}
 .tabu-nav.open{display:grid;grid-template-columns:1fr 1fr;gap:4px 22px}
 .tabu-nav>a{font-size:13px;white-space:normal}
 .tabu-nav>.tabu-nav__account{display:inline-flex}
 .tabu-hero{height:auto;min-height:760px}
 .tabu-hero__copy{padding-top:145px;width:370px}
 .tabu-hero__logo{width:176px;height:190px}
 .tabu-hero__identity{--tabu-mark-width:176px;--tabu-mark-height:190px}
 .tabu-hero__media{left:22%}
 .tabu-hero__media::before{width:40%;background:linear-gradient(90deg,transparent,#242322 10%)}
 .tabu-hero__media img{object-position:65% center}
 .tabu-hero__media{--tabu-shade-horizontal:linear-gradient(90deg,#242322 0%,#242322ec 15%,#24232260 43%,transparent 70%);--tabu-shade-vertical:linear-gradient(0deg,#242322 0%,transparent 30%,transparent 88%,#24232280)}
}
@media(max-width:600px){
 .tabu-header__inner{min-height:80px;padding:14px 20px;gap:12px}
 .tabu-brand{gap:10px;min-height:48px}.tabu-brand img{width:37px;height:42px}.tabu-brand span{font-size:9px;line-height:1.65;letter-spacing:.4px}.tabu-brand .tabu-brand__address{font-size:8px}
 .tabu-header__book{min-height:44px;padding:10px 12px;gap:10px;font-size:10px;letter-spacing:.6px}.tabu-header__book>svg{width:16px;height:16px}
 .tabu-header .tabu-menu{border-color:transparent}
 .tabu-nav{left:12px;right:12px;padding:15px 20px}.tabu-nav.open{gap:7px 20px}
 .tabu-hero{height:auto;min-height:0}
 .tabu-hero__inner{padding-inline:22px}
 .tabu-hero__copy{width:100%;padding-top:113px;padding-bottom:32px}
 .tabu-hero__motto{font-size:8px;letter-spacing:2.2px;margin-bottom:20px}
 .tabu-hero__logo{width:132px;height:143px}
 .tabu-hero__identity{margin-bottom:24px}.tabu-hero__identity>p{font-size:9px;line-height:1.65;letter-spacing:1.8px;margin-top:10px}.tabu-hero__identity>p>span{font-size:8px;letter-spacing:1.6px}
 .tabu-hero__identity{--tabu-mark-width:132px;--tabu-mark-height:143px}
 .tabu-hero__identity>.tabu-hero__place{left:calc(var(--tabu-mark-width) + 18px);top:3px;width:calc(100% - var(--tabu-mark-width) - 18px);font-size:clamp(18px,5vw,21px);margin:0}
 .tabu-hero__messages{min-height:3.8em}
 .tabu-hero__message[data-hero-message="1"]{font-size:clamp(16px,4.3vw,18.5px)}
 .tabu-hero__place-controls{gap:0;margin-top:0}
 .tabu-hero__place-controls>button{width:44px}
 .tabu-hero__place-controls i{width:34px}
 .tabu-hero h1{font-size:clamp(40px,12.56vw,49px);line-height:1.02;letter-spacing:-.8px;max-width:100%;margin-bottom:22px}
 .tabu-hero__description{font-size:12px;line-height:1.7;max-width:268px;margin-bottom:25px}
 .tabu-hero__book{width:100%;min-width:0;min-height:54px;padding:16px 22px;font-size:10px}
 .tabu-hero__media{left:19%;top:74px;bottom:auto;height:478px;-webkit-mask-image:linear-gradient(#000 80%,transparent);mask-image:linear-gradient(#000 80%,transparent)}
 .tabu-hero__media img{object-position:65% center}
 .tabu-hero__media{--tabu-shade-horizontal:linear-gradient(90deg,#242322 0%,#242322cc 18%,#24232222 47%,transparent 68%);--tabu-shade-vertical:linear-gradient(0deg,#242322 0%,#242322 15%,#242322c4 38%,transparent 62%,transparent 88%,#242322 100%)}
 .tabu-hero__signature{display:none}
}
@media(max-width:359px){
 .tabu-header__inner{padding-inline:15px;gap:6px}.tabu-brand{gap:7px}.tabu-brand img{width:32px}.tabu-brand span{font-size:7px;letter-spacing:.25px}.tabu-brand .tabu-brand__address{font-size:7px}.tabu-header__book{padding-inline:10px;gap:0;font-size:9px}.tabu-header__book>svg{display:none}
 .tabu-hero__inner{padding-inline:18px}.tabu-hero__media{left:20%;height:455px}
 .tabu-hero__identity>.tabu-hero__place{left:calc(var(--tabu-mark-width) + 12px);width:calc(100% - var(--tabu-mark-width) - 12px)}
}
@media(prefers-reduced-motion:reduce){.tabu-hero__copy{animation:none;transform:none}.tabu-button{transition:none}}
@media(prefers-reduced-motion:reduce){.tabu-hero__message,.tabu-hero__place-controls i::after{transition:none;transform:none}}
@media(forced-colors:active){.tabu-hero__place-controls i::before{background:Canvas}.tabu-hero__place-controls i{--tabu-message-line:GrayText}.tabu-hero__place-controls [aria-pressed=true]>i{--tabu-message-line:Highlight}.tabu-hero__message{text-shadow:none}}

/* A bounded source-image reserve also defines the static / intro endpoint. */
.tabu-hero{--tabu-parallax-pan:104px;--tabu-parallax-reveal:var(--tabu-parallax-pan);--tabu-shade-top:linear-gradient(180deg,#24232266,transparent 10%);--tabu-shade-floor:linear-gradient(0deg,#242322,transparent 15%);background-image:linear-gradient(0deg,#242322,transparent 72px),linear-gradient(110deg,#252423 0%,#242322 35%,#373332 100%)}
.tabu-hero__media{overflow:hidden;--tabu-shade-vertical:var(--tabu-shade-floor),var(--tabu-shade-top)}
.tabu-hero__photo{bottom:calc(-1 * var(--tabu-parallax-pan))}
@media(min-width:601px){.tabu-hero__media{-webkit-mask-image:linear-gradient(#000 calc(100% - 72px),transparent);mask-image:linear-gradient(#000 calc(100% - 72px),transparent)}}
.tabu-noscript-note{margin:0;padding:24px;color:#eee7e1;background:#242322;font:14px/1.6 'Tabu Sans',Arial,sans-serif}
.tabu-noscript-note a{text-decoration:underline}
.tabu-hero--parallax .tabu-hero__media-track{display:block;position:absolute;inset:0 0 0 31%;z-index:-2;pointer-events:none}
.tabu-hero--parallax .tabu-hero__media{inset:0;z-index:auto}
.tabu-hero--parallax .tabu-hero__photo{-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),transparent);mask-image:linear-gradient(#000 calc(100% - 24px),transparent)}
.tabu-hero--parallax .tabu-hero__veil{display:block;position:absolute;inset:0;background:var(--tabu-shade-floor)}
.tabu-hero--parallax .tabu-hero__media::after{background:var(--tabu-shade-horizontal),var(--tabu-shade-top)}
@media(max-width:1023px){
 .tabu-hero{--tabu-parallax-pan:64px;--tabu-shade-top:linear-gradient(180deg,#24232280,transparent 12%);--tabu-shade-floor:linear-gradient(0deg,#242322,transparent 30%)}
 .tabu-hero--parallax .tabu-hero__media-track{left:22%}
}
@media(min-width:1024px) and (max-width:1260px){.tabu-hero{--tabu-parallax-pan:80px}}
@media(max-width:600px){
 .tabu-hero{--tabu-parallax-pan:48px;--tabu-parallax-reveal:144px;--tabu-shade-top:linear-gradient(180deg,#242322,#24232280 36%,transparent 68%);--tabu-shade-floor:linear-gradient(0deg,#242322 0%,#24232299 12%,#24232233 32%,transparent 52%)}
 .tabu-hero__media{height:384px;-webkit-mask-image:linear-gradient(#000 calc(100% - 40px),transparent);mask-image:linear-gradient(#000 calc(100% - 40px),transparent)}
 .tabu-hero__media::before{display:none}
 .tabu-hero__media img{object-position:42% center}
 .tabu-hero h1{text-shadow:0 1px 0 #242322,0 -1px 0 #242322,1px 0 0 #242322,-1px 0 0 #242322}
 .tabu-hero--parallax .tabu-hero__copy{position:relative;isolation:isolate}
 .tabu-hero--parallax .tabu-hero__description{position:relative}
 .tabu-hero--parallax .tabu-hero__reading-shade{display:block;position:absolute;z-index:-1;inset:-64px -80px;opacity:0;background:radial-gradient(ellipse closest-side,#242322ed 0%,#242322e8 50%,#242322d9 68%,#24232299 84%,transparent 100%)}
 .tabu-hero--parallax .tabu-hero__media-track{top:74px;left:19%}
 .tabu-hero--parallax .tabu-hero__media{bottom:auto;height:384px}
}
@media(max-width:359px){
 .tabu-hero--parallax .tabu-hero__media-track{left:20%}
 .tabu-hero__media,.tabu-hero--parallax .tabu-hero__media{height:384px}
}
@media(prefers-reduced-motion:reduce){
 .tabu-hero__media,.tabu-hero__photo,.tabu-hero__veil{transform:none!important;will-change:auto!important}
}
/* Desktop reveals the room earlier; the single controller still owns transforms. */
@media(min-width:1024px){.tabu-hero{--tabu-parallax-pan:180px;--tabu-parallax-scroll-span:.65}}
@media(min-width:1024px) and (max-width:1260px){.tabu-hero{--tabu-parallax-pan:150px}}
@media(min-width:1700px){.tabu-hero{--tabu-parallax-pan:220px}}
