/* Current-site navigation and interactive position rail, integrated with V2. */
:root{--cs-black:#111;--cs-yellow:#ffe240;--cs-cream:#f6f6f3}
body.cs-menu-open{overflow:hidden!important}
.cs-header{position:fixed;top:0;left:0;right:0;height:76px;z-index:940;background:transparent;pointer-events:none;transition:color .25s}
.cs-header-inner{height:100%;width:min(calc(100% - 64px),1440px);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}
.cs-logo{pointer-events:auto;display:inline-flex;align-items:center;white-space:nowrap;font:italic 700 35px/1 Georgia,"Times New Roman",serif!important;letter-spacing:-.05em;color:#111;text-decoration:none;transition:color .25s;position:relative;z-index:951}
.cs-logo:focus-visible,.cs-menu-button:focus-visible{outline:3px solid var(--cs-yellow);outline-offset:5px}
.cs-menu-button{pointer-events:auto;display:flex;align-items:center;gap:14px;border:1px solid #111;border-radius:999px;padding:11px 17px;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font:500 13px/1.3 Arial,sans-serif;color:#111;cursor:pointer;transition:background .25s,color .25s,transform .3s;position:relative;z-index:951}
.cs-menu-button:hover{background:#111;color:#fff;transform:translateY(-1px)}
.cs-menu-lines{display:grid;gap:4px}.cs-menu-lines i{width:16px;height:1px;background:currentColor;display:block;transition:transform .35s}
body.cs-menu-open .cs-menu-lines i:first-child{transform:translateY(2.5px) rotate(45deg)}body.cs-menu-open .cs-menu-lines i:last-child{transform:translateY(-2.5px) rotate(-45deg)}
body.cs-on-dark:not(.cs-menu-open) .cs-logo{color:#fff}
body.cs-menu-open .cs-logo{color:#fff}
.cs-menu-panel{position:fixed;inset:0;z-index:930;background:#111;color:#f6f6f3;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s,visibility .35s;display:flex;align-items:flex-end;overflow:auto}
body.cs-menu-open .cs-menu-panel{opacity:1;visibility:visible;pointer-events:auto}
.cs-menu-layout{width:min(calc(100% - 64px),1440px);margin:104px auto 7vh;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:min(9vw,100px);align-items:end}
.cs-menu-panel nav{display:flex;flex-direction:column}
.cs-menu-panel nav a{display:flex;align-items:center;justify-content:space-between;gap:16px;font:500 clamp(38px,5.1vw,76px)/1.02 Arial,"Helvetica Neue",sans-serif;letter-spacing:-.055em;text-decoration:none;color:inherit;border-bottom:1px solid #ffffff44;padding:7px 0 12px;transition:padding-left .25s,color .25s}
.cs-menu-panel nav a:hover,.cs-menu-panel nav a:focus-visible,.cs-menu-panel nav a[aria-current=location]{padding-left:14px;color:var(--cs-yellow)}
.cs-menu-panel nav a span{font:400 11px/1.5 Arial,sans-serif;letter-spacing:.03em;color:#a1a1a1;white-space:nowrap}
.cs-menu-meta{align-self:end;font-size:13px;line-height:1.8;color:#bdbdbd}.cs-menu-meta strong{display:block;color:white;font-weight:500;font-size:16px;margin-bottom:12px}.cs-menu-meta p{margin:0 0 30px}
.cs-menu-closer{border:1px solid #888;background:transparent;color:white;border-radius:999px;padding:10px 18px;cursor:pointer;font-size:12px}
.cs-header-space{height:76px}.cs-anchor{scroll-margin-top:95px}
.cs-progress-rail{position:fixed;right:9px;top:24%;height:52%;width:3px;z-index:890;background:rgba(100,100,100,.3);pointer-events:none}
.cs-progress-fill{position:absolute;inset:0;background:var(--cs-yellow);transform:scaleY(0);transform-origin:top;will-change:transform}
.cs-progress-rail:before{content:"SCROLL";position:absolute;right:-5px;top:-54px;writing-mode:vertical-rl;font:700 9px Arial,sans-serif;letter-spacing:.15em;color:#787878}
.cs-position{position:fixed;right:21px;bottom:26px;z-index:890;display:flex;flex-direction:column;align-items:flex-end;gap:5px;pointer-events:none;color:#666;text-shadow:0 1px 5px #fff7;font:700 10px/1.3 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.cs-position-section{font-size:11px;color:#111}.cs-position-percent{font-variant-numeric:tabular-nums}
body.cs-on-dark .cs-position,body.cs-on-dark .cs-position-section{color:#eee;text-shadow:0 1px 4px #000}
.cs-to-top{position:fixed;left:22px;bottom:23px;z-index:875;border:1px solid #9999;border-radius:999px;background:#fffffff0;color:#111;min-height:43px;padding:8px 13px;display:flex;align-items:center;gap:14px;cursor:pointer;font:500 11px Arial,sans-serif;backdrop-filter:blur(10px);box-shadow:0 4px 12px #0001;transition:transform .25s,opacity .25s}
.cs-to-top:hover{transform:translateY(-4px)}.cs-to-top[hidden]{display:none}
.cs-floating-contact{position:fixed;right:26px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:875;padding:12px 17px;background:rgba(255,255,255,.94);color:#111;border:1px solid #111;border-radius:999px;font:500 12px Arial,sans-serif;text-decoration:none;box-shadow:0 5px 20px #0002;backdrop-filter:blur(12px);transition:transform .3s,background .3s}
.cs-floating-contact:hover{transform:translateY(-4px);background:var(--cs-yellow)}
body.cs-menu-open .cs-progress-rail,body.cs-menu-open .cs-position,body.cs-menu-open .cs-to-top,body.cs-menu-open .cs-floating-contact,body:has(.lightbox-v2:not([hidden])) .cs-to-top,body:has(.v2-gallery-modal:not([hidden])) .cs-to-top{visibility:hidden}
body.cs-leaving main,body.cs-leaving footer{opacity:0;transform:translateY(8px);transition:opacity .24s,transform .24s}
/* Existing V2 progress indicator replaced with one stable, responsive rail */
.reading-track,.page-fraction,body>.reading-progress,body>.page-return{display:none!important}
@media(max-width:700px){.cs-header{height:68px}.cs-header-inner,.cs-menu-layout{width:calc(100% - 40px)}.cs-header-space{height:68px}.cs-logo{font-size:31px!important}.cs-menu-button{padding:10px 15px}.cs-menu-layout{display:block;margin:106px auto 35px}.cs-menu-panel{align-items:stretch}.cs-menu-panel nav a{font-size:clamp(38px,10vw,54px);padding:12px 0}.cs-menu-meta{margin-top:28px;font-size:11px}.cs-menu-meta p{margin-bottom:15px}.cs-progress-rail{left:5px;right:auto;top:24%;height:52%;width:3px}.cs-progress-rail:before{display:none}.cs-position{right:14px;bottom:18px}.cs-position-section{font-size:10px}.cs-to-top{left:17px;bottom:20px;padding:9px 12px;min-height:44px}.cs-to-top span{display:none}.cs-floating-contact{right:14px;bottom:calc(16px + env(safe-area-inset-bottom));padding:11px 13px;font-size:11px}.cs-anchor{scroll-margin-top:79px}}
@media(max-height:650px){.cs-menu-panel nav a{font-size:clamp(28px,4vw,45px);padding:4px 0 8px}.cs-menu-meta p{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){.cs-header,.cs-menu-panel,.cs-logo,.cs-menu-button,.cs-menu-lines i,.cs-progress-fill,.cs-to-top,.cs-floating-contact{transition:none!important}body.cs-leaving main,body.cs-leaving footer{transition:none;transform:none}}

/* Contrast-aware logo: default dark on white. JS samples the background
   directly below the logo instead of using the middle of the viewport. */
.cs-header .cs-logo,
body.cs-on-dark:not(.cs-logo-on-dark):not(.cs-menu-open) .cs-header .cs-logo { color:#111 !important; }
body.cs-logo-on-dark .cs-header .cs-logo,
body.cs-menu-open .cs-header .cs-logo { color:#fff !important; }

/* V2 Section / Progress integrated into the top-right Menu control. */
.cs-menu-button{width:170px;min-height:44px;gap:13px;justify-content:space-between;font-variant-numeric:tabular-nums}
.cs-menu-status{display:inline-flex;align-items:center;gap:5px;min-width:0;font:700 11px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.065em;text-transform:uppercase;white-space:nowrap}
.cs-menu-status-section{min-width:0;max-width:115px;overflow:hidden;text-overflow:ellipsis}
.cs-menu-status-separator{opacity:.48;font-weight:400}
.cs-menu-status-percent{min-width:4ch;text-align:right;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.cs-menu-lines{flex:0 0 auto}
.cs-position{display:none!important}
@media(max-width:700px){
  .cs-menu-button{width:146px;min-height:42px;padding:9px 13px;gap:10px}
  .cs-menu-status{font-size:10px;gap:4px}
  .cs-menu-status-section{max-width:77px}
  .cs-menu-status-percent{min-width:4ch}
}
