/* Partnership lockup: the SVG carries the full identity without repeated copy. */
.jp{min-width:0}.jp__logo{display:block;height:108px;object-fit:cover;object-position:center;max-width:108px;width:100%}.jp__identity{display:grid;gap:8px}.jp__identity>span,.jp__identity small{color:var(--lime);font:500 9px/1 var(--mono);letter-spacing:.14em}.jp__identity p{align-items:center;color:var(--cream);display:flex;font:600 12px/1 var(--sans);gap:9px;letter-spacing:.08em;margin:0}.jp__identity p b{font:600 12px/1 var(--sans);margin:0}.jp__identity p i{color:var(--lime);font-size:15px;font-style:normal}.jp__identity small{color:#b6a9ae;font-size:7px;letter-spacing:.1em}
@media(max-width:850px){.jp{gap:14px;padding-left:18px}.jp__logo{height:84px;max-width:84px}.jp__identity p,.jp__identity p b{font-size:10px}.jp__identity p{gap:6px}.jp__identity>span{font-size:8px}}

/* Keep the hero ticket inside the image at intermediate desktop widths. */
@media (min-width:851px){.hero__ticket{left:24px}}

/* A little movement, kept deliberately quiet so the food remains the focus. */
.hero__badge{align-items:center;background:rgba(28,13,20,.86);border:1px solid rgba(255,248,239,.52);border-radius:50%;color:var(--cream);display:flex;flex-direction:column;gap:5px;height:104px;justify-content:center;position:absolute;right:24px;top:24px;width:104px;z-index:2}.hero__badge:before{border:1px dashed rgba(217,246,92,.72);border-radius:50%;content:"";inset:6px;position:absolute;animation:rio-seal-turn 20s linear infinite}.hero__badge span,.hero__badge b{position:relative;z-index:1}.hero__badge span{font:500 8px/1 var(--mono);letter-spacing:.1em}.hero__badge b{color:var(--lime);font-size:12px;line-height:1}.hero__visual img{animation:rio-image-breathe 12s ease-in-out infinite alternate;transform-origin:center}.hero__ticket{animation:rio-ticket-float 5s ease-in-out infinite}.button{overflow:hidden;position:relative;transition:background-color .24s ease,border-color .24s ease,color .24s ease,transform .24s ease}.button:hover{transform:translateY(-3px)}.button span{display:inline-block;transition:transform .24s ease}.button:hover span{transform:translate(3px,-3px)}.favourite{transition:box-shadow .3s ease,transform .3s cubic-bezier(.2,.8,.2,1)}.favourite__image{overflow:hidden}.favourite__image img{transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .4s ease}.favourite:hover{box-shadow:10px 12px 0 rgba(28,13,20,.16);transform:translateY(-7px)}.favourite:hover .favourite__image img{filter:saturate(1.09);transform:scale(1.07)}.favourite a span,.text-link span{display:inline-block;transition:transform .24s ease}.favourite:hover a span,.text-link:hover span{transform:translate(4px,-4px)}.story-panel__steps p{transition:border-color .25s ease,transform .25s ease}.story-panel__steps p:hover{border-color:var(--lime);transform:translateX(9px)}.story-panel__steps p:hover b{color:var(--lime)}.menu-rail__track span{transition:color .2s ease,transform .2s ease}.menu-rail__track span:hover{color:var(--cream);transform:rotate(-3deg) scale(1.08)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease var(--reveal-delay,0ms),transform .7s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms)}.reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes rio-image-breathe{from{transform:scale(1)}to{transform:scale(1.045)}}@keyframes rio-ticket-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}@keyframes rio-seal-turn{to{transform:rotate(360deg)}}
@media(max-width:850px){.hero__badge{right:18px;top:18px}.hero__visual img{animation:none}.favourite:hover{box-shadow:none;transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Small editorial details that respond to the page rather than competing with it. */
.scroll-meter{align-items:center;display:none;flex-direction:column;gap:9px;position:fixed;right:22px;top:45vh;z-index:20}.scroll-meter span{background:rgba(255,248,239,.22);height:76px;overflow:hidden;position:relative;width:1px}.scroll-meter span:after{background:var(--lime);content:"";height:100%;left:0;position:absolute;top:0;transform:scaleY(var(--scroll-progress,0));transform-origin:top;transition:transform .08s linear;width:100%}.scroll-meter b{color:var(--lime);font:500 8px/1 var(--mono);letter-spacing:.16em;transform:rotate(90deg)}@media(min-width:1100px) and (pointer:fine){.scroll-meter{display:flex}}

/* Desktop-density refinements, loaded after the base system. */
.hero__proof{border-top:1px solid rgba(255,255,255,.23);display:grid;gap:12px;grid-template-columns:1fr 1fr 1.18fr;margin-top:45px;padding-top:16px}.hero__proof span{color:#c8bbc0;font:500 9px/1.35 var(--mono);letter-spacing:.07em}.hero__proof b{color:var(--lime);display:block;font:700 25px/.9 var(--display);letter-spacing:-.05em;margin-bottom:6px}.hero__proof span:last-child b{font:700 16px/1 var(--mono);letter-spacing:-.06em;margin-top:7px}.hero__ticket{background:var(--lime);bottom:54px;color:var(--ink);display:flex;flex-direction:column;left:-32px;padding:20px;position:absolute;width:175px;z-index:2}.hero__ticket span,.hero__ticket small{font:500 8px var(--mono);letter-spacing:.12em}.hero__ticket b{font:700 30px/.8 var(--display);letter-spacing:-.07em;margin:19px 0}.menu-rail__track{animation:none;justify-content:space-between;width:100%}.menu-rail__track i{font-size:10px}@media(max-width:850px){.hero__proof{grid-template-columns:1fr 1fr}.hero__proof span:last-child{display:none}.hero__ticket{bottom:23px;left:auto;right:20px;width:145px}.hero__ticket b{font-size:25px}.menu-rail__track{animation:marquee 25s linear infinite;justify-content:flex-start;width:max-content}}@media(max-width:500px){.hero__proof{margin-top:32px}.hero__proof b{font-size:21px}.hero__ticket{display:none}}
