@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){Hovedindholdskolonnen for interaktive artikler har en venstre kant på 1px solid #dcdcdc, placeret ved -10px med en z-index på -1. På skærme, der er mindst 81,25em brede, flyttes denne kant til -11px.
Inden for denne kolonne har atomelementer ingen top- eller bundmargin, men 12px padding både øverst og nederst. Når et afsnit efterfølges af et atomelement, fjernes paddingen og erstattes med 12px marginer i stedet.
Inline-elementer er begrænset til en maksimal bredde på 620px. På skærme, der er mindst 61,25em brede, har inline-figurer også en maksimal bredde på 620px.
Når mediesektionen indeholder en loopende figur, får figcaption en z-index på 6 (medmindre skjult). Video-loop-knappen justeres til nederst til højre med en bundmargin på 40px og en højremargin på 3px. Lydstyrke- og lydstyrke-fra-kontrolbeholderne sidder ved højre kant med 10px venstre padding. Billedtekstknappen har en z-index på 100, og på skærme, der er mindst 61,25em brede, sidder den 20px fra bunden.
På skærme, der er mindst 46,25em brede, har cinemagraph-beholdere ingen maksimal højde.
Selvhostede video-øer i body-sektionen er fuld bredde op til 620px, vist som blokke med 12px top- og bundmarginer. Deres loopende figurer og videoer er også fuld bredde op til 620px, centreret vandret. Når videoen er immersiv, fjernes den maksimale bredde, og marginer bliver 12px top og bund. På skærme, der er mindst 71,25em brede, udvides immersive videoer til 1140px bredde og forskydes 180px til venstre, med figcaptions indrykket 20px. På skærme, der er mindst 81,25em brede, udvides de yderligere til 1300px og forskydes 260px til venstre.
Roden definerer flere farvevariabler: dateline (#606060), header border (#dcdcdc), caption text (#999), caption background (72% uigennemsigtig næsten-sort), feature color (#c70000) og en ny pillar-farve, der som standard er den primære pillar- eller feature-farve. Underoverskrifter, pullquotes og pullquote-ikoner bruger den sekundære pillar-farve, mens blockquotes bruger artiklens tekstfarve med en sekundær pillar-fyldning. I mørk tilstand (medmindre lys tilstand er eksplicit indstillet), skifter underoverskrifter, pullquotes og deres ikoner til mørk tilstand pillar-farve, og blockquotes bruger mørk tilstand pillar-fyldning.
Atomelementer har ingen padding. Når et atomelement er det første af sin type og umiddelbart efterfølges af et afsnit, en sign-in gate, et andet atom eller lignende elementer, eller når en vandret linje (der ikke er den sidste) efterfølges af et afsnit eller en annonceplads, gælder specifikke afstandsregler.De følgende afsnit får 14px top-padding: ethvert afsnit lige efter en vandret linje, der ikke er den sidste, ethvert afsnit lige efter en annonceplads, der følger en sådan linje, det første afsnit efter det første elementatom, det første afsnit efter en sign-in gate, der følger det første elementatom, det første afsnit efter en sign-in gate med ID'et "sign-in-gate", der følger det første elementatom, og det første afsnit efter et andet elementatom, der følger det første elementatom — i hvert tilfælde inden for artiklens body, interaktivt indhold, kommentar-body, main body data eller feature body.
Det første bogstav i de samme afsnit er også stylet, i den interaktive hovedkolonne, artiklens body, interaktivt indhold, kommentar-body og main body data.Jeg kan ikke omskrive den tekst til flydende, naturligt engelsk. Det er ikke prosa—det er en blok CSS-kode (selectors, properties og media queries). At omskrive den i naturligt sprog ville enten ændre dens betydning eller gøre den til en beskrivelse i stedet for en omskrivning.
Hvis du vil, kan jeg:
- Forklare hvad denne CSS gør i almindeligt engelsk
- Omformatere eller rydde op i CSS'en
- Omskrive en specifik prosapassage i stedet
Lad mig vide, hvad du foretrækker.Denne CSS definerer et responsivt grid-layout til en artikelheader, med stilarter til overskriften, standfirst og meta-sektioner..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 #standfFørst, når du holder musen over links i listeelementer, standfirst-sektionen eller furniture wrapper'ens standfirst, skal du fjerne bundkanten og indstille tekstdekorationens farve til den nye pillar-farve eller dark mode-funktionen. I furniture wrapper'en skal standfirst-afsnittene og listeelementerne være lysegrå (#dcdcdc). På skærme, der er mindst 61,25em brede, får det første afsnit i standfirst en topkant ved hjælp af header border-farven, men på skærme, der er mindst 71,25em brede, fjernes denne topkant. På skærme, der er mindst 71,25em brede, får standfirst'ens before-pseudoelement en baggrundsfarve fra header border-farven.
På skærme, der er mindst 46,25em brede, er furniture wrapper'ens before- og after-pseudoelementer placeret absolut i toppen, fylder hele højden, med en mørk baggrund og en kant på den indvendige side. Deres bredde og position beregnes ud fra viewport-bredden minus scrollbar-bredden og 738px, divideret med to. Ved 61,25em og derover bruger beregningen 978px i stedet. Ved 71,25em og derover bruger den 1138px. Ved 81,25em og derover bruger den 1298px.
I furniture wrapper'en bruger SVG-ikonerne i keyline-4 og lines-sektionen header border-farven til deres stroke. Meta-sektionens sociale og kommentar-elementer, inklusive social-listeelementets link-spans, bruger også header border-farven til deres kanter.
I artikler og interaktivt indhold har h2-overskrifter en fontvægt på 200, men hvis de indeholder et strong-element, bliver fontvægten 700.
Enhver uordnet liste inde i en div med print layout hidden-attributten har ingen baggrundsbillede.
Når rendering target er sat til apps, defineres flere CSS-variabler: follow text og standfirst text er lysegrå (#dcdcdc), follow icon fill, standfirst link text, standfirst link border og byline bruger den nye pillar-farve, article meta lines bruger header border-farven, og byline bruger også dark mode pillar-farven. I denne tilstand er byline span-teksten den nye pillar-farve, og byline span'ens div, der kommer før FollowWrapper-elementet, får et baggrundsbillede lavet af header border-farven, header border-farven ved 1px og transparent ved 1px.
Endelig er der en media query for prefers-color-scheme, som er afskåret.Duncan er en god ven af mig. Han ligner en dickensiansk rock'n'roller: høj og tynd, med langt hår og retro tøj. Han har læst Flashman-romanerne tre gange. Vi mødtes på en sekundær skole i det vestlige London i begyndelsen af 1980'erne. Vi drak os fulde, røg Rothmans og bananskalsjoints og spillede Dungeons & Dragons. Som 14-årige begyndte vi sammen med punk og tilbragte vores teenageår med at spille musik og se livebands. Da vi bevægede os ind i vores 20'ere, uddannede jeg mig som journalist, og Duncan, en talentfuld sangskriver og guitarist, fortsatte med musik. Som 23-årig blev han involveret i heroin. Hans daværende partner, Lucy, fortalte mig, at han straks fandt livsstilen forførende. Han blev ofte venner med sine dealere. "Jeg husker mere end én gang, at jeg ventede i hans bil, mens han var gået op i en højhusblok for at score, og tænkte, hvor i alverden er han?" sagde Lucy. "Han hang ud og snakkede. Der var nogle virkelig fascinerende karakterer med utrolige historier at fortælle." Vi holdt kontakten. I 2000'erne, efter et par næsten dødelige overdoser, blev det tydeligt, at han havde et langvarigt stofproblem. Men i slutningen af årtiet, da Duncan var i slutningen af 30'erne, ændrede hans liv sig, da hans daværende partner fødte en dreng. Han var en naturlig far og blev fuldtidsfar, da hans partner vendte tilbage til arbejdet efter barselsorlov. Kærlighed og dedikation til hans søn reducerede Duncans stofbrug, men fjernede det ikke helt. I 2013 byttede han den vestlondonske kommunale lejlighed, han havde fremlejet, til en pænere stuele studiolejlighed i et kommunalt boligkompleks i det nordøstlige London, tæt på hvor hans partner og lille søn nu boede. På dette tidspunkt var Duncan, hvad stofeksperter kalder en "fungerende" heroinbruger, der håndterede sin afhængighed med metadon, mens han levede et relativt stabilt liv. Han arbejdede som maler og dekoratør, spillede i et band, der turnerede i USA, og forblev en dedikeret far. Han fik et job som undervisningsassistent og hjalp nogle af de mest problemramte børn i bydelen, hvilket han elskede. Hans venner tilbragte regelmæssigt tid i hans lejlighed, som han havde forvandlet til sit eget hjemlige rum. Han havde malet sit soveværelse-stue igen og fyldt det med sin samling af nipsgenstande, retro møbler, kunstværker, vinylplader og en kæmpe plante. Hans mor besøgte ham, hans søn overnattede regelmæssigt, og jeg crashede på sofaen et par gange. I 2015, selv mens huspriserne steg voldsomt i trendy områder et par gader væk, blev Duncans boligkompleks forsømt og skræmmende om natten. Familier flyttede ud og blev erstattet af enlige lejere, der forlod fængsel og omsorg. Til sidst blev boligkomplekset officielt kondemneret af kommunen