@font-face {
font-family: 'Adelphe Fructidor';
src: url('https://laist-fonts.pages.dev/Adelphe-FructidorRegular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Adelphe Fructidor';
src: url('https://laist-fonts.pages.dev/Adelphe-FructidorSemiBold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Adelphe Fructidor';
src: url('https://laist-fonts.pages.dev/Adelphe-FructidorItalic.woff2') format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: 'Adelphe Fructidor';
src: url('https://laist-fonts.pages.dev/Adelphe-FructidorBoldItalic.woff2') format('woff2');
font-weight: 700;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: 'Lateral';
src: url('https://laist-fonts.pages.dev/Lateral-ExtendedBlack.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-stretch: expanded;
font-display: swap;
}
@font-face {
font-family: 'Lateral';
src: url('https://laist-fonts.pages.dev/Lateral-StandardBold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Lateral';
src: url('https://laist-fonts.pages.dev/Lateral-StandardRegular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Lateral';
src: url('https://laist-fonts.pages.dev/Adelphe-FructidorItalic.woff2') format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
}
html, body {
margin: 0px;
padding: 0px;
background-color: #FFFFFF;
font-family: 'Adelphe Fructidor', Times New Roman, serif!important;
font-weight: 400;
font-style: normal;
}
h1, h2, h3 {margin:0px;}
h1 {
font-family: Lateral, Arial, sans-serif!important; font-weight:900!important; font-stretch: expanded!important;
}
h2 {
font-family: Lateral, Helvetica, Arial, sans-serif!important;
font-weight: bold!important; font-size:31.25px!important; line-height:110%!important; letter-spacing: -0.625px!important;
Colors
Color format
Hex
Text colors
text/text-primary-black
Text content
}
h3 {
font-family: Lateral, Helvetica, Arial, sans-serif!important;
margin: 0px;
}
body, td, ul, li, p {
font-family: 'Adelphe Fructidor', Times New Roman, serif!important;
font-weight: 400;
font-style: normal;
line-height:1.75;
}
ul {padding:0px;}
li {list-style-position: outside; margin:10px 0px 20px 20px;}
h1 a, li a, h2 a {color:#141414!important; text-decoration:underline!important;}
.buttonstyles, button, .ie-frm-btn {
letter-spacing: .86px!important; font-family:Lateral, Arial, sans-serif!important;
}
.ie-b-label-box {font-family:Lateral; font-weight:400!important;}
ReadMsgBody {
width: 100%;
}
.ExternalClass {
width: 100%;
}
.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {
line-height: 100%;
}
body {
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
margin: 0 !important;
}
p {
margin: 1em 0;
}
table td {
border-collapse: collapse;
}
img {
outline: 0;
}
a img {
border: none;
}
@-ms-viewport {
width: device-width;
}
@media only screen and (max-width: 670px) {
.container {
width: 100% !important;
}
.footer {
width: auto !important;
margin-left: 0;
}
.mobile-hidden {
display: none !important;
}
.logo {
display: block !important;
padding: 0 !important;
}
img {
max-width: 100% !important;
height: auto !important;
max-height: auto !important;
}
.header img {
max-width: 100% !important;
height: auto !important;
max-height: auto !important;
}
.photo img {
width: 100% !important;
max-width: 100% !important;
height: auto !important;
}
.drop {
display: block !important;
width: 100% !important;
float: left;
clear: both;
}
.footerlogo {
display: block !important;
width: 100% !important;
padding-top: 15px;
float: left;
clear: both;
}
.nav4, .nav5, .nav6 {
display: none !important;
}
.tableBlock {
width: 100% !important;
}
.responsive-td {
width: 100% !important;
display: block !important;
padding: 0 !important;
}
.fluid, .fluid-centered {
width: 100% !important;
max-width: 100% !important;
height: auto !important;
margin-left: auto !important;
margin-right: auto !important;
}
.fluid-centered {
margin-left: auto !important;
margin-right: auto !important;
}
/* MOBILE GLOBAL STYLES - DO NOT CHANGE */
body, .tb_properties {
font-size: 15px !important;
line-height: 1.5 !important;
padding: 0px !important;
}
h2 {
font-size: 20px !important;
line-height: 1 !important;
}
h3 {
font-size: 12px !important;
line-height: 1 !important;
}
.mobile-hidden {
display: none !important;
}
.responsive-td {
width: 100% !important;
display: block !important;
padding: 0 !important;
}
/* END OF MOBILE GLOBAL STYLES - DO NOT CHANGE */
}
@media only screen and (max-width: 640px) {
.newslettercontainer {padding:10px!important; display:block!important; background-size:800px auto!important;}
.block {width:100%!important; display:block!important; padding:0px!important; text-align:left!important;}
table.divider {
width: 100% !important;
min-width: 100% !important;
max-width: 100% !important;
}
td.stroke {
width: 100% !important;
min-width: 100% !important;
max-width: 100% !important;
padding: 0 !important;
}
.container {
width: 100% !important;
display:block!important;
}
.mobile-hidden {
display: none !important;
}
.logo {
display: block !important;
padding: 0 !important;
}
.photo img {
width: 100% !important;
height: auto !important;
}
.nav5, .nav6 {
display: none !important;
}
.fluid, .fluid-centered {
width: 100% !important;
max-width: 100% !important;
height: auto !important;
margin-left: auto !important;
margin-right: auto !important;
}
.fluid-centered {
margin-left: auto !important;
margin-right: auto !important;
}
}
@media (prefers-color-scheme: dark) {
html, body {background-color:#1B1B1B!important;}.newslettercontainer {background-color:#1B1B1B!important;}
td, h1, h2, h3, span, div, p, a, li a, ul a {color:#F1F1F1!important;}
.buttonstyles {border:1px #f1f1f1 solid!important;}
.stroke {background-color:#9F9F9F!important;}
.footerstroke {border-top:1px #DDDDDD solid!important; border-bottom:1px #9F9F9F solid!important;}
.darkmodeimage {filter: invert(1) hue-rotate(180deg) !important;}
.hidedarkmode {
display: none!important;
}
.showdarkmode {
display: inline!important;
}
}
div.preheader
{ display: none !important; }
Here’s what you missed over the weekend.
@media only screen and (max-width: 670px) {
.membermessage, .memberbutton {width:100%!important; text-align:center!important; display:block!important; padding:5px 0px!important;}
.membership {width:100%!important; display:block!important; padding:7px 16px!important;}
We noticed you’re not an LAist member. We are 100% community funded now, so please help keep public media and local reporting strong by becoming a member.
DONATE NOW
VIEW ONLINE
Make It Make Sense
Election 2026
By Cato Hernández and Makenna Cramer
We’re baaack! Happy to see us yet? Election month is still going strong, but don’t worry, we’ve got you covered on what you might’ve missed over the weekend. Today we’ve got the lowdown on two L.A. City Council races and setbacks for all those props we voted on.
IN TODAY'S ISSUE...
🌴 L.A. CITY COUNCIL DISTRICT 3 Barri Worth Girvan makes a comeback to win the race
🌴 L.A. CITY COUNCIL DISTRICT 9 A nail-biter for the too-close-to-call candidates
🥑 CALIFORNIA STATE PROPOSITIONS All of these props have failed
🗳️ EVERYTHING ELSE What we’re still watching and what’s left to countIs there a race or ballot measure in your neighborhood that’s been catching your eye? Maybe because it shakes up the balance of power or brings about a big change in your city? We want to hear about it! We’ll be taking a look at some notable contests in Southern California’s smaller cities for an upcoming issue, and we want to know what you’re interested in including. You can
respond directly to this email to let us know.
🌴 L.A. CITY COUNCIL DISTRICT 3
Barri Worth Girvan makes a comeback to win the race
What happened: Barri Worth Girvan will soon represent the southwestern San Fernando Valley in City Hall. Worth Girvan, a Valley community advocate, was initially behind entrepreneur Tim Gaspar when polls closed. But she continued to pick up steam in the days following, eventually overtaking Gaspar by a 3-point margin.
Background: This was a race to replace incumbent Bob Blumenfield, who is terming out. The district includes Woodland Hills, Winnetka and Reseda, and voters here have historically sent centrist Democrats and Republicans to the city council on their behalf. She will be one of two new faces to the L.A. City Council, along with the winning candidate for District 9.
What the candidates had to say:
Worth Girvan claimed victory Friday, writing on social media that the voters of the West Valley have spoken and “I am deeply honored, humbled, and grateful to be your next representative on the Los Angeles City Council.”
Gaspar conceded the race this weekend, saying on social media that he wishes Worth Girvan the best of luck in taking on this responsibility. “This campaign may be ending, but my commitment to the Valley is not. This has always been my community, and I will continue fighting for safer neighborhoods, thriving small businesses, and practical solutions that serve all the people who live here.”
How she’ll handle the role: Worth Girvan has a background in various government offices, and she has said she would use the relationships she’s built in the city, county and state to better serve the district. On homelessness, she has said she would use the city’s anti-camping ordinance, 41.18
, in sensitive areas and would look for more involvement from the county to move unhoused people into shelter and permanent housing. She said in a statement Friday that she will bring “competence, transparency, follow-through, and ethical leadership to City Hall.”
🌴 L.A. CITY COUNCIL DISTRICT 9
A nail-biter for the too-close-to-call candidates
What’s happening: Jose Ugarte’s early strong lead over Estuardo Mazariegos has dwindled to just about 350 votes, putting this race in potential flipping territory. Both candidates are vying to replace termed-out incumbent Curren Price in South L.A.
Did you make an informed vote this election thanks to LAist? Support trusted election resources like this one. Take a moment today to make a donation to help power our nonprofit newsroom so that we can strengthen our in-depth election coverage and be ready for the next one.
🥑 CALIFORNIA STATE PROPOSITIONS
All of these props have failed
🥑 Prop. 41: This is one of the measures designed to kill the billionaire’s tax, but after consistently trailing since Election Day, it’s officially failed, with “no” votes at 54.6%. It would have required new special tax proposals to be reviewed by the state auditor, giving them an extra hurdle before making the ballot. It would also have banned new state taxes from being exempt from the
state’s spending limit.
🥑 Prop. 43: Tax proposals for you, and you, and YOU! This measure that would have made it harder to create and raise certain local taxes proposed by citizens is officially defeated. “No” stands at 57% as of this morning. That means the status quo stays — special local taxes proposed by local governments need to pass with a two-thirds vote but those proposed by citizens only need a simple majority.
🥑 Prop. 45: This proposal to limit environmental reviews for certain projects, such as housing and infrastructure, by cutting the time it takes to go through the state’s evaluation process has failed
(55.9%). The No on Prop 45 campaign claimed victory, saying in a statement that “Californians have sent a clear message to corporate developers, utilities and data center builders that they will not stand for a broad assault at the ballot box on state law protecting our air, water and natural resources.”
🗳️ EVERYTHING ELSE
👀 We’re still watching ... 👀
🍊 O.C. Supervisors Districts 4 and 5: No concessions came in over the weekend, so these races are still in play. In District 4, Buena Park mayor Connor Traut (51.3%) leads the race over O.C. school board member Tim Shaw (48.7%), while in District 5, incumbent Katrina Foley (52%) remains ahead of State Assembly member Diane Dixon (48%).
🏠 U.S. Congressional District 40: The race between two Republican sitting members of Congress continues on. Rep. Ken Calvert (53.8%) leads Rep. Young Kim (46.2%).
🥑 Prop. 4: The votes have steadily converged since election night and are now at a razor-thin margin, with “no” ahead by less than 1 percentage point. This race may flip, but if the “no” majority holds, the ban on state and certain local governments from using tax dollars to fund political campaigns will continue.
🥑 Prop. 5: California is looking like it’ll revamp how it replaces state officials being recalled. The lead has gradually ticked up (51.9%) in recent days in support of the measure put up by the state legislature. If it stays on track to pass, we’d no longer vote on a recall and a replacement in the same election, instead punting a successor to a separate ballot (and the recalled official could re-run!) or allowing the governor to appoint non-legislative positions.
🥑 Prop. 38: The proposition saw a slight dip in support (54.3%) but is still on its way to passing with a roughly 9-point margin. It would let the state borrow $8.4 billion in bonds for immunology research, but the proposal has been somewhat controversial. Opponents argue that half the money would be funneled to just one research group, while supporters say it could help develop treatments for cancer or heart disease, among others.
🥑 Props. 40 and 42: No, the billionaire’s tax measure is still not called (“no” is leading at 53.2%), nor is the measure designed to kill it and prevent future wealth taxes (“yes” leading at 52%).
🥑 State Assembly District 72: Democrat Chris Kluwe, a former NFL player, is up against Republican Gracey Van Der Mark, a councilmember and former mayor of Huntington Beach, in this super tight race to represent coastal O.C. communities. Kluwe, who got
arrested and said he was fired
from his coaching job last year for protesting against MAGA at a Huntington Beach City Council meeting, is a hair behind (49.6%).
🥑 State Senate District 36: Incumbent Republican Tony Strickland has been fighting for his life in returns in a tight race against Democrat Chris Duncan that’s separated by just around 5,000 votes. You may remember Strickland from his time on the Huntington Beach City Council, where he was outspoken against the state’s requirements for new housing in the city.
😰 IS IT OVER YET? 😰
These results are based on around 10.6 million votes that have been counted so far statewide — more than 3.1 million in L.A. County and more than 1 million in Orange County.
We’re in the home stretch — and if this feels faster than normal, well, it is! On the Monday after the June primary there were still half a million votes left to count across L.A. and Orange Counties. Right now, L.A. County estimates just 53,000 to go, and Orange County estimates about 168,000 left. Statewide, there are about 3 million ballots left to count.
Tomorrow, Nov. 10, is the deadline for mail-in ballots to arrive, but don’t expect things to wrap up too quickly. The counting will get slower this week as voters with mismatched signatures begin receiving notices to fix their signatures for their ballots to be counted. You can check on the status of your ballot via the state’s BallotTrax system.
The next local ballot counts drop tonight starting around 4 p.m., but we’ll only be back in your inboxes when there’s major news to share or we have deeper analysis.
— Cato and Makenna
📰 Catch up quick
Get caught up on our past issues here:
Nov. 7: A progressive becomes CA’s insurance head
Nov. 6: The L.A. city attorney race comes to a close
Nov. 5: Nithya Raman wins the L.A. mayor’s race
Nov. 5: All 8 L.A. city measures could pass
Nov. 4: We’ve got a new governor, plus voter ID fails
Otherwise, you can keep up with the results here:
L.A. County
Orange County
LAist is part of Southern California Public Radio, 474 South Raymond Avenue, Pasadena, CA, 91105, a member-supported public media network.
About Us
LAist Staff
Unsubscribe
Contact Us
Support Us
© 2026 Southern California Public Radio - All Rights Reserved
Terms of Use
Privacy Policy