/* One shared menu surface; its contents crossfade without collapsing the panel. */
:root { --settle: cubic-bezier(.22,1,.36,1); }
.site-header,.site-header.scrolled,.site-header.menu-open { transition: top .75s var(--settle); }
.header-shell { position:relative; width:min(1240px,100%); margin:auto; transition:width .75s var(--settle); }
.site-header.scrolled .header-shell { width:min(940px,100%); }
.header-shell>.header-inner { width:100%; max-width:none; transition:min-height .75s var(--settle),padding .75s var(--settle),border-radius .75s var(--settle),background .6s,box-shadow .6s; }
.site-header.scrolled .header-inner { max-width:none; min-height:64px; padding:9px 10px 9px 20px; border-radius:18px; }
.site-header .club-logo { transition:width .75s var(--settle); }
.site-header.scrolled .club-logo { width:150px; }
.header-book { border-radius:14px; transition:border-radius .75s var(--settle),min-height .75s var(--settle),padding .75s var(--settle),background .3s,box-shadow .3s; }
.site-header.scrolled .header-book { min-height:44px; border-radius:12px; padding:8px 12px 8px 16px; }
.header-book:hover { transform:none; }
.nav-trigger { border:0; background:transparent; color:inherit; font-size:12px; font-weight:400; line-height:1.5; white-space:nowrap; padding:12px 14px; border-radius:12px; transition:background .3s,color .3s,padding .75s var(--settle); }
.nav-trigger:hover,.nav-trigger.is-open { background:#f5fff21a; }
.nav-trigger.is-current { color:var(--lime); }
.nav-trigger.is-open .nav-chevron { transform:rotate(180deg); }
.site-header.scrolled .nav-trigger { padding:10px 11px; }
.nav-panel { position:absolute; top:calc(100% + 9px); left:0; right:0; height:0; border-radius:22px; background:#102e24ed; color:var(--cream); overflow:hidden; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-9px); border-color:transparent; transition:height .48s var(--settle),opacity .28s ease,transform .48s var(--settle),visibility 0s .48s,border-color .3s; }
.nav-panel.is-open { height:236px; opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); border-color:#ffffff32; transition-delay:0s; }
.nav-pane { position:absolute; inset:0; display:grid; grid-template-columns:.85fr 1.05fr 1.4fr; gap:30px; padding:20px; opacity:0; transform:translateY(9px); pointer-events:none; transition:opacity .22s ease,transform .36s var(--settle); }
.nav-pane.is-active { opacity:1; transform:translateY(0); pointer-events:auto; transition-delay:.07s; }
.nav-pane>img { width:100%; height:194px; object-fit:cover; border-radius:14px; filter:saturate(.8); }
.nav-pane-intro { align-self:center; padding:0 4px; }
.nav-pane-intro>.eyebrow { font-size:8px; letter-spacing:1px; line-height:1.7; color:#d8f58db0; }
.nav-pane-intro h2 { font-size:30px; letter-spacing:-.05em; margin:13px 0 12px; }
.nav-pane-intro p { font-size:12px; line-height:1.8; color:#f0f2ebb5; max-width:240px; }
.nav-pane-links { display:grid; align-content:center; }
.nav-panel-link { display:flex; justify-content:space-between; align-items:center; gap:18px; text-align:left; padding:12px 14px; border-radius:12px; color:inherit; transition:background .25s; }
.nav-panel-link:hover,.nav-panel-link:focus-visible { background:#f0f2eb0c; }
.nav-panel-link+ .nav-panel-link { border-top:1px solid #ffffff16; }
.nav-panel-link strong { font-size:13px; font-weight:500; display:block; line-height:1.6; }
.nav-panel-link small { display:block; font-size:10px; line-height:1.6; margin-top:2px; color:#f0f2eb9c; }
.nav-panel-link>span:last-child { color:var(--lime); font-size:22px; }
.site-header.scrolled .nav-pane { gap:20px; grid-template-columns:.8fr 1fr 1.45fr; }
.site-header.scrolled .nav-pane-intro h2 { font-size:27px; }

/* Preserve the size transition after the one-time scroll reveal finishes. */
.play-card,.motion-ready .play-card.scroll-reveal { transition:flex-grow .95s cubic-bezier(.4,0,.2,1),opacity .8s var(--ease),transform .8s var(--ease),box-shadow .6s ease; }
.motion-ready .play-card.scroll-reveal.is-revealed { transition-delay:0s; }
.play-card>img { transition:transform 1.1s cubic-bezier(.4,0,.2,1),filter .8s ease; }

/* A compact, continuous 18-hole navigator with a lightweight poster preview. */
.scene-dock.course-dock { display:block; padding:15px 22px 17px; overflow:visible; }
.course-dock-top { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.course-dock-top>span { font-size:11px; }
.hole-step-controls { display:flex; align-items:center; gap:13px; }
.hole-step-controls>button { display:grid; place-items:center; color:var(--cream); border:1px solid #f0f2eb35; width:27px; height:27px; border-radius:9px; font-size:16px; transition:background .25s,border-color .25s; }
.hole-step-controls>button:hover { background:#f0f2eb20; border-color:#f0f2eb90; }
#scene-count { font-size:11px; font-variant-numeric:tabular-nums; min-width:43px; text-align:center; }
#scene-count>span { color:#f0f2eb70; padding-left:3px; }
.course-dock-main { display:grid; grid-template-columns:minmax(0,1fr) 190px; align-items:center; gap:28px; margin-top:8px; }
.hole-rail-wrap { position:relative; min-width:0; }
.hole-rail { display:grid; grid-template-columns:repeat(18,minmax(0,1fr)); gap:5px; height:43px; cursor:ew-resize; touch-action:pan-y; user-select:none; -webkit-user-select:none; border-radius:5px; }
.hole-rail:focus-visible { outline:1px solid var(--lime); outline-offset:5px; }
.hole-stop { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:8px; min-width:0; }
.stop-line { display:block; width:100%; height:3px; border-radius:3px; background:#f0f2eb45; transition:background .3s,height .3s,box-shadow .3s; }
.stop-number { font-size:9px; line-height:1; font-variant-numeric:tabular-nums; color:#f0f2eb85; transition:color .3s; }
.hole-stop.is-past .stop-line { background:#d8f58d85; }
.hole-stop.is-selected .stop-line { height:5px; background:var(--lime); box-shadow:0 0 12px #d8f58d40; }
.hole-stop.is-selected .stop-number,.hole-stop.is-previewed .stop-number { color:var(--lime); }
.hole-stop.is-previewed .stop-line { background:#f0f2ebee; height:5px; }
.hole-stop.is-selected.is-previewed .stop-line { background:var(--lime); }
.rail-instructions { display:block; font-size:9px; line-height:1.6; color:#f0f2eb9c; margin-top:2px; }
.rail-touch-hint { display:none; }
.hole-hover-preview { --preview-half:112px; width:calc(var(--preview-half) * 2); position:absolute; bottom:calc(100% + 15px); left:clamp(var(--preview-half),var(--preview-x,0%),calc(100% - var(--preview-half))); border:1px solid #ffffff3a; background:#112d24ed; box-shadow:0 12px 40px #051b1645; border-radius:15px; overflow:hidden; pointer-events:none; opacity:0; transform:translate(-50%,8px) scale(.97); transform-origin:bottom center; transition:opacity .2s ease,transform .32s var(--settle),left .25s var(--settle); z-index:5; backdrop-filter:blur(25px); -webkit-backdrop-filter:blur(25px); }
.is-previewing .hole-hover-preview { opacity:1; transform:translate(-50%,0) scale(1); }
.hole-hover-preview>img { display:block; width:100%; height:111px; object-fit:cover; filter:saturate(.8); }
.hole-hover-preview>div { padding:12px 14px 14px; }
.hole-hover-preview span { display:block; color:var(--lime); font-size:8px; letter-spacing:1px; }
.hole-hover-preview strong { display:block; font-size:14px; font-weight:500; line-height:1.4; margin:6px 0; }
.hole-hover-preview small { display:block; font-size:9px; color:#f0f2eb9c; line-height:1.6; }
.opening-film-controls { display:flex; gap:8px; }
#scene-fullscreen { font-size:17px; }
.immersive-hero.is-expanded { position:fixed; inset:0; z-index:100; margin:0; width:100vw; height:100dvh; max-height:none; min-height:0; border-radius:0; }
@media(min-width:701px) and (max-width:1100px) {
  .header-inner { gap:15px; }
  .nav-trigger { padding-left:10px; padding-right:10px; }
}
@media(max-width:980px) {
  .nav-panel { display:none; }
  .site-header.scrolled .header-shell { width:calc(100% - 24px); }
  .site-header.scrolled .header-inner { min-height:62px; padding:8px 12px 8px 18px; }
  .site-header.scrolled .club-logo { width:158px; }
  .site-header.scrolled .header-book { min-height:42px; }
}
@media(max-width:700px) {
  .site-header.scrolled .header-shell { width:100%; }
  .header-shell>.header-inner { min-height:66px; padding:9px 10px 9px 15px; gap:10px; }
  .site-header.scrolled .header-inner { min-height:60px; padding:7px 9px 7px 14px; }
  .site-header.scrolled .club-logo { width:132px; }
  .header-book,.site-header.scrolled .header-book { border-radius:11px; padding:8px 10px 8px 13px; min-height:40px; }
  .scene-dock.course-dock { padding:13px 13px 12px; bottom:65px; }
  .course-dock-top { gap:10px; }
  .course-dock-top>span { font-size:9px; }
  .hole-step-controls { gap:7px; }
  .hole-step-controls>button { width:25px; height:25px; border-radius:8px; font-size:14px; }
  #scene-count { font-size:9px; min-width:36px; }
  .course-dock-main { grid-template-columns:1fr; gap:11px; margin-top:6px; }
  .hole-rail { gap:4px; height:43px; }
  .stop-number { font-size:8px; }
  .stop-line { height:3px; }
  .rail-instructions { font-size:8px; }
  .course-dock .all-holes-link { border-left:0; border-top:1px solid #f0f2eb26; padding:10px 0 0; font-size:10px; }
  .course-dock .round-arrow { width:24px; height:24px; }
  .hole-hover-preview { --preview-half:90px; }
  .hole-hover-preview>img { height:91px; }
  .hole-hover-preview>div { padding:10px 12px 12px; }
  .hole-hover-preview strong { font-size:12px; }
  .hole-hover-preview small { font-size:8px; }
  .hero-hole-info { bottom:270px; }
}
@media(max-width:380px) {
  .header-shell>.header-inner { padding:9px 8px 9px 11px; gap:8px; }
  .site-header.scrolled .header-inner { padding:7px 8px 7px 11px; }
  .site-header.scrolled .club-logo { width:116px; }
  .header-book,.site-header.scrolled .header-book { padding:8px 8px 8px 11px; }
  .scene-dock.course-dock { padding-left:11px; padding-right:11px; }
  .course-dock-top>span { font-size:8px; }
  .hole-step-controls { gap:5px; }
  .hole-step-controls>button { width:23px; height:23px; }
  .hole-rail { gap:3px; }
  .stop-number { font-size:7px; }
  .hero-hole-info { bottom:268px; }
}
@media(hover:none) {
  .rail-desktop-hint { display:none; }
  .rail-touch-hint { display:inline; }
}
@media(prefers-reduced-motion:reduce) {
  .site-header,.header-shell,.header-shell>.header-inner,.site-header .club-logo,.header-book,.nav-trigger,.nav-panel,.nav-pane,.hole-hover-preview,.stop-line,.play-card,.motion-ready .play-card.scroll-reveal,.play-card>img { transition:none; }
}
