/* Wallpaper gestures leave vertical scrolling and pinch zoom to the browser. */
.hero{touch-action:pan-y pinch-zoom}
.hero .hero-reveal-art{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;background:#173845;overflow:hidden;transition:opacity 220ms ease}
.hero .hero-reveal-art img{position:relative;display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.hero.hero-wallpaper-revealed .hero-reveal-art{opacity:1}
.hero.hero-wallpaper-revealed::before{z-index:1;background:none}
.hero.hero-wallpaper-revealed #hero-next-booking{visibility:hidden;pointer-events:none}
/* Keep the supplied artwork bright; contrast is local to the information. */
.hero.hero-wallpaper-revealed .loc,.hero.hero-wallpaper-revealed .sub{width:fit-content;max-width:calc(100% - 58px);padding:4px 8px;border-radius:8px;background:#061925a6;color:#fff;text-shadow:none}
.hero .hero-wallpaper-arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:6px;background:transparent;color:#fff;font-size:27px;line-height:1;text-shadow:0 1px 4px #061925;opacity:0;pointer-events:none;touch-action:pan-y pinch-zoom}
.hero .hero-wallpaper-previous{left:0}.hero .hero-wallpaper-next{right:0}
@media(hover:hover) and (pointer:fine){.hero:hover .hero-wallpaper-arrow{opacity:.6;pointer-events:auto}.hero .hero-wallpaper-arrow:hover{opacity:1}}
.hero .hero-wallpaper-arrow:focus-visible{opacity:1;pointer-events:auto;outline:2px solid #fff;outline-offset:-5px}
@media(prefers-reduced-motion:reduce){.hero .hero-reveal-art{transition:none}}

/* A stable frame prevents booking visibility or theme swaps changing hero height. */
.hero{height:calc(clamp(430px,100vw,510px) + env(safe-area-inset-top));min-height:calc(clamp(430px,100vw,510px) + env(safe-area-inset-top));background-position:75% top}

/* The fixed theme frame must not reserve space for hidden booking/banner rows.
   Keep the sunrise row against the bottom of the same frame. */
.hero.hero-wallpaper-revealed #hero-next-booking,
.hero.hero-wallpaper-revealed .tournament-banner{display:none!important}

/* Sunrise and the next-session portrait rail share one frame across wallpapers. */
.hero .hero-sunrise{
 width:100%;max-width:100%;display:grid;grid-template-columns:max-content minmax(0,1fr);
 align-items:center;justify-content:start;column-gap:14px;row-gap:0;margin-top:auto;
 color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.45);font-size:16px;pointer-events:none
}
.hero.has-tournament-banner .hero-sunrise{margin-top:0}
.hero.hero-wallpaper-revealed .hero-sunrise{
 position:relative;isolation:isolate;margin-top:auto;flex-shrink:0;text-shadow:none
}
.hero.hero-wallpaper-revealed .hero-sunrise::after{
 content:'';position:absolute;inset:-8px -10px;z-index:-1;border-radius:12px;background:#061925a6;pointer-events:none
}
.hero .hero-sunrise a{pointer-events:auto}
.sunrise-daylight-link{color:inherit;text-decoration:none;cursor:pointer}
.sunrise-daylight-link:hover{text-decoration:underline}
.sunrise-daylight-link:focus-visible{outline:2px solid #fff;outline-offset:4px;border-radius:4px}
.hero .hero-sunrise-label{grid-column:1;grid-row:1;display:block;margin-bottom:3px;color:#e4edf2;font-weight:550}
.hero .hero-sunrise-row{grid-column:1;grid-row:2;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px 16px}
.hero-sunrise-time{flex:0 0 auto;white-space:nowrap;font-weight:700;font-variant-numeric:tabular-nums}
@media(max-width:600px){
 .hero .hero-sunrise{font-size:14px;line-height:1.4}
 .hero-sunrise-time{color:#fff}
}
@media(min-width:601px){.hero .hero-sunrise{flex-shrink:0}}
.hero-playing-portraits{display:none}
.hero .hero-playing-portraits:not([hidden]){grid-column:2;grid-row:1 / span 2;display:flex;align-items:center;justify-self:end;justify-content:flex-start;flex-wrap:nowrap;min-width:0;min-height:44px;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;padding:3px 0 3px 7px;text-decoration:none}
.hero-playing-face{position:relative;isolation:isolate;display:block;flex:0 0 36px;width:36px;height:36px;overflow:hidden;margin-left:-7px;border:2px solid #fff4dc;border-radius:50%;background:#fff4dc;box-shadow:0 2px 7px #06192550}
.hero-playing-face img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:1}
/* Saved thumbnails already crop the upper portrait; tighten only the circular icon. */
.hero-playing-face .hero-playing-guest-picture{transform:scale(1.5);transform-origin:center top;border-radius:0}
.hero-playing-initials{position:absolute;inset:0;display:grid;place-items:center;font-size:11px;font-weight:750;color:#0a1e2d;text-shadow:none}
.hero-playing-portraits:focus-visible{outline:3px solid #fff;outline-offset:3px;border-radius:24px}
