/* Genuine page edges and independently blended editorial controls.
   Do not put these links inside a transformed/opaque white preview panel:
   the blend must see the composed homepage photographs. */
.edge-sheet{visibility:visible;--peek:0px;transition:transform 850ms var(--ease),opacity 300ms,visibility 300ms}
.garage-sheet.edge-sheet{transform:translate3d(calc(100% - 18px - var(--peek)),0,0)}
.ranking-sheet.edge-sheet{transform:translate3d(calc(-100% + 12px + var(--peek)),0,0)}
.edge-sheet.is-resting{transition:opacity 300ms,visibility 300ms}
.edge-sheet:not(.is-open) .sheet-scroll{pointer-events:none;overflow:hidden}
.edge-sheet:not(.is-open)>.vertical-close{visibility:hidden;pointer-events:none}
.edge-sheet.is-open .sheet-scroll{pointer-events:auto;overflow:auto}
.edge-entry{position:fixed;z-index:32;top:0;transform:translate3d(0,var(--edge-track-y,38vh),0);writing-mode:vertical-rl;text-orientation:mixed;direction:ltr;unicode-bidi:plaintext;white-space:nowrap;padding:7px 5px;font-size:clamp(16px,1.08vw,20px);font-weight:600;letter-spacing:.01em;line-height:1.15;color:#fff;background:transparent;mix-blend-mode:difference;will-change:transform;transition:opacity 220ms,visibility 220ms}
.edge-entry-left{left:calc(17px + var(--peek,0px))}
.edge-entry-left::before{content:"";position:absolute;right:100%;top:calc(-1 * var(--edge-track-y,38vh));height:100dvh;width:calc(18px + var(--peek,0px));background:transparent}
.edge-entry-right{right:calc(23px + var(--peek,0px))}
.edge-entry-right::before{content:"";position:absolute;left:100%;top:calc(-1 * var(--edge-track-y,38vh));height:100dvh;width:calc(24px + var(--peek,0px));background:transparent}
.edge-entry:hover span{text-decoration:underline;text-underline-offset:4px}
.edge-entry:focus-visible{outline-color:#fff;outline-offset:1px}
/* The entry is the closed sheet's handle. Open sheets use their real CLOSE;
   the opposite page stays available at the other edge. */
body[data-view=garage] #garage-entry,body[data-view=ranking] #ranking-entry,
body[data-view=garage-ranking] .edge-entry,
body[data-view=detail] .edge-entry,body[data-view=compare] .edge-entry{opacity:0;visibility:hidden;pointer-events:none}
body[data-view=detail] .edge-sheet,body[data-view=compare] .edge-sheet{opacity:0;visibility:hidden;pointer-events:none}
/* Entire controls, not their descendants, form the blending group. All of
   their ancestors here remain transparent and untransformed. White source
   ink becomes black on the page and inverts the photograph under each glyph. */
.site-nav{mix-blend-mode:difference;color:#fff;font-size:clamp(15px,1.02vw,19px);font-weight:600;line-height:1.22;letter-spacing:0;transition:transform 850ms var(--ease),opacity 220ms}
.site-nav>a::after{background:currentColor}
.site-nav a:focus-visible{outline-color:currentColor}
.home-footnote{position:fixed;color:#fff;mix-blend-mode:difference;background:transparent;z-index:18;width:174px;font-size:15px;line-height:1.42;letter-spacing:0}
.home-footnote>span{color:inherit}
.home-footnote button,.home-footnote>a{font-size:15px;font-weight:600;color:inherit}
.ranking-link{font-size:clamp(15px,1.05vw,19px);font-weight:600;letter-spacing:0}
body:not([data-view=home]) .home-footnote{opacity:0;visibility:hidden;pointer-events:none}
body[data-view=garage] .site-nav,body[data-view=ranking] .site-nav{opacity:1}
@media(max-width:1100px){.home-footnote{width:154px;font-size:14px}.home-footnote button,.home-footnote>a{font-size:14px}}
@media(max-width:700px){
 .edge-entry{display:none}
 .edge-sheet:not(.is-open){visibility:hidden}
 .garage-sheet.edge-sheet{transform:translate3d(103%,0,0)}
 .ranking-sheet.edge-sheet{transform:translate3d(-105%,0,0)}
 .site-nav{font-size:14px}
 .home-footnote{width:145px;font-size:13px;bottom:28vh}
 .home-footnote>span{color:inherit}
 .home-footnote button,.home-footnote>a{font-size:13px}
 .ranking-link{font-size:14px}
}
@media(pointer:coarse),(prefers-reduced-motion:reduce){.edge-entry{will-change:auto;transform:translate3d(0,38vh,0)}}
@media(max-height:560px) and (min-width:701px){.home-footnote{display:none}}
