:root {
--bg: #ffffff;
--text: #111111;
--muted: #666666;
--line: #dddddd;
--link: #1f5fbf;
--accent: #bb0b0b;
--max-width: 1240px;
--content-width: 980px;
}

* {
box-sizing: border-box;
}

body {
margin: 0;
background: var(--bg);
color: var(--text);
font-family: Georgia, "Times New Roman", serif;
line-height: 1.75;
overflow-x: hidden;
}

.container {
max-width: var(--max-width);
margin: 0 auto;
padding: 0 24px 10px 24px;
}

.copy-width {
max-width: var(--content-width);
margin: 0 auto;
}

.header {
max-width: 1400px;
margin: 0 auto;
padding-top: 20px;
padding-bottom: 0;
}

.headline {
margin: 0;
font-family: "Source Sans 3", sans-serif;;
font-size: clamp(2.6rem, 4.6vw, 4.6rem);
line-height: 1.05;
font-weight: 900;
text-align: center;
letter-spacing: 0.01em;
max-width: 100%;
}

.dek {
margin: 2px auto 5px auto;
padding: 0 20px;
text-align: center;
font-family: "Source Sans 3", sans-serif;
font-weight: 600;
font-size: 1.12rem;
line-height: 1.35;
letter-spacing: 0.01em;
color: var(--muted);
}

.attribution {
text-align: center;
color: var(--muted);
font-size: 1.02rem;
}

.attribution p {
margin: 0 0;
}
.attribution {
font-family: "Source Sans 3", sans-serif;
font-size: 1rem;
letter-spacing: 0.02em;
font-weight: 600;
}

hr {
border: none;
border-top: 2px solid var(--accent);
margin: 10px 100px;
}

.prose {
font-size: 1.32rem;
margin: 1.3rem 0;
}

.hero-graphic {
width: 100%;
max-width: 100%;
margin: 14px auto 34px auto;
}

.hero-graphic img {
width: 100%;
max-width: 100%;
height: auto;
display: block;
}
.hero-caption {
max-width: 1120px;
margin: 10px auto 0 auto;
padding: 0 20px;
color: var(--muted);
font-size: 1rem;
line-height: 1.45;
}

.graphic-container {
margin: 0px auto;
max-width: var(--content-width);
}
.graphic-frame {
margin-top: 12px;
padding: 10px;
}

.graphic-frame img {
width: 100%;
height: auto;
display: block;
}

.graphic-footer {
margin-top: 12px;
color: var(--muted);
font-size: 1rem;
line-height: 1.45;
}

.methods h3 {
margin-top: 0;
margin-bottom: 10px;
font-size: 1.65rem;
line-height: 1.25;
}

.methods p {
font-size: 1.32rem;
color: #333333;
}

a {
color: var(--link);
text-decoration: none;
}

a:hover {
text-decoration: underline;
}

img {
max-width: 100%;
}

.inline-icon {
display: inline-block;
width: 1em;
height: 0.9em;
vertical-align: -0.12em;
margin: 0 0 0 0;
padding-bottom: 2px;
}

.site-footer {
background: #7d1d16;
color: #ffffff;
padding: 20px 24px 16px 24px;
}
.footer-inner {
width: 100%;
max-width: 1600px;
margin: 0 auto;
text-align: center;
}

.footer-inner p {
margin: 0 0 8px 0;
font-size: 0.92rem;
line-height: 1.2;
color: #ffffff;
white-space: normal;
}
.footer-credit {
margin-top: 2px;
font-size: 0.9rem;
opacity: 0.95;
}

.footer-icon {
filter: brightness(0) invert(1);
}

.splash-screen {
position: fixed;
inset: 0;
z-index: 9999;
overflow: hidden;
transition: transform 0.95s ease, opacity 0.95s ease;
}

.splash-screen.is-hidden {
transform: translateY(-100%);
opacity: 0;
pointer-events: none;
}

.splash-image {
position: absolute;
inset: 0;
background: url("images/volcanic-eruption.jpg") center center / cover no-repeat;
}
.splash-overlay {
position: absolute;
inset: 0;
background:
linear-gradient(to bottom, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.38)),
radial-gradient(circle at 50% 75%, rgba(255, 110, 0, 0.10), rgba(0, 0, 0, 0) 45%);
}

.splash-content {
position: absolute;
inset: 0;
z-index: 2;
color: #ffffff;
text-align: center;
}

.splash-title {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: min(90vw, 1100px);
margin: 0;
font-family: "Fugaz One", sans-serif;
font-size: clamp(3rem, 2vw, 8rem);
line-height: 1.1;
font-weight: 400;
letter-spacing: 0.01em;
text-shadow: 0 2px 14px rgba(0, 0, 0, 0.35);
}
.splash-subtitle {
position: absolute;
left: 50%;
bottom: 36px;
transform: translateX(-50%);
margin: 0;
font-size: 0.98rem;
letter-spacing: 0.08em;
text-transform: uppercase;
color: rgba(255, 255, 255, 0.88);
padding: 10px 14px;
border: 1px solid rgba(255, 255, 255, 0.35);
border-radius: 999px;
backdrop-filter: blur(4px);
white-space: nowrap;
}

@media (max-width: 1100px) {
.headline {
font-size: clamp(2.2rem, 4.6vw, 3.6rem);
}

.dek {
font-size: 1.02rem;
}
}

@media (max-width: 900px) {
.container {
padding: 0 20px 10px 20px;
}

.header {
padding-top: 42px;
padding-bottom: 10px;
}

.headline {
font-size: 2.75rem;
line-height: 1.1;
}

.dek {
font-size: 1rem;
padding: 0 10px;
}

.prose {
font-size: 1.18rem;
}

.site-footer {
padding: 18px 18px 14px 18px;
}

.footer-inner p {
font-size: 0.9rem;
line-height: 1.3;
}
.footer-credit {
font-size: 0.88rem;
}

.splash-title {
width: min(92vw, 700px);
font-size: 2.8rem;
}

.splash-subtitle {
bottom: 24px;
font-size: 0.9rem;
padding: 8px 12px;
}
}

@media (max-width: 768px) {
hr {
margin: 10px 0;
}

.headline {
font-size: 2.35rem;
}

.prose {
font-size: 1.1rem;
}
.graphic-container {
margin: 28px auto;
}

.hero-graphic {
margin: 10px auto 26px auto;
}

.hero-caption {
font-size: 0.95rem;
padding: 0 6px;
}

.methods h3 {
font-size: 1.45rem;
}

.methods p {
font-size: 1.08rem;
}
}

img[alt="Shield volcano icon"] {
height: 0.6em;
padding-bottom: 3px;
}

.top-banner {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  position: relative;  
}

.top-banner img {
  width: 100%;
  height: 55vh;
  object-fit: cover;
  display: block;
}

.top-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;

  background: rgba(0, 0, 0, 0.95);
  color: white;

  padding: 14px 32px;

  text-align: right;

  font-size: 1.1rem;
  letter-spacing: 0.01em;
}

.icon-word {
  white-space: nowrap; 
}
