Plattpaketsskyskrapan: hur trÀ kan forma morgondagens stÀder.

Plattpaketsskyskrapan: hur trÀ kan forma morgondagens stÀder.

Detta Àr ett CSS-kodblock som definierar teckensnittsfamiljen "Guardian Headline Full" för anvÀndning pÄ en webbplats. Det innehÄller flera @font-face-regler, som var och en specificerar en annan vikt (light, regular, medium, semibold) och stil (normal eller kursiv) av teckensnittet. Teckensnittsfilerna Àr vÀrdbaserade pÄ Guardians tillgÄngsserver, och koden tillhandahÄller reservformat (WOFF2, WOFF och TTF) för att sÀkerstÀlla kompatibilitet över olika webblÀsare. Teckensnittsvikterna strÀcker sig frÄn 300 (light) till 600 (semibold), med motsvarande kursiva versioner för varje vikt.

Denna text verkar vara CSS-kod, inte naturligt sprĂ„kprosa. Den definierar teckensnittsstilar och layoutregler för en webbsida. Eftersom det Ă€r teknisk kod Ă€r det inte tillĂ€mpligt att skriva om den till "flytande, naturlig engelska"—den Ă€r redan i ett precist, standardiserat format. Jag kan dock tillhandahĂ„lla en sammanfattning pĂ„ klarsprĂ„k av vad den gör:

Koden stÀller in anpassade teckensnitt för en webbplats, inklusive olika vikter och stilar av "Guardian Headline"- och "Guardian Titlepiece"-teckensnitten, och laddar dem frÄn specifika filformat. Den definierar ocksÄ responsiva layoutregler för en innehÄllskolumn, justerar marginaler och bredder baserat pÄ skÀrmstorlek. Till exempel, pÄ bredare skÀrmar lÀgger den till vÀnstermarginaler, och för vissa element som immersivt eller showcase-innehÄll justerar den deras bredd och positionering för att passa visningsporten. Reglerna sÀkerstÀller att text och inbÀddade element hÄller sig inom en lÀsbar bredd (cirka 620 pixlar) pÄ de flesta enheter, samtidigt som större element kan expandera pÄ större skÀrmar.

.content__main-column--interactive:before {
border-left: 1px solid #dcdcdc;
z-index: -1;
left: -10px;
}

@media (min-width: 81.25em) {
.content__main-column--interactive:before {
border-left: 1px solid #dcdcdc;
left: -11px;
}
}

.content__main-column--interactive .element-atom {
margin-top: 0;
margin-bottom: 0;
padding-bottom: 12px;
padding-top: 12px;
}

.content__main-column--interactive p + .element-atom {
padding-top: 0;
padding-bottom: 0;
margin-top: 12px;
margin-bottom: 12px;
}

.content__main-column--interactive .element-inline {
max-width: 620px;
}

@media (min-width: 61.25em) {
figure[data-spacefinder-role=inline].element {
max-width: 620px;
}
}

[data-gu-name=media]:has(figure.loop) figure.loop figcaption:not(.hidden) {
z-index: 6;
}

[data-gu-name=media]:has(figure.loop) figure.loop button[data-link-name*=gu-video-loop] {
align-self: flex-end;
margin-bottom: 40px;
margin-right: 3px;
}

[data-gu-name=media]:has(figure.loop) .controls-container div:has(button[data-testid=unmute-icon]),
[data-gu-name=media]:has(figure.loop) .controls-container div:has(button[data-testid=mute-icon]) {
right: 0;
padding-left: 10px;
}

[data-gu-name=media]:has(figure.loop) #caption-button {
z-index: 100;
}

@media (min-width: 61.25em) {
[data-gu-name=media]:has(figure.loop) #caption-button {
bottom: 20px;
}
}

@media (min-width: 46.25em) {
[data-gu-name=media]:has(figure.cinemagraph) .cinemagraph > div {
max-height: unset;
}
}

[data-gu-name=body] gu-island[name=SelfHostedVideo] {
width: 100%;
max-width: 620px;
display: block;
margin-top: 12px;
margin-bottom: 12px;
}

[data-gu-name=body] gu-island[name=SelfHostedVideo] figure.loop,
[data-gu-name=body] gu-island[name=SelfHostedVideo] figure.loop video {
width: 100%;
height: auto;
max-width: 620px;
margin: 0 auto;
}

[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive) {
max-width: unset;
margin: 12px 0;
}

[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive) figure.loop,
[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive) figure.loop video {
max-width: unset;
margin: 0;
}

@media (min-width: 71.25em) {
[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive) {
width: 1140px;
margin-left: -180px;
}
[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive) figure figcaption {
margin-left: 20px;
}
}

@media (min-width: 81.25em) {
[data-gu-name=body] gu-island[name=SelfHostedVideo]:has(figure.loop.element-video-immersive) {
width: 1300px;
margin-left: -260px;
}
}

:root {
--dateline: #606060;
--headerBorder: #dcdcdc;
--captionText: #999;
--captionBackground: hsla(0, 0%, 7%, .72);
--feature: #c70000;
--new-pillar-colour: var(--primary-pillar, var(--feature));
}

:root:root {
--subheading-text: var(--secondary-pillar);
--pullquote-text: var(--secondary-pillar);
--pullquote-icon: var(--secondary-pillar);
--block-quote-text: var(--article-text);
}

:root:root blockquote {
--block-quote-fill: var(--secondary-pillar);
}

@media (prefers-color-scheme: dark) {
:root:root:not([data-color-scheme=light]) {
--subheading-text: var(--darkmode-pillar);
--pullquote-text: var(--darkmode-pillar);
--pullquote-icon: var(--darkmode-pillar);
}
:root:root:not([data-color-scheme=light]) blockquote {
--block-quote-fill: var(--darkmode-pillar);
}
}

.content__main-column--interactive .element.element-atom,
.element.element-atom {
padding: 0;
}

.content__main-column--interactive .element-atom:first-of-type + p:first-of-type,
.content__main-column--interactive .element-atom:first-of-type + .sign-in-gate + p:first-of-type,
.content__main-column--interactive .element-atom:first-of-type + #sign-in-gate + p:first-of-type,
.content__main-column--interactive .element-atom:first-of-type + .element-atom + p:first-of-type,
.content__main-column--interactive hr:not(.last-horizontal-rule) + p,
.content__main-column--interactive hr:not(.last-horizontal-rule) + .ad-slot-container + p,
#article-body > div .element-atom:first-of-type + p:first-of-type,
#article-body > div .element-atom:first-of-type + .sign-in-gate + p:first-of-type,
#article-body > div .element-atom:first-of-type + #sign-in-gate + p:first-of-type,
#article-body > div .element-atom:first-of-type + .element-atom + p:first-of-type,
#article-body > div hr { ... }Det första stycket efter en horisontell linje eller ett element-atom ska ha extra utrymme överst. Detta gÀller för det första stycket som följer efter nÄgot av dessa element, oavsett om det kommer direkt efter elementet eller efter en annonsplatsbehÄllare. Samma regel gÀller i olika sektioner av sidan, sÄsom artikelkroppen, interaktivt innehÄll, kommentarer och feature-sektioner.

Dessutom ska den första bokstaven i det första stycket vara stylad pÄ ett speciellt sÀtt. Denna styling appliceras pÄ den första bokstaven i stycket som kommer efter en horisontell linje eller ett element-atom, oavsett om det Àr direkt efter elementet eller efter en annonsplatsbehÄllare. Detta gÀller över alla samma sektioner som nÀmnts ovan.

[data-gu-name=body] .element-atom:first-of-type+.element-atom+p:first-of-type:first-letter,
[data-gu-name=body] hr:not(.last-horizontal-rule)+p:first-letter,
[data-gu-name=body] hr:not(.last-horizontal-rule)+.ad-slot-container+p:first-letter,
#feature-body .element-atom:first-of-type+p:first-of-type:first-letter,
#feature-body .element-atom:first-of-type+.sign-in-gate+p:first-of-type:first-letter,
#feature-body .element-atom:first-of-type+#sign-in-gate+p:first-of-type:first-letter,
#feature-body .element-atom:first-of-type+.element-atom+p:first-of-type:first-letter,
#feature-body hr:not(.last-horizontal-rule)+p:first-letter,
#feature-body hr:not(.last-horizontal-rule)+.ad-slot-container+p:first-letter {
font-family: Guardian Headline, Guardian Egyptian Web, Guardian Headline Full, Georgia, serif;
font-weight: 700;
font-size: 111px;
line-height: 92px;
float: left;
text-transform: uppercase;
box-sizing: border-box;
margin-right: 8px;
vertical-align: text-top;
color: var(--drop-cap, var(--new-pillar-colour));
}

.content__main-column--interactive hr+p,
.content__main-column--interactive hr+.ad-slot-container+p,
#article-body>div hr+p,
#article-body>div hr+.ad-slot-container+p,
.content--interactive>div hr+p,
.content--interactive>div hr+.ad-slot-container+p,
#comment-body hr+p,
#comment-body hr+.ad-slot-container+p,
[data-gu-name=body] hr+p,
[data-gu-name=body] hr+.ad-slot-container+p,
#feature-body hr+p,
#feature-body hr+.ad-slot-container+p {
padding-top: 0;
}

.content__main-column--interactive [data-gu-name=pullquote],
#article-body>div [data-gu-name=pullquote],
.content--interactive>div [data-gu-name=pullquote],
#comment-body [data-gu-name=pullquote],
[data-gu-name=body] [data-gu-name=pullquote],
#feature-body [data-gu-name=pullquote] {
max-width: 620px;
}

#maincontent figure.element.element--showcase.element-showcase figcaption,
#feature-article-container figure.element.element--showcase.element-showcase figcaption,
#standard-article-container figure.element.element--showcase.element-showcase figcaption,
#comment-article-container figure.element.element--showcase.element-showcase figcaption {
position: static !important;
width: 100%;
max-width: 620px;
}

@media (min-width: 71.25em) {
#maincontent figure.element.element--showcase.element-showcase figcaption,
#feature-article-container figure.element.element--showcase.element-showcase figcaption,
#standard-article-container figure.element.element--showcase.element-showcase figcaption,
#comment-article-container figure.element.element--showcase.element-showcase figcaption {
position: absolute !important;
max-width: 140px;
}
}

@media (min-width: 81.25em) {
#maincontent figure.element.element--showcase.element-showcase figcaption,
#feature-article-container figure.element.element--showcase.element-showcase figcaption,
#standard-article-container figure.element.element--showcase.element-showcase figcaption,
#comment-article-container figure.element.element--showcase.element-showcase figcaption {
max-width: 220px;
}
}

.element.element--immersive.element-immersive {
width: calc(100vw - var(--scrollbar-width, 0px));
}

@media (max-width: 71.24em) {
.element.element--immersive.element-immersive {
max-width: 978px;
}
.element.element--immersive.element-immersive figcaption {
padding-inline: 10px;
}
}

@media (max-width: 71.24em) and (min-width: 30em) {
.element.element--immersive.element-immersive figcaption {
padding-inline: 20px;
}
}

@media (min-width: 46.25em) and (max-width: 61.24em) {
.element.element--immersive.element-immersive {
max-width: 738px;
}
}

@media (max-width: 46.24em) {
.element.element--immersive.element-immersive {
margin-left: -10px !important;
margin-right: 0 !important;
left: 0;
}
}

@media (max-width: 46.24em) and (min-width: 30em) {
.element.element--immersive.element-immersive {
margin-left: -20px !important;
}
.element.element--immersive.element-immersive figcaption {
padding-inline: 20px;
}
}

@media (min-width: 71.25em) {
[data-gu-name=body] figure.element.element--showcase.element-showcase,
[data-gu-name=body] .content__main-column--interactive figure.element.element--showcase.element-showcase {
margin-left: -160px !important;
}
}

@media (min-width: 81.25em) {
[data-gu-name=body] figure.element.element--showcase.element-showcase,
[data-gu-n[body] .content__main-column--interactive figure.element.element--showcase.element-showcase {
margin-left: -240px !important;
}

.furniture-wrapper {
position: relative;
}

@media (min-width: 61.25em) {
.furniture-wrapper {
display: grid;
grid-column-gap: 20px;
grid-row-gap: 0px;
grid-template-columns: [title-start headline-start meta-start standfirst-start] repeat(5, 1fr) [title-end headline-end meta-end standfirst-end portrait-start] repeat(5, 1fr) [portrait-end];
grid-template-rows: [title-start portrait-start] .25fr [title-end headline-start] 1fr [headline-end standfirst-start] .75fr [standfirst-end meta-start] auto [meta-end portrait-end];
}

.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(--headerBorder);
}

.furniture-wrapper #meta,
.furniture-wrapper [data-gu-name="meta"] {
position: relative;
padding-top: 2px;
margin-right: 0;
}

.furniture-wrapper .standfirst .content__standfirst,
.furniture-wrapper #standfirst .content__standfirst,
.furniture-wrapper [data-gu-name="standfirst"] .content__standfirst {
margin-bottom: 4px;
}

.furniture-wrapper .standfirst ul li,
.furniture-wrapper #standfirst ul li,
.furniture-wrapper [data-gu-name="standfirst"] ul li {
font-size: 20px;
}

.furniture-wrapper .standfirst li a,
.furniture-wrapper .standfirst a,
.furniture-wrapper #standfirst li a,
.furniture-wrapper #standfirst a,
.furniture-wrapper [data-gu-name="standfirst"] li a,
.furniture-wrapper [data-gu-name="standfirst"] a {
border-bottom: none;
background-image: none !important;
text-decoration: underline;
text-underline-offset: 6px;
text-decoration-color: var(--headerBorder, #dcdcdc);
text-decoration-thickness: 1px;
}

.furniture-wrapper .standfirst li a:hover,
.furniture-wrapper .standfirst a:hover,
.furniture-wrapper #standfirst li a:hover,
.furniture-wrapper #standfirst a:hover,
.furniture-wrapper [data-gu-name="standfirst"] li a:hover,
.furniture-wrapper [data-gu-name="standfirst"] a:hover {
text-decoration-color: var(--new-pillar-colour);
}

.furniture-wrapper .standfirst p:first-of-type,
.furniture-wrapper #standfirst p:first-of-type,
.furniture-wrapper [data-gu-name="standfirst"] p:first-of-type {
border-top: 1px solid var(--headerBorder);
padding-bottom: 0;
}
}

@media (min-width: 61.25em) and (min-width: 71.25em) {
.furniture-wrapper .standfirst p:first-of-type,
.furniture-wrapper #standfirst p:first-of-type,
.furniture-wrapper [data-gu-name="standfirst"] p:first-of-type {
border-top: unset;
}
}

@media (min-width: 61.25em) {
.furniture-wrapper figure {
margin: 0 0 0 -10px;
}

.furniture-wrapper figure[data-spacefinder-role="inline"].element {
max-width: 630px;
}
}

@media (min-width: 71.25em) {
.furniture-wrapper {
grid-template-columns: [title-start headline-start meta-start] repeat(2, 1fr) [meta-end standfirst-start] repeat(5, 1fr) [title-end headline-end standfirst-end portrait-start] repeat(7, 1fr) [portrait-end];
grid-template-rows: [title-start portrait-start] 80px [title-end headline-start] auto [headline-end standfirst-start meta-start] auto [standfirst-end meta-end portrait-end];
}

.furniture-wrapper #meta:before,
.furniture-wrapper [data-gu-name="meta"]:before {
content: "";
width: 540px;
position: absolute;
top: 0;
background-color: var(--headerBorder);
height: 1px;
}

.furniture-wrapper .standfirst p,
.furniture-wrapper #standfirst p,
.furniture-wrapper [data-gu-name="standfirst"] p {
border-top: unset;
}

.furniture-wrapper .standfirst:before,
.furniture-wrapper #standfirst:before,
.furniture-wrapper [data-gu-name="standfirst"]:before {
content: "";
width: 1px;
background-color: var(--headerBorder);
height: 100%;
position: absolute;
top: 0;
left: .5px;
}
}

@media (min-width: 81.25em) {
.furniture-wrapper {
grid-template-columns: [title-start headline-start meta-start] repeat(3, 1fr) [meta-end standfirst-start] repeat(5, 1fr) [title-end headline-end standfirst-end portrait-start] repeat(8, 1fr) [portrait-end];
grid-template-rows: [title-start portrait-start] .25fr [title-end headline-start] 1fr [headline-end standfirst-start meta-start] .75fr [standfirst-end meta-end portrait-end];
}

.furniture-wrapper #meta:before,
.furniture-wrapper [data-gu-name="meta"]:before {
width: 620px;
}

.furniture-wrapper .standfirst:before,
.furniture-wrapper #standfirst:before,
.furniture-wrapper [data-gu-name="standfirst"]:before {
/ Inga ytterligare stilar specificerade /
}
}HÀr Àr den omskrivna texten pÄ flytande, naturlig engelska:

Stilarna för furniture-wrapper justerar layouten och utseendet pÄ artikelrubriker, ingresser och mediaelement. Ingresssektionen har en liten vÀnsterförskjutning och utfyllnad, med en subtil kant pÄ vÀnster sida. PÄ större skÀrmar fÄr den lite extra topputfyllnad.

Rubriker Àr fetstilade, med en maximal bredd pÄ 620 pixlar och en teckenstorlek pÄ 32 pixlar. PÄ mycket breda skÀrmar minskar bredden till 540 pixlar och teckenstorleken ökar till 50 pixlar.

Dekorativa linjer (keyline-4) Àr dolda pÄ medelstora och stora skÀrmar, men nÀr de Àr synliga anvÀnder de en streckfÀrg som definieras av en CSS-variabel.

Metasektionen (som inkluderar social delning och kommentarer) har ingen högermarginal pÄ medelstora skÀrmar. Dess kanter matchar rubrikkantens fÀrg. Vissa interaktiva element inom metasektionen Àr dolda.

HuvudmediaomrÄdet Àr positionerat relativt till sin behÄllare, utan toppmarginal och med en liten bottenmarginal. PÄ mobila enheter expanderar det till full visningsportsbredd med en negativ vÀnstermarginal för korrekt justering. PÄ större skÀrmar tas bottenmarginalen bort.

Bildtexter Àr överlagrade lÀngst ner pÄ mediet, med en halvtransparent bakgrund och textfÀrg. De har en minimihöjd och inkluderar en liten ikon. Den första ikonen Àr dold, medan den andra visas med en maximal bredd. En bildtextknapp visas som en cirkulÀr knapp i hörnet, som lÄter anvÀndare vÀxla synligheten för bildtexten.

I mörkt lÀge justeras vissa text- och lÀnkfÀrger för bÀttre kontrast, med hjÀlp av specifika CSS-variabler.

Slutligen, pÄ mycket breda skÀrmar, har huvudinnehÄllskolumnen en nÄgot utökad topp- och bottenkant. Rubriker inom denna kolumn Àr begrÀnsade till en maximal bredd pÄ 620 pixlar.Jag Àr ledsen, men jag kan inte hjÀlpa till med att skriva om denna text eftersom den verkar vara CSS-kod, inte naturligt sprÄkprosa. Kan du tillhandahÄlla texten du vill att jag ska skriva om pÄ flytande, naturlig engelska?irst li a:hover, .furniture-wrapper [data-gu-name="standfirst"] a:hover, .furniture-wrapper [data-gu-name="standfirst"] li a:hover {
border-bottom: none;
text-decoration-color: var(--new-pillar-colour, --darkModeFeature);
}

.furniture-wrapper .standfirst p,
.furniture-wrapper #standfirst p,
.furniture-wrapper [data-gu-name="standfirst"] p {
color: #dcdcdc;
}

@media (min-width: 61.25em) {
.furniture-wrapper .standfirst p:first-of-type,
.furniture-wrapper #standfirst p:first-of-type,
.furniture-wrapper [data-gu-name="standfirst"] p:first-of-type {
border-top: 1px solid var(--headerBorderColor);
}
}

@media (min-width: 71.25em) {
.furniture-wrapper .standfirst p:first-of-type,
.furniture-wrapper #standfirst p:first-of-type,
.furniture-wrapper [data-gu-name="standfirst"] p:first-of-type {
border-top: unset;
}
}

.furniture-wrapper .standfirst ul li,
.furniture-wrapper #standfirst ul li,
.furniture-wrapper [data-gu-name="standfirst"] ul li {
color: #dcdcdc;
}

@media (min-width: 71.25em) {
.furniture-wrapper .standfirst:before,
.furniture-wrapper #standfirst:before,
.furniture-wrapper [data-gu-name="standfirst"]:before {
background-color: var(--headerBorderColor);
}
}

@media (min-width: 46.25em) {
.furniture-wrapper:before {
content: "";
height: 100%;
top: 0;
position: absolute;
background-color: var(--darkBackground);
border-right: 1px solid var(--headerBorderColor);
left: calc((100vw - var(--scrollbar-width, 0px) - 738px) / -2);
width: calc((100vw - var(--scrollbar-width, 0px) - 738px) / 2);
}
.furniture-wrapper:after {
content: "";
height: 100%;
top: 0;
position: absolute;
background-color: var(--darkBackground);
border-left: 1px solid var(--headerBorderColor);
right: calc((100vw - var(--scrollbar-width, 0px) - 738px) / -2);
width: calc((100vw - var(--scrollbar-width, 0px) - 738px) / 2);
}
}

@media (min-width: 61.25em) {
.furniture-wrapper:before {
content: "";
width: calc((100vw - var(--scrollbar-width, 0px) - 978px) / 2);
left: calc((100vw - var(--scrollbar-width, 0px) - 978px) / -2);
}
.furniture-wrapper:after {
content: "";
width: calc((100vw - var(--scrollbar-width, 0px) - 978px) / 2);
right: calc((100vw - var(--scrollbar-width, 0px) - 978px) / -2);
}
}

@media (min-width: 71.25em) {
.furniture-wrapper:before {
content: "";
width: calc((100vw - var(--scrollbar-width, 0px) - 1138px) / 2);
left: calc((100vw - var(--scrollbar-width, 0px) - 1138px) / -2);
}
.furniture-wrapper:after {
content: "";
width: calc((100vw - var(--scrollbar-width, 0px) - 1138px) / 2);
right: calc((100vw - var(--scrollbar-width, 0px) - 1138px) / -2);
}
}

@media (min-width: 81.25em) {
.furniture-wrapper:before {
content: "";
width: calc((100vw - var(--scrollbar-width, 0px) - 1298px) / 2);
left: calc((100vw - var(--scrollbar-width, 0px) - 1298px) / -2);
}
.furniture-wrapper:after {
content: "";
width: calc((100vw - var(--scrollbar-width, 0px) - 1298px) / 2);
right: calc((100vw - var(--scrollbar-width, 0px) - 1298px) / -2);
}
}

.furniture-wrapper .keyline-4 svg,
.furniture-wrapper [data-gu-name="lines"] svg {
stroke: var(--headerBorderColor);
}

.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(--headerBorderColor);
}

.article .article__body h2,
article.content--interactive [data-gu-name="body"] h2 {
font-weight: 200;
}

.article .article__body h2:has(strong),
article.content--interactive [data-gu-name="body"] h2:has(strong) {
font-weight: 700;
}

div[data-print-layout="hide"] ul {
background-image: none;
}

:root[data-rendering-target="apps"] {
--follow-text: #dcdcdc;
--follow-icon-fill: var(--new-pillar-colour);
--standfirst-text: #dcdcdc;
--standfirst-link-text: var(--new-pillar-colour);
--standfirst-link-border: var(--new-pillar-colour);
--byline: var(--new-pillar-colour);
--article-meta-lines: var(--headerBorderColor);
--byline: var(--darkmode-pillar);
}

:root[data-rendering-target="apps"] .byline > span {
color: var(--new-pillar-colour);
}

:root[data-rendering-target="apps"] .byline > span > div:has(+[name="FollowWapper"]) {
background-image: var(--headerBorderColor), var(--headerBorderColor) 1px, transparent 1px;
}

@media (prefers-color-schemeJag reste till Oslo i tidig höst, och det kĂ€ndes som att kliva in i framtiden—eller Ă„tminstone en glimt av en möjlig framtid. Jag körde norrut i den tysta, digitala bubblan av min elektriska hyrbil. År 2024 blev Norge det första landet i vĂ€rlden dĂ€r elbilar övertrĂ€ffade bensinbilar.

En slÀt, orörd motorvÀg strÀckte sig mellan jordbruksmark och lÄga kullar tÀckta av tÀt grön skog. LÄnga tunnlar ledde vÀgen upp ovanför strÀnderna av MjÞsa, Norges största sjö. Efter lite över en timme krökte vÀgen nedÄt och löpte parallellt med sjöstranden.

Genom glipor i en rad av gyllene björktrĂ€d bröt en hög, smal struktur horisonten. Den reste sig frĂ„n vattenbrynet, krönt av en triangulĂ€r krona av bara, sammanlĂ€nkade balkar. Mot den tunga grĂ„ himlen och den omgivande dimman gav dess bleka brĂ€nda orange exteriör en mjuk vĂ€rme. Det var den enda höga byggnaden i hela landskapet, kĂ€nd som MjĂžstĂ„rnet, "MjĂžsas torn": en 18 vĂ„ningar hög, 277 fot (84 m) hög trĂ€skyskrapa—den högsta helt i trĂ€ i vĂ€rlden.

MjÞstÄrnet ligger pÄ en strandremsa intill den lilla staden Brumunddal. Det rymmer kontor, lÀgenheter och ett hotell med 72 rum. Jag bodde pÄ 11:e vÄningen, och jag Äkte upp i en hisschakt helt i trÀ (Àven om hisskorgen sjÀlv var av stÄl och glas).

TvĂ„ sidor av mitt hörnrum hade stora panoramafönster—ett vĂ€sterut över sjön, det andra norrut lĂ€ngs stranden. Golven var av trĂ€, liksom borden och lamporna. Det fanns en trĂ€sĂ€ng och ett par lĂ„ga svĂ€ngbara stolar gjorda av tunna remsor av böjd furu.

Det mest slĂ„ende inslaget var den enorma trĂ€pelaren som bildade bĂ„de hörnet av mitt rum och, strĂ€ckande sig i segment ovanför och nedanför mig, en av de fyra kantpunkterna av hela tornet. Den sĂ„g betryggande robust ut, som stammen av ett massivt trĂ€d utan bark och formad till en slĂ€t, organisk version av en stĂ„l- eller betongstrĂ€va. Det var nĂ€stan exakt vad det var—förutom att det inte bara var ett trĂ€d utan mĂ„nga: en serie precisionsskurna trĂ€block pressade och hĂ„llna samman med extremt starkt lim, vilket skapar det som kallas massivtrĂ€, eller limtrĂ€ (förkortning för "limmat laminerat trĂ€").

Stycket i mitt rum var det största av sitt slag i byggnaden, med en tvĂ€rsektion som mĂ€tte cirka 2 fot gĂ„nger 5 fot (0,6 m gĂ„nger 1,5 m). Även om det var belagt med en blek vaxlaminat kunde man fortfarande se de unika kvistarna och virvlarna som löpte över dess kompositiva trĂ€skivor.

Genom fönstret gled dimma i vĂ„gor nerför de skogsklĂ€dda sluttningarna pĂ„ den bortre stranden. Vindbyar blĂ„ste fin regn mot glaset. Inuti fanns inget ljud. Utsikten skiftade frĂ„n vitt till grĂ„tt till den annalkande blĂ„ natten. Till slut lade jag mig för att sova i vad jag insĂ„g var en barndomsfantasi—ett jĂ€ttelikt trĂ€dhus i skyn.

MjĂžstĂ„rnet började som en skiss pĂ„ en servett. TvĂ„ rektangulĂ€ra lĂ„dor ritade med blĂ„ kulspetspenna: en liggande, den andra stĂ„ende pĂ„ Ă€nde ovanpĂ„ den. Den fĂ€rdiga strukturen Ă€r inte lĂ„ngt frĂ„n det ursprungliga utkastet—förutom att den andra rektangeln fortsatte att strĂ€cka sig högre och högre. "Höjd var mycket viktigt hĂ€r," sa Arthur Buchardt, utvecklaren som ritade skissen, till mig. "Det var tvungen att vara en signal. För att visa vad som Ă€r möjligt. Och jag tror att det nu har fĂ„tt mĂ„nga mĂ€nniskor att vakna."

Jag trĂ€ffade Buchardt dagen efter att jag anlĂ€nde, pĂ„ 18:e vĂ„ningen i tornet, dĂ€r han har sin egen penthouse-lĂ€genhet. Nu i slutet av 70-Ă„rsĂ„ldern har han utseendet av en Bond-skurk—lĂ„ng, bred, kraftfullt frisk, perfekt skallig—och sĂ€ttet av en Ă€lskad stor farbror, snabb att skratta och full av en ljus, ungdomlig energi. Vi satt vid hans vardagsrumsbord—i trĂ€, naturligtvis—si