/* Terrorism Portal — long-form reading layout (dossiers and analysis).
   Priorities: a ~68-character serif column, generous leading, a sticky
   contents rail, and reading tools (version, listen, PDF, print) that
   stay out of the way. */

.art-hero{position:relative;background:var(--tp-navy-950);color:#fff;overflow:hidden;isolation:isolate}
.art-hero-media{position:absolute;inset:0;z-index:-2}
.art-hero-media img{width:100%;height:100%;object-fit:cover;object-position:60% 40%}
.art-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,7,12,.95),rgba(4,7,12,.78) 45%,rgba(4,7,12,.45)),linear-gradient(0deg,rgba(4,7,12,.85),rgba(4,7,12,0) 55%)}
.art-hero .wrap{padding-top:52px;padding-bottom:40px;max-width:1240px}
.art-hero h1{font-size:clamp(32px,4.2vw,56px);line-height:1.08;margin:14px 0 12px;max-width:900px;text-wrap:balance}
.art-sub{font-family:var(--tp-serif);font-size:clamp(18px,1.7vw,23px);color:#DCE3EC;max-width:820px;line-height:1.4}
.art-standfirst{font-family:var(--tp-serif);font-size:17px;color:#BAC6D5;max-width:760px;line-height:1.55;margin-top:14px!important}
.art-meta{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:26px;font-size:13px;color:#B3BFCF}
.art-meta strong{color:#fff;font-weight:600}
.art-meta .status-badge{color:#7A4B00}
.art-hero .hero-credit{position:absolute}

/* reading tools */
.art-tools{position:sticky;top:var(--tp-header-h);z-index:30;background:rgba(255,255,255,.97);border-bottom:1px solid var(--tp-line);box-shadow:0 2px 10px rgba(11,18,32,.04)}
.art-tools .wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px;max-width:1240px}
.versions{display:inline-flex;background:var(--tp-paper);border:1px solid var(--tp-line);border-radius:4px;padding:3px}
.versions button{border:0;background:transparent;font:600 13px var(--tp-sans);color:var(--tp-ink-2);padding:8px 13px;border-radius:3px;cursor:pointer;white-space:nowrap}
.versions button[aria-pressed="true"]{background:var(--tp-navy-900);color:#fff}
.versions button:hover:not([aria-pressed="true"]){color:var(--tp-cyan-ink)}
.tool-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--tp-line);background:var(--tp-card);color:var(--tp-ink);font:600 13px var(--tp-sans);padding:9px 13px;border-radius:4px;cursor:pointer;text-decoration:none;white-space:nowrap}
.tool-btn svg{width:16px;height:16px;color:var(--tp-cyan-ink)}
.tool-btn:hover{border-color:var(--tp-cyan-600);color:var(--tp-cyan-ink)}
.tool-btn[aria-expanded="true"]{border-color:var(--tp-cyan-600);background:var(--tp-cyan-soft)}
.tool-spacer{flex:1}
.reading-time{font-size:12.5px;color:var(--tp-muted);white-space:nowrap}
.dropdown{position:relative}
.dropdown-menu{position:absolute;left:0;top:calc(100% + 6px);min-width:320px;background:var(--tp-card);border:1px solid var(--tp-line);border-radius:4px;box-shadow:0 12px 30px rgba(11,18,32,.14);padding:6px;z-index:40}
.dropdown-menu a,.dropdown-menu span{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:3px;font-size:13.5px;color:var(--tp-ink);text-decoration:none}
.dropdown-menu a:hover{background:var(--tp-paper);color:var(--tp-cyan-ink)}
.dropdown-menu small{color:var(--tp-muted);font-size:11.5px;white-space:nowrap;text-align:right}
.dropdown-menu a span,.dropdown-menu span>span{white-space:nowrap}
.dropdown-menu span.is-off{color:#9AA6B6;cursor:not-allowed}
@media (max-width:760px){
  .art-tools .wrap{gap:8px}
  .versions{order:-1;flex:1 0 100%;overflow-x:auto}
  .versions button{flex:1;padding:8px 6px;font-size:12.5px}
  .tool-btn{padding:8px 10px;font-size:12.5px}
  .tool-btn .lbl-long{display:none}
  .reading-time{display:none}
  .dropdown-menu{right:auto;left:0}
}

/* audio player */
.tp-player{position:sticky;top:calc(var(--tp-header-h) + 59px);z-index:29;background:var(--tp-navy-900);color:#fff;border-bottom:1px solid var(--tp-navy-700)}
@media (max-width:760px){.tp-player{top:calc(var(--tp-header-h) + 104px)}}
.tp-player[hidden]{display:none}
.tp-player .pl-row{max-width:1240px;margin:0 auto;padding:12px 32px 4px;display:flex;align-items:center;gap:16px}
.pl-play{flex:0 0 auto;width:46px;height:46px;border-radius:50%;border:0;background:var(--tp-cyan);cursor:pointer;position:relative}
.pl-play:disabled{opacity:.4;cursor:not-allowed}
.pl-icon{position:absolute;left:18px;top:14px;border-left:14px solid var(--tp-navy-950);border-top:9px solid transparent;border-bottom:9px solid transparent}
.tp-player.is-playing .pl-icon{left:16px;top:15px;border:0;width:14px;height:16px;border-left:4px solid var(--tp-navy-950);border-right:4px solid var(--tp-navy-950);box-sizing:border-box}
.pl-main{flex:1;min-width:0}
.pl-variants{display:flex;gap:4px;flex-wrap:wrap}
.pl-variants button{background:transparent;border:1px solid transparent;color:#AFC0D4;font:600 12px var(--tp-sans);padding:4px 8px;border-radius:3px;cursor:pointer}
.pl-variants button[aria-pressed="true"]{color:#fff;border-color:rgba(34,211,238,.5);background:rgba(34,211,238,.12)}
.pl-progress-row{display:flex;align-items:center;gap:12px;margin-top:6px}
.pl-progress{flex:1;accent-color:var(--tp-cyan);height:4px;cursor:pointer}
.pl-time{font:500 12px var(--tp-sans);color:#AFC0D4;font-variant-numeric:tabular-nums;min-width:86px;text-align:right}
.pl-rates{display:flex;gap:2px;border:1px solid var(--tp-line-dark);border-radius:4px;padding:2px}
.pl-rates button{background:transparent;border:0;color:#AFC0D4;font:600 12px var(--tp-sans);padding:6px 8px;border-radius:3px;cursor:pointer}
.pl-rates button[aria-pressed="true"]{background:rgba(255,255,255,.12);color:#fff}
.pl-close{background:transparent;border:0;color:#AFC0D4;font-size:24px;cursor:pointer;padding:4px 8px}
.pl-engine{max-width:1240px;margin:0 auto;padding:0 32px 10px 94px;font-size:11px;color:#7F92AA}
@media (max-width:760px){
  .tp-player .pl-row{flex-wrap:wrap;padding:12px 16px 4px;gap:10px}
  .pl-main{flex:1 1 calc(100% - 120px)}
  .pl-rates{order:3}
  .pl-engine{padding:0 16px 10px}
}
[data-sid].is-speaking{background:linear-gradient(transparent 0,rgba(34,211,238,.16) 0);box-shadow:-10px 0 0 rgba(34,211,238,.16),10px 0 0 rgba(34,211,238,.16);border-radius:2px}

/* layout: contents rail + reading column */
.art-body{display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;max-width:1240px;margin:0 auto;padding:44px 32px 80px}
.toc{position:sticky;top:calc(var(--tp-header-h) + 78px);align-self:start;max-height:calc(100vh - var(--tp-header-h) - 100px);overflow:auto;font-family:var(--tp-sans);padding-right:6px}
.toc h2{font:700 11px var(--tp-sans);letter-spacing:1.6px;text-transform:uppercase;color:var(--tp-muted);margin-bottom:10px}
.toc ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--tp-line)}
.toc a{display:block;padding:6px 0 6px 14px;margin-left:-2px;border-left:2px solid transparent;color:var(--tp-ink-2);font-size:13.5px;line-height:1.35;text-decoration:none}
.toc a:hover{color:var(--tp-cyan-ink)}
.toc a.is-active{border-left-color:var(--tp-cyan-600);color:var(--tp-ink);font-weight:600}
.toc-extra{margin-top:22px;padding-top:16px;border-top:1px solid var(--tp-line);font-size:12.5px;color:var(--tp-muted);line-height:1.6}
.toc-extra a{color:var(--tp-ink-2);word-break:break-all}
.art-main{min-width:0}
.prose{max-width:690px;font-family:var(--tp-serif);font-size:19px;line-height:1.72;color:#1C2738;font-optical-sizing:auto;hyphens:auto;-webkit-hyphens:auto}
.prose .doc-section{margin-bottom:52px}
.prose h2{font-size:31px;line-height:1.2;color:var(--tp-ink);margin:0 0 18px;padding-top:6px}
.prose h2::before{content:"";display:block;width:44px;height:3px;background:var(--tp-cyan-600);margin-bottom:16px}
.prose h3{font-size:22px;line-height:1.3;color:var(--tp-ink);margin:34px 0 10px}
.prose p{margin:0 0 20px}
.prose .doc-list{margin:0 0 22px;padding-left:24px}
.prose .doc-list li{margin-bottom:8px;padding-left:4px}
.prose .doc-list li::marker{color:var(--tp-cyan-600)}
.prose a{color:var(--tp-cyan-ink)}
.cite{font-family:var(--tp-sans);font-size:.6em;font-weight:600;line-height:0;margin-left:1px}
.cite a{text-decoration:none;color:var(--tp-cyan-ink);padding:0 1px}
.cite a:hover{text-decoration:underline}
.doc-quote{margin:30px 0;padding:4px 0 4px 24px;border-left:3px solid var(--tp-cyan-600);font-size:22px;line-height:1.5;color:var(--tp-ink);font-style:italic}
.doc-quote p{margin:0}
.doc-quote cite{display:block;font:normal 13px var(--tp-sans);color:var(--tp-muted);margin-top:8px}
.doc-callout{margin:28px 0;padding:18px 22px;background:var(--tp-card);border:1px solid var(--tp-line);border-left:4px solid var(--tp-cyan-600);border-radius:3px;font-size:17px;line-height:1.6}
.doc-callout.tone-alert{border-left-color:var(--tp-red)}
.doc-callout p{margin:0}
.doc-callout-title{font:700 12px var(--tp-sans);letter-spacing:1.2px;text-transform:uppercase;color:var(--tp-cyan-ink);margin-bottom:6px!important}
.doc-callout.tone-alert .doc-callout-title{color:var(--tp-red-ink)}
.doc-exec{background:var(--tp-card);border:1px solid var(--tp-line);border-top:4px solid var(--tp-navy-900);padding:26px 30px 10px;border-radius:3px}
.doc-exec h2::before{display:none}
.doc-exec h2{font-size:24px}
.doc-judgments{list-style:none;margin:0;padding:0;counter-reset:j}
.doc-judgments li{position:relative;padding:0 0 16px 40px;font-size:17.5px;line-height:1.6;counter-increment:j}
.doc-judgments li::before{content:counter(j);position:absolute;left:0;top:2px;width:26px;height:26px;border-radius:50%;background:var(--tp-navy-900);color:#fff;font:700 12px/26px var(--tp-sans);text-align:center}
/* wide components break out of the text column */
.prose .tp-figure.is-wide,.prose .tp-mapfig,.prose .tp-gallery,.prose .tp-videos,.prose .tp-actors,.prose .tp-chart,.prose .tp-indicators{max-width:none;width:min(940px,calc(100vw - 400px))}
.prose .tp-chart{background:var(--tp-card);border:1px solid var(--tp-line);border-radius:3px;padding:18px;margin:28px 0}
.prose .tp-indicators{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));margin:20px 0}
.prose .tp-mapfig .tp-map{border:1px solid var(--tp-line);border-radius:2px}
.prose .tp-timeline,.prose .tp-documents,.prose .tp-actors,.prose .tp-gallery,.prose .tp-indicators{font-family:var(--tp-sans)}
.tp-references{font-family:var(--tp-sans);font-size:14px;line-height:1.55;color:var(--tp-ink-2);padding-left:30px;margin:0}
.tp-references li{margin-bottom:9px;padding-left:4px;scroll-margin-top:180px}
.tp-references li:target{background:var(--tp-cyan-soft);outline:6px solid var(--tp-cyan-soft)}
.tp-references a{color:var(--tp-ink);word-break:break-word}
.ref-pub{font-style:italic}
.ref-acc{color:var(--tp-muted);font-size:12.5px}
.version-note{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;font-family:var(--tp-sans);font-size:14px;background:var(--tp-cyan-soft);border:1px solid #B9E6F0;border-radius:3px;padding:12px 16px;margin-bottom:30px;color:var(--tp-ink-2)}
.version-note button{border:0;background:none;color:var(--tp-cyan-ink);font:600 14px var(--tp-sans);cursor:pointer;text-decoration:underline}
.lang-note{font-family:var(--tp-sans);font-size:13.5px;background:#FFF8E6;border:1px solid #F1DDA6;border-radius:3px;padding:12px 16px;margin-bottom:26px;color:#5C4507}
.dossier-nav{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 30px;padding:0;list-style:none}
.dossier-nav a{display:inline-block;font:600 12.5px var(--tp-sans);padding:7px 12px;border:1px solid var(--tp-line);background:var(--tp-card);border-radius:20px;color:var(--tp-ink-2);text-decoration:none}
.dossier-nav a:hover{border-color:var(--tp-cyan-600);color:var(--tp-cyan-ink)}
.art-footer-box{margin-top:48px;padding:20px 22px;background:var(--tp-card);border:1px solid var(--tp-line);border-radius:3px;font-family:var(--tp-sans);font-size:13.5px;color:var(--tp-muted);line-height:1.6;max-width:690px}
.art-footer-box strong{color:var(--tp-ink)}

@media (max-width:1100px){
  .art-body{grid-template-columns:1fr;gap:0;padding:28px 24px 60px}
  .toc{position:static;max-height:none;margin-bottom:28px;padding:16px 18px;background:var(--tp-card);border:1px solid var(--tp-line);border-radius:3px}
  .toc ol{columns:2;column-gap:20px;border:0}
  .toc a{padding:5px 0;border:0;margin:0}
  .toc-extra{display:none}
  .prose{max-width:720px;margin:0 auto}
  .prose .tp-figure.is-wide,.prose .tp-mapfig,.prose .tp-gallery,.prose .tp-videos,.prose .tp-actors,.prose .tp-chart,.prose .tp-indicators{width:auto}
}
.toc-toggle{display:none}
@media (max-width:1100px){
  .toc-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;padding:0;cursor:pointer;font:700 11px var(--tp-sans);letter-spacing:1.6px;text-transform:uppercase;color:var(--tp-ink-2)}
  .toc-toggle::after{content:"+";font-size:18px;font-weight:400;color:var(--tp-cyan-ink)}
  .toc:not(.is-collapsed) .toc-toggle::after{content:"−"}
  .toc .toc-toggle + h2{display:none}
  .toc.is-collapsed ol{display:none}
  .toc:not(.is-collapsed) ol{margin-top:12px}
}
@media (max-width:640px){
  .art-hero .wrap{padding-top:34px}
  .art-hero .hero-credit{position:static;max-width:none;text-align:left;padding:0 16px 12px}
  .versions button{white-space:normal;line-height:1.2;font-size:12px;padding:7px 4px}
  .art-body{padding:22px 16px 48px}
  .prose{font-size:18px;line-height:1.68}
  .prose h2{font-size:26px}
  .toc ol{columns:1}
  .doc-exec{padding:20px 18px 6px}
  .doc-judgments li{font-size:16.5px}
}

/* ------------------------------------------------------------------
   Long-form reading aids
   ------------------------------------------------------------------ */
/* section numbers + clearer contents rail */
.doc-secno{display:block;font:700 12px var(--tp-sans);letter-spacing:2px;color:var(--tp-cyan-ink);margin-bottom:6px}
.prose h2 .doc-secno + *{display:inline}
.toc ol{counter-reset:toc}
.toc ol li{counter-increment:toc}
.toc ol li.no-num{counter-increment:none}
.toc ol a{display:grid;grid-template-columns:26px 1fr;align-items:baseline;transition:background .15s,border-color .15s,color .15s}
.toc ol a::before{content:counter(toc,decimal-leading-zero);font:600 11px var(--tp-sans);color:#9AA6B6}
.toc ol li.no-num a::before{content:"·";text-align:center}
.toc a.is-active{background:linear-gradient(90deg,var(--tp-cyan-soft),rgba(227,247,251,0));border-left-color:var(--tp-cyan-600)}
.toc a.is-active::before{color:var(--tp-cyan-ink)}
.toc a.is-done{color:var(--tp-muted)}
.toc-status{margin:14px 0 0;font:600 11.5px var(--tp-sans);color:var(--tp-muted)}
.toc-status strong{color:var(--tp-ink)}
.toc-bar{height:3px;background:var(--tp-line);border-radius:2px;margin-top:6px;overflow:hidden}
.toc-bar span{display:block;height:100%;width:0;background:var(--tp-cyan-600);transition:width .2s}
/* overall reading progress, under the reading tools */
.read-progress{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--tp-cyan-600);transition:width .1s linear}
.art-tools{position:sticky}

/* section pager */
.section-pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:40px 0 0;padding-top:20px;border-top:1px solid var(--tp-line);font-family:var(--tp-sans)}
.section-pager a{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--tp-line);border-radius:3px;background:var(--tp-card);text-decoration:none;color:var(--tp-ink)}
.section-pager a:hover{border-color:var(--tp-cyan-600)}
.section-pager span{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--tp-muted)}
.section-pager strong{font:600 16px var(--tp-serif);line-height:1.3}
.pager-prev span::before{content:"← "}
.pager-next{text-align:right;align-items:flex-end}
.pager-next span::after{content:" →"}
@media (max-width:560px){.section-pager{grid-template-columns:1fr}.section-pager .is-empty{display:none}.pager-next{text-align:left;align-items:flex-start}}

/* key findings */
.doc-findings{margin:34px 0;padding:20px 24px 12px;background:var(--tp-navy-900);color:#E7EDF5;border-radius:3px;font-family:var(--tp-sans);position:relative}
.doc-findings::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tp-cyan);border-radius:3px 0 0 3px}
.doc-findings-title{font:700 11.5px var(--tp-sans)!important;letter-spacing:1.8px;text-transform:uppercase;color:var(--tp-cyan)!important;margin:0 0 12px!important}
.doc-findings ul{list-style:none;margin:0;padding:0}
.doc-findings li{position:relative;padding:0 0 10px 22px;font-size:15.5px;line-height:1.55}
.doc-findings li::before{content:"";position:absolute;left:2px;top:9px;width:8px;height:8px;border-radius:50%;border:2px solid var(--tp-cyan)}
.doc-findings .cite a{color:var(--tp-cyan)}
/* context card */
.doc-context{float:right;width:270px;margin:6px -60px 18px 28px;padding:16px 18px;background:var(--tp-card);border:1px solid var(--tp-line);border-top:3px solid var(--tp-navy-600);border-radius:3px;font-family:var(--tp-sans);font-size:14px;line-height:1.55;color:var(--tp-ink-2)}
.doc-context p{margin:0!important}
.doc-context-kicker{font:700 10.5px var(--tp-sans)!important;letter-spacing:1.5px;text-transform:uppercase;color:var(--tp-cyan-ink)!important;margin-bottom:4px!important}
.doc-context-title{font:600 16px var(--tp-serif)!important;color:var(--tp-ink)!important;margin-bottom:6px!important}
.prose h3,.prose .doc-section > h2,.tp-figure,.tp-chart,.tp-mapfig,.doc-findings,.section-pager,.tp-actors{clear:both}
@media (max-width:1280px){.doc-context{margin-right:0}}
@media (max-width:760px){.doc-context{float:none;width:auto;margin:24px 0}}
/* pull quote */
.doc-pullquote{margin:34px 0;padding:18px 0;border-top:2px solid var(--tp-ink);border-bottom:1px solid var(--tp-line);font:italic 500 24px/1.4 var(--tp-serif);color:var(--tp-ink);text-align:left}
.doc-pullquote p{margin:0!important}
.doc-pullquote cite{display:block;margin-top:10px;font:normal 600 12px var(--tp-sans);letter-spacing:.6px;text-transform:uppercase;color:var(--tp-muted)}
@media (max-width:640px){.doc-pullquote{font-size:20px}}

/* back to top */
.to-top{position:fixed;right:22px;bottom:22px;z-index:40;display:flex;align-items:center;gap:6px;padding:10px 14px;border:1px solid var(--tp-line);border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 6px 18px rgba(11,18,32,.12);font:600 12.5px var(--tp-sans);color:var(--tp-ink-2);cursor:pointer;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .2s,transform .2s}
.to-top.is-visible{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{border-color:var(--tp-cyan-600);color:var(--tp-cyan-ink)}
@media (max-width:640px){.to-top{right:12px;bottom:12px;padding:10px 12px}.to-top .lbl{display:none}}

/* dated indicator */
.tp-indicator-dated{display:inline-block;align-self:flex-start;margin-top:3px;font:700 10px var(--tp-sans);letter-spacing:.8px;text-transform:uppercase;color:#7A4B00;background:#FFF4DB;border:1px solid #F1D49A;border-radius:2px;padding:2px 6px}
@media print{.section-pager,.to-top,.read-progress{display:none!important}.doc-context{float:none;width:auto;margin:16px 0}}

/* editorial credits (end of document) */
.art-credits{max-width:690px;margin:48px 0 0;padding:16px 20px;border:1px solid var(--tp-line);border-radius:3px;background:var(--tp-card);font-family:var(--tp-sans);font-size:13.5px;color:var(--tp-ink-2)}
.art-credits-title{font:700 10.5px var(--tp-sans)!important;letter-spacing:1.5px;text-transform:uppercase;color:var(--tp-muted)!important;margin:0 0 8px!important}
.art-credits dl{margin:0;display:grid;gap:4px}
.art-credits dl div{display:grid;grid-template-columns:170px 1fr;gap:12px}
.art-credits dt{color:var(--tp-muted)}
.art-credits dd{margin:0;color:var(--tp-ink)}
.art-credits a{color:var(--tp-ink)}
@media (max-width:560px){.art-credits dl div{grid-template-columns:1fr;gap:0;margin-bottom:6px}}
