:root {
  /* Light civic palette — fresh, modern, cream/white with gold accent */
  --bg:#fafaf7; --bg2:#f3f3ee; --card:#ffffff; --border:#e5e3dd;
  --white:#1a1a1d;            /* primary text (variable kept for back-compat) */
  --light:#3d3d45;            /* secondary text */
  --gray:#8a8a93;             /* tertiary text */
  --ink:#1a1a1d;              /* alias for primary text */
  --accent:#b8941e;           /* gold, darker for contrast on white */
  --accent2:#d9b228;          /* gold hover */
  --accent-soft:#fef9e7;      /* very pale gold for backgrounds */
  --red:#c93434; --green:#1f8c5f; --blue:#2563d9;
  --shadow-sm:0 1px 2px rgba(15,15,19,0.04);
  --shadow:0 6px 24px rgba(15,15,19,0.08);
  --shadow-lg:0 18px 48px rgba(15,15,19,0.12);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh;background-image:radial-gradient(ellipse 80% 50% at 50% -10%, rgba(184,148,30,0.06), transparent 60%), radial-gradient(ellipse 60% 40% at 90% 30%, rgba(37,109,217,0.04), transparent 50%);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:'cv11','ss01','ss03','cv02';font-variant-numeric:tabular-nums;}
/* Bricolage Grotesque is a variable font with optical sizing — let bigger text render at its display optical size */
h1,h2,h3,.brand-name,.sd-name,.sp-name,.pulse-name,.oc-name,.mo-name,.notify-title,.ac-title,.vr-title{font-optical-sizing:auto;letter-spacing:-0.025em;}
/* Defensive: nothing inside the page may push the viewport sideways on phones */
html,body{overflow-x:hidden;max-width:100vw;}
/* When the user is on Pulse on a phone, the document scrolls with snap — filters scroll off, then one card at a time. proximity (not mandatory) so other pages stay normal. */
html.snap-pulse{scroll-snap-type:y mandatory;scroll-padding-top:74px;scroll-behavior:smooth;}
html.snap-pulse body{scroll-snap-type:y mandatory;}
::selection{background:var(--accent);color:#ffffff;}

/* Demo-mode badge (only shown in static mode via JS) */
/* Preview-mode pill: bottom-LEFT so it doesn't collide with the Share floating button on mobile (reviewer #4) */
.demo-badge{position:fixed;bottom:18px;left:18px;right:auto;background:rgba(255,255,255,0.96);border:1px solid rgba(184,148,30,0.45);border-radius:999px;padding:8px 16px;font-size:0.75rem;color:var(--accent);backdrop-filter:blur(10px);z-index:500;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:600;display:none;align-items:center;gap:8px;box-shadow:0 8px 28px rgba(15,15,19,0.18);}
.demo-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:pulse 2s infinite;}
.demo-badge.show{display:inline-flex;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.4;}}

/* TOPBAR */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 40px;border-bottom:1px solid var(--border);background:rgba(255,255,255,0.92);position:sticky;top:0;z-index:200;backdrop-filter:blur(12px) saturate(150%);gap:16px;}
.topbar-auth{position:relative;display:flex;align-items:center;gap:8px;}
/* Hamburger button — hidden on desktop, visible on mobile */
.mobile-menu-btn{display:none;background:transparent;border:1px solid var(--border);width:38px;height:38px;border-radius:50%;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;}
.mobile-menu-btn:hover{background:var(--accent-soft);border-color:rgba(184,148,30,0.4);}
.mmb-line{display:block;width:18px;height:2px;background:var(--ink);border-radius:1px;}

/* Mobile drawer */
.mobile-drawer-backdrop{display:none;position:fixed;inset:0;background:rgba(15,15,19,0.45);z-index:480;backdrop-filter:blur(4px);}
.mobile-drawer-backdrop.show{display:block;animation:fadeUp 0.18s ease;}
.mobile-drawer{display:none;position:fixed;top:0;right:0;height:100vh;width:min(86vw, 360px);background:var(--card);border-left:1px solid var(--border);z-index:490;box-shadow:-20px 0 50px rgba(15,15,19,0.18);flex-direction:column;}
.mobile-drawer.show{display:flex;animation:slideInRight 0.25s cubic-bezier(0.4,0,0.2,1);}
@keyframes slideInRight{from{transform:translateX(100%);}to{transform:translateX(0);}}
.md-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border);}
.md-brand{display:flex;align-items:center;gap:10px;}
.md-brand .brand-mark{width:30px;height:30px;font-size:0.85rem;}
.md-brand .brand-name{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.05rem;font-weight:800;letter-spacing:-0.4px;}
.md-close{background:rgba(15,15,19,0.06);border:none;color:var(--ink);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.5rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;}
.md-close:hover{background:rgba(15,15,19,0.1);}
.md-nav{display:flex;flex-direction:column;padding:14px 12px;gap:2px;flex:1;overflow-y:auto;}
.md-nav button{display:flex;align-items:center;background:transparent;border:none;color:var(--ink);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:1rem;font-weight:600;padding:14px 16px;border-radius:10px;cursor:pointer;text-align:left;transition:background 0.15s;width:100%;}
.md-nav button:hover{background:var(--accent-soft);color:var(--accent);}
.md-divider{height:1px;background:var(--border);margin:8px 16px;}
.md-foot{padding:14px 22px;border-top:1px solid var(--border);}

.sign-in-btn{background:var(--accent-soft);color:var(--accent);border:1px solid rgba(184,148,30,0.32);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:600;font-size:0.85rem;padding:8px 16px;border-radius:999px;cursor:pointer;transition:all 0.18s;}
.sign-in-btn:hover{background:rgba(184,148,30,0.14);border-color:rgba(184,148,30,0.5);}
.user-pill{display:none;align-items:center;gap:8px;background:rgba(15,15,19,0.04);border:1px solid var(--border);color:var(--ink);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:500;font-size:0.85rem;padding:5px 12px 5px 5px;border-radius:999px;cursor:pointer;transition:all 0.18s;}
.user-pill:hover{background:rgba(15,15,19,0.07);}
.up-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.8rem;display:inline-flex;align-items:center;justify-content:center;}
.up-handle{max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.up-caret{font-size:0.7rem;color:var(--gray);margin-left:2px;}
.user-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);background:var(--card);border:1px solid var(--border);border-radius:12px;min-width:260px;box-shadow:var(--shadow-lg);padding:6px;z-index:250;animation:fadeUp 0.18s ease;}
.user-menu.show{display:block;}
.um-header{padding:14px 14px 12px;border-bottom:1px solid var(--border);margin-bottom:6px;}
.um-handle{font-weight:700;font-size:0.95rem;color:var(--ink);}
.um-meta{font-size:0.74rem;color:var(--gray);margin-top:2px;}
.um-item{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:none;color:var(--light);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.86rem;text-align:left;padding:9px 12px;border-radius:8px;cursor:pointer;transition:background 0.15s;}
.um-item:hover{background:rgba(15,15,19,0.04);color:var(--ink);}

/* Auth modal */
.auth-overlay{display:none;position:fixed;inset:0;background:rgba(15,15,19,0.55);z-index:500;backdrop-filter:blur(8px);align-items:center;justify-content:center;padding:20px;}
.auth-overlay.show{display:flex;animation:fadeUp 0.2s ease;}
.auth-modal{background:var(--card);border:1px solid var(--border);border-radius:20px;width:100%;max-width:440px;padding:36px 32px 28px;position:relative;box-shadow:var(--shadow-lg);}
.auth-close{position:absolute;top:14px;right:14px;background:rgba(15,15,19,0.04);border:none;color:var(--gray);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:1.4rem;line-height:1;transition:all 0.15s;}
.auth-close:hover{background:rgba(15,15,19,0.08);color:var(--ink);}
.auth-eyebrow{font-size:0.68rem;font-weight:700;letter-spacing:1.5px;color:var(--accent);margin-bottom:8px;}
.auth-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.55rem;font-weight:800;letter-spacing:-0.5px;color:var(--ink);margin-bottom:10px;}
.auth-sub{font-size:0.88rem;line-height:1.55;color:var(--light);margin-bottom:24px;}
.auth-sub strong{color:var(--accent);font-weight:700;}
.auth-providers{display:flex;flex-direction:column;gap:9px;margin-bottom:18px;}
.auth-prov{display:flex;align-items:center;gap:12px;justify-content:center;background:var(--card);border:1.5px solid var(--border);color:var(--ink);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.92rem;font-weight:600;padding:12px 16px;border-radius:11px;cursor:pointer;transition:all 0.18s;}
.auth-prov:hover{transform:translateY(-1px);border-color:rgba(15,15,19,0.25);box-shadow:var(--shadow-sm);}
.auth-google{background:#fff;color:#1a1a1d;border-color:#dadce0;}
.auth-google:hover{background:#f8f9fa;border-color:#c4c7cc;}
.auth-github{background:#1a1a1d;border-color:#1a1a1d;color:#fff;}
.auth-github:hover{background:#2a2a2d;border-color:#2a2a2d;}
.auth-email-btn{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:800;font-family:'Bricolage Grotesque','Syne',sans-serif;}
.auth-email-btn:hover{background:var(--accent2);border-color:var(--accent2);transform:translateY(-1px);}
.ap-icon{width:22px;height:22px;border-radius:50%;background:rgba(15,15,19,0.06);display:inline-flex;align-items:center;justify-content:center;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.85rem;color:inherit;}
.auth-github .ap-icon{background:rgba(255,255,255,0.12);}
.auth-divider{display:flex;align-items:center;gap:10px;color:var(--gray);font-size:0.78rem;margin:6px 0 14px;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.auth-email{display:flex;flex-direction:column;gap:8px;margin-bottom:18px;}
.auth-email input{background:#fafaf7;border:1.5px solid var(--border);border-radius:10px;padding:11px 14px;color:var(--ink);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.9rem;outline:none;transition:border-color 0.18s;}
.auth-email input:focus{border-color:rgba(184,148,30,0.5);background:#fff;}
.auth-footer{font-size:0.72rem;color:var(--gray);line-height:1.55;text-align:center;border-top:1px solid var(--border);padding-top:14px;}
.brand{display:flex;align-items:center;gap:10px;cursor:pointer;}
.brand-mark{width:34px;height:34px;background:var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;color:var(--bg);font-size:0.95rem;}
.brand-name{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.15rem;font-weight:800;letter-spacing:-0.5px;}
.brand-name span{color:var(--accent);}
.topnav{display:flex;gap:4px;}
.topnav button{background:none;border:none;color:var(--gray);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.83rem;font-weight:500;padding:7px 14px;border-radius:8px;cursor:pointer;transition:all 0.2s;}
.topnav button.active,.topnav button:hover{background:rgba(15,15,19,0.045);color:var(--ink);}

/* "More" dropdown in nav */
.nav-more-wrap{position:relative;display:inline-block;}
.nav-more-btn{background:none;border:none;color:var(--gray);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.83rem;font-weight:500;padding:7px 14px;border-radius:8px;cursor:pointer;transition:all 0.2s;display:inline-flex;align-items:center;gap:4px;}
.nav-more-btn:hover,.nav-more-btn.active{background:rgba(15,15,19,0.045);color:var(--ink);}
.nav-more-caret{font-size:0.7rem;transition:transform 0.18s;}
.nav-more-btn.active .nav-more-caret,.nav-more-menu.show ~ .nav-more-btn .nav-more-caret{transform:rotate(180deg);}
.nav-more-menu{display:none;position:absolute;top:calc(100% + 8px);left:0;background:var(--card);border:1px solid var(--border);border-radius:12px;min-width:220px;box-shadow:var(--shadow-lg);padding:6px;z-index:250;animation:fadeUp 0.18s ease;}
.nav-more-menu.show{display:block;}
.nav-more-menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:none;color:var(--light);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.88rem;padding:9px 12px;border-radius:8px;cursor:pointer;transition:background 0.15s;}
.nav-more-menu .nm-ic{width:16px;height:16px;flex-shrink:0;color:var(--gray);}
.nav-more-menu button:hover{background:rgba(15,15,19,0.04);color:var(--ink);}
.nav-more-menu button:hover .nm-ic{color:var(--accent);}
.hero-illustration{display:block;max-width:560px;width:100%;height:auto;margin:6px auto 18px;}
@media (max-width:600px){.hero-illustration{margin:4px auto 12px;}}
.btn-gold{background:var(--accent);color:var(--bg);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:700;font-size:0.88rem;padding:11px 24px;border-radius:10px;border:none;cursor:pointer;transition:all 0.2s;box-shadow:0 4px 16px rgba(184,148,30,0.22);}
.btn-gold:hover{background:var(--accent2);transform:translateY(-1px);box-shadow:0 8px 24px rgba(184,148,30,0.4);}
.btn-gold:active{transform:translateY(0);}
.btn-ghost{background:transparent;color:var(--white);border:1.5px solid var(--border);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:600;font-size:0.88rem;padding:10px 22px;border-radius:10px;cursor:pointer;transition:all 0.2s;}
.btn-ghost:hover{border-color:rgba(15,15,19,0.3);background:rgba(15,15,19,0.025);transform:translateY(-1px);}

/* SECTIONS */
section{display:none;animation:fadeUp 0.32s ease;}
section.active{display:block;}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}

/* HOME — plain single-column layout */
.hero{max-width:900px;margin:0 auto;padding:80px 40px 50px;text-align:center;position:relative;}
.hero::before{content:'';position:absolute;width:520px;height:520px;left:50%;top:-100px;transform:translateX(-50%);background:radial-gradient(circle, rgba(184,148,30,0.1), transparent 65%);pointer-events:none;z-index:-1;}
.hero h1{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:clamp(2.6rem,5.5vw,4.4rem);font-weight:800;line-height:1.02;letter-spacing:-2px;margin-bottom:22px;}
.hero h1 em{color:var(--accent);font-style:normal;background:linear-gradient(120deg,var(--accent) 0%,var(--accent2) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.72rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);background:rgba(184,148,30,0.11);border:1px solid rgba(184,148,30,0.35);border-radius:999px;padding:6px 14px;margin-bottom:24px;}
.hero-eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);}
.hero-lead{color:var(--light);font-size:1.05rem;line-height:1.65;margin-bottom:36px;max-width:560px;margin-left:auto;margin-right:auto;}

/* Two-card primary CTA row */
.hero-cta-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:760px;margin:0 auto 44px;}
.cta-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:24px 22px;border-radius:14px;border:1.5px solid var(--border);background:var(--card);cursor:pointer;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:var(--white);transition:all 0.25s cubic-bezier(0.4,0,0.2,1);}
.cta-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(15,15,19,0.15);}
.cta-card .cta-icon{font-size:1.8rem;line-height:1;margin-bottom:4px;}
.cta-card .cta-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.05rem;font-weight:800;line-height:1.2;}
.cta-card .cta-sub{font-size:0.82rem;color:var(--gray);line-height:1.45;}
.cta-praise{border-color:rgba(78,201,138,0.25);background:linear-gradient(180deg,rgba(78,201,138,0.05),var(--card));}
.cta-praise:hover{border-color:rgba(78,201,138,0.5);}
.cta-praise .cta-title{color:var(--green);}
.cta-doc{border-color:rgba(184,148,30,0.3);background:linear-gradient(180deg,rgba(184,148,30,0.06),var(--card));}
.cta-doc:hover{border-color:rgba(232,197,71,0.5);}
.cta-doc .cta-title{color:var(--accent);}

/* Category status strip */
.categories-strip{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-top:10px;background:rgba(15,15,19,0.015);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;}
.cs-item{font-size:0.78rem;color:var(--gray);display:inline-flex;align-items:center;gap:6px;}
.cs-item.live{color:var(--white);}
.cs-item strong{color:var(--accent);font-weight:700;letter-spacing:0.3px;}
.cs-dot{width:6px;height:6px;border-radius:50%;background:var(--gray);}
.cs-dot.live{background:var(--green);box-shadow:0 0 8px rgba(78,201,138,0.5);animation:pulse 2.4s infinite;}
@media(max-width:700px){
  .hero-cta-row{grid-template-columns:1fr;}
  .categories-strip{gap:10px;font-size:0.72rem;padding:12px 14px;}
}
.hero p{color:var(--light);font-size:1rem;line-height:1.75;margin-bottom:32px;}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap;}
.phone-mock{background:var(--card);border-radius:26px;border:1.5px solid var(--border);padding:24px 18px;box-shadow:0 40px 80px rgba(15,15,19,0.12);width:240px;margin:0 auto;}
.pn{width:70px;height:5px;background:var(--border);border-radius:3px;margin:0 auto 20px;}
.pm-lbl{font-size:0.68rem;text-transform:uppercase;letter-spacing:1px;color:var(--gray);margin-bottom:4px;}
.pm-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1rem;font-weight:800;margin-bottom:16px;}
.pm-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;}
.pm-chip{padding:10px 6px;border-radius:9px;text-align:center;font-weight:700;font-size:0.76rem;border:1.5px solid;cursor:pointer;transition:transform 0.15s, filter 0.15s;}
.pm-chip:hover{transform:translateY(-1px);filter:brightness(1.15);}
.pm-chip.f{background:rgba(78,201,138,0.1);color:var(--green);border-color:rgba(78,201,138,0.3);}
.pm-chip.u{background:rgba(224,82,82,0.1);color:var(--red);border-color:rgba(224,82,82,0.3);}
.pm-stars{color:var(--accent);font-size:1.3rem;margin-bottom:14px;display:flex;gap:2px;justify-content:center;}
.pm-stars span{cursor:pointer;transition:transform 0.15s;}
.pm-stars span:hover{transform:scale(1.15);}
.pm-btn{background:var(--accent);color:var(--bg);border:none;border-radius:9px;width:100%;padding:10px;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.8rem;cursor:pointer;transition:background 0.15s;}
.pm-btn:hover{background:var(--accent2);}
.pm-note{font-size:0.68rem;color:var(--gray);text-align:center;margin-top:6px;}

.stats-strip{display:flex;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg2);}
.ss{flex:1;padding:28px 20px;text-align:center;border-right:1px solid var(--border);}
.ss:last-child{border-right:none;}
.ss-n{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.9rem;font-weight:800;color:var(--accent);}
.ss-l{font-size:0.75rem;color:var(--gray);text-transform:uppercase;letter-spacing:0.7px;margin-top:3px;}

/* SHARED FORM STYLES */
.wrap{max-width:660px;margin:50px auto;padding:0 24px;}
.wrap-wide{max-width:880px;margin:50px auto;padding:0 24px;}
.ph{margin-bottom:28px;}
.ph h2{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.75rem;font-weight:800;letter-spacing:-0.5px;}
.ph p{color:var(--gray);margin-top:5px;font-size:0.9rem;}
.rcard{background:var(--card);border-radius:18px;border:1px solid var(--border);padding:32px;box-shadow:0 20px 50px rgba(15,15,19,0.1);}
.fl{margin-bottom:20px;}
.fl label{display:block;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.8px;color:var(--accent);margin-bottom:8px;}
.fl input,.fl textarea,.fl select{width:100%;background:rgba(15,15,19,0.035);border:1.5px solid var(--border);border-radius:10px;padding:12px 14px;color:var(--white);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.93rem;outline:none;transition:border-color 0.2s;}
.fl input:focus,.fl textarea:focus,.fl select:focus{border-color:rgba(184,148,30,0.55);}
.fl textarea{resize:vertical;min-height:85px;}
.fl select option{background:var(--bg2);}
.fl-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

/* Verdict toggle */
.vt-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.vt{padding:16px;border-radius:12px;border:2px solid var(--border);background:rgba(15,15,19,0.02);cursor:pointer;text-align:center;transition:all 0.2s;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;}
.vt .vi{font-size:1.6rem;display:block;margin-bottom:5px;}
.vt .vl{font-weight:700;font-size:0.9rem;display:block;}
.vt .vs{font-size:0.75rem;color:var(--gray);display:block;margin-top:2px;}
.vt.fair-sel{border-color:var(--green);background:rgba(78,201,138,0.07);}
.vt.unfair-sel{border-color:var(--red);background:rgba(224,82,82,0.07);}

/* Stars */
.stars-row{display:flex;gap:8px;}
.sr{font-size:2rem;cursor:pointer;color:rgba(15,15,19,0.08);transition:all 0.15s;user-select:none;}
.sr.on{color:var(--accent);text-shadow:0 0 10px rgba(184,148,30,0.5);}
.sr:hover{transform:scale(1.2);}

/* Tags */
.tags{display:flex;gap:7px;flex-wrap:wrap;}
.tag{background:rgba(15,15,19,0.03);border:1.5px solid var(--border);border-radius:20px;padding:6px 14px;font-size:0.8rem;cursor:pointer;transition:all 0.2s;color:var(--gray);}
.tag.on{background:rgba(184,148,30,0.13);border-color:rgba(184,148,30,0.45);color:var(--accent);}
.tag.on.neg{background:rgba(224,82,82,0.08);border-color:rgba(224,82,82,0.3);color:var(--red);}
.tag.on.pos{background:rgba(78,201,138,0.08);border-color:rgba(78,201,138,0.3);color:var(--green);}

/* Compact live rating chip — sits at the top of the rate form card; only appears once the user moves past step 1 */
.live-rating{display:none;align-items:center;justify-content:space-between;gap:12px;background:rgba(184,148,30,0.07);border:1px solid rgba(184,148,30,0.28);border-radius:10px;padding:9px 14px;margin-bottom:18px;transition:all 0.25s cubic-bezier(0.4,0,0.2,1);}
.live-rating.visible{display:flex;animation:slideIn 0.35s ease;}
@keyframes slideIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:translateY(0);}}
.live-rating.pulse{animation:lrPulse 0.7s ease;}
@keyframes lrPulse{0%{box-shadow:0 0 0 0 rgba(184,148,30,0.55);}60%{box-shadow:0 0 0 8px rgba(232,197,71,0);}100%{box-shadow:0 0 0 0 rgba(232,197,71,0);}}
.lr-left{display:flex;align-items:center;gap:12px;}
.lr-label{font-size:0.64rem;font-weight:700;letter-spacing:1.1px;text-transform:uppercase;color:var(--accent);}
.lr-stars{font-size:1.05rem;letter-spacing:2px;color:var(--accent);line-height:1;}
.lr-num{font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.76rem;color:var(--gray);font-weight:600;}
.lr-num.manual{color:var(--blue);}
.lr-adjust{background:transparent;color:var(--gray);border:none;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.75rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:2px 4px;}
.lr-adjust:hover{color:var(--accent);}

.lr-adjust-panel{display:none;align-items:center;gap:12px;background:rgba(91,138,240,0.05);border:1px solid rgba(91,138,240,0.18);border-radius:10px;padding:9px 14px;margin-bottom:18px;}
.lr-adjust-panel.show{display:flex;flex-wrap:wrap;}
.lap-label{font-size:0.7rem;color:var(--gray);text-transform:uppercase;letter-spacing:0.8px;font-weight:600;}
.lap-stars{display:flex;gap:4px;}
.lap-stars span{font-size:1.3rem;color:rgba(15,15,19,0.12);cursor:pointer;transition:all 0.12s;user-select:none;}
.lap-stars span:hover{transform:scale(1.18);}
.lap-stars span.on{color:var(--accent);text-shadow:0 0 8px rgba(184,148,30,0.5);}
.lap-clear{background:transparent;color:var(--gray);border:1px solid var(--border);border-radius:8px;padding:4px 10px;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.72rem;cursor:pointer;margin-left:auto;}
.lap-clear:hover{color:var(--white);border-color:rgba(15,15,19,0.18);}

/* Share pill row — Twitter, LinkedIn, WhatsApp, Facebook, Copy, More */
.share-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border);width:100%;}
.share-pill{background:rgba(255,255,255,0.04);border:1.5px solid var(--border);border-radius:999px;padding:8px 14px;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.78rem;font-weight:600;cursor:pointer;color:var(--light);transition:all 0.18s;display:inline-flex;align-items:center;gap:6px;}
.share-pill:hover{transform:translateY(-1px);background:rgba(232,197,71,0.08);border-color:rgba(232,197,71,0.45);color:var(--accent);}
.share-pill.share-twitter{background:#0f0f13;color:#fff;border-color:#0f0f13;}
.share-pill.share-twitter:hover{background:#272730;color:#fff;border-color:#272730;}
.share-pill.share-linkedin{background:#0a66c2;color:#fff;border-color:#0a66c2;}
.share-pill.share-linkedin:hover{background:#084d92;color:#fff;border-color:#084d92;}
.share-pill.share-whatsapp{background:#25d366;color:#fff;border-color:#25d366;}
.share-pill.share-whatsapp:hover{background:#1ea655;color:#fff;border-color:#1ea655;}
.share-pill.share-facebook{background:#1877f2;color:#fff;border-color:#1877f2;}
.share-pill.share-facebook:hover{background:#0d5bc2;color:#fff;border-color:#0d5bc2;}

/* Message-type pills in the Reach Out form */
.msg-type-pills{display:flex;gap:8px;flex-wrap:wrap;}
.msg-type{background:rgba(255,255,255,0.04);border:1.5px solid var(--border);border-radius:10px;padding:11px 16px;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.92rem;cursor:pointer;color:var(--light);transition:all 0.18s;font-weight:600;}
.msg-type:hover{border-color:rgba(232,197,71,0.4);}
.msg-type.on[data-type="praise"]{background:rgba(78,201,138,0.1);border-color:rgba(78,201,138,0.5);color:var(--green);}
.msg-type.on[data-type="complaint"]{background:rgba(224,82,82,0.08);border-color:rgba(224,82,82,0.45);color:var(--red);}

/* Stream / grid view toggle */
.view-toggle{display:flex;gap:6px;margin:18px 0 22px;background:rgba(255,255,255,0.025);border:1px solid var(--border);border-radius:10px;padding:4px;width:fit-content;}
.vt-btn{background:transparent;border:none;color:var(--gray);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.82rem;font-weight:600;padding:8px 16px;border-radius:8px;cursor:pointer;transition:all 0.18s;}
.vt-btn:hover{color:var(--white);}
.vt-btn.on{background:rgba(232,197,71,0.12);color:var(--accent);}

/* Story stream — forum-style feed, redesigned for readability */
.story-stream{display:flex;flex-direction:column;gap:14px;margin-bottom:32px;}
.story-post{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:26px 30px;transition:all 0.22s cubic-bezier(0.4,0,0.2,1);cursor:pointer;box-shadow:var(--shadow-sm);}
.story-post:hover{border-color:rgba(184,148,30,0.4);transform:translateY(-2px);box-shadow:var(--shadow);}
.sp-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px;}
.sp-icon{width:52px;height:52px;border-radius:13px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex-shrink:0;border:1px solid var(--border);}
.sp-meta{flex:1;min-width:0;}
.sp-who{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:4px;}
.sp-who .sp-name{font-weight:700;font-size:1.08rem;color:var(--ink);cursor:pointer;line-height:1.2;}
.sp-who .sp-name:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px;}
.sp-who .sp-role{font-size:0.65rem;color:var(--gray);text-transform:uppercase;letter-spacing:1.1px;font-weight:700;background:var(--bg2);border:1px solid var(--border);border-radius:999px;padding:3px 10px;}
.sp-agency{font-size:0.86rem;color:var(--light);line-height:1.4;}
.sp-agency .sp-loc{color:var(--gray);}
.sp-sentiment{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;}
.sp-sentiment .sp-stars{color:var(--accent);font-size:1rem;letter-spacing:2px;line-height:1;}
.sp-sentiment .sp-tag{font-size:0.72rem;font-weight:700;letter-spacing:0.5px;padding:3px 10px;border-radius:999px;text-transform:uppercase;}
.sp-sentiment.pos .sp-tag{color:var(--green);background:rgba(31,140,95,0.1);border:1px solid rgba(31,140,95,0.25);}
.sp-sentiment.neg .sp-tag{color:var(--red);background:rgba(201,52,52,0.08);border:1px solid rgba(201,52,52,0.22);}
.sp-body{font-size:1.05rem;line-height:1.72;color:var(--ink);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:400;}
.sp-body.truncated::after{content:'';display:block;height:30px;margin-top:-30px;background:linear-gradient(180deg, transparent, var(--card));position:relative;}
.sp-readmore{display:inline-block;margin-top:6px;color:var(--accent);font-weight:600;font-size:0.85rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer;background:none;border:none;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;padding:0;}
.sp-readmore:hover{color:var(--accent2);}
.sp-byline{font-size:0.78rem;color:var(--gray);margin-top:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.sp-byline .sp-author{display:inline-flex;align-items:center;gap:6px;color:var(--light);transition:color 0.15s;}
.sp-byline .sp-author:hover{color:var(--accent);}
.sp-byline .sp-author-avatar{width:18px;height:18px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.6rem;display:inline-flex;align-items:center;justify-content:center;}
.sp-byline .sp-sep{color:var(--border);}
.sp-foot{display:flex;align-items:center;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border);flex-wrap:wrap;}
.sp-actions{display:flex;gap:6px;flex-wrap:wrap;}
.sp-action{background:transparent;border:1px solid var(--border);color:var(--gray);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.86rem;font-weight:600;padding:10px 16px;min-height:44px;border-radius:999px;cursor:pointer;transition:all 0.15s;display:inline-flex;align-items:center;gap:4px;}
@media (max-width:640px){.sp-action{padding:11px 14px;font-size:0.92rem;min-height:46px;}}
.sp-action:hover{color:var(--accent);border-color:rgba(184,148,30,0.4);background:var(--accent-soft);}
.sp-action.up:hover{color:var(--green);border-color:rgba(31,140,95,0.4);background:rgba(31,140,95,0.06);}
.sp-action.primary{color:var(--accent);border-color:rgba(184,148,30,0.4);background:var(--accent-soft);margin-left:auto;}
.sp-action.primary:hover{background:rgba(184,148,30,0.12);}
.sp-tags-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;}
.sp-tags-row .spt{font-size:0.7rem;background:var(--accent-soft);border:1px solid rgba(184,148,30,0.2);color:var(--accent);padding:3px 9px;border-radius:999px;font-weight:600;}
.sp-tags-row .spt.neg{background:rgba(201,52,52,0.06);border-color:rgba(201,52,52,0.2);color:var(--red);}

/* Story detail modal — full read view */
.story-detail-overlay{display:none;position:fixed;inset:0;background:rgba(15,15,19,0.55);z-index:400;backdrop-filter:blur(8px);align-items:center;justify-content:center;padding:20px;}
.story-detail-overlay.show{display:flex;animation:fadeUp 0.2s ease;}
.story-detail{background:var(--card);border:1px solid var(--border);border-radius:20px;width:100%;max-width:640px;max-height:88vh;overflow-y:auto;padding:36px 36px 28px;position:relative;box-shadow:var(--shadow-lg);}
.story-detail .auth-close{font-size:1.4rem;}
.sd-eyebrow{font-size:0.65rem;font-weight:700;letter-spacing:1.5px;color:var(--accent);margin-bottom:10px;text-transform:uppercase;}
.sd-head{margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid var(--border);display:flex;gap:16px;align-items:flex-start;}
.sd-icon{width:58px;height:58px;border-radius:14px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:1.8rem;flex-shrink:0;border:1px solid var(--border);}
.sd-who{flex:1;}
.sd-name{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.4rem;font-weight:800;color:var(--ink);cursor:pointer;letter-spacing:-0.3px;}
.sd-name:hover{color:var(--accent);}
.sd-agency{font-size:0.92rem;color:var(--light);margin-top:4px;}
.sd-sent{display:flex;align-items:center;gap:8px;margin-top:8px;}
.sd-stars{color:var(--accent);font-size:1.1rem;letter-spacing:2px;}
.sd-tag{font-size:0.72rem;font-weight:700;letter-spacing:0.5px;padding:3px 10px;border-radius:999px;text-transform:uppercase;}
.sd-tag.pos{color:var(--green);background:rgba(31,140,95,0.1);border:1px solid rgba(31,140,95,0.25);}
.sd-tag.neg{color:var(--red);background:rgba(201,52,52,0.08);border:1px solid rgba(201,52,52,0.22);}
.sd-body{font-size:1.08rem;line-height:1.78;color:var(--ink);white-space:pre-wrap;margin-bottom:20px;}
.sd-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--border);}
.sd-byline{font-size:0.83rem;color:var(--gray);display:flex;align-items:center;gap:8px;flex:1;min-width:200px;}
.sd-author-avatar{width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.7rem;display:inline-flex;align-items:center;justify-content:center;}

/* Reply thread inside story detail */
.reply-thread{margin-top:22px;padding-top:22px;border-top:1px solid var(--border);}
.reply-thread-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.reply-thread-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:0.95rem;font-weight:800;color:var(--ink);}
.reply-list{display:flex;flex-direction:column;gap:10px;margin-bottom:18px;}
.reply-item{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;}
.reply-item.is-agency{background:rgba(31,140,95,0.06);border-color:rgba(31,140,95,0.32);}
.reply-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:10px;flex-wrap:wrap;}
.reply-author{display:inline-flex;align-items:center;gap:8px;font-size:0.88rem;color:var(--ink);cursor:pointer;}
.reply-author:hover strong{color:var(--accent);}
.reply-avatar{width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.66rem;display:inline-flex;align-items:center;justify-content:center;}
.reply-agency-badge{font-size:0.66rem;font-weight:700;letter-spacing:0.4px;color:var(--green);background:rgba(31,140,95,0.12);border:1px solid rgba(31,140,95,0.32);padding:2px 8px;border-radius:999px;text-transform:uppercase;}
.reply-date{font-size:0.74rem;color:var(--gray);}
.reply-body{font-size:0.93rem;line-height:1.65;color:var(--light);white-space:pre-wrap;}
.reply-form{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:12px;}
.reply-form textarea{width:100%;background:transparent;border:none;color:var(--ink);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.92rem;line-height:1.55;outline:none;resize:vertical;min-height:60px;}
.reply-form-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);flex-wrap:wrap;}
.reply-as{font-size:0.78rem;color:var(--gray);}

/* ─── Admin moderation dashboard ─── */
.adm-section-head{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:0.95rem;font-weight:800;color:var(--accent);margin-bottom:10px;text-transform:uppercase;letter-spacing:0.6px;}
.adm-list{display:flex;flex-direction:column;gap:6px;}
.adm-row{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;gap:12px;align-items:center;cursor:pointer;transition:all 0.15s;}
.adm-row:hover{border-color:rgba(184,148,30,0.4);background:var(--accent-soft);}
.adm-row-main{flex:1;min-width:0;}
.adm-row-headline{display:flex;align-items:center;gap:8px;font-size:0.92rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.adm-target{font-weight:700;}
.adm-target-sub{color:var(--gray);font-size:0.85rem;}
.adm-sent{font-size:0.82rem;font-weight:700;}
.adm-sent.pos{color:var(--green);}
.adm-sent.neg{color:var(--red);}
.adm-evidence{font-size:0.85rem;}
.adm-row-author{font-size:0.76rem;color:var(--gray);margin-top:3px;}
.adm-row-author strong{color:var(--ink);}
.adm-row-preview{font-size:0.82rem;color:var(--light);margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.adm-row-side{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.adm-warn{background:rgba(201,52,52,0.1);color:var(--red);border:1px solid rgba(201,52,52,0.32);border-radius:999px;padding:3px 9px;font-size:0.74rem;font-weight:700;}
.adm-clean{background:rgba(31,140,95,0.08);color:var(--green);border:1px solid rgba(31,140,95,0.28);border-radius:999px;padding:3px 7px;font-size:0.78rem;font-weight:700;}
.adm-quick{width:30px;height:30px;border-radius:8px;font-weight:700;cursor:pointer;font-size:0.92rem;display:flex;align-items:center;justify-content:center;border:1px solid;transition:all 0.15s;}
.adm-quick.adm-approve{background:rgba(31,140,95,0.1);color:var(--green);border-color:rgba(31,140,95,0.4);}
.adm-quick.adm-approve:hover{background:rgba(31,140,95,0.2);}
.adm-quick.adm-reject{background:rgba(201,52,52,0.08);color:var(--red);border-color:rgba(201,52,52,0.4);}
.adm-quick.adm-reject:hover{background:rgba(201,52,52,0.16);}

.adm-published{display:flex;flex-direction:column;gap:4px;}
.adm-pub-row{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;font-size:0.85rem;}
.adm-pub-when{color:var(--gray);font-size:0.74rem;margin-left:auto;}

/* Admin detail modal */
.adm-block{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:14px;}
.adm-block-head{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:0.78rem;font-weight:800;color:var(--gray);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:10px;}
.adm-block-sub{font-size:0.78rem;color:var(--gray);margin:10px 0 6px;font-weight:600;text-transform:uppercase;letter-spacing:0.6px;}
.adm-signals{background:rgba(201,52,52,0.04);border:1px solid rgba(201,52,52,0.18);border-radius:12px;padding:14px 16px;margin-bottom:14px;}
.adm-signals .adm-block-head{color:var(--red);}
.adm-signal{font-size:0.84rem;padding:8px 12px;border-radius:8px;margin-bottom:6px;line-height:1.45;}
.adm-signal:last-child{margin-bottom:0;}
.adm-signal.alert{background:rgba(201,52,52,0.1);color:var(--red);border:1px solid rgba(201,52,52,0.3);}
.adm-signal.warning{background:rgba(184,148,30,0.1);color:var(--accent);border:1px solid rgba(184,148,30,0.32);}
.adm-signal.info{background:rgba(37,109,217,0.06);color:var(--blue);border:1px solid rgba(37,109,217,0.22);}
.adm-signal.good{background:rgba(31,140,95,0.06);color:var(--green);border:1px solid rgba(31,140,95,0.25);}

.adm-stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;}
@media(max-width:600px){.adm-stats-grid{grid-template-columns:repeat(3,1fr);}}
.adm-stats-grid > div{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:10px 8px;text-align:center;}
.adm-stat-n{display:block;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1.25rem;color:var(--ink);line-height:1;}
.adm-stat-l{display:block;font-size:0.68rem;color:var(--gray);margin-top:4px;text-transform:uppercase;letter-spacing:0.6px;font-weight:600;}

.adm-history{display:flex;flex-direction:column;gap:4px;}
.adm-history-row{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--card);border:1px solid var(--border);border-radius:7px;font-size:0.82rem;cursor:pointer;transition:background 0.15s;}
.adm-history-row:hover{background:var(--accent-soft);}

.adm-field-label{display:block;font-size:0.74rem;color:var(--gray);text-transform:uppercase;letter-spacing:0.6px;font-weight:700;margin:10px 0 5px;}
.adm-row-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}
@media(max-width:500px){.adm-row-fields{grid-template-columns:1fr;}}
#adm-edit-story, #adm-edit-tags, .adm-row-fields select, .adm-row-fields input{width:100%;background:var(--card);border:1.5px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--ink);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.9rem;outline:none;}
#adm-edit-story{font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;line-height:1.55;}
#adm-edit-story:focus, .adm-row-fields select:focus, .adm-row-fields input:focus{border-color:rgba(184,148,30,0.5);}

.adm-photo-frame{background:var(--card);border:1.5px dashed rgba(184,148,30,0.4);border-radius:10px;padding:18px;text-align:center;}

.adm-action-bar{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border);}
.adm-btn{flex:1;min-width:160px;padding:12px 16px;border-radius:10px;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:700;font-size:0.88rem;cursor:pointer;border:1.5px solid;transition:all 0.18s;}
.adm-btn-approve{background:var(--green);color:#fff;border-color:var(--green);}
.adm-btn-approve:hover{background:#178b5b;}
.adm-btn-reject{background:var(--card);color:var(--red);border-color:rgba(201,52,52,0.45);}
.adm-btn-reject:hover{background:rgba(201,52,52,0.08);}
.adm-btn-ban{background:var(--card);color:var(--ink);border-color:var(--border);}
.adm-btn-ban:hover{background:var(--bg2);}

/* ─── Resolution banner ─── */
.resolution-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:0.9rem;flex-wrap:wrap;}
.resolution-banner .rb-icon{font-size:1.15rem;flex-shrink:0;}
.resolution-banner .rb-text{flex:1;min-width:200px;line-height:1.45;}
.resolution-banner .rb-btn{background:rgba(31,140,95,0.18);border:1px solid rgba(31,140,95,0.45);color:var(--green);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:700;font-size:0.78rem;padding:7px 14px;border-radius:8px;cursor:pointer;transition:all 0.15s;white-space:nowrap;}
.resolution-banner .rb-btn:hover{background:rgba(31,140,95,0.28);}

/* ─── Bell + notification dropdown ─── */
.streak-chip{display:inline-flex;align-items:center;gap:3px;background:rgba(224,122,26,0.10);border:1px solid rgba(224,122,26,0.35);color:#e07a1a;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.78rem;padding:3px 9px 3px 6px;border-radius:999px;cursor:pointer;transition:all 0.18s;line-height:1;flex-shrink:0;}
/* Pulse-escape Home pill is phone-only AND only on Pulse — hidden everywhere else */
.pulse-escape{display:none;}
.streak-chip:hover{background:rgba(224,122,26,0.18);border-color:rgba(224,122,26,0.55);}
.streak-flame{font-size:0.8rem;filter:drop-shadow(0 0 3px rgba(224,122,26,0.4));}
.streak-num{font-variant-numeric:tabular-nums;letter-spacing:-0.3px;}
.bell-btn{position:relative;background:transparent;border:1px solid var(--border);color:var(--ink);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.05rem;display:inline-flex;align-items:center;justify-content:center;transition:all 0.18s;}
.bell-btn:hover{background:var(--accent-soft);border-color:rgba(184,148,30,0.4);}
.bell-badge{position:absolute;top:-2px;right:-2px;background:var(--red);color:#fff;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:700;font-size:0.66rem;min-width:18px;height:18px;border-radius:9px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--card);}
.bell-dropdown{display:none;position:absolute;right:0;top:calc(100% + 8px);background:var(--card);border:1px solid var(--border);border-radius:14px;width:380px;max-width:90vw;max-height:480px;overflow:hidden;box-shadow:var(--shadow-lg);z-index:250;animation:fadeUp 0.18s ease;}
.bell-dropdown.show{display:flex;flex-direction:column;}
.bell-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);}
.bell-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.95rem;color:var(--ink);}
.bell-clear{background:transparent;border:none;color:var(--gray);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.78rem;cursor:pointer;font-weight:600;}
.bell-clear:hover{color:var(--accent);}
.bell-list{overflow-y:auto;flex:1;}
.bell-item{padding:14px 18px;border-bottom:1px solid var(--border);cursor:pointer;transition:background 0.15s;}
.bell-item:hover{background:var(--bg2);}
.bell-item.unread{background:var(--accent-soft);border-left:3px solid var(--accent);padding-left:15px;}
.bell-text{font-size:0.86rem;line-height:1.5;color:var(--ink);margin-bottom:4px;}
.bell-time{font-size:0.72rem;color:var(--gray);}

/* ─── Pulse feed ─── */
.pulse-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;}
.pulse-filters .pill{background:rgba(255,255,255,0.04);border:1.5px solid var(--border);border-radius:999px;padding:7px 14px;font-size:0.82rem;cursor:pointer;color:var(--gray);transition:all 0.18s;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;}
.pulse-filters .pill:hover{border-color:rgba(184,148,30,0.4);color:var(--ink);}
.pulse-filters .pill.on{background:rgba(184,148,30,0.12);border-color:rgba(184,148,30,0.5);color:var(--accent);font-weight:600;}

/* Scroll-snap stage — vertical feed, one card per screen, scrolls naturally */
.pulse-stage{height:min(78vh, 700px);overflow-y:auto;scroll-snap-type:y mandatory;border-radius:18px;background:transparent;padding:0;margin-bottom:14px;scrollbar-width:thin;scrollbar-color:rgba(184,148,30,0.4) transparent;}
.pulse-stage::-webkit-scrollbar{width:6px;}
.pulse-stage::-webkit-scrollbar-thumb{background:rgba(184,148,30,0.35);border-radius:3px;}
.pulse-empty{color:var(--gray);text-align:center;padding:80px 20px;}
/* ─── TikTok-feel Pulse cards: full-bleed role-color tint, big type, native immersive ─── */
.pulse-card{background:var(--card);border:1px solid rgba(229,227,221,0.6);border-radius:28px;padding:44px 46px 36px;width:100%;max-width:780px;margin:0 auto 18px;box-shadow:0 24px 56px rgba(15,15,19,0.10), 0 2px 8px rgba(15,15,19,0.04);scroll-snap-align:start;scroll-snap-stop:always;min-height:calc(min(78vh, 700px) - 28px);display:flex;flex-direction:column;justify-content:space-between;transition:transform 0.3s ease, box-shadow 0.3s ease;position:relative;overflow:hidden;}
.pulse-card:hover{box-shadow:0 32px 72px rgba(15,15,19,0.14), 0 2px 12px rgba(15,15,19,0.06);}
/* Role-tinted full-bleed gradient at top — gives each card a native-app role identity */
.pulse-card::before{content:'';position:absolute;left:0;right:0;top:0;height:130px;background:linear-gradient(180deg, var(--role-tint, transparent), transparent);opacity:0.55;pointer-events:none;z-index:0;}
.pulse-card > *{position:relative;z-index:1;}
.pulse-card.role-police   {--role-tint:rgba(37,109,217,0.18);}
.pulse-card.role-emt      {--role-tint:rgba(201,52,52,0.16);}
.pulse-card.role-fire     {--role-tint:rgba(224,122,26,0.20);}
.pulse-card.role-dmv      {--role-tint:rgba(122,81,200,0.18);}
.pulse-card.role-hospital {--role-tint:rgba(31,140,95,0.16);}
.pulse-card.role-gov      {--role-tint:rgba(138,106,30,0.18);}
.pulse-card.role-school   {--role-tint:rgba(46,125,50,0.16);}
.pulse-card.role-elected  {--role-tint:rgba(26,111,184,0.18);}
.pulse-card.role-federal  {--role-tint:rgba(155,44,44,0.16);}
/* Subtle "swipe up for next" indicator at bottom — TikTok-style nudge */
.pulse-card::after{content:'';position:absolute;bottom:14px;left:50%;transform:translateX(-50%);width:36px;height:4px;background:rgba(15,15,19,0.10);border-radius:999px;z-index:1;}
/* Mobile pulse overrides live in the consolidated @media(max-width:700px) block below */
.pulse-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;flex-wrap:wrap;}
.pulse-card-role{display:flex;align-items:center;gap:10px;}
.pulse-role-icon{font-size:1.6rem;}
.pulse-role-name{font-size:0.72rem;font-weight:700;letter-spacing:1.2px;color:var(--gray);text-transform:uppercase;background:var(--bg2);border:1px solid var(--border);border-radius:999px;padding:3px 10px;}
/* Per-role color hints on the Pulse role badge */
.role-tinted-police{color:#2563d9 !important;background:rgba(37,109,217,0.08) !important;border-color:rgba(37,109,217,0.3) !important;}
.role-tinted-emt{color:#c93434 !important;background:rgba(201,52,52,0.06) !important;border-color:rgba(201,52,52,0.3) !important;}
.role-tinted-fire{color:#e07a1a !important;background:rgba(224,122,26,0.08) !important;border-color:rgba(224,122,26,0.3) !important;}
.role-tinted-dmv{color:#7a51c8 !important;background:rgba(122,81,200,0.08) !important;border-color:rgba(122,81,200,0.3) !important;}
.role-tinted-hospital{color:#1f8c5f !important;background:rgba(31,140,95,0.06) !important;border-color:rgba(31,140,95,0.3) !important;}
.role-tinted-gov{color:#8a6a1e !important;background:rgba(138,106,30,0.08) !important;border-color:rgba(138,106,30,0.3) !important;}
.role-tinted-school{color:#2e7d32 !important;background:rgba(46,125,50,0.08) !important;border-color:rgba(46,125,50,0.3) !important;}
.role-tinted-elected{color:#1a6fb8 !important;background:rgba(26,111,184,0.08) !important;border-color:rgba(26,111,184,0.3) !important;}
.role-tinted-federal{color:#9b2c2c !important;background:rgba(155,44,44,0.07) !important;border-color:rgba(155,44,44,0.3) !important;}
.pulse-sent{display:flex;flex-direction:column;align-items:flex-end;gap:4px;}
.pulse-stars{color:var(--accent);font-size:1.05rem;letter-spacing:2px;line-height:1;}
.pulse-sent-tag{font-size:0.72rem;font-weight:700;letter-spacing:0.5px;padding:3px 10px;border-radius:999px;text-transform:uppercase;}
.pulse-sent.pos .pulse-sent-tag{color:var(--green);background:rgba(31,140,95,0.1);border:1px solid rgba(31,140,95,0.3);}
.pulse-sent.neg .pulse-sent-tag{color:var(--red);background:rgba(201,52,52,0.08);border:1px solid rgba(201,52,52,0.25);}
.pulse-name{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:2.3rem;font-weight:800;letter-spacing:-0.9px;color:var(--ink);margin-bottom:6px;cursor:pointer;line-height:1.04;}
.pulse-name:hover{color:var(--accent);}
.pulse-agency{font-size:0.95rem;color:var(--light);margin-bottom:24px;font-weight:500;}
.pulse-body{font-size:1.22rem;line-height:1.7;color:var(--ink);margin-bottom:6px;white-space:pre-wrap;letter-spacing:-0.15px;font-weight:400;}
.pulse-byline{margin-top:14px;font-size:0.82rem;color:var(--gray);}
.pulse-author{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--light);transition:color 0.15s;}
.pulse-author:hover{color:var(--accent);}
.pulse-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border);}
.pulse-controls{display:flex;justify-content:space-between;align-items:center;gap:14px;max-width:760px;margin:0 auto;padding:14px 0;flex-wrap:wrap;}
.pulse-nav{background:var(--card);border:1.5px solid var(--border);color:var(--ink);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:600;font-size:0.88rem;padding:11px 22px;border-radius:10px;cursor:pointer;transition:all 0.18s;}
.pulse-nav:hover{border-color:rgba(184,148,30,0.5);background:var(--accent-soft);color:var(--accent);}
.pulse-counter{font-family:'Mono',monospace;font-size:0.82rem;color:var(--gray);font-weight:600;}

/* ─── Notification preferences grid ─── */
.np-grid-head{display:grid;grid-template-columns:1fr 70px 70px 70px;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:8px;font-size:0.74rem;font-weight:700;letter-spacing:0.6px;color:var(--gray);text-align:center;text-transform:uppercase;}
.np-grid-head > div:first-child{text-align:left;}
.np-grid-row{display:grid;grid-template-columns:1fr 70px 70px 70px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);}
.np-grid-row:last-of-type{border-bottom:none;}
.np-event{font-size:0.88rem;color:var(--ink);line-height:1.4;}
.np-cell{display:flex;justify-content:center;cursor:pointer;}
.np-cell input{display:none;}
.np-box{width:22px;height:22px;border:2px solid var(--border);border-radius:6px;background:var(--card);display:inline-flex;align-items:center;justify-content:center;transition:all 0.15s;}
.np-cell input:checked + .np-box{background:var(--accent);border-color:var(--accent);}
.np-cell input:checked + .np-box::after{content:'✓';color:#fff;font-weight:800;font-size:0.86rem;}

/* Subscribe-to-agency button */
.sub-btn{background:transparent;color:var(--gray);border:1.5px solid var(--border);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:600;font-size:0.78rem;padding:8px 14px;border-radius:10px;cursor:pointer;transition:all 0.18s;white-space:nowrap;}
.sub-btn:hover{color:var(--accent);border-color:rgba(184,148,30,0.5);background:var(--accent-soft);}
.sub-btn.subscribed{background:rgba(31,140,95,0.08);color:var(--green);border-color:rgba(31,140,95,0.35);}

/* Geolocation button next to location field */
.geo-btn{background:var(--accent-soft);border:1px solid rgba(184,148,30,0.32);color:var(--accent);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:600;font-size:0.85rem;padding:0 14px;border-radius:10px;cursor:pointer;white-space:nowrap;transition:all 0.18s;}
.geo-btn:hover:not(:disabled){background:rgba(184,148,30,0.14);}
.geo-btn:disabled{opacity:0.6;cursor:wait;}

/* Role pills (Recognize flow) */
.role-pills{display:flex;flex-wrap:wrap;gap:8px;}
.role-pill{background:rgba(15,15,19,0.03);border:1.5px solid var(--border);border-radius:999px;padding:8px 14px;font-size:0.85rem;cursor:pointer;color:var(--light);transition:all 0.2s;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;}
.role-pill:hover{border-color:rgba(78,201,138,0.3);}
.role-pill.on{background:rgba(78,201,138,0.1);border-color:rgba(78,201,138,0.45);color:var(--green);font-weight:600;}
/* Per-role tinting on selection — uses inline data-role attribute */
.role-pill[data-role="police"].on{background:rgba(37,109,217,0.1);border-color:rgba(37,109,217,0.5);color:#2563d9;}
.role-pill[data-role="emt"].on{background:rgba(201,52,52,0.08);border-color:rgba(201,52,52,0.5);color:#c93434;}
.role-pill[data-role="fire"].on{background:rgba(224,122,26,0.1);border-color:rgba(224,122,26,0.5);color:#e07a1a;}
.role-pill[data-role="dmv"].on{background:rgba(122,81,200,0.1);border-color:rgba(122,81,200,0.5);color:#7a51c8;}
.role-pill[data-role="hospital"].on{background:rgba(31,140,95,0.1);border-color:rgba(31,140,95,0.5);color:#1f8c5f;}
.role-pill[data-role="gov"].on{background:rgba(138,106,30,0.12);border-color:rgba(138,106,30,0.5);color:#8a6a1e;}
.role-pill[data-role="school"].on{background:rgba(46,125,50,0.1);border-color:rgba(46,125,50,0.5);color:#2e7d32;}
.role-pill[data-role="elected"].on{background:rgba(26,111,184,0.1);border-color:rgba(26,111,184,0.5);color:#1a6fb8;}
/* Same per-role tinting for the discovery filter pills (Stories tab) */
.pill[data-rolefilter="police"].on{background:rgba(37,109,217,0.12);border-color:rgba(37,109,217,0.5);color:#2563d9;}
.pill[data-rolefilter="emt"].on{background:rgba(201,52,52,0.08);border-color:rgba(201,52,52,0.5);color:#c93434;}
.pill[data-rolefilter="fire"].on{background:rgba(224,122,26,0.12);border-color:rgba(224,122,26,0.5);color:#e07a1a;}
.pill[data-rolefilter="dmv"].on{background:rgba(122,81,200,0.12);border-color:rgba(122,81,200,0.5);color:#7a51c8;}
.pill[data-rolefilter="hospital"].on{background:rgba(31,140,95,0.1);border-color:rgba(31,140,95,0.5);color:#1f8c5f;}
.pill[data-rolefilter="gov"].on{background:rgba(138,106,30,0.14);border-color:rgba(138,106,30,0.5);color:#8a6a1e;}
.pill[data-rolefilter="school"].on{background:rgba(46,125,50,0.12);border-color:rgba(46,125,50,0.5);color:#2e7d32;}
.pill[data-rolefilter="elected"].on{background:rgba(26,111,184,0.12);border-color:rgba(26,111,184,0.5);color:#1a6fb8;}

/* Praise submit button — green theme */
.submit-praise{background:var(--green) !important;color:var(--bg) !important;}
.submit-praise:hover:not(:disabled){background:#65d99a !important;}

/* Anonymous toggle (Step 2) */
.anon-row{display:flex;align-items:center;justify-content:space-between;gap:14px;background:rgba(91,138,240,0.06);border:1px solid rgba(91,138,240,0.22);border-radius:12px;padding:14px 16px;margin-bottom:18px;}
.anon-left{display:flex;align-items:flex-start;gap:12px;flex:1;}
.anon-shield{font-size:1.5rem;line-height:1;}
.anon-title{font-weight:700;font-size:0.92rem;color:var(--white);margin-bottom:3px;}
.anon-sub{font-size:0.76rem;color:var(--light);line-height:1.45;}
.anon-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0;}
.anon-switch input{opacity:0;width:0;height:0;}
.anon-slider{position:absolute;cursor:pointer;inset:0;background:rgba(15,15,19,0.08);transition:0.25s;border-radius:24px;}
.anon-slider::before{position:absolute;content:'';height:18px;width:18px;left:3px;bottom:3px;background:#fff;transition:0.25s;border-radius:50%;}
.anon-switch input:checked + .anon-slider{background:var(--blue);}
.anon-switch input:checked + .anon-slider::before{transform:translateX(20px);}

/* Body-cam pills (Step 4) */
.bodycam-pills{display:flex;gap:8px;flex-wrap:wrap;}
.bcp{background:rgba(15,15,19,0.03);border:1.5px solid var(--border);border-radius:10px;padding:9px 14px;font-size:0.86rem;cursor:pointer;color:var(--light);transition:all 0.2s;}
.bcp:hover{border-color:rgba(184,148,30,0.4);}
.bcp.on{background:rgba(184,148,30,0.14);border-color:rgba(184,148,30,0.5);color:var(--accent);font-weight:600;}
.bcp-hint{margin-top:10px;font-size:0.78rem;color:var(--light);background:rgba(91,138,240,0.06);border:1px solid rgba(91,138,240,0.2);border-radius:8px;padding:10px 12px;line-height:1.5;}
.bcp-hint a{color:var(--accent);}

/* Share button (success box) */
.share-btn{background:var(--accent);color:var(--bg);border:none;border-radius:10px;padding:10px 18px;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.85rem;cursor:pointer;margin-top:12px;transition:all 0.2s;}
.share-btn:hover{background:var(--accent2);transform:translateY(-1px);}

/* Badge autocomplete dropdown */
.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--card);border:1px solid rgba(184,148,30,0.35);border-radius:10px;margin-top:4px;max-height:240px;overflow-y:auto;z-index:50;display:none;box-shadow:0 12px 32px rgba(15,15,19,0.18);}
.autocomplete-dropdown.show{display:block;}
.ac-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border);transition:background 0.15s;}
.ac-item:last-child{border-bottom:none;}
.ac-item:hover{background:rgba(184,148,30,0.11);}
.ac-name{font-weight:600;font-size:0.88rem;color:var(--white);}
.ac-meta{font-size:0.75rem;color:var(--gray);margin-top:2px;}

/* Statute helper popup (Step 3) */
.statute-helper{display:none;margin-top:10px;background:rgba(91,138,240,0.07);border:1px solid rgba(91,138,240,0.25);border-radius:10px;padding:12px 14px;animation:fadeUp 0.25s ease;}
.statute-helper.show{display:block;}
.sh-eyebrow{font-size:0.66rem;color:var(--blue);text-transform:uppercase;letter-spacing:1px;font-weight:700;margin-bottom:4px;}
.sh-code{font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1rem;color:var(--white);margin-bottom:4px;}
.sh-desc{font-size:0.82rem;color:var(--light);line-height:1.5;margin-bottom:6px;}
.sh-meta{display:flex;gap:14px;font-size:0.74rem;color:var(--gray);}
.sh-meta strong{color:var(--accent);}

/* Rankings page */
.rank-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px;}
.rank-controls .pill{background:rgba(15,15,19,0.03);border:1.5px solid var(--border);border-radius:999px;padding:8px 16px;font-size:0.84rem;cursor:pointer;color:var(--gray);transition:all 0.2s;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;}
.rank-controls .pill:hover{border-color:rgba(184,148,30,0.4);color:var(--light);}
.rank-controls .pill.on{background:rgba(184,148,30,0.14);border-color:rgba(184,148,30,0.5);color:var(--accent);font-weight:600;}
.rank-table{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden;}
.rank-row{display:grid;grid-template-columns:54px 1fr 130px 80px;gap:14px;align-items:center;padding:14px 22px;border-bottom:1px solid var(--border);transition:background 0.15s;}
@media(max-width:700px){
  .rank-row{grid-template-columns:34px 1fr 110px;gap:8px;padding:12px 14px;}
  .rank-row .rk-stories{display:none;}
  .rank-stars{font-size:0.92rem;letter-spacing:1px;}
  .rank-name{font-size:0.92rem;}
  .rank-name-sub{font-size:0.74rem;}
}
@media(max-width:380px){
  .rank-row{grid-template-columns:30px 1fr 86px;}
  .rank-stars{font-size:0.82rem;letter-spacing:0.5px;}
}
.rank-row:last-child{border-bottom:none;}
.rank-row:hover{background:rgba(184,148,30,0.06);}
.rank-row.head{background:rgba(15,15,19,0.02);font-size:0.7rem;color:var(--gray);text-transform:uppercase;letter-spacing:1px;font-weight:700;}
.rank-pos{font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1.3rem;color:var(--accent);}
.rank-pos.head{font-size:0.7rem;color:var(--gray);}
.rank-name{font-weight:600;font-size:0.92rem;color:var(--white);}
.rank-name-sub{font-size:0.75rem;color:var(--gray);margin-top:2px;}
.rank-stars{color:var(--accent);font-size:0.92rem;letter-spacing:1px;}
.rank-num{font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1.05rem;color:var(--white);}
.rank-num.neg{color:var(--red);}
.rank-num.pos{color:var(--green);}
.rank-count{font-size:0.82rem;color:var(--gray);}

/* Upload zone */
.upload-zone{border:2px dashed var(--border);border-radius:12px;padding:28px;text-align:center;cursor:pointer;transition:all 0.2s;position:relative;}
.upload-zone:hover{border-color:rgba(184,148,30,0.45);background:rgba(184,148,30,0.05);}
.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.uz-icon{font-size:2rem;margin-bottom:8px;}
.uz-title{font-weight:600;font-size:0.92rem;margin-bottom:4px;}
.uz-sub{font-size:0.78rem;color:var(--gray);}
.upload-preview{display:none;background:rgba(78,201,138,0.1);border:1.5px solid rgba(78,201,138,0.3);border-radius:10px;padding:12px 16px;align-items:center;gap:12px;margin-top:10px;}
.upload-preview.show{display:flex;}
.up-icon{font-size:1.4rem;}
.up-name{font-size:0.85rem;font-weight:600;color:var(--green);}

/* Smart popup — ticket fighter */
.fighter-popup{display:none;background:linear-gradient(135deg, #fef9e7, #f7e8b3);border:1.5px solid rgba(184,148,30,0.45);border-radius:14px;padding:22px;margin-bottom:20px;animation:fadeUp 0.3s ease;}
.fighter-popup.show{display:block;}
.fp-eyebrow{font-size:0.7rem;text-transform:uppercase;letter-spacing:1px;color:var(--gray);margin-bottom:6px;}
.fp-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.05rem;font-weight:800;color:var(--accent);margin-bottom:6px;}
.fp-body{font-size:0.85rem;color:var(--light);line-height:1.55;margin-bottom:14px;}
.fp-ticket-info{background:rgba(15,15,19,0.06);border-radius:8px;padding:10px 14px;font-size:0.83rem;color:var(--light);margin-bottom:14px;}
.fp-ticket-info strong{color:var(--accent);}
.fp-row{display:flex;gap:10px;}
.fp-btn{background:var(--accent);color:var(--bg);border:none;border-radius:8px;padding:10px 20px;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.85rem;cursor:pointer;transition:all 0.2s;}
.fp-btn:hover{background:var(--accent2);}
.fp-skip{background:none;border:none;color:var(--gray);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.82rem;cursor:pointer;padding:10px;}
.fp-skip:hover{color:var(--white);}

.submit-main{width:100%;background:var(--white);color:var(--bg);border:none;border-radius:10px;padding:15px;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.97rem;cursor:pointer;transition:all 0.2s;margin-top:4px;}
.submit-main:hover{background:var(--accent);}
.submit-main:disabled{opacity:0.6;cursor:not-allowed;}

.success-box{display:none;background:rgba(78,201,138,0.09);border:1.5px solid rgba(78,201,138,0.3);border-radius:12px;padding:18px 22px;margin-top:16px;align-items:center;gap:14px;}
.success-box.show{display:flex;animation:fadeUp 0.3s ease;}

/* OFFICER PROFILES */
.search-bar-wrap{display:flex;gap:10px;margin-bottom:28px;}
.search-bar-wrap input{flex:1;background:var(--card);border:1.5px solid var(--border);border-radius:10px;padding:13px 16px;color:var(--white);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.93rem;outline:none;transition:border-color 0.2s;}
.search-bar-wrap input:focus{border-color:rgba(184,148,30,0.5);}
.search-bar-wrap button{background:var(--accent);color:var(--bg);border:none;border-radius:10px;padding:13px 22px;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.85rem;cursor:pointer;}

.officer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-bottom:32px;}
.officer-card{background:var(--card);border-radius:18px;padding:22px 24px 18px;border:1px solid var(--border);cursor:pointer;transition:all 0.25s cubic-bezier(0.4,0,0.2,1);position:relative;overflow:hidden;box-shadow:0 2px 8px rgba(15,15,19,0.04);display:flex;flex-direction:column;gap:8px;}
.officer-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--role-color, var(--accent));opacity:0.9;}
.officer-card.role-police{--role-color:#2563d9;}
.officer-card.role-emt{--role-color:#c93434;}
.officer-card.role-fire{--role-color:#e07a1a;}
.officer-card.role-dmv{--role-color:#7a51c8;}
.officer-card.role-hospital{--role-color:#1f8c5f;}
.officer-card.role-gov{--role-color:#8a6a1e;}
.officer-card.role-school{--role-color:#2e7d32;}
.officer-card.role-elected{--role-color:#1a6fb8;}
.officer-card.role-federal{--role-color:#9b2c2c;}
.officer-card.role-contributor{--role-color:var(--accent);}
.officer-card:hover{border-color:rgba(15,15,19,0.18);transform:translateY(-4px);box-shadow:0 18px 40px rgba(15,15,19,0.12);}
/* Subtle role-tinted glow on the card itself — pulls the role color into the body, not just the stripe */
.officer-card::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 90% 60% at 50% -20%, var(--role-color), transparent 70%);opacity:0.06;pointer-events:none;border-radius:inherit;}

.oc-eyebrow{font-size:0.7rem;font-weight:800;letter-spacing:1.4px;color:var(--role-color, var(--accent));text-transform:uppercase;margin-top:6px;display:inline-flex;align-items:center;gap:7px;}
.oc-eyebrow::after{content:'';flex:1;height:1px;background:linear-gradient(90deg, var(--role-color), transparent);opacity:0.35;}
.officer-card .oc-name{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.32rem;font-weight:800;letter-spacing:-0.6px;color:var(--ink);line-height:1.12;display:flex;align-items:center;gap:10px;}
.officer-card .oc-initial{width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.85rem;flex-shrink:0;background:var(--role-color);color:#fff;}
.officer-card .oc-dept{font-size:0.86rem;color:var(--light);line-height:1.4;font-weight:500;}
.oc-stat-row{display:flex;align-items:center;gap:8px;margin-top:6px;padding-top:10px;border-top:1px solid var(--border);}
.oc-stars{color:var(--accent);font-size:1rem;letter-spacing:2px;line-height:1;}
.oc-avg{font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1rem;color:var(--ink);}
.officer-card .oc-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.officer-card .oc-chip{font-size:0.72rem;font-weight:700;padding:3px 9px;border-radius:999px;letter-spacing:0.3px;border:1px solid;}
.officer-card .oc-chip.fair{background:rgba(31,140,95,0.08);color:var(--green);border-color:rgba(31,140,95,0.22);}
.officer-card .oc-chip.unfair{background:rgba(201,52,52,0.06);color:var(--red);border-color:rgba(201,52,52,0.22);}
.officer-card .oc-count{font-size:0.74rem;color:var(--gray);margin-left:auto;font-weight:600;}
.oc-view{background:var(--accent-soft);color:var(--accent);border:1px solid rgba(184,148,30,0.32);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:700;font-size:0.82rem;padding:9px 14px;border-radius:10px;cursor:pointer;margin-top:6px;transition:all 0.18s;text-align:center;}
.officer-card:hover .oc-view{background:var(--accent);color:#fff;border-color:var(--accent);}

/* Officer detail modal */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(15,15,19,0.45);z-index:300;backdrop-filter:blur(4px);align-items:center;justify-content:center;padding:20px;}
.modal-overlay.show{display:flex;animation:fadeUp 0.25s ease;}
.modal{background:var(--bg2);border-radius:20px;border:1px solid var(--border);width:100%;max-width:640px;max-height:85vh;overflow-y:auto;padding:36px;}
.modal-close{position:absolute;top:16px;right:16px;background:rgba(15,15,19,0.06);border:none;color:var(--white);border-radius:8px;width:32px;height:32px;cursor:pointer;font-size:1rem;}
.mo-head{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border);}
.mo-av{width:60px;height:60px;border-radius:12px;background:var(--card);display:flex;align-items:center;justify-content:center;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;color:var(--accent);font-size:1.2rem;border:1px solid var(--border);}
.mo-name{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.3rem;font-weight:800;}
.mo-sub{color:var(--gray);font-size:0.85rem;margin-top:3px;}
.mo-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px;}
.ms-box{background:var(--card);border-radius:10px;padding:14px;text-align:center;}
.ms-n{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.4rem;font-weight:800;color:var(--accent);}
.ms-l{font-size:0.72rem;color:var(--gray);margin-top:2px;}
.mo-review{background:var(--card);border-radius:10px;padding:16px;margin-bottom:10px;border:1px solid var(--border);}
.mr-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.mr-stars{color:var(--accent);font-size:0.9rem;}
.mr-verdict{font-size:0.75rem;font-weight:700;padding:3px 10px;border-radius:8px;}
.mr-verdict.fair{background:rgba(78,201,138,0.1);color:var(--green);}
.mr-verdict.unfair{background:rgba(224,82,82,0.1);color:var(--red);}
.mr-text{font-size:0.87rem;color:var(--light);line-height:1.6;margin-bottom:6px;}
.mr-date{font-size:0.74rem;color:var(--gray);}
.mr-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border);}
.mo-flag{background:rgba(224,82,82,0.08);border:1px solid rgba(224,82,82,0.2);border-radius:10px;padding:12px 16px;font-size:0.82rem;color:var(--light);margin-top:16px;display:flex;gap:10px;align-items:flex-start;}
.flag-verified{display:inline-flex;align-items:center;gap:5px;background:rgba(91,138,240,0.1);border:1px solid rgba(91,138,240,0.3);border-radius:6px;padding:2px 8px;font-size:0.72rem;color:var(--blue);}

/* COMPLAINTS */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:32px;}
.contact-card{background:var(--card);border-radius:14px;padding:22px;border:1px solid var(--border);}
.cc-role{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.8px;color:var(--accent);margin-bottom:6px;}
.cc-name{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1rem;font-weight:800;margin-bottom:10px;}
.cc-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:0.85rem;color:var(--light);}
.cc-row a{color:var(--accent);text-decoration:none;}
.cc-row a:hover{text-decoration:underline;}
.cc-send{background:var(--accent);color:var(--bg);border:none;border-radius:8px;padding:9px 18px;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.82rem;cursor:pointer;margin-top:12px;transition:all 0.2s;width:100%;}
.cc-send:hover{background:var(--accent2);}

.complaint-form{background:var(--card);border-radius:18px;border:1px solid var(--border);padding:28px;margin-top:24px;}
.cf-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.1rem;font-weight:800;margin-bottom:6px;}
.cf-sub{font-size:0.83rem;color:var(--gray);margin-bottom:20px;}
.ai-notice{background:rgba(91,138,240,0.08);border:1px solid rgba(91,138,240,0.25);border-radius:10px;padding:12px 16px;font-size:0.82rem;color:var(--light);margin-bottom:18px;display:flex;gap:10px;align-items:flex-start;}

/* SPONSOR DECK */
.deck-wrap{max-width:840px;margin:0 auto;padding:50px 24px;}
.deck-hero{background:var(--bg2);border-radius:18px;border:1px solid var(--border);padding:56px 40px;text-align:center;margin-bottom:40px;position:relative;overflow:hidden;}
.deck-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 40%,rgba(184,148,30,0.09) 0%,transparent 70%);}
.dh-eyebrow{font-size:0.75rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);margin-bottom:12px;position:relative;}
.dh-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:800;letter-spacing:-0.8px;margin-bottom:12px;position:relative;}
.dh-title span{color:var(--accent);}
.dh-body{color:var(--light);font-size:0.97rem;max-width:520px;margin:0 auto 28px;line-height:1.7;position:relative;}

.insight-box{background:linear-gradient(135deg,rgba(184,148,30,0.13),rgba(184,148,30,0.05));border:1.5px solid rgba(184,148,30,0.35);border-radius:14px;padding:26px;margin-bottom:36px;text-align:center;}
.ib-h{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.3rem;font-weight:800;margin-bottom:8px;}
.ib-h span{color:var(--accent);}
.ib-b{color:var(--light);font-size:0.9rem;line-height:1.7;max-width:580px;margin:0 auto;}

.deck-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:36px;}
.dg{background:var(--card);border-radius:12px;padding:20px;border:1px solid var(--border);text-align:center;}
.dg-n{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.6rem;font-weight:800;color:var(--accent);margin-bottom:4px;}
.dg-t{font-weight:700;font-size:0.85rem;margin-bottom:4px;}
.dg-d{font-size:0.78rem;color:var(--gray);line-height:1.5;}

.funnel{display:flex;gap:0;margin-bottom:36px;}
.fs{flex:1;background:var(--card);padding:18px 14px;text-align:center;border:1px solid var(--border);position:relative;}
.fs:first-child{border-radius:12px 0 0 12px;}
.fs:last-child{border-radius:0 12px 12px 0;background:rgba(184,148,30,0.1);border-color:rgba(184,148,30,0.35);}
.fs:not(:last-child)::after{content:'\2192';position:absolute;right:-12px;top:50%;transform:translateY(-50%);color:var(--gray);font-size:1.1rem;z-index:2;}
.fs-ic{font-size:1.6rem;margin-bottom:6px;}
.fs-t{font-weight:700;font-size:0.8rem;margin-bottom:3px;}
.fs-d{font-size:0.73rem;color:var(--gray);line-height:1.4;}
.fs:last-child .fs-t{color:var(--accent);}

.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:36px;}
.tier{background:var(--card);border-radius:12px;padding:22px 18px;border:1px solid var(--border);}
.tier.feat{border-color:rgba(184,148,30,0.45);background:rgba(184,148,30,0.06);}
.t-name{font-size:0.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--gray);margin-bottom:6px;}
.t-name.gold{color:var(--accent);}
.t-price{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.7rem;font-weight:800;margin-bottom:2px;}
.t-freq{font-size:0.78rem;color:var(--gray);margin-bottom:14px;}
.t-perks{list-style:none;}
.t-perks li{font-size:0.8rem;color:var(--light);padding:5px 0;border-bottom:1px solid var(--border);display:flex;gap:7px;}
.t-perks li:last-child{border-bottom:none;}
.t-perks li::before{content:'\2713';color:var(--accent);font-weight:700;flex-shrink:0;}

.deck-cta{background:var(--bg2);border-radius:16px;border:1px solid rgba(184,148,30,0.28);padding:44px 36px;text-align:center;}
.deck-cta h3{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.7rem;font-weight:800;margin-bottom:10px;}
.deck-cta p{color:var(--light);margin-bottom:24px;font-size:0.93rem;max-width:460px;margin-left:auto;margin-right:auto;}
.cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}

/* PILLS / FILTERS */
.pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;}
.pill{background:rgba(15,15,19,0.03);border:1.5px solid var(--border);border-radius:20px;padding:6px 16px;font-size:0.8rem;cursor:pointer;color:var(--gray);transition:all 0.2s;}
.pill.on{background:rgba(184,148,30,0.13);border-color:rgba(184,148,30,0.4);color:var(--accent);}

/* STEP WIZARD */
.wizard-steps{display:flex;align-items:center;gap:8px;margin-bottom:28px;}
.ws{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:700;color:var(--gray);flex-shrink:0;}
.ws.done{border-color:var(--green);background:rgba(78,201,138,0.15);color:var(--green);}
.ws.active{border-color:var(--accent);background:rgba(184,148,30,0.22);color:var(--accent);}
.ws-line{flex:1;height:1px;background:var(--border);}

/* RESPONSIVE */
@media(max-width:900px){
  .topnav{display:none;}
  .mobile-menu-btn{display:inline-flex !important;}
  /* Bigger touch targets on modal close buttons (Apple guideline: 44x44 min) */
  .modal-close,.auth-close,.md-close{width:44px !important;height:44px !important;font-size:1.55rem !important;}
  .modal{padding:24px 20px;}
  .story-detail{padding:24px 22px 22px;}
  .auth-modal{padding:28px 22px 22px;}
  /* Hide the bell on the very small phones — drawer has its own access pattern */
  .bell-dropdown{right:14px;width:calc(100vw - 28px);}
  /* User pill collapses to just the avatar circle — name+caret would overflow a 390px viewport */
  .user-pill{padding:2px;gap:0;border-radius:50%;width:38px;height:38px;justify-content:center;border:1px solid var(--border);}
  .user-pill .up-handle,.user-pill .up-caret{display:none;}
  .user-pill .up-avatar{width:30px;height:30px;font-size:0.85rem;}
  .sign-in-btn{padding:7px 12px;font-size:0.78rem;}
  .topbar{gap:8px;}
}
@media(max-width:700px){
  .topbar{padding:12px 14px;gap:8px;}
  .topnav button{padding:6px 9px;font-size:0.76rem;}
  .hero{grid-template-columns:1fr;padding:40px 20px 30px;gap:28px;}
  .hero h1{font-size:clamp(2rem,7vw,2.6rem);}
  .phone-mock{width:220px;}
  .stats-strip{flex-wrap:wrap;}
  .ss{flex:1 1 50%;border-bottom:1px solid var(--border);}
  .ss:nth-child(2){border-right:none;}
  .ss:nth-child(3),.ss:nth-child(4){border-bottom:none;}
  .deck-grid,.tiers{grid-template-columns:1fr;}
  .deck-wrap{padding:30px 16px;}
  .deck-hero{padding:36px 20px;}
  .funnel{flex-direction:column;}
  .fs:first-child{border-radius:12px 12px 0 0;}
  .fs:last-child{border-radius:0 0 12px 12px;}
  .fs::after{display:none;}
  .fl-2{grid-template-columns:1fr;}
  .wrap,.wrap-wide{padding:0 16px;}
  .rcard{padding:22px 18px;}
  .topbar .brand-name{font-size:1rem;}
  .vt-grid{grid-template-columns:1fr;}
  .modal{padding:24px 18px;}

  /* ── Pulse on phone: PAGE-LEVEL snap. Filters scroll away with the page (because they're in normal flow above the cards), and THEN each card snaps one at a time. ── */
  .pulse-stage{height:auto;overflow:visible;scroll-snap-type:none;border-radius:0;padding:0;background:transparent;}
  /* Card fits between topbar (~64px) and bottom tab bar (~78px). Was 84px which overflowed below the bar. */
  .pulse-card{min-height:calc(100dvh - 150px);scroll-snap-align:start;scroll-snap-stop:always;padding:24px 20px;border-radius:18px;margin:0 0 14px;display:flex;flex-direction:column;justify-content:space-between;}
  .pulse-name{font-size:1.45rem;}
  .pulse-body{font-size:0.98rem;line-height:1.6;}
  .pulse-agency{font-size:0.85rem;margin-bottom:14px;}
  .pulse-filters{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px;margin-bottom:12px;}
  .pulse-filters::-webkit-scrollbar{display:none;}
  .pulse-filters .pill{flex-shrink:0;font-size:0.78rem;padding:6px 12px;white-space:nowrap;}
  .pulse-card-head{margin-bottom:14px;gap:10px;}
  .pulse-role-icon{font-size:1.3rem;}
  .pulse-stars{font-size:0.95rem;letter-spacing:1.5px;}
  /* Persistent "back to home" pill that floats above Pulse on phone — bottom-LEFT so it doesn't fight with the Preview badge on the right */
  .pulse-escape{position:fixed;bottom:18px;left:14px;z-index:550;background:var(--ink);color:#fff;border:none;border-radius:999px;padding:11px 18px;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:700;font-size:0.82rem;box-shadow:0 10px 28px rgba(15,15,19,0.32);cursor:pointer;align-items:center;gap:6px;}
  .pulse-escape:hover{background:var(--accent);}
  body.on-pulse .pulse-escape{display:inline-flex;}

  /* ── Stories / Community cards: compact on phone ── */
  .officer-grid{grid-template-columns:1fr;gap:10px;}
  .officer-card{padding:14px 16px 14px;gap:6px;border-radius:14px;}
  .officer-card .oc-name{font-size:1.02rem;gap:8px;line-height:1.18;}
  .officer-card .oc-initial{width:24px;height:24px;font-size:0.74rem;}
  .officer-card .oc-dept{font-size:0.8rem;}
  .oc-eyebrow{font-size:0.62rem;letter-spacing:1px;margin-top:2px;}
  .oc-stat-row{padding-top:8px;margin-top:4px;gap:6px;}
  .oc-stars{font-size:0.9rem;letter-spacing:1.5px;}
  .oc-avg{font-size:0.92rem;}
  .officer-card .oc-meta{gap:5px;}
  .officer-card .oc-chip{font-size:0.68rem;padding:2px 7px;}
  .officer-card .oc-count{font-size:0.72rem;}
  .oc-view{padding:7px 12px;font-size:0.76rem;margin-top:4px;border-radius:8px;}

  /* ── Story / department modal head: stats row wraps ── */
  .sd-head{gap:12px;}
  .sd-icon{font-size:2rem;}
  .sd-name{font-size:1.15rem;word-break:break-word;}
  .sd-agency{font-size:0.82rem;}
  .sd-sent{flex-wrap:wrap;gap:6px;}
  .sd-stars{font-size:0.95rem;letter-spacing:1.5px;}
  .sd-tag{font-size:0.66rem;padding:2px 8px;}
  /* Story detail modal on phone: keep buttons compact + horizontal, NOT stacked.
     The stacked layout from earlier made every story card a full screen. */
  .sd-foot{flex-direction:row;align-items:center;gap:6px;flex-wrap:wrap;padding-top:14px;}
  .sd-foot .sp-action{width:auto;flex:0 0 auto;padding:7px 10px;font-size:0.78rem;}
  /* Reaction buttons row in story detail: tight, horizontal, emoji-led */
  .story-detail .mr-actions{flex-wrap:wrap;gap:5px;margin-top:6px;}
  .story-detail .mr-actions .sp-action{padding:6px 10px;font-size:0.76rem;flex:0 0 auto;}
  /* Trim reaction summary + legend padding on phone story detail */
  .story-detail .reaction-summary{padding:7px 10px;font-size:0.78rem;margin:10px 0 0;gap:8px;}
  .story-detail .reaction-legend{padding:6px 10px;font-size:0.66rem;margin:8px 0 6px;}
  .story-detail .reaction-legend .rl-key{display:inline;margin-top:0;}
  /* Tighten the byline so it doesn't wrap 'May 10, 2026' awkwardly */
  .story-detail .sp-byline{font-size:0.72rem;gap:6px;margin-top:10px;flex-wrap:wrap;}
  /* Story detail modal padding tighter on phone */
  .story-detail{padding:20px 16px 18px;}
  .sd-byline{width:100%;flex:1 1 100%;}

  /* Search bar shouldn't push past viewport */
  .search-bar-wrap{flex-direction:column;gap:8px;}
  .search-bar-wrap button{width:100%;}

  /* ── Story Stream card: COMPACT — much less vertical space on phone ── */
  .story-post{padding:13px 14px 11px;border-radius:12px;margin-bottom:8px;}
  .sp-head{display:grid;grid-template-columns:34px 1fr auto;grid-template-areas:"icon meta sent";gap:6px 10px;margin-bottom:8px;align-items:start;}
  .sp-sentiment{grid-area:sent;flex-direction:column;align-items:flex-end;gap:3px;}
  .sp-icon{grid-area:icon;width:34px;height:34px;font-size:1.05rem;border-radius:9px;}
  .sp-meta{grid-area:meta;min-width:0;}
  .sp-who{gap:5px;margin-bottom:1px;}
  .sp-who .sp-name{font-size:0.96rem;line-height:1.15;}
  .sp-who .sp-role{font-size:0.55rem;padding:1px 6px;}
  .sp-agency{font-size:0.74rem;line-height:1.3;}
  .sp-sentiment .sp-stars{font-size:0.78rem;letter-spacing:1px;}
  .sp-sentiment .sp-tag{font-size:0.56rem;padding:1px 6px;}
  .sp-body{font-size:0.9rem;line-height:1.5;}
  .sp-body.truncated::after{display:none;}
  .sp-byline{font-size:0.72rem;margin-top:8px;}
  .sp-byline .sp-author-avatar{width:14px;height:14px;font-size:0.55rem;}
  .sp-foot{margin-top:9px;padding-top:8px;}
  .sp-actions{gap:4px;width:100%;flex-wrap:wrap;}
  .sp-action{font-size:0.72rem;padding:5px 9px;border-radius:7px;}
  .sp-action.primary{margin-left:0;}
  .sp-tags-row{margin-top:8px;gap:4px;}
  .sp-tags-row .spt{font-size:0.62rem;padding:2px 7px;}

  /* Long button text inside modals must wrap, not overflow horizontally */
  .submit-main{word-break:break-word;overflow-wrap:anywhere;box-sizing:border-box;max-width:100%;font-size:0.88rem;padding:13px;}
  .story-detail{padding:22px 18px 18px;}
}
@media(max-width:420px){
  .topnav button{padding:5px 7px;font-size:0.72rem;}
  .hero h1{font-size:1.9rem;}
  .hero p{font-size:0.92rem;}
  .ph h2{font-size:1.4rem;}
}

/* ─── Claim-only profile cards (Hochul, Schumer, etc.) ─── */
.officer-card.claim-only{background:repeating-linear-gradient(135deg, var(--card) 0 14px, var(--bg2) 14px 28px);opacity:0.96;}
.officer-card.claim-only::before{opacity:0.5;}
.oc-claim-note{font-size:0.8rem;color:var(--light);line-height:1.5;padding:10px 12px;background:var(--bg2);border-radius:10px;margin-top:4px;}
.oc-claim-note strong{color:var(--accent);}

/* ─── BOLDER HERO — colorful, immediate, no scroll needed to understand ─── */
.hero-bold{position:relative;max-width:1000px;margin:0 auto;padding:48px 28px 36px;text-align:center;overflow:hidden;}
.hero-bold::before{content:'';position:absolute;width:680px;height:680px;left:50%;top:-180px;transform:translateX(-50%);background:radial-gradient(circle, rgba(184,148,30,0.22), rgba(184,148,30,0.04) 45%, transparent 70%);pointer-events:none;z-index:-1;animation:bgPulse 8s ease-in-out infinite;}
.hero-bold::after{content:'';position:absolute;width:380px;height:380px;right:-80px;top:60px;background:radial-gradient(circle, rgba(37,109,217,0.14), transparent 65%);pointer-events:none;z-index:-1;}
@keyframes bgPulse{0%,100%{opacity:0.8;transform:translateX(-50%) scale(1);}50%{opacity:1;transform:translateX(-50%) scale(1.05);}}
.hero-bold .hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:'Inter','Epilogue',sans-serif;font-size:0.74rem;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--green);background:rgba(31,140,95,0.10);border:1px solid rgba(31,140,95,0.32);border-radius:999px;padding:7px 16px;margin-bottom:26px;}
.hero-bold .hero-eyebrow .live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);animation:pulse 1.6s infinite;}
.hero-bold h1{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:clamp(2.4rem,5.5vw,4.2rem);font-weight:800;line-height:1.02;letter-spacing:-1.8px;margin-bottom:22px;color:var(--ink);}
.hero-bold h1 em{color:transparent;background:linear-gradient(120deg, var(--accent) 0%, #d4ab2c 50%, var(--accent2) 100%);-webkit-background-clip:text;background-clip:text;font-style:normal;display:inline-block;}
.hero-bold .hero-lead{color:var(--light);font-size:1.08rem;line-height:1.65;margin:0 auto 30px;max-width:640px;}
.hero-bold .hero-lead strong{color:var(--ink);font-weight:700;}
.hero-cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:32px;}
.hero-cta-primary{background:linear-gradient(135deg, var(--accent), #d4ab2c);color:#fff;border:none;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1.02rem;padding:17px 34px;border-radius:12px;cursor:pointer;transition:all 0.2s;letter-spacing:-0.2px;box-shadow:0 10px 30px rgba(184,148,30,0.32);}
.hero-cta-primary:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(184,148,30,0.45);}
.hero-cta-secondary{background:rgba(15,15,19,0.04);color:var(--ink);border:1.5px solid var(--border);font-family:'Inter','Epilogue',sans-serif;font-weight:700;font-size:0.98rem;padding:16px 28px;border-radius:12px;cursor:pointer;transition:all 0.2s;}
.hero-cta-secondary:hover{background:var(--accent-soft);border-color:rgba(184,148,30,0.4);color:var(--accent);}
.hero-mini-stats{display:flex;justify-content:center;gap:32px;flex-wrap:wrap;padding-top:24px;border-top:1px solid var(--border);max-width:680px;margin:0 auto;}
.hms{display:flex;flex-direction:column;align-items:center;gap:2px;}
.hms-n{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.6rem;font-weight:800;color:var(--accent);letter-spacing:-0.6px;line-height:1;}
.hms-l{font-size:0.72rem;color:var(--gray);text-transform:uppercase;letter-spacing:1px;font-weight:600;}
@media(max-width:700px){
  .hero-bold{padding:30px 18px 24px;}
  .hero-bold h1{font-size:2rem;letter-spacing:-1px;line-height:1.05;}
  .hero-bold .hero-eyebrow{font-size:0.66rem;padding:5px 12px;letter-spacing:1.4px;}
  .hero-bold .hero-lead{font-size:0.95rem;}
  .hero-cta-primary{font-size:0.94rem;padding:14px 22px;}
  .hero-cta-secondary{font-size:0.9rem;padding:13px 18px;}
  .hero-mini-stats{gap:18px;padding-top:18px;}
  .hms-n{font-size:1.25rem;}
  .hms-l{font-size:0.62rem;}
}

/* Recent stories: 4 SMALL compact cards. 4-col on desktop, 2-col tablet, 2-col phone. */
.home-recent-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.hr-card{padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-height:0;}
.hr-card .hr-card-body{font-size:0.85rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.hr-card .hr-card-name{font-size:0.95rem;}
.hr-card .hr-card-agency{font-size:0.72rem;}
.hr-card-stars{font-size:0.75rem;letter-spacing:1px;}
.hr-card-foot{font-size:0.68rem;padding-top:7px;}
@media(max-width:1024px){
  .home-recent-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:700px){
  .home-recent-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
  .hr-card{padding:11px 12px;border-radius:11px;}
  .hr-card-name{font-size:0.85rem;}
  .hr-card-agency{font-size:0.66rem;}
  .hr-card-body{font-size:0.74rem;line-height:1.4;-webkit-line-clamp:3;}
  .hr-card-foot{font-size:0.64rem;}
}

/* ─── Phone UI: compact every "big box" so 1 card !== 1 screen ─── */
@media(max-width:700px){
  /* Officer cards (Stories grid) */
  .officer-card{padding:12px 14px 12px !important;border-radius:11px !important;gap:5px !important;}
  .officer-card .oc-name{font-size:0.95rem !important;}
  .officer-card .oc-dept{font-size:0.74rem !important;}
  .officer-card .oc-eyebrow{font-size:0.58rem !important;}
  .oc-view{padding:6px 10px !important;font-size:0.7rem !important;}
  /* Poll cards */
  .poll-card{padding:14px 14px !important;border-radius:12px !important;}
  .poll-card .pc-q{font-size:0.92rem !important;line-height:1.3 !important;}
  .poll-card .pc-cat{font-size:0.6rem !important;}
  .poll-card .pc-meta{font-size:0.72rem !important;}
  /* Community / contributors cards */
  .officer-card.role-contributor{padding:11px 13px !important;}
  /* Department / agency cards */
  .dept-card{padding:14px !important;}
  /* Vision / what-you-can-do (in case still rendered elsewhere) */
  .vr-card,.wycd-card{padding:14px 14px !important;border-radius:11px !important;}
}

/* ─── Floating "Share your story" pill (home page only, follows user while they scroll) ─── */
.home-float-share{display:none;position:fixed;bottom:24px;right:24px;z-index:540;background:linear-gradient(135deg, var(--accent), #d4ab2c);color:#fff;border:none;border-radius:999px;padding:14px 22px 14px 18px;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.94rem;cursor:pointer;align-items:center;gap:10px;box-shadow:0 14px 40px rgba(184,148,30,0.45), 0 4px 12px rgba(15,15,19,0.18);transition:transform 0.2s, box-shadow 0.2s;letter-spacing:-0.2px;}
.home-float-share:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 20px 50px rgba(184,148,30,0.55), 0 6px 16px rgba(15,15,19,0.22);}
.home-float-share .hfs-plus{font-size:1.4rem;line-height:1;font-weight:400;}
body.on-home .home-float-share{display:inline-flex;}
@media(max-width:700px){
  .home-float-share{bottom:96px;right:18px;padding:12px 18px 12px 14px;font-size:0.86rem;}
  .home-float-share .hfs-plus{font-size:1.2rem;}
}

/* Stats now sit inside a home-section wrapper — center + give breathing room */
.home-stats-wrap{max-width:1100px;margin:30px auto 0;padding:0 20px;}
.home-stats-wrap .stats-strip{border-radius:14px;}

/* ─── Long-scroll homepage sections — magazine-style ─── */

/* Shared section frame */
.home-section{max-width:1100px;margin:50px auto 0;padding:0 20px;}
.home-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px;flex-wrap:wrap;}
.home-section-head.center{justify-content:center;text-align:center;}
.hs-eyebrow{font-size:0.72rem;text-transform:uppercase;letter-spacing:1.8px;color:var(--accent);font-weight:800;margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.hs-eyebrow .live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);animation:pulse 2s infinite;}
.hs-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;color:var(--ink);letter-spacing:-0.7px;line-height:1.1;}
.hs-sub{font-size:1rem;color:var(--light);margin-top:8px;max-width:580px;line-height:1.55;}
.hs-see-all{background:transparent;border:1px solid var(--border);color:var(--ink);font-family:inherit;font-weight:600;font-size:0.86rem;padding:9px 16px;border-radius:10px;cursor:pointer;transition:all 0.18s;white-space:nowrap;}
.hs-see-all:hover{background:var(--accent-soft);border-color:rgba(184,148,30,0.5);color:var(--accent);}

/* RECENT STORIES — base card styles (grid columns set in the override block above + responsive blocks) */
.hr-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px 20px;cursor:pointer;transition:all 0.22s;display:flex;flex-direction:column;gap:8px;}
.hr-card:hover{border-color:rgba(184,148,30,0.4);transform:translateY(-2px);box-shadow:0 14px 36px rgba(15,15,19,0.08);}
.hr-card-top{display:flex;align-items:center;gap:8px;}
.hr-card-icon{font-size:1.3rem;line-height:1;}
.hr-card-tag{font-size:0.6rem;font-weight:800;padding:3px 8px;border-radius:999px;letter-spacing:0.6px;text-transform:uppercase;}
.hr-card-tag.pos{color:var(--green);background:rgba(31,140,95,0.1);border:1px solid rgba(31,140,95,0.25);}
.hr-card-tag.neg{color:var(--red);background:rgba(201,52,52,0.08);border:1px solid rgba(201,52,52,0.22);}
.hr-card-stars{color:var(--accent);letter-spacing:1.5px;font-size:0.85rem;margin-left:auto;}
.hr-card-name{font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1.05rem;color:var(--ink);line-height:1.2;letter-spacing:-0.3px;}
.hr-card-agency{font-size:0.78rem;color:var(--gray);}
.hr-card-body{font-size:0.92rem;line-height:1.55;color:var(--light);margin:4px 0;}
.hr-card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:8px;border-top:1px solid var(--border);font-size:0.74rem;color:var(--gray);flex-wrap:nowrap;min-height:24px;}
.hr-card-author{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hr-card-meta{display:flex;gap:8px;align-items:center;flex-shrink:0;white-space:nowrap;}
.hr-card-author{font-weight:600;color:var(--light);}
.demo-badge{position:absolute;top:8px;right:8px;background:rgba(184,148,30,0.14);color:var(--accent);border:1px solid rgba(184,148,30,0.35);font-size:0.6rem;font-weight:800;letter-spacing:1px;padding:2px 7px;border-radius:4px;text-transform:uppercase;z-index:2;line-height:1.3;cursor:help;}
.hr-card.is-demo,.pulse-card.is-demo{position:relative;}
.hr-share{background:transparent;border:1px solid var(--border);color:var(--gray);width:24px;height:24px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:0.78rem;padding:0;line-height:1;transition:all 0.15s ease;}
.hr-share:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:scale(1.08);}
.hr-share:active{transform:scale(0.95);}
/* (legacy .hr-card-meta consolidated above) */

/* HOW IT WORKS — 3-step cards */
.home-how{background:linear-gradient(160deg, rgba(184,148,30,0.04), transparent);border-radius:24px;padding:40px 24px;}
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:980px;margin:0 auto;}
.how-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:28px 22px;text-align:center;position:relative;}
.how-step{position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:34px;height:34px;background:var(--ink);color:#fff;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1rem;border-radius:50%;display:flex;align-items:center;justify-content:center;letter-spacing:-0.5px;}
.how-icon{font-size:2.2rem;margin:14px 0 12px;}
.how-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.15rem;font-weight:800;color:var(--ink);margin-bottom:10px;letter-spacing:-0.3px;}
.how-desc{font-size:0.92rem;line-height:1.6;color:var(--light);}

/* TRENDING POLLS */
.home-polls-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.hp-card{background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:18px 20px;cursor:pointer;transition:all 0.2s;display:flex;flex-direction:column;gap:10px;}
.hp-card:hover{border-color:rgba(184,148,30,0.5);transform:translateY(-2px);box-shadow:0 14px 36px rgba(15,15,19,0.08);}
.hp-card-cat{font-size:0.66rem;text-transform:uppercase;letter-spacing:1.4px;color:var(--accent);font-weight:800;}
.hp-card-q{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.05rem;font-weight:800;color:var(--ink);line-height:1.3;letter-spacing:-0.3px;flex:1;}
.hp-card-foot{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px dashed var(--border);font-size:0.74rem;}
.hp-card-meta{color:var(--gray);}
.hp-card-cta{color:var(--accent);font-weight:700;}

/* VOICES */
.home-voices-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.hv-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 16px;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:12px;}
.hv-card:hover{border-color:rgba(184,148,30,0.4);transform:translateY(-2px);}
.hv-avatar{width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1.2rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.hv-body{min-width:0;flex:1;}
.hv-handle{font-weight:700;color:var(--ink);font-size:0.92rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hv-stats{font-size:0.74rem;color:var(--gray);margin-top:2px;}
.hv-tier{font-size:0.72rem;font-weight:700;margin-top:3px;}

/* MANIFESTO */
.home-manifesto{background:linear-gradient(180deg, transparent, rgba(184,148,30,0.06), transparent);padding:60px 24px;border-radius:24px;}
.manifesto-inner{max-width:760px;margin:0 auto;text-align:center;}
.manifesto-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:clamp(1.6rem,3.2vw,2.4rem);font-weight:800;color:var(--ink);letter-spacing:-0.8px;line-height:1.15;margin:14px 0 28px;}
.manifesto-body{font-size:1.08rem;line-height:1.7;color:var(--light);margin-bottom:18px;}
.manifesto-body strong{color:var(--ink);font-weight:700;}
.manifesto-body em{color:var(--accent);font-style:normal;font-weight:700;cursor:default;}
.hs-eyebrow.center{justify-content:center;}

/* FEATURE BLOCKS — narrative, not cards */
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:1100px;margin:0 auto;}
.feature-block{padding:0 8px;}
.feature-icon{font-size:2.4rem;margin-bottom:14px;}
.feature-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.2rem;font-weight:800;color:var(--ink);margin-bottom:12px;letter-spacing:-0.4px;line-height:1.25;}
.feature-body{font-size:0.95rem;line-height:1.65;color:var(--light);}
.feature-link{background:none;border:none;color:var(--accent);font-family:inherit;font-weight:700;font-size:0.95rem;cursor:pointer;padding:0;margin-top:6px;display:block;}
.feature-link:hover{text-decoration:underline;text-underline-offset:3px;}

/* FINAL CTA */
.home-final-cta{margin:80px auto 100px;padding:0 20px;}
.final-cta-inner{max-width:760px;margin:0 auto;text-align:center;background:linear-gradient(135deg, var(--ink) 0%, #2a2a2d 100%);color:#fff;border-radius:24px;padding:60px 36px;}
.final-cta-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:800;letter-spacing:-0.8px;line-height:1.1;margin-bottom:16px;}
.final-cta-sub{font-size:1.05rem;line-height:1.6;color:rgba(255,255,255,0.85);margin-bottom:28px;max-width:540px;margin-left:auto;margin-right:auto;}
.final-cta-btn{background:var(--accent);color:#fff;border:none;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1.1rem;padding:18px 40px;border-radius:14px;cursor:pointer;transition:all 0.2s;letter-spacing:-0.2px;}
.final-cta-btn:hover{background:#d4ab2c;transform:translateY(-2px);box-shadow:0 12px 32px rgba(184,148,30,0.4);}
.final-cta-meta{font-size:0.82rem;color:rgba(255,255,255,0.55);margin-top:18px;}

/* RESPONSIVE — polls + voices collapse; recent-grid handled above */
@media(max-width:1024px){
  .home-polls-grid,.home-voices-grid{grid-template-columns:repeat(2,1fr);}
  .how-grid,.features-grid{grid-template-columns:1fr;gap:24px;}
}
@media(max-width:700px){
  .home-section{margin:36px auto 0;padding:0 14px;}
  .home-section-head{margin-bottom:16px;}
  .hs-title{font-size:1.4rem;}
  .hs-sub{font-size:0.9rem;}
  .home-polls-grid,.home-voices-grid{grid-template-columns:1fr;gap:10px;}
  .hp-card{padding:14px 16px;border-radius:12px;}
  .home-how{padding:30px 16px;border-radius:18px;}
  .how-card{padding:24px 18px;}
  .home-manifesto{padding:40px 16px;}
  .manifesto-body{font-size:0.96rem;}
  .home-final-cta{margin:50px auto 70px;padding:0 14px;}
  .final-cta-inner{padding:40px 22px;border-radius:18px;}
  .final-cta-btn{font-size:1rem;padding:15px 30px;}
}

/* ─── "What you can do here" rail on home — 5 action cards ─── */
.what-you-can-do{margin:36px auto 0;max-width:1100px;padding:0 20px;}
.wycd-head{display:flex;align-items:baseline;gap:12px;margin-bottom:18px;flex-wrap:wrap;}
.wycd-head h3{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.3rem;font-weight:800;color:var(--ink);letter-spacing:-0.4px;}
.wycd-head .wycd-sub{font-size:0.86rem;color:var(--gray);}
.wycd-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
.wycd-card{background:linear-gradient(160deg, var(--card), rgba(184,148,30,0.03));border:1.5px solid var(--border);border-radius:16px;padding:20px 18px;text-align:left;cursor:pointer;transition:all 0.22s;display:flex;flex-direction:column;gap:8px;font-family:inherit;color:inherit;}
.wycd-card:hover{border-color:rgba(184,148,30,0.55);transform:translateY(-3px);box-shadow:0 14px 36px rgba(15,15,19,0.08);background:linear-gradient(160deg, var(--card), rgba(184,148,30,0.08));}
.wycd-card .wycd-icon{font-size:1.7rem;line-height:1;margin-bottom:4px;}
.wycd-card .wycd-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.02rem;font-weight:800;color:var(--ink);line-height:1.2;letter-spacing:-0.3px;}
.wycd-card .wycd-desc{font-size:0.8rem;color:var(--light);line-height:1.5;}
@media(max-width:1024px){
  .wycd-grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:700px){
  .what-you-can-do{margin:24px auto 0;padding:0 14px;}
  .wycd-head h3{font-size:1.1rem;}
  .wycd-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .wycd-card{padding:16px 14px;border-radius:13px;}
  .wycd-card .wycd-icon{font-size:1.4rem;}
  .wycd-card .wycd-title{font-size:0.92rem;}
  .wycd-card .wycd-desc{font-size:0.74rem;}
}

/* ─── "Where this is going" rail on home ─── */
.vision-rail{margin:30px auto 0;max-width:880px;padding:0 20px;}
.vision-rail-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.vision-rail-head h3{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.05rem;font-weight:800;color:var(--ink);letter-spacing:-0.3px;}
.vision-rail-head .vr-sub{font-size:0.84rem;color:var(--gray);}
.vision-rail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.vr-card{background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:18px 18px 16px;text-align:left;cursor:pointer;transition:all 0.2s;display:flex;flex-direction:column;gap:8px;font-family:inherit;color:inherit;}
.vr-card:hover{border-color:rgba(184,148,30,0.5);transform:translateY(-2px);box-shadow:0 10px 30px rgba(15,15,19,0.08);}
.vr-card .vr-icon{font-size:1.4rem;}
.vr-card .vr-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:0.96rem;font-weight:800;color:var(--ink);line-height:1.25;letter-spacing:-0.2px;}
.vr-card .vr-desc{font-size:0.79rem;color:var(--light);line-height:1.45;}
.vr-card .vr-pill{margin-top:auto;font-size:0.7rem;font-weight:700;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(184,148,30,0.3);padding:5px 10px;border-radius:999px;align-self:flex-start;letter-spacing:0.3px;text-transform:uppercase;}
@media(max-width:700px){
  .vision-rail-grid{grid-template-columns:1fr;}
  .vr-card{padding:16px;}
}

/* ─── Notify-me modal ─── */
.notify-overlay{display:none;position:fixed;inset:0;background:rgba(15,15,19,0.55);z-index:500;backdrop-filter:blur(6px);align-items:center;justify-content:center;padding:20px;}
.notify-overlay.show{display:flex;animation:fadeUp 0.2s ease;}
.notify-modal{background:var(--card);border:1px solid var(--border);border-radius:18px;width:100%;max-width:440px;padding:28px;position:relative;box-shadow:var(--shadow-lg);}
.notify-modal .auth-close{position:absolute;top:14px;right:14px;background:rgba(15,15,19,0.06);border:none;border-radius:8px;width:36px;height:36px;cursor:pointer;font-size:1.1rem;}
.notify-eyebrow{font-size:0.7rem;text-transform:uppercase;letter-spacing:1.4px;color:var(--accent);font-weight:700;margin-bottom:8px;}
.notify-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.35rem;font-weight:800;color:var(--ink);margin-bottom:8px;letter-spacing:-0.3px;line-height:1.2;}
.notify-sub{font-size:0.9rem;color:var(--light);line-height:1.55;margin-bottom:18px;}
.notify-modal input{width:100%;background:var(--bg2);border:1.5px solid var(--border);border-radius:10px;padding:13px 16px;color:var(--ink);font-family:inherit;font-size:0.95rem;outline:none;transition:border-color 0.2s;margin-bottom:12px;}
.notify-modal input:focus{border-color:rgba(184,148,30,0.5);}
.notify-btn{width:100%;background:var(--ink);color:#fff;border:none;border-radius:10px;padding:13px;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.94rem;cursor:pointer;transition:background 0.2s;}
.notify-btn:hover{background:var(--accent);}
.notify-success{background:rgba(31,140,95,0.08);border:1px solid rgba(31,140,95,0.32);color:var(--green);border-radius:10px;padding:14px;font-size:0.88rem;line-height:1.55;font-weight:600;}

/* ─── Tablet (700-1024px): two-column for grids that are 3+ col on desktop ─── */
@media(min-width:701px) and (max-width:1024px){
  .officer-grid{grid-template-columns:repeat(2,1fr);}
  .vision-rail-grid{grid-template-columns:repeat(3,1fr);}
  .deck-grid,.tiers{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:repeat(2,1fr);}
}

/* ─── Desktop (1025px+): max-width discipline + denser content ─── */
@media(min-width:1025px){
  .wrap{max-width:1100px;margin:0 auto;}
  .wrap-wide{max-width:1280px;margin:0 auto;}
  .officer-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
  /* Subtle hover lift only on devices that can hover */
  @media(hover:hover){
    .vr-card:hover{transform:translateY(-3px);}
  }
}

/* ─── TikTok-style tap feedback ─── */
@keyframes tapPulse{0%{transform:scale(1);}45%{transform:scale(0.94);}100%{transform:scale(1);}}
.tap-pulse{animation:tapPulse 0.32s cubic-bezier(0.34,1.56,0.64,1);}
@keyframes emojiFloat{0%{transform:translateY(0) scale(0.8);opacity:0;}15%{transform:translateY(-10px) scale(1.4);opacity:1;}100%{transform:translateY(-80px) scale(0.6);opacity:0;}}
.emoji-burst{position:fixed;font-size:1.8rem;pointer-events:none;z-index:9999;animation:emojiFloat 1s cubic-bezier(0.4,0,0.2,1) forwards;}

/* Press state on cards (mobile-style) */
.pulse-card{transition:transform 0.15s cubic-bezier(0.4,0,0.2,1), box-shadow 0.15s;}
.pulse-card:active{transform:scale(0.985);}
.story-post{transition:transform 0.15s cubic-bezier(0.4,0,0.2,1), border-color 0.18s, box-shadow 0.18s;}
.story-post:active{transform:scale(0.99);}

/* Thumbs-down action gets red on hover */
.sp-action.down:hover{color:var(--red);border-color:rgba(201,52,52,0.4);background:rgba(201,52,52,0.06);}

/* Pulse empty state — richer layout */
.pulse-empty{text-align:center;padding:50px 20px;max-width:480px;margin:0 auto;}
.pe-icon{font-size:3rem;margin-bottom:14px;}
.pe-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.25rem;font-weight:800;color:var(--ink);margin-bottom:8px;letter-spacing:-0.3px;}
.pe-sub{font-size:0.95rem;color:var(--light);line-height:1.55;margin-bottom:18px;}
.pe-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:14px;}
.pe-actions .btn-gold,.pe-actions .btn-ghost{padding:11px 22px;font-size:0.88rem;border-radius:10px;}
.pe-howto{font-size:0.82rem;color:var(--gray);line-height:1.55;margin-top:14px;padding:14px;background:var(--bg2);border-radius:10px;}

/* ─── Admin tabs ─── */
.admin-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:18px;border-bottom:1px solid var(--border);scrollbar-width:none;}
.admin-tabs::-webkit-scrollbar{display:none;}
.adm-tab{background:transparent;border:none;color:var(--gray);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:600;font-size:0.86rem;padding:8px 14px;border-radius:8px 8px 0 0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;transition:all 0.18s;border-bottom:2px solid transparent;}
.adm-tab:hover{color:var(--ink);background:var(--bg2);}
.adm-tab.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:800;}
.adm-badge{background:var(--accent);color:#fff;font-size:0.65rem;font-weight:800;padding:1px 7px;border-radius:999px;letter-spacing:0.3px;min-width:18px;text-align:center;display:inline-block;}
.adm-tab:not(.on) .adm-badge{background:var(--gray);}

/* Pulse poll card variant — same chrome, different feel */
.pulse-poll-card{background:linear-gradient(160deg, var(--card), rgba(184,148,30,0.04));}
.pulse-poll-card::before{height:160px;background:linear-gradient(180deg, rgba(184,148,30,0.18), transparent);}

/* Reaction-row spacing across devices */
@media(min-width:701px){
  .pulse-actions,.sp-actions,.mr-actions{gap:10px;}
}
@media(min-width:1025px){
  .pulse-actions .sp-action,.sp-actions .sp-action{padding:8px 16px;font-size:0.84rem;}
}

/* Reacted button — visible marker that THIS user already cast this reaction */
/* SELECTED REACTION (reviewer #5 — brighten the active state) */
.sp-action.reacted{position:relative;font-weight:800;box-shadow:0 0 0 2px rgba(184,148,30,0.18);}
.sp-action.reacted::after{content:'✓';position:absolute;top:-7px;right:-7px;background:var(--accent);color:#fff;font-size:0.78rem;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;box-shadow:0 2px 6px rgba(0,0,0,0.18);border:2px solid #fafaf7;}

/* Reaction summary — the visible counts above the legend */
.reaction-summary{display:flex;flex-wrap:wrap;gap:10px;font-size:0.86rem;color:var(--light);margin:14px 0 0;padding:10px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:10px;align-items:center;font-weight:600;}
.reaction-summary .rs-sep{color:var(--border);}
.reaction-summary span{display:inline-flex;align-items:center;gap:4px;}
@media(max-width:700px){
  .reaction-summary{font-size:0.78rem;gap:8px;padding:8px 10px;}
}

/* "Top reacted right now" rail at the top of Pulse — horizontal scrollable, three cards */
.top-reacted-rail{padding:18px 4px 22px;margin-bottom:14px;border-bottom:1px solid var(--border);}
.trr-head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;padding:0 6px;flex-wrap:wrap;}
.trr-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.05rem;font-weight:800;color:var(--ink);letter-spacing:-0.3px;}
.trr-sub{font-size:0.78rem;color:var(--gray);}
.trr-list{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:2px 4px 10px;scroll-snap-type:x proximity;}
.trr-list::-webkit-scrollbar{display:none;}
.trr-card{flex:0 0 260px;background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:14px 16px;cursor:pointer;scroll-snap-align:start;transition:all 0.2s;}
.trr-card:hover{border-color:rgba(184,148,30,0.5);transform:translateY(-2px);box-shadow:0 14px 36px rgba(15,15,19,0.08);}
.trr-eyebrow{font-size:0.62rem;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;margin-bottom:6px;}
.trr-name{font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1rem;color:var(--ink);margin-bottom:6px;line-height:1.2;letter-spacing:-0.3px;}
.trr-snippet{font-size:0.84rem;color:var(--light);line-height:1.45;margin-bottom:8px;}
.trr-total{font-size:0.72rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:0.8px;}
@media(max-width:700px){
  .trr-card{flex:0 0 230px;padding:12px 14px;}
}

/* Reaction legend — one-line "what do these mean" key above the buttons */
.reaction-legend{font-size:0.72rem;color:var(--gray);margin:14px 0 8px;padding:8px 12px;background:var(--bg2);border:1px dashed var(--border);border-radius:8px;line-height:1.5;}
.reaction-legend .rl-key{color:var(--light);font-weight:600;}
@media(max-width:700px){
  .reaction-legend{font-size:0.68rem;padding:7px 10px;}
  .reaction-legend .rl-key{display:block;margin-top:2px;}
}

/* ─── Custom emoji picker ─── */
.emoji-picker{position:absolute;z-index:9999;background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:8px;box-shadow:0 16px 44px rgba(15,15,19,0.18);display:grid;grid-template-columns:repeat(6,1fr);gap:4px;animation:fadeUp 0.2s ease;}
.emoji-picker .ep-btn{background:transparent;border:none;font-size:1.4rem;width:38px;height:38px;border-radius:8px;cursor:pointer;transition:all 0.15s;display:flex;align-items:center;justify-content:center;line-height:1;}
.emoji-picker .ep-btn:hover{background:var(--accent-soft);transform:scale(1.15);}
.sp-action.emoji-plus{font-weight:800;font-size:1rem;padding:6px 11px;color:var(--gray);}
.sp-action.emoji-plus:hover{color:var(--accent);border-color:rgba(184,148,30,0.4);background:var(--accent-soft);}

/* Affiliation picker highlight when required for voting */
@keyframes affilRequired{0%,100%{box-shadow:0 0 0 0 rgba(184,148,30,0);}50%{box-shadow:0 0 0 8px rgba(184,148,30,0.35);}}
.affil-required-flash{animation:affilRequired 0.8s ease-in-out 3;border-color:var(--accent) !important;}

/* ─── Poll breakdown — per-option view (who picked what) ─── */
.poll-breakdown{margin:14px 0;padding:14px 16px;background:linear-gradient(160deg, rgba(184,148,30,0.05), var(--bg2));border:1px solid var(--border);border-radius:12px;}
.pbd-head{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:0.86rem;font-weight:800;letter-spacing:-0.2px;color:var(--ink);margin-bottom:10px;display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;}
.pbd-total{font-size:0.72rem;color:var(--gray);font-weight:600;letter-spacing:0;}
.pbd-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed var(--border);}
.pbd-legend-chip{display:inline-flex;align-items:center;gap:5px;font-size:0.7rem;color:var(--light);font-weight:600;letter-spacing:-0.1px;}
.pbd-legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
.pbd-option{padding:10px 0;border-top:1px solid rgba(229,227,221,0.5);}
.pbd-option:first-of-type{border-top:none;padding-top:0;}
.pbd-option-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:5px;flex-wrap:wrap;}
.pbd-option-label{font-weight:700;color:var(--ink);font-size:0.92rem;line-height:1.25;}
.pbd-option-stats{font-size:0.72rem;color:var(--gray);font-weight:600;white-space:nowrap;}
.pbd-option-stats strong{color:var(--ink);font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:0.84rem;font-weight:800;letter-spacing:-0.2px;}
.pbd-option-totalbar{height:6px;border-radius:3px;background:rgba(229,227,221,0.5);overflow:hidden;margin-bottom:6px;}
.pbd-option-totalbar-fill{height:100%;background:linear-gradient(90deg, var(--accent), var(--accent2));border-radius:3px;transition:width 0.5s cubic-bezier(0.4,0,0.2,1);}
.pbd-option-stack{display:flex;gap:2px;height:11px;border-radius:4px;overflow:hidden;background:rgba(229,227,221,0.4);margin-bottom:7px;}
.pbd-seg{height:100%;transition:flex 0.4s cubic-bezier(0.4,0,0.2,1);}
.pbd-leaders{display:flex;flex-wrap:wrap;gap:10px;font-size:0.72rem;}
.pbd-leader{display:inline-flex;align-items:center;gap:5px;color:var(--light);}
.pbd-leader-dot{width:7px;height:7px;border-radius:50%;display:inline-block;}
.pbd-leader strong{color:var(--ink);font-weight:700;font-size:0.74rem;}
@media(max-width:700px){
  .pbd-option-label{font-size:0.88rem;}
  .pbd-option-stats{font-size:0.7rem;}
  .pbd-leaders{gap:8px;}
  .pbd-leader{font-size:0.68rem;}
}

/* ─── Poll comments ─── */
.poll-comments{margin:14px 0 4px;padding-top:14px;border-top:1px dashed var(--border);}
.pcm-add{display:flex;gap:8px;margin-bottom:12px;}
.pcm-add input{flex:1;background:var(--bg2);border:1.5px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--ink);font-family:inherit;font-size:0.86rem;outline:none;}
.pcm-add input:focus{border-color:rgba(184,148,30,0.5);}
.pcm-send{background:var(--ink);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:700;font-size:0.82rem;cursor:pointer;transition:background 0.2s;}
.pcm-send:hover{background:var(--accent);}
.pcm-head{font-size:0.72rem;text-transform:uppercase;letter-spacing:1.2px;color:var(--gray);font-weight:700;margin-bottom:8px;}
.pcm-list{display:flex;flex-direction:column;gap:8px;}
.pcm-item{background:var(--bg2);border-radius:8px;padding:9px 12px;border:1px solid var(--border);display:flex;flex-direction:column;gap:3px;}
.pcm-handle{font-size:0.7rem;color:var(--gray);font-weight:700;}
.pcm-affil{color:var(--accent);text-transform:capitalize;}
.pcm-text{font-size:0.88rem;color:var(--ink);line-height:1.5;}
.pcm-expand{margin-top:6px;background:transparent;border:1px solid var(--border);color:var(--gray);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:600;font-size:0.76rem;padding:7px 12px;border-radius:8px;cursor:pointer;width:100%;transition:all 0.15s;letter-spacing:-0.1px;}
.pcm-expand:hover{color:var(--accent);border-color:rgba(184,148,30,0.4);background:var(--accent-soft);}
@media(max-width:700px){
  .pcm-add{flex-direction:column;gap:6px;}
  .pcm-add input{padding:10px 12px;font-size:0.92rem;}
  .pcm-send{width:100%;padding:10px;}
}

/* ─── PHONE-SPECIFIC: bottom tab bar (one-tap nav) ─── */
.bottom-tabs{display:none;position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,0.96);backdrop-filter:blur(14px);border-top:1px solid var(--border);padding:6px 8px 10px;z-index:180;justify-content:space-around;align-items:flex-end;box-shadow:0 -4px 24px rgba(15,15,19,0.06);}
.bt-tab{flex:1;background:transparent;border:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 4px 4px;cursor:pointer;color:var(--gray);font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:0.62rem;font-weight:600;transition:color 0.15s;letter-spacing:0.3px;}
.bt-tab .bt-icon{font-size:1.35rem;line-height:1;filter:grayscale(0.4);transition:filter 0.15s, transform 0.18s;}
.bt-tab.active{color:var(--accent);}
.bt-tab.active .bt-icon{filter:grayscale(0);transform:translateY(-2px);}
.bt-tab:active .bt-icon{transform:scale(0.92);}
.bt-tab.bt-cta{margin-top:-12px;}
.bt-tab.bt-cta .bt-cta-circle{width:48px;height:48px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.55rem;font-weight:300;line-height:1;box-shadow:0 10px 22px rgba(15,15,19,0.32);transition:transform 0.2s;}
.bt-tab.bt-cta:active .bt-cta-circle{transform:scale(0.92);}
.bt-tab.bt-cta.active .bt-cta-circle{background:var(--accent);}

/* Only show on phone — and pad the body so content isn't hidden behind it */
@media(max-width:700px){
  .bottom-tabs{display:flex;}
  body{padding-bottom:78px;}
  .pulse-escape{bottom:90px !important;}  /* lift Home pill above bottom tabs */
  .demo-badge{bottom:90px !important;}
}

/* ─── TABLET POLISH: more breathing room (701-1024px) ─── */
@media(min-width:701px) and (max-width:1024px){
  .pulse-card{padding:30px 32px;}
  .pulse-name{font-size:2rem;}
  .pulse-body{font-size:1.1rem;}
  .officer-grid{grid-template-columns:repeat(2, 1fr);gap:14px;}
  .vision-rail-grid{grid-template-columns:repeat(3, 1fr);}
}

/* ─── Consistency banner on home — only after 3+ active days ─── */
.consistency-banner{max-width:780px;margin:24px auto 0;padding:16px 22px;background:linear-gradient(120deg, rgba(184,148,30,0.10), rgba(184,148,30,0.03));border:1px solid rgba(184,148,30,0.32);border-radius:14px;display:flex;align-items:center;gap:14px;line-height:1.55;}
.consistency-banner .cb-icon{font-size:1.6rem;flex-shrink:0;filter:drop-shadow(0 0 6px rgba(255,210,80,0.45));}
.consistency-banner .cb-text{font-size:0.95rem;color:var(--light);}
.consistency-banner strong{color:var(--ink);font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;letter-spacing:-0.2px;}
@media(max-width:700px){
  .consistency-banner{margin:16px;padding:13px 16px;gap:10px;}
  .consistency-banner .cb-icon{font-size:1.35rem;}
  .consistency-banner .cb-text{font-size:0.86rem;}
}
@media(min-width:1025px){
  .consistency-banner{margin:30px auto;padding:18px 26px;}
  .consistency-banner .cb-text{font-size:1rem;}
}

/* ─── Streak modal grid (cross-device) ─── */
.streak-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0 18px;}
.streak-stat{text-align:center;padding:14px 6px;background:var(--bg2);border:1px solid var(--border);border-radius:12px;}
.streak-stat-highlight{background:linear-gradient(160deg, rgba(224,122,26,0.12), var(--bg2));border-color:rgba(224,122,26,0.35);}
.streak-stat-n{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.7rem;font-weight:800;color:var(--ink);line-height:1;letter-spacing:-0.6px;}
.streak-stat-l{font-size:0.62rem;color:var(--gray);text-transform:uppercase;letter-spacing:0.8px;font-weight:700;margin-top:5px;line-height:1.25;}
@media(max-width:480px){
  .streak-grid{grid-template-columns:1fr 1fr;gap:8px;}
  .streak-stat-n{font-size:1.6rem;}
}

/* ─── Pull-to-refresh indicator ─── */
.ptr-indicator{position:fixed;top:64px;left:50%;transform:translate(-50%, -100%);background:var(--card);border:1.5px solid var(--accent);border-radius:999px;padding:8px 18px;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:700;font-size:0.84rem;color:var(--accent);box-shadow:0 8px 28px rgba(15,15,19,0.18);z-index:200;display:flex;align-items:center;gap:8px;transition:transform 0.25s cubic-bezier(0.4,0,0.2,1), opacity 0.2s;opacity:0;pointer-events:none;}
.ptr-indicator.pulling{opacity:1;transform:translate(-50%, 12px);}
.ptr-indicator.refreshing{opacity:1;transform:translate(-50%, 12px);}
.ptr-indicator.refreshing .ptr-icon{animation:ptrSpin 0.8s linear infinite;}
@keyframes ptrSpin{to{transform:rotate(360deg);}}

/* Reply-to-reply nesting */
.reply-reply-btn{background:transparent;border:none;color:var(--gray);font-family:'Inter','Epilogue',sans-serif;font-size:0.74rem;font-weight:600;padding:4px 8px;border-radius:6px;cursor:pointer;margin-top:6px;transition:color 0.15s;}
.reply-reply-btn:hover{color:var(--accent);background:var(--accent-soft);}
.reply-children-mount{margin-top:8px;padding-left:14px;border-left:2px solid var(--border);}
.reply-child{padding:8px 10px;margin-bottom:6px;background:var(--bg2);border-radius:8px;}
.reply-child .reply-author strong{font-size:0.85rem;}
.reply-child .reply-body{font-size:0.85rem;line-height:1.5;}
.reply-child .reply-date{font-size:0.7rem;}
.nested-reply-input{margin-top:8px;background:var(--card);border:1.5px solid rgba(184,148,30,0.4);border-radius:10px;padding:10px;}
.nested-reply-input textarea{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:8px 10px;color:var(--ink);font-family:inherit;font-size:0.86rem;outline:none;resize:vertical;min-height:50px;}
.nested-reply-input textarea:focus{border-color:rgba(184,148,30,0.5);}

/* @mentions inside replies — clickable chips */
.mention{display:inline;color:var(--accent);font-weight:700;cursor:pointer;border-radius:4px;padding:0 2px;transition:background 0.12s;}
.mention:hover{background:var(--accent-soft);}

/* Reply sort bar */
.reply-sort-bar{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:0.78rem;}
.reply-sort-label{color:var(--gray);font-weight:600;letter-spacing:-0.1px;}
.reply-sort-pill{background:transparent;border:1px solid var(--border);color:var(--gray);font-family:'Inter','Epilogue',sans-serif;font-weight:600;font-size:0.72rem;padding:4px 10px;border-radius:999px;cursor:pointer;transition:all 0.15s;}
.reply-sort-pill:hover{color:var(--ink);}
.reply-sort-pill.on{background:var(--ink);color:#fff;border-color:var(--ink);}

/* Global search result rows */
.gs-item{display:flex;gap:12px;padding:10px 12px;border-radius:10px;cursor:pointer;align-items:center;transition:background 0.15s;}
.gs-item:hover{background:var(--bg2);}
.gs-emoji{font-size:1.4rem;flex-shrink:0;width:32px;text-align:center;}
.gs-body{flex:1;min-width:0;}
.gs-title{font-weight:700;color:var(--ink);font-size:0.92rem;line-height:1.3;letter-spacing:-0.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gs-sub{font-size:0.78rem;color:var(--gray);line-height:1.4;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* Reaction-summary flash — runs when bots/users add a reaction so the change is visible */
.reaction-summary.flash-update{animation:reactionFlash 1.2s cubic-bezier(0.4,0,0.2,1);}
@keyframes reactionFlash{
  0%{background:var(--bg2);border-color:var(--border);}
  20%{background:rgba(184,148,30,0.22);border-color:var(--accent);transform:scale(1.02);box-shadow:0 6px 16px rgba(184,148,30,0.18);}
  100%{background:var(--bg2);border-color:var(--border);transform:scale(1);}
}
/* "+1 🙋" float-up badge fired on each bot reaction so user sees it land */
.reaction-bump{position:absolute;z-index:9500;background:var(--ink);color:#fff;font-family:'Inter','Epilogue',sans-serif;font-weight:800;font-size:0.82rem;padding:4px 10px;border-radius:999px;pointer-events:none;animation:bumpFloat 1.5s cubic-bezier(0.4,0,0.2,1) forwards;box-shadow:0 8px 20px rgba(15,15,19,0.32);letter-spacing:-0.1px;}
@keyframes bumpFloat{
  0%{opacity:0;transform:translateY(0) scale(0.7);}
  15%{opacity:1;transform:translateY(-14px) scale(1.05);}
  100%{opacity:0;transform:translateY(-60px) scale(0.85);}
}

/* Fake-user activity ticker — bottom-left pill flashes when a fake action fires */
.fake-ticker{position:fixed;bottom:18px;left:18px;background:rgba(15,15,19,0.92);color:#fff;font-family:'Inter','Epilogue',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-weight:600;font-size:0.78rem;padding:8px 14px;border-radius:999px;z-index:9000;opacity:0;transform:translateY(20px);transition:opacity 0.3s, transform 0.3s;pointer-events:none;box-shadow:0 8px 24px rgba(15,15,19,0.32);max-width:calc(100vw - 36px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-0.1px;}
.fake-ticker.show{opacity:1;transform:translateY(0);animation:fakeFade 3.5s forwards;}
@keyframes fakeFade{0%{opacity:0;transform:translateY(20px);}10%{opacity:1;transform:translateY(0);}80%{opacity:1;transform:translateY(0);}100%{opacity:0;transform:translateY(-10px);}}
@media(max-width:700px){
  .fake-ticker{bottom:90px;font-size:0.72rem;padding:6px 12px;}  /* above bottom tabs */
}

/* Streak milestone toast — slides up from bottom on celebration */
.streak-toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%, 80px);background:linear-gradient(120deg, var(--ink), #2a2a2d);color:#fff;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;padding:14px 24px;border-radius:999px;box-shadow:0 20px 50px rgba(15,15,19,0.4);z-index:9000;opacity:0;transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1), opacity 0.3s;font-size:0.92rem;letter-spacing:-0.2px;}
.streak-toast.show{transform:translate(-50%, 0);opacity:1;}

/* "Hot right now" badge */
.hot-badge{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(120deg, #ff5e5e, #e07a1a);color:#fff;font-size:0.62rem;font-weight:800;padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:0.8px;box-shadow:0 4px 12px rgba(255,94,94,0.3);}
.hot-badge::before{content:'🔥';font-size:0.85rem;filter:drop-shadow(0 0 4px rgba(255,150,80,0.6));}

/* Tablet polls layout */
@media(min-width:701px) and (max-width:1024px){
  .polls-wrap{max-width:920px;}
  #pollsList{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .poll-card{margin-bottom:0;}
}
/* Desktop polls layout — slightly wider */
@media(min-width:1025px){
  .polls-wrap{max-width:900px;}
}

/* ─── Polls section ─── */
.polls-wrap{max-width:780px;margin:0 auto;padding:0 16px;}
.poll-card{background:var(--card);border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-bottom:14px;cursor:pointer;transition:all 0.22s;}
.poll-card:hover{border-color:rgba(184,148,30,0.42);box-shadow:0 14px 36px rgba(15,15,19,0.08);}
.poll-card .pc-cat{font-size:0.66rem;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:1.4px;margin-bottom:6px;}
.poll-card .pc-q{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.15rem;font-weight:800;color:var(--ink);line-height:1.3;letter-spacing:-0.3px;margin-bottom:12px;}
.poll-card .pc-meta{font-size:0.78rem;color:var(--gray);margin-bottom:14px;}
.poll-options{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.poll-opt{display:flex;align-items:center;gap:12px;background:var(--bg2);border:1.5px solid var(--border);border-radius:10px;padding:11px 14px;cursor:pointer;transition:all 0.18s;position:relative;overflow:hidden;}
.poll-opt:hover{border-color:rgba(184,148,30,0.4);background:rgba(184,148,30,0.04);}
.poll-opt.voted{border-color:var(--accent);background:var(--accent-soft);}
.poll-opt .po-bar{position:absolute;left:0;top:0;bottom:0;background:rgba(184,148,30,0.15);transition:width 0.5s cubic-bezier(0.4,0,0.2,1);z-index:0;}
.poll-opt .po-label{font-weight:600;color:var(--ink);font-size:0.92rem;position:relative;z-index:1;flex:1;}
.poll-opt .po-pct{font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;color:var(--accent);font-size:0.95rem;position:relative;z-index:1;}
.poll-card .pc-foot{display:flex;align-items:center;justify-content:space-between;font-size:0.78rem;color:var(--gray);padding-top:10px;border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;}
.poll-affil{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;}
.poll-affil span{font-size:0.7rem;background:var(--bg2);color:var(--gray);padding:3px 9px;border-radius:999px;font-weight:600;border:1px solid var(--border);}
.poll-affil span.selected{background:var(--accent);color:#fff;border-color:var(--accent);}
.poll-affil-label{font-size:0.74rem;color:var(--gray);font-weight:600;margin-right:4px;align-self:center;}

@media(max-width:700px){
  .poll-card{padding:18px 16px;border-radius:14px;}
  .poll-card .pc-q{font-size:1rem;}
  .pe-icon{font-size:2.4rem;}
  .pe-title{font-size:1.1rem;}
  .pe-sub{font-size:0.88rem;}
  .pe-actions .btn-gold,.pe-actions .btn-ghost{padding:10px 18px;font-size:0.84rem;width:100%;}
  .pe-actions{flex-direction:column;}
}

/* ─── Agency "Coming Soon — review request links" CTA ─── */
.agency-cta{background:linear-gradient(135deg, rgba(184,148,30,0.1), rgba(184,148,30,0.04));border:1.5px solid rgba(184,148,30,0.35);border-radius:16px;padding:22px 24px;margin:20px 0;display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;}
.agency-cta .ac-icon{font-size:2rem;line-height:1;flex-shrink:0;}
.agency-cta .ac-body{flex:1;min-width:200px;}
.agency-cta .ac-eyebrow{font-size:0.66rem;text-transform:uppercase;letter-spacing:1.4px;color:var(--accent);font-weight:800;margin-bottom:6px;}
.agency-cta .ac-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.1rem;font-weight:800;color:var(--ink);margin-bottom:6px;letter-spacing:-0.3px;}
.agency-cta .ac-desc{font-size:0.86rem;color:var(--light);line-height:1.55;margin-bottom:12px;}
.agency-cta .ac-btn{background:var(--ink);color:#fff;border:none;border-radius:10px;padding:11px 20px;font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:0.85rem;cursor:pointer;transition:background 0.2s;}
.agency-cta .ac-btn:hover{background:var(--accent);}

/* ── STATE EXPANSION CAPTURE (v94 — reviewer #33) ─────────────────────── */
.state-capture{background:linear-gradient(180deg,#fffbe8,#fff7d6);border-top:1px solid #ecdf9c;border-bottom:1px solid #ecdf9c;padding:32px 24px;}
.sc-inner{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:center;}
.sc-left .sc-eyebrow{font-size:0.7rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent);font-weight:800;margin-bottom:6px;}
.sc-left .sc-title{font-family:'Bricolage Grotesque','Syne',sans-serif;font-size:1.4rem;font-weight:800;letter-spacing:-0.02em;color:var(--ink);margin-bottom:4px;}
.sc-left .sc-sub{font-size:0.92rem;color:var(--gray);}
.sc-form{display:grid;grid-template-columns:1fr 80px auto;gap:8px;align-items:center;}
.sc-form input{background:white;border:1.5px solid #d9d5c8;border-radius:8px;padding:11px 12px;font-family:inherit;font-size:0.92rem;outline:none;}
.sc-form input:focus{border-color:var(--accent);}
.sc-form button{background:var(--ink);color:#fff;border:none;border-radius:8px;padding:11px 18px;font-weight:700;font-size:0.92rem;cursor:pointer;}
.sc-form button:hover{background:#000;}
.sc-msg{grid-column:1/-1;font-size:0.86rem;color:var(--green);font-weight:600;min-height:1em;}
@media (max-width:768px){.sc-inner{grid-template-columns:1fr;gap:16px;}.sc-form{grid-template-columns:1fr;}.sc-form button{padding:13px;}}

/* ── FOOTER (v89 — reviewer ask) ──────────────────────────────────────── */
.ct-footer{background:#15151a;color:#bcb9af;padding:48px 24px 32px;margin-top:60px;font-family:'Inter','Epilogue',-apple-system,sans-serif;}
.ct-footer-inner{max-width:1100px;margin:0 auto;}
.ct-footer-brand{margin-bottom:32px;max-width:520px;}
.ct-footer-logo{font-family:'Bricolage Grotesque','Syne',sans-serif;font-weight:800;font-size:1.4rem;color:#fafaf7;letter-spacing:-0.5px;margin-bottom:8px;}
.ct-footer-tagline{font-size:0.92rem;color:#8a8a85;line-height:1.5;}
.ct-footer-cols{display:grid;grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));gap:32px;padding-bottom:28px;border-bottom:1px solid #2a2a2f;}
.ct-footer-col{display:flex;flex-direction:column;gap:8px;}
.ct-footer-h{font-size:0.72rem;text-transform:uppercase;letter-spacing:1.4px;color:#fafaf7;font-weight:700;margin-bottom:6px;}
.ct-footer-col a{color:#bcb9af;text-decoration:none;font-size:0.88rem;transition:color 0.15s;}
.ct-footer-col a:hover{color:#fafaf7;text-decoration:underline;text-underline-offset:3px;}
.ct-footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:24px;font-size:0.78rem;color:#7a7a75;}
.ct-footer-meta{color:#5a5a55;}
@media (max-width:600px){.ct-footer{padding:36px 20px 24px;}.ct-footer-cols{gap:24px;}.ct-footer-bottom{flex-direction:column;}}

/* ── Reach Out / contact card heights — min-height so cards w/ email contacts ≈ cards without (reviewer) ── */
.contact-card,.dept-card,.complaint-card,.reach-out-card,#complaint .agency-cta{min-height:230px;display:flex;flex-direction:column;}
.contact-card > *:last-child{margin-top:auto;}

