これはウェブサイトで使用するための「Guardian Headline Full」フォントファミリーを定義するCSSコードブロックです。フォントの異なるウェイト(ライト、レギュラー、ミディアム、セミボールド)とスタイル(ノーマルまたはイタリック)をそれぞれ指定する複数の@font-faceルールが含まれています。フォントファイルはガーディアンのアセットサーバーでホストされており、コードはさまざまなブラウザ間での互換性を確保するためにフォールバック形式(WOFF2、WOFF、TTF)を提供しています。フォントのウェイトは300(ライト)から600(セミボールド)の範囲で、各ウェイトに対応するイタリック版も含まれています。
このテキストは自然言語の散文ではなくCSSコードのように見えます。ウェブページのフォントスタイルとレイアウトルールを定義しています。技術的なコードであるため、「流暢で自然な英語」に書き換えることは該当しません。すでに正確で標準化された形式です。ただし、それが何をするのかを平易な英語で要約することはできます。
このコードは、ウェブサイト用のカスタムフォントを設定し、「Guardian Headline」および「Guardian Titlepiece」フォントのさまざまなウェイトとスタイルを特定のファイル形式から読み込みます。また、コンテンツコラムのレスポンシブレイアウトルールを定義し、画面サイズに基づいてマージンと幅を調整します。たとえば、より広い画面では左マージンを追加し、イマーシブやショーケースなどの特定の要素では、ビューポートに合わせて幅と位置を調整します。これらのルールにより、テキストと埋め込み要素がほとんどのデバイスで読みやすい幅(約620ピクセル)に保たれ、大きな画面ではより大きな要素を拡張できるようになります。
.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 { ... }水平線またはエレメントアトムの後の最初の段落は、上部に余分なスペースが必要です。これは、これらの要素のいずれかの直後、または広告スロットコンテナの後に続く最初の段落に適用されます。同じルールが、記事本文、インタラクティブコンテンツ、コメント、特集セクションなど、ページのさまざまなセクションに適用されます。
さらに、その最初の段落の最初の文字は特別な方法でスタイル設定される必要があります。このスタイル設定は、水平線またはエレメントアトムの後、要素の直後か広告スロットコンテナの後かにかかわらず、その段落の最初の文字に適用されます。これは、上記のすべての同じセクションに適用されます。
[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 {
/ 追加のスタイルは指定されていません /
}
}
ここに、流暢で自然な英語で書き直したテキストがあります:
ファニチャーラッパーのスタイルは、記事ヘッダー、リード文、メディア要素のレイアウトと外観を調整します。リード文セクションには小さな左オフセットとパディングがあり、左側に微妙な境界線があります。大きな画面では、少し上部に余分なパディングが追加されます。
見出しは太字で、最大幅620ピクセル、フォントサイズ32ピクセルです。非常に広い画面では、幅が540ピクセルに狭まり、フォントサイズが50ピクセルに増加します。
装飾線(keyline-4)は中画面と大画面で非表示になりますが、表示される場合はCSS変数で定義されたストロークカラーを使用します。
メタセクション(ソーシャル共有とコメントを含む)は、中画面では右マージンがありません。その境界線はヘッダー境界線の色と一致します。メタセクション内の一部のインタラクティブ要素は非表示になります。
メインメディア領域はコンテナに対して相対的に配置され、上部マージンがなく、下部マージンが小さくなっています。モバイルデバイスでは、ビューポート全体の幅に拡張され、負の左マージンで適切に配置されます。大きな画面では、下部マージンが削除されます。
画像キャプションはメディアの下部にオーバーレイされ、半透明の背景とテキストカラーがあります。最小の高さがあり、小さなアイコンが含まれています。最初のアイコンは非表示で、2番目は最大幅で表示されます。キャプションボタンはコーナーに円形ボタンとして表示され、ユーザーがキャプションの表示を切り替えることができます。
ダークモードでは、特定のテキストとリンクの色がコントラストを良くするために調整され、特定のCSS変数を使用します。
最後に、非常に広い画面では、メインコンテンツコラムの上部と下部の境界線がわずかに拡張されます。このコラム内の見出しは最大幅620ピクセルに制限されます。
申し訳ありませんが、このテキストは自然言語の散文ではなくCSSコードのように見えるため、書き直すことはできません。流暢で自然な英語で書き直してほしいテキストを提供していただけますか?
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-schemeI traveled to Oslo in early autumn, and it felt like stepping into the future—or at least a glimpse of one possible future. I drove north in the quiet, digital bubble of my electric rental car. In 2024, Norway became the first country in the world where electric cars outnumbered petrol cars.
A smooth, pristine motorway stretched out between farmlands and low hills covered in dense green forest. Long tunnels carried the route up above the banks of Lake Mjøsa, Norway’s largest lake. After a little over an hour, the road curved downward and ran parallel to the lakeshore.
Through gaps in a line of golden birch trees, a tall, slim structure broke the horizon. It rose from the water’s edge, topped by a triangular crown of bare, interlocking beams. Against the heavy grey sky and the surrounding mist, its pale burnt-orange exterior gave off a gentle warmth. It was the only tall building anywhere in the landscape, known as Mjøstårnet, the "Tower of Mjøsa": an 18-storey, 277ft (84m) high wooden skyscraper—the tallest all-timber building in the world.
Mjøstårnet sits on a slice of shoreline next to the small town of Brumunddal. It houses offices, apartments, and a 72-room hotel. I was staying on the 11th floor, and I rode up in an elevator shaft made entirely of wood (though the elevator cabin itself was steel and glass).
Two sides of my corner room had large picture windows—one looking west across the lake, the other north along the shore. The floors were wooden, as were the tables and lamps. There was a wooden bed and a pair of low swivel chairs made from thin slats of bent pinewood.
The most striking feature was the huge wooden column that formed both the corner of my room and, extending in segments above and below me, one of the four edge-points of the whole tower. It looked reassuringly sturdy, like the trunk of a massive tree stripped of its bark and shaped into a smooth, organic version of a steel or concrete strut. That’s almost exactly what it was—except it wasn’t just one tree but many: a series of precision-cut timber blocks pressed and held together with extremely strong glue, creating what’s known as mass timber, or glulam (short for "glued laminated timber").
The piece in my room was the largest of its kind in the building, with a cross-section measuring about 2ft by 5ft (0.6m by 1.5m). Although coated in a pale wax laminate, you could still see the unique knots and whorls running across its composite slices of wood.
Through the window, mist slipped in waves down the forested slopes of the far shore. Gusts of wind blew fine rain against the glass. Inside, there was no sound. The view shifted from white to grey to the encroaching blue of night. Eventually, I settled down to sleep in what I realized was something of a childhood fantasy—a giant treehouse in the sky.
Mjøstårnet began as a sketch on a napkin. Two rectangular boxes drawn in blue ballpoint pen: one lying flat, the other standing on end on top of it. The finished structure isn’t far from that original draft—except the second rectangle kept stretching higher and higher. "Height was very important here," Arthur Buchardt, the developer who drew the sketch, told me. "It had to be a signal. To show what is possible. And I think now it has made a lot of people wake up."
I met Buchardt the day after I arrived, on the 18th floor of the tower, where he keeps his own penthouse apartment. Now in his late 70s, he has the look of a Bond villain—tall, broad, vigorously healthy, perfectly bald—and theThe manner of a beloved great-uncle, quick to laugh and full of a bright, youthful energy. We sat at his living room table—wooden, naturally—sipping black coffee and gazing out through the floor-to-ceiling windows that make up the entire western side of the penthouse.
All the wood, Buchardt told me, gesturing around the apartment and at the building as a whole, came from the nearby landscape. In the center of the room stood an L-shaped pillar of gray marble with a gas fireplace. That stone, he said, was quarried from the surrounding hills. Even the artwork on the walls was local. "So this was a political statement," he said. "To use all this local material."
Buchardt moved to Brumunddal as a boy and spent most of his teenage years there. After earning a business degree—studying at Oslo and Edinburgh universities—he returned to take over his father-in-law's plumbing company. A few years later, he sold it and used the money to move into property development. Then, when the 1994 Winter Olympics came to Lillehammer and the town needed new housing for athletes and visitors, he built his first hotel. He has built 23 more since, all across Scandinavia. And increasingly, he has built them out of wood.
"About 10 years ago, I had to wake up a little bit myself. About the importance of the environment, about what we are doing to it," he told me. It was the announcement of the Paris climate agreement in December 2015—with its global promise to cut emissions and move toward net zero—that pushed Buchardt into action. "Politicians talked about the need for a 'great green change.' And I thought, how can I respond to those political signals?" All he really knew how to do was make buildings. But what if he made them differently?
"It was right then, in 2015, that I put some drawings on this napkin. And I took it to an architect"—the Trondheim-based firm Voll Arkitekter—"and asked them, 'How big is it possible to go with a high-rise wooden building?' Because you can't make large modern structures entirely without steel or concrete. But you can reduce how much you use. You can reduce that a lot."
View image in fullscreen
The view from the top of Mjøstårnet. Photograph: 360Cities.net/Alamy
This is the thing about concrete. Not only is the world running short of the sand needed to make it—and having to consider