/* memorial-core.css - the SHARED structure for every sentinel gate.
 *
 * badge.nw, ladder.nw, pulse.nw and salute.nw all render a roll of names, a
 * wall, a grid of cards, a detail page with tabs, an organisation directory
 * and a map. That is one set of components, not four. This file holds them.
 *
 * COLOURS ARE NOT HERE. Every colour is a var(--mem-*) resolved by the gate's
 * own theme file, loaded after this one. Badge is gold on near-black, ladder
 * is fire on charcoal; the markup is identical.
 *
 * Extracted from badge.nw/assets/css/badge-core.css on 2026-08-04. The prefix
 * changed from bdg- to mem- because these components were never badge's - a
 * class called bdg-officer-card is the same object as a firefighter card, and
 * naming it after one memorial is how four parallel stylesheets begin.
 *
 * RENAMES, for anyone reading old markup:
 *   bdg-officer- -> mem-subject-    a being, of any kind
 *   bdg-agency-  -> mem-org-        an agency, department, or unit
 *   bdg-vigil-   -> mem-wall-       the wall of names
 *   bdg-k9-      -> mem-animal-
 *   everything else bdg- -> mem-
 */

[data-size="sm"]{font-size:13px} [data-size="md"]{font-size:15px} [data-size="lg"]{font-size:17px} [data-size="xl"]{font-size:20px}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth}

body{font-family:var(--nw-font-sans,system-ui,sans-serif);background:var(--mem-bg);color:var(--mem-t1);font-size:inherit;line-height:1.6;transition:background var(--mem-trans),color var(--mem-trans)}

a{color:var(--mem-gold);text-decoration:none} a:hover{text-decoration:underline}

img{display:block;max-width:100%}

.mem-chrome{display:flex;flex-direction:column;min-height:100vh}

.mem-main{flex:1}

.mem-topbar{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--mem-topbar-h);background:var(--mem-topbar-bg);border-bottom:1px solid var(--mem-topbar-bd);display:flex;flex-direction:column;align-items:stretch;padding:0;gap:0;transition:background var(--mem-trans),height var(--mem-trans)}

.mem-topbar-left{flex-shrink:0}

.mem-logo{display:flex;align-items:center;text-decoration:none}
.mem-logo:hover{text-decoration:none}
.mem-logo-stack{display:flex;flex-direction:column;gap:.05rem;line-height:1}
.mem-logo-wordmark{font-size:1.35rem;font-weight:700;color:var(--mem-gold);letter-spacing:.12em;font-family:'montserrat',sans-serif}
.mem-logo-dot{color:var(--mem-t3);font-size:.85rem}
.mem-logo-by{font-size:.58rem;color:var(--mem-t3);letter-spacing:.06em;font-weight:400;font-family:'montserrat',sans-serif}

.mem-nav{display:flex;align-items:center;justify-content:center;gap:2px;flex:1;min-width:0}

.mem-nav-link{padding:.25rem .875rem;border-radius:var(--mem-radius);color:var(--mem-t2);font-size:.8125rem;transition:all var(--mem-trans);text-decoration:none}

.mem-nav-link:hover{color:var(--mem-t1);background:var(--mem-surface2);text-decoration:none}

.mem-nav-link.active{color:var(--mem-gold);background:var(--mem-surface2)}

.mem-topbar-controls{display:flex;align-items:center;gap:.5rem;margin-left:auto}

.mem-signin-btn{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mem-t2);padding:.38rem .9rem;border:1px solid var(--mem-border);border-radius:var(--mem-radius);font-family:sans-serif;text-decoration:none;transition:all var(--mem-trans)}

.mem-signin-btn:hover{color:var(--mem-gold);border-color:var(--mem-gold);text-decoration:none;background:var(--mem-pill-bg)}

.mem-auth-wrap{position:relative}

.mem-auth-btn{display:flex;align-items:center;gap:.5rem;background:transparent;border:1px solid var(--mem-border);border-radius:var(--mem-radius);padding:.3rem .6rem .3rem .3rem;cursor:pointer;transition:border-color var(--mem-trans)}

.mem-auth-btn:hover{border-color:var(--mem-gold)}

.mem-auth-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover}

.mem-auth-initials{width:26px;height:26px;border-radius:50%;background:var(--mem-gold);color:var(--mem-bg);font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:sans-serif}

.mem-auth-name{font-size:.75rem;color:var(--mem-t1);font-family:sans-serif;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.mem-auth-dropdown{display:none;position:absolute;top:calc(100% + 6px);right:0;width:220px;background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);box-shadow:var(--mem-shadow);z-index:200}

.mem-auth-dropdown.open{display:block}

.mem-auth-drop-head{padding:.75rem 1rem;border-bottom:1px solid var(--mem-border)}

.mem-auth-drop-name{font-size:.82rem;font-weight:600;color:var(--mem-t1);font-family:sans-serif}

.mem-auth-drop-une{font-size:.7rem;color:var(--mem-gold);font-family:sans-serif;letter-spacing:.04em}

.mem-auth-drop-item{display:block;padding:.55rem 1rem;font-size:.78rem;color:var(--mem-t2);font-family:sans-serif;text-decoration:none;transition:background var(--mem-trans),color var(--mem-trans)}

.mem-auth-drop-item:hover{background:var(--mem-surface2);color:var(--mem-t1);text-decoration:none}

.mem-auth-drop-signout{border-top:1px solid var(--mem-border);color:var(--mem-t3)}

.mem-size-controls{display:flex;align-items:center;gap:2px}

.mem-size-btn{background:none;border:1px solid var(--mem-border);color:var(--mem-t3);cursor:pointer;border-radius:var(--mem-radius);padding:2px 7px;line-height:1.4;transition:all var(--mem-trans)}

.mem-size-btn[data-size="sm"]{font-size:10px} .mem-size-btn[data-size="md"]{font-size:12px} .mem-size-btn[data-size="lg"]{font-size:14px} .mem-size-btn[data-size="xl"]{font-size:16px}

.mem-size-btn:hover,.mem-size-btn.active{background:var(--mem-surface2);color:var(--mem-gold);border-color:var(--mem-gold)}

.mem-ctrl-btn{background:none;border:1px solid var(--mem-border);border-radius:var(--mem-radius);width:30px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--mem-trans)}

.mem-ctrl-btn:hover{background:var(--mem-surface2);border-color:var(--mem-gold)}

.mem-ctrl-btn img{width:15px;height:15px}

[data-theme="dark"] .mem-ctrl-btn img{filter:invert(65%)} [data-theme="dark"] .mem-ctrl-btn:hover img{filter:invert(85%)}

[data-theme="light"] .mem-ctrl-btn img{filter:invert(30%)} [data-theme="light"] .mem-ctrl-btn:hover img{filter:invert(10%)}

[data-theme="dark"] .mem-icon-light{display:block} [data-theme="dark"] .mem-icon-dark{display:none}

[data-theme="light"] .mem-icon-light{display:none} [data-theme="light"] .mem-icon-dark{display:block}

body:not(.is-fullscreen) .mem-icon-fs-enter{display:block} body:not(.is-fullscreen) .mem-icon-fs-exit{display:none}

body.is-fullscreen .mem-icon-fs-enter{display:none} body.is-fullscreen .mem-icon-fs-exit{display:block}

body.is-fullscreen .mem-topbar{height:36px;padding:0}

body.is-fullscreen .mem-nav{display:none}

body.is-fullscreen .mem-main{margin-top:36px}

.mem-hero{background:var(--mem-hero-bg);padding:6rem 2rem 5rem;min-height:72vh;display:flex;align-items:center;justify-content:center}

.mem-hero-inner{max-width:800px;text-align:center}

.mem-hero-eyebrow{display:inline-block;margin-bottom:1.5rem;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mem-gold);border:1px solid var(--mem-gold-dim);padding:.3rem 1rem;border-radius:2px}

.mem-hero-headline{font-size:clamp(2.75rem,7vw,5rem);font-weight:900;line-height:1.02;color:var(--mem-t1);letter-spacing:-.03em;margin-bottom:1.75rem}

[data-theme="dark"] .mem-hero-headline{text-shadow:0 2px 24px rgba(0,0,0,0.6)}

.mem-hero-sub{font-size:1.05rem;color:var(--mem-t2);max-width:660px;margin:0 auto 2rem;line-height:1.75}

.mem-hero-pills{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.5rem}

.mem-pill{background:var(--mem-pill-bg);border:1px solid var(--mem-pill-bd);color:var(--mem-t2);font-size:.75rem;padding:.25rem .75rem;border-radius:20px}

.mem-hero-meta{font-size:.75rem;color:var(--mem-t3);letter-spacing:.04em}

.mem-stats-bar{background:var(--mem-stats-bg);border-top:1px solid var(--mem-border);border-bottom:1px solid var(--mem-border);padding:2rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center}

.mem-stat-num{display:block;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:800;color:var(--mem-gold);letter-spacing:-.02em}

.mem-stat-label{display:block;font-size:.75rem;color:var(--mem-t3);margin-top:.25rem}

.mem-section-hd{text-align:center;margin-bottom:3rem}

.mem-section-title{font-size:clamp(1.4rem,3vw,1.875rem);font-weight:800;color:var(--mem-t1);letter-spacing:-.01em}

.mem-section-sub{font-size:.9rem;color:var(--mem-t3);margin-top:.5rem}

.mem-pillars{padding:5rem 2rem;background:var(--mem-bg)}

.mem-pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:var(--mem-max-w);margin:0 auto}

.mem-pillar{background:var(--mem-pillar-bg);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:2rem;transition:border-color var(--mem-trans),box-shadow var(--mem-trans)}

.mem-pillar:hover{border-color:var(--mem-gold-dim);box-shadow:var(--mem-shadow)}

.mem-pillar-fallen{border-color:var(--mem-gold-dim)}

.mem-pillar-icon{width:36px;height:36px;margin-bottom:1.25rem;opacity:.6}

[data-theme="dark"] .mem-pillar-icon{filter:invert(75%) sepia(15%) saturate(250%)}

[data-theme="light"] .mem-pillar-icon{filter:invert(25%) sepia(20%) saturate(300%) hue-rotate(200deg)}

.mem-pillar-title{font-size:1.05rem;font-weight:700;color:var(--mem-t1);margin-bottom:.75rem}

.mem-pillar-body{font-size:.875rem;color:var(--mem-t2);line-height:1.75}

.mem-scope{padding:5rem 2rem;background:var(--mem-scope-bg)}

.mem-scope-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.625rem;max-width:var(--mem-max-w);margin:0 auto}

.mem-scope-item{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius);padding:.75rem 1rem;font-size:.8125rem;color:var(--mem-t2);text-align:center;transition:all var(--mem-trans)}

.mem-scope-item:hover{border-color:var(--mem-gold-dim);color:var(--mem-gold)}

.mem-legacy-block{padding:5rem 2rem;background:var(--mem-legacy-bg)}

.mem-legacy-inner{max-width:780px;margin:0 auto;text-align:center}

.mem-legacy-title{font-size:clamp(1.2rem,2.5vw,1.6rem);font-weight:800;color:var(--mem-t1);margin-bottom:1.25rem}

.mem-legacy-body{font-size:.9375rem;color:var(--mem-t2);line-height:1.8}

.mem-coming-block{padding:5rem 2rem;background:var(--mem-coming-bg);border-top:1px solid var(--mem-border)}

.mem-coming-inner{max-width:700px;margin:0 auto;text-align:center}

.mem-coming-title{font-size:1.4rem;font-weight:800;color:var(--mem-gold);margin-bottom:1rem}

.mem-coming-body{font-size:.9rem;color:var(--mem-t2);line-height:1.8;margin-bottom:1.5rem}

.mem-coming-meta{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap;font-size:.775rem;color:var(--mem-t3)}

.mem-meta-dot{color:var(--mem-border)}

.mem-footer{background:var(--mem-footer-bg);border-top:1px solid var(--mem-border);padding:1.5rem 2rem}

.mem-footer-inner{max-width:var(--mem-max-w);margin:0 auto;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}

.mem-footer-brand{font-size:1rem;font-weight:800;color:var(--mem-footer-t1)}

.mem-footer-brand span{color:var(--mem-gold)}

.mem-footer-tagline{font-size:.8125rem;color:var(--mem-footer-t2)}

.mem-footer-copy{font-size:.7375rem;color:var(--mem-footer-t3);margin-left:auto}

.mem-building{min-height:62vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5rem 2rem}

.mem-building-icon{width:56px;height:56px;margin-bottom:2rem;opacity:.35}

[data-theme="dark"] .mem-building-icon{filter:invert(70%)}

[data-theme="light"] .mem-building-icon{filter:invert(25%)}

.mem-building-title{font-size:1.625rem;font-weight:800;color:var(--mem-t1);margin-bottom:.75rem}

.mem-building-body{font-size:.9rem;color:var(--mem-t2);max-width:520px;margin-bottom:2rem;line-height:1.7}

.mem-btn{display:inline-block;padding:.5rem 1.75rem;border-radius:var(--mem-radius);font-size:.8375rem;font-weight:700;text-decoration:none;transition:all var(--mem-trans)}

.mem-btn-outline{border:1px solid var(--mem-gold);color:var(--mem-gold)}

.mem-btn-outline:hover{background:var(--mem-gold);color:var(--mem-btn-dark2);text-decoration:none}

@media(max-width:900px){.mem-stats-bar{grid-template-columns:repeat(2,1fr)}.mem-pillar-grid{grid-template-columns:1fr}}

@media(max-width:640px){.mem-topbar{padding:0;gap:0}.mem-topbar-row{padding:0 1rem;gap:.75rem}.mem-topbar-search{padding:0 1rem}.mem-nav{display:none}.mem-stats-bar{grid-template-columns:1fr;padding:1.5rem}.mem-footer-copy{margin-left:0}}




/* ── home.php additions ─────────────────────────────────────────── */

.mem-hero-actions{margin-top:2rem}

.mem-btn-gold{background:var(--mem-gold);color:var(--mem-btn-dark);font-weight:800;padding:.625rem 2rem;border-radius:var(--mem-radius)}

.mem-btn-gold:hover{background:var(--mem-t1);color:var(--mem-btn-dark);text-decoration:none}

.mem-commitment{padding:5rem 2rem;background:var(--mem-legacy-bg);border-top:1px solid var(--mem-border);border-bottom:1px solid var(--mem-border)}

.mem-commitment-inner{max-width:720px;margin:0 auto;text-align:center}

.mem-commitment-label{display:inline-block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mem-gold);border:1px solid var(--mem-gold-dim);padding:.25rem .875rem;border-radius:2px;margin-bottom:1.5rem}

.mem-commitment-title{font-size:clamp(1.4rem,3vw,2rem);font-weight:900;color:var(--mem-t1);letter-spacing:-.02em;margin-bottom:1.25rem;line-height:1.1}

.mem-commitment-body{font-size:.9375rem;color:var(--mem-t2);line-height:1.85;margin-bottom:1.5rem}

.mem-commitment-source{font-size:.775rem;color:var(--mem-t3);letter-spacing:.03em}

.mem-cta-block{padding:5rem 2rem;background:var(--mem-coming-bg);border-top:1px solid var(--mem-border)}

.mem-cta-inner{max-width:600px;margin:0 auto;text-align:center}

.mem-cta-title{font-size:clamp(1.3rem,2.5vw,1.75rem);font-weight:900;color:var(--mem-gold);letter-spacing:-.02em;margin-bottom:1rem}

.mem-cta-body{font-size:.9rem;color:var(--mem-t2);line-height:1.8;margin-bottom:2rem}




/* ── honor.php ──────────────────────────────────────────────────── */

.mem-honor{min-height:80vh}

.mem-honor-head{background:var(--mem-bg);padding:1.5rem 2rem 0;border-bottom:1px solid var(--mem-border)}

.mem-honor-head-inner{max-width:var(--mem-max-w);margin:0 auto}

.mem-honor-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:900;color:var(--mem-t1);letter-spacing:-.02em}

.mem-honor-sub{font-size:.9rem;color:var(--mem-t2);margin-top:.5rem}

.mem-honor-controls{background:var(--mem-surface);border-bottom:1px solid var(--mem-border);padding:1.25rem 2rem;position:sticky;top:var(--mem-topbar-h);z-index:50}

.mem-honor-controls-inner{max-width:var(--mem-max-w);margin:0 auto;display:flex;flex-direction:column;gap:.75rem}

.mem-search-wrap{position:relative;width:100%}

.mem-search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:.4}

[data-theme="dark"] .mem-search-icon{filter:invert(80%)}

[data-theme="light"] .mem-search-icon{filter:invert(20%)}

.mem-search-input{width:100%;background:var(--mem-bg);border:1px solid var(--mem-border);color:var(--mem-t1);font-size:.875rem;padding:.6rem .75rem .6rem 2.25rem;border-radius:var(--mem-radius);outline:none;transition:border-color var(--mem-trans)}

.mem-search-input:focus{border-color:var(--mem-gold)}

.mem-filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}

.mem-filter-select,.mem-filter-year,.mem-filter-input{background:var(--mem-bg);border:1px solid var(--mem-border);color:var(--mem-t1);font-size:.8rem;padding:.4rem .65rem;border-radius:var(--mem-radius);outline:none;transition:border-color var(--mem-trans)}

.mem-filter-select:focus,.mem-filter-year:focus,.mem-filter-input:focus{border-color:var(--mem-gold)}

.mem-filter-year{width:110px}

.mem-filter-input{width:140px}

.mem-filter-clear{background:none;border:1px solid var(--mem-border);color:var(--mem-t3);font-size:.775rem;padding:.4rem .875rem;border-radius:var(--mem-radius);cursor:pointer;transition:all var(--mem-trans)}

.mem-filter-clear:hover{border-color:var(--mem-gold);color:var(--mem-gold)}

.mem-honor-meta-bar{padding:.75rem 2rem;border-bottom:1px solid var(--mem-border);background:var(--mem-bg)}

.mem-honor-meta-inner{max-width:var(--mem-max-w);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}

.mem-result-count{font-size:.8rem;color:var(--mem-t3);letter-spacing:.03em}

.mem-subject-grid{width:100%;padding:1.25rem 2rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}

.mem-card{display:flex;flex-direction:column;background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);overflow:hidden;text-decoration:none;transition:all var(--mem-trans);color:var(--mem-t1)}

.mem-card:hover{border-color:var(--mem-gold-dim);box-shadow:var(--mem-shadow);transform:translateY(-2px);text-decoration:none;color:var(--mem-t1)}

.mem-card-photo-wrap{aspect-ratio:3/4;overflow:hidden;background:var(--mem-surface2);position:relative}

.mem-card-photo{width:100%;height:100%;object-fit:cover}

.mem-card-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}

.mem-card-placeholder-icon{width:48px;height:48px;opacity:.2}

[data-theme="dark"] .mem-card-placeholder-icon{filter:invert(70%)}

[data-theme="light"] .mem-card-placeholder-icon{filter:invert(20%)}

.mem-card-body{padding:.875rem;flex:1;display:flex;flex-direction:column;gap:.35rem}

.mem-card-name{font-size:.875rem;font-weight:700;color:var(--mem-t1);line-height:1.3;display:flex;flex-direction:column}

.mem-card-rank{font-weight:400;color:var(--mem-t3);font-size:.72rem;order:1}

.mem-card-agency{font-size:.72rem;color:var(--mem-t3);line-height:1.4}

.mem-card-eow{font-size:.75rem;color:var(--mem-gold);margin-top:.25rem}

.mem-card-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:auto;padding-top:.5rem}

.mem-card-badge{font-size:.65rem;font-weight:700;padding:.15rem .5rem;border-radius:2px;text-transform:uppercase;letter-spacing:.05em}

.mem-card-veteran{background:#1a3870;color:#ffffff;border:1px solid #0f2550}
.mem-card-linked{text-decoration:none;cursor:pointer;transition:background .15s}
.mem-card-linked:hover{background:#0f2550;color:#ffffff}

.mem-card-k9{background:rgba(201,168,76,0.15);color:var(--mem-gold);border:1px solid var(--mem-gold-dim)}

.mem-card-cause{font-size:.68rem;padding:.15rem .5rem;border-radius:2px;font-weight:600}

.mem-cause-felonious{background:rgba(180,30,30,0.2);color:var(--mem-cause-fel-c);border:1px solid rgba(180,30,30,0.3)}

.mem-cause-accident{background:rgba(180,120,20,0.2);color:var(--mem-cause-acc-c);border:1px solid rgba(180,120,20,0.3)}

.mem-cause-illness{background:rgba(60,120,180,0.2);color:var(--mem-cause-ill-c);border:1px solid rgba(60,120,180,0.3)}

.mem-cause-cardiac{background:rgba(180,60,60,0.2);color:var(--mem-cause-card-c);border:1px solid rgba(180,60,60,0.3)}

.mem-cause-suicide{background:rgba(100,100,180,0.2);color:var(--mem-cause-sui-c);border:1px solid rgba(100,100,180,0.3)}

.mem-cause-undetermined{background:rgba(100,100,100,0.2);color:var(--mem-cause-und-c);border:1px solid rgba(100,100,100,0.3)}

.mem-pagination-wrap{max-width:var(--mem-max-w);margin:0 auto;padding:1.5rem 2rem 3rem}

.mem-pagination{display:flex;align-items:center;justify-content:center;gap:.35rem;flex-wrap:wrap}

.mem-page-btn{background:var(--mem-surface);border:1px solid var(--mem-border);color:var(--mem-t2);font-size:.8rem;padding:.35rem .75rem;border-radius:var(--mem-radius);cursor:pointer;transition:all var(--mem-trans)}

.mem-page-btn:hover{border-color:var(--mem-gold);color:var(--mem-gold)}

.mem-page-btn.active{background:var(--mem-gold);border-color:var(--mem-gold);color:var(--mem-white);font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.4)}

.mem-page-ellipsis{color:var(--mem-t3);padding:0 .25rem}

.mem-loading{grid-column:1/-1;padding:4rem;text-align:center}

.mem-loading-text{color:var(--mem-t3);font-size:.9rem}

.mem-honor-empty,.mem-honor-error{grid-column:1/-1;padding:4rem;text-align:center;color:var(--mem-t3)}

@media(max-width:640px){.mem-subject-grid{grid-template-columns:repeat(2,1fr);padding:1rem;gap:.75rem}.mem-filters{gap:.35rem}.mem-filter-year,.mem-filter-input{width:100px}}




/* ── officer.php ────────────────────────────────────────────────── */

.mem-subject-back{padding:1rem 2rem;border-bottom:1px solid var(--mem-border);background:var(--mem-surface)}

.mem-back-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--mem-t2);text-decoration:none;transition:color var(--mem-trans)}

.mem-back-link:hover{color:var(--mem-gold);text-decoration:none}

.mem-back-icon{width:14px;height:14px;opacity:.5}

[data-theme="dark"] .mem-back-icon{filter:invert(70%)}

[data-theme="light"] .mem-back-icon{filter:invert(20%)}

.mem-subject-hero{background:var(--mem-bg);border-bottom:1px solid var(--mem-border);padding:1.75rem 2rem}

.mem-subject-hero-inner{max-width:var(--mem-max-w);margin:0 auto;display:flex;gap:2.5rem;align-items:flex-start}

.mem-subject-photo-wrap{position:relative;flex-shrink:0}

.mem-subject-photo{width:180px;height:240px;object-fit:cover;object-position:top;border-radius:var(--mem-radius-lg);border:2px solid var(--mem-border)}

.mem-subject-photo-placeholder{width:180px;height:180px;border-radius:var(--mem-radius-lg);border:2px solid var(--mem-border);background:var(--mem-surface2);display:flex;align-items:center;justify-content:center}

.mem-subject-placeholder-icon{width:64px;height:64px;opacity:.2}

[data-theme="dark"] .mem-subject-placeholder-icon{filter:invert(70%)}

[data-theme="light"] .mem-subject-placeholder-icon{filter:invert(20%)}

.mem-subject-patch{position:absolute;bottom:-10px;right:-10px;width:52px;height:52px;border-radius:50%;border:2px solid var(--mem-border);background:var(--mem-surface);object-fit:contain;padding:2px}

.mem-subject-identity{flex:1;min-width:0}

.mem-subject-rank{font-size:.875rem;color:var(--mem-t2);margin-bottom:.25rem}

.mem-subject-name{font-size:clamp(1.5rem,4vw,2.5rem);font-weight:900;color:var(--mem-t1);letter-spacing:-.02em;line-height:1.1;margin-bottom:.5rem}

.mem-subject-agency{font-size:.9375rem;color:var(--mem-t2);margin-bottom:1rem}

.mem-subject-agency-loc{color:var(--mem-t3)}

.mem-subject-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem}

.mem-badge-felonious{background:rgba(180,30,30,0.2);color:var(--mem-cause-fel-c);border:1px solid rgba(180,30,30,0.3)}

.mem-badge-honored{background:rgba(26,56,112,0.25);color:var(--mem-veteran-c);border:1px solid rgba(26,56,112,0.4)}

.mem-subject-sentinel{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.875rem 1.25rem;background:rgba(201,168,76,0.06);border:1px solid rgba(201,168,76,0.15);border-radius:var(--mem-radius-lg)}

.mem-sentinel-label{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mem-t3)}

.mem-sentinel-ngi{font-size:.8125rem;font-weight:700;color:var(--mem-gold)}

.mem-sentinel-btn{margin-left:auto;font-size:.775rem;font-weight:700;padding:.35rem 1rem;border:1px solid var(--mem-gold);color:var(--mem-gold);border-radius:var(--mem-radius);text-decoration:none;transition:all var(--mem-trans)}

.mem-sentinel-btn:hover{background:var(--mem-gold);color:var(--mem-btn-dark);text-decoration:none}

.mem-subject-body{padding:2.5rem 2rem}

.mem-subject-body-inner{max-width:var(--mem-max-w);margin:0 auto;display:grid;grid-template-columns:1fr 320px;gap:2.5rem;align-items:start;min-height:400px}

.mem-subject-main{display:flex;flex-direction:column;gap:2rem}

.mem-subject-section{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1.5rem}

.mem-subject-section-title{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mem-gold);margin-bottom:1rem}

.mem-subject-narrative{font-size:.9375rem;color:var(--mem-t1);line-height:1.85;margin:0 0 1.15rem}
.mem-subject-narrative:last-child{margin-bottom:0}
.mem-subject-text{line-height:1.75;margin:0 0 1rem}
.mem-subject-text:last-child{margin-bottom:0}
/* Event context card - background on a mass-casualty event. Deliberately QUIETER
   than the Incident card: no gold, muted rule, smaller type. A placard, not a medal.
   All officers are honored equally; this is context, not rank. */
.mem-event-context{border-left:3px solid var(--mem-t3,#4a6080);background:rgba(0,0,0,.02);padding:1.25rem 1.5rem}
/* Record provenance - the quietest block on the page. Stewardship and activity
   on THIS record. Never a source. A footer, not a section. */
.mem-record-prov{background:transparent;border-top:1px solid rgba(0,0,0,.08);padding-top:1.25rem}
.mem-record-prov-title{font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mem-t3,#4a6080);margin:0 0 1rem;opacity:.75}
.mem-record-prov-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.9rem 1.75rem;margin:0 0 1.1rem}
.mem-record-prov-item dt{font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mem-t3,#4a6080);margin:0 0 .2rem;opacity:.8}
.mem-record-prov-item dd{font-size:.8125rem;color:var(--mem-t2,#58566e);margin:0;line-height:1.5}
.mem-record-prov-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;letter-spacing:.02em;color:var(--mem-t2,#58566e);background:rgba(0,0,0,.04);padding:.15rem .4rem;border-radius:3px}
.mem-record-prov-honored{font-size:.8125rem;color:var(--mem-t2,#58566e);margin:0 0 .8rem}
.mem-record-prov-claim{font-size:.8125rem;color:var(--mem-t1);margin:0 0 .8rem;line-height:1.6}
.mem-record-prov-claim a{color:var(--mem-gold);font-weight:600;text-decoration:none;border-bottom:1px solid var(--mem-gold)}
.mem-record-prov-claim a:hover{opacity:.8}
.mem-record-prov-permanence{font-size:.75rem;color:var(--mem-t3,#4a6080);margin:0;line-height:1.6;opacity:.85}

.mem-event-context-title{font-size:.8125rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mem-t3,#4a6080);margin:0 0 1rem}
.mem-event-context-personal{font-size:.9375rem;color:var(--mem-t1);line-height:1.8;margin:0 0 .85rem}
.mem-event-context-body{font-size:.875rem;color:var(--mem-t2,#58566e);line-height:1.75;margin:0 0 .85rem}
.mem-event-context-body:last-child{margin-bottom:0}
.mem-event-context-personal + .mem-event-context-body{margin-top:1.15rem;padding-top:1.15rem;border-top:1px solid rgba(0,0,0,.08)}


.mem-subject-text{font-size:.9rem;color:var(--mem-t2);line-height:1.8}

.mem-subject-veteran-block{border-color:rgba(26,56,112,0.4)}

.mem-subject-veteran-note{color:var(--mem-t2)}

.mem-link{color:var(--mem-gold)}

.mem-subject-sidebar{display:flex;flex-direction:column;gap:1rem}

.mem-subject-card{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1.25rem}

.mem-subject-card-title{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mem-gold);margin-bottom:1rem}

.mem-subject-facts{display:flex;flex-direction:column;gap:.75rem}

.mem-fact{display:flex;flex-direction:column;gap:.15rem}

.mem-fact-label{font-size:.7rem;color:var(--mem-t3);letter-spacing:.04em;text-transform:uppercase}

.mem-fact-value{font-size:.875rem;color:var(--mem-t1);font-weight:500}

.mem-fact-eow{color:var(--mem-gold);font-weight:700}

.mem-subject-sources{display:flex;flex-direction:column;gap:.5rem;padding:.75rem 0 0}

.mem-source-link{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--mem-t2);text-decoration:none;padding:.4rem .5rem;border-radius:var(--mem-radius);transition:all var(--mem-trans)}

.mem-source-link:hover{color:var(--mem-gold);background:var(--mem-surface2);text-decoration:none}

.mem-source-ext{width:11px;height:11px;opacity:.4;margin-left:auto}

[data-theme="dark"] .mem-source-ext{filter:invert(70%)}

@media(max-width:900px){.mem-subject-body-inner{grid-template-columns:1fr}.mem-subject-hero-inner{flex-direction:column}.mem-subject-photo{width:140px;height:140px}}

@media(max-width:640px){.mem-subject-photo{width:110px;height:110px}.mem-subject-name{font-size:1.5rem}}




/* ── agencies.php ───────────────────────────────────────────────── */

.mem-org-grid{width:100%;padding:1.25rem 2rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}

.mem-org-grid.mem-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}

.mem-org-grid.mem-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}

.mem-org-grid.mem-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}

@media(max-width:1024px){.mem-org-grid.mem-cols-2,.mem-org-grid.mem-cols-4,.mem-org-grid.mem-cols-6{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:640px){.mem-org-grid.mem-cols-2,.mem-org-grid.mem-cols-4,.mem-org-grid.mem-cols-6{grid-template-columns:1fr}}

.mem-org-card{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);overflow:hidden;display:flex;flex-direction:column;transition:all var(--mem-trans)}

.mem-org-card:hover{border-color:var(--mem-gold-dim);box-shadow:var(--mem-shadow)}

.mem-org-card-body{padding:1.25rem;flex:1;display:flex;flex-direction:column;gap:.6rem}

.mem-org-name{font-size:.9rem;font-weight:700;color:var(--mem-t1);line-height:1.35}

.mem-org-loc{display:flex;align-items:center;gap:.35rem;font-size:.775rem;color:var(--mem-t3)}

.mem-org-loc-icon{width:12px;height:12px;opacity:.4;flex-shrink:0}

[data-theme="dark"] .mem-org-loc-icon{filter:invert(70%)}

[data-theme="light"] .mem-org-loc-icon{filter:invert(20%)}

.mem-org-stats{display:flex;gap:1.25rem;margin-top:auto;padding-top:.5rem}

.mem-org-stat{display:flex;flex-direction:column;gap:.1rem}

.mem-org-stat-num{font-size:1rem;font-weight:800;color:var(--mem-gold);letter-spacing:-.01em}

.mem-org-stat-label{font-size:.65rem;color:var(--mem-t3);text-transform:uppercase;letter-spacing:.06em}

.mem-org-une{font-size:.72rem;color:var(--mem-t3);border-top:1px solid var(--mem-border);padding-top:.6rem;margin-top:.25rem}.mem-org-une-link{display:flex;align-items:center;gap:.4rem}

.mem-org-une-icon{width:12px;height:12px;opacity:.35;flex-shrink:0}

[data-theme="dark"] .mem-org-une-icon{filter:invert(70%)}

[data-theme="light"] .mem-org-une-icon{filter:invert(20%)}

.mem-org-card-footer{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;background:var(--mem-surface2);border-top:1px solid var(--mem-border);font-size:.775rem;font-weight:700;color:var(--mem-gold);text-decoration:none;transition:all var(--mem-trans)}

.mem-org-card-footer:hover{background:var(--mem-gold);color:var(--mem-btn-dark);text-decoration:none}

.mem-org-arrow{width:14px;height:14px;transition:filter var(--mem-trans)}

[data-theme="dark"] .mem-org-arrow{filter:invert(75%) sepia(30%) saturate(400%) hue-rotate(5deg)}

.mem-org-card-footer:hover .mem-org-arrow{filter:invert(10%)}

@media(max-width:640px){.mem-org-grid{grid-template-columns:1fr;padding:1rem}}




/* ── agency filter bar ──────────────────────────────────────────── */

.mem-org-filter-bar{background:rgba(201,168,76,0.08);border-bottom:1px solid rgba(201,168,76,0.2);padding:.75rem 2rem}

.mem-org-filter-inner{max-width:var(--mem-max-w);margin:0 auto;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}

.mem-org-filter-label{font-size:.75rem;color:var(--mem-t3);text-transform:uppercase;letter-spacing:.06em}

.mem-org-filter-name{font-size:.875rem;font-weight:700;color:var(--mem-gold)}

.mem-org-filter-clear{font-size:.75rem;color:var(--mem-t3);text-decoration:none;margin-left:auto;padding:.2rem .6rem;border:1px solid var(--mem-border);border-radius:var(--mem-radius);transition:all var(--mem-trans)}

.mem-org-filter-clear:hover{border-color:var(--mem-gold);color:var(--mem-gold);text-decoration:none}




/* ── agency card patch ──────────────────────────────────────────── */

.mem-org-card-top{display:flex;align-items:flex-start;gap:.875rem;margin-bottom:.75rem}

.mem-org-patch-img{width:52px;height:52px;object-fit:contain;border-radius:var(--mem-radius);border:1px solid var(--mem-border);background:var(--mem-surface2);flex-shrink:0;padding:2px}

.mem-org-card-info{flex:1;min-width:0}




/* ── agency profile page ────────────────────────────────────────── */

.mem-org-profile-hero{background:var(--mem-bg);border-bottom:1px solid var(--mem-border);padding:1.75rem 2rem}

.mem-org-profile-hero-inner{max-width:var(--mem-max-w);margin:0 auto;display:flex;gap:2.5rem;align-items:flex-start}

.mem-org-profile-patch-wrap{flex-shrink:0}

.mem-org-profile-patch{width:160px;height:160px;object-fit:contain;border-radius:var(--mem-radius-lg);border:1px solid var(--mem-border);background:var(--mem-surface2);padding:8px}

.mem-org-profile-identity{flex:1;min-width:0}

.mem-org-profile-stats{display:flex;flex-wrap:wrap;gap:2rem;margin-top:1.5rem}

.mem-org-profile-stat{display:flex;flex-direction:column;gap:.15rem}

.mem-org-profile-body{padding:2.5rem 2rem 2.5rem}

.mem-org-profile-body-inner{max-width:var(--mem-max-w);margin:0 auto}

.mem-org-profile-officers-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--mem-border)}

.mem-org-profile-section-title{font-size:1.25rem;font-weight:800;color:var(--mem-t1);letter-spacing:-.01em}

@media(max-width:640px){.mem-org-profile-hero-inner{flex-direction:column}.mem-org-profile-patch{width:120px;height:120px}}




/* ── sentinel bar (shared component) ───────────────────────────── */

.snw-bar{display:flex;flex-direction:column;background:var(--mem-surface);border:1px solid rgba(201,168,76,0.2);border-radius:var(--mem-radius-lg);overflow:hidden;height:fit-content;position:sticky;top:calc(var(--mem-topbar-h) + 1rem)}

.snw-bar-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;background:rgba(201,168,76,0.06);border-bottom:1px solid rgba(201,168,76,0.15)}

.snw-bar-title{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mem-gold)}

.snw-bar-count{font-size:.7rem;color:var(--mem-t3);letter-spacing:.04em}

.snw-bar-list{flex:1;overflow-y:auto;max-height:480px;padding:.75rem 0}

.snw-bar-sentinel{padding:.75rem 1.25rem;border-bottom:1px solid var(--mem-border)}

.snw-bar-sentinel:last-child{border-bottom:none}

.snw-bar-ngi{background:rgba(201,168,76,0.04)}

.snw-bar-sentinel-badge{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mem-gold);margin-bottom:.25rem}

.snw-bar-sentinel-num{font-size:.65rem;color:var(--mem-t3);letter-spacing:.06em;margin-bottom:.2rem}

.snw-bar-sentinel-name{font-size:.875rem;font-weight:700;color:var(--mem-t1);line-height:1.3}

.snw-bar-sentinel-rel{font-size:.75rem;color:var(--mem-t3);margin-top:.15rem}

.snw-bar-sentinel-une{font-size:.72rem;color:var(--mem-gold);margin-top:.15rem;opacity:.8}

.snw-bar-sentinel-since{font-size:.68rem;color:var(--mem-t3);margin-top:.1rem}

.snw-bar-empty{padding:1.25rem;font-size:.8rem;color:var(--mem-t3);text-align:center}

.snw-bar-become{display:block;padding:.875rem 1.25rem;background:var(--mem-gold);color:var(--mem-white);font-size:.8rem;font-weight:800;text-align:center;text-decoration:none;transition:opacity var(--mem-trans);letter-spacing:.02em}

.snw-bar-become:hover{opacity:.88;text-decoration:none;color:var(--mem-white)fff}




/* ── sentinel sidebar layout ────────────────────────────────────── */

.mem-subject-sentinel-sidebar{width:280px;flex-shrink:0}

.mem-org-une-tag{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--mem-gold);margin-top:.75rem}

.mem-org-profile-body-cols{display:grid;grid-template-columns:280px 1fr;gap:2rem;align-items:start}

.mem-org-profile-sentinel-col{position:sticky;top:calc(var(--mem-topbar-h) + 1rem)}

@media(max-width:900px){

  .mem-subject-body-inner{grid-template-columns:1fr}

  .mem-subject-sentinel-sidebar{width:100%;position:static}

  .mem-org-profile-body-cols{grid-template-columns:1fr}

  .mem-org-profile-sentinel-col{position:static}

}




/* ── agency profile two-col layout ─────────────────────────────── */

.mem-org-profile-body-cols{display:grid;grid-template-columns:1fr 280px;gap:2rem;align-items:start}

.mem-org-profile-main-col{min-width:0}

.mem-org-profile-sentinel-col{position:sticky;top:calc(var(--mem-topbar-h) + 1rem)}

@media(max-width:900px){

  .mem-org-profile-body-cols{grid-template-columns:1fr}

  .mem-org-profile-sentinel-col{position:static}

}




/* ── UI fixes ───────────────────────────────────────────────────── */

.mem-org-profile-body-cols{padding:2rem}

.mem-org-profile-officers-head{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--mem-border);display:flex;align-items:center;justify-content:space-between}

.mem-org-loc-icon{width:14px;height:14px;vertical-align:middle;margin-right:.25rem;opacity:.5;display:inline-block}

[data-theme="dark"] .mem-org-loc-icon{filter:invert(70%)}

[data-theme="light"] .mem-org-loc-icon{filter:invert(20%)}

.mem-subject-agency .mem-org-loc-icon{width:13px;height:13px}








/* ── sentinel bar une link ──────────────────────────────────────── */

.snw-bar-sentinel-une-link{color:var(--mem-gold);text-decoration:none;font-size:.72rem}

.snw-bar-sentinel-une-link:hover{text-decoration:underline}



/* ── agency profile officers heading alignment ──────────────────── */

.mem-org-profile-main-col .mem-org-profile-officers-head{padding:0 0 1rem 0;margin-bottom:1.5rem}

.mem-org-profile-body-cols{padding:2rem 2rem 2rem 2rem}




/* ── force fixes ────────────────────────────────────────────────── */

.snw-bar-become,

.snw-bar-become:hover,

.snw-bar-become:visited { color: var(--mem-white)fff !important; }

.mem-org-profile-body-cols { padding: 2rem; }

.mem-org-profile-main-col .mem-subject-grid { padding-left: 0; padding-right: 0; }

.mem-org-profile-officers-head { padding: 0 0 1rem; margin: 0 0 1.5rem; }




/* ── officer facts strip ────────────────────────────────────────── */

.mem-subject-facts-strip{background:var(--mem-surface);border-top:1px solid var(--mem-border);border-bottom:1px solid var(--mem-border);padding:2rem}

.mem-subject-facts-strip-inner{max-width:var(--mem-max-w);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}

.mem-subject-fact-card{background:var(--mem-bg);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1.25rem}

.mem-fact-une{color:var(--mem-gold);font-size:.8rem}

@media(max-width:640px){.mem-subject-facts-strip-inner{grid-template-columns:1fr}}




/* ── page layout (sentinel.nw pattern) ─────────────────────────── */

.mem-layout{display:flex;min-height:calc(100vh - var(--mem-topbar-h) - 60px);margin-top:var(--mem-topbar-h)}

.mem-main{flex:1;min-width:0;overflow-x:hidden}

.mem-sidebar{width:268px;flex-shrink:0;border-left:1px solid var(--mem-border);background:var(--mem-surface);transition:background var(--mem-trans),border-color var(--mem-trans)}

.mem-sidebar-sticky{position:sticky;top:var(--mem-topbar-h);max-height:calc(100vh - var(--mem-topbar-h));overflow-y:auto;padding:1.4rem 1.1rem}

.mem-sidebar-title{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mem-gold);font-weight:700;margin-bottom:.9rem;padding-bottom:.6rem;border-bottom:1px solid var(--mem-border);display:flex;align-items:center;justify-content:space-between}

.mem-sidebar-count{font-size:.62rem;color:var(--mem-t3);letter-spacing:.04em;font-weight:400}

.mem-sidebar-list{margin:0}

.mem-sidebar-sentinel{padding:.75rem 0;border-bottom:1px solid var(--mem-border)}

.mem-sidebar-sentinel:last-of-type{border-bottom:none}

.mem-sidebar-ngi .mem-sidebar-sentinel-name{color:var(--mem-gold)}

.mem-sidebar-sentinel-badge{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;background:rgba(201,168,76,0.15);color:var(--mem-gold);padding:1px 6px;border-radius:2px;display:inline-block;margin-bottom:.25rem}

.mem-sidebar-sentinel-num{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mem-t3);margin-bottom:.25rem}

.mem-sidebar-sentinel-name{font-size:.8rem;color:var(--mem-t1);font-weight:600;margin-bottom:.2rem}

.mem-sidebar-sentinel-une{font-size:.72rem;margin-bottom:.15rem}

.mem-sidebar-sentinel-une a{color:var(--mem-gold);text-decoration:none;letter-spacing:.04em}

.mem-sidebar-sentinel-une a:hover{text-decoration:underline}

.mem-sidebar-sentinel-loc{font-size:.7rem;color:var(--mem-t3);margin-bottom:.15rem}

.mem-sidebar-sentinel-rel{font-size:.72rem;color:var(--mem-t3);font-style:italic}

.mem-sidebar-sentinel-since{font-size:.68rem;color:var(--mem-t3);margin-top:.1rem}

.mem-sidebar-empty{font-size:.8rem;color:var(--mem-t3);font-style:italic;text-align:center;padding:1rem 0}

.mem-sidebar-cta{display:block;width:100%;margin-top:1.1rem;padding:.65rem;background:var(--mem-gold);color:var(--mem-bg) !important;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;border-radius:var(--mem-radius);text-align:center;text-decoration:none;transition:opacity var(--mem-trans)}

.mem-sidebar-cta:hover{opacity:.88;text-decoration:none}



/* remove old snw-bar styles from views - sidebar now page-level */

.mem-subject-sidebar .snw-bar{display:none}

.mem-org-profile-sentinel-col .snw-bar{display:none}



/* fix main content — no longer needs topbar margin (layout handles it) */

.mem-main .mem-main{margin-top:0}



@media(max-width:900px){

  .mem-sidebar{display:none}

  .mem-layout{display:block}

  .mem-main{margin-top:var(--mem-topbar-h)}

}



/* ── K9 Roll of Honor ────────────────────────────────────────────── */

.mem-animal-tabs{display:flex;gap:0;border-bottom:1px solid var(--mem-border);margin:0 0 0 0;padding:0 2rem}

.mem-animal-tab{background:none;border:none;border-bottom:2px solid transparent;padding:.7rem 1.4rem;font-size:.85rem;font-weight:600;color:var(--mem-t2);cursor:pointer;margin-bottom:-1px;transition:color var(--mem-trans),border-color var(--mem-trans)}

.mem-animal-tab:hover{color:var(--mem-t1)}

.mem-animal-tab.active{color:var(--mem-gold);border-bottom-color:var(--mem-gold)}



/* ── K9 Analytics ────────────────────────────────────────────────── */

.mem-animal-analytics{padding:1.5rem 2rem}

.mem-animal-stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:2rem}

.mem-animal-stat{background:var(--mem-card);border:1px solid var(--mem-border);border-radius:var(--mem-radius);padding:1rem 1.2rem}

.mem-animal-stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mem-t2);margin-bottom:.3rem}

.mem-animal-stat-val{font-size:1.4rem;font-weight:700;color:var(--mem-t1);line-height:1.1;margin-bottom:.2rem}

.mem-animal-stat-sub{font-size:.75rem;color:var(--mem-t2)}

.mem-animal-chart-section{margin-bottom:2rem}

.mem-animal-chart-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--mem-t2);margin-bottom:.75rem}

.mem-animal-chart-row{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}

.mem-animal-chart-wrap{position:relative;width:100%}

.mem-animal-chart-wide{height:160px}

.mem-animal-chart-tall{height:420px}

.mem-animal-chart-med{height:260px}

.mem-animal-chart-sm{height:120px}

.mem-animal-handler{font-size:.78rem;color:var(--mem-t2);margin:.15rem 0}

@media(max-width:900px){

  .mem-animal-stat-row{grid-template-columns:1fr 1fr}

  .mem-animal-chart-row{grid-template-columns:1fr}

  .mem-animal-tabs{padding:0 1rem}

}



/* ── Hall of Sentinels ───────────────────────────────────────────── */

.mem-hall { max-width: 100%; }

.mem-hall-head { background: var(--mem-bg); padding: 1.5rem 2rem 0; border-bottom: 1px solid var(--mem-border); }

.mem-hall-head-inner { max-width: 900px; }

.mem-hall-title { font-size: 2rem; font-weight: 700; color: var(--mem-t1); margin: 0 0 .4rem; }

.mem-hall-sub { font-size: .95rem; color: var(--mem-t2); margin: 0; }



.mem-hall-founding-bar { background: var(--mem-founding-bg); padding: 1.2rem 2rem; border-bottom: 1px solid var(--mem-wall-gold); }

.mem-hall-founding-inner { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }

.mem-hall-founding-left { display: flex; align-items: center; gap: .75rem; }

.mem-hall-founding-icon { width: 32px; height: 36px; }

.mem-hall-founding-text { display: flex; flex-direction: column; }

.mem-hall-founding-label { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: var(--mem-founding-amber); }

.mem-hall-founding-count { font-size: 1rem; font-weight: 700; color: var(--mem-wall-gold-hi); }

.mem-hall-founding-progress-wrap { flex: 1; min-width: 200px; display: flex; align-items: center; gap: .75rem; }

.mem-hall-founding-progress-bar { flex: 1; height: 6px; background: rgba(255,215,0,0.15); border-radius: 3px; overflow: hidden; }

.mem-hall-founding-progress-fill { height: 100%; background: var(--mem-wall-gold-hi); border-radius: 3px; transition: width .6s ease; }

.mem-hall-founding-remain { font-size: .75rem; color: var(--mem-founding-amber); white-space: nowrap; }


.mem-hall-founding-cta:hover { opacity: .85; text-decoration: none; }



.mem-hall-filters { padding: 1rem 2rem; border-bottom: 1px solid var(--mem-border); }

.mem-hall-filters-inner { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }

.mem-hall-type-tabs { display: flex; gap: .25rem; }

.mem-hall-type { background: none; border: 1px solid var(--mem-border); border-radius: var(--mem-radius); padding: .35rem .85rem; font-size: .8rem; color: var(--mem-t2); cursor: pointer; transition: all var(--mem-trans); }

.mem-hall-type.active { background: var(--mem-t1); color: var(--mem-bg); border-color: var(--mem-t1); }

.mem-hall-tier-pills { display: flex; gap: .4rem; flex-wrap: wrap; }

.mem-hall-tier-pill { background: none; border: 1px solid var(--mem-border); border-radius: 999px; padding: .3rem .85rem; font-size: .75rem; color: var(--mem-t2); cursor: pointer; transition: all var(--mem-trans); }

.mem-hall-tier-pill.active { border-color: var(--mem-t2); color: var(--mem-t1); }

.mem-hall-tier-pill.founding.active { background: var(--mem-wall-gold); border-color: var(--mem-wall-gold); color: var(--mem-wall-gold-hi); }

.mem-hall-tier-pill.guardian.active { background: var(--mem-tier-guardian); border-color: var(--mem-tier-guardian); color: var(--mem-white); }

.mem-hall-tier-pill.sentinel.active { background: var(--mem-tier-sentinel); border-color: var(--mem-tier-sentinel); color: var(--mem-white); }



.mem-hall-meta-bar { padding: .75rem 2rem; border-bottom: 1px solid var(--mem-border); display: flex; align-items: center; justify-content: space-between; }

.mem-hall-meta-inner { display: flex; align-items: center; justify-content: space-between; width: 100%; }



.mem-hall-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; padding: 1.5rem 2rem; }

.mem-hall-card { background: var(--mem-card); border: 1px solid var(--mem-border); border-radius: var(--mem-radius-lg); padding: 1rem 1.1rem; transition: border-color var(--mem-trans); }

.mem-hall-card:hover { border-color: var(--mem-t3); }

.mem-hall-card.mem-hall-tier-founding { border-left: 3px solid var(--mem-wall-gold); }

.mem-hall-card.mem-hall-tier-guardian { border-left: 3px solid var(--mem-tier-guardian); }

.mem-hall-card.mem-hall-tier-sentinel { border-left: 3px solid var(--mem-tier-sentinel); }

.mem-hall-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: .6rem; }

.mem-hall-card-id-wrap { display: flex; align-items: center; gap: .4rem; }

.mem-hall-card-tier-icon { width: 20px; height: 23px; }

.mem-hall-card-id { font-size: .75rem; font-weight: 600; color: var(--mem-t2); }

.mem-hall-card-tier-badge { font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; padding: .2rem .5rem; border-radius: 999px; }

.mem-tier-founding { background: var(--mem-founding-lt); color: var(--mem-wall-gold); }

.mem-tier-guardian { background: var(--mem-tier-guardian-lt); color: var(--mem-tier-guardian); }

.mem-tier-sentinel { background: var(--mem-tier-sentinel-lt); color: var(--mem-tier-sentinel); }

.mem-hall-card-name { font-size: 1rem; font-weight: 700; color: var(--mem-t1); margin-bottom: .2rem; }

.mem-hall-card-une { font-size: .8rem; color: var(--mem-gold); text-decoration: none; display: block; margin-bottom: .2rem; }

.mem-hall-card-une:hover { text-decoration: underline; }

.mem-hall-card-loc { font-size: .75rem; color: var(--mem-t2); margin-bottom: .15rem; }

.mem-hall-card-rel { font-size: .75rem; color: var(--mem-t2); font-style: italic; margin-bottom: .15rem; }

.mem-hall-card-since { font-size: .72rem; color: var(--mem-t3); margin-bottom: .5rem; }

.mem-hall-card-agencies { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .5rem; }

.mem-hall-card-agency-tag { font-size: .7rem; background: var(--mem-bg2); color: var(--mem-t2); padding: .2rem .5rem; border-radius: var(--mem-radius); text-decoration: none; transition: background var(--mem-trans); }

.mem-hall-card-agency-tag:hover { background: var(--mem-border); color: var(--mem-t1); }

.mem-hall-platform { font-style: italic; }

@media(max-width:900px){ .mem-hall-grid { grid-template-columns: 1fr 1fr; padding: 1rem; } .mem-hall-filters-inner { flex-direction: column; align-items: flex-start; } }

@media(max-width:600px){ .mem-hall-grid { grid-template-columns: 1fr; } }



/* ── Hall of Sentinels fixes ─────────────────────────────────────── */

.mem-hall-founding-remain { color: var(--mem-wall-gold-hi); }


.mem-hall-founding-cta { color: var(--mem-wall-gold-hi); }
.mem-sidebar-tier-icon{width:14px;height:16px;vertical-align:middle;margin-right:3px;position:relative;top:-1px}
.mem-sidebar-sentinel-name{display:flex;align-items:center;gap:6px}

/* ── The Vigil ───────────────────────────────────────────────────── */

.mem-wall-outer{background:var(--mem-wall-bg);min-height:100vh;color:var(--mem-wall-text);font-family:Georgia,serif}

.mem-wall-header{text-align:center;padding:2rem 2rem 1rem;border-bottom:1px solid var(--mem-wall-bd2)}

.mem-wall-title{font-size:2rem;letter-spacing:.15em;color:var(--mem-wall-text-hi);text-transform:uppercase}

.mem-wall-sub{font-size:.75rem;color:var(--mem-wall-bd5);letter-spacing:.08em;margin-top:.4rem}

.mem-wall-controls{display:flex;align-items:center;gap:1rem;padding:1rem 2rem;border-bottom:1px solid var(--mem-wall-bd1);flex-wrap:wrap;justify-content:center}

.mem-wall-search-wrap{display:flex;gap:.5rem}

.mem-wall-search{background:var(--mem-wall-dark);border:1px solid var(--mem-wall-bd3);color:var(--mem-wall-text);padding:.5rem .9rem;font-family:Georgia,serif;font-size:.8rem;width:220px;outline:none;border-radius:2px}

.mem-wall-search::placeholder{color:var(--mem-wall-bd4)}

.mem-wall-search-btn{background:var(--mem-wall-bd1);border:1px solid var(--mem-wall-bd4);color:var(--mem-wall-text);padding:.5rem .9rem;font-family:Georgia,serif;font-size:.75rem;cursor:pointer;border-radius:2px;letter-spacing:.05em}

.mem-wall-found{font-size:.75rem;color:var(--mem-wall-found);letter-spacing:.05em;min-width:200px;text-align:center}

.mem-wall-play-btn{background:var(--mem-wall-surface);border:1px solid var(--mem-wall-gold);color:var(--mem-wall-text-hi);padding:.5rem 1.2rem;font-family:Georgia,serif;font-size:.8rem;cursor:pointer;letter-spacing:.08em;border-radius:2px;transition:background .2s}

.mem-wall-play-btn.playing{background:var(--mem-wall-surface2);border-color:var(--mem-wall-gold-hi);color:var(--mem-wall-gold-hi)}

.mem-wall-nav{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:.75rem 2rem;border-bottom:1px solid var(--mem-wall-bd1)}

.mem-wall-arrow{background:none;border:1px solid var(--mem-wall-bd3);color:var(--mem-wall-text);width:40px;height:40px;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s;font-family:Georgia,serif}

.mem-wall-arrow:hover{border-color:var(--mem-wall-gold)}

.mem-wall-arrow:disabled{opacity:.25;cursor:default}

.mem-wall-panel-info{text-align:center;min-width:220px}

.mem-wall-panel-label{font-size:.85rem;color:var(--mem-wall-text-hi);letter-spacing:.08em}

.mem-wall-panel-dates{font-size:.75rem;color:var(--mem-wall-bd3);letter-spacing:.05em;margin-top:.2rem}

.mem-wall-stage{padding:1rem 1.5rem 0;max-width:1000px;margin:0 auto}

.mem-wall-panel{background:var(--mem-wall-panel);border:1px solid var(--mem-wall-bd2);border-top:3px solid var(--mem-wall-granite);padding:2rem 2.5rem 3rem;position:relative;transition:opacity .4s}

.mem-wall-panel.mem-wall-fade{opacity:0}

.mem-wall-granite-top{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--mem-wall-granite2) 40%,var(--mem-wall-granite3) 50%,var(--mem-wall-granite2) 60%,transparent)}

.mem-wall-candle-bar{text-align:center;font-size:.7rem;color:var(--mem-wall-candle);letter-spacing:.08em;min-height:1.2rem;margin-bottom:1rem}

.mem-wall-names{display:grid;grid-template-columns:repeat(3,1fr);gap:0 2rem}

.mem-wall-col{display:flex;flex-direction:column}

.mem-wall-name-entry{padding:.35rem 0;border-bottom:1px solid var(--mem-wall-bd1);cursor:pointer;transition:background .15s;display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem;position:relative}

.mem-wall-name-entry:hover{background:var(--mem-wall-hover2)}

.mem-wall-name-rank{font-size:.65rem;color:var(--mem-wall-bd3);letter-spacing:.04em;font-style:italic}

.mem-wall-name-text{font-size:.8rem;color:var(--mem-wall-text);letter-spacing:.04em;text-shadow:0 1px 2px rgba(0,0,0,.8)}

.mem-wall-name-eow{font-size:.65rem;color:var(--mem-wall-bd5);letter-spacing:.03em;margin-left:auto}

.mem-wall-highlighted .mem-wall-name-text{color:var(--mem-wall-gold-hi);text-shadow:0 0 8px rgba(255,215,0,.4),0 1px 2px rgba(0,0,0,.8)}

.mem-wall-candle-lit .mem-wall-name-text{color:var(--mem-wall-candle-lit)}

.mem-wall-flame{font-size:12px;margin-left:.2rem;opacity:.6;transition:opacity .3s,transform .3s}

.mem-wall-flame.lit{opacity:1;animation:flicker 2s ease-in-out infinite}

@keyframes flicker{0%,100%{transform:scale(1) rotate(-2deg);opacity:.9}50%{transform:scale(1.1) rotate(2deg);opacity:1}}

.mem-wall-panel-foot{text-align:center;margin-top:1.5rem}

.mem-wall-panel-num{font-size:.65rem;color:var(--mem-wall-bd3);letter-spacing:.12em;text-transform:uppercase}

.mem-wall-loading{text-align:center;color:var(--mem-wall-bd4);padding:3rem;font-size:.8rem;letter-spacing:.08em}

.mem-wall-progress-wrap{max-width:1000px;margin:.75rem auto 0;padding:0 1.5rem 1.5rem}

.mem-wall-progress-bar{height:2px;background:var(--mem-wall-bd1);border-radius:1px;overflow:hidden}

.mem-wall-progress-fill{height:100%;background:var(--mem-wall-gold);transition:width .4s ease;border-radius:1px}

.mem-wall-panel-dots{display:flex;justify-content:center;gap:3px;margin-top:.75rem;flex-wrap:wrap}


.mem-main:has(.mem-wall-outer){background:var(--mem-wall-bg)}

.mem-wall-names{background:var(--mem-wall-panel);padding:1rem}

.mem-wall-col{background:var(--mem-wall-panel)}


.mem-wall-name-entry{display:flex;flex-direction:column;align-items:center;text-align:center;padding:.4rem .2rem;border-bottom:1px solid var(--mem-wall-bd1);cursor:pointer}

.mem-wall-name-text{display:block;font-size:.82rem;color:var(--mem-wall-text);letter-spacing:.04em;font-family:Georgia,serif}

.mem-wall-name-rank{display:block;font-size:.68rem;color:var(--mem-wall-lt-warm);font-style:italic;letter-spacing:.03em;font-family:Georgia,serif}

.mem-wall-name-eow{display:block;font-size:.65rem;color:var(--mem-wall-bd5);letter-spacing:.03em;margin-bottom:.2rem;font-family:Georgia,serif}


.mem-wall-name-text{color:var(--mem-wall-name)}

.mem-wall-name-eow{display:block;text-align:center;width:100%}


.mem-wall-panel{background:var(--mem-wall-panel2)}

.mem-wall-name-text{color:var(--mem-wall-name-hi)}

.mem-wall-name-rank{color:var(--mem-wall-name-rank-c)}

.mem-wall-name-eow{color:var(--mem-wall-name-eow-c)}


.mem-wall-panel-num{color:var(--mem-wall-panel-num-c)}

.mem-wall-bottom-nav{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:1.5rem 2rem;background:var(--mem-wall-bg)}

.mem-wall-back-top{position:fixed;bottom:2rem;right:2rem;background:var(--mem-wall-surface);border:1px solid var(--mem-wall-gold);color:var(--mem-wall-text-hi);width:40px;height:40px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;font-family:Georgia,serif;z-index:100}

.mem-wall-back-top.visible{opacity:1}


/* ── The Vigil — Light Mode (Limestone) ─────────────────────────── */



  [data-theme="light"] .mem-wall-outer{background:var(--mem-wall-lt-bg)}

  [data-theme="light"] .mem-wall-header{border-bottom-color:var(--mem-wall-lt-bd)}

  [data-theme="light"] .mem-wall-title{color:var(--mem-wall-lt-text)}

  [data-theme="light"] .mem-wall-sub{color:var(--mem-wall-lt-muted)}

  [data-theme="light"] .mem-wall-controls{background:var(--mem-wall-lt-surface);border-bottom-color:var(--mem-wall-lt-bd)}

  [data-theme="light"] .mem-wall-search{background:var(--mem-white);border-color:var(--mem-wall-lt-div2);color:var(--mem-wall-lt-dark)}

  [data-theme="light"] .mem-wall-search::placeholder{color:var(--mem-wall-lt-muted2)}

  [data-theme="light"] .mem-wall-search-btn{background:var(--mem-wall-lt-bg);border-color:var(--mem-wall-lt-div);color:var(--mem-wall-lt-text)}

  [data-theme="light"] .mem-wall-found{color:var(--mem-wall-lt-mid)}

  [data-theme="light"] .mem-wall-play-btn{background:var(--mem-wall-lt-surface2);border-color:var(--mem-wall-gold);color:var(--mem-wall-lt-text)}

  [data-theme="light"] .mem-wall-play-btn.playing{background:var(--mem-wall-lt-surface3);border-color:var(--mem-wall-gold);color:var(--mem-wall-lt-text)}

  [data-theme="light"] .mem-wall-nav{background:var(--mem-wall-lt-surface);border-bottom-color:var(--mem-wall-lt-bd)}

  [data-theme="light"] .mem-wall-arrow{border-color:var(--mem-wall-lt-div2);color:var(--mem-wall-lt-text)}

  [data-theme="light"] .mem-wall-arrow:hover{border-color:var(--mem-wall-gold)}

  [data-theme="light"] .mem-wall-panel-label{color:var(--mem-wall-lt-dark)}

  [data-theme="light"] .mem-wall-panel-dates{color:var(--mem-wall-lt-muted)}

  [data-theme="light"] .mem-wall-stage{background:var(--mem-wall-lt-bg)}

  [data-theme="light"] .mem-wall-panel{background:var(--mem-wall-lt-alt);border-color:var(--mem-wall-lt-div2);border-top-color:var(--mem-wall-gold)}

  [data-theme="light"] .mem-wall-granite-top{background:linear-gradient(90deg,transparent,var(--mem-wall-granite-lt1) 40%,var(--mem-wall-granite-lt2) 50%,var(--mem-wall-granite-lt1) 60%,transparent)}

  [data-theme="light"] .mem-wall-candle-bar{color:var(--mem-wall-lt-mid)}

  [data-theme="light"] .mem-wall-name-text{color:var(--mem-wall-lt-dark)}

  [data-theme="light"] .mem-wall-name-rank{color:var(--mem-wall-lt-mid)}

  [data-theme="light"] .mem-wall-name-eow{color:var(--mem-wall-lt-muted)}

  [data-theme="light"] .mem-wall-name-entry{border-bottom-color:var(--mem-wall-lt-bd)}

  [data-theme="light"] .mem-wall-name-entry:hover{background:var(--mem-wall-lt-hover)}

  [data-theme="light"] .mem-wall-highlighted .mem-wall-name-text{color:var(--mem-wall-gold)}

  [data-theme="light"] .mem-wall-panel-num{color:var(--mem-wall-lt-muted2)}

  [data-theme="light"] .mem-wall-progress-wrap{background:var(--mem-wall-lt-bg)}

  [data-theme="light"] .mem-wall-progress-bar{background:var(--mem-wall-lt-bd)}

  [data-theme="light"] .mem-wall-bottom-nav{background:var(--mem-wall-lt-bg)}

  [data-theme="light"] .mem-wall-back-top{background:var(--mem-wall-lt-surface2);border-color:var(--mem-wall-gold);color:var(--mem-wall-lt-text)}

  [data-theme="light"] .mem-wall-tabs{border-bottom-color:var(--mem-wall-lt-bd)}

  [data-theme="light"] .mem-wall-tab{color:var(--mem-wall-lt-mid);border-bottom-color:transparent}

  [data-theme="light"] .mem-wall-tab.active{color:var(--mem-wall-lt-text);border-bottom-color:var(--mem-wall-gold)}

  [data-theme="light"] .mem-wall-k9-soon{background:var(--mem-wall-lt-alt);border-color:var(--mem-wall-lt-div2);color:var(--mem-wall-lt-text)}

  [data-theme="light"] .mem-wall-k9-soon-sub{color:var(--mem-wall-lt-muted)}



/* ── Vigil Tabs ──────────────────────────────────────────────────── */

.mem-wall-tabs{display:flex;gap:0;border-bottom:1px solid var(--mem-wall-bd2);padding:0 2rem;background:var(--mem-wall-bg)}

.mem-wall-tab{background:none;border:none;border-bottom:2px solid transparent;padding:.7rem 1.4rem;font-size:.85rem;font-weight:600;color:var(--mem-wall-tab-c);cursor:pointer;margin-bottom:-1px;letter-spacing:.06em;font-family:Georgia,serif;transition:color .2s,border-color .2s}

.mem-wall-tab:hover{color:var(--mem-wall-text)}

.mem-wall-tab.active{color:var(--mem-wall-text-hi);border-bottom-color:var(--mem-wall-gold)}

.mem-wall-k9-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;background:var(--mem-wall-panel);border:1px solid var(--mem-wall-bd2);margin:1rem 1.5rem;text-align:center;padding:3rem}

.mem-wall-k9-soon-icon{font-size:48px;margin-bottom:1.5rem;opacity:.6}

.mem-wall-k9-soon-title{font-size:1.4rem;color:var(--mem-wall-text-hi);letter-spacing:.12em;font-family:Georgia,serif;margin-bottom:.75rem}

.mem-wall-k9-soon-sub{font-size:.85rem;color:var(--mem-wall-bd3);letter-spacing:.06em;font-family:Georgia,serif;line-height:1.8;max-width:500px}

.mem-wall-k9-soon-count{font-size:.75rem;color:var(--mem-wall-gold);letter-spacing:.1em;margin-top:1.5rem;font-family:Georgia,serif}




[data-theme="light"] .mem-wall-tabs{background:var(--mem-wall-lt-tabs);border-bottom-color:var(--mem-wall-lt-div2)}

[data-theme="light"] .mem-wall-tab{color:var(--mem-wall-lt-mid)}

[data-theme="light"] .mem-wall-tab.active{color:var(--mem-wall-lt-dark);border-bottom-color:var(--mem-wall-gold)}

[data-theme="light"] .mem-wall-panel{background:var(--mem-wall-lt-panel);border-color:var(--mem-wall-lt-panel-bd);border-top-color:var(--mem-wall-gold)}

[data-theme="light"] .mem-wall-granite-top{background:linear-gradient(90deg,transparent,var(--mem-wall-gold) 40%,var(--mem-wall-lt-grad-mid) 50%,var(--mem-wall-gold) 60%,transparent)}

[data-theme="light"] .mem-wall-name-entry{border-bottom-color:var(--mem-wall-lt-entry-bd)}

[data-theme="light"] .mem-wall-name-entry:hover{background:var(--mem-wall-lt-entry-hover)}

[data-theme="light"] .mem-wall-names{background:var(--mem-wall-lt-panel)}

[data-theme="light"] .mem-wall-col{background:var(--mem-wall-lt-panel)}




.mem-wall-found{display:flex;flex-direction:column;gap:4px;max-width:500px}

.mem-wall-result{font-size:.72rem;color:var(--mem-wall-text-hi);letter-spacing:.04em;cursor:pointer;padding:.2rem .4rem;border-bottom:1px solid var(--mem-wall-bd2);font-family:Georgia,serif;transition:color .15s}

.mem-wall-result:hover{color:var(--mem-wall-gold-hi)}

[data-theme="light"] .mem-wall-result{color:var(--mem-wall-lt-text);border-bottom-color:var(--mem-wall-lt-result-bd)}[data-theme="light"] .mem-wall-result:hover{color:var(--mem-wall-gold)}


/* ── The Vigil — Stream Mode ─────────────────────────────────────── */

.mem-wall-stream-wrap{background:var(--mem-wall-bg);min-height:100vh;display:flex;flex-direction:column}

.mem-wall-stream-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 2rem;background:var(--mem-wall-bg);border-bottom:1px solid var(--mem-wall-bd1)}

.mem-wall-stream-counter{font-size:.75rem;color:var(--mem-wall-bd5);letter-spacing:.1em;font-family:Georgia,serif}

.mem-wall-stream-btns{display:flex;gap:.75rem}

.mem-wall-stream-ctrl{background:var(--mem-wall-surface);border:1px solid var(--mem-wall-gold);color:var(--mem-wall-text-hi);padding:.4rem 1rem;font-family:Georgia,serif;font-size:.75rem;cursor:pointer;letter-spacing:.06em;border-radius:2px}

.mem-wall-stream-fallen{flex:1;background:var(--mem-wall-stream);border-top:3px solid var(--mem-wall-granite);position:relative;overflow:hidden;display:flex;align-items:center;min-height:160px;cursor:pointer}

.mem-wall-stream-shine{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--mem-wall-granite2) 40%,var(--mem-wall-granite3) 50%,var(--mem-wall-granite2) 60%,transparent)}

.mem-wall-stream-spotlight{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);width:320px;background:linear-gradient(90deg,transparent,rgba(200,180,100,0.05) 30%,rgba(200,180,100,0.1) 50%,rgba(200,180,100,0.05) 70%,transparent);pointer-events:none;z-index:2}

.mem-wall-stream-track{display:flex;align-items:center;gap:80px;padding:0 60px;white-space:nowrap;will-change:transform}

.mem-wall-stream-divider{height:1px;background:linear-gradient(90deg,transparent,var(--mem-wall-gold) 20%,var(--mem-wall-gold) 80%,transparent);flex-shrink:0}

.mem-wall-stream-sentinels{background:var(--mem-wall-stream-sentinel-bg);overflow:hidden;display:flex;align-items:center;min-height:70px;cursor:pointer}

.mem-wall-sentinel-track{gap:100px;padding:0 60px}

.mem-wall-stream-card{display:flex;align-items:center;gap:14px;flex-shrink:0;cursor:pointer;transition:opacity .2s}

.mem-wall-stream-card:hover{opacity:.8}

.mem-wall-stream-photo{width:48px;height:64px;object-fit:cover;border-radius:2px;border:1px solid var(--mem-wall-granite5);flex-shrink:0;background:var(--mem-wall-panel)}

.mem-wall-stream-photo-ph{width:48px;height:64px;border-radius:2px;border:1px solid var(--mem-wall-granite4);background:var(--mem-wall-panel3);display:flex;align-items:center;justify-content:center;flex-shrink:0}

.mem-wall-stream-info{display:flex;flex-direction:column;gap:2px}

.mem-wall-stream-name{font-size:15px;color:var(--mem-wall-name);letter-spacing:.04em;font-family:Georgia,serif;white-space:nowrap}

.mem-wall-stream-rank{font-size:11px;color:var(--mem-wall-found);letter-spacing:.04em;font-style:italic;font-family:Georgia,serif}

.mem-wall-stream-eow{font-size:11px;color:var(--mem-wall-stream-eow);letter-spacing:.04em;font-family:Georgia,serif}

.mem-wall-stream-agency{font-size:10px;color:var(--mem-wall-stream-agency);letter-spacing:.03em;font-family:Georgia,serif;max-width:200px;overflow:hidden;text-overflow:ellipsis}

.mem-wall-sentinel-card{display:flex;align-items:center;gap:10px;flex-shrink:0;cursor:pointer}

.mem-wall-sentinel-card:hover .mem-wall-sentinel-sname{color:var(--mem-wall-gold-hi)}

.mem-wall-sentinel-sname{font-size:13px;color:var(--mem-wall-sentinel-name);letter-spacing:.05em;font-family:Georgia,serif;white-space:nowrap}

.mem-wall-sentinel-sune{font-size:10px;color:var(--mem-wall-sentinel-une);letter-spacing:.04em;font-family:Georgia,serif}

.mem-wall-sentinel-swatch{font-size:9px;color:var(--mem-wall-sentinel-watch);letter-spacing:.08em;text-transform:uppercase;font-family:Georgia,serif}

[data-theme="light"] .mem-wall-stream-wrap{background:var(--mem-wall-lt-bg)}

[data-theme="light"] .mem-wall-stream-header{background:var(--mem-wall-lt-bg);border-bottom-color:var(--mem-wall-lt-bd)}

[data-theme="light"] .mem-wall-stream-counter{color:var(--mem-wall-lt-muted)}

[data-theme="light"] .mem-wall-stream-fallen{background:var(--mem-wall-lt-panel);border-top-color:var(--mem-wall-gold)}

[data-theme="light"] .mem-wall-stream-name{color:var(--mem-wall-lt-dark)}

[data-theme="light"] .mem-wall-stream-rank{color:var(--mem-wall-lt-mid)}

[data-theme="light"] .mem-wall-stream-eow{color:var(--mem-wall-lt-muted)}

[data-theme="light"] .mem-wall-stream-agency{color:var(--mem-wall-lt-muted2)}

[data-theme="light"] .mem-wall-stream-sentinels{background:var(--mem-wall-lt-stream-sen)}


.mem-wall-stream-fallen{min-height:unset;height:180px;flex-shrink:0}

.mem-wall-stream-sentinels{min-height:unset;height:70px;flex-shrink:0}

.mem-wall-stream-wrap{min-height:unset}


.mem-wall-stream-fallen{flex:none!important;height:180px!important}


.mem-wall-stream-photo{width:90px!important;height:120px!important}

.mem-wall-stream-name{font-size:20px!important}

.mem-wall-stream-rank{font-size:14px!important}

.mem-wall-stream-eow{font-size:13px!important}

.mem-wall-stream-agency{font-size:12px!important;max-width:260px!important}

.mem-wall-stream-card{gap:20px!important}

.mem-wall-stream-fallen{height:240px!important}


.mem-wall-stream-card{cursor:pointer!important}

.mem-wall-stream-track{pointer-events:auto}




/* ── Officer Grid — Column Toggle ────────────────────────────────── */

.mem-subject-grid.mem-cols-4{grid-template-columns:repeat(4,minmax(180px,1fr))!important}

.mem-subject-grid.mem-cols-6{grid-template-columns:repeat(6,minmax(150px,1fr))!important}

.mem-subject-grid.mem-cols-8{grid-template-columns:repeat(8,minmax(120px,1fr))!important}

@media(max-width:900px){

  .mem-subject-grid.mem-cols-4,.mem-subject-grid.mem-cols-6,.mem-subject-grid.mem-cols-8{grid-template-columns:repeat(3,minmax(0,1fr))}

}

@media(max-width:640px){

  .mem-subject-grid.mem-cols-4,.mem-subject-grid.mem-cols-6,.mem-subject-grid.mem-cols-8{grid-template-columns:repeat(2,minmax(0,1fr))}

}



/* ── Grid Toggle Controls ─────────────────────────────────────────── */

.mem-grid-toggle{display:flex;align-items:center;gap:.25rem;margin-left:auto}

.mem-grid-toggle-btn{background:none;border:1px solid var(--mem-border);border-radius:var(--mem-radius);padding:.3rem .55rem;cursor:pointer;transition:all var(--mem-trans);display:flex;align-items:center;gap:4px;color:var(--mem-t2);font-size:.72rem;font-weight:600;letter-spacing:.04em}

.mem-grid-toggle-btn:hover{border-color:var(--mem-gold-dim);color:var(--mem-t1)}

.mem-grid-toggle-btn.active{background:var(--mem-surface2);border-color:var(--mem-gold);color:var(--mem-gold)}

.mem-grid-toggle-btn svg{display:none}


.mem-view-toggle{display:flex;align-items:center;gap:.25rem;margin-left:.75rem}

.mem-view-btn{background:none;border:1px solid var(--mem-border);border-radius:var(--mem-radius);padding:.3rem .75rem;cursor:pointer;transition:all var(--mem-trans);color:var(--mem-t2);font-size:.72rem;font-weight:600;letter-spacing:.04em}

.mem-view-btn:hover{border-color:var(--mem-gold-dim);color:var(--mem-t1)}

.mem-view-btn.active{background:var(--mem-surface2);border-color:var(--mem-gold);color:var(--mem-gold)}

.mem-org-map-wrap{padding:0 1.5rem 2rem}

.mem-org-map{width:100%;height:70vh;min-height:500px;border-radius:var(--mem-radius);overflow:hidden;border:1px solid var(--mem-border)}




.mem-honor-tabs{display:flex;gap:0;border-bottom:1px solid var(--mem-border);margin:0 0 0 0;padding:0 2rem}

.mem-honor-tab{background:none;border:none;border-bottom:2px solid transparent;padding:.7rem 1.4rem;font-size:.85rem;font-weight:600;color:var(--mem-t2);cursor:pointer;margin-bottom:-1px;transition:color var(--mem-trans),border-color var(--mem-trans)}

.mem-honor-tab:hover{color:var(--mem-t1)}

.mem-honor-tab.active{color:var(--mem-gold);border-bottom-color:var(--mem-gold)}


/* ── Agency Card Redesign ── */

.mem-org-card{display:flex;flex-direction:column;background:var(--mem-surface);border-radius:var(--mem-radius-lg);overflow:hidden;border:1px solid var(--mem-border);border-left-width:4px;transition:transform var(--mem-trans),box-shadow var(--mem-trans)}

.mem-org-card:hover{transform:translateY(-2px);box-shadow:var(--mem-shadow)}

.mem-org-card[data-type="Police Department"]{border-left-color:var(--mem-blue)}

.mem-org-card[data-type="Sheriff's Office"]{border-left-color:var(--mem-gold)}

.mem-org-card[data-type="State Police"]{border-left-color:var(--mem-type-sp-bd)}

.mem-org-card[data-type="Highway Patrol"]{border-left-color:var(--mem-type-hp-bd)}

.mem-org-card[data-type="Federal Agency"]{border-left-color:var(--mem-type-fa-bd)}

.mem-org-card[data-type="Corrections"]{border-left-color:var(--mem-type-co-bd)}

.mem-org-card[data-type="University Police"]{border-left-color:var(--mem-type-up-bd)}

.mem-org-card[data-type="Transit Police"]{border-left-color:var(--mem-type-tt-bd)}

.mem-org-card[data-type="Other"]{border-left-color:var(--mem-border)}

.mem-org-card-body{display:flex;flex-direction:column;flex:1;padding:1rem}

.mem-org-patch-wrap{height:120px;display:flex;align-items:center;justify-content:center;margin-bottom:.75rem}

.mem-org-patch-wrap img{max-height:110px;max-width:110px;object-fit:contain}

.mem-org-patch-placeholder{width:56px;height:56px;display:flex;align-items:center;justify-content:center;opacity:.2}

.mem-org-patch-placeholder img{width:40px;height:40px}

.mem-org-name-v2{font-size:.85rem;font-weight:700;color:var(--mem-t1);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-align:center;margin-bottom:.25rem}

.mem-org-loc-v2{font-size:.72rem;color:var(--mem-t3);text-align:center;margin-bottom:.75rem;display:flex;align-items:center;justify-content:center;gap:.25rem}

.mem-org-loc-v2 img{width:11px;height:11px;opacity:.5;flex-shrink:0}

[data-theme="dark"] .mem-org-loc-v2 img{filter:invert(70%)}

[data-theme="light"] .mem-org-loc-v2 img{filter:invert(20%)}

.mem-org-divider{border:none;border-top:1px solid var(--mem-border);margin:.5rem 0}

.mem-org-kv{display:flex;justify-content:space-between;align-items:center;padding:.15rem 0;gap:.5rem}

.mem-org-kv-label{color:var(--mem-t3);text-transform:uppercase;letter-spacing:.06em;font-size:.65rem;flex-shrink:0}

.mem-org-kv-val{color:var(--mem-gold);font-weight:700;font-size:.8rem;text-align:right}

.mem-org-pills{display:flex;flex-wrap:wrap;gap:.3rem;margin:.5rem 0;align-items:center}

.mem-org-type-pill{font-size:.65rem;font-weight:600;padding:.2rem .5rem;border-radius:20px;letter-spacing:.01em;white-space:nowrap}

.mem-type-pd{background:rgba(26,56,112,0.15);color:var(--mem-type-pd-c);border:1px solid rgba(26,56,112,0.3)}

.mem-type-so{background:rgba(201,168,76,0.12);color:var(--mem-gold);border:1px solid rgba(201,168,76,0.3)}

.mem-type-sp{background:rgba(45,106,79,0.15);color:var(--mem-type-sp-c);border:1px solid rgba(45,106,79,0.3)}

.mem-type-hp{background:rgba(196,92,0,0.15);color:var(--mem-type-hp-c);border:1px solid rgba(196,92,0,0.3)}

.mem-type-fa{background:rgba(74,94,116,0.15);color:var(--mem-type-fa-c);border:1px solid rgba(74,94,116,0.3)}

.mem-type-co{background:rgba(122,26,26,0.15);color:var(--mem-type-co-c);border:1px solid rgba(122,26,26,0.3)}

.mem-type-up{background:rgba(45,79,106,0.15);color:var(--mem-type-up-c);border:1px solid rgba(45,79,106,0.3)}

.mem-type-tp{background:rgba(26,106,122,0.15);color:var(--mem-type-tp-c);border:1px solid rgba(26,106,122,0.3)}

.mem-type-ot{background:rgba(74,96,128,0.08);color:var(--mem-t3);border:1px solid var(--mem-border)}

.mem-cause-pill{font-size:.62rem;padding:.18rem .45rem;border-radius:20px;white-space:nowrap;font-weight:600}

.mem-cause-felonious{background:rgba(155,35,53,0.15);color:var(--mem-type-fel2-c);border:1px solid rgba(155,35,53,0.3)}

.mem-cause-accident{background:rgba(26,56,112,0.12);color:var(--mem-type-pd-c);border:1px solid rgba(26,56,112,0.25)}

.mem-cause-illness{background:rgba(45,106,79,0.12);color:var(--mem-type-sp-c);border:1px solid rgba(45,106,79,0.25)}

.mem-cause-cardiac{background:rgba(196,92,0,0.12);color:var(--mem-type-hp-c);border:1px solid rgba(196,92,0,0.25)}

.mem-cause-suicide{background:rgba(201,168,76,0.12);color:var(--mem-gold);border:1px solid rgba(201,168,76,0.25)}

.mem-org-une-v2{display:flex;align-items:center;gap:.35rem;font-size:.65rem;color:var(--mem-t3);margin-top:auto;padding-top:.5rem;overflow:hidden}

.mem-org-une-v2 a{display:flex;align-items:center;gap:.35rem;color:var(--mem-t3);text-decoration:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}

.mem-org-une-v2 a:hover{color:var(--mem-gold)}

.mem-org-une-v2 img{width:13px;height:13px;opacity:.4;flex-shrink:0}

[data-theme="dark"] .mem-org-une-v2 img{filter:invert(70%)}

[data-theme="light"] .mem-org-une-v2 img{filter:invert(20%)}

.mem-org-card-footer-v2{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;font-size:.75rem;font-weight:600;color:var(--mem-t2);text-decoration:none;border-top:1px solid var(--mem-border);transition:color var(--mem-trans),background var(--mem-trans)}

.mem-org-card-footer-v2:hover{color:var(--mem-gold);background:var(--mem-surface2);text-decoration:none}

.mem-org-footer-arrow{width:14px;height:14px;opacity:.5;flex-shrink:0}

[data-theme="dark"] .mem-org-footer-arrow{filter:invert(70%)}

[data-theme="light"] .mem-org-footer-arrow{filter:invert(20%)}

.mem-org-grid.mem-cols-6 .mem-cause-pill{display:none}


a.mem-org-patch-wrap{text-decoration:none;cursor:pointer}

a.mem-org-name-v2{color:var(--mem-t1);text-decoration:none}

a.mem-org-name-v2:hover{color:var(--mem-gold);text-decoration:none}



.mem-state-marker{background:var(--mem-gold);color:var(--mem-black);font-size:.65rem;font-weight:800;padding:2px 5px;border-radius:3px;cursor:pointer;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,0.3);letter-spacing:.05em;}

.mem-state-marker:hover{background:var(--mem-gold-dim);transform:scale(1.1);}



.mem-map-layout{display:flex;height:75vh;min-height:550px;}

.mem-map-sidebar{width:220px;flex-shrink:0;background:var(--mem-surface1);border-right:1px solid var(--mem-border);overflow-y:auto;padding:1rem 0;}

.mem-map-sidebar-section{padding:.75rem 1rem;border-bottom:1px solid var(--mem-border);}

.mem-map-sidebar-label{font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mem-t2);margin-bottom:.5rem;}

.mem-map-count{font-size:1.1rem;font-weight:700;color:var(--mem-gold);}

.mem-map-select{width:100%;background:var(--mem-surface2);border:1px solid var(--mem-border);border-radius:var(--mem-radius);color:var(--mem-t1);padding:.35rem .5rem;font-size:.8rem;}

.mem-map-toggle-wrap{display:flex;align-items:center;gap:.5rem;cursor:pointer;}

.mem-map-checkbox{accent-color:var(--mem-gold);width:16px;height:16px;cursor:pointer;}

.mem-map-toggle-label{font-size:.8rem;color:var(--mem-t1);}

.mem-map-legend{display:flex;flex-direction:column;gap:.35rem;}

.mem-legend-item{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--mem-t1);}

.mem-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}

.mem-map-btn{width:100%;padding:.45rem;background:var(--mem-gold);color:var(--mem-black);border:none;border-radius:var(--mem-radius);font-size:.78rem;font-weight:700;cursor:pointer;margin-bottom:.5rem;}

.mem-map-btn:hover{opacity:.85;}

.mem-map-btn-outline{background:none;border:1px solid var(--mem-border);color:var(--mem-t1);margin-bottom:0;}

.mem-map-btn-outline:hover{border-color:var(--mem-gold);color:var(--mem-gold);}

.mem-map-canvas-wrap{flex:1;position:relative;}

.mem-org-map{width:100%;height:100%;}





.mem-news{padding-bottom:3rem}

.mem-nnn-link{color:var(--mem-gold);text-decoration:none;font-weight:600}

.mem-nnn-link:hover{text-decoration:underline}

.mem-news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;padding:2rem 2rem 0}

.mem-news-card{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);overflow:hidden;transition:box-shadow var(--mem-trans),transform var(--mem-trans)}

.mem-news-card:hover{box-shadow:var(--mem-shadow);transform:translateY(-2px)}

.mem-news-card-link{display:block;text-decoration:none;color:var(--mem-t1)}

.mem-news-card-link:hover{text-decoration:none}

.mem-news-hero{width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--mem-surface2)}

.mem-news-hero img{width:100%;height:100%;object-fit:cover}

.mem-news-card-body{padding:1.25rem}

.mem-news-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}

.mem-news-label{font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:3px}

.mem-news-label-press{background:var(--mem-pill-bg);color:var(--mem-gold);border:1px solid var(--mem-pill-bd)}

.mem-news-label-announce{background:rgba(26,56,112,0.1);color:var(--mem-blue);border:1px solid rgba(26,56,112,0.2)}

.mem-news-label-feature{background:rgba(26,107,60,0.1);color:var(--mem-feat-c);border:1px solid rgba(26,107,60,0.2)}

.mem-news-source{font-size:.72rem;color:var(--mem-t2)}

.mem-news-headline{font-size:1.05rem;font-weight:700;line-height:1.35;margin-bottom:.5rem;color:var(--mem-t1)}

.mem-news-sub{font-size:.82rem;color:var(--mem-t2);line-height:1.5;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.mem-news-footer{display:flex;justify-content:space-between;align-items:center;padding-top:.75rem;border-top:1px solid var(--mem-border)}

.mem-news-date{font-size:.72rem;color:var(--mem-t3)}

.mem-news-read{font-size:.72rem;color:var(--mem-gold);font-weight:600}


/* ── Map Popup ───────────────────────────────────────────────────── */

.mem-map-popup .leaflet-popup-content-wrapper{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius);box-shadow:var(--mem-shadow);color:var(--mem-t1)}

.mem-map-popup .leaflet-popup-tip{background:var(--mem-surface)}

.mem-map-popup .leaflet-popup-content{margin:12px 14px}

.mem-popup-inner{text-align:center;min-width:180px}

.mem-popup-patch{width:64px;height:64px;object-fit:contain;margin-bottom:8px;display:block;margin-left:auto;margin-right:auto}

.mem-popup-name{font-weight:700;font-size:13px;line-height:1.3;color:var(--mem-t1);margin-bottom:4px}

.mem-popup-type{display:inline-block;padding:2px 8px;border-radius:3px;font-size:10px;font-weight:700;color:var(--mem-white);margin-bottom:4px}

.mem-popup-loc{font-size:11px;color:var(--mem-t2);margin-top:4px}

.mem-popup-stats{font-size:12px;margin-top:6px;color:var(--mem-t1)}

.mem-popup-span{color:var(--mem-t2)}

.mem-popup-btn{display:inline-block;margin-top:10px;padding:5px 14px;background:var(--mem-gold);color:var(--mem-btn-dark);border-radius:var(--mem-radius);font-size:11px;font-weight:700;text-decoration:none}

.mem-popup-btn:hover{opacity:.88;text-decoration:none}



.mem-org-tabs{border-bottom:1px solid var(--mem-border);background:var(--mem-surface);position:sticky;top:var(--mem-topbar-h);z-index:50;}

.mem-org-tabs-inner{display:flex;align-items:center;gap:0;padding:0 2rem;max-width:var(--mem-max-w);margin:0 auto;}

.mem-org-tab{display:block;padding:.85rem 1.25rem;font-size:.85rem;font-weight:600;color:var(--mem-t2);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-1px;transition:all var(--mem-trans);white-space:nowrap;}

.mem-org-tab:hover{color:var(--mem-t1);text-decoration:none;}

.mem-org-tab.active{color:var(--mem-gold);border-bottom-color:var(--mem-gold);}

.mem-sacrifice-wrap{padding:2rem;max-width:1200px;margin:0 auto;}

.mem-sacrifice-narrative{background:var(--mem-surface);border:1px solid var(--mem-border);border-left:4px solid var(--mem-gold);border-radius:var(--mem-radius-lg);padding:1.5rem 2rem;margin-bottom:2rem;}

.mem-sacrifice-lead{font-size:1.05rem;line-height:1.7;color:var(--mem-t1);margin-bottom:.75rem;}

.mem-sacrifice-lead:last-child{margin-bottom:0;}

.mem-sacrifice-body{font-size:.9rem;line-height:1.7;color:var(--mem-t2);margin-bottom:.6rem;}

.mem-sacrifice-body:last-child{margin-bottom:0;}

.mem-sacrifice-honored{color:var(--mem-gold)!important;font-style:italic;}

.mem-sacrifice-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem;}

@media(max-width:900px){.mem-sacrifice-charts-row{grid-template-columns:1fr;}}

.mem-sacrifice-chart-card{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1.5rem;}

.mem-sacrifice-chart-card.mem-sacrifice-chart-wide{margin-bottom:1.5rem;}

.mem-sacrifice-chart-title{font-size:1rem;font-weight:700;color:var(--mem-t1);margin-bottom:.3rem;}

.mem-sacrifice-chart-sub{font-size:.78rem;color:var(--mem-t2);margin-bottom:1rem;}

.mem-sacrifice-chart-wrap{position:relative;height:240px;}

.mem-sacrifice-chart-tall{height:200px;}

.mem-sacrifice-legend{display:flex;flex-direction:column;gap:.4rem;margin-top:1rem;}

.mem-sac-legend-item{display:flex;align-items:center;gap:.5rem;font-size:.78rem;}

.mem-sac-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}

.mem-sac-legend-label{flex:1;color:var(--mem-t2);}

.mem-sac-legend-val{color:var(--mem-t1);font-weight:600;}

.mem-sacrifice-benchmark-note{font-size:.72rem;color:var(--mem-t3);margin-top:.75rem;font-style:italic;}

.mem-sacrifice-oneInX{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1.5rem;margin-top:1.5rem;}

.mem-sacrifice-oneInX-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:1rem;}

.mem-sacrifice-oneInX-card{background:var(--mem-surface2);border-radius:var(--mem-radius);padding:1rem;text-align:center;}

.mem-sacrifice-oneInX-num{font-size:1.6rem;font-weight:800;color:var(--mem-gold);margin-bottom:.4rem;}

.mem-sacrifice-oneInX-label{font-size:.75rem;color:var(--mem-t2);line-height:1.4;}

.mem-sacrifice-oneInX-honored .mem-sacrifice-oneInX-num{color:var(--mem-gold);}

.mem-stat-honored .mem-org-stat-num{color:var(--mem-gold);}
.mem-dot-pd{background:var(--mem-blue)}

.mem-dot-so{background:var(--mem-gold)}

.mem-dot-sp{background:var(--mem-type-sp-bd)}

.mem-dot-hp{background:var(--mem-type-hp-bd)}

.mem-dot-fa{background:var(--mem-type-fa-bd)}

.mem-dot-co{background:var(--mem-type-co-bd)}

.mem-dot-up{background:var(--mem-type-up-bd)}

.mem-dot-tp{background:var(--mem-type-tt-bd)}

.mem-dot-ot{background:var(--mem-wall-bd5)}

.mem-wall-stream-wrap{display:none;flex-direction:column;min-height:100vh;background:var(--mem-wall-bg)}


.mem-sentinel-tab-hero{background:var(--mem-surface);border:1px solid var(--mem-border);border-left:4px solid var(--mem-gold);border-radius:var(--mem-radius-lg);padding:1.5rem 2rem;margin-bottom:1.5rem;}

.mem-sentinel-tab-title{font-size:1.4rem;font-weight:800;color:var(--mem-t1);margin-bottom:.75rem;line-height:1.3;}

.mem-sentinel-tab-lead{font-size:1rem;line-height:1.7;color:var(--mem-t2);}

.mem-sentinel-tab-lead strong{color:var(--mem-t1);}

.mem-sentinel-tab-what{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1.5rem 2rem;margin-bottom:1.5rem;}

.mem-sentinel-tab-section{font-size:1rem;font-weight:700;color:var(--mem-gold);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;}

.mem-sentinel-tab-body{font-size:.9rem;line-height:1.7;color:var(--mem-t2);margin-bottom:.6rem;}

.mem-sentinel-tab-body em{color:var(--mem-t1);font-style:italic;}

.mem-sentinel-tab-body:last-child{margin-bottom:0;}

.mem-sentinel-tab-current{margin-bottom:1.5rem;}

.mem-sentinel-tab-cta{display:block;width:100%;padding:1.1rem;background:var(--mem-gold);color:#fff;text-align:center;font-size:1rem;font-weight:800;border-radius:var(--mem-radius-lg);text-decoration:none;letter-spacing:.02em;transition:opacity var(--mem-trans);}

.mem-sentinel-tab-cta:hover{opacity:.88;text-decoration:none;color:#000;}



.mem-patches-hero{background:var(--mem-bg);border-bottom:1px solid var(--mem-border);padding:1.5rem 2rem 0}

.mem-patches-hero-inner{max-width:var(--mem-max-w);margin:0 auto}

.mem-patches-eyebrow{font-size:.65rem;letter-spacing:.16em;color:var(--mem-gold);text-transform:uppercase;margin-bottom:.6rem;font-weight:700}

.mem-patches-h1{font-size:2rem;font-weight:800;color:var(--mem-t1);line-height:1.2;margin-bottom:.65rem}

.mem-patches-sub{font-size:.88rem;color:var(--mem-t2);max-width:500px;line-height:1.7;margin-bottom:1.5rem}

.mem-patches-stats{display:flex;gap:2rem;flex-wrap:wrap}

.mem-patches-stat-num{font-size:1.4rem;font-weight:800;color:var(--mem-gold);display:block}

.mem-patches-stat-lbl{font-size:.62rem;color:var(--mem-t3);letter-spacing:.08em;text-transform:uppercase}

.mem-patches-historic{background:var(--mem-surface);border-bottom:1px solid var(--mem-border);padding:1.25rem 2rem}

.mem-patches-historic-label{font-size:.62rem;letter-spacing:.14em;color:var(--mem-gold);text-transform:uppercase;margin-bottom:.85rem;font-weight:700}

.mem-patches-historic-scroll{display:flex;gap:1.25rem;overflow-x:auto;padding-bottom:.25rem}

.mem-patches-hcard{flex-shrink:0;text-align:center;width:120px;text-decoration:none;color:var(--mem-t1)}

.mem-patches-hcard:hover{text-decoration:none}

.mem-patches-hcard:hover .mem-patches-hname{color:var(--mem-gold)}

.mem-patches-hring{width:68px;height:68px;border-radius:50%;background:var(--mem-surface2);border:1px solid var(--mem-border);display:flex;align-items:center;justify-content:center;margin:0 auto .5rem;overflow:hidden}

.mem-patches-hring img{max-width:80%;max-height:80%;object-fit:contain}

.mem-patches-hname{font-size:.68rem;color:var(--mem-t1);line-height:1.3;margin-bottom:.15rem;transition:color var(--mem-trans)}

.mem-patches-hsub{font-size:.6rem;color:var(--mem-t3)}

.mem-patches-controls{background:var(--mem-surface);border-bottom:1px solid var(--mem-border);padding:.85rem 2rem;display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;position:sticky;top:var(--mem-topbar-h);z-index:50}

.mem-patches-search-wrap{flex:1;min-width:180px;position:relative}

.mem-patches-search-icon{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);width:14px;height:14px;opacity:.4}

.mem-patches-search{width:100%;background:var(--mem-surface2);border:1px solid var(--mem-border);border-radius:var(--mem-radius);color:var(--mem-t1);padding:.4rem .6rem .4rem 2rem;font-size:.82rem}

.mem-patches-select{background:var(--mem-surface2);border:1px solid var(--mem-border);border-radius:var(--mem-radius);color:var(--mem-t1);padding:.4rem .6rem;font-size:.82rem}

.mem-patches-missing-toggle{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--mem-t2);cursor:pointer;white-space:nowrap}

.mem-patches-result-bar{padding:.5rem 2rem;font-size:.75rem;color:var(--mem-t3)}

.mem-patches-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1px;background:var(--mem-border)}

.mem-patch-card{background:var(--mem-surface);padding:1.1rem .85rem .85rem;display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--mem-t1);position:relative;transition:background var(--mem-trans)}

.mem-patch-card:hover{background:var(--mem-surface2);text-decoration:none}

.mem-patch-card:hover .mem-patch-card-name{color:var(--mem-gold)}

.mem-patch-card-missing{opacity:.55}

.mem-patch-card .mem-org-type-pill{position:absolute;top:.5rem;left:.5rem;font-size:.55rem;padding:2px 5px}

.mem-patch-card-era{font-size:.58rem;color:var(--mem-gold);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.65rem;margin-top:.15rem;font-weight:700}

.mem-patch-card-img{width:100px;height:100px;display:flex;align-items:center;justify-content:center;margin-bottom:.85rem}

.mem-patch-card-img img{max-width:100%;max-height:100%;object-fit:contain}

.mem-patches-placeholder-icon{width:64px;height:64px;opacity:.15}

.mem-patch-card-name{font-size:.75rem;font-weight:700;color:var(--mem-t1);text-align:center;line-height:1.3;margin-bottom:.25rem;transition:color var(--mem-trans)}

.mem-patch-card-loc{font-size:.65rem;color:var(--mem-t3);text-align:center}

.mem-patch-card-off{font-size:.62rem;color:var(--mem-t2);text-align:center;margin-top:.35rem}

.mem-patch-needs{color:var(--mem-gold)}

.mem-patches-footer{background:var(--mem-surface);border-top:1px solid var(--mem-border);padding:1.5rem 2rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}

.mem-patches-footer-text{font-size:.82rem;color:var(--mem-t2);line-height:1.6;max-width:480px}

.mem-patches-footer-text strong{color:var(--mem-t1)}

.mem-patches-footer-btns{display:flex;gap:.6rem;flex-wrap:wrap}

.mem-patches-btn-primary{background:var(--mem-gold);color:var(--mem-bg);padding:.55rem 1.25rem;border-radius:var(--mem-radius);font-size:.8rem;font-weight:700;text-decoration:none;border:none;cursor:pointer}

.mem-patches-btn-primary:hover{opacity:.88;text-decoration:none;color:var(--mem-bg)}

.mem-patches-btn-outline{background:transparent;color:var(--mem-gold);border:1px solid var(--mem-gold);padding:.55rem 1.25rem;border-radius:var(--mem-radius);font-size:.8rem;cursor:pointer}

.mem-patches-btn-outline:hover{opacity:.88}



.mem-pd-layout{display:grid;grid-template-columns:500px 1fr;gap:3rem;padding:2rem 2rem 0;max-width:1200px;margin:0 auto}

@media(max-width:800px){.mem-pd-layout{grid-template-columns:1fr}}

.mem-pd-left{display:flex;flex-direction:column;align-items:center;gap:1rem}

.mem-pd-patch-frame{width:480px;height:480px;background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);display:flex;align-items:center;justify-content:center;padding:1.5rem}

.mem-pd-patch-img{max-width:100%;max-height:100%;object-fit:contain}

.mem-pd-patch-missing{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}

.mem-pd-patch-placeholder{width:100px;height:100px;opacity:.15}

.mem-pd-no-patch{font-size:.85rem;color:var(--mem-t3)}

.mem-pd-sponsor-btn{background:var(--mem-gold);color:var(--mem-bg);padding:.5rem 1.25rem;border-radius:var(--mem-radius);font-size:.8rem;font-weight:700;text-decoration:none}

.mem-pd-patch-meta{display:flex;flex-direction:column;align-items:center;gap:.2rem}

.mem-pd-patch-meta-label{font-size:.65rem;color:var(--mem-t3);text-transform:uppercase;letter-spacing:.08em}

.mem-pd-patch-meta-val{font-size:.75rem;color:var(--mem-t2)}

.mem-pd-eyebrow{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}

.mem-pd-country{font-size:.7rem;font-weight:700;color:var(--mem-t2);padding:2px 8px;border:1px solid var(--mem-border);border-radius:3px}

.mem-pd-name{font-size:1.8rem;font-weight:800;color:var(--mem-t1);line-height:1.2;margin-bottom:.5rem}

.mem-pd-loc{font-size:.85rem;color:var(--mem-t2);display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem}

.mem-pd-une{margin-bottom:.5rem}

.mem-pd-divider{height:1px;background:var(--mem-border);margin:1.25rem 0}

.mem-pd-story-text{font-size:.92rem;line-height:1.7;color:var(--mem-t2)}

.mem-pd-story-text strong{color:var(--mem-t1)}

.mem-pd-actions{display:flex;gap:.75rem;flex-wrap:wrap}

.mem-pd-btn-primary{background:var(--mem-gold);color:var(--mem-bg);padding:.6rem 1.4rem;border-radius:var(--mem-radius);font-size:.85rem;font-weight:700;text-decoration:none}

.mem-pd-btn-primary:hover{opacity:.88;text-decoration:none;color:var(--mem-bg)}

.mem-pd-btn-outline{background:transparent;color:var(--mem-gold);border:1px solid var(--mem-gold);padding:.6rem 1.4rem;border-radius:var(--mem-radius);font-size:.85rem;text-decoration:none}

.mem-pd-btn-outline:hover{opacity:.88;text-decoration:none}

.mem-pd-officers{padding:2rem;max-width:1100px;margin:0 auto}

.mem-pd-officers-title{font-size:1.1rem;font-weight:700;color:var(--mem-t1);margin-bottom:1rem}



.mem-pd-layout{display:grid;grid-template-columns:500px 1fr;gap:3rem;padding:2rem 2rem 0;max-width:1200px;margin:0 auto}

@media(max-width:800px){.mem-pd-layout{grid-template-columns:1fr}}

.mem-pd-left{display:flex;flex-direction:column;align-items:center;gap:1rem}

.mem-pd-patch-frame{width:480px;height:480px;background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);display:flex;align-items:center;justify-content:center;padding:1.5rem}

.mem-pd-patch-img{max-width:100%;max-height:100%;object-fit:contain}

.mem-pd-patch-missing{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}

.mem-pd-patch-placeholder{width:100px;height:100px;opacity:.15}

.mem-pd-no-patch{font-size:.85rem;color:var(--mem-t3)}

.mem-pd-sponsor-btn{background:var(--mem-gold);color:var(--mem-bg);padding:.5rem 1.25rem;border-radius:var(--mem-radius);font-size:.8rem;font-weight:700;text-decoration:none}

.mem-pd-patch-meta{display:flex;flex-direction:column;align-items:center;gap:.2rem}

.mem-pd-patch-meta-label{font-size:.65rem;color:var(--mem-t3);text-transform:uppercase;letter-spacing:.08em}

.mem-pd-patch-meta-val{font-size:.75rem;color:var(--mem-t2)}

.mem-pd-eyebrow{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}

.mem-pd-country{font-size:.7rem;font-weight:700;color:var(--mem-t2);padding:2px 8px;border:1px solid var(--mem-border);border-radius:3px}

.mem-pd-name{font-size:1.8rem;font-weight:800;color:var(--mem-t1);line-height:1.2;margin-bottom:.5rem}

.mem-pd-loc{font-size:.85rem;color:var(--mem-t2);display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem}

.mem-pd-une{margin-bottom:.5rem}

.mem-pd-divider{height:1px;background:var(--mem-border);margin:1.25rem 0}

.mem-pd-story-text{font-size:.92rem;line-height:1.7;color:var(--mem-t2)}

.mem-pd-story-text strong{color:var(--mem-t1)}

.mem-pd-actions{display:flex;gap:.75rem;flex-wrap:wrap}

.mem-pd-btn-primary{background:var(--mem-gold);color:var(--mem-bg);padding:.6rem 1.4rem;border-radius:var(--mem-radius);font-size:.85rem;font-weight:700;text-decoration:none}

.mem-pd-btn-primary:hover{opacity:.88;text-decoration:none;color:var(--mem-bg)}

.mem-pd-btn-outline{background:transparent;color:var(--mem-gold);border:1px solid var(--mem-gold);padding:.6rem 1.4rem;border-radius:var(--mem-radius);font-size:.85rem;text-decoration:none}

.mem-pd-btn-outline:hover{opacity:.88;text-decoration:none}

.mem-pd-officers{padding:2rem;max-width:1100px;margin:0 auto}

.mem-pd-officers-title{font-size:1.1rem;font-weight:700;color:var(--mem-t1);margin-bottom:1rem}



.mem-pd-view-all{text-align:center;padding:1rem 2rem 2rem;max-width:1100px;margin:0 auto}

.mem-pd-view-all-link{font-size:.85rem;color:var(--mem-gold);font-weight:700;text-decoration:none;border:1px solid var(--mem-gold);padding:.5rem 1.5rem;border-radius:var(--mem-radius)}

.mem-pd-view-all-link:hover{background:var(--mem-gold);color:var(--mem-bg);text-decoration:none}



.mem-pd-history{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius);padding:1rem 1.25rem;margin:1rem 0}

.mem-pd-history-text{font-size:.85rem;line-height:1.7;color:var(--mem-t2);margin-bottom:.5rem}

.mem-pd-history-source{font-size:.72rem;color:var(--mem-gold);text-decoration:none;font-weight:700}

.mem-pd-history-source:hover{text-decoration:underline}



.mem-pd-nav-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 2rem;border-bottom:1px solid var(--mem-border);max-width:1100px;margin:0 auto;width:100%}

.mem-pd-prevnext{display:flex;align-items:center;gap:1rem}

.mem-pd-prev,.mem-pd-next{display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--mem-gold);text-decoration:none;font-weight:700;padding:.35rem .75rem;border:1px solid var(--mem-gold);border-radius:var(--mem-radius)}

.mem-pd-prev:hover,.mem-pd-next:hover{background:var(--mem-gold);color:var(--mem-bg);text-decoration:none}




/* ── Roll of Honor — Command Bar ─────────────────────────────────── */

.mem-honor-command{display:flex;align-items:flex-end;justify-content:space-between;padding:1.75rem 2rem 0;border-bottom:1px solid var(--mem-border);background:var(--mem-bg);gap:2rem;flex-wrap:wrap}

.mem-honor-command-left{min-width:0}

.mem-honor-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:900;color:var(--mem-t1);letter-spacing:-.02em;line-height:1.1;margin-bottom:.35rem}

.mem-honor-sub{font-size:.85rem;color:var(--mem-t3);margin-bottom:1rem}

.mem-honor-command-tabs{display:flex;gap:0;flex-shrink:0;align-self:flex-end}

.mem-honor-tab{background:none;border:none;border-bottom:2px solid transparent;padding:.75rem 1.4rem;font-size:.85rem;font-weight:600;color:var(--mem-t3);cursor:pointer;margin-bottom:-1px;transition:color var(--mem-trans),border-color var(--mem-trans);white-space:nowrap}

.mem-honor-tab:hover{color:var(--mem-t1)}

.mem-honor-tab.active{color:var(--mem-gold);border-bottom-color:var(--mem-gold)}

/* ── Search Bar ───────────────────────────────────────────────────── */

.mem-honor-search-bar{padding:1rem 2rem;background:var(--mem-bg);border-bottom:1px solid var(--mem-border)}

.mem-honor-search-inner{position:relative}

.mem-honor-search-inner .mem-search-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:.35}

[data-theme="dark"] .mem-honor-search-inner .mem-search-icon{filter:invert(80%)}

[data-theme="light"] .mem-honor-search-inner .mem-search-icon{filter:invert(20%)}

.mem-honor-search-inner .mem-search-input{width:100%;font-size:.95rem;padding:.75rem .875rem .75rem 2.5rem;background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius);color:var(--mem-t1);outline:none;transition:border-color var(--mem-trans)}

.mem-honor-search-inner .mem-search-input:focus{border-color:var(--mem-gold)}

/* ── Filters Bar ──────────────────────────────────────────────────── */

.mem-honor-filters-bar{padding:.6rem 2rem;background:var(--mem-surface);border-bottom:1px solid var(--mem-border);position:sticky;top:var(--mem-topbar-h);z-index:50}

.mem-honor-filters-inner{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}

.mem-honor-filters-inner .mem-filter-select{background:var(--mem-bg);border:1px solid var(--mem-border);color:var(--mem-t1);font-size:.8rem;padding:.4rem .65rem;border-radius:var(--mem-radius);outline:none;cursor:pointer;transition:border-color var(--mem-trans)}

.mem-honor-filters-inner .mem-filter-select:focus{border-color:var(--mem-gold)}

.mem-honor-filters-inner .mem-filter-select:disabled{opacity:.4;cursor:not-allowed}

.mem-filter-year-range{display:flex;align-items:center;gap:.3rem}

.mem-filter-year-sep{font-size:.75rem;color:var(--mem-t3)}

.mem-honor-filters-inner .mem-filter-year{background:var(--mem-bg);border:1px solid var(--mem-border);color:var(--mem-t1);font-size:.8rem;padding:.4rem .5rem;border-radius:var(--mem-radius);outline:none;width:72px;transition:border-color var(--mem-trans)}

.mem-honor-filters-inner .mem-filter-year:focus{border-color:var(--mem-gold)}

.mem-honor-filters-inner .mem-filter-input{background:var(--mem-bg);border:1px solid var(--mem-border);color:var(--mem-t1);font-size:.8rem;padding:.4rem .65rem;border-radius:var(--mem-radius);outline:none;width:110px;transition:border-color var(--mem-trans)}

.mem-honor-filters-inner .mem-filter-input:focus{border-color:var(--mem-gold)}

.mem-honor-filters-inner .mem-filter-clear{background:none;border:1px solid var(--mem-border);color:var(--mem-t3);font-size:.78rem;padding:.4rem .875rem;border-radius:var(--mem-radius);cursor:pointer;transition:all var(--mem-trans);margin-left:auto}

.mem-honor-filters-inner .mem-filter-clear:hover{border-color:var(--mem-gold);color:var(--mem-gold)}

/* ── Results Bar ──────────────────────────────────────────────────── */

.mem-honor-results-bar{padding:.65rem 2rem;border-bottom:1px solid var(--mem-border);background:var(--mem-bg);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}

.mem-honor-results-bar .mem-result-count{font-size:.8rem;color:var(--mem-t3);font-weight:600}

.mem-honor-results-bar .mem-pagination-top{flex:1;display:flex;justify-content:center}

@media(max-width:900px){.mem-honor-command{padding:1.25rem 1rem 0}.mem-honor-search-bar{padding:.75rem 1rem}.mem-honor-filters-bar{padding:.5rem 1rem}.mem-honor-results-bar{padding:.5rem 1rem}.mem-honor-command-tabs{width:100%}}










.mem-card-agency-link{font-size:.72rem;color:var(--mem-t3);line-height:1.4;text-decoration:none;display:block}

.mem-card-agency-link:hover{color:var(--mem-gold);text-decoration:none}












.mem-card-photo-wrap::after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:transparent}

.mem-card-photo-wrap[data-cause="felonious"]::after{background:var(--mem-cause-felonious)}

.mem-card-photo-wrap[data-cause="accident"]::after{background:#1a3870}

.mem-card-photo-wrap[data-cause="illness"]::after{background:#2d6a4f}

.mem-card-photo-wrap[data-cause="cardiac"]::after{background:var(--mem-cause-cardiac)}

.mem-card-photo-wrap[data-cause="suicide"]::after{background:var(--mem-gold)}

.mem-card-photo-wrap[data-cause="undetermined"]::after{background:var(--mem-t3)}




/* Officer hero right column — flag + citations */

.mem-subject-hero-inner { display:flex; align-items:flex-start; gap:var(--sp-4); }

.mem-subject-identity { flex:1; }

.mem-subject-hero-right { display:flex; flex-direction:column; align-items:flex-end; gap:var(--sp-2); min-width:120px; }

/* duplicate .mem-subject-flag removed (see consolidated block below) */

.mem-subject-citations { text-align:right; }

.mem-subject-citations-label { font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ds-t3); margin-bottom:4px; }

.mem-subject-citation-item { font-size:.8rem; color:var(--ds-gold); font-weight:600; margin-bottom:2px; }




/* ── Officer page redesign ──────────────────────────────── */

.mem-subject-hero{background:var(--mem-surface);border-bottom:1px solid var(--mem-border);padding:2rem 2rem 1.75rem;border-top:3px solid var(--mem-gold)}

.mem-subject-hero-inner{display:flex;gap:2rem;align-items:flex-start;width:100%;max-width:none;margin:0}

.mem-subject-photo-col{flex-shrink:0;position:relative}

.mem-subject-photo{width:200px;height:280px;object-fit:cover;object-position:top;border-radius:var(--mem-radius-lg);border:2px solid var(--mem-border)}

.mem-subject-patch-slot{position:absolute;bottom:-14px;right:-14px}

.mem-subject-patch-badge{width:56px;height:56px;border-radius:50%;border:2px solid var(--mem-border);background:var(--mem-surface2);object-fit:contain;padding:3px}

.mem-subject-identity{flex:1;min-width:0}

.mem-subject-agency-link{color:var(--mem-t1);text-decoration:none;border-bottom:1px solid var(--mem-border)}

.mem-subject-agency-link:hover{color:var(--mem-gold);border-bottom-color:var(--mem-gold)}

.mem-subject-hero-flag{flex-shrink:0;display:flex;align-items:flex-start;padding-top:.25rem}

/* duplicate .mem-subject-flag removed (see consolidated block below) */

.mem-subject-dignity-bar{background:var(--mem-stats-bg);border-bottom:1px solid var(--mem-border);padding:1.1rem 2rem;display:flex;align-items:center;flex-wrap:wrap}

.mem-dignity-eow{flex-shrink:0;padding-right:2rem;margin-right:2rem;border-right:1px solid var(--mem-border);display:flex;flex-direction:column;gap:.2rem}

.mem-dignity-eow-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--mem-t3)}

.mem-dignity-eow-date{font-size:1.2rem;font-weight:800;color:var(--mem-gold);letter-spacing:-.01em;line-height:1}

.mem-dignity-stats{display:flex;flex:1;flex-wrap:wrap}

.mem-dignity-stat{flex:1;min-width:90px;padding:.15rem 1.25rem;border-right:1px solid var(--mem-border);display:flex;flex-direction:column;gap:.2rem}

.mem-dignity-stat:last-child{border-right:none}

.mem-dignity-stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--mem-t3)}

.mem-dignity-stat-value{font-size:.9375rem;font-weight:700;color:var(--mem-t1)}

.mem-dignity-vigil-link{color:var(--mem-gold);text-decoration:none;font-weight:700}

.mem-dignity-vigil-link:hover{text-decoration:underline}

.mem-subject-body-full{grid-template-columns:1fr!important;width:100%}

@media(max-width:640px){.mem-subject-photo{width:130px;height:180px}.mem-subject-dignity-bar{flex-direction:column;align-items:flex-start;gap:1rem}.mem-dignity-eow{border-right:none;padding-right:0;margin-right:0;border-bottom:1px solid var(--mem-border);padding-bottom:1rem;width:100%}.mem-dignity-stat{min-width:80px}}


.mem-subject-back-nav{display:flex;align-items:center;justify-content:space-between}

.mem-subject-back-left{display:flex;align-items:center}

.mem-subject-prevnext{display:flex;align-items:center;gap:.5rem}

.mem-prevnext-btn{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--mem-t2);text-decoration:none;padding:.3rem .75rem;border:1px solid var(--mem-border);border-radius:var(--mem-radius);background:var(--mem-surface);transition:color .15s,border-color .15s}

.mem-prevnext-btn:hover{color:var(--mem-gold);border-color:var(--mem-gold)}

.mem-prevnext-icon{width:14px;height:14px;opacity:.6}




/* ── Officer tab system ─────────────────────────────────── */

.mem-subject-tabs{display:flex;border-bottom:2px solid var(--mem-border);background:var(--mem-surface);padding:0 2rem;gap:0}

.mem-subject-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.85rem 1.25rem;font-size:.875rem;font-weight:600;color:var(--mem-t2);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;white-space:nowrap}

.mem-subject-tab:hover{color:var(--mem-t1)}

.mem-subject-tab.active{color:var(--mem-gold);border-bottom-color:var(--mem-gold)}

.mem-subject-tab-count{font-size:.7rem;font-weight:700;background:var(--mem-surface2);color:var(--mem-t3);padding:1px 6px;border-radius:10px}

.mem-subject-tab-panel{display:none}

.mem-subject-tab-panel.active{display:flex;flex-direction:column;gap:1.5rem}



/* ── Sacrifice tab ──────────────────────────────────────── */

.mem-sac-narrative{border-left:3px solid var(--mem-gold);background:var(--mem-surface)}

.mem-sac-lead{font-size:1rem;line-height:1.8;color:var(--mem-t1);margin-bottom:.75rem}

.mem-sac-body{font-size:.9rem;line-height:1.75;color:var(--mem-t2);margin-bottom:.5rem}

.mem-sac-compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}

.mem-sac-compare-card{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}

.mem-sac-compare-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mem-t3)}

.mem-sac-compare-num{font-size:2rem;font-weight:900;color:var(--mem-gold);line-height:1;letter-spacing:-.02em}

.mem-sac-compare-sub{font-size:.75rem;color:var(--mem-t3)}

.mem-sac-compare-pct{font-size:.8rem;font-weight:600;color:var(--mem-t2)}

.mem-sac-compare-bar-wrap{height:4px;background:var(--mem-surface2);border-radius:2px;margin-top:.25rem}

.mem-sac-compare-bar{height:4px;background:var(--mem-gold);border-radius:2px;transition:width .4s ease}

.mem-sac-chart-bars{display:flex;flex-direction:column;gap:.75rem}

.mem-sac-bar-row{display:grid;grid-template-columns:100px 1fr 80px;align-items:center;gap:.75rem}

.mem-sac-bar-row.mem-sac-bar-highlight .mem-sac-bar-label{color:var(--mem-gold);font-weight:700}

.mem-sac-bar-label{font-size:.8rem;color:var(--mem-t2);text-align:right}

.mem-sac-bar-track{height:8px;background:var(--mem-surface2);border-radius:4px;overflow:hidden}

.mem-sac-bar-fill{height:8px;border-radius:4px;transition:width .4s ease}

.mem-sac-bar-val{font-size:.8rem;font-weight:600;color:var(--mem-t1)}

.mem-sac-bar-pct{color:var(--mem-t3);font-weight:400}


.mem-subject-tab-panel.active .mem-subject-grid{display:grid}






.mem-subject-tab-panel .mem-card-cause{align-self:flex-start;width:auto}




/* ── Sacrifice tab stat row ─────────────────────────────────────────────── */

.mem-sacrifice-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2rem;}

@media(max-width:900px){.mem-sacrifice-stat-row{grid-template-columns:repeat(2,1fr);}}

@media(max-width:500px){.mem-sacrifice-stat-row{grid-template-columns:1fr;}}

.mem-sacrifice-stat{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1.25rem 1.5rem;}

.mem-sacrifice-stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--mem-t3);margin-bottom:.4rem;}

.mem-sacrifice-stat-val{font-size:1.75rem;font-weight:900;color:var(--mem-t1);letter-spacing:-.02em;line-height:1;}

.mem-sacrifice-stat-sub{font-size:.78rem;color:var(--mem-t2);margin-top:.35rem;}



/* ── Sacrifice inner tabs ───────────────────────────────────────────────── */

.mem-sacrifice-tabs{display:flex;gap:0;border-bottom:1px solid var(--mem-border);margin:0 0 2rem 0;padding:0;}

.mem-sacrifice-tab{background:none;border:none;border-bottom:2px solid transparent;padding:.6rem 1.2rem;font-size:.82rem;font-weight:600;color:var(--mem-t2);cursor:pointer;margin-bottom:-1px;transition:color var(--mem-trans),border-color var(--mem-trans);}

.mem-sacrifice-tab:hover{color:var(--mem-t1);}

.mem-sacrifice-tab.active{color:var(--mem-gold);border-bottom-color:var(--mem-gold);}

.mem-sacrifice-panel{display:none;}

.mem-sacrifice-panel.active{display:block;}




/* ── TRIBUTES ── */

.mem-subject-tributes { border-top: 1px solid var(--mem-border, #d8d4cc); }

.mem-tribute-block { padding: 4px 0 4px 18px; border-left: 2px solid var(--mem-gold); border-radius: 0; }

.mem-tribute-block + .mem-tribute-block { margin-top: 40px; position: relative; }

.mem-tribute-block + .mem-tribute-block::before { content: ""; position: absolute; top: -20px; left: -18px; right: 0; margin: 0 auto; width: 48px; height: 1px; background: var(--mem-gold); }



.mem-tribute-text { font-size: var(--fs-base); line-height: 1.7; color: var(--mem-t1, #0f0e1a); font-style: italic; margin: 0 0 var(--sp-2) 0; }

.mem-tribute-attribution { font-size: var(--fs-sm); color: var(--mem-gold); font-weight: 600; margin: 0; letter-spacing: 0.02em; }




/* ═══════════════════════════════════════════════════════════════════

   ABOUT PAGE — Part 1 of 2: hero, tabs, panels, founder, prose

   ═══════════════════════════════════════════════════════════════════ */



.mem-about-hero {

    padding: 3.5rem 1.5rem 2rem;

    text-align: center;

    border-bottom: 1px solid var(--mem-border);

    background: var(--mem-surface);

}

.mem-about-hero-inner {

    max-width: 52rem;

    margin: 0 auto;

}

.mem-about-hero-identity {

    font-size: 2.6rem;

    font-weight: 800;

    letter-spacing: -0.02em;

    color: var(--mem-t1);

    line-height: 1;

}

.mem-about-hero-dot {

    color: var(--mem-gold);

}

.mem-about-hero-tagline {

    margin-top: 1rem;

    font-size: 1.35rem;

    font-style: italic;

    color: var(--mem-gold);

    letter-spacing: 0.01em;

}

.mem-about-hero-descriptor {

    margin-top: 0.5rem;

    font-size: 1rem;

    color: var(--mem-t2);

    font-weight: 500;

}

.mem-about-hero-parent {

    margin-top: 1.25rem;

    font-size: 0.82rem;

    color: var(--mem-t3);

    text-transform: uppercase;

    letter-spacing: 0.08em;

}



.mem-about-tabs {

    position: sticky;

    top: 64px;

    z-index: 20;

    display: flex;

    flex-wrap: wrap;

    gap: 0.25rem;

    padding: 0.5rem 1rem 0;

    background: var(--mem-surface);

    border-bottom: 1px solid var(--mem-border);

    overflow-x: auto;

}

.mem-about-tab {

    flex: 0 0 auto;

    padding: 0.75rem 1rem;

    font-size: 0.9rem;

    font-weight: 600;

    color: var(--mem-t2);

    text-decoration: none;

    border-bottom: 3px solid transparent;

    white-space: nowrap;

    transition: color 0.15s, border-color 0.15s;

}

.mem-about-tab:hover {

    color: var(--mem-t1);

}

.mem-about-tab.active {

    color: var(--mem-gold);

    border-bottom-color: var(--mem-gold);

}

.mem-about-tab:focus-visible {

    outline: 2px solid var(--mem-gold);

    outline-offset: -2px;

}



.mem-about-panel {

    display: none;

    padding: 2.5rem 1.5rem 4rem;

    max-width: 52rem;

    margin: 0 auto;

}

.mem-about-panel.active {

    display: block;

}



.mem-founder-message {

    color: var(--mem-t1);

    line-height: 1.75;

    font-size: 1.02rem;

}

.mem-founder-title {

    font-size: 2rem;

    font-weight: 800;

    margin: 0 0 2rem;

    color: var(--mem-t1);

    text-align: center;

    letter-spacing: -0.01em;

}

.mem-founder-lead {

    font-size: 1.3rem;

    font-weight: 600;

    color: var(--mem-gold);

    margin: 0 0 1.75rem;

    text-align: center;

    font-style: italic;

}

.mem-founder-message p {

    margin: 0 0 1.25rem;

}

.mem-founder-emphasis {

    font-size: 1.15rem;

    font-weight: 600;

    color: var(--mem-t1);

    padding: 1rem 1.25rem;

    border-left: 3px solid var(--mem-gold);

    background: var(--mem-surface2);

    margin: 1.5rem 0 !important;

}

.mem-founder-closing {

    font-size: 1.1rem;

    font-weight: 600;

    color: var(--mem-t1);

    text-align: center;

    margin: 2rem 0 0.5rem !important;

}

.mem-founder-vigil {

    font-size: 1.4rem;

    font-weight: 700;

    color: var(--mem-gold);

    text-align: center;

    letter-spacing: 0.02em;

    margin: 0 0 2.5rem !important;

}

.mem-founder-signature {

    margin-top: 2rem;

    padding-top: 1.5rem;

    border-top: 1px solid var(--mem-border);

    text-align: center;

    font-size: 0.95rem;

    line-height: 1.6;

    color: var(--mem-t2);

}

.mem-founder-sig-title {

    font-weight: 600;

    color: var(--mem-t1);

}

.mem-founder-sig-spouse {

    font-style: italic;

    font-size: 0.9rem;

    color: var(--mem-t3);

}



.mem-about-prose {

    color: var(--mem-t1);

    line-height: 1.7;

    font-size: 1rem;

}

.mem-about-prose h1 {

    font-size: 1.9rem;

    font-weight: 800;

    margin: 0 0 1.25rem;

    color: var(--mem-t1);

    letter-spacing: -0.01em;

}

.mem-about-prose h2 {

    font-size: 1.2rem;

    font-weight: 700;

    margin: 2rem 0 0.75rem;

    color: var(--mem-gold);

    letter-spacing: 0.01em;

}

.mem-about-prose p {

    margin: 0 0 1rem;

}

.mem-about-prose .mem-lead {

    font-size: 1.15rem;

    font-weight: 500;

    color: var(--mem-t1);

    padding: 1rem 1.25rem;

    border-left: 3px solid var(--mem-gold);

    background: var(--mem-surface2);

    margin-bottom: 1.5rem;

}

.mem-about-prose ul {

    margin: 0.75rem 0 1.25rem 1.25rem;

    padding: 0;

}

.mem-about-prose li {

    margin-bottom: 0.6rem;

}

.mem-about-prose a {

    color: var(--mem-gold);

    text-decoration: underline;

    text-decoration-thickness: 1px;

    text-underline-offset: 2px;

}

.mem-about-prose a:hover {

    text-decoration-thickness: 2px;

}

.mem-contact-note {

    font-size: 0.9rem;

    color: var(--mem-t3);

    font-style: italic;

    margin-top: 1.5rem !important;

}




/* ═══════════════════════════════════════════════════════════════════

   ABOUT PAGE — Part 2 of 2: charity cards, modal, responsive

   ═══════════════════════════════════════════════════════════════════ */



.mem-charities-intro {

    color: var(--mem-t1);

    line-height: 1.7;

    margin-bottom: 2.5rem;

}

.mem-charities-intro h1 {

    font-size: 1.9rem;

    font-weight: 800;

    margin: 0 0 1rem;

    color: var(--mem-t1);

}

.mem-charities-intro .mem-lead {

    font-size: 1.15rem;

    font-weight: 500;

    color: var(--mem-t1);

    padding: 1rem 1.25rem;

    border-left: 3px solid var(--mem-gold);

    background: var(--mem-surface2);

    margin: 0 0 1.25rem;

}

.mem-charities-intro p {

    margin: 0 0 1rem;

}

.mem-charities-pitch {

    font-size: 1.05rem;

    font-weight: 600;

    color: var(--mem-gold);

    font-style: italic;

}



.mem-charity-category {

    margin: 0 0 2.5rem;

}

.mem-charity-category-title {

    font-size: 0.9rem;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.1em;

    color: var(--mem-gold);

    padding-bottom: 0.75rem;

    margin: 0 0 1.25rem;

    border-bottom: 1px solid var(--mem-border);

}

.mem-charity-grid {

    display: grid;

    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));

    gap: 1rem;

}

.mem-charity-card {

    display: flex;

    flex-direction: column;

    padding: 1.25rem;

    background: var(--mem-surface2);

    border: 1px solid var(--mem-border);

    border-radius: 6px;

    transition: border-color 0.15s, transform 0.15s;

}

.mem-charity-card:hover {

    border-color: var(--mem-gold);

    transform: translateY(-1px);

}

.mem-charity-card-header {

    display: flex;

    justify-content: space-between;

    align-items: flex-start;

    gap: 0.75rem;

    margin-bottom: 0.75rem;

}

.mem-charity-name {

    font-size: 1.05rem;

    font-weight: 700;

    color: var(--mem-t1);

    margin: 0;

    line-height: 1.3;

    flex: 1;

}

.mem-charity-country {

    flex: 0 0 auto;

    font-size: 0.72rem;

    font-weight: 600;

    padding: 0.15rem 0.5rem;

    color: var(--mem-t3);

    background: var(--mem-surface);

    border: 1px solid var(--mem-border);

    border-radius: 3px;

    text-transform: uppercase;

    letter-spacing: 0.05em;

    white-space: nowrap;

}

.mem-charity-desc {

    font-size: 0.92rem;

    line-height: 1.55;

    color: var(--mem-t2);

    margin: 0 0 1rem;

    flex: 1;

}

.mem-charity-visit {

    display: inline-flex;

    align-items: center;

    gap: 0.4rem;

    padding: 0.6rem 1rem;

    font-size: 0.88rem;

    font-weight: 600;

    color: var(--mem-gold);

    background: transparent;

    border: 1px solid var(--mem-gold);

    border-radius: 4px;

    cursor: pointer;

    transition: background 0.15s, color 0.15s;

    font-family: inherit;

}

.mem-charity-visit:hover {

    background: var(--mem-gold);

    color: var(--mem-surface);

}

.mem-charity-visit:focus-visible {

    outline: 2px solid var(--mem-gold);

    outline-offset: 2px;

}

.mem-charity-ext-icon {

    width: 14px;

    height: 14px;

    opacity: 0.85;

}

.mem-charities-footnote {

    margin-top: 2rem;

    padding-top: 1.5rem;

    border-top: 1px solid var(--mem-border);

    font-size: 0.9rem;

    color: var(--mem-t3);

    line-height: 1.6;

}

.mem-charities-footnote a {

    color: var(--mem-gold);

}



.mem-ext-modal {

    display: none;

    position: fixed;

    inset: 0;

    z-index: 100;

    align-items: center;

    justify-content: center;

    padding: 1rem;

}

.mem-ext-modal.active {

    display: flex;

}

.mem-ext-modal-backdrop {

    position: absolute;

    inset: 0;

    background: var(--mem-modal-backdrop, rgba(0, 0, 0, 0.7));

    backdrop-filter: blur(4px);

}

.mem-ext-modal-card {

    position: relative;

    max-width: 34rem;

    width: 100%;

    max-height: 90vh;

    overflow-y: auto;

    background: var(--mem-surface);

    border: 1px solid var(--mem-border);

    border-top: 3px solid var(--mem-gold);

    border-radius: 6px;

    box-shadow: var(--mem-modal-shadow, 0 20px 60px rgba(0, 0, 0, 0.5));

}

.mem-ext-modal-header {

    padding: 1.25rem 1.5rem 0.75rem;

    border-bottom: 1px solid var(--mem-border);

}

.mem-ext-modal-title {

    font-size: 1.25rem;

    font-weight: 700;

    color: var(--mem-gold);

    margin: 0;

    letter-spacing: 0.01em;

}

.mem-ext-modal-body {

    padding: 1.25rem 1.5rem;

    color: var(--mem-t1);

    line-height: 1.6;

    font-size: 0.95rem;

}

.mem-ext-modal-body p {

    margin: 0 0 0.9rem;

}

.mem-ext-modal-body p:last-child {

    margin-bottom: 0;

}

.mem-ext-modal-url {

    font-family: ui-monospace, SFMono-Regular, monospace;

    font-size: 0.85rem;

    color: var(--mem-t2);

    word-break: break-all;

}

.mem-ext-modal-reason {

    padding: 0.9rem 1rem;

    background: var(--mem-surface2);

    border-left: 3px solid var(--mem-gold);

    font-style: italic;

    color: var(--mem-t2);

    font-size: 0.93rem;

}

.mem-ext-modal-actions {

    display: flex;

    justify-content: flex-end;

    gap: 0.75rem;

    padding: 1rem 1.5rem 1.5rem;

    flex-wrap: wrap;

}

.mem-ext-modal-actions .mem-btn {

    min-width: 7rem;

}



@media (prefers-reduced-motion: reduce) {

    .mem-charity-card,

    .mem-charity-visit,

    .mem-about-tab {

        transition: none;

    }

}



@media (max-width: 640px) {

    .mem-about-hero {

        padding: 2.5rem 1rem 1.5rem;

    }

    .mem-about-hero-identity {

        font-size: 2rem;

    }

    .mem-about-hero-tagline {

        font-size: 1.15rem;

    }

    .mem-about-tabs {

        top: 56px;

    }

    .mem-about-tab {

        padding: 0.6rem 0.75rem;

        font-size: 0.82rem;

    }

    .mem-about-panel {

        padding: 2rem 1rem 3rem;

    }

    .mem-founder-title {

        font-size: 1.6rem;

    }

    .mem-founder-lead {

        font-size: 1.1rem;

    }

    .mem-charity-grid {

        grid-template-columns: 1fr;

    }

    .mem-ext-modal-actions {

        flex-direction: column-reverse;

    }

    .mem-ext-modal-actions .mem-btn {

        width: 100%;

    }

}




/* ═══════════════════════════════════════════════════════════════

 * HOME v2 + HC-2 cause-color vars (appended 2026-04-22)

 * R14: all colors via vars. No inline hex anywhere.

 * ═══════════════════════════════════════════════════════════════ */

[data-theme="dark"]{

  --mem-cause-felonious:rgb(155,35,53);

  --mem-cause-cardiac:rgb(106,58,138);

  --mem-h2-hero-grad-a:#0b1428;

  --mem-h2-hero-grad-b:#060a18;

  --mem-h2-mission-suicide-bg:rgba(201,168,76,0.08);

  --mem-h2-mission-global-bg:rgba(26,56,112,0.15);

  --mem-h2-mission-permanent-bg:rgba(45,106,79,0.12);

  --mem-h2-mission-zero-bg:rgba(106,58,138,0.12);

}

[data-theme="light"]{

  --mem-cause-felonious:rgb(155,35,53);

  --mem-cause-cardiac:rgb(106,58,138);

  --mem-h2-hero-grad-a:#f8f5ec;

  --mem-h2-hero-grad-b:#f2f5fa;

  --mem-h2-mission-suicide-bg:rgba(201,168,76,0.10);

  --mem-h2-mission-global-bg:rgba(26,56,112,0.08);

  --mem-h2-mission-permanent-bg:rgba(45,106,79,0.08);

  --mem-h2-mission-zero-bg:rgba(106,58,138,0.08);

}



/* Hero */

.mem-h2-hero{background:linear-gradient(135deg,var(--mem-h2-hero-grad-a),var(--mem-h2-hero-grad-b));border-bottom:1px solid var(--mem-border);padding:4rem 2rem 3rem}

.mem-h2-hero-inner{max-width:1400px;margin:0 auto}

.mem-h2-hero-headline{font-size:clamp(2.2rem,4.5vw,3.6rem);font-weight:900;line-height:1.05;letter-spacing:-.03em;color:var(--mem-t1);margin:0 0 1rem;max-width:1000px}

.mem-h2-hero-sub{font-size:clamp(1rem,1.3vw,1.15rem);color:var(--mem-t2);line-height:1.55;max-width:820px;margin:0 0 1.5rem}

.mem-h2-hero-actions{display:flex;gap:.75rem;flex-wrap:wrap}



/* Scale strip */

.mem-h2-scale{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:1.75rem 2rem;max-width:1400px;margin:0 auto;border-bottom:1px solid var(--mem-border)}

.mem-h2-scale-tile{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1.4rem 1rem;text-align:center;transition:border-color var(--mem-trans)}

.mem-h2-scale-tile:hover{border-color:var(--mem-gold-dim)}

.mem-h2-scale-num{font-size:clamp(1.6rem,2.8vw,2.25rem);font-weight:800;color:var(--mem-gold);letter-spacing:-.02em;line-height:1}

.mem-h2-scale-label{display:block;font-size:.72rem;color:var(--mem-t3);margin-top:.35rem;text-transform:uppercase;letter-spacing:.06em}



/* Sections */

.mem-h2-section{max-width:1400px;margin:0 auto;padding:2.5rem 2rem 0}

.mem-h2-section-hd{margin-bottom:1.25rem}

.mem-h2-section-title{font-size:clamp(1.4rem,2.2vw,1.9rem);font-weight:800;color:var(--mem-t1);margin:0 0 .35rem;letter-spacing:-.02em}

.mem-h2-section-sub{font-size:.95rem;color:var(--mem-t3);margin:0}



/* Eyebrows */

.mem-h2-card-eyebrow,.mem-h2-wide-eyebrow{display:flex;align-items:center;gap:.4rem;font-size:.7rem;font-weight:700;color:var(--mem-gold);text-transform:uppercase;letter-spacing:.08em;padding:.75rem .875rem .5rem;border-bottom:1px solid var(--mem-border)}

.mem-h2-eyebrow-icon{width:14px;height:14px;filter:invert(78%) sepia(35%) saturate(460%) hue-rotate(5deg) brightness(92%)}



/* Today/Featured/Living grids — 3 columns landscape */

.mem-h2-today-grid,.mem-h2-featured-grid,.mem-h2-living-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:1.25rem;align-items:stretch}

.mem-h2-person-card{display:flex;flex-direction:column}

.mem-h2-person-card .mem-h2-card-eyebrow{border-bottom:none;padding:.6rem .875rem .2rem}





/* Wide landscape cards */

.mem-h2-wide-card{display:flex;flex-direction:column;background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:0 0 1.1rem;overflow:hidden;text-decoration:none;color:var(--mem-t1);transition:all var(--mem-trans)}

.mem-h2-wide-card:hover{border-color:var(--mem-gold-dim);transform:translateY(-2px);box-shadow:var(--mem-shadow);color:var(--mem-t1);text-decoration:none}

.mem-h2-wide-headline{font-size:1.15rem;font-weight:800;color:var(--mem-t1);margin:.5rem .875rem .25rem;line-height:1.25;letter-spacing:-.01em}

.mem-h2-wide-meta{font-size:.8rem;color:var(--mem-t3);margin:0 .875rem .5rem}

.mem-h2-wide-lede{font-size:.88rem;color:var(--mem-t2);margin:.5rem .875rem;line-height:1.5;flex:1}

.mem-h2-wide-cta{font-size:.82rem;font-weight:700;color:var(--mem-gold);margin:.5rem .875rem 0;padding-top:.6rem;border-top:1px solid var(--mem-border)}

.mem-h2-wide-big-num{font-size:clamp(2.5rem,4.5vw,3.5rem);font-weight:900;color:var(--mem-gold);letter-spacing:-.03em;line-height:1;margin:.5rem .875rem .25rem}



/* Founded/agency row */

.mem-h2-founded-row{display:flex;gap:.875rem;align-items:center;padding:.5rem .875rem 0}

.mem-h2-founded-patch{width:72px;height:72px;object-fit:contain;flex-shrink:0;background:var(--mem-surface2);border-radius:var(--mem-radius);padding:.25rem}

.mem-h2-founded-text{flex:1;min-width:0}

.mem-h2-founded-text .mem-h2-wide-headline,.mem-h2-founded-text .mem-h2-wide-meta{margin-left:0;margin-right:0}

.mem-h2-agency-stats{display:flex;gap:.875rem;font-size:.78rem;color:var(--mem-t3);margin-top:.25rem}

.mem-h2-agency-stats strong{color:var(--mem-gold);font-weight:800}



/* Patch display */

.mem-h2-patch-display{padding:1rem .875rem;background:var(--mem-surface2);display:flex;align-items:center;justify-content:center;aspect-ratio:16/9}

.mem-h2-patch-image{max-width:100%;max-height:180px;object-fit:contain}



/* Recent thumbs */

.mem-h2-recent-thumbs{display:flex;gap:.4rem;margin:.5rem .875rem}

.mem-h2-recent-thumb{width:44px;height:58px;object-fit:cover;border-radius:3px;border:1px solid var(--mem-border)}



/* Empty card */

.mem-h2-empty-card{background:var(--mem-surface);border:1px dashed var(--mem-border);border-radius:var(--mem-radius-lg);padding:2rem 1rem;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem}

.mem-h2-empty-icon{width:36px;height:36px;opacity:.3}

[data-theme="dark"] .mem-h2-empty-icon{filter:invert(70%)}

.mem-h2-empty-title{font-size:.95rem;font-weight:700;color:var(--mem-t2)}



/* Underhonored */

.mem-h2-underhonored-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.875rem}

.mem-h2-under-card{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1rem .5rem;text-decoration:none;color:var(--mem-t1);transition:all var(--mem-trans)}

.mem-h2-under-card:hover{border-color:var(--mem-gold-dim);transform:translateY(-2px);color:var(--mem-t1);text-decoration:none}

.mem-h2-under-patch-wrap{width:64px;height:64px;display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}

.mem-h2-under-patch{max-width:100%;max-height:100%;object-fit:contain}

.mem-h2-under-patch-ph{opacity:.25}

[data-theme="dark"] .mem-h2-under-patch-ph{filter:invert(70%)}

.mem-h2-under-name{font-size:.78rem;font-weight:700;color:var(--mem-t1);line-height:1.25;margin-bottom:.2rem}

.mem-h2-under-meta{font-size:.68rem;color:var(--mem-t3);margin-bottom:.4rem}

.mem-h2-under-count{font-size:.7rem;color:var(--mem-gold);font-weight:700;letter-spacing:.05em;text-transform:uppercase}



/* Mission 2x2 */

.mem-h2-mission-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}

.mem-h2-mission-card{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1.5rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;transition:border-color var(--mem-trans)}

.mem-h2-mission-card:hover{border-color:var(--mem-gold-dim)}

.mem-h2-mission-suicide{background:linear-gradient(140deg,var(--mem-h2-mission-suicide-bg),var(--mem-surface))}

.mem-h2-mission-global{background:linear-gradient(140deg,var(--mem-h2-mission-global-bg),var(--mem-surface))}

.mem-h2-mission-permanent{background:linear-gradient(140deg,var(--mem-h2-mission-permanent-bg),var(--mem-surface))}

.mem-h2-mission-zero{background:linear-gradient(140deg,var(--mem-h2-mission-zero-bg),var(--mem-surface))}

.mem-h2-mission-num{font-size:2.5rem;font-weight:900;color:var(--mem-gold);line-height:1;letter-spacing:-.03em}

.mem-h2-mission-icon{width:36px;height:36px;opacity:.85}

[data-theme="dark"] .mem-h2-mission-icon{filter:invert(70%) sepia(30%) saturate(400%) hue-rotate(5deg)}

.mem-h2-mission-title{font-size:1.15rem;font-weight:800;color:var(--mem-t1);letter-spacing:-.01em}

.mem-h2-mission-body{font-size:.92rem;color:var(--mem-t2);line-height:1.55;flex:1}

.mem-h2-mission-source{font-size:.75rem;color:var(--mem-t3);font-style:italic;padding-top:.4rem;border-top:1px solid var(--mem-border)}

.mem-h2-mission-flags{display:flex;gap:.4rem;flex-wrap:wrap;padding-top:.25rem}

.mem-h2-mission-flag{width:28px;height:20px;object-fit:cover;border-radius:2px;border:1px solid var(--mem-border)}



/* Data Sources */

.mem-h2-sources-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.875rem}

.mem-h2-source{background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);padding:1.1rem .875rem;text-align:center;transition:border-color var(--mem-trans)}

.mem-h2-source:hover{border-color:var(--mem-gold-dim)}

.mem-h2-source-bh{border-color:var(--mem-gold-dim)}

.mem-h2-source-num{font-size:1.5rem;font-weight:800;color:var(--mem-gold);letter-spacing:-.02em;line-height:1}

.mem-h2-source-name{font-size:.82rem;font-weight:700;color:var(--mem-t1);margin-top:.35rem}

.mem-h2-source-desc{font-size:.68rem;color:var(--mem-t3);margin-top:.2rem;line-height:1.3}



/* Sentinel band */

.mem-h2-sentinel-band{background:linear-gradient(135deg,var(--mem-h2-hero-grad-a),var(--mem-h2-hero-grad-b));border-top:1px solid var(--mem-border);border-bottom:1px solid var(--mem-border);padding:3rem 2rem;margin-top:3rem}

.mem-h2-sentinel-inner{max-width:1000px;margin:0 auto;text-align:center}

.mem-h2-sentinel-eyebrow{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;color:var(--mem-gold);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem}

.mem-h2-sentinel-title{font-size:clamp(1.75rem,3vw,2.5rem);font-weight:900;color:var(--mem-t1);margin:0 0 .75rem;letter-spacing:-.02em}

.mem-h2-sentinel-body{font-size:1rem;color:var(--mem-t2);line-height:1.6;margin:0 0 1.25rem;max-width:720px;margin-left:auto;margin-right:auto}

.mem-h2-sentinel-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}



/* Final CTA */

.mem-h2-cta{padding:3rem 2rem 4rem;text-align:center}

.mem-h2-cta-inner{max-width:760px;margin:0 auto}

.mem-h2-cta-title{font-size:clamp(1.75rem,3vw,2.4rem);font-weight:900;color:var(--mem-t1);margin:0 0 .75rem;letter-spacing:-.02em}

.mem-h2-cta-body{font-size:1rem;color:var(--mem-t2);line-height:1.6;margin:0 0 1.5rem}



/* Responsive */

@media(max-width:1100px){

  .mem-h2-today-grid,.mem-h2-featured-grid,.mem-h2-living-grid{grid-template-columns:1fr 1fr}

  .mem-h2-underhonored-grid,.mem-h2-sources-grid{grid-template-columns:repeat(3,1fr)}

}

@media(max-width:768px){

  .mem-h2-scale{grid-template-columns:repeat(2,1fr);padding:1.25rem 1rem}

  .mem-h2-today-grid,.mem-h2-featured-grid,.mem-h2-living-grid,.mem-h2-mission-grid{grid-template-columns:1fr}

  .mem-h2-underhonored-grid,.mem-h2-sources-grid{grid-template-columns:repeat(2,1fr)}

  .mem-h2-hero{padding:2.5rem 1rem 2rem}

  .mem-h2-section{padding:2rem 1rem 0}

  .mem-h2-sentinel-band,.mem-h2-cta{padding:2rem 1rem}

}




/* Home v2: shrink person-card photo (home only, Remembered + Today's Honor) */

.mem-h2-person-card .mem-card-photo-wrap{max-width:240px;margin:0 auto;width:100%}

.mem-h2-today-grid .mem-h2-person-card,

.mem-h2-featured-grid .mem-h2-person-card{align-items:stretch}

.mem-h2-today-grid .mem-h2-person-card .mem-card-body,

.mem-h2-featured-grid .mem-h2-person-card .mem-card-body{padding-top:.75rem}




/* ═══════════════════════════════════════════════════════════════

 * ABOUT v2 — landscape card wrapping (2026-04-22)

 * Pure CSS. Zero HTML changes. Pre-existing .mem-about-prose rules

 * continue to apply; these rules override panel width + wrap prose

 * in card chrome matching home v2. Founder's Message stays portrait.

 * ═══════════════════════════════════════════════════════════════ */



/* Widen all about panels to landscape canvas (matches home v2 width) */

.mem-about-panel{max-width:1400px;padding:2.5rem 2rem 4rem}



/* Founder's Message — keep the letter portrait, no card chrome */

#bdgAboutFounder{max-width:52rem;padding:2.5rem 1.5rem 4rem}



/* Every other panel: wrap its .mem-about-prose in a card */

.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose{

  background:var(--mem-surface);

  border:1px solid var(--mem-border);

  border-radius:var(--mem-radius-lg);

  padding:2.25rem 2.5rem;

}



/* H1 + lead: full-width header band inside the card */

.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose h1{

  font-size:2.25rem;

  margin-bottom:1.5rem;

}



/* Two-column body starts AFTER the lead blockquote.

   CSS columns flow automatically; lead keeps full width via column-span.

   H2s break into their own column start for clean section reads. */

.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose{

  column-count:2;

  column-gap:2.5rem;

}

.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose h1,

.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose .mem-lead{

  column-span:all;

}

.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose h2{

  break-before:auto;

  margin-top:0;

}

.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose h2:first-of-type{

  break-before:auto;

}

/* Keep paragraphs and list items from splitting across columns */

.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose p,

.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose li{

  break-inside:avoid;

}



/* Charities tab — leave its existing grid alone, just card-wrap it */

#bdgAboutCharities{max-width:1400px}



/* Responsive: collapse columns on narrow viewports */

@media(max-width:900px){

  .mem-about-panel:not(#bdgAboutFounder) .mem-about-prose{column-count:1}

  .mem-about-panel:not(#bdgAboutFounder) .mem-about-prose{padding:1.5rem 1.25rem}

}

@media(max-width:640px){

  .mem-about-panel{padding:1.5rem 1rem 2.5rem}

}





/* === VIGIL CARD STEP 3 RESTYLE 2026-04-23 === */

/* Card structure: split into clickable name-link + clickable flame-button.        */

/* Name-link goes to officer profile. Flame button lights a candle. Both have      */

/* clear hover affordances so users see what each does.                            */



/* The card wrapper is no longer the click target itself — children are.           */

.mem-wall-name-entry { cursor: default; padding: .35rem 0; display: flex; flex-direction: column; gap: .15rem; align-items: center; text-align: center; position: relative; }



/* Name link covers the bulk of the card. Hover: gold accent + subtle lift.        */

.mem-wall-name-link {

  display: flex; flex-direction: column; align-items: center; gap: .15rem;

  text-decoration: none; color: inherit;

  padding: .25rem .5rem; border-radius: 3px; cursor: pointer;

  transition: color .2s, background .2s, transform .15s;

  width: 100%;

}

.mem-wall-name-link:hover .mem-wall-name-text { color: var(--mem-wall-gold-hi); text-decoration: underline; text-decoration-color: var(--mem-wall-gold); text-underline-offset: 3px; }

.mem-wall-name-link:hover { background: rgba(255, 215, 0, 0.04); }

.mem-wall-name-link:focus-visible { outline: 2px solid var(--mem-wall-gold-hi); outline-offset: 2px; }



/* Light theme equivalent */

[data-theme="light"] .mem-wall-name-link:hover .mem-wall-name-text { color: var(--mem-wall-gold); }

[data-theme="light"] .mem-wall-name-link:hover { background: rgba(139, 105, 20, 0.06); }



/* Flame button: bigger, more visible, clearly clickable.                          */

.mem-wall-flame-btn {

  background: transparent; border: none; padding: .25rem .5rem; margin-top: .15rem;

  cursor: pointer; border-radius: 50%;

  display: inline-flex; align-items: center; justify-content: center;

  transition: background .2s, transform .2s;

}

.mem-wall-flame-btn:hover { background: rgba(255, 215, 0, 0.12); transform: scale(1.15); }

.mem-wall-flame-btn:focus-visible { outline: 2px solid var(--mem-wall-gold-hi); outline-offset: 2px; }



/* The flame itself: 2x size, vibrant color, much more present than 12px/.6 opacity */

.mem-wall-flame {

  font-size: 24px; line-height: 1;

  color: var(--mem-wall-gold);

  opacity: .85;

  transition: opacity .3s, color .3s, transform .3s, text-shadow .3s;

  display: inline-block;

}

.mem-wall-flame.lit {

  color: var(--mem-wall-gold-hi);

  opacity: 1;

  text-shadow: 0 0 8px rgba(255, 215, 0, 0.6), 0 0 16px rgba(255, 215, 0, 0.3);

  animation: flicker 2s ease-in-out infinite;

}

.mem-wall-flame-btn:hover .mem-wall-flame { opacity: 1; transform: scale(1.05); }



/* Light theme: candle still gold but with darker resting state for contrast        */

[data-theme="light"] .mem-wall-flame { color: var(--mem-wall-gold); opacity: .9; }

[data-theme="light"] .mem-wall-flame.lit { color: #b8860b; text-shadow: 0 0 8px rgba(184, 134, 11, 0.5), 0 0 16px rgba(255, 215, 0, 0.4); }





/* === VIGIL CANDLE COUNT 2026-04-23 === */

/* Number rendered next to the flame icon — shows total candles lit by visitors. */

.mem-wall-flame-count {

  font-size: 11px;

  color: var(--mem-wall-gold);

  margin-left: .25rem;

  font-family: Georgia, serif;

  vertical-align: middle;

  font-weight: 600;

  letter-spacing: .02em;

  transition: color .3s;

}

.mem-wall-flame.lit ~ .mem-wall-flame-count,

.mem-wall-flame-btn:hover .mem-wall-flame-count {

  color: var(--mem-wall-gold-hi);

}

[data-theme="light"] .mem-wall-flame-count { color: var(--mem-wall-gold); }

[data-theme="light"] .mem-wall-flame.lit ~ .mem-wall-flame-count { color: #b8860b; }





/* === VIGIL TIER 2: FLAGS + NEURAL ID 2026-04-23 === */

/* Country flag in top-left corner of each card. Subtle until hover. */

.mem-wall-flag-corner {

  position: absolute;

  top: 6px;

  left: 6px;

  width: 18px;

  height: 12px;

  object-fit: cover;

  opacity: .55;

  border-radius: 1px;

  box-shadow: 0 1px 2px rgba(0,0,0,.3);

  transition: opacity .25s, transform .25s;

  pointer-events: auto;

  cursor: help;

}

.mem-wall-name-entry:hover .mem-wall-flag-corner {

  opacity: 1;

  transform: scale(1.05);

}

[data-theme="light"] .mem-wall-flag-corner {

  opacity: .65;

  box-shadow: 0 1px 2px rgba(74,56,32,.2);

}



/* Permanent neural identifier shown below the candle. Subtle, italic, gold. */

/* Honors the "Only One You" identity — every fallen has a permanent UNE. */

.mem-wall-neural-id {

  display: block;

  font-family: Georgia, serif;

  font-style: italic;

  font-size: 10px;

  color: var(--mem-wall-gold);

  opacity: .55;

  letter-spacing: .04em;

  margin-top: .15rem;

  transition: opacity .25s, color .25s;

  cursor: help;

  user-select: all;

}

.mem-wall-name-entry:hover .mem-wall-neural-id {

  opacity: .85;

  color: var(--mem-wall-gold-hi);

}

[data-theme="light"] .mem-wall-neural-id {

  color: var(--mem-wall-gold);

  opacity: .55;

}

[data-theme="light"] .mem-wall-name-entry:hover .mem-wall-neural-id {

  color: #b8860b;

  opacity: .85;

}





/* === VIGIL RUBBING FOUNDATION 2026-04-23 === */

/* Rubbing icon button — bottom-right corner of each card. Mirrors the candle's */

/* visual language but offset right so they don't fight for the same space.    */

.mem-wall-rubbing-btn {

  position: absolute;

  bottom: 8px;

  right: 8px;

  background: transparent;

  border: none;

  padding: 4px;

  cursor: pointer;

  border-radius: 3px;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  opacity: 0.55;

  transition: opacity .25s, transform .25s, background .25s;

}

.mem-wall-rubbing-btn:hover {

  opacity: 1;

  background: rgba(255, 215, 0, 0.08);

  transform: scale(1.1);

}

.mem-wall-rubbing-btn:focus-visible {

  outline: 2px solid var(--mem-wall-gold-hi);

  outline-offset: 2px;

  opacity: 1;

}

.mem-wall-rubbing-icon {

  width: 18px;

  height: 22px;

  color: var(--mem-wall-gold);

  display: block;

}

.mem-wall-rubbing-btn:hover .mem-wall-rubbing-icon {

  color: var(--mem-wall-gold-hi);

}

[data-theme="light"] .mem-wall-rubbing-icon { color: var(--mem-wall-gold); }

[data-theme="light"] .mem-wall-rubbing-btn:hover .mem-wall-rubbing-icon { color: #b8860b; }



/* The rubbing modal — opens when user clicks the paper icon. */

/* Scaffold for now; canvas-based drag-to-reveal mechanic ships next session. */

.mem-rubbing-modal[hidden] { display: none !important; }

.mem-rubbing-modal {

  position: fixed;

  inset: 0;

  z-index: 9999;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 2rem 1rem;

}

.mem-rubbing-backdrop {

  position: absolute;

  inset: 0;

  background: rgba(10, 10, 10, 0.85);

  backdrop-filter: blur(4px);

  cursor: pointer;

}

.mem-rubbing-stage {

  position: relative;

  max-width: 560px;

  width: 100%;

  max-height: 90vh;

  overflow-y: auto;

  display: flex;

  flex-direction: column;

  align-items: center;

  gap: 1.5rem;

  z-index: 1;

}

.mem-rubbing-close {

  position: absolute;

  top: -8px;

  right: -8px;

  background: rgba(0,0,0,0.6);

  color: var(--mem-wall-text);

  border: 1px solid var(--mem-wall-bd3);

  border-radius: 50%;

  width: 36px;

  height: 36px;

  font-size: 22px;

  line-height: 1;

  cursor: pointer;

  z-index: 2;

  font-family: Georgia, serif;

  transition: color .2s, border-color .2s;

}

.mem-rubbing-close:hover {

  color: var(--mem-wall-gold-hi);

  border-color: var(--mem-wall-gold-hi);

}



/* The "paper" — sized for 8x10 framing aspect ratio (4:5) by default. */

/* Subtle paper texture via gradient. Real graphite texture comes next session. */

.mem-rubbing-paper {

  background: #f5efe1;

  background-image:

    linear-gradient(135deg, rgba(180,160,120,0.04) 0%, rgba(180,160,120,0.0) 50%, rgba(180,160,120,0.06) 100%),

    radial-gradient(ellipse at top left, rgba(120,100,60,0.04), transparent 60%),

    radial-gradient(ellipse at bottom right, rgba(120,100,60,0.05), transparent 60%);

  width: 100%;

  aspect-ratio: 4 / 5;

  max-height: 70vh;

  border: 1px solid #c4b99a;

  box-shadow: 0 12px 40px rgba(0,0,0,0.6), inset 0 0 60px rgba(180,160,120,0.08);

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 8% 10%;

  position: relative;

}

.mem-rubbing-content {

  text-align: center;

  color: #3a2818;

  font-family: Georgia, "Trajan Pro", "Times New Roman", serif;

  width: 100%;

}

.mem-rubbing-header {

  font-size: 0.85rem;

  letter-spacing: 0.3em;

  text-transform: uppercase;

  font-style: italic;

  color: #6a5030;

  margin-bottom: 1rem;

}

.mem-rubbing-name {

  font-size: clamp(1.5rem, 5vw, 2.4rem);

  letter-spacing: 0.06em;

  font-weight: 500;

  margin: 0.2rem 0;

  color: #2a1c0e;

  line-height: 1.15;

  /* Faux-graphite-rubbing look as placeholder — real canvas effect next session */

  text-shadow: 0 0 1px rgba(80,60,30,0.2);

}

.mem-rubbing-rank {

  font-size: 0.95rem;

  font-style: italic;

  color: #6a5030;

  margin-top: 0.5rem;

  letter-spacing: 0.05em;

}

.mem-rubbing-eow {

  font-size: 0.95rem;

  color: #4a3820;

  margin-top: 0.4rem;

  letter-spacing: 0.04em;

}

.mem-rubbing-divider {

  width: 60px;

  height: 1px;

  background: #8B6914;

  opacity: 0.6;

  margin: 1.4rem auto;

}

.mem-rubbing-gratitude {

  font-size: 0.95rem;

  font-style: italic;

  color: #4a3820;

  line-height: 1.5;

  max-width: 90%;

  margin: 0 auto;

  letter-spacing: 0.02em;

}

.mem-rubbing-mark {

  margin-top: 2rem;

  padding-top: 1rem;

  border-top: 1px solid rgba(139, 105, 20, 0.25);

  display: flex;

  flex-direction: column;

  gap: 0.3rem;

  font-family: Georgia, serif;

}

.mem-rubbing-mark-line {

  font-size: 0.7rem;

  letter-spacing: 0.18em;

  text-transform: uppercase;

  color: #6a5030;

}

.mem-rubbing-mark-id {

  font-size: 0.65rem;

  font-style: italic;

  color: #8a7a65;

  letter-spacing: 0.05em;

}



/* Action buttons below the paper */

.mem-rubbing-actions {

  display: flex;

  flex-direction: column;

  gap: 0.7rem;

  align-items: center;

  width: 100%;

}

.mem-rubbing-soon {

  font-size: 0.7rem;

  font-style: italic;

  color: var(--mem-wall-bd5);

  letter-spacing: 0.05em;

}

.mem-rubbing-buttons {

  display: flex;

  gap: 0.6rem;

  align-items: center;

  flex-wrap: wrap;

  justify-content: center;

}

.mem-rubbing-action {

  background: var(--mem-wall-bd1);

  border: 1px solid var(--mem-wall-bd4);

  color: var(--mem-wall-text);

  padding: 0.55rem 1.2rem;

  font-family: Georgia, serif;

  font-size: 0.8rem;

  cursor: pointer;

  letter-spacing: 0.06em;

  border-radius: 2px;

  transition: color .2s, border-color .2s, background .2s;

}

.mem-rubbing-action:hover {

  color: var(--mem-wall-gold-hi);

  border-color: var(--mem-wall-gold-hi);

  background: rgba(255, 215, 0, 0.05);

}

.mem-rubbing-size {

  background: var(--mem-wall-dark);

  border: 1px solid var(--mem-wall-bd3);

  color: var(--mem-wall-text);

  padding: 0.5rem 0.8rem;

  font-family: Georgia, serif;

  font-size: 0.8rem;

  border-radius: 2px;

  cursor: pointer;

}



/* Print styles — when user clicks Print, only the paper is shown. */

@media print {

  body * { visibility: hidden !important; }

  .mem-rubbing-modal, .mem-rubbing-modal * { visibility: visible !important; }

  .mem-rubbing-modal { position: absolute !important; inset: 0 !important; padding: 0 !important; }

  .mem-rubbing-backdrop, .mem-rubbing-close, .mem-rubbing-actions { display: none !important; }

  .mem-rubbing-stage { max-width: 100% !important; max-height: none !important; gap: 0 !important; }

  .mem-rubbing-paper {

    box-shadow: none !important;

    border: 1px solid #c4b99a !important;

    aspect-ratio: 4 / 5;

    max-height: none !important;

    width: 7.5in;

    height: 9.5in;

    page-break-inside: avoid;

  }

}




/* ============================================================

   VIGIL RUBBING CANVAS 2026-04-24

   Vietnam Wall style — black granite + cream carved letters + gold graphite

   Replaces the typeset paper scaffold. See /views/vigil.php for engine.

   ============================================================ */



@font-face {

  font-family: 'Playfair Display';

  font-weight: 800;

  font-style: normal;

  font-display: block;

  src: url('https://neuraweb-storage.s3.us-east-2.amazonaws.com/dapps/fonts/playfair-display/playfair-display-800.woff2') format('woff2');

}



.mem-rubbing-canvas-wrap {

  position: relative;

  box-shadow:

    0 0 0 1px rgba(201, 169, 97, 0.15),

    0 10px 40px rgba(0, 0, 0, 0.6),

    0 20px 80px rgba(0, 0, 0, 0.4);

  border-radius: 2px;

  overflow: hidden;

  touch-action: none;

}



.mem-rubbing-canvas {

  display: block;

  cursor: crosshair;

  user-select: none;

  -webkit-user-select: none;

}



.mem-rubbing-veil {

  position: absolute;

  inset: 0;

  display: flex;

  align-items: center;

  justify-content: center;

  pointer-events: none;

}

.mem-rubbing-veil-text {

  font-family: Georgia, serif;

  font-style: italic;

  font-size: 13px;

  color: rgba(245, 239, 225, 0.65);

  letter-spacing: 0.05em;

  background: rgba(0, 0, 0, 0.45);

  padding: 6px 14px;

  border-radius: 2px;

  opacity: 1;

  transition: opacity 400ms ease;

}

.mem-rubbing-veil--touched .mem-rubbing-veil-text {

  opacity: 0;

}



.mem-rubbing-progress-row {

  display: flex;

  align-items: center;

  gap: 14px;

  max-width: 480px;

  margin: 14px auto 0;

  font-family: Georgia, serif;

  font-size: 12px;

  color: rgba(245, 239, 225, 0.55);

  font-style: italic;

}

.mem-rubbing-progress-track {

  flex: 1;

  height: 2px;

  background: rgba(245, 239, 225, 0.08);

  overflow: hidden;

  border-radius: 1px;

}

.mem-rubbing-progress-fill {

  height: 100%;

  width: 0%;

  background: var(--mem-wall-gold, #8B6914);

  transition: width 220ms ease, background 400ms ease;

}

.mem-rubbing-progress-row--ready .mem-rubbing-progress-fill {

  background: var(--mem-wall-gold-hi, #FFD700);

}

.mem-rubbing-progress-label {

  min-width: 110px;

  text-align: right;

}



.mem-rubbing-size-toggle {

  display: inline-flex;

  gap: 2px;

  background: rgba(245, 239, 225, 0.04);

  border: 1px solid rgba(245, 239, 225, 0.12);

  border-radius: 3px;

  padding: 2px;

}

.mem-rubbing-size-btn {

  background: transparent;

  border: none;

  color: rgba(245, 239, 225, 0.55);

  font-family: Georgia, serif;

  font-size: 11px;

  letter-spacing: 0.08em;

  padding: 6px 12px;

  cursor: pointer;

  border-radius: 2px;

  transition: all 150ms;

}

.mem-rubbing-size-btn:hover {

  color: rgba(245, 239, 225, 0.85);

}

.mem-rubbing-size-btn.is-active {

  background: rgba(201, 169, 97, 0.14);

  color: var(--mem-wall-gold-hi, #FFD700);

}



.mem-rubbing-lift-btn {

  background: transparent;

  border: 1px solid var(--mem-wall-gold, #8B6914);

  color: var(--mem-wall-gold-hi, #FFD700);

  font-family: 'Playfair Display', Georgia, serif;

  font-weight: 800;

  font-size: 12px;

  letter-spacing: 0.14em;

  text-transform: uppercase;

  padding: 9px 20px;

  cursor: pointer;

  border-radius: 3px;

  transition: all 200ms ease;

}

.mem-rubbing-lift-btn:disabled {

  opacity: 0.28;

  cursor: not-allowed;

}

.mem-rubbing-lift-btn.is-ready:not(:disabled) {

  background: var(--mem-wall-gold-hi, #FFD700);

  color: #1a1200;

  animation: mem-rubbing-gold-pulse 2.4s ease-in-out infinite;

}

@keyframes mem-rubbing-gold-pulse {

  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 215, 0, 0.45); }

  50%      { box-shadow: 0 0 0 9px rgba(255, 215, 0, 0); }

}



.mem-rubbing-actions {

  display: flex;

  justify-content: center;

  align-items: center;

  gap: 10px;

  flex-wrap: wrap;

  margin-top: 18px;

  padding-top: 18px;

  border-top: 1px solid rgba(245, 239, 225, 0.08);

}



.mem-rubbing-print-surface {

  display: none;

}

@media print {

  body > *:not(.mem-rubbing-print-surface) { display: none !important; }

  .mem-rubbing-print-surface {

    display: flex !important;

    align-items: center;

    justify-content: center;

    width: 100vw;

    height: 100vh;

    margin: 0;

    padding: 0;

  }

  .mem-rubbing-print-surface img {

    max-width: 100%;

    max-height: 100%;

    width: auto;

    height: auto;

  }

  @page { margin: 0.25in; }

}




/* ============================================================

   VIGIL RUBBING MODAL SHELL 2026-04-24

   ID-level specificity — guarantees correct modal presentation

   regardless of any prior .mem-rubbing-* rules in this file.

   ============================================================ */



#bdgRubbingModal {

  position: fixed;

  inset: 0;

  z-index: 9999;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 20px;

}

#bdgRubbingModal[hidden] { display: none; }



#bdgRubbingModal .mem-rubbing-backdrop {

  position: absolute;

  inset: 0;

  background: rgba(5, 5, 5, 0.88);

  backdrop-filter: blur(8px);

  -webkit-backdrop-filter: blur(8px);

}



#bdgRubbingModal .mem-rubbing-stage {

  position: relative;

  z-index: 1;

  max-width: 620px;

  width: 100%;

  max-height: 92vh;

  overflow-y: auto;

  background: #0a0a0a;

  border: 1px solid rgba(201, 169, 97, 0.18);

  border-radius: 6px;

  padding: 30px 28px 24px;

  display: block;

  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(201, 169, 97, 0.06);

}



#bdgRubbingModal .mem-rubbing-close {

  position: absolute;

  top: 8px;

  right: 12px;

  background: transparent;

  border: none;

  color: rgba(245, 239, 225, 0.5);

  font-size: 28px;

  line-height: 1;

  padding: 4px 10px;

  cursor: pointer;

  font-family: Georgia, serif;

  transition: color 150ms ease;

}

#bdgRubbingModal .mem-rubbing-close:hover { color: #FFD700; }



#bdgRubbingModal .mem-rubbing-modal-title {

  font-family: 'Playfair Display', Georgia, serif;

  font-weight: 800;

  letter-spacing: 0.18em;

  text-transform: uppercase;

  font-size: 14px;

  text-align: center;

  color: #c9a961;

  margin: 0 0 6px 0;

  padding: 0 32px;

}



#bdgRubbingModal .mem-rubbing-canvas-wrap {

  display: block;

  margin: 18px auto 0;

  width: fit-content;

}



/* Hard-override the scrollbar inside stage — the canvas is the focus,

   the modal itself shouldn't feel like a document viewer */

#bdgRubbingModal .mem-rubbing-stage::-webkit-scrollbar { width: 8px; }

#bdgRubbingModal .mem-rubbing-stage::-webkit-scrollbar-track { background: transparent; }

#bdgRubbingModal .mem-rubbing-stage::-webkit-scrollbar-thumb {

  background: rgba(201, 169, 97, 0.18);

  border-radius: 4px;

}




/* ============================================================

   VIGIL RUBBING VIEW 2026-04-24

   Adds "See Rubbing" view to the existing plaque modal.

   ID-level specificity — no collisions with plaque styles.

   ============================================================ */



#bdgRubbingModal[data-view="rubbing"] #bdgRubbingPaper,

#bdgRubbingModal[data-view="rubbing"] .mem-rubbing-soon,

#bdgRubbingModal[data-view="rubbing"] .mem-rubbing-buttons { display: none; }



#bdgRubbingModal[data-view="plaque"] #bdgRubbingSvgView { display: none; }



#bdgRubbingSvgView {

  position: relative;

  width: 100%;

  max-width: 640px;

  margin: 0 auto;

  padding: 0;

}



#bdgRubbingSvgView .mem-rubbing-svg-frame {

  position: relative;

  aspect-ratio: 4 / 5;

  background: #ffffff;

  border-radius: 3px;

  overflow: hidden;

  box-shadow: 0 18px 50px rgba(0,0,0,0.7), 0 0 0 1px rgba(201,169,97,0.12);

}



#bdgRubbingSvgView svg {

  display: block;

  width: 100%;

  height: 100%;

}



#bdgRubbingSvgView .mem-rubbing-svg-progress-wrap {

  margin: 16px auto 0;

  max-width: 420px;

  font-family: Georgia, serif;

  font-size: 12px;

  color: rgba(245, 239, 225, 0.55);

  font-style: italic;

  text-align: center;

}

#bdgRubbingSvgView .mem-rubbing-svg-progress-track {

  height: 2px;

  background: rgba(245,239,225,0.08);

  border-radius: 1px;

  overflow: hidden;

  margin-bottom: 8px;

}

#bdgRubbingSvgView .mem-rubbing-svg-progress-fill {

  height: 100%;

  width: 0%;

  background: #8B6914;

  transition: width 80ms linear, background 400ms ease;

}

#bdgRubbingSvgView.is-complete .mem-rubbing-svg-progress-fill {

  background: #d4af37;

}

#bdgRubbingSvgView .mem-rubbing-svg-progress-label {

  letter-spacing: 0.08em;

}



#bdgRubbingSvgView .mem-rubbing-svg-actions {

  display: none;

  justify-content: center;

  gap: 10px;

  flex-wrap: wrap;

  margin-top: 16px;

  padding-top: 16px;

  border-top: 1px solid rgba(245, 239, 225, 0.08);

}

#bdgRubbingSvgView.is-complete .mem-rubbing-svg-actions { display: flex; }



#bdgRubbingSvgView .mem-rubbing-svg-btn {

  background: transparent;

  border: 1px solid rgba(201, 169, 97, 0.4);

  color: rgba(245, 239, 225, 0.85);

  font-family: Georgia, serif;

  font-size: 12px;

  letter-spacing: 0.08em;

  padding: 8px 18px;

  cursor: pointer;

  border-radius: 3px;

  transition: all 180ms ease;

}

#bdgRubbingSvgView .mem-rubbing-svg-btn:hover {

  border-color: #d4af37;

  color: #d4af37;

  background: rgba(201, 169, 97, 0.06);

}

#bdgRubbingSvgView .mem-rubbing-svg-btn-back {

  color: rgba(245, 239, 225, 0.55);

  border-color: rgba(245, 239, 225, 0.14);

}



/* Hide the plaque in print mode when rubbing view is active */

@media print {

  body > *:not(#bdgRubbingModal) { display: none !important; }

  #bdgRubbingModal[data-view="rubbing"] #bdgRubbingPaper { display: none !important; }

  #bdgRubbingModal[data-view="rubbing"] .mem-rubbing-actions { display: none !important; }

  #bdgRubbingModal[data-view="rubbing"] .mem-rubbing-close { display: none !important; }

  #bdgRubbingModal[data-view="rubbing"] .mem-rubbing-backdrop { display: none !important; }

  #bdgRubbingModal[data-view="rubbing"] .mem-rubbing-svg-progress-wrap,

  #bdgRubbingModal[data-view="rubbing"] .mem-rubbing-svg-actions { display: none !important; }

  #bdgRubbingModal[data-view="rubbing"] #bdgRubbingSvgView .mem-rubbing-svg-frame {

    width: 100%;

    height: 100vh;

    box-shadow: none;

    page-break-inside: avoid;

  }

}



/* ============================================================

   VIGIL RUBBING PRINT FIX 2026-04-24

   Definitive print rules — only the print surface prints,

   at full page, everything else hidden.

   ============================================================ */

@media print {

  body > * { display: none !important; }

  .mem-rubbing-print-surface,

  #bdgRubbingPrintSurface {

    display: flex !important;

    align-items: center;

    justify-content: center;

    position: fixed !important;

    inset: 0 !important;

    width: 100vw !important;

    height: 100vh !important;

    margin: 0 !important;

    padding: 0 !important;

    background: #ffffff !important;

    z-index: 99999 !important;

  }

  #bdgRubbingPrintSurface svg {

    width: 100% !important;

    height: 100% !important;

    max-width: 100vw;

    max-height: 100vh;

    page-break-inside: avoid;

  }

  @page { margin: 0; size: auto; }

}



/* Playfair Display 400 italic — for the rubbing quote (2026-04-24) */

@font-face {

  font-family: 'Playfair Display';

  font-weight: 400;

  font-style: italic;

  font-display: block;

  src: url('https://neuraweb-storage.s3.us-east-2.amazonaws.com/dapps/fonts/playfair-display/playfair-display-400-italic.woff2') format('woff2');

}




/* 2026-04-24: State flag corner (mirror of country flag, top-right) + clickable link wrapper */

.mem-wall-state-flag-corner {

  position: absolute;

  top: 6px;

  right: 6px;

  width: 18px;

  height: 12px;

  object-fit: cover;

  opacity: .55;

  border-radius: 1px;

  box-shadow: 0 1px 2px rgba(0,0,0,.3);

  transition: opacity .25s, transform .25s;

  pointer-events: auto;

  cursor: pointer;

}

.mem-wall-name-entry:hover .mem-wall-state-flag-corner {

  opacity: 1;

  transform: scale(1.05);

}

[data-theme="light"] .mem-wall-state-flag-corner {

  opacity: .65;

  box-shadow: 0 1px 2px rgba(74,56,32,.2);

}

.mem-wall-flag-link {

  text-decoration: none;

  line-height: 0;

  display: inline-block;

}

.mem-wall-flag-link:hover,

.mem-wall-flag-link:focus {

  text-decoration: none;

  outline: none;

}

.mem-wall-flag-link .mem-wall-flag-corner,

.mem-wall-flag-link .mem-wall-state-flag-corner {

  cursor: pointer;

}




/* 2026-04-25: Officer hero flags — uniform locked-box, prevents tiny SVGs from escaping */

.mem-subject-hero-flag {

  display: flex !important;

  flex-direction: row;

  align-items: flex-start;

  gap: 10px;

  flex-shrink: 0;

  padding-top: .25rem;

}

.mem-subject-hero-flag .mem-subject-flag,

.mem-subject-hero-flag .mem-subject-state-flag {

  height: 75px;

  width: 112px;

  max-width: 112px;

  object-fit: contain;

  border-radius: 3px;

  box-shadow: 0 1px 4px rgba(0,0,0,.25);

  transition: opacity .25s, transform .25s;

  display: block;

  background: transparent;

}

.mem-subject-hero-flag .mem-subject-state-flag {

  border: 1px solid rgba(74, 56, 32, .15);

}

[data-theme="dark"] .mem-subject-hero-flag .mem-subject-state-flag {

  border: 1px solid rgba(255, 255, 255, .1);

}

.mem-subject-flag-link {

  display: inline-block;

  line-height: 0;

  text-decoration: none;

  opacity: .88;

  transition: opacity .25s, transform .25s;

}

.mem-subject-flag-link:hover,

.mem-subject-flag-link:focus {

  opacity: 1;

  transform: translateY(-1px);

  outline: none;

}

.mem-wall-state-flag-corner {

  border: 1px solid rgba(74, 56, 32, .15);

}

[data-theme="dark"] .mem-wall-state-flag-corner {

  border: 1px solid rgba(255, 255, 255, .1);

}

@media (max-width: 900px) {

  .mem-subject-hero-flag .mem-subject-flag,

  .mem-subject-hero-flag .mem-subject-state-flag {

    height: 56px;

    width: 84px;

    max-width: 84px;

  }

}



/* 2026-04-25: Hamburger menu — mobile nav drawer (< 900px) */

.mem-hamburger-btn {

  display: none;

  background: transparent;

  border: 1px solid var(--mem-border);

  border-radius: var(--mem-radius-sm, 4px);

  padding: 6px 8px;

  cursor: pointer;

  align-items: center;

  justify-content: center;

  margin-right: 6px;

}

.mem-hamburger-btn:hover,

.mem-hamburger-btn:focus { outline: none; border-color: var(--mem-gold); }

.mem-hamburger-btn img { width: 24px; height: 24px; display: block; }

[data-theme="dark"] .mem-hamburger-btn img { filter: invert(1) brightness(.95); }

.mem-hamburger-overlay {

  position: fixed; inset: 0;

  background: rgba(0,0,0,.55);

  opacity: 0; pointer-events: none;

  transition: opacity .25s ease;

  z-index: 9998;

}

.mem-hamburger-drawer {

  position: fixed; top: 0; left: 0;

  width: 80%; max-width: 320px; height: 100vh;

  background: var(--mem-surface);

  border-right: 1px solid var(--mem-border);

  box-shadow: 2px 0 20px rgba(0,0,0,.4);

  transform: translateX(-100%);

  transition: transform .28s cubic-bezier(.4,0,.2,1);

  z-index: 9999;

  display: flex; flex-direction: column;

  overflow-y: auto;

}

.mem-hamburger-open .mem-hamburger-overlay {

  opacity: 1; pointer-events: auto;

}

.mem-hamburger-open .mem-hamburger-drawer {

  transform: translateX(0);

}

.mem-hamburger-header {

  padding: 1.1rem 1.25rem;

  border-bottom: 1px solid var(--mem-border);

  display: flex; align-items: center; justify-content: space-between;

}

.mem-hamburger-brand {

  font-weight: 700; font-size: 1.1rem; color: var(--mem-t1);

}

.mem-hamburger-brand span { color: var(--mem-gold); }

.mem-hamburger-close {

  background: transparent; border: none; cursor: pointer;

  font-size: 1.5rem; color: var(--mem-t2); line-height: 1;

  padding: 4px 10px;

}

.mem-hamburger-close:hover { color: var(--mem-gold); }

.mem-hamburger-nav {

  display: flex; flex-direction: column;

  padding: 0.5rem 0;

}

.mem-hamburger-nav a {

  display: block;

  padding: 0.95rem 1.25rem;

  color: var(--mem-t1);

  text-decoration: none;

  border-bottom: 1px solid var(--mem-border);

  font-size: 1rem;

  transition: background .15s, color .15s;

}

.mem-hamburger-nav a:hover,

.mem-hamburger-nav a:focus {

  background: var(--mem-stats-bg);

  color: var(--mem-gold);

  outline: none;

}

.mem-hamburger-nav a.active {

  color: var(--mem-gold);

  background: var(--mem-stats-bg);

  border-left: 3px solid var(--mem-gold);

  padding-left: calc(1.25rem - 3px);

}

@media (max-width: 900px) {

  .mem-hamburger-btn { display: inline-flex; }

  .mem-topbar .mem-nav { display: none !important; }

}


[data-theme="dark"] .mem-wall-state-flag-corner {

  border: 1px solid rgba(255, 255, 255, .1);

}




/* 2026-04-25 v2 — UNCONDITIONAL flag + hamburger rules. Last block in file = wins cascade. */

.mem-subject-flag,

.mem-subject-state-flag {

  height: 75px !important;

  width: 112px !important;

  max-width: 112px !important;

  object-fit: contain !important;

  border-radius: 3px !important;

  box-shadow: 0 1px 4px rgba(0,0,0,.25) !important;

  display: block !important;

  background: transparent !important;

}

.mem-subject-state-flag {

  border: 1px solid rgba(74, 56, 32, .15) !important;

}

[data-theme="dark"] .mem-subject-state-flag {

  border: 1px solid rgba(255, 255, 255, .1) !important;

}

.mem-subject-hero-flag {

  display: flex !important;

  flex-direction: row !important;

  align-items: flex-start !important;

  gap: 10px !important;

  flex-shrink: 0 !important;

  padding-top: .25rem !important;

}

@media (max-width: 900px) {

  .mem-subject-flag,

  .mem-subject-state-flag {

    height: 56px !important;

    width: 84px !important;

    max-width: 84px !important;

  }

}



/* Hamburger — fixed positioning, last word in cascade */

.mem-hamburger-btn {

  display: none;

  background: transparent;

  border: 1px solid var(--mem-border);

  border-radius: 4px;

  padding: 6px 8px;

  cursor: pointer;

  align-items: center;

  justify-content: center;

  margin-right: 6px;

}

.mem-hamburger-btn img { width: 24px !important; height: 24px !important; display: block; }

[data-theme="dark"] .mem-hamburger-btn img { filter: invert(1) brightness(.95); }

.mem-hamburger-overlay {

  position: fixed !important;

  top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;

  background: rgba(0,0,0,.55) !important;

  opacity: 0;

  pointer-events: none;

  transition: opacity .25s ease;

  z-index: 9998 !important;

  display: block !important;

}

.mem-hamburger-drawer {

  position: fixed !important;

  top: 0 !important; left: 0 !important;

  width: 80% !important;

  max-width: 320px !important;

  height: 100vh !important;

  background: var(--mem-surface) !important;

  border-right: 1px solid var(--mem-border) !important;

  box-shadow: 2px 0 20px rgba(0,0,0,.4) !important;

  transform: translateX(-100%);

  transition: transform .28s cubic-bezier(.4,0,.2,1);

  z-index: 9999 !important;

  display: flex !important;

  flex-direction: column !important;

  overflow-y: auto !important;

}

body.mem-hamburger-open .mem-hamburger-overlay {

  opacity: 1 !important;

  pointer-events: auto !important;

}

body.mem-hamburger-open .mem-hamburger-drawer {

  transform: translateX(0) !important;

}

.mem-hamburger-header {

  padding: 1.1rem 1.25rem;

  border-bottom: 1px solid var(--mem-border);

  display: flex;

  align-items: center;

  justify-content: space-between;

  flex-shrink: 0;

}

.mem-hamburger-brand {

  font-weight: 700;

  font-size: 1.1rem;

  color: var(--mem-t1);

}

.mem-hamburger-brand span { color: var(--mem-gold); }

.mem-hamburger-close {

  background: transparent;

  border: none;

  cursor: pointer;

  font-size: 1.5rem;

  color: var(--mem-t2);

  line-height: 1;

  padding: 4px 10px;

}

.mem-hamburger-nav {

  display: flex !important;

  flex-direction: column !important;

  padding: 0.5rem 0;

}

.mem-hamburger-nav a {

  display: block !important;

  padding: 0.95rem 1.25rem !important;

  color: var(--mem-t1) !important;

  text-decoration: none !important;

  border-bottom: 1px solid var(--mem-border) !important;

  font-size: 1rem !important;

}

.mem-hamburger-nav a.active {

  color: var(--mem-gold) !important;

  background: var(--mem-stats-bg) !important;

  border-left: 3px solid var(--mem-gold) !important;

}

@media (max-width: 900px) {

  .mem-hamburger-btn { display: inline-flex !important; }

  .mem-topbar .mem-nav { display: none !important; }

}




/* 2026-04-25 v3 — Final: mobile topbar tightening + visible CSS-drawn hamburger */



/* CSS-drawn hamburger icon — no SVG dependency, visible in both themes */

.mem-hamburger-btn {

  display: none;

  background: transparent;

  border: 1px solid var(--mem-border);

  border-radius: 4px;

  padding: 0;

  width: 40px !important;

  height: 36px !important;

  cursor: pointer;

  align-items: center !important;

  justify-content: center !important;

  margin-right: 6px;

  flex-shrink: 0 !important;

}

.mem-hamburger-icon {

  display: inline-flex !important;

  flex-direction: column !important;

  justify-content: space-between !important;

  width: 20px !important;

  height: 14px !important;

}

.mem-hamburger-icon span {

  display: block !important;

  width: 100% !important;

  height: 2px !important;

  background: var(--mem-t1) !important;

  border-radius: 1px !important;

}



/* Mobile topbar: collapse non-essential controls into hamburger */

@media (max-width: 900px) {

  .mem-topbar {

    padding: 0 .75rem !important;

    gap: .5rem !important;

  }

  .mem-hamburger-btn { display: inline-flex !important; }

  .mem-topbar .mem-nav { display: none !important; }



  /* Hide font-size buttons on mobile — moved to drawer */

  .mem-topbar-controls .mem-font-size,

  .mem-topbar-controls .mem-font-toggle,

  .mem-topbar-controls [class*="font-size"],

  .mem-topbar-controls [class*="font-toggle"] {

    display: none !important;

  }



  /* Tighten logo on mobile */

  .mem-logo-by { display: none !important; }

  .mem-logo-wordmark { font-size: 1.05rem !important; }



  /* Compact user pill */

  .mem-topbar-controls { gap: .35rem !important; margin-left: auto !important; }

}



/* Even tighter on very narrow phones */

@media (max-width: 420px) {

  .mem-topbar { padding: 0 .5rem !important; gap: .35rem !important; }

  .mem-logo-wordmark { font-size: .95rem !important; }

}




/* 2026-04-25 v4 — Real selectors: hide .mem-size-controls on mobile, render in drawer */

@media (max-width: 900px) {

  .mem-topbar .mem-size-controls { display: none !important; }

  .mem-topbar .mem-theme-toggle { display: none !important; }

  .mem-topbar .mem-signin-btn { padding: .35rem .6rem !important; font-size: .8rem !important; }

}



/* In-drawer controls block */

.mem-hamburger-controls {

  padding: 1rem 1.25rem;

  border-top: 1px solid var(--mem-border);

  margin-top: auto;

}

.mem-hamburger-controls-label {

  font-size: .7rem;

  text-transform: uppercase;

  letter-spacing: .08em;

  color: var(--mem-t3);

  margin-bottom: .5rem;

}

.mem-hamburger-size-row {

  display: flex;

  gap: .4rem;

}

.mem-hamburger-size-row .mem-size-btn {

  flex: 1;

  background: transparent;

  border: 1px solid var(--mem-border);

  border-radius: 4px;

  padding: .5rem;

  cursor: pointer;

  color: var(--mem-t1);

}

.mem-hamburger-size-row .mem-size-btn[data-size="sm"] { font-size: .75rem; }

.mem-hamburger-size-row .mem-size-btn[data-size="md"] { font-size: .9rem; }

.mem-hamburger-size-row .mem-size-btn[data-size="lg"] { font-size: 1.05rem; }

.mem-hamburger-size-row .mem-size-btn[data-size="xl"] { font-size: 1.2rem; }

.mem-hamburger-size-row .mem-size-btn.active {

  border-color: var(--mem-gold);

  color: var(--mem-gold);

}




/* 2026-04-25 v5 — tighten officer back/prevnext bar on mobile (kills blank-row gap) */

@media (max-width: 900px) {

  .mem-subject-back {

    padding: .5rem .75rem !important;

    flex-wrap: wrap !important;

    gap: .35rem !important;

  }

  .mem-subject-back-nav { gap: .35rem !important; }

  .mem-back-link { font-size: .75rem !important; }

  .mem-prevnext-btn { font-size: .75rem !important; padding: .25rem .5rem !important; }

}




/* 2026-04-25 v6 — Shrink fixed topbar on mobile, kills the "blank row" gap */

@media (max-width: 900px) {

  :root { --mem-topbar-h: 44px !important; }

  .mem-topbar { height: 44px !important; }

}




/* 2026-04-25 v7 — Kill the blank row above prev/next on mobile.

   Root cause: .mem-layout has margin-top:var(--mem-topbar-h) to clear the fixed topbar.

   On mobile we shrink that gap to a minimum and tighten .mem-subject-back padding. */

@media (max-width: 900px) {

  .mem-subject-back {

    padding: .35rem .6rem !important;

    border-top: none !important;

  }

  .mem-subject-back-nav {

    flex-wrap: wrap !important;

    gap: .25rem !important;

  }

  .mem-back-link {

    font-size: .72rem !important;

    padding: .2rem 0 !important;

  }

  .mem-prevnext-btn {

    font-size: .72rem !important;

    padding: .2rem .4rem !important;

  }

}




/* 2026-04-25 v8 — KILL the grey gap between topbar and prev/next on mobile.

   Cause: .mem-layout margin-top:var(--mem-topbar-h) creates dead zone between fixed topbar

   and first content child. Body's grey background shows through.

   Fix: remove margin-top, replace with padding-top on .mem-main with white background. */

@media (max-width: 900px) {

  .mem-layout {

    margin-top: 0 !important;

  }

  .mem-main {

    padding-top: var(--mem-topbar-h) !important;

    background: var(--mem-surface) !important;

  }

}





/* header quick search */

.mem-topbar-row{display:flex;align-items:center;height:var(--mem-topbar-row-h);padding:0 2rem;gap:1.5rem;flex-shrink:0}

.mem-topbar-search{display:flex;align-items:center;justify-content:center;height:var(--mem-topbar-search-h);padding:0 2rem;border-top:1px solid var(--mem-topbar-bd);flex-shrink:0}

.mem-hsearch{position:relative;display:flex;align-items:stretch;width:100%;max-width:760px;height:34px;background:var(--mem-surface);border:1px solid var(--mem-border);border-radius:6px;transition:border-color var(--mem-trans)}

.mem-hsearch:focus-within{border-color:rgba(201,168,76,0.55)}

.mem-hsearch-scope{flex:0 0 auto;border:0;border-right:1px solid var(--mem-border);background:transparent;color:inherit;font:inherit;font-size:.8125rem;padding:0 .6rem;border-radius:6px 0 0 6px;cursor:pointer;outline:none}

.mem-hsearch-input{flex:1 1 auto;min-width:0;border:0;background:transparent;color:inherit;font:inherit;font-size:.875rem;padding:0 .75rem;outline:none}

.mem-hsearch-input::placeholder{color:currentColor;opacity:.45}

.mem-hsearch-input::-webkit-search-cancel-button{-webkit-appearance:none}

.mem-hsearch-panel{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);width:min(1180px,calc(100vw - 3rem));z-index:120;background:var(--mem-topbar-bg);border:1px solid var(--mem-border);border-radius:var(--mem-radius-lg);box-shadow:0 18px 44px rgba(0,0,0,.45);max-height:min(70vh,520px);overflow-y:auto;padding:.5rem}

.mem-hsearch-panel[hidden]{display:none}

.mem-hsearch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.25rem 1.5rem}

.mem-hsearch-grid.is-single{grid-template-columns:minmax(0,1fr)}

.mem-hsearch-col{min-width:0}

.mem-hsearch-colhead{font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;opacity:.55;padding:.4rem .6rem .3rem;border-bottom:1px solid var(--mem-border);margin-bottom:.25rem}

.mem-hsearch-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:4px;color:inherit;text-decoration:none;cursor:pointer}

.mem-hsearch-item:hover,.mem-hsearch-item.is-active{background:rgba(201,168,76,0.12)}

.mem-hsearch-item-name{display:block;font-size:.8125rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.mem-hsearch-item-meta{display:block;font-size:.6875rem;opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.mem-hsearch-msg{padding:.75rem .6rem;font-size:.8125rem;opacity:.6;text-align:center}

@media(max-width:900px){.mem-hsearch-grid{grid-template-columns:minmax(0,1fr)}}

body.is-fullscreen .mem-topbar-row{height:36px;padding:0 1rem}

body.is-fullscreen .mem-topbar-search{display:none}

.mem-hsearch-thumb{flex:0 0 auto;width:28px;height:28px;border-radius:50%;object-fit:cover;object-position:center top;background:var(--mem-border)}
.mem-hsearch-thumb-empty{display:inline-block;background:transparent;border:1px solid var(--mem-border)}
.mem-hsearch-item-text{flex:1 1 auto;min-width:0}
.mem-hsearch-thumb-patch{border-radius:0;object-fit:contain;background:transparent}

/* === ABOUT COLUMN OVERFLOW FIX 2026-07-24 ===
   break-before:column on every h2 forced one column per heading; tabs with
   more than 2 h2s overflowed the card. Flowing normally now, so headings
   need their own vertical separation back. */
.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose h2{margin-top:1.75rem}
.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose h2:first-of-type{margin-top:0}
.mem-about-panel:not(#bdgAboutFounder) .mem-about-prose h2{break-after:avoid}

/* Laid to Rest map - the shared NeuraLocus map, sized for a memorial page.
   MapLibre renders into nothing without an explicit height. */
.mem-subject-map{width:100%;height:380px;margin-top:1.25rem;border:1px solid var(--mem-border);border-radius:4px;overflow:hidden;background:var(--mem-surface)}
.mem-subject-map .maplibregl-canvas{border-radius:4px}
.mem-rest-pin{width:18px;height:18px;border-radius:50%;background:var(--mem-gold,#8a6d2f);border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4);cursor:default}
@media(max-width:640px){.mem-subject-map{height:260px}}
