/* ============================================================
   GeopoliticalMonitoring — Publikacion Analitik (Public + Report)
   Dizajn editorial serios: Foreign Affairs / Stratfor / ISW / CSIS
   ============================================================ */

:root{
    /* ---- Surfaces (warm intelligence paper) ---- */
    --bg:#faf7f0;               /* krem editorial i rafinuar */
    --bg-alt:#f0ebe0;
    --paper:#ffffff;            /* letër e pastër */
    --ink:#16202e;              /* deep ink-navy (graphite premium) */
    --ink-soft:#33414f;
    --muted:#6a7280;
    --rule:#dcd6c9;             /* rule / divider */
    --rule-soft:#e9e4d8;

    /* ---- Brand accents ---- */
    --primary:#9c1b1b;          /* signature crimson editorial */
    --primary-dark:#7a1414;
    --primary-soft:rgba(156,27,27,.08);
    --accent:#1e3a8a;           /* navy */
    --accent-soft:rgba(30,58,138,.10);
    --gold:#c9a961;             /* gold editorial */
    --gold-soft:rgba(201,169,97,.14);

    /* ---- Typography ---- */
    --serif: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, "PT Serif", Georgia, "Times New Roman", serif;
    --sans: "Helvetica Neue", Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

    --cw: 1200px;
    --rw: 720px;

    /* ---- Radii ---- */
    --r-sm: 4px;
    --r-md: 8px;
    --r-lg: 14px;

    /* ---- Elevation ---- */
    --shadow: 0 1px 2px rgba(20,30,45,.06);
    --shadow-md: 0 6px 18px -6px rgba(20,30,45,.16);
    --shadow-lg: 0 22px 48px -18px rgba(20,30,45,.30);
    --ring: 0 0 0 3px var(--primary-soft);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
    font-family:var(--sans);
    background:var(--bg);
    color:var(--ink);
    line-height:1.65;
    font-size:16px;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:2px}
button{font-family:inherit}

/* ---------- Layout ---------- */
.container{max-width:var(--cw);margin:0 auto;padding:0 24px}
.rule{height:1px;background:var(--rule);border:0;margin:0}
.rule-thick{height:3px;background:var(--ink);border:0;margin:0}

/* ---------- Top Utility Bar ---------- */
.utility-bar{
    background:var(--ink);
    color:#e5e1d6;
    font-family:var(--sans);
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    padding:7px 0;
}
.utility-bar .container{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.utility-bar a{color:#e5e1d6;opacity:.85}
.utility-bar a:hover{opacity:1;text-decoration:none;color:#fff}
.utility-bar .date{font-variant-numeric:tabular-nums}
.utility-bar .divider{color:#6b6355;margin:0 8px}

/* ---------- Masthead ---------- */
.masthead{
    background:var(--paper);
    border-bottom:3px double var(--ink);
    padding:28px 0 22px;
    text-align:center;
}
.masthead-top{
    display:flex;justify-content:space-between;align-items:center;gap:24px;
    padding-bottom:18px;border-bottom:1px solid var(--rule);margin-bottom:18px;
    font-family:var(--sans);font-size:11px;letter-spacing:.15em;text-transform:uppercase;
    color:var(--muted);
}
.masthead-top .edition{font-variant-numeric:tabular-nums}
.masthead-top .login-link{
    color:var(--paper);font-weight:700;background:var(--ink);border:1px solid var(--ink);
    padding:7px 16px;border-radius:var(--r-sm);text-decoration:none;
    transition:background .15s, transform .15s, box-shadow .15s;
}
.masthead-top .login-link:hover{background:var(--primary);border-color:var(--primary);color:#fff;text-decoration:none;box-shadow:var(--shadow-md);transform:translateY(-1px)}
.masthead-title{
    font-family:var(--serif);
    font-weight:800;
    font-size:clamp(38px, 6vw, 64px);
    letter-spacing:-.01em;
    line-height:1;
    color:var(--ink);
    margin-bottom:8px;
}
.masthead-title .amp{color:var(--primary);font-style:italic;font-weight:600}
.masthead-motto{
    font-family:var(--serif);font-style:italic;color:var(--muted);font-size:14px;
    margin-bottom:4px;
}

/* ---------- Main Navigation ---------- */
.mainnav{
    background:color-mix(in srgb, var(--paper) 86%, transparent);
    -webkit-backdrop-filter:saturate(1.4) blur(8px);
    backdrop-filter:saturate(1.4) blur(8px);
    border-bottom:1px solid var(--rule);
    box-shadow:0 1px 0 var(--rule);
    position:sticky;top:0;z-index:40;
}
.mainnav .container{
    display:flex;justify-content:center;align-items:center;gap:4px;
    flex-wrap:wrap;padding-top:10px;padding-bottom:10px;
}
.mainnav a{
    font-family:var(--sans);
    font-size:12px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--ink);
    padding:8px 14px;
    font-weight:600;
    border-bottom:2px solid transparent;
    transition:border-color .15s, color .15s;
}
.mainnav a:hover{text-decoration:none;border-bottom-color:var(--primary);color:var(--primary)}
.mainnav a.active{border-bottom-color:var(--primary);color:var(--primary)}

/* ---------- Hero Lead ---------- */
.hero-lead{padding:36px 0 28px;border-bottom:1px solid var(--rule)}
.hero-grid{
    display:grid;
    grid-template-columns: 1.6fr 1fr;
    gap:36px;
    align-items:start;
}
.hero-main .kicker{
    font-family:var(--sans);
    font-size:11px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--primary);font-weight:700;margin-bottom:10px;
}
.hero-main h1.hero-title{
    font-family:var(--serif);
    font-weight:800;
    font-size:clamp(30px, 3.8vw, 46px);
    line-height:1.08;
    letter-spacing:-.01em;
    color:var(--ink);
    margin-bottom:14px;
}
.hero-main h1.hero-title a{color:inherit}
.hero-main h1.hero-title a:hover{color:var(--primary);text-decoration:none}
.hero-main .standfirst{
    font-family:var(--serif);
    font-size:18px;line-height:1.55;color:var(--ink-soft);
    margin-bottom:16px;
}
.hero-main .byline{
    font-family:var(--sans);
    font-size:12px;letter-spacing:.06em;color:var(--muted);
    text-transform:uppercase;
}
.hero-main .byline strong{color:var(--ink);font-weight:700}

.hero-side{border-left:1px solid var(--rule);padding-left:28px}
.hero-side h3{
    font-family:var(--sans);
    font-size:11px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--ink);font-weight:700;
    padding-bottom:8px;border-bottom:2px solid var(--ink);margin-bottom:14px;
}
.hero-side ol{list-style:none;counter-reset:hl}
.hero-side ol li{
    counter-increment:hl;
    padding:10px 0;border-bottom:1px solid var(--rule-soft);
    display:grid;grid-template-columns:28px 1fr;gap:10px;
}
.hero-side ol li::before{
    content:counter(hl, decimal-leading-zero);
    font-family:var(--serif);font-weight:700;color:var(--primary);
    font-size:18px;line-height:1.2;
}
.hero-side ol li a{
    font-family:var(--serif);color:var(--ink);font-weight:600;font-size:15px;
    line-height:1.3;
}
.hero-side ol li a:hover{color:var(--primary);text-decoration:none}
.hero-side ol li .lmeta{
    display:block;font-family:var(--sans);font-size:11px;color:var(--muted);
    text-transform:uppercase;letter-spacing:.08em;margin-top:3px;
}

/* ---------- Filter Bar ---------- */
.filter-bar{
    padding:22px 0;border-bottom:1px solid var(--rule);
    background:var(--bg-alt);
}
.filter-form{
    display:flex;flex-wrap:wrap;gap:10px;align-items:center;
    font-family:var(--sans);
}
.filter-form .search-input{
    flex:1;min-width:220px;
    background:var(--paper);border:1px solid var(--rule);
    padding:11px 14px;font-size:14px;color:var(--ink);
    font-family:inherit;border-radius:var(--r-sm);
    transition:border-color .15s, box-shadow .15s;
}
.filter-form .search-input:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}
.filter-form select{
    background:var(--paper);border:1px solid var(--rule);
    padding:11px 14px;font-size:13px;color:var(--ink);
    font-family:inherit;border-radius:var(--r-sm);cursor:pointer;
    text-transform:uppercase;letter-spacing:.05em;font-weight:600;
    transition:border-color .15s, box-shadow .15s;
}
.filter-form select:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}
.filter-form button{
    background:var(--ink);color:var(--paper);border:0;
    padding:11px 24px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
    font-weight:700;cursor:pointer;border-radius:var(--r-sm);
    transition:background .15s, box-shadow .15s, transform .15s;
}
.filter-form button:hover{background:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.filter-form .reset{
    color:var(--muted);font-size:12px;padding:10px;
    text-transform:uppercase;letter-spacing:.08em;
}

.chips-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.chip-link{
    display:inline-block;font-family:var(--sans);font-size:11px;font-weight:600;
    letter-spacing:.08em;text-transform:uppercase;
    padding:5px 12px;border:1px solid var(--rule);background:var(--paper);
    color:var(--ink-soft);border-radius:999px;
    transition:all .15s;
}
.chip-link:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);text-decoration:none}
.chip-link.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.chip-link .count{opacity:.7;margin-left:4px;font-variant-numeric:tabular-nums}

/* ---------- Section Headers ---------- */
.section{padding:44px 0}
.section-alt{background:var(--bg-alt)}
.section-head{
    display:flex;justify-content:space-between;align-items:baseline;
    gap:20px;margin-bottom:24px;padding-bottom:10px;
    border-bottom:2px solid var(--ink);flex-wrap:wrap;
}
.section-head h2{
    font-family:var(--serif);font-weight:800;
    font-size:28px;letter-spacing:-.01em;color:var(--ink);
}
.section-head h2 .accent{color:var(--primary)}
.section-head .meta{
    font-family:var(--sans);font-size:11px;
    letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
}

/* ---------- Content Grid (two col: reports + sidebar) ---------- */
.content-grid{
    display:grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap:44px;
}

/* ---------- Reports Grid ---------- */
.reports-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
    gap:28px 32px;
}
.report-card{
    display:flex;flex-direction:column;
    padding-bottom:22px;border-bottom:1px solid var(--rule);
    background:transparent;
}
.report-card .thumb{
    position:relative;
    aspect-ratio: 16 / 9;
    background:var(--ink);
    margin-bottom:14px;
    overflow:hidden;
    border:1px solid var(--rule);
    border-radius:var(--r-md);
    box-shadow:var(--shadow);
    transition:transform .2s ease, box-shadow .2s ease;
}
.report-card a.thumb:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.report-card .thumb .region-badge{
    position:absolute;top:10px;left:10px;
    background:var(--paper);color:var(--ink);
    font-family:var(--sans);font-size:10px;font-weight:700;
    letter-spacing:.12em;text-transform:uppercase;
    padding:4px 10px;border-radius:var(--r-sm);
    box-shadow:var(--shadow);
}
.report-card .thumb .threat-tag{
    position:absolute;bottom:10px;right:10px;
    font-family:var(--sans);font-size:10px;font-weight:700;
    letter-spacing:.1em;text-transform:uppercase;
    padding:4px 10px;color:#fff;border-radius:var(--r-sm);
}
.report-card .kicker{
    font-family:var(--sans);
    font-size:11px;letter-spacing:.16em;text-transform:uppercase;
    color:var(--primary);font-weight:700;margin-bottom:8px;
}
.report-card .kicker.breaking{
    color:#fff;background:var(--primary);display:inline-block;
    padding:3px 8px;border-radius:var(--r-sm);
}
.report-card h3{
    font-family:var(--serif);font-weight:700;
    font-size:20px;line-height:1.25;
    margin-bottom:8px;
}
.report-card h3 a{color:var(--ink)}
.report-card h3 a:hover{color:var(--primary);text-decoration:none}
.report-card p.dek{
    font-family:var(--serif);font-size:15px;color:var(--ink-soft);
    line-height:1.5;margin-bottom:12px;
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.report-card .meta{
    font-family:var(--sans);font-size:11px;
    letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
    margin-top:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap;
}
.report-card .meta .dot{width:3px;height:3px;background:var(--muted);border-radius:50%;display:inline-block}

/* Thumb decorative pattern (no images) */
.thumb-pattern{
    position:absolute;inset:0;
    background:
        linear-gradient(135deg, rgba(139,0,0,.06) 0%, rgba(30,58,138,.10) 100%),
        repeating-linear-gradient(45deg, transparent 0 14px, rgba(0,0,0,.05) 14px 15px);
}
.thumb-country{
    position:absolute;inset:0;
    display:flex;align-items:center;justify-content:center;
    font-family:var(--serif);font-weight:800;
    color:rgba(245, 241, 234, .9);
    font-size:42px;letter-spacing:.12em;
    text-transform:uppercase;
}
.thumb.cat-military{background:linear-gradient(135deg,#3a2a1a,#1a1a1a)}
.thumb.cat-cyber{background:linear-gradient(135deg,#001a2e,#000814)}
.thumb.cat-economic{background:linear-gradient(135deg,#2a3a1e,#1a220f)}
.thumb.cat-political{background:linear-gradient(135deg,#2e1a2a,#1a0f1a)}
.thumb.cat-diplomatic{background:linear-gradient(135deg,#1a2a3a,#0f1a2e)}
.thumb.cat-humanitarian{background:linear-gradient(135deg,#3a2a1e,#2e1f12)}
.thumb.cat-terrorism{background:linear-gradient(135deg,#3a1010,#1a0606)}
.thumb.cat-infrastructure{background:linear-gradient(135deg,#2a2a2a,#0e0e0e)}
.thumb.cat-environmental{background:linear-gradient(135deg,#1e3a2a,#0f2e1a)}

/* ---------- Sidebar ---------- */
.sidebar{font-family:var(--sans)}
.sidebar-block{
    padding:22px;background:var(--paper);
    border:1px solid var(--rule);border-top:3px solid var(--ink);
    border-radius:var(--r-md);box-shadow:var(--shadow);
    margin-bottom:24px;
}
.sidebar-block h3{
    font-family:var(--sans);font-size:11px;
    letter-spacing:.18em;text-transform:uppercase;
    font-weight:800;color:var(--ink);
    padding-bottom:10px;border-bottom:1px solid var(--rule);margin-bottom:14px;
}
.sidebar-block h3 .dot{
    display:inline-block;width:8px;height:8px;background:var(--primary);
    border-radius:50%;margin-right:8px;
    animation:pulse 2s infinite;
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

.osint-list{display:flex;flex-direction:column;gap:14px}
.osint-item{padding-bottom:12px;border-bottom:1px solid var(--rule-soft)}
.osint-item:last-child{border-bottom:0;padding-bottom:0}
.osint-item .oi-source{
    font-size:10px;letter-spacing:.16em;text-transform:uppercase;
    color:var(--accent);font-weight:700;margin-bottom:4px;
}
.osint-item .oi-title{
    font-family:var(--serif);font-size:15px;line-height:1.35;color:var(--ink);
    font-weight:600;
}
.osint-item .oi-title a{color:inherit}
.osint-item .oi-title a:hover{color:var(--primary);text-decoration:none}
.osint-item .oi-meta{
    font-size:11px;color:var(--muted);margin-top:4px;
    letter-spacing:.04em;
}

/* Region stats */
.region-stats{list-style:none}
.region-stats li{
    display:flex;justify-content:space-between;align-items:center;
    padding:8px 0;border-bottom:1px solid var(--rule-soft);
    font-size:13px;
}
.region-stats li:last-child{border-bottom:0}
.region-stats .rname{color:var(--ink);font-weight:500}
.region-stats .rcount{
    font-variant-numeric:tabular-nums;color:var(--muted);
    font-size:12px;font-weight:700;
}
.region-stats .bar{
    display:block;height:2px;background:var(--primary);
    margin-top:4px;transition:width .4s;
}

/* ---------- Pagination ---------- */
.pagination{
    display:flex;justify-content:center;gap:4px;margin-top:36px;flex-wrap:wrap;
    font-family:var(--sans);
}
.pagination a, .pagination span{
    padding:9px 14px;font-size:13px;font-weight:600;
    border:1px solid var(--rule);background:var(--paper);color:var(--ink);
    border-radius:var(--r-sm);min-width:40px;text-align:center;
}
.pagination a:hover{background:var(--ink);color:var(--paper);text-decoration:none;border-color:var(--ink)}
.pagination .active{background:var(--primary);color:#fff;border-color:var(--primary)}

/* ---------- Empty ---------- */
.empty{
    text-align:center;padding:80px 20px;color:var(--muted);
    font-family:var(--serif);font-style:italic;font-size:17px;
    border:1px dashed var(--rule);
}

/* ---------- Footer ---------- */
.site-footer{
    background:var(--ink);color:#d7d2c4;
    padding:40px 0 24px;margin-top:60px;
    font-family:var(--sans);font-size:13px;
}
.site-footer a{color:#d7d2c4}
.site-footer a:hover{color:#fff;text-decoration:underline}
.footer-grid{
    display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
    gap:32px;padding-bottom:24px;border-bottom:1px solid #3a3a3a;
}
.footer-grid h4{
    font-size:11px;letter-spacing:.18em;text-transform:uppercase;
    font-weight:700;color:#fff;margin-bottom:12px;
}
.footer-grid ul{list-style:none}
.footer-grid li{padding:4px 0}
.footer-bottom{
    padding-top:20px;display:flex;justify-content:space-between;
    flex-wrap:wrap;gap:12px;font-size:12px;color:#8a857a;
}

/* ============================================================
   REPORT DETAIL
   ============================================================ */
.report-main{
    padding:44px 0 56px;
}
.report-container{max-width:var(--rw);margin:0 auto;padding:0 24px}

.report-crumb{
    font-family:var(--sans);font-size:11px;
    letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
    margin-bottom:24px;
}
.report-crumb a{color:var(--ink-soft)}

.report-kicker{
    font-family:var(--sans);font-size:12px;font-weight:700;
    letter-spacing:.18em;text-transform:uppercase;
    color:var(--primary);margin-bottom:14px;
}
.report-title{
    font-family:var(--serif);font-weight:800;
    font-size:clamp(32px, 4.5vw, 52px);
    line-height:1.08;letter-spacing:-.015em;
    color:var(--ink);margin-bottom:18px;
}
.report-standfirst{
    font-family:var(--serif);
    font-size:clamp(18px, 2vw, 22px);
    line-height:1.5;color:var(--ink-soft);
    margin-bottom:26px;font-weight:400;
}

.report-byline{
    display:flex;gap:14px;align-items:center;flex-wrap:wrap;
    font-family:var(--sans);font-size:12px;
    letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
    padding:16px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);
    margin-bottom:34px;
}
.report-byline .author{color:var(--ink);font-weight:700}
.report-byline .sep{color:var(--rule)}
.report-byline .views{margin-left:auto;font-variant-numeric:tabular-nums}

.report-content{
    font-family:var(--serif);
    font-size:18px;line-height:1.7;color:var(--ink);
}
.report-content p{margin-bottom:1.2em}
.report-content p:first-of-type::first-letter{
    font-family:var(--serif);
    float:left;font-size:68px;line-height:.88;
    font-weight:800;color:var(--primary);
    padding:4px 10px 0 0;margin-top:2px;
}
.report-content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.report-content blockquote{
    border-left:3px solid var(--primary);
    padding:8px 22px;margin:1.4em 0;
    font-style:italic;color:var(--ink-soft);
    font-size:1.05em;
}

/* Tag row */
.tag-row{
    display:flex;flex-wrap:wrap;gap:6px;
    margin:24px 0;
}
.tag-chip{
    font-family:var(--sans);font-size:11px;font-weight:700;
    letter-spacing:.1em;text-transform:uppercase;
    padding:5px 12px;background:var(--bg-alt);color:var(--ink);
    border:1px solid var(--rule);border-radius:999px;
}
.tag-chip.threat-critical{background:#dc2626;color:#fff;border-color:#dc2626}
.tag-chip.threat-high{background:#b85010;color:#fff;border-color:#b85010}
.tag-chip.threat-medium{background:#b8860b;color:#fff;border-color:#b8860b}
.tag-chip.threat-low{background:#4d7a1e;color:#fff;border-color:#4d7a1e}
.tag-chip.threat-info{background:var(--muted);color:#fff;border-color:var(--muted)}
.tag-chip.breaking{background:var(--primary);color:#fff;border-color:var(--primary)}

/* Source block */
.source-note{
    margin:36px 0;padding:20px 24px;
    background:var(--paper);border-left:4px solid var(--ink);
    font-family:var(--sans);font-size:13px;color:var(--ink-soft);
}
.source-note strong{color:var(--ink)}
.source-note a{word-break:break-all;color:var(--accent)}

/* Map block */
.map-block{
    margin:36px 0;padding:24px;
    background:var(--paper);border:1px solid var(--rule);
}
.map-block h4{
    font-family:var(--sans);font-size:11px;
    letter-spacing:.18em;text-transform:uppercase;
    color:var(--ink);font-weight:700;margin-bottom:14px;
}
.map-svg{
    width:100%;max-width:560px;margin:0 auto;display:block;
    aspect-ratio: 2 / 1;
    background:#e8e2d0;border:1px solid var(--rule);
}
.map-legend{
    margin-top:12px;font-family:var(--sans);font-size:12px;
    color:var(--muted);text-align:center;
}

/* Related */
.report-related{
    margin-top:56px;padding-top:28px;border-top:3px double var(--ink);
}
.report-related h3{
    font-family:var(--serif);font-size:22px;color:var(--ink);
    font-weight:700;margin-bottom:20px;
}
.related-list{list-style:none;display:grid;gap:16px}
.related-list li{
    padding-bottom:16px;border-bottom:1px solid var(--rule-soft);
}
.related-list li:last-child{border-bottom:0}
.related-list .kicker{
    font-family:var(--sans);font-size:10px;font-weight:700;
    letter-spacing:.16em;text-transform:uppercase;color:var(--primary);
    margin-bottom:4px;
}
.related-list a{
    font-family:var(--serif);font-size:17px;line-height:1.3;
    color:var(--ink);font-weight:600;
}
.related-list a:hover{color:var(--primary);text-decoration:none}
.related-list .rmeta{
    font-family:var(--sans);font-size:11px;color:var(--muted);
    margin-top:4px;letter-spacing:.06em;
}

/* ---------- Responsive ---------- */
@media (max-width: 960px){
    .hero-grid{grid-template-columns:1fr;gap:32px}
    .hero-side{border-left:0;padding-left:0;border-top:2px solid var(--ink);padding-top:20px}
    .content-grid{grid-template-columns:1fr;gap:40px}
    .sidebar{order:2}
}
@media (max-width: 640px){
    .container{padding:0 18px}
    .masthead-title{font-size:36px}
    .masthead-top{flex-direction:column;gap:10px;text-align:center}
    .mainnav{overflow-x:auto}
    .mainnav .container{flex-wrap:nowrap;justify-content:flex-start;min-width:100%}
    .mainnav a{white-space:nowrap;font-size:11px;padding:8px 10px}
    .section{padding:32px 0}
    .section-head h2{font-size:22px}
    .reports-grid{grid-template-columns:1fr;gap:22px}
    .report-content{font-size:17px}
    .report-content p:first-of-type::first-letter{font-size:56px}
    .filter-form{gap:8px}
    .filter-form .search-input{min-width:100%;order:-1}
}

/* Print */
@media print{
    .utility-bar,.mainnav,.filter-bar,.site-footer,.report-related{display:none}
    body{background:#fff;color:#000}
    .report-content{font-size:12pt}
}

/* ============================================================
   ULTRA: Featured Hero full-bleed, asymmetric 12-col grid,
   flag badges, SVG world map, sticky filter, dark mode
   ============================================================ */

/* ---------- Featured Hero (full-bleed editorial) ---------- */
.featured-hero{
    position:relative;
    min-height:clamp(360px, 52vh, 560px);
    display:flex;align-items:flex-end;
    color:#f7f2e5;
    margin:0;padding:0;
    overflow:hidden;
    border-bottom:3px solid var(--ink);
}
.featured-hero .fh-bg{
    position:absolute;inset:0;
    background:
        radial-gradient(circle at 25% 30%, rgba(201,169,97,.20), transparent 55%),
        linear-gradient(160deg,#13233c 0%,#0b1a30 55%,#170c18 100%);
    z-index:0;
}
/* GEOINT dot-grid motif over the hero */
.featured-hero .fh-bg::after{
    content:"";position:absolute;inset:0;
    background-image:radial-gradient(rgba(255,255,255,.10) 1px, transparent 1.4px);
    background-size:26px 26px;
    -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.85), transparent 78%);
    mask-image:linear-gradient(180deg, rgba(0,0,0,.85), transparent 78%);
    opacity:.5;
}
.featured-hero.cat-military .fh-bg{background:linear-gradient(160deg,#2b1a0f 0%,#0f0906 100%)}
.featured-hero.cat-cyber .fh-bg{background:linear-gradient(160deg,#001833 0%,#000712 100%)}
.featured-hero.cat-economic .fh-bg{background:linear-gradient(160deg,#1a2a10 0%,#0a1205 100%)}
.featured-hero.cat-political .fh-bg{background:linear-gradient(160deg,#2a1228 0%,#0f050f 100%)}
.featured-hero.cat-diplomatic .fh-bg{background:linear-gradient(160deg,#0e2240 0%,#060d1e 100%)}
.featured-hero.cat-humanitarian .fh-bg{background:linear-gradient(160deg,#3a2512 0%,#1a0f06 100%)}
.featured-hero.cat-terrorism .fh-bg{background:linear-gradient(160deg,#3a0a0a 0%,#150303 100%)}
.featured-hero .fh-pattern{
    position:absolute;inset:0;z-index:1;opacity:.18;
    background:
        repeating-linear-gradient(45deg, transparent 0 18px, rgba(255,255,255,.05) 18px 19px),
        radial-gradient(circle at 75% 70%, rgba(201,169,97,.22), transparent 60%);
    mix-blend-mode:screen;
}
.featured-hero .fh-overlay{
    position:absolute;inset:0;z-index:2;
    background:linear-gradient(0deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.25) 55%, rgba(0,0,0,.10) 100%);
}
.featured-hero .container{position:relative;z-index:3;padding-top:80px;padding-bottom:50px}
.featured-hero .fh-kicker{
    display:inline-flex;align-items:center;gap:10px;
    font-family:var(--sans);font-size:11px;font-weight:800;
    letter-spacing:.22em;text-transform:uppercase;
    color:var(--gold);margin-bottom:18px;
}
.featured-hero .fh-kicker::before{
    content:"";width:28px;height:2px;background:var(--gold);
}
.featured-hero .fh-kicker.breaking{color:#fff}
.featured-hero .fh-kicker.breaking::before{background:var(--primary)}
.featured-hero h1.fh-title{
    font-family:var(--serif);font-weight:800;
    font-size:clamp(34px, 5.2vw, 68px);
    line-height:1.02;letter-spacing:-.02em;
    color:#fff;max-width:960px;margin-bottom:18px;
    text-shadow:0 2px 20px rgba(0,0,0,.5);
}
.featured-hero h1.fh-title a{color:inherit}
.featured-hero h1.fh-title a:hover{color:var(--gold);text-decoration:none}
.featured-hero .fh-standfirst{
    font-family:var(--serif);
    font-size:clamp(16px, 1.6vw, 20px);
    line-height:1.5;color:#e8e2d0;
    max-width:780px;margin-bottom:22px;font-weight:400;
}
.featured-hero .fh-byline{
    display:flex;gap:14px;align-items:center;flex-wrap:wrap;
    font-family:var(--sans);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
    color:#c8c2b0;
}
.featured-hero .fh-byline .author{color:#fff;font-weight:700}
.featured-hero .fh-byline .sep{opacity:.4}
.featured-hero .fh-byline .chip-light{
    padding:4px 11px;border:1px solid rgba(255,255,255,.3);
    border-radius:999px;letter-spacing:.1em;color:#f5eed8;
}
.featured-hero .fh-byline .chip-light.threat-critical{background:var(--primary);border-color:var(--primary);color:#fff}
.featured-hero .fh-byline .chip-light.threat-high{background:#b85010;border-color:#b85010;color:#fff}
.featured-hero .fh-byline .chip-light.threat-medium{background:#b8860b;border-color:#b8860b;color:#fff}

/* ---------- Asymmetric 12-col grid (1 large + 2 medium + 4 small) ---------- */
.asym-grid{
    display:grid;
    grid-template-columns:repeat(12, 1fr);
    gap:30px 28px;
}
.asym-grid .card-large{grid-column:span 7}
.asym-grid .card-medium{grid-column:span 5}
.asym-grid .card-small{grid-column:span 3}

.card-large .thumb{aspect-ratio: 16 / 9}
.card-large h3{font-family:var(--serif);font-weight:800;font-size:clamp(24px,2.4vw,32px);line-height:1.12;margin-bottom:10px;letter-spacing:-.01em}
.card-large p.dek{font-size:16px;-webkit-line-clamp:4}

.card-medium .thumb{aspect-ratio: 4 / 3}
.card-medium h3{font-size:22px;line-height:1.2}

.card-small{padding-bottom:18px;border-bottom:1px solid var(--rule)}
.card-small .thumb{aspect-ratio: 3 / 2;margin-bottom:10px}
.card-small h3{font-size:16px;line-height:1.25;font-weight:700}
.card-small p.dek{font-size:14px;-webkit-line-clamp:2;margin-bottom:8px}
.card-small .meta{font-size:10px}

@media (max-width: 960px){
    .asym-grid{grid-template-columns:repeat(6,1fr);gap:26px 20px}
    .asym-grid .card-large{grid-column:span 6}
    .asym-grid .card-medium{grid-column:span 3}
    .asym-grid .card-small{grid-column:span 3}
}
@media (max-width: 640px){
    .asym-grid{grid-template-columns:1fr;gap:22px}
    .asym-grid .card-large,.asym-grid .card-medium,.asym-grid .card-small{grid-column:span 1}
}

/* ---------- Flag / Region / Country code badge ---------- */
.flag-badge{
    display:inline-flex;align-items:center;gap:6px;
    font-family:var(--sans);font-size:11px;font-weight:700;
    letter-spacing:.08em;text-transform:uppercase;color:var(--ink);
}
.flag-box{
    display:inline-block;width:22px;height:14px;
    background:linear-gradient(180deg,#888 0%,#888 33%,#ccc 33%,#ccc 66%,#eee 66%,#eee 100%);
    border:1px solid rgba(0,0,0,.25);
    position:relative;overflow:hidden;vertical-align:middle;
    border-radius:1px;flex:none;
}
.flag-box::after{
    content:attr(data-cc);
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    font-family:var(--sans);font-size:7px;font-weight:800;color:#000;letter-spacing:.02em;
    text-shadow:0 0 2px rgba(255,255,255,.8);
}
/* Gradient backgrounds per region for visual variety */
.flag-box[data-region="Europe"]{background:linear-gradient(180deg,#003399 0%,#003399 50%,#ffcc00 50%,#ffcc00 100%)}
.flag-box[data-region="Eastern Europe"]{background:linear-gradient(180deg,#c41a1a 0%,#c41a1a 33%,#fff 33%,#fff 66%,#1a3ca1 66%,#1a3ca1 100%)}
.flag-box[data-region="Middle East"]{background:linear-gradient(180deg,#007a3d 0%,#007a3d 50%,#ce1126 50%,#ce1126 100%)}
.flag-box[data-region="East Asia"]{background:linear-gradient(90deg,#de2910 0%,#de2910 30%,#ffde00 30%,#ffde00 40%,#de2910 40%)}
.flag-box[data-region="Africa"]{background:linear-gradient(180deg,#009a44 0%,#009a44 33%,#ffcd00 33%,#ffcd00 66%,#ce1126 66%,#ce1126 100%)}
.flag-box[data-region="Americas"]{background:linear-gradient(180deg,#b22234 0%,#b22234 38%,#fff 38%,#fff 62%,#3c3b6e 62%,#3c3b6e 100%)}
.flag-box[data-region="South Asia"]{background:linear-gradient(180deg,#ff9933 0%,#ff9933 33%,#fff 33%,#fff 66%,#138808 66%,#138808 100%)}
.flag-box[data-region="Southeast Asia"]{background:linear-gradient(180deg,#ce1126 0%,#ce1126 50%,#fff 50%,#fff 100%)}
.flag-box[data-region="Central Asia"]{background:linear-gradient(180deg,#00afca 0%,#00afca 50%,#fec50c 50%,#fec50c 100%)}

/* ---------- Sticky filter bar ---------- */
.filter-bar.sticky{
    position:sticky;top:0;z-index:40;
    background:var(--bg-alt);
    border-top:1px solid var(--rule);
    box-shadow:0 1px 0 var(--rule), 0 4px 12px rgba(0,0,0,.03);
    backdrop-filter:saturate(1.1);
}

/* ---------- SVG World Map ---------- */
.worldmap-section{
    padding:44px 0;
    background:var(--paper);
    border-top:1px solid var(--rule);
    border-bottom:1px solid var(--rule);
}
.worldmap-wrap{
    position:relative;
    max-width:1000px;margin:0 auto;
    aspect-ratio: 2 / 1;
    background:var(--bg-alt);border:1px solid var(--rule);
    padding:0;overflow:hidden;
}
.worldmap-wrap svg.worldmap{width:100%;height:100%;display:block}
.worldmap-wrap svg .landmass{fill:#d6cfbf;stroke:#8a826f;stroke-width:.4}
.worldmap-wrap svg .graticule{fill:none;stroke:rgba(0,0,0,.05);stroke-width:.3}
.worldmap-marker{
    position:absolute;transform:translate(-50%,-50%);
    width:14px;height:14px;border-radius:50%;
    background:var(--primary);border:2px solid #fff;
    box-shadow:0 0 0 2px rgba(139,0,0,.25), 0 2px 6px rgba(0,0,0,.3);
    cursor:pointer;z-index:3;
    transition:transform .15s;
}
.worldmap-marker::after{
    content:"";position:absolute;inset:-6px;border-radius:50%;
    border:2px solid var(--primary);opacity:.5;
    animation:mapPulse 2s ease-out infinite;
}
.worldmap-marker.threat-critical{background:#dc2626}
.worldmap-marker.threat-high{background:#ea580c}
.worldmap-marker.threat-medium{background:#b8860b}
.worldmap-marker.threat-low{background:#65a30d}
.worldmap-marker:hover{transform:translate(-50%,-50%) scale(1.35);z-index:5}
.worldmap-marker .mk-tooltip{
    position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
    background:var(--ink);color:var(--paper);padding:6px 10px;
    font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.04em;
    text-transform:none;white-space:nowrap;border-radius:3px;
    opacity:0;pointer-events:none;transition:opacity .15s;
    max-width:240px;white-space:normal;text-align:center;
}
.worldmap-marker:hover .mk-tooltip{opacity:1;pointer-events:auto}
@keyframes mapPulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(2.2);opacity:0}}

.worldmap-legend{
    display:flex;justify-content:center;gap:20px;margin-top:18px;flex-wrap:wrap;
    font-family:var(--sans);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
}
.worldmap-legend .lg-item{display:inline-flex;align-items:center;gap:6px}
.worldmap-legend .lg-dot{width:10px;height:10px;border-radius:50%;display:inline-block}

/* ---------- Theme toggle button ---------- */
.theme-toggle{
    background:transparent;border:1px solid rgba(255,255,255,.25);
    color:inherit;width:30px;height:30px;border-radius:50%;
    cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
    font-size:13px;transition:background .15s,border-color .15s;
    font-family:var(--sans);
}
.theme-toggle:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5)}
.masthead .theme-toggle{border-color:var(--rule);color:var(--ink)}
.masthead .theme-toggle:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* ---------- Dark mode ---------- */
html[data-theme="dark"]{
    --bg:#0c0f15;
    --bg-alt:#141926;
    --paper:#171c28;
    --ink:#eef1f6;
    --ink-soft:#c6ccd8;
    --muted:#8b93a4;
    --rule:#283041;
    --rule-soft:#1f2533;
    --primary:#f06a6a;
    --primary-dark:#d24f4f;
    --primary-soft:rgba(240,106,106,.14);
    --accent:#7eb0ff;
    --accent-soft:rgba(126,176,255,.16);
    --gold:#d8b96f;
    --gold-soft:rgba(216,185,111,.18);
    --shadow:0 1px 2px rgba(0,0,0,.4);
    --shadow-md:0 6px 18px -6px rgba(0,0,0,.55);
    --shadow-lg:0 22px 48px -18px rgba(0,0,0,.7);
    --ring:0 0 0 3px var(--primary-soft);
}
html[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
html[data-theme="dark"] .utility-bar{background:#05080c;border-bottom:1px solid #1a1e26}
html[data-theme="dark"] .masthead{background:var(--bg)}
html[data-theme="dark"] .featured-hero{border-bottom-color:#000}
html[data-theme="dark"] .filter-bar{background:var(--bg-alt)}
html[data-theme="dark"] .filter-form .search-input,
html[data-theme="dark"] .filter-form select{background:var(--paper);color:var(--ink);border-color:var(--rule)}
html[data-theme="dark"] .chip-link{background:var(--paper);color:var(--ink-soft);border-color:var(--rule)}
html[data-theme="dark"] .report-card .thumb{border-color:var(--rule)}
html[data-theme="dark"] .sidebar-block{background:var(--paper);border-color:var(--rule);border-top-color:var(--ink)}
html[data-theme="dark"] .source-note{background:var(--paper)}
html[data-theme="dark"] .worldmap-section{background:var(--paper)}
html[data-theme="dark"] .worldmap-wrap{background:#0b0e14;border-color:var(--rule)}
html[data-theme="dark"] .worldmap-wrap svg .landmass{fill:#2a2f38;stroke:#3a414d}
html[data-theme="dark"] .empty{border-color:var(--rule);color:var(--muted)}
html[data-theme="dark"] .flag-box{border-color:rgba(255,255,255,.2)}
html[data-theme="dark"] .tag-chip{background:var(--bg-alt);color:var(--ink);border-color:var(--rule)}
html[data-theme="dark"] .pagination a,html[data-theme="dark"] .pagination span{background:var(--paper);color:var(--ink);border-color:var(--rule)}
html[data-theme="dark"] .report-content p:first-of-type::first-letter{color:var(--primary)}
html[data-theme="dark"] .masthead .theme-toggle{border-color:var(--rule);color:var(--ink)}

/* ---------- Smooth transition on theme change ---------- */
body,.utility-bar,.masthead,.mainnav,.filter-bar,.sidebar-block,
.filter-form .search-input,.filter-form select,.chip-link,.pagination a,.pagination span,
.source-note,.worldmap-section,.worldmap-wrap{
    transition:background-color .2s, color .2s, border-color .2s;
}
