플랫팩 초고층 빌딩: 목재가 어떻게 내일의 도시를 형성할 수 있을까.
이것은 웹사이트에서 "Guardian Headline Full" 글꼴 패밀리를 정의하는 CSS 코드 블록입니다. 글꼴의 각기 다른 두께(라이트, 레귤러, 미디엄, 세미볼드)와 스타일(일반 또는 이탤릭)을 지정하는 여러 @font-face 규칙이 포함되어 있습니다. 글꼴 파일은 Guardian의 에셋 서버에 호스팅되며, 코드는 다양한 브라우저 간 호환성을 보장하기 위해 대체 형식(WOFF2, WOFF, TTF)을 제공합니다. 글꼴 두께는 300(라이트)에서 600(세미볼드)까지이며, 각 두께에 해당하는 이탤릭 버전도 포함되어 있습니다.
이 텍스트는 자연어 산문이 아닌 CSS 코드로 보입니다. 웹페이지의 글꼴 스타일과 레이아웃 규칙을 정의합니다. 기술적 코드이므로 "유창하고 자연스러운 영어"로 다시 쓰는 것은 적절하지 않습니다. 이미 정확하고 표준화된 형식이기 때문입니다. 그러나 코드가 수행하는 작업에 대한 평이한 영어 요약을 제공할 수 있습니다:
이 코드는 웹사이트용 사용자 정의 글꼴을 설정하며, "Guardian Headline" 및 "Guardian Titlepiece" 글꼴의 다양한 두께와 스타일을 특정 파일 형식에서 로드합니다. 또한 콘텐츠 열에 대한 반응형 레이아웃 규칙을 정의하여 화면 크기에 따라 여백과 너비를 조정합니다. 예를 들어, 더 넓은 화면에서는 왼쪽 여백을 추가하고, immersive 또는 showcase와 같은 특정 요소의 경우 뷰포트에 맞게 너비와 위치를 조정합니다. 이 규칙은 대부분의 기기에서 텍스트와 삽입된 요소가 읽을 수 있는 너비(약 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 변수로 정의된 획 색상을 사용합니다.
메타 섹션(소셜 공유 및 댓글 포함)은 중간 화면에서 오른쪽 여백이 없습니다. 테두리는 헤더 테두리 색상과 일치합니다. 메타 섹션 내의 일부 인터랙티브 요소는 숨겨집니다.
메인 미디어 영역은 컨테이너에 상대적으로 위치하며 상단 여백이 없고 하단 여백이 약간 있습니다. 모바일 기기에서는 뷰포트 전체 너비로 확장되고 음수 왼쪽 여백으로 정렬됩니다. 더 큰 화면에서는 하단 여백이 제거됩니다.
이미지 캡션은 미디어 하단에 오버레이되며 반투명 배경과 텍스트 색상이 있습니다. 최소 높이가 있고 작은 아이콘이 포함됩니다. 첫 번째 아이콘은 숨겨지고 두 번째 아이콘은 최대 너비로 표시됩니다. 캡션 버튼은 모서리에 원형 버튼으로 나타나 사용자가 캡션 표시 여부를 전환할 수 있습니다.
다크 모드에서는 특정 텍스트 및 링크 색상이 더 나은 대비를 위해 특정 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-scheme나는 초가을에 오슬로를 여행했고, 그곳은 미래로 들어서는 것 같은 느낌이었다—적어도 가능한 미래 중 하나를 엿보는 것 같았다. 나는 조용하고 디지털적인 전기 렌터카의 거품 속에서 북쪽으로 운전했다. 2024년, 노르웨이는 세계 최초로 전기차가 휘발유차보다 많아진 나라가 되었다.
매끄럽고 깨끗한 고속도로가 농지와 울창한 녹색 숲으로 덮인 낮은 언덕 사이로 뻗어 있었다. 긴 터널들이 노르웨이에서 가장 큰 호수인 뫼사호의 기슭 위로 길을 이끌었다. 한 시간 조금 넘게 달리자 도로는 아래로 휘어지며 호숫가와 나란히 달렸다.
금빛 자작나무 줄 사이의 틈으로, 높고 가느다란 구조물이 지평선을 가르며 나타났다. 그것은 물가에서 솟아올랐고, 맨살의 서로 맞물린 빔으로 이루어진 삼각형 왕관으로 꼭대기가 장식되어 있었다. 무거운 회색 하늘과 주변의 안개 속에서, 그 창백한 번트 오렌지색 외관은 은은한 온기를 발산했다. 그것은 그 풍경 어디에서도 유일한 고층 건물로, 뫼스토르네트(Mjøstårnet), 즉 "뫼사의 탑"으로 알려져 있었다: 18층, 277피트(84m) 높이의 목조 마천루—세계에서 가장 높은 전체 목재 건물이었다.
뫼스토르네트는 브룸운달이라는 작은 마을 옆의 호숫가 일부에 자리 잡고 있다. 사무실, 아파트, 그리고 72개의 객실을 갖춘 호텔이 들어서 있다. 나는 11층에 묵었고, 완전히 나무로 만들어진 엘리베이터 샤프트를 타고 올라갔다(엘리베이터 캐빈 자체는 강철과 유리였다).
코너 룸의 양쪽에는 큰 창문이 있었다—하나는 호수를 가로질러 서쪽을, 다른 하나는 해안을 따라 북쪽을 바라보았다. 바닥은 나무였고, 테이블과 램프도 나무였다. 나무 침대와 구부러진 소나무 얇은 조각으로 만든 낮은 회전 의자 두 개가 있었다.
가장 인상적인 특징은 내 방의 모서리를 이루는 거대한 나무 기둥이었고, 위아래로 분절되어 확장되면서 전체 타워의 네 모서리 지점 중 하나를 형성했다. 그것은 마치 껍질이 벗겨져 매끄럽고 유기적인 강철이나 콘크리트 지지대 버전으로 다듬어진 거대한 나무 줄기처럼 안심이 될 만큼 튼튼해 보였다. 그것은 거의 정확히 그런 것이었다—단지 하나의 나무가 아니라 많은 나무였다: 매우 강한 접착제로 압착되고 고정된 일련의 정밀 절단 목재 블록으로, 대량 목재(mass timber) 또는 글루람(glulam, "접착 적층 목재"의 약자)으로 알려진 것을 만들었다.
내 방에 있는 조각은 건물에서 가장 큰 종류로, 단면이 약 2피트 x 5피트(0.6m x 1.5m)였다. 창백한 왁스 라미네이트로 코팅되어 있었지만, 합성된 나무 조각들을 가로질러 흐르는 독특한 옹이와 나이테를 여전히 볼 수 있었다.
창문을 통해 안개가 먼 해안의 숲이 우거진 경사면을 따라 물결치듯 흘렀다. 돌풍이 가는 비를 유리에 부딪치게 했다. 내부에는 소리가 없었다. 풍경은 흰색에서 회색으로, 그리고 다가오는 밤의 푸른색으로 바뀌었다. 결국 나는 어린 시절의 환상—하늘에 떠 있는 거대한 트리하우스—을 실현한 곳에서 잠들었다.
뫼스토르네트는 냅킨 위의 스케치로 시작되었다. 파란 볼펜으로 그린 두 개의 직사각형 상자: 하나는 평평하게 누워 있고, 다른 하나는 그 위에 세워져 있었다. 완성된 구조물은 원래 초안에서 크게 벗어나지 않았다—두 번째 직사각형이 계속해서 더 높이 솟아오른 것만 빼고. "높이는 여기서 매우 중요했습니다," 스케치를 그린 개발자 아서 부샤르트가 나에게 말했다. "그것은 신호여야 했습니다. 무엇이 가능한지 보여주기 위해서요. 그리고 지금 그것은 많은 사람