@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.ttf) format("truetype");font-weight:300;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.ttf) format("truetype");font-weight:300;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.ttf) format("truetype");font-weight:500;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.ttf) format("truetype");font-weight:500;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.ttf) format("truetype");font-weight:600;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf) format("truetype");font-weight:600;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https:@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.ttf) format("truetype");font-weight:900;font-style:normal}@font-face{font-family:Guardian Headline Full;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format("truetype");font-weight:900;font-style:italic}@font-face{font-family:Guardian Titlepiece;src:url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2) format("woff2"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff) format("woff"),url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@media (min-width: 71.25em){.content__main-column--interactive{margin-left:160px}}@media (min-width: 81.25em){.content__main-column--interactive{margin-left:240px}}.content__main-column--interactive .element-atom{max-width:620px}@media (max-width: 46.24em){.content__main-column--interactive .element-atom{max-width:100%}}.content__main-column--interactive .element-showcase{margin-left:0}@media (min-width: 46.25em){.content__main-column--interactive .element-showcase{max-width:620px}}@media (min-width: 71.25em){.content__main-column--interactive .element-showcase{max-width:860px}}.content__main-column--interactive .element-immersive{max-width:1100px}@media (max-width: 46.24em){.content__main-column--interactive .element-immersive{width:calc(100vw - var(--scrollbar-width, 0px));position:relative;left:50%;right:50%;margin-left:calc(-50vw + var(--half-scrollbar-width, 0px))!important;margin-right:calc(-50vw + var(--half-scrollbar-width, 0px))!important}}@media (min-width: 46.25em){.content__main-column--interactive .element-immersive{transform:translate(-20px);width:calc(100% + 60px)}}@media (max-width: 71.24em){.content__main-column--interactive .element-immersive{margin-left:0;margin-right:0}}@media (min-width: 71.25em){.content__main-column--interactive .element-immersive{transform:translate(0);width:auto}}@media (min-width: 81.25em){.content__main-column--interactive .element-immersive{max-width:1260px}}.content__main-column--interactive p,.content__main-column--interactive ul{max-width:620px}.content__main-column--interactive:before{position:absolute;top:0;height:calc(100% + 15px);min-height:100px;content:""}@media (min-width: 71.25em){互动文章的主内容栏有1像素实线#dcdcdc的左边框,位于-10像素处,z-index为-1。在至少81.25em宽的屏幕上,此边框移至-11像素。
在此栏内,原子元素没有上下外边距,但上下各有12像素的内边距。当段落后面跟着原子元素时,内边距被移除,改为12像素的外边距。
内联元素的最大宽度限制为620像素。在至少61.25em宽的屏幕上,内联图形的最大宽度也为620像素。
当媒体部分包含循环图形时,figcaption获得z-index为6(除非隐藏)。视频循环按钮对齐到右下角,底部外边距40像素,右侧外边距3像素。静音和取消静音控件容器位于右边缘,左侧内边距10像素。字幕按钮的z-index为100,在至少61.25em宽的屏幕上,它距离底部20像素。
在至少46.25em宽的屏幕上,cinemagraph容器没有最大高度。
正文部分中的自托管视频岛为全宽,最大620像素,显示为块级元素,上下外边距12像素。它们的循环图形和视频也为全宽,最大620像素,水平居中。当视频为沉浸式时,最大宽度被移除,外边距变为上下12像素。在至少71.25em宽的屏幕上,沉浸式视频扩展到1140像素宽并向左移动180像素,figcaptions缩进20像素。在至少81.25em宽的屏幕上,它们进一步扩展到1300像素并向左移动260像素。
根元素定义了几个颜色变量:dateline(#606060)、header border(#dcdcdc)、caption text(#999)、caption background(72%不透明的近黑色)、feature color(#c70000),以及一个默认为主支柱或特色颜色的新支柱颜色。副标题、引文和引文图标使用次要支柱颜色,而块引用使用文章文本颜色和次要支柱填充。在深色模式下(除非明确设置为浅色模式),副标题、引文及其图标切换为深色模式支柱颜色,块引用使用深色模式支柱填充。
原子元素没有内边距。当原子元素是其类型中的第一个并且后面紧跟着段落、登录门、另一个原子或类似元素时,或者当水平线(不是最后一条)后面跟着段落或广告位时,适用特定的间距规则。以下段落获得14像素的顶部内边距:紧跟在不是最后一条的水平线之后的任何段落、紧跟在这样的水平线之后的广告位之后的任何段落、第一个元素原子之后的第一个段落、第一个元素原子之后的登录门之后的第一个段落、ID为“sign-in-gate”的登录门在第一个元素原子之后的第一个段落,以及第一个元素原子之后的另一个元素原子之后的第一个段落——在每种情况下,都在文章正文、互动内容、评论正文、主体数据或特色正文内。
这些相同段落的首字母也会被样式化,在互动主栏、文章正文、互动内容、评论正文和主体数据中。我无法将那段文本重写为流畅、自然的英语。它不是散文——它是一块CSS代码(选择器、属性和媒体查询)。用自然语言重写它要么会改变其含义,要么会将其变成描述而不是重写。
如果你愿意,我可以:
- 用简单的英语解释这段CSS的作用
- 重新格式化或清理CSS
- 改为重写特定的散文段落
请告诉我你更倾向于哪一种。这段CSS为文章头部定义了响应式网格布局,包含标题、导语和元数据部分的样式。.furniture-wrapper #standfirst:before, .furniture-wrapper [data-gu-name=standfirst]:before { left: -.5px; } } .furniture-wrapper .article-header .content__labels > div, .furniture-wrapper [data-gu-name=title] .content__labels > div { padding-top: 2px; } .furniture-wrapper #headline h1, .furniture-wrapper [data-gu-name=headline] h1, .furniture-wrapper .headline h1 { font-weight: 600; max-width: 620px; font-size: 32px; } @media (min-width: 71.25em) { .furniture-wrapper #headline h1, .furniture-wrapper [data-gu-name=headline] h1, .furniture-wrapper .headline h1 { max-width: 540px; font-size: 50px; } } @media (min-width: 46.25em) { .furniture-wrapper .keyline-4, .furniture-wrapper [data-gu-name=lines] { margin-right: 0; } } @media (min-width: 61.25em) { .furniture-wrapper .keyline-4, .furniture-wrapper [data-gu-name=lines] { display: none; } } .furniture-wrapper .keyline-4 svg, .furniture-wrapper [data-gu-name=lines] svg { stroke: var(--headerBorder); } @media (min-width: 46.25em) { .furniture-wrapper #meta, .furniture-wrapper [data-gu-name=meta] { margin-right: 0; } } .furniture-wrapper #meta .meta__social, .furniture-wrapper #meta .meta__social ul li a span, .furniture-wrapper #meta .meta__comment, .furniture-wrapper [data-gu-name=meta] .meta__social, .furniture-wrapper [data-gu-name=meta] .meta__social ul li a span, .furniture-wrapper [data-gu-name=meta] .meta__comment { border-color: var(--headerBorder); } .furniture-wrapper #meta .content__meta-container_dcr > div > gu-island, .furniture-wrapper [data-gu-name=meta] .content__meta-container_dcr > div > gu-island { display: none; } .furniture-wrapper .standfirst, .furniture-wrapper #standfirst, .furniture-wrapper [data-gu-name=standfirst] { margin-left: -10px; padding-left: 10px; position: relative; } @media (min-width: 46.25em) { .furniture-wrapper .standfirst, .furniture-wrapper #standfirst, .furniture-wrapper [data-gu-name=standfirst] { padding-top: 2px; } } .furniture-wrapper .standfirst p, .furniture-wrapper #standfirst p, .furniture-wrapper [data-gu-name=standfirst] p { font-weight: 400; font-size: 20px; padding-bottom: 14px; } .furniture-wrapper #main-media, .furniture-wrapper [data-gu-name=media] { position: relative; margin-top: 0; margin-bottom: 2px; grid-area: portrait; } .furniture-wrapper #main-media div div, .furniture-wrapper [data-gu-name=media] div div { width: 100%; margin-inline: 0; } @media (min-width: 61.25em) { .furniture-wrapper #main-media, .furniture-wrapper [data-gu-name=media] { margin-bottom: 0; } } @media (max-width: 46.24em) { .furniture-wrapper #main-media, .furniture-wrapper [data-gu-name=media] { width: calc(100vw - var(--scrollbar-width, 0px)); margin-left: -10px; } } @media (max-width: 46.24em) and (min-width: 30em) { .furniture-wrapper #main-media, .furniture-wrapper [data-gu-name=media] { margin-left: -20px; } } .furniture-wrapper figcaption { position: absolute; bottom: 0; padding: 4px 10px 12px; background-color: var(--captionBackground); color: var(--captionText); max-width: unset; margin-bottom: 0; min-height: 46px; } .furniture-wrapper figcaption span { color: var(--headerBorder); } .furniture-wrapper figcaption span svg { fill: var(--headerBorder); } .furniture-wrapper figcaption span:nth-of-type(1) { display: none; } .furniture-wrapper figcaption span:nth-of-type(2) { display: inline; max-width: 90%; } @media (min-width: 30em) { .furniture-wrapper figcaption { padding: 4px 20px 12px; } } .furniture-wrapper figcaption.hidden { opacity: 0; } .furniture-wrapper #caption-button { display: block; position: absolute; bottom: 10px; right: 8px; z-index: 30; background-color: var(--captionBackground); border: none; border-radius: 50%; padding: 6px 5px 5px; } .furniture-wrapper #caption-button svg { transform: scale(.85); } @media (min-width: 30em) { .furniture-wrapper #caption-button { right: 10px; } } @media (min-width: 71.25em) { .content__main-column--interactive:before { top: -12px !important; height: calc(100% + 24px) !important; } } .content__main-column--interactive h2 { max-width: 620px; } @media (prefers-color-scheme: dark) { :root:root:not([data-color-scheme=light]) { --follow-text: #dcdcdc; --follow-icon-fill: var(--darkmode-pillar); --standfirst-text: #dcdcdc; --standfirst-link-text: var(--darkmode-pillar); --standfirst-link-border: var(--darkmode-pillar); --byline: var(--darkmode-pillar); } } :root { --new-pillar-colour: var( --darkmode-pillar, var(--darkModeFeature) ) !important;--headerBorderColor: #606060;--darkModeFeature: #ff5943;--darkBackground: #1a1a1a}nav+section{display:none}nav+aside{display:none}aside+section{display:none}.furniture-wrapper{background-color:var(--darkBackground);margin:0 -10px;padding:0 10px 4px}@media (min-width: 30em){.furniture-wrapper{margin:0 -20px;padding:0 20px 8px}}@media (min-width: 61.25em){.furniture-wrapper{padding:0 20px}}@media (min-width: 81.25em){.furniture-wrapper:before{content:"";width:calc((100vw - 1298px)/2);height:100%;position:absolute;left:calc((100vw - 1298px)/-2);background-color:var(--darkBackground);border-right:1px solid var(--headerBorderColor)}.furniture-wrapper:after{content:"";width:calc((100vw - 1298px)/2);height:100%;position:absolute;right:calc((100vw - 1298px)/-2);background-color:var(--darkBackground)}}.furniture-wrapper .article-header,.furniture-wrapper [data-gu-name=title] a,.furniture-wrapper [data-gu-name=title] span{color:var(--new-pillar-colour, --darkModeFeature)}@media (min-width: 61.25em){.furniture-wrapper #headline>div:first-child,.furniture-wrapper [data-gu-name=headline]>div:first-child,.furniture-wrapper .headline>div:first-child{border-top:1px solid var(--headerBorderColor)}}.furniture-wrapper #headline h1,.furniture-wrapper [data-gu-name=headline] h1,.furniture-wrapper .headline h1{font-weight:700;color:#dcdcdc}.furniture-wrapper #headline figure,.furniture-wrapper [data-gu-name=headline] figure,.furniture-wrapper .headline figure{margin-top:0;margin-bottom:2px}@media (min-width: 71.25em){.furniture-wrapper #meta:before,.furniture-wrapper [data-gu-name=meta]:before{background-color:var(--headerBorderColor)}}.furniture-wrapper #meta details,.furniture-wrapper #meta summary,.furniture-wrapper #meta summary span,.furniture-wrapper [data-gu-name=meta] details,.furniture-wrapper [data-gu-name=meta] summary,.furniture-wrapper [data-gu-name=meta] summary span{color:#dcdcdc}.furniture-wrapper #meta .meta__social a,.furniture-wrapper #meta .meta__social button,.furniture-wrapper [data-gu-name=meta] .meta__social a,.furniture-wrapper [data-gu-name=meta] .meta__social button{border-color:var(--headerBorderColor);color:var(--new-pillar-colour, --darkModeFeature)}.furniture-wrapper #meta .meta__social a svg,.furniture-wrapper #meta .meta__social button svg,.furniture-wrapper [data-gu-name=meta] .meta__social a svg,.furniture-wrapper [data-gu-name=meta] .meta__social button svg{fill:var(--new-pillar-colour, --darkModeFeature)}.furniture-wrapper #meta .meta__social a:hover,.furniture-wrapper #meta .meta__social button:hover,.furniture-wrapper [data-gu-name=meta] .meta__social a:hover,.furniture-wrapper [data-gu-name=meta] .meta__social button:hover{color:var(--darkBackground);background-color:var(--new-pillar-colour, --darkModeFeature)}.furniture-wrapper #meta .meta__social a:hover svg,.furniture-wrapper #meta .meta__social button:hover svg,.furniture-wrapper [data-gu-name=meta] .meta__social a:hover svg,.furniture-wrapper [data-gu-name=meta] .meta__social button:hover svg{fill:var(--darkBackground)}.furniture-wrapper #meta div,.furniture-wrapper [data-gu-name=meta] div{color:#dcdcdc}.furniture-wrapper #meta a,.furniture-wrapper [data-gu-name=meta] a{color:var(--new-pillar-colour, --darkModeFeature)}.furniture-wrapper #meta a:hover,.furniture-wrapper [data-gu-name=meta] a:hover{color:var(--new-pillar-colour, --darkModeFeature);text-decoration-color:var(--new-pillar-colour, --darkModeFeature)}.furniture-wrapper .standfirst a,.furniture-wrapper .standfirst li a,.furniture-wrapper #standfirst a,.furniture-wrapper #standfirst li a,.furniture-wrapper [data-gu-name=standfirst] a,.furniture-wrapper [data-gu-name=standfirst] li a{border-bottom:none;color:var(--new-pillar-colour, --darkModeFeature);background-image:none!important;text-decoration:underline;text-underline-offset:6px;text-decoration-color:var(--headerBorder, #dcdcdc);text-decoration-thickness:1px}.furniture-wrapper .standfirst a:hover,.furniture-wrapper .standfirst li a:hover,.furniture-wrapper #standfirst a:hover,.furniture-wrapper #standf首先,当悬停在列表项、导语部分或家具包装器的导语中的链接上时,移除底部边框并将文本装饰颜色设置为新支柱颜色或深色模式特色。在家具包装器中,导语段落和列表项应为浅灰色(#dcdcdc)。在至少61.25em宽的屏幕上,导语中的第一个段落使用头部边框颜色获得顶部边框,但在至少71.25em宽的屏幕上,该顶部边框被移除。在至少71.25em宽的屏幕上,导语的before伪元素获得头部边框颜色的背景色。
在至少46.25em宽的屏幕上,家具包装器的before和after伪元素绝对定位在顶部,填满整个高度,具有深色背景和内侧边框。它们的宽度和位置基于视口宽度减去滚动条宽度和738像素,再除以二来计算。在61.25em及更宽时,计算使用978像素。在71.25em及更宽时,使用1138像素。在81.25em及更宽时,使用1298像素。
在家具包装器中,keyline-4和lines部分中的SVG图标使用头部边框颜色作为描边。元数据部分的社交和评论元素,包括社交列表项链接跨度,也使用头部边框颜色作为边框。
在文章和互动内容中,h2标题的字重为200,但如果它们包含strong元素,字重变为700。
任何位于具有print layout hidden属性的div内的无序列表都没有背景图像。
当渲染目标设置为apps时,定义了几个CSS变量:关注文本和导语文本为浅灰色(#dcdcdc),关注图标填充、导语链接文本、导语链接边框和署名使用新支柱颜色,文章元数据行使用头部边框颜色,署名也使用深色模式支柱颜色。在此模式下,署名跨度文本为新支柱颜色,署名跨度的div在FollowWrapper元素之前获得由头部边框颜色、1像素处的头部边框颜色和1像素处的透明组成的背景图像。
最后,有一个针对prefers-color-scheme的媒体查询被截断了。邓肯是我的好朋友。他看起来像狄更斯笔下的摇滚乐手:又高又瘦,留着长发,穿着复古的衣服。他把《闪灵战士》系列小说读了三遍。我们于1980年代初在西伦敦的一所中学相识。我们一起喝醉,抽罗斯曼香烟和香蕉皮大麻烟,玩《龙与地下城》。14岁时,我们一起迷上了朋克,整个青少年时期都在玩音乐和看现场乐队演出。进入20多岁后,我接受了记者培训,而邓肯——一位才华横溢的作曲人和吉他手——继续从事音乐。23岁时,他染上了海洛因。他当时的伴侣露西告诉我,他立刻就被这种生活方式所诱惑。他经常与毒贩交朋友。“我记得不止一次在他的车里等他,他上楼去某个塔楼拿货,我心里想着他到底在哪里?”露西说。“他会和那些人闲聊。有些人是真正迷人的角色,有着不可思议的故事可讲。”我们一直保持联系。到2000年代,在几次几乎致命的过量吸毒之后,很明显他有着长期的毒品问题。但在那个十年结束时,当邓肯快40岁时,他的生活发生了变化,他当时的伴侣生了一个男孩。他天生就是当父亲的料,当他的伴侣休完产假重返工作岗位后,他成了全职爸爸。对儿子的爱和奉献减少了邓肯的吸毒量,但并没有完全戒除。2013年,他把自己转租的西伦敦市政公寓换成了一套更好的、位于东北伦敦一个市政住宅区底层的单间公寓,靠近他的伴侣和年幼的儿子现在居住的地方。此时,邓肯已经是毒品专家所说的“功能性”海洛因使用者,用美沙酮控制自己的毒瘾,同时过着相对稳定的生活。他做油漆工和装饰工,在一个曾在美国巡演的乐队中演奏,并且一直是一个尽职的父亲。他找到了一份助教的工作,帮助该区一些最麻烦的孩子,他很喜欢这份工作。他的朋友们经常在他的公寓里待着,他把那里变成了自己温馨的家。他重新粉刷了卧室兼客厅,摆满了他的小饰品收藏、复古家具、艺术品、黑胶唱片和一株巨大的植物。他的母亲来过,他的儿子经常在那里过夜,我也在沙发上睡过几次。到2015年,即使几条街外时尚地区的房价飞涨,邓肯所在的住宅区却变得荒废,夜晚令人恐惧。家庭搬走了,取而代之的是从监狱和护理机构出来的单身租户。最终,该住宅区被议会正式宣布为危房,计划将租户迁往一英里外正在建设的新住宅区。邓肯眼看着一群吵闹的当地孩子长大成了一帮好斗的青少年毒贩。他们由大约十几个来自该住宅区及周边地区的男孩和年轻男子组成,大多数年龄在15到17岁左右,有些只有12岁。晚上回家时,邓肯会发现这帮人穿着黑色运动裤和羽绒服,在楼梯间附近闲逛,贩卖快克和海洛因。“有时候,会有东西或有人被扔到我的窗户上,”邓肯说。“有几次我听到有人被他们狠狠踢打,在外面呜咽,我打电话叫了救护车。他们是一群可怕的混蛋。”不到一年,邓肯的家就成了这帮人的毒品交易基地。在过去30年里,英国的“陷阱屋”——用作毒品交易基地的地方的俚语——已经演变。毒品团伙现在不再使用废弃的快克屋,而是更喜欢从一个隐藏的全国性网络中运作,这些网络由他们通过一种称为“杜鹃窝”的过程接管弱势群体的住所组成。这种转变的起源可以追溯到1990年代,当时一波新的专业化毒品交易团伙遍布全国。他们的增长是由两种产品推动的,我们……两样东西改变了英国的毒品交易:快克和手机。黑莓和诺基亚使买家和卖家能够在不太显眼的地点安排交易,毒贩们现在开始扩大他们的业务,使用一个由年轻跑腿组成的系统,他们接单并送毒品。在布莱顿,一个叫“伦敦人”的团伙将他们的毒品销售团队从街头转移到当地人的家中,在那里他们可以更容易地在警察和敌对团伙的窥探之外运作。当“伦敦人”的10名成员在2000年被判入狱时,连同他们接管了住所的一名男子,一个来自南伦敦的新团伙填补了空缺。“2001年,我在BMX自行车上从15、16岁的南伦敦男孩那里买快克和海洛因,”皮特,一位前布莱顿街头吸毒者,在2018年告诉我。“我想,操,你们真年轻。他们会坐火车下来,和海洛因使用者一起租公寓。”在2000年代和2010年代,一波又一波的团伙从英国的毒品供应中心——伦敦、利物浦和伯明翰——扩散到全国各地的小城镇和城市开店。他们接管了吸毒者和被年长男性团伙成员诱骗的年轻女性的住所。早在2008年,萨福克郡警察局就报告称,在萨福克郡被捕的甲类毒品贩子中,超过三分之一年龄在21岁以下,大多数来自伦敦。(在此之前,城镇和小城市中的大多数快克和海洛因贩子是“使用者-贩子”,即30岁或以上、上瘾的海洛因使用者,他们不像大城市的毒品团伙那样“专业化”。)团伙经常利用性工作者,她们瞄准男性租户并搬进去,带着年轻的毒贩一起。社区安全团队在2005年在伦敦解救了80名租户,他们最先称这种策略为“杜鹃窝”。2015年,国家犯罪局发布了一份情报评估,迟来地承认“杜鹃窝”是“一种新兴的犯罪商业模式”的一部分, whereby年轻人被毒品团伙派往外地销售,他们称之为“郡线”。到2018年,在当地报纸上被描述为“失踪”的儿童,现在有时可以在Snapchat上被发现挥舞着一叠叠钞票,向同学炫耀他们出城赚钱的冒险“下乡”。说唱歌词,尤其是drill音乐——其中杜鹃窝的受害者被贬低为“fiends”、“cats”或“nitties”——为英国陷阱屋的兴起配乐并美化了它。现实要黯淡得多:孩子们在昏暗的公寓里与年老的毒品注射者混在一起,赚的钱远少于他们的期望,每天都生活在被警察或更糟的敌对团伙袭击的恐惧中。整个系统依赖于诱骗和剥削。多年来,在报道英国毒品交易时,我与几位年轻毒贩和被杜鹃窝的租户谈论过他们的经历。一个来自利物浦的男孩在德文郡的杜鹃窝住所里贩卖毒品,14岁时住在一个中年快克使用者的公寓里。那里有霉菌,“一株植物从墙里长出来”,地方太脏了,他最后自己打扫了。他抽大麻“来去除快克的味道”。另一个来自伦敦的青少年,来自一个严格的尼日利亚宗教家庭,在英格兰东部的杜鹃窝公寓里每天工作15小时,持续了三年。他告诉父母他在参加足球旅行或和朋友住在一起;实际上他和吸毒者一起窝着,带着一把砍刀。一位我交谈过的前性工作者和快克使用者,她在绍森德的住所被杜鹃窝,实际上她同情那些在她公寓里扎营的年轻毒贩。“他们过去常躺在我的沙发上,头边放着电话睡觉,一天工作22小时。他们在演戏,试图假装自己是大人物,但他们是正在被剥削的小孩。”杜鹃窝可能涉及性和经济诱骗,那……杜鹃窝通常针对残疾人和精神疾病患者、富裕地区私人租赁住房中的人,甚至团伙成员的亲属和照顾者。伦敦处理此问题的“黑豹行动”的安德鲁·卡梅伦督察说,在一个案例中,一个侄子为南伦敦毒品团伙杜鹃窝了他姑姑的房子。在另一个案例中,一名护理人员杜鹃窝了一名患者的住所;患者被毒品贩子用