*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; background: #050006; color: #f3e9f2; }
body { font-family: "Helvetica Neue", Helvetica, Arial, "Hiragino Sans", "Noto Sans JP", sans-serif; }
.stage { position: relative; height: 100vh; height: 100svh; overflow: hidden; }
canvas { display: block; width: 100%; height: 100%; }
.text { max-width: 74rem; padding: 4rem 16px 6rem; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; font-size: 0.95rem; line-height: 1.85; }
.text p { margin: 0 0 1em; }
.text [lang="en"] { line-height: 1.6; }
h1 { grid-column: 1 / -1; margin: 0; font-size: 1.05rem; font-weight: 500; letter-spacing: 0.02em; }
h1 span { margin-left: 0.8em; font-weight: 400; opacity: 0.7; }
figure { grid-column: 1 / -1; margin: 2rem 0 0; max-width: 44rem; }
blockquote { margin: 0; }
blockquote p { margin: 0 0 0.9em; font-size: 1.25rem; line-height: 1.6; }
.text blockquote p[lang="ja"] { font-size: 1.05rem; line-height: 1.9; opacity: 0.85; }
figcaption { margin-top: 1.5rem; font-size: 0.8rem; line-height: 1.6; opacity: 0.65; }
.fallback { position: absolute; inset: 0; margin: 0; display: grid; place-items: center; padding: 16px; text-align: center; }
.no-gl .stage::after { content: "WebGLが必要です / Requires WebGL"; position: absolute; inset: 0; display: grid; place-items: center; }
@media (max-width: 760px) { .text { grid-template-columns: 1fr; gap: 1rem; } figure { margin-top: 2.5rem; } blockquote p { font-size: 1.1rem; } .text blockquote p[lang="ja"] { font-size: 1rem; } }
.more { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 0 3rem; font-size: 0.8rem; opacity: 0.85; }
.more summary { grid-column: 1 / -1; cursor: pointer; margin-bottom: 1em; }
@media (max-width: 760px) { .more { grid-template-columns: 1fr; } }

/* Return navigation belongs to the existing reading area. */
.home-return { margin: 24px 0 0; font-size: 12px; }
.home-link { color: inherit; font: inherit; text-decoration: underline; text-underline-offset: .2em; }
.home-link:focus-visible { outline: 1px solid currentColor; outline-offset: 4px; }
