 *,
 *::before,
 *::after {
 	margin: 0;
 	padding: 0;
 	box-sizing: border-box;
 }

 :root {
 	--bg: #0c0a10;
 	--surface: #120f18;
 	--surface-raised: #1a1624;
 	--text: #cdc9d8;
 	--text-dim: #7a7387;
 	--text-faded: #3d3848;
 	--accent: #9b87c4;
 	--accent-dim: rgba(155, 135, 196, 0.20);
 	--border: #221e2c;
 	--danger: #8b2020;
 	--danger-dim: rgba(139, 32, 32, 0.20);
 	--danger-border: #5a1a1a;
 	--danger-bg: #1a0a0a;
 }

 body {
 	font-family: 'EB Garamond', Georgia, serif;
 	background: var(--bg);
 	color: var(--text);
 	min-height: 100vh;
 }

 /* --- OPENING --- */

 .opening {
 	min-height: 100vh;
 	display: flex;
 	flex-direction: column;
 	align-items: center;
 	justify-content: center;
 	padding: 80px 24px;
 	text-align: center;
 	position: relative;
 }

 .opening::after {
 	content: '';
 	position: absolute;
 	bottom: 0;
 	left: 50%;
 	transform: translateX(-50%);
 	width: 1px;
 	height: 100px;
 	background: linear-gradient(to bottom, transparent, var(--accent));
 }

 .org-name {
 	font-family: 'Inter', sans-serif;
 	font-size: 0.65rem;
 	font-weight: 700;
 	letter-spacing: 0.4em;
 	text-transform: uppercase;
 	color: var(--accent);
 	margin-bottom: 40px;
 }

 .opening-title {
 	font-size: clamp(2.4rem, 7vw, 5rem);
 	font-weight: 400;
 	letter-spacing: 0.03em;
 	color: var(--text);
 	line-height: 1.15;
 	margin-bottom: 32px;
 	max-width: 800px;
 }

 .opening-title em {
 	font-style: italic;
 	color: var(--text-dim);
 }

 .opening-sub {
 	font-style: italic;
 	font-size: clamp(1.1rem, 2.5vw, 1.4rem);
 	color: var(--text-dim);
 	max-width: 560px;
 	line-height: 1.7;
 	margin-bottom: 64px;
 }

 .scroll-hint {
 	font-family: 'Inter', sans-serif;
 	font-size: 0.65rem;
 	font-weight: 300;
 	letter-spacing: 0.3em;
 	text-transform: uppercase;
 	color: var(--text-faded);
 }

 /* --- BODY --- */

 .body {
 	max-width: 760px;
 	margin: 0 auto;
 	padding: 120px 24px 160px;
 }

 .section {
 	margin-bottom: 96px;
 }

 .section-label {
 	font-family: 'Inter', sans-serif;
 	font-size: 0.6rem;
 	font-weight: 700;
 	letter-spacing: 0.4em;
 	text-transform: uppercase;
 	color: var(--accent);
 	margin-bottom: 24px;
 	padding-bottom: 12px;
 	border-bottom: 1px solid var(--border);
 }

 .section p {
 	font-size: clamp(1.05rem, 2vw, 1.2rem);
 	line-height: 1.85;
 	color: var(--text);
 	margin-bottom: 20px;
 }

 .section p:last-child {
 	margin-bottom: 0;
 }

 .section p strong {
 	font-weight: 600;
 	color: var(--text);
 }

 blockquote {
 	border-left: 2px solid var(--accent);
 	padding-left: 24px;
 	margin: 36px 0;
 	font-style: italic;
 	font-size: clamp(1.1rem, 2.5vw, 1.35rem);
 	color: var(--text-dim);
 	line-height: 1.7;
 }

 /* --- PRIMARY CTA --- */

 .primary-cta {
 	margin-bottom: 64px;
 }

 .primary-cta__lead {
 	font-size: clamp(1.05rem, 2vw, 1.2rem);
 	line-height: 1.75;
 	color: var(--text-dim);
 	margin-bottom: 20px;
 }

 .primary-cta-grid {
 	display: grid;
 	grid-template-columns: repeat(2, minmax(0, 1fr));
 	gap: 2px;
 }

 .primary-cta-card {
 	border: 1px solid var(--border);
 	background: var(--surface);
 	padding: 28px;
 }

 .primary-cta-card--urgent {
 	border-color: var(--danger-border);
 	background: linear-gradient(180deg, rgba(139, 32, 32, 0.18) 0%, var(--surface) 60%);
 }

 .primary-cta-card--support {
 	border-color: var(--accent);
 	background: linear-gradient(180deg, rgba(155, 135, 196, 0.16) 0%, var(--surface) 60%);
 }

 .primary-cta-title {
 	font-family: 'Inter', sans-serif;
 	font-size: 0.72rem;
 	font-weight: 700;
 	letter-spacing: 0.28em;
 	text-transform: uppercase;
 	margin-bottom: 10px;
 	color: var(--text);
 }

 .primary-cta-text {
 	font-size: 0.98rem;
 	line-height: 1.7;
 	color: var(--text-dim);
 	margin-bottom: 16px;
 }

 .primary-cta-links {
 	display: flex;
 	flex-wrap: wrap;
 	gap: 10px;
 }

 .cta-btn {
 	display: inline-block;
 	text-decoration: none;
 	font-family: 'Inter', sans-serif;
 	font-size: 0.66rem;
 	letter-spacing: 0.2em;
 	text-transform: uppercase;
 	font-weight: 700;
 	border: 1px solid var(--border);
 	padding: 10px 14px;
 	color: var(--text);
 	background: var(--surface-raised);
 	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
 }

 .cta-btn:hover {
 	border-color: var(--accent);
 	background: var(--accent-dim);
 	color: var(--text);
 }

 .cta-btn--urgent {
 	border-color: var(--danger-border);
 	background: var(--danger-dim);
 }

 .cta-btn--urgent:hover {
 	border-color: var(--danger);
 	background: rgba(139, 32, 32, 0.34);
 }

 /* --- TWO COL --- */

 .two-col-section {
 	display: grid;
 	grid-template-columns: 1fr 1fr;
 	gap: 2px;
 }

 .two-col-section .section-label {
 	grid-column: 1 / -1;
 }

 .col {
 	background: var(--surface);
 	border: 1px solid var(--border);
 	padding: 32px 28px;
 }

 .col .section-label {
 	border-bottom: none;
 	padding-bottom: 0;
 	margin-bottom: 16px;
 }

 .col p {
 	font-size: clamp(1.05rem, 2vw, 1.15rem);
 	line-height: 1.85;
 	color: var(--text);
 	margin-bottom: 12px;
 }

 .col p:last-child {
 	margin-bottom: 0;
 }

 .col p strong {
 	font-weight: 600;
 }

 @media (max-width: 640px) {
 	.two-col-section {
 		grid-template-columns: 1fr;
 	}

 	.primary-cta-grid {
 		grid-template-columns: 1fr;
 	}
 }

 /* --- PILLARS --- */

 .pillars {
 	display: grid;
 	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
 	gap: 2px;
 	margin-top: 48px;
 }

 .pillar {
 	display: block;
 	background: var(--surface);
 	padding: 32px 28px;
 	border: 1px solid var(--border);
 	color: inherit;
 	text-decoration: none;
 	transition: background 0.2s ease, border-color 0.2s ease;
 }

 .pillar:hover {
 	background: var(--surface-raised);
 	border-color: var(--accent);
 }

 .pillar-symbol {
 	font-size: 1.4rem;
 	display: block;
 	margin-bottom: 16px;
 	color: var(--accent);
 }

 .pillar-name {
 	font-family: 'Inter', sans-serif;
 	font-size: 0.65rem;
 	font-weight: 700;
 	letter-spacing: 0.3em;
 	text-transform: uppercase;
 	color: var(--text);
 	margin-bottom: 12px;
 }

 .pillar p {
 	font-size: 0.95rem;
 	color: var(--text-dim);
 	line-height: 1.7;
 	margin: 0;
 }

 /* --- NAVIGATION --- */

 .nav-section {
 	margin-top: 120px;
 	border-top: 1px solid var(--border);
 	padding-top: 80px;
 }

 .nav-grid {
 	display: grid;
 	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
 	gap: 2px;
 	margin-top: 48px;
 }

 .nav-card {
 	display: block;
 	background: var(--surface);
 	border: 1px solid var(--border);
 	padding: 32px 28px;
 	text-decoration: none;
 	color: var(--text);
 	transition: background 0.2s ease, border-color 0.2s ease;
 }

 .nav-card:hover {
 	background: var(--surface-raised);
 	border-color: var(--accent);
 }

 .nav-card__label {
 	font-family: 'Inter', sans-serif;
 	font-size: 0.6rem;
 	font-weight: 700;
 	letter-spacing: 0.35em;
 	text-transform: uppercase;
 	color: var(--accent);
 	margin-bottom: 12px;
 }

 .nav-card__title {
 	font-size: clamp(1.1rem, 2vw, 1.3rem);
 	font-weight: 400;
 	color: var(--text);
 	margin-bottom: 12px;
 	line-height: 1.3;
 }

 .nav-card__desc {
 	font-size: 0.92rem;
 	font-style: italic;
 	color: var(--text-dim);
 	line-height: 1.65;
 }

 /* --- WARN NOTICE --- */

 .notice--warn {
 	background: var(--danger-bg);
 	border: 1px solid var(--danger-border);
 	border-left: 3px solid var(--danger);
 	padding: 24px 28px;
 	margin-bottom: 48px;
 }

 .notice__head {
 	font-family: 'Inter', sans-serif;
 	font-weight: 700;
 	letter-spacing: 0.15em;
 	text-transform: uppercase;
 	font-size: 0.65rem;
 	color: var(--danger);
 	margin-bottom: 12px;
 }

 .notice--warn p {
 	font-size: 0.95rem;
 	line-height: 1.75;
 	color: var(--text);
 	margin-bottom: 8px;
 }

 .notice--warn p:last-child {
 	margin-bottom: 0;
 }

 /* --- FOOTER --- */

 footer {
 	border-top: 1px solid var(--border);
 	padding: 40px 24px;
	text-align: center;
 	font-family: 'Inter', sans-serif;
 	font-size: 0.65rem;
 	font-weight: 300;
 	letter-spacing: 0.2em;
 	color: var(--text-faded);
 	text-transform: uppercase;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px 22px;
	flex-wrap: wrap;
 }

 footer a {
 	color: var(--text-dim);
 	text-decoration: none;
	margin: 0;
	white-space: nowrap;
 }

 footer a:hover {
 	color: var(--text);
 }

 /* ── Canary pulse ──────────────────────── */
 @keyframes canary-pulse {

 	0%,
 	100% {
 		opacity: 1;
 	}

 	50% {
 		opacity: 0.25;
 	}
 }

 #site-pulse {
 	position: fixed;
	top: var(--ctx-offset, 16px);
 	left: 16px;
 	width: 48px;
 	height: auto;
	z-index: 210;
 	pointer-events: none;
 	animation: canary-pulse 2.4s ease-in-out infinite;
 }

 #site-pulse.pulse-dead {
 	animation: none;
 	transform: rotate(180deg);
 	filter: brightness(0) saturate(100%) invert(17%) sepia(99%) saturate(3000%) hue-rotate(350deg);
 }

 @media (max-width: 600px) {
 	.opening {
 		padding: 60px 20px;
 	}

 	.body {
 		padding: 80px 20px 120px;
 	}

	footer {
		padding: 28px 16px;
		gap: 10px 14px;
		letter-spacing: 0.14em;
	}

	footer a {
		font-size: 0.6rem;
	}
 }

 .lang-toggle {
 	position: fixed;
	top: var(--ctx-offset, 20px);
 	right: 20px;
 	display: flex;
 	gap: 4px;
	z-index: 210;
 }

 .lang-btn {
 	font-family: 'Inter', sans-serif;
 	font-size: 0.6rem;
 	font-weight: 700;
 	letter-spacing: 0.2em;
 	background: var(--surface);
 	border: 1px solid var(--border);
 	color: var(--text-dim);
 	padding: 6px 10px;
 	cursor: pointer;
 	text-transform: uppercase;
 }

 .lang-btn.active {
 	background: var(--accent-dim);
 	border-color: var(--accent);
 	color: var(--accent);
 }

 .lang-btn:hover:not(.active) {
 	border-color: var(--text-faded);
 	color: var(--text);
 }

 .emergency-button {
 	font-family: 'Inter', sans-serif;
 	font-size: 2rem;
 	font-weight: 700;
 	letter-spacing: 0.2em;
 	background: var(--danger);
 	color: var(--text);
 	border: 1px solid var(--border);
 	padding: 6px 10px;
 	cursor: pointer;
 	text-transform: uppercase;
	width: 100%;
 }
/* =============================================
   Status check card (homepage) + shared input
   ============================================= */

.field__input {
    display: block;
    width: 100%;
    background: var(--surface);
    border: 1px solid var(--border);
    color: var(--text);
    font-family: monospace;
    font-size: 0.9rem;
    padding: 10px 14px;
    outline: none;
    transition: border-color 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
}
.field__input:focus { border-color: var(--accent); }

.status-check-card {
    display: grid;
    gap: 10px;
    max-width: 520px;
    margin-top: 16px;
}

.status-check-card__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.status-check-card__msg {
    font-family: 'Inter', sans-serif;
    font-size: 0.8rem;
    color: #b04040;
}

/* Context bar (fixed top bar) */
.ctx-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 8px 16px;
    background: rgba(12, 10, 18, 0.97);
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(4px);
}

/* Opening section adjusted top padding for ctx-bar */
section.opening {
    padding-top: 48px;
}

/* Tor/notice ordered list */
.notice__steps {
    margin: 8px 0 8px 20px;
    line-height: 2;
    font-size: 0.95rem;
}
