/* Chrome shared by every page: the nav pill, its fit/burger behaviour, and
 * the footer. Page-specific styling stays in the page.
 *
 * Lifted out of the per-page <style> blocks the design project repeats on
 * each file — twenty copies of the same rules is twenty chances for two of
 * them to disagree.
 */

/* Logo wordmark unfurls on hover */
.lm .lm-w{max-width:0; opacity:0; transform:translateX(-8px); transition:max-width .5s cubic-bezier(.32,.72,0,1), opacity .32s ease, transform .5s cubic-bezier(.32,.72,0,1)}
.lm:hover .lm-w, .lm:focus-visible .lm-w{max-width:84px; opacity:1; transform:none}
.lm:hover{opacity:1}

.sn-links{display:flex; gap:16px; font-size:13.5px; color:#F2EEE7; min-width:0; overflow:hidden}
.sn-links a{white-space:nowrap; flex:none}
/* Hidden until the fit pass has measured; without this the links flash at
   full width on a phone before being culled. */
@media (max-width:1240px){.sn-links:not([data-fit]){display:none}}

@keyframes snDescendIn{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
.sn-menu{max-width:1160px; margin:8px auto 0; border-radius:18px; padding:8px; display:flex; flex-direction:column; background:linear-gradient(152deg,rgba(32,27,23,.96) 0%,rgba(26,22,19,.9) 100%); backdrop-filter:blur(24px) saturate(1.4); -webkit-backdrop-filter:blur(24px) saturate(1.4); border:0.5px solid rgba(255,248,236,.095); border-top-color:rgba(255,248,236,.125); box-shadow:0 1px 0 rgba(255,248,236,.09) inset, 0 20px 44px -18px rgba(0,0,0,.68); animation:snDescendIn .28s cubic-bezier(.32,.72,0,1) both}
/* An author display:flex beats the UA rule `hidden` relies on, so the panel
   has to be told to stay shut explicitly. */
.sn-menu[hidden]{display:none}
.sn-menu a{display:flex; align-items:center; min-height:46px; padding:0 14px; border-radius:12px; font-size:15px; color:#F2EEE7}
.sn-menu a:hover{background:rgba(255,248,236,.065); opacity:1}

/* The burger ships visible so a JS failure degrades to "menu always
   available" rather than a phone with no navigation at all. The fit pass
   hides it once it knows every link is showing. */

@media (max-width:700px){
  .sn-wrap{padding:10px 12px 0}
  .sn-shell{gap:10px; min-height:52px; padding:0 5px 0 16px}
  .sn-dl{min-height:42px; padding:0 15px; font-size:13px}
  .sn-logo svg{width:21px; height:18.5px}
  .lm .lm-w{display:none}
}
@media (prefers-reduced-motion: reduce){.lm .lm-w{transition-duration:.01ms}}

/* The page you are on. aria-current is set by the build; without a visible
   counterpart the nav gives no sense of place, which on a deep page reads
   as the nav being wrong rather than terse. */
.sn-links a[aria-current]{color:#F2EEE7; font-weight:500; text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; text-decoration-color:rgba(19,18,17,.35)}
.sn-links a:not([aria-current]){color:#D3CCC1}
.sn-menu a[aria-current]{background:rgba(255,248,236,.078); font-weight:500}

/* Phone numbers never break at their dashes (Sep 26, 2026). */
a[href^="tel:"]{white-space:nowrap}
