/* INTERIOLOGY Z201 — single-layer inter-page transition.
   No competing shutters, moving centre mark, or dynamically inserted backdrop.
   Every state uses the same fixed plane to prevent reflow and entry-frame jumps. */
:root{
  --pt201-black:#020202;
  --pt201-ink:#f4f2ec;
  --pt201-duration:680ms;
  --pt201-ease:cubic-bezier(.25,.46,.45,.94);
}
#pt{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:30000!important;
  display:block!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  background:var(--pt201-black)!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:none!important;
  filter:none!important;
  contain:layout paint style!important;
  isolation:isolate!important;
  transition:opacity var(--pt201-duration) var(--pt201-ease),visibility 0s linear var(--pt201-duration)!important;
  -webkit-backface-visibility:hidden!important;
  backface-visibility:hidden!important;
  will-change:opacity!important;
}
/* Disable ALL inherited shutter/veil animations from older releases. */
#pt::before,#pt::after,
#pt .pt193-veil{
  content:none!important;
  display:none!important;
  animation:none!important;
  transition:none!important;
}
/* A statically centred editorial mark. No Y motion, scale or layout changes. */
#pt .pt192-core{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  box-sizing:border-box!important;
  z-index:1!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
  align-items:center!important;
  align-content:center!important;
  gap:clamp(12px,2.5vw,34px)!important;
  padding:0 clamp(22px,8vw,150px)!important;
  background:transparent!important;
  opacity:0!important;
  visibility:visible!important;
  transform:none!important;
  filter:none!important;
  animation:none!important;
  transition:opacity 380ms ease!important;
  will-change:opacity!important;
}
#pt .pt192-mark{
  width:clamp(156px,18vw,278px)!important;
  min-height:0!important;
  display:block!important;
  flex:none!important;
}
#pt .pt192-mask{
  display:block!important;
  width:100%!important;
  opacity:1!important;
  overflow:visible!important;
  clip-path:none!important;
  -webkit-clip-path:none!important;
  transform:none!important;
  filter:none!important;
  animation:none!important;
  transition:none!important;
}
#pt .pt192-mask img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:1800/167!important;
  object-fit:contain!important;
  filter:brightness(0) invert(1)!important;
  transform:none!important;
  animation:none!important;
  transition:none!important;
}
#pt .pt192-line,
#pt .pt192-line-l,
#pt .pt192-line-r{
  display:block!important;
  width:100%!important;
  height:1px!important;
  opacity:.44!important;
  visibility:visible!important;
  transform:none!important;
  animation:none!important;
  transition:none!important;
}
#pt .pt192-line-l{background:linear-gradient(90deg,transparent,rgba(244,242,236,.55))!important}
#pt .pt192-line-r{background:linear-gradient(90deg,rgba(244,242,236,.55),transparent)!important}
/* First frame of a click: visible but clear. Then fade to full coverage. */
html.pt-active #pt,
html.pt-closing #pt,
html.pt-covered #pt,
html.pt-arrival #pt,
html.pt-opening #pt{
  visibility:visible!important;
  transition:opacity var(--pt201-duration) var(--pt201-ease),visibility 0s!important;
}
html.pt-closing #pt,
html.pt-covered #pt,
html.pt-arrival #pt{opacity:1!important}
html.pt-closing #pt .pt192-core,
html.pt-covered #pt .pt192-core,
html.pt-arrival #pt .pt192-core{opacity:1!important}
/* Arriving page must be fully covered FROM ITS FIRST PAINT. */
html.pt-arrival #pt,
html.pt-arrival #pt .pt192-core{transition:none!important}
/* A clean, single fade off the destination. The mark never jumps. */
html.pt-opening #pt{opacity:0!important}
html.pt-opening #pt .pt192-core{opacity:0!important;transition:opacity 240ms ease!important}
@media(max-width:600px){
  #pt .pt192-core{padding-inline:22px!important;gap:13px!important}
  #pt .pt192-mark{width:min(49vw,188px)!important}
}
@media(prefers-reduced-motion:reduce){
  :root{--pt201-duration:180ms}
  #pt .pt192-core{transition-duration:150ms!important}
  html.pt-opening #pt .pt192-core{transition-duration:120ms!important}
}
/* State-level override is essential: Z194/Z198 used higher-specificity
   !important transforms that caused the upward jump during entry/exit. */
html.pt-active #pt .pt192-core,
html.pt-closing #pt .pt192-core,
html.pt-covered #pt .pt192-core,
html.pt-arrival #pt .pt192-core,
html.pt-opening #pt .pt192-core{
  position:absolute!important;
  inset:0!important;
  transform:none!important;
  visibility:visible!important;
  transition:opacity 380ms ease!important;
  transition-delay:0s!important;
}
html.pt-active #pt .pt192-mask,
html.pt-closing #pt .pt192-mask,
html.pt-covered #pt .pt192-mask,
html.pt-arrival #pt .pt192-mask,
html.pt-opening #pt .pt192-mask{
  opacity:1!important;
  transform:none!important;
  clip-path:none!important;
  -webkit-clip-path:none!important;
  transition:none!important;
  transition-delay:0s!important;
}
html.pt-active #pt .pt192-line,
html.pt-closing #pt .pt192-line,
html.pt-covered #pt .pt192-line,
html.pt-arrival #pt .pt192-line,
html.pt-opening #pt .pt192-line{
  opacity:.44!important;
  transform:none!important;
  transition:none!important;
  transition-delay:0s!important;
}
html.pt-arrival #pt .pt192-core{transition:none!important}
html.pt-opening #pt .pt192-core{opacity:0!important;transition:opacity 240ms ease!important}
html:not(.pt-active):not(.pt-closing):not(.pt-covered):not(.pt-arrival):not(.pt-opening) #pt{
  visibility:hidden!important;
  opacity:0!important;
  transition:none!important;
}
@media(prefers-reduced-motion:reduce){
  html.pt-active #pt .pt192-core,
  html.pt-closing #pt .pt192-core,
  html.pt-covered #pt .pt192-core{transition-duration:150ms!important}
  html.pt-opening #pt .pt192-core{transition-duration:120ms!important}
}
/* Keep the pre-existing Z200 kitchen status correction. */
body.page-kitchen .range[data-soon='1'] .num,
body.home .soon-card[data-soon='1'] .num{display:block!important}
