:root{
  --np-bg:#faf9f7;--np-surface:#ffffff;--np-border:#e8e4dd;--np-text:#16181d;--np-muted:#70757f;
  --np-accent:#e63946;--np-dark:#101418;--np-container:1320px;--np-radius:10px;
  --np-font-heading:'Archivo',sans-serif;--np-font-body:'Source Serif 4',serif;
}
[data-mode="dark"]{
  --np-bg:#0d1014;--np-surface:#161a20;--np-border:#242a33;--np-text:#e8eaed;--np-muted:#8a93a0;
}
*{box-sizing:border-box}
::selection{background:var(--np-accent);color:#fff}
body{background:var(--np-bg);color:var(--np-text);font-family:var(--np-font-body);margin:0;font-size:1rem;line-height:1.65;transition:background-color .2s}
h1,h2,h3,h4,h5,.np-logo,.np-menu,.np-card-title,.np-widget-title,.np-section-title{font-family:var(--np-font-heading)}
a{color:inherit;text-decoration:none;transition:color .15s}
a:hover{color:var(--np-accent)}
img{max-width:100%}
.np-container{max-width:var(--np-container);margin:0 auto;padding:0 20px}
.np-main-content{min-height:60vh;padding-top:28px;padding-bottom:56px}

/* progress bar */
.np-progress{position:fixed;top:0;left:0;height:3px;background:var(--np-accent);width:0;z-index:2000;transition:width .1s linear}

/* header */
.np-header{background:var(--np-surface);border-bottom:1px solid var(--np-border);position:sticky;top:0;z-index:1500}
.np-header-top{display:flex;align-items:center;gap:28px;padding:16px 0}
.np-logo{font-weight:900;font-size:1.6rem;letter-spacing:-1px;white-space:nowrap}
.np-logo span{color:var(--np-accent)}
.np-logo img{height:38px}
.np-menu{display:flex;gap:4px;flex:1}
.np-menu-item-wrap{position:relative}
.np-menu-item-wrap>a{display:flex;align-items:center;gap:6px;padding:8px 14px;font-weight:600;font-size:.9rem;border-radius:8px;transition:background-color .15s,color .15s}
.np-menu-item-wrap>a:hover{background:var(--np-bg);color:var(--np-accent)}
.np-badge{background:var(--np-accent);color:#fff;font-size:.6rem;padding:2px 6px;border-radius:20px;font-weight:700}
.np-dropdown{position:absolute;top:100%;left:0;background:var(--np-surface);border:1px solid var(--np-border);border-radius:10px;min-width:190px;padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s;box-shadow:0 12px 32px rgba(0,0,0,.12);z-index:100}
.np-menu-item-wrap:hover .np-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.np-dropdown a{display:block;padding:8px 12px;border-radius:6px;font-size:.88rem;font-weight:500}
.np-dropdown a:hover{background:var(--np-bg);color:var(--np-accent)}
.np-header-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.np-search{display:flex;align-items:center;background:var(--np-bg);border:1px solid var(--np-border);border-radius:24px;overflow:hidden}
.np-search input{border:0;background:transparent;padding:8px 4px 8px 16px;width:150px;color:var(--np-text);outline:none;font-size:.85rem;font-family:var(--np-font-heading)}
.np-search button{border:0;background:transparent;color:var(--np-muted);padding:8px 14px;cursor:pointer}
.np-search button:hover{color:var(--np-accent)}
.np-mode-toggle{background:transparent;border:1px solid var(--np-border);color:var(--np-text);width:38px;height:38px;border-radius:50%;cursor:pointer;transition:color .15s,border-color .15s;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;flex:0 0 auto}
.np-mode-toggle:hover{color:var(--np-accent);border-color:var(--np-accent)}
/* Mobile app-style navigation (bottom nav + drawer + search overlay) */
.np-mobile-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:opacity .2s ease;z-index:2050}
.np-mobile-overlay.open{opacity:1;visibility:visible}

.np-mobile-menu{position:fixed;left:0;right:0;bottom:0;max-height:75vh;background:var(--np-surface);border-radius:16px 16px 0 0;box-shadow:0 -10px 34px rgba(0,0,0,.18);transform:translateY(105%);transition:transform .28s cubic-bezier(.22,.9,.32,1);z-index:2100;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom,0)}
.np-mobile-menu.open{transform:translateY(0)}
.np-mobile-menu-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--np-border);font-family:var(--np-font-heading);font-weight:800;font-size:1.05rem;flex:0 0 auto}
.np-mobile-menu-head button{background:var(--np-bg);border:0;width:32px;height:32px;border-radius:50%;color:var(--np-text);cursor:pointer}
.np-mobile-menu-body{overflow-y:auto;padding:8px 20px 20px}
.np-mobile-menu-body a{display:flex;align-items:center;gap:10px;padding:12px 0;font-weight:600;font-family:var(--np-font-heading);border-bottom:1px solid var(--np-border);color:var(--np-text);text-decoration:none}
.np-mobile-menu-body a i{width:18px;text-align:center;color:var(--np-accent)}

.np-mobile-search{position:fixed;top:0;left:0;right:0;background:var(--np-surface);padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top,0));z-index:2200;transform:translateY(-105%);transition:transform .22s ease;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.np-mobile-search.open{transform:translateY(0)}
.np-mobile-search-form{display:flex;align-items:center;gap:8px;background:var(--np-bg);border:1px solid var(--np-border);border-radius:24px;padding:4px 6px 4px 16px}
.np-mobile-search-form input{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:.95rem;color:var(--np-text);font-family:var(--np-font-heading);padding:8px 0}
.np-mobile-search-form button{border:0;background:transparent;color:var(--np-muted);width:38px;height:38px;flex:0 0 auto;border-radius:50%;cursor:pointer}
.np-mobile-search-form button[type=submit]{background:var(--np-accent);color:#fff}

.np-bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:1600;display:flex;background:var(--np-surface);border-top:1px solid var(--np-border);box-shadow:0 -2px 14px rgba(0,0,0,.07);padding-bottom:env(safe-area-inset-bottom,0)}
.np-bn-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:9px 4px 8px;background:transparent;border:0;color:var(--np-muted);text-decoration:none;font-size:.65rem;font-weight:600;font-family:var(--np-font-heading);position:relative;min-height:54px}
.np-bn-item i{font-size:1.1rem;line-height:1}
.np-bn-item.active,.np-bn-item.open{color:var(--np-accent)}
.np-bn-badge{position:absolute;top:5px;right:calc(50% - 19px);min-width:15px;height:15px;padding:0 3px;background:var(--np-accent);color:#fff;border-radius:8px;font-size:.6rem;line-height:15px;text-align:center;font-weight:700}
@media (max-width:991px){
  body{padding-bottom:64px}
}

/* breaking */
.np-breaking{background:var(--np-dark);color:#fff;overflow:hidden}
.np-breaking-inner{display:flex;align-items:center;gap:16px;padding:9px 20px}
.np-breaking-label{background:var(--np-accent);font-family:var(--np-font-heading);font-weight:800;font-size:.7rem;letter-spacing:1.5px;padding:4px 10px;border-radius:4px;white-space:nowrap;animation:np-pulse 2s infinite}
@keyframes np-pulse{0%,100%{opacity:1}50%{opacity:.65}}
.np-ticker{overflow:hidden;flex:1}
.np-ticker-track{display:flex;gap:48px;white-space:nowrap;animation:np-scroll 30s linear infinite}
.np-ticker-track a{color:#e8eaed;font-size:.85rem;font-family:var(--np-font-heading)}
.np-ticker-track a:hover{color:var(--np-accent)}
@keyframes np-scroll{from{transform:translateX(100%)}to{transform:translateX(-100%)}}

/* hero */
.np-hero{margin-bottom:40px}
.np-hero-main,.np-hero-small{position:relative;display:block;border-radius:var(--np-radius);overflow:hidden;background:var(--np-dark)}
.np-hero-main{height:460px}
.np-hero-small{aspect-ratio:16/10}
.np-hero-main img,.np-hero-small img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease,opacity .3s}
.np-hero-main:hover img,.np-hero-small:hover img{transform:scale(1.04);opacity:.85}
.np-hero-overlay{position:absolute;inset:auto 0 0 0;padding:26px;background:linear-gradient(transparent,rgba(6,8,10,.92));color:#fff}
.np-hero-small .np-hero-overlay{padding:16px}
.np-hero-overlay h2{font-size:1.7rem;font-weight:800;line-height:1.25;margin:10px 0 8px}
.np-hero-overlay h4{font-size:.95rem;font-weight:700;line-height:1.3;margin:0}
.np-hero-meta{font-size:.8rem;opacity:.75;font-family:var(--np-font-heading)}

/* sections */
.np-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;border-bottom:3px solid var(--np-text);padding-bottom:10px}
.np-section-title{font-size:1.25rem;font-weight:900;margin:0;display:flex;align-items:center;gap:10px}
.np-section-title i{color:var(--np-accent)}
.np-layout-tag{font-size:.7rem;color:var(--np-muted);font-family:var(--np-font-heading);text-transform:uppercase;letter-spacing:1px}
.np-trending{margin-bottom:40px}
.np-trending-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
.np-trend-item{display:flex;gap:14px;align-items:flex-start;background:var(--np-surface);border:1px solid var(--np-border);border-radius:var(--np-radius);padding:14px 16px;transition:transform .15s,border-color .15s}
.np-trend-item:hover{transform:translateY(-2px);border-color:var(--np-accent)}
.np-trend-num{font-family:var(--np-font-heading);font-weight:900;font-size:1.5rem;color:var(--np-accent);line-height:1}
.np-trend-title{font-family:var(--np-font-heading);font-weight:600;font-size:.88rem;line-height:1.35}

/* cards */
.np-cat{display:inline-block;font-family:var(--np-font-heading);font-size:.68rem;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--cat,#e63946);margin-bottom:6px}
.np-cat-solid{background:var(--cat,#e63946);color:#fff!important;padding:4px 10px;border-radius:4px;margin-right:6px}
.np-card{background:var(--np-surface);border:1px solid var(--np-border);border-radius:var(--np-radius);overflow:hidden;height:100%;transition:transform .18s ease,box-shadow .18s ease}
.np-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(0,0,0,.1)}
.np-card-img{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--np-border)}
.np-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.np-card:hover .np-card-img img{transform:scale(1.05)}
.np-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.2rem}
.np-play i{background:rgba(230,57,70,.9);width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.np-card-body{padding:18px}
.np-card-title{font-size:1.05rem;font-weight:700;line-height:1.35;margin:0 0 8px}
.np-card-compact .np-card-title{font-size:.9rem}
.np-card-excerpt{font-size:.86rem;color:var(--np-muted);margin:0 0 12px}
.np-card-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:.74rem;color:var(--np-muted);font-family:var(--np-font-heading)}
.np-card-rounded{border-radius:24px}
.np-card-rounded .np-card-img{aspect-ratio:1/1}
.np-card-masonry .np-card-img{aspect-ratio:auto}

/* classic layout */
.np-classic-item{display:grid;grid-template-columns:280px 1fr;gap:22px;background:var(--np-surface);border:1px solid var(--np-border);border-radius:var(--np-radius);overflow:hidden;margin-bottom:20px;transition:box-shadow .18s}
.np-classic-item:hover{box-shadow:0 10px 28px rgba(0,0,0,.08)}
.np-classic-img{display:block;height:100%;min-height:190px}
.np-classic-img img{width:100%;height:100%;object-fit:cover}
.np-classic-body{padding:20px 20px 20px 0}
.np-classic-body h3{font-size:1.25rem;font-weight:800;line-height:1.3}
.np-classic-body p{color:var(--np-muted);font-size:.9rem}

/* masonry */
.np-masonry{columns:3;column-gap:20px}
.np-masonry-item{break-inside:avoid;margin-bottom:20px}

/* large list */
.np-large-item{display:grid;grid-template-columns:380px 1fr;gap:26px;margin-bottom:32px;align-items:center}
.np-large-img{display:block;position:relative;border-radius:var(--np-radius);overflow:hidden;aspect-ratio:16/10}
.np-large-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.np-large-img:hover img{transform:scale(1.05)}
.np-large-img .np-cat-solid{position:absolute;top:12px;left:12px}
.np-large-body h3{font-size:1.45rem;font-weight:800;line-height:1.3}
.np-large-body p{color:var(--np-muted)}

/* timeline */
.np-timeline{position:relative;padding-left:34px}
.np-timeline:before{content:'';position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:var(--np-border)}
.np-timeline-item{position:relative;margin-bottom:30px}
.np-timeline-dot{position:absolute;left:-32px;top:6px;width:14px;height:14px;border-radius:50%;background:var(--np-accent);border:3px solid var(--np-surface)}
.np-timeline-date{font-family:var(--np-font-heading);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--np-muted);margin-bottom:6px}
.np-timeline-card{background:var(--np-surface);border:1px solid var(--np-border);border-radius:var(--np-radius);padding:20px}
.np-timeline-card h3{font-size:1.15rem;font-weight:800}
.np-timeline-card p{color:var(--np-muted);font-size:.9rem;margin-bottom:8px}

/* newspaper */
.np-newspaper{columns:3;column-gap:32px;column-rule:1px solid var(--np-border)}
.np-paper-item{break-inside:avoid;margin-bottom:26px;padding-bottom:22px;border-bottom:1px dotted var(--np-border)}
.np-paper-item img{border-radius:4px;margin-bottom:12px;filter:grayscale(35%)}
.np-paper-item:hover img{filter:grayscale(0)}
.np-paper-cat{font-family:var(--np-font-heading);font-size:.65rem;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--np-accent)}
.np-paper-item h3{font-size:1.1rem;font-weight:800;line-height:1.3;margin:6px 0}
.np-paper-lead h3{font-size:1.6rem}
.np-paper-item p{font-size:.88rem;color:var(--np-muted);margin:0 0 6px}
.np-paper-byline{font-size:.72rem;color:var(--np-muted);font-style:italic}

/* metro */
.np-metro{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:12px}
.np-metro-tile{position:relative;border-radius:6px;overflow:hidden;background:var(--np-dark)}
.np-metro-big{grid-column:span 2;grid-row:span 2}
.np-metro-tile img{width:100%;height:100%;object-fit:cover;transition:transform .3s,opacity .3s}
.np-metro-tile:hover img{transform:scale(1.06);opacity:.8}
.np-metro-overlay{position:absolute;inset:auto 0 0 0;padding:16px;background:linear-gradient(transparent,rgba(6,8,10,.9));color:#fff}
.np-metro-overlay h3{font-size:.9rem;font-weight:700;margin:6px 0 0;line-height:1.3}
.np-metro-big .np-metro-overlay h3{font-size:1.3rem}

/* netflix */
.np-netflix-row{margin-bottom:34px}
.np-netflix-title{font-family:var(--np-font-heading);font-weight:900;font-size:1.15rem;margin-bottom:12px}
.np-netflix-scroll{display:flex;gap:14px;overflow-x:auto;padding-bottom:10px;scrollbar-width:thin}
.np-netflix-card{position:relative;flex:0 0 260px;height:160px;border-radius:8px;overflow:hidden;background:var(--np-dark);transition:transform .2s}
.np-netflix-card:hover{transform:scale(1.05);z-index:2}
.np-netflix-card img{width:100%;height:100%;object-fit:cover}
.np-netflix-overlay{position:absolute;inset:auto 0 0 0;padding:12px;background:linear-gradient(transparent,rgba(6,8,10,.95));color:#fff}
.np-netflix-overlay h4{font-size:.85rem;font-weight:700;margin:0;line-height:1.3}
.np-netflix-overlay span{font-size:.7rem;opacity:.7}

/* minimal */
.np-minimal-item{padding:26px 0;border-bottom:1px solid var(--np-border)}
.np-minimal-meta{font-family:var(--np-font-heading);font-size:.72rem;text-transform:uppercase;letter-spacing:2px;color:var(--np-muted);margin-bottom:8px}
.np-minimal-item h3{font-size:1.5rem;font-weight:800;line-height:1.3;margin:0 0 8px}
.np-minimal-item p{color:var(--np-muted);margin:0}

/* widgets */
.np-widget{background:var(--np-surface);border:1px solid var(--np-border);border-radius:var(--np-radius);padding:22px;margin-bottom:22px}
.np-widget-title{font-weight:900;font-size:1rem;margin-bottom:16px;padding-bottom:10px;border-bottom:3px solid var(--np-accent);display:inline-block}
.np-widget-row{display:flex;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--np-border)}
.np-widget-row:last-child{border-bottom:0}
.np-widget-row img{width:72px;height:52px;object-fit:cover;border-radius:6px;flex-shrink:0}
.np-widget-num{font-family:var(--np-font-heading);font-weight:900;font-size:1.3rem;color:var(--np-border);-webkit-text-stroke:1px var(--np-muted);min-width:26px}
.np-widget-row-title{font-family:var(--np-font-heading);font-weight:600;font-size:.84rem;line-height:1.35}
.np-widget-row-meta{font-size:.72rem;color:var(--np-muted)}
.np-widget-cat{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--np-border);font-family:var(--np-font-heading);font-weight:600;font-size:.88rem}
.np-widget-cat:last-child{border-bottom:0}
.np-count{background:var(--np-bg);border:1px solid var(--np-border);border-radius:20px;font-size:.7rem;padding:2px 9px;color:var(--np-muted)}

/* single */
.np-single{background:var(--np-surface);border:1px solid var(--np-border);border-radius:var(--np-radius);padding:36px}
.np-breadcrumbs{font-family:var(--np-font-heading);font-size:.78rem;color:var(--np-muted);margin-bottom:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.np-single-title{font-size:2.3rem;font-weight:900;line-height:1.18;letter-spacing:-.5px;margin:10px 0 12px}
.np-single-excerpt{font-size:1.12rem;color:var(--np-muted);font-style:italic}
.np-single-byline{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-top:1px solid var(--np-border);border-bottom:1px solid var(--np-border);margin:18px 0 22px;flex-wrap:wrap;gap:10px}
.np-byline-author{display:flex;gap:12px;align-items:center;font-family:var(--np-font-heading)}
.np-byline-author small{color:var(--np-muted)}
.np-avatar-lg{width:44px;height:44px;border-radius:50%;background:var(--np-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-family:var(--np-font-heading);overflow:hidden;flex-shrink:0}
.np-avatar-lg img{width:100%;height:100%;object-fit:cover}
.np-avatar-xl{width:90px;height:90px;border-radius:50%;background:var(--np-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:900;font-size:2rem;font-family:var(--np-font-heading);overflow:hidden;flex-shrink:0}
.np-avatar-xl img{width:100%;height:100%;object-fit:cover}
.np-single-tools{display:flex;gap:8px}
.np-tool-btn{background:transparent;border:1px solid var(--np-border);color:var(--np-muted);width:38px;height:38px;border-radius:8px;cursor:pointer;transition:color .15s,border-color .15s}
.np-tool-btn:hover,.np-tool-btn.active{color:var(--np-accent);border-color:var(--np-accent)}
.np-single-img{margin:0 0 24px}
.np-single-img img{width:100%;border-radius:var(--np-radius)}
.np-video-embed{position:relative;aspect-ratio:16/9;margin-bottom:24px;border-radius:var(--np-radius);overflow:hidden;background:#000}
.np-video-embed iframe,.np-video-embed video{position:absolute;inset:0;width:100%;height:100%;border:0}
.np-single-content{font-size:1.08rem;line-height:1.85}
.np-single-content h2{font-weight:800;margin:32px 0 14px;font-size:1.5rem}
.np-single-content h3{font-weight:700;margin:26px 0 12px}
.np-single-content img{border-radius:var(--np-radius);margin:14px 0}
.np-single-content blockquote{border-left:4px solid var(--np-accent);margin:24px 0;padding:14px 22px;background:var(--np-bg);border-radius:0 var(--np-radius) var(--np-radius) 0;font-style:italic;font-size:1.15rem}
.np-single-content table{width:100%;border-collapse:collapse;margin:18px 0}
.np-single-content table td,.np-single-content table th{border:1px solid var(--np-border);padding:10px 14px}
.np-single-content pre,.np-single-content code{background:var(--np-dark);color:#e8eaed;border-radius:6px;padding:2px 8px;font-size:.9em}
.np-single-content pre{padding:18px;overflow-x:auto}
.np-single-tags{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0}
.np-single-tags a{background:var(--np-bg);border:1px solid var(--np-border);padding:5px 14px;border-radius:20px;font-family:var(--np-font-heading);font-size:.78rem;font-weight:600;transition:background-color .15s,color .15s,border-color .15s}
.np-single-tags a:hover{background:var(--np-accent);border-color:var(--np-accent);color:#fff}
.np-reactions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:18px;background:var(--np-bg);border-radius:var(--np-radius);margin-bottom:20px}
.np-reactions-label{font-family:var(--np-font-heading);font-weight:700;font-size:.88rem;margin-right:6px}
.np-react-btn{background:var(--np-surface);border:1px solid var(--np-border);border-radius:24px;padding:7px 18px;cursor:pointer;font-size:.9rem;color:var(--np-text);transition:transform .12s,border-color .15s}
.np-react-btn:hover{transform:scale(1.08);border-color:var(--np-accent)}
.np-share{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-family:var(--np-font-heading);font-weight:700;font-size:.88rem}
.np-share-btn{width:38px;height:38px;border-radius:50%;background:var(--sh,#333);color:#fff!important;display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;font-size:.85rem;transition:transform .15s,opacity .15s}
.np-share-btn:hover{transform:translateY(-3px);opacity:.85}
.np-related{margin-top:34px}

/* comments */
.np-comments{margin-top:38px;border-top:1px solid var(--np-border);padding-top:28px}
.np-comment{display:flex;gap:14px;margin-bottom:20px}
.np-comment-body{flex:1}
.np-comment-head{font-family:var(--np-font-heading);margin-bottom:4px}
.np-comment-head small{color:var(--np-muted);margin-left:8px}
.np-comment-body p{margin:0 0 6px;font-size:.95rem}
.np-comment-reply{margin-top:14px;padding-top:14px;border-top:1px dashed var(--np-border)}
.np-reply-btn{background:none;border:0;color:var(--np-accent);font-family:var(--np-font-heading);font-size:.78rem;font-weight:700;cursor:pointer;padding:0}
.np-no-comments{color:var(--np-muted);font-style:italic}
.np-comment-form{margin-top:22px}
.np-input{width:100%;background:var(--np-bg);border:1px solid var(--np-border);border-radius:8px;padding:11px 14px;color:var(--np-text);font-family:var(--np-font-heading);font-size:.9rem;outline:none;transition:border-color .15s}
.np-input:focus{border-color:var(--np-accent)}
.np-btn{background:var(--np-accent);color:#fff;border:0;border-radius:8px;padding:10px 24px;font-family:var(--np-font-heading);font-weight:700;font-size:.88rem;cursor:pointer;display:inline-block;transition:background-color .15s,transform .12s}
.np-btn:hover{background:#c92c39;color:#fff;transform:translateY(-1px)}

/* archive & author */
.np-archive-head{border-left:6px solid var(--cat,var(--np-accent));padding:8px 0 8px 22px;margin-bottom:32px}
.np-archive-head h1{font-weight:900;font-size:2.2rem;letter-spacing:-.5px;margin:0}
.np-archive-head p{color:var(--np-muted);margin:6px 0 0}

/* Categories page: image tile is auto-derived from the category's most recent
   post, so no manual upload is needed. aspect-ratio keeps every tile the same
   shape at any column width, from 2-up on phones to 4-up on desktop. */
.np-cat-tile{position:relative;display:block;aspect-ratio:4/3;border-radius:14px;overflow:hidden;text-decoration:none;background:var(--np-border)}
.np-cat-tile-img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .35s ease}
.np-cat-tile:hover .np-cat-tile-img{transform:scale(1.06)}
.np-cat-tile-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:14px;color:#fff;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.78) 100%)}
.np-cat-tile-overlay i{font-size:1.05rem;margin-bottom:6px;color:var(--cat-color,#fff)}
.np-cat-tile-name{font-family:var(--np-font-heading);font-weight:800;font-size:1rem;line-height:1.25}
.np-cat-tile-count{font-size:.72rem;opacity:.85;margin-top:2px}
@media (max-width:575px){
  .np-cat-tile-name{font-size:.88rem}
  .np-cat-tile-overlay{padding:10px}
}
.np-archive-count{font-family:var(--np-font-heading);font-size:.78rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--np-muted);margin-top:6px}
.np-author-head{display:flex;gap:24px;align-items:flex-start;background:var(--np-surface);border:1px solid var(--np-border);border-radius:var(--np-radius);padding:32px;margin-bottom:32px}
.np-author-head h1{font-weight:900;font-size:1.8rem;margin:0}
.np-author-role{font-family:var(--np-font-heading);color:var(--np-muted);font-size:.85rem;margin:4px 0 10px}
.np-author-bio{color:var(--np-muted)}
.np-empty{text-align:center;padding:70px 20px}
.np-empty i{font-size:3rem;color:var(--np-muted);margin-bottom:14px}
.np-404-code{font-family:var(--np-font-heading);font-weight:900;font-size:6rem;line-height:1;color:var(--np-accent);letter-spacing:-4px}
.np-static-page{max-width:840px;margin:0 auto}

/* footer */
.np-footer{background:var(--np-dark);color:#aab3bf;padding:56px 0 0;font-family:var(--np-font-heading)}
.np-footer-brand{font-weight:900;font-size:1.5rem;color:#fff;letter-spacing:-.5px}
.np-footer-brand span{color:var(--np-accent)}
.np-footer-desc{font-size:.88rem;margin:10px 0 16px}
.np-footer-title{color:#fff;font-weight:800;font-size:.85rem;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:14px}
.np-footer-link{display:block;padding:5px 0;font-size:.88rem;color:#aab3bf}
.np-footer-link:hover{color:var(--np-accent)}
.np-social{display:flex;gap:10px}
.np-social a{width:36px;height:36px;border-radius:50%;border:1px solid #2a313b;display:inline-flex;align-items:center;justify-content:center;color:#aab3bf;font-size:.85rem;transition:background-color .15s,color .15s,border-color .15s}
.np-social a:hover{background:var(--np-accent);border-color:var(--np-accent);color:#fff}
.np-newsletter{display:flex;background:#1a2027;border:1px solid #2a313b;border-radius:8px;overflow:hidden}
.np-newsletter input{flex:1;background:transparent;border:0;padding:11px 14px;color:#fff;outline:none;font-size:.85rem}
.np-newsletter button{background:var(--np-accent);border:0;color:#fff;padding:0 18px;cursor:pointer}
.np-footer-bottom{border-top:1px solid #1e252d;margin-top:44px;padding:20px 0;font-size:.8rem;text-align:center}

/* ads */
.np-ad{text-align:center;margin:18px auto;max-width:var(--np-container);padding:0 20px}
.np-ad-sidebar{margin-bottom:22px;padding:0}

/* Banner slots: home_above_trending, home_after_feed, single_top, single_middle,
   single_bottom. Width is capped at 728px (IAB leaderboard) and stays fully
   fluid/responsive down to phone widths. Height is NOT force-clipped to 90px --
   a plain 728x90 image still renders at that exact ratio naturally (width:100%
   + height:auto preserves the image's own proportions), but a richer HTML ad
   (text, logo, button, etc.) is free to use the height it actually needs
   instead of being cropped. */
.np-ad-home_above_trending,
.np-ad-home_after_feed,
.np-ad-single_top,
.np-ad-single_middle,
.np-ad-single_bottom{
  width:100%;
  max-width:728px;
  min-height:90px;
  margin:20px auto;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.np-ad-home_above_trending>*,.np-ad-home_after_feed>*,.np-ad-single_top>*,.np-ad-single_middle>*,.np-ad-single_bottom>*{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.np-ad-home_above_trending img,.np-ad-home_after_feed img,.np-ad-single_top img,.np-ad-single_middle img,.np-ad-single_bottom img{
  width:100%;height:auto;display:block;border-radius:6px;
}
.np-ad-home_above_trending iframe,.np-ad-home_after_feed iframe,.np-ad-single_top iframe,.np-ad-single_middle iframe,.np-ad-single_bottom iframe{
  width:100%!important;min-height:90px;border:0;
}


/* sticky sidebar ad: sticks below the sticky site header while scrolling through
   the main column, and stops naturally at the end of the sidebar (aside). */
.np-ad-sticky-wrap{position:sticky;top:96px;padding:0;margin-top:22px}
.np-ad-sticky-wrap:empty{display:none}
@media (max-width:991px){
  /* sidebar stacks under the main content below this breakpoint, so a
     scroll-tracking sticky ad no longer makes sense here */
  .np-ad-sticky-wrap{position:static;top:auto;margin-top:16px}
}

/* block sections */
.np-block-section{margin-bottom:40px}
.np-newsletter-block{background:var(--np-dark);border-radius:var(--np-radius);padding:44px;margin-bottom:40px;color:#fff}
.np-newsletter-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.np-newsletter-block h2{font-weight:900;font-size:1.6rem;margin:0 0 6px}
.np-newsletter-block p{color:#aab3bf;margin:0;font-family:var(--np-font-heading)}
.np-newsletter-wide{min-width:320px;flex:0 1 420px}
.np-newsletter-wide button{font-family:var(--np-font-heading);font-weight:700;padding:0 22px;white-space:nowrap}

/* pagination */
.pagination .page-link{color:var(--np-text);background:var(--np-surface);border-color:var(--np-border);font-family:var(--np-font-heading);font-weight:600}
.pagination .active .page-link{background:var(--np-accent);border-color:var(--np-accent);color:#fff}

@media (max-width:991px){
  .np-hero-main{height:340px}
  .np-masonry,.np-newspaper{columns:2}
  .np-metro{grid-template-columns:repeat(2,1fr)}
  .np-classic-item,.np-large-item{grid-template-columns:1fr}
  .np-classic-body{padding:20px}
  .np-single{padding:24px}
  .np-single-title{font-size:1.7rem}
}
@media (max-width:575px){
  .np-masonry,.np-newspaper{columns:1}
  .np-search input{width:90px}
  .np-author-head{flex-direction:column}
}
@media print{
  .np-header,.np-footer,.np-breaking,.np-comments,.np-share,.np-reactions,aside,.np-ad,.np-related{display:none!important}
}

/* ---- v2.1: live search suggestions ---- */
.np-search { position: relative; }
.np-mobile-search-form { position: relative; }
.np-suggest { position: absolute; top: calc(100% + 8px); left: 0; right: 0; background: var(--np-surface, #fff); border: 1px solid rgba(0,0,0,.1); border-radius: 12px; box-shadow: 0 14px 40px rgba(0,0,0,.16); overflow: hidden; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .18s, transform .18s, visibility .18s; z-index: 300; }
.np-suggest.open { opacity: 1; visibility: visible; transform: none; }
.np-suggest a { display: block; padding: 11px 15px; color: inherit; text-decoration: none; font-size: .88rem; border-bottom: 1px solid rgba(0,0,0,.05); }
.np-suggest a:last-child { border-bottom: 0; }
.np-suggest a:hover { background: rgba(0,0,0,.05); }
.np-suggest a i { opacity: .45; margin-right: 6px; }
.np-suggest mark { background: transparent; color: var(--np-accent); font-weight: 700; padding: 0; }
html[data-mode="dark"] .np-suggest { background: #1a1f26; border-color: #2a313b; }
html[data-mode="dark"] .np-suggest a { border-color: #232a33; }
html[data-mode="dark"] .np-suggest a:hover { background: rgba(255,255,255,.06); }

/* ---- v2.1: reading zoom controls ---- */
.np-zoom-ctrl { display: inline-flex; align-items: center; gap: 2px; border: 1px solid rgba(0,0,0,.12); border-radius: 999px; padding: 2px; margin-right: 6px; }
html[data-mode="dark"] .np-zoom-ctrl { border-color: #2a313b; }
.np-zoom-ctrl .np-tool-btn { border: 0; }
.np-zoom-val { border: 0; background: transparent; font-size: .72rem; font-weight: 700; min-width: 44px; color: inherit; cursor: pointer; }
.np-zoom-val:hover { color: var(--np-accent); }

/* ---- v2.1: reaction active state ---- */
.np-react-btn { transition: transform .15s, border-color .15s, color .15s, background-color .15s; }
.np-react-btn.active { border-color: var(--np-accent); color: var(--np-accent); background: color-mix(in srgb, var(--np-accent) 10%, transparent); }
.np-react-btn.active .fa-regular { font-weight: 900; }

/* ---- v2.1: theme live preview bar ---- */
.np-preview-bar { position: fixed; bottom: 0; left: 0; right: 0; z-index: 4000; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px; background: #101418; color: #fff; padding: 12px 18px; box-shadow: 0 -6px 24px rgba(0,0,0,.3); font-size: .9rem; }
.np-preview-label i { color: #f5c518; }
.np-preview-activate { background: #1d9a6c; color: #fff; border: 0; border-radius: 999px; padding: 8px 18px; font-weight: 700; cursor: pointer; }
.np-preview-activate:hover { background: #17805a; }
.np-preview-exit { color: #ffb3ba; text-decoration: none; font-weight: 600; }
.np-preview-exit:hover { color: #fff; }

/* ---- v2.1: account pages ---- */
.ac-auth-wrap { display: flex; justify-content: center; padding: 56px 0 72px; }
.ac-auth-card { width: 100%; max-width: 430px; background: rgba(0,0,0,.02); border: 1px solid rgba(0,0,0,.09); border-radius: 18px; padding: 40px 36px; }
html[data-mode="dark"] .ac-auth-card { background: #1a1f26; border-color: #2a313b; }
.ac-auth-title { font-size: 1.6rem; font-weight: 800; margin-bottom: 6px; }
.ac-auth-sub { font-size: .9rem; opacity: .65; margin-bottom: 22px; }
.ac-label { display: block; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; opacity: .6; margin-bottom: 5px; }
.ac-auth-foot { text-align: center; margin-top: 20px; font-size: .88rem; opacity: .8; }
.ac-auth-foot a { color: var(--np-accent); font-weight: 700; text-decoration: none; }
.ac-msg-icon { font-size: 52px; margin-bottom: 16px; }
.ac-msg-success { color: #1d9a6c; }
.ac-msg-error { color: var(--np-accent); }
.ac-head { display: flex; align-items: center; gap: 18px; padding: 40px 0 22px; flex-wrap: wrap; }
.ac-avatar { width: 64px; height: 64px; font-size: 1.4rem; }
.ac-name { font-size: 1.6rem; font-weight: 800; margin: 0; }
.ac-meta { font-size: .85rem; opacity: .6; }
.ac-logout { margin-left: auto; }
.ac-tabs .nav-link { color: inherit; font-weight: 600; }
.ac-tabs .nav-link.active { color: var(--np-accent); background: transparent; border-bottom-color: transparent; }
.ac-comment { padding: 16px 0; border-bottom: 1px solid rgba(0,0,0,.08); }
html[data-mode="dark"] .ac-comment { border-color: #2a313b; }
.ac-comment-post { font-size: .85rem; opacity: .8; }
.ac-comment-post a { color: var(--np-accent); text-decoration: none; font-weight: 600; }
.ac-comment-text { margin: 6px 0 4px; }
.ac-comment-time { font-size: .78rem; opacity: .5; }

/* ---- v2.2: threaded comments ---- */
.np-comment-children { margin-top: 12px; padding-left: 14px; border-left: 2px solid rgba(0,0,0,.09); }
html[data-mode="dark"] .np-comment-children { border-color: #2a313b; }
.np-comment-actions { display: flex; gap: 14px; margin-top: 2px; }
.np-reply-btn, .np-report-btn { background: transparent; border: 0; padding: 0; font-size: .78rem; font-weight: 700; color: var(--np-accent); cursor: pointer; }
.np-report-btn { color: inherit; opacity: .45; }
.np-report-btn:hover { opacity: 1; color: var(--np-accent); }
.np-report-btn.reported { opacity: .6; cursor: default; color: inherit; }
.np-pinned-badge { display: inline-flex; align-items: center; gap: 4px; background: color-mix(in srgb, var(--np-accent) 12%, transparent); color: var(--np-accent); border-radius: 999px; padding: 2px 10px; font-size: .68rem; font-weight: 800; letter-spacing: .5px; margin: 0 6px; }
