More stories

  • in

    Is Kamala Harris’s Mom More ‘Brat’ Than She Is?

    Shyamala Gopalan created the context for the vice president’s “brat” energy.Young voters have been embracing Kamala Harris for her “brat” energy, invoking a trend popularized by the musician Charli XCX. But could Ms. Harris’s mom actually be more “brat” than she is? In the Opinion Video above, the journalist Angad Singh digs into this question by examining her Indian heritage to better understand the current momentum behind Ms. Harris’s campaign. Mr. Singh argues that this momentum “could easily fizzle if she doesn’t lay out policies that distinguish her from her predecessor, who was decidedly not ‘brat’ enough.”Angad Singh (@angadsingh) is a documentary filmmaker and a journalist. James Robinson is a producer with Opinion Video.Opinion Video combines original reporting with creative storytelling to produce visually transformative commentary. Pitch a video guest essay here.The Times is committed to publishing a diversity of letters to the editor. We’d like to hear what you think about this or any of our articles. Here are some tips. And here’s our email: letters@nytimes.com.Follow the New York Times Opinion section on Facebook, Instagram, TikTok, WhatsApp, X and Threads. More

  • in

    Meena Harris, Building That Brand

    @media (pointer: coarse) {
    .nytslm_outerContainer {
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch;
    }
    }

    .nytslm_outerContainer {
    display: flex;
    align-items: center;
    /* Fixes IE */
    overflow-x: auto;
    box-shadow: -6px 0 white, 6px 0 white, 1px 3px 6px rgba(0, 0, 0, 0.15);
    padding: 10px 1.25em 10px;
    transition: all 250ms;
    -ms-overflow-style: none;
    /* IE 10+ */
    scrollbar-width: none;
    /* Firefox */
    background: white;
    margin-bottom: 20px;
    z-index: 1000;
    }

    @media (min-width: 1024px) {
    .nytslm_outerContainer {
    margin-bottom: 0px;
    padding: 13px 1.25em 10px;
    }
    }

    .nytslm::-webkit-scrollbar {
    display: none;
    /* Safari and Chrome */
    }

    .nytslm_innerContainer {
    margin: unset;
    display: flex;
    align-items: center;
    }

    @media (min-width: 600px) {
    .nytslm_innerContainer {
    margin: auto;
    min-width: 600px;
    }
    }

    .nytslm_title {
    padding-right: 1em;
    border-right: 1px solid #ccc;
    }

    @media (min-width: 740px) {
    .nytslm_title {
    max-width: none;
    font-size: 1.0625rem;
    line-height: 1.25rem;
    }
    }

    .nytslm_spacer {
    width: 0;
    border-right: 1px solid #E2E2E2;
    height: 45px;
    margin: 0 1.4em;
    }

    .nytslm_list {
    font-family: nyt-franklin, helvetica, arial, sans-serif;
    display: flex;
    width: auto;
    list-style: none;
    padding-left: 1em;
    flex-shrink: 0;
    align-items: baseline;
    justify-content: center;
    }

    .nytslm_li {
    margin-right: 1.4em;
    flex-shrink: 0;
    font-size: 0.8125rem;
    line-height: 0.8125rem;
    font-weight: 600;
    padding: 1em 0;
    }

    #nytslm .nytslm_li a {
    color: #121212;
    text-decoration: none;
    }

    #nytslm .nytsmenu_li_current,
    #nytslm .nytslm_li a:hover,
    #nytslm .nytslm_li a:active,
    #nytslm .nytslm_li a:focus {
    color: #121212;
    border-bottom: 2px solid #121212;
    padding-bottom: 2px;
    }

    .nytslm_li_live_loud:after {
    content: ‘LIVE’
    }

    .nytslm_li_live_loud {
    background-color: #d0021b;
    color: white;
    border-radius: 3px;
    padding: 4px 6px 2px 6px;
    margin-right: 2px;
    display: inline-block;
    letter-spacing: 0.03rem;
    font-weight: 700;
    }

    .nytslm_li_upcoming_loud {
    border: 1px solid #d0021b;
    color: #d0021b;
    border-radius: 3px;
    padding: 4px 6px 2px 6px;
    margin-right: 2px;
    display: inline-block;
    letter-spacing: 0.03rem;
    font-weight: 700;
    }

    .nytslm_li_upcoming_loud:before {
    content: ‘Upcoming’
    }

    .nytslm_li_loud a:hover,
    .nytslm_li_loud a:active,
    .nytslm_li_loud a:focus {
    border-bottom: 2px solid;
    padding-bottom: 2px;
    }

    .nytslm_li_updated {
    color: #777;
    }

    #masthead-bar-one {
    display: none;
    }

    .electionNavbar__logoSvg {
    width: 80px;
    align-self: center;
    display: flex;
    }

    @media(min-width: 600px) {
    .electionNavbar__logoSvg {
    width: 100px;
    }
    }

    .nytslm_notification {
    border-left: 1px solid #ccc;
    font-family: nyt-franklin, helvetica, arial, sans-serif;
    padding-left: 1em;
    }

    .nytslm_notification_label {
    color: #D0021B;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 0.6875rem;
    margin-bottom: 0.2em;
    letter-spacing: 0.02em;
    }

    .nytslm_notification_link {
    font-weight: 600;
    color: #121212;
    display: flex;
    align-items: center;
    }

    .nytslm_notification_headline {
    font-size: 0.875rem;
    line-height: 1.0625rem;
    }

    .nytslm_notification_image_wrapper {
    position: relative;
    max-width: 75px;
    margin-left: 10px;
    flex-shrink: 0;
    }

    .nytslm_notification_image {
    max-width: 100%;
    }

    .nytslm_notification_image_live_bug {
    position: absolute;
    text-transform: uppercase;
    bottom: 7px;
    left: 2px;

    font-size: 0.5rem;
    background-color: #d0021b;
    color: white;
    border-radius: 3px;
    padding: 4px 4px 2px 4px;
    font-weight: 700;
    margin-right: 2px;
    letter-spacing: 0.03rem;
    }

    /* No hover state on in app */
    .Hybrid .nytslm_li a:hover,
    .Hybrid .nytslm_li_loud a:hover {
    border-bottom: none;
    padding-bottom: 0;
    }

    .Hybrid #TOP_BANNER_REGION {
    display: none;
    }

    .nytslm_st0 {
    fill: #f4564a;
    }

    .nytslm_st1 {
    fill: #ffffff;
    }

    .nytslm_st2 {
    fill: #2b8ad8;
    }

    Election Results: Biden Wins

    Electoral College Votes

    Congress Defies Mob

    Georgia Runoff Results

    Democrats Win Senate Control

    “),e+=””+b+””,e+=””,d&&(e+=””,e+=””,e+=”Live”,e+=””),e+=””,e}function getVariant(){var a=window.NYTD&&window.NYTD.Abra&&window.NYTD.Abra.getAbraSync&&window.NYTD.Abra.getAbraSync(“STYLN_elections_notifications”);// Only actually have control situation in prd and stg
    return[“www.nytimes.com”,”www.stg.nytimes.com”].includes(window.location.hostname)||(a=”STYLN_elections_notifications”),a||”0_control”}function reportData(){if(window.dataLayer){var a;try{a=dataLayer.find(function(a){return!!a.user}).user}catch(a){}var b={abtest:{test:”styln-elections-notifications”,variant:getVariant()},module:{name:”styln-elections-notifications”,label:getVariant(),region:”TOP_BANNER”},user:a};window.dataLayer.push(Object.assign({},b,{event:”ab-alloc”})),window.dataLayer.push(Object.assign({},b,{event:”ab-expose”})),window.dataLayer.push(Object.assign({},b,{event:”impression”}))}}function insertNotification(a,b){// Bail here if the user is in control
    if(reportData(),”0_control”!==getVariant()){// Remove menu bar items or previous notification
    var c=document.querySelector(“.nytslm_innerContainer”);if(c&&1 30 * 60 * 1000) return restoreMenuIfNecessary();
    // Do not update DOM if the content won’t change
    if(currentNotificationContents!==a.text&&window.localStorage.getItem(“stylnelecs”)!==a.timestamp)// Do not show if user has interacted with this link
    // if (Cookie.get(‘stylnelecs’) === data.timestamp) return;
    {expireLocalStorage(“stylnelecs”),currentNotificationContents=a.text;// Construct URL for tracking
    var b=a.link.split(“#”),c=b[0]+”?action=click&pgtype=Article&state=default&module=styln-elections-notifications&variant=1_election_notifications&region=TOP_BANNER&context=Menu#”+b[1],d=formatNotification(c,a.text,a.kicker,a.image);insertNotification(d,function(){var b=document.querySelector(“.nytslm_notification_link”);return b?void(b.onclick=function(){window.localStorage.setItem(“stylnelecs”,a.timestamp)}):null})}})}(function(){navigator.userAgent.includes(“nytios”)||navigator.userAgent.includes(“nyt_android”)||window.stylnelecsHasLoaded||(// setInterval(getUpdate, 5000);
    window.stylnelecsHasLoaded=!0)})(),function(){try{if(navigator.userAgent.includes(“nytios”)||navigator.userAgent.includes(“nyt_android”)){var a=document.getElementsByClassName(“nytslm_title”)[0];a.style.pointerEvents=”none”}}catch(a){}}(); More