:root {
	--font-sans: "Space Grotesk", "Segoe UI", sans-serif;
	--font-mono: "JetBrains Mono", "SFMono-Regular", monospace;
	--bg-absolute: #0a0c0e;
	--bg-elevated: #10141a;
	--bg-soft: rgba(16, 20, 26, 0.78);
	--bg-strong: #141a22;
	--text-primary: #eef2f3;
	--text-muted: #8ba8a3;
	--text-dim: #5f7571;
	--accent: #5eead4;
	--accent-strong: #99f6e4;
	--accent-dim: rgba(94, 234, 212, 0.14);
	--border-soft: rgba(255, 255, 255, 0.07);
	--border-accent: rgba(94, 234, 212, 0.22);
	--shadow-soft: 0 24px 70px rgba(6, 20, 18, 0.36);
	--shadow-strong: 0 32px 90px rgba(4, 14, 12, 0.46);
	--shadow-card: 0 22px 56px rgba(6, 18, 16, 0.3);
	--shadow-card-hover: 0 28px 70px rgba(4, 14, 12, 0.42);
	--success-green: #6ee7b7;
	--error-red: #fca5a5;
	--container-wide: 1240px;
	--nav-offset: 18px;
	--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--ease-card: cubic-bezier(0.32, 0.72, 0, 1);
	--ease-smooth: cubic-bezier(0.22, 1, 0.36, 1);
}

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

html {
	scroll-behavior: smooth;
	scrollbar-width: thin;
	scrollbar-color: rgba(94, 234, 212, 0.18) var(--bg-absolute);
}

html::-webkit-scrollbar {
	width: 8px;
}

html::-webkit-scrollbar-track {
	background: var(--bg-absolute);
}

html::-webkit-scrollbar-thumb {
	background: rgba(94, 234, 212, 0.18);
	border-radius: 999px;
}

body {
	font-family: var(--font-sans);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: -0.015em;
	color: var(--text-primary);
	background: var(--bg-absolute);
	min-height: 100vh;
	min-width: 320px;
	overflow-x: hidden;
	padding-top: 108px;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
textarea,
select {
	font: inherit;
}

button {
	background: none;
	border: none;
	color: inherit;
}

svg {
	display: block;
}

ul {
	list-style: none;
}

::selection {
	background: var(--accent);
	color: var(--bg-absolute);
}

:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 4px;
}

.skip-link {
	position: absolute;
	left: 16px;
	top: -56px;
	z-index: 40;
	padding: 10px 14px;
	border-radius: 999px;
	background: var(--accent);
	color: var(--bg-absolute);
	font-family: var(--font-mono);
	font-size: 12px;
	transition: top 0.25s var(--ease-out);
}

.skip-link:focus {
	top: 16px;
}

.background-pattern,
.noise-overlay {
	position: fixed;
	inset: 0;
	pointer-events: none;
}

.background-pattern {
	z-index: 0;
	background:
		radial-gradient(
			circle at 12% 14%,
			rgba(94, 234, 212, 0.12),
			transparent 28%
		),
		radial-gradient(
			circle at 86% 10%,
			rgba(94, 234, 212, 0.06),
			transparent 32%
		),
		radial-gradient(
			circle at 52% 72%,
			rgba(94, 234, 212, 0.04),
			transparent 34%
		),
		linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 26%),
		var(--bg-absolute);
}

.background-pattern::before,
.background-pattern::after {
	content: "";
	position: absolute;
	inset: 0;
}

.background-pattern::before {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
	background-size: 88px 88px;
	opacity: 0.18;
}

.background-pattern::after {
	background: linear-gradient(
		180deg,
		rgba(10, 12, 14, 0.05),
		rgba(10, 12, 14, 0.8) 80%
	);
}

.noise-overlay {
	z-index: 1;
	opacity: 0.04;
	background-image:
		repeating-radial-gradient(
			circle at 0 0,
			rgba(255, 255, 255, 0.7) 0 1px,
			transparent 1px 4px
		),
		repeating-radial-gradient(
			circle at 100% 100%,
			rgba(255, 255, 255, 0.35) 0 1px,
			transparent 1px 5px
		);
	background-size: 180px 180px;
	mix-blend-mode: soft-light;
}

.animate-element {
	will-change: transform, opacity, filter;
}

/* --- Mode switching --- */

.mode-normal .normal-container {
	display: block;
}

.mode-normal .terminal-container {
	display: none;
}

.mode-terminal .normal-container {
	display: none;
}

.mode-terminal .terminal-container {
	display: block;
}

.mode-normal .toggle-option[data-mode="normal"],
.mode-terminal .toggle-option[data-mode="terminal"] {
	color: var(--accent-strong);
}

.mode-normal .toggle-slider {
	transform: translateX(0);
}

.mode-terminal .toggle-slider {
	transform: translateX(calc(100% + 2px));
}

.normal-container,
.terminal-container {
	position: relative;
	z-index: 2;
	opacity: 1;
}

/* --- Navbar --- */

.navbar {
	position: fixed;
	top: var(--nav-offset);
	left: 0;
	right: 0;
	padding: 0 18px;
	z-index: 20;
	pointer-events: none;
}

.navbar-inner {
	max-width: var(--container-wide);
	margin: 0 auto;
	min-height: 68px;
	padding: 10px 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	border: 1px solid var(--border-soft);
	border-radius: 999px;
	background: rgba(10, 14, 18, 0.72);
	backdrop-filter: blur(20px);
	box-shadow: 0 8px 30px rgba(4, 12, 10, 0.22);
	pointer-events: auto;
}

.nav-brand,
.eyebrow,
.meta-pill,
.delivery-label,
.io-key,
.section-kicker,
.capability-eyebrow,
.capability-link,
.workflow-number,
.contact-label,
.prompt,
.help-cmd,
.contact-label-terminal,
.metric-label,
.modal-kicker,
.modal-close-hint,
.hero-tags li {
	font-family: var(--font-mono);
}

.nav-brand {
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: -0.04em;
	white-space: nowrap;
}

.nav-brand-accent {
	color: var(--accent);
}

.nav-meta,
.nav-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.meta-pill,
.hero-tags li,
.manifesto-tags span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 12px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.05);
	background: rgba(255, 255, 255, 0.03);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.nav-weather {
	min-width: 126px;
	justify-content: center;
}

.nav-toggle {
	position: relative;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 5px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.07);
	background: rgba(255, 255, 255, 0.04);
}

.toggle-option {
	position: relative;
	z-index: 1;
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	border-radius: 999px;
	color: var(--text-dim);
	cursor: pointer;
	transition:
		color 0.2s ease,
		transform 0.2s var(--ease-out);
}

.toggle-option:hover {
	transform: translateY(-1px);
}

.toggle-slider {
	position: absolute;
	left: 5px;
	top: 5px;
	width: calc(50% - 6px);
	height: calc(100% - 10px);
	border-radius: 999px;
	background: rgba(94, 234, 212, 0.12);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
	transition: transform 0.3s var(--ease-out);
}

/* --- Normal container --- */

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

/* --- Hero --- */

.hero {
	min-height: calc(100dvh - 160px);
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.92fr);
	align-items: center;
	gap: clamp(24px, 5vw, 56px);
	padding: 38px 0 24px;
}

.hero-copy {
	max-width: 720px;
}

.eyebrow,
.section-kicker,
.capability-eyebrow,
.capability-link,
.modal-kicker {
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--accent);
}

.hero-title {
	margin-top: 18px;
	font-size: clamp(3.4rem, 7.5vw, 5.8rem);
	font-weight: 700;
	letter-spacing: -0.06em;
	line-height: 1.02;
	text-wrap: balance;
}

.hero-line {
	display: block;
}

.hero-line-accent {
	color: var(--accent-strong);
}

.hero-actions {
	margin-top: 32px;
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
}

.primary-cta {
	transition:
		transform 0.4s var(--ease-card),
		color 0.2s ease,
		background 0.2s ease,
		border-color 0.2s ease;
}

.primary-cta {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 8px 8px 8px 22px;
	border-radius: 999px;
	background: var(--accent-dim);
	border: 1px solid var(--border-accent);
	color: var(--text-primary);
	font-weight: 600;
	box-shadow: 0 18px 40px rgba(6, 18, 16, 0.18);
}

.primary-cta:hover {
	transform: translateY(-2px);
	background: rgba(94, 234, 212, 0.18);
	box-shadow: 0 22px 50px rgba(6, 18, 16, 0.24);
}

.primary-cta:active {
	transform: scale(0.985);
}

.cta-icon {
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border-radius: 999px;
	background: rgba(10, 12, 14, 0.6);
	color: var(--accent-strong);
	font-size: 1rem;
	transition:
		transform 0.4s var(--ease-card),
		background 0.2s ease;
}

.primary-cta:hover .cta-icon {
	transform: translate(4px, -1px) scale(1.05);
	background: rgba(10, 12, 14, 0.8);
}

.hero-desc {
	margin-top: 20px;
	max-width: 54ch;
	color: var(--text-muted);
	font-size: clamp(1.02rem, 1.3vw, 1.15rem);
	line-height: 1.7;
	text-wrap: pretty;
}

.hero-tags {
	margin-top: 30px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

/* --- Hero panel --- */

.hero-panel {
	align-self: stretch;
}

.shell-card {
	padding: 8px;
	border-radius: 2rem;
	background: rgba(255, 255, 255, 0.025);
	border: 1px solid rgba(255, 255, 255, 0.05);
	box-shadow: var(--shadow-soft);
	height: fit-content;
}

.shell-card-inner {
	height: 100%;
	padding: 28px;
	border-radius: calc(2rem - 8px);
	border: 1px solid rgba(255, 255, 255, 0.04);
	background: linear-gradient(
		180deg,
		rgba(18, 24, 30, 0.96),
		rgba(12, 16, 20, 0.98)
	);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.hero-panel-inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
	justify-content: space-between;
}

/* --- Delivery rows --- */

.delivery-rows {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.delivery-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 18px;
	padding: 14px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.04);
}

.delivery-label {
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-dim);
	flex-shrink: 0;
}

.delivery-value {
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--text-primary);
	letter-spacing: -0.02em;
}

/* --- Delivery IO --- */

.delivery-io {
	display: grid;
	gap: 2px;
	padding-top: 4px;
}

.io-line {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 18px;
	padding: 10px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.04);
}

.io-key {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-dim);
	flex-shrink: 0;
}

.io-val {
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--accent-strong);
	text-align: right;
}

/* --- Sections --- */

.section-block {
	padding-top: clamp(5rem, 9vw, 8rem);
}

.section-heading {
	max-width: 780px;
}

.section-title {
	margin-top: 14px;
	font-size: clamp(2rem, 4.5vw, 3.2rem);
	font-weight: 700;
	letter-spacing: -0.05em;
	line-height: 1.0;
	text-wrap: balance;
}

/* --- Capability grid --- */

.capability-grid {
	margin-top: 34px;
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 20px;
}

.capability-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-height: 200px;
	padding: 28px;
	border-radius: 1.5rem;
	border: 1px solid rgba(255, 255, 255, 0.06);
	background: linear-gradient(
		180deg,
		rgba(18, 24, 30, 0.92),
		rgba(12, 16, 20, 0.98)
	);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.07),
		var(--shadow-card);
	color: inherit;
	text-align: left;
	cursor: pointer;
	overflow: hidden;
	transition:
		transform 0.45s var(--ease-card),
		border-color 0.25s ease,
		box-shadow 0.35s var(--ease-card),
		background 0.2s ease;
}

.capability-card::before {
	content: "";
	position: absolute;
	left: 18px;
	right: 18px;
	top: 0;
	height: 1px;
	background: linear-gradient(
		90deg,
		transparent,
		rgba(94, 234, 212, 0.6),
		transparent
	);
	opacity: 0.4;
}

.capability-card::after {
	content: "";
	position: absolute;
	inset: -1px;
	background: radial-gradient(
		320px circle at var(--spotlight-x, 50%) var(--spotlight-y, 50%),
		rgba(94, 234, 212, 0.12),
		transparent 44%
	);
	opacity: 0;
	transition: opacity 0.35s ease;
	pointer-events: none;
}

.capability-card:hover::after {
	opacity: 1;
}

.capability-card > * {
	position: relative;
	z-index: 1;
}

.capability-card:hover {
	transform: translateY(-4px);
	border-color: var(--border-accent);
	box-shadow:
		inset 0 1px 0 rgba(94, 234, 212, 0.12),
		var(--shadow-card-hover);
}

.capability-card:active {
	transform: translateY(-1px) scale(0.995);
}

.capability-card--wide {
	grid-column: span 7;
}

.capability-card--tall {
	grid-column: span 5;
}

.capability-card--compact {
	grid-column: span 4;
}

.capability-card--long {
	grid-column: span 8;
}

.capability-title {
	font-size: clamp(1.3rem, 2vw, 1.9rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.05;
}

.capability-text {
	color: var(--text-muted);
	font-size: 0.95rem;
	line-height: 1.6;
	max-width: 48ch;
}

.capability-link {
	margin-top: auto;
	color: var(--accent-strong);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* --- Pressure section --- */

.pressure-layout {
	margin-top: 34px;
	display: grid;
	grid-template-columns: minmax(280px, 0.88fr) minmax(0, 1.12fr);
	gap: 24px;
	align-items: start;
}

.pressure-copy {
	position: sticky;
	top: 116px;
	align-self: start;
}

.pressure-list {
	display: grid;
	gap: 14px;
}

.pressure-item {
	position: relative;
	display: grid;
	grid-template-columns: 52px 1fr;
	gap: 16px;
	align-items: center;
	padding: 20px 20px 20px 22px;
	border-radius: 1.25rem;
	border: 1px solid rgba(255, 255, 255, 0.06);
	background: linear-gradient(
		180deg,
		rgba(18, 24, 30, 0.88),
		rgba(12, 16, 20, 0.96)
	);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.05),
		0 16px 40px rgba(6, 18, 16, 0.2);
	overflow: hidden;
	transition:
		transform 0.35s var(--ease-card),
		border-color 0.25s ease,
		box-shadow 0.3s var(--ease-card);
}

.pressure-item::after {
	content: "";
	position: absolute;
	inset: -1px;
	background: radial-gradient(
		280px circle at var(--spotlight-x, 50%) var(--spotlight-y, 50%),
		rgba(94, 234, 212, 0.12),
		transparent 44%
	);
	opacity: 0;
	transition: opacity 0.35s ease;
	pointer-events: none;
}

.pressure-item:hover::after {
	opacity: 1;
}

.pressure-item > * {
	position: relative;
	z-index: 1;
}

.pressure-item:hover {
	transform: translateX(5px);
	border-color: var(--border-accent);
	box-shadow:
		inset 0 1px 0 rgba(94, 234, 212, 0.08),
		0 22px 52px rgba(6, 18, 16, 0.28);
}

.pressure-index {
	font-family: var(--font-mono);
	font-size: 13px;
	letter-spacing: 0.06em;
	color: var(--accent);
}

.pressure-item h3 {
	font-size: 1.1rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

/* --- Workflow section --- */

.workflow-layout {
	margin-top: 34px;
	display: grid;
	grid-template-columns: minmax(300px, 0.94fr) minmax(400px, 1.06fr);
	gap: 22px;
	align-items: stretch;
}

.manifesto-inner {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 32px;
}

.manifesto-copy {
	max-width: 28ch;
	font-size: clamp(1.9rem, 4vw, 3.4rem);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -0.05em;
	text-wrap: balance;
}

.manifesto-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.workflow-steps {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.workflow-step {
	display: grid;
	grid-template-columns: 52px 1fr;
	gap: 18px;
	padding: 22px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.workflow-step:first-child {
	padding-top: 4px;
	border-top: none;
}

.workflow-step:last-child {
	padding-bottom: 4px;
}

.workflow-number {
	font-size: 13px;
	letter-spacing: 0.06em;
	color: var(--accent);
}

.workflow-step h3 {
	font-size: 1.1rem;
	font-weight: 600;
	letter-spacing: -0.02em;
}

.workflow-step p {
	margin-top: 6px;
	color: var(--text-muted);
	line-height: 1.5;
	font-size: 0.95rem;
}

/* --- Connect section --- */

.contacts-terminal {
	margin-bottom: auto;
	padding: 22px 24px;
	border-radius: 1.25rem;
	border: 1px solid rgba(255, 255, 255, 0.05);
	background: rgba(255, 255, 255, 0.03);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
}

.contact-line {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 14px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.contact-line:first-child {
	padding-top: 0;
	border-top: none;
}

.contact-label {
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-dim);
}

.contact-value {
	font-weight: 500;
	font-size: 1rem;
	color: var(--accent-strong);
	transition:
		color 0.2s ease,
		transform 0.25s var(--ease-out);
}

.contact-value:hover {
	color: var(--accent);
	transform: translateX(2px);
}

/* --- Contact form --- */

.contact-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
	gap: 24px;
	align-items: start;
	margin-top: 34px;
}

.contact-form {
	width: 100%;
}

.form-inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 32px;
}

.form-group {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.form-group label {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-dim);
}

.form-group input,
.form-group textarea {
	padding: 12px 16px;
	border-radius: 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.07);
	background: rgba(255, 255, 255, 0.03);
	color: var(--text-primary);
	font-size: 0.95rem;
	font-family: var(--font-sans);
	line-height: 1.5;
	transition:
		border-color 0.2s ease,
		background 0.2s ease,
		box-shadow 0.2s ease;
	outline: none;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
	color: var(--text-dim);
	opacity: 0.7;
}

.form-group input:focus,
.form-group textarea:focus {
	border-color: var(--border-accent);
	background: rgba(255, 255, 255, 0.04);
	box-shadow: 0 0 0 3px rgba(94, 234, 212, 0.06);
}

.form-group textarea {
	resize: vertical;
	min-height: 100px;
}

.form-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.form-tag {
	padding: 8px 14px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.07);
	background: rgba(255, 255, 255, 0.03);
	color: var(--text-muted);
	font-size: 0.88rem;
	font-family: var(--font-sans);
	cursor: pointer;
	transition:
		border-color 0.2s ease,
		background 0.2s ease,
		color 0.2s ease,
		transform 0.2s var(--ease-out);
}

.form-tag:hover {
	border-color: var(--border-accent);
	color: var(--accent-strong);
	transform: translateY(-1px);
}

.form-tag.active {
	border-color: var(--accent-strong);
	background: rgba(94, 234, 212, 0.22);
	color: #fff;
	box-shadow: 0 0 0 3px rgba(94, 234, 212, 0.15);
	font-weight: 600;
}

.form-submit {
	margin-top: 8px;
	justify-content: center;
	width: 100%;
}

.contact-info {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.contact-note {
	color: var(--text-dim);
	font-size: 0.9rem;
	line-height: 1.6;
	padding: 0 4px;
}

/* --- Footer --- */

.site-footer {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	flex-wrap: wrap;
	padding: 56px 0 24px;
	color: var(--text-dim);
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.site-footer a {
	transition: color 0.2s ease;
}

.site-footer a:hover {
	color: var(--accent);
}

/* --- Copy toast --- */

.copy-toast {
	position: fixed;
	left: 50%;
	bottom: 32px;
	transform: translateX(-50%) translateY(18px);
	padding: 10px 18px;
	border-radius: 999px;
	background: var(--accent);
	color: var(--bg-absolute);
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.04em;
	opacity: 0;
	pointer-events: none;
	transition:
		opacity 0.25s ease,
		transform 0.25s var(--ease-out);
	z-index: 35;
}

.copy-toast.show {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

/* --- Terminal mode --- */

.terminal-container {
	max-width: var(--container-wide);
	margin: 0 auto;
	padding: 132px 24px 100px;
	font-family: var(--font-mono);
}

.terminal-output {
	min-height: calc(100dvh - 260px);
	margin-bottom: 20px;
}

.terminal-line {
	margin-bottom: 6px;
	line-height: 1.9;
}

.prompt {
	color: var(--text-dim);
}

.command,
.contact-value-terminal,
.metric-bar-text,
.arrow {
	color: var(--accent-strong);
}

.output {
	color: var(--text-primary);
}

.output-muted {
	color: var(--text-muted);
}

.output-error {
	color: var(--error-red);
}

.output-success {
	color: var(--success-green);
}

.easter-ascii {
	display: block;
	max-width: 100%;
	margin: 8px 0 0;
	overflow-x: auto;
	padding-bottom: 8px;
	color: var(--accent-strong);
	font-family: var(--font-mono);
	font-size: clamp(0.38rem, 1.15vw, 0.64rem);
	font-kerning: none;
	font-variant-ligatures: none;
	font-feature-settings: "liga" 0, "calt" 0;
	line-height: 1;
	letter-spacing: 0;
	tab-size: 4;
	text-rendering: geometricPrecision;
	white-space: pre;
}

.brand-inline {
	display: block;
	margin: 12px 0 10px;
	font-family: var(--font-sans);
	font-size: clamp(2.6rem, 6vw, 4.7rem);
	font-weight: 700;
	letter-spacing: -0.06em;
	line-height: 0.95;
}

.service-item,
.contact-item {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	cursor: pointer;
	transition:
		transform 0.25s var(--ease-out),
		color 0.2s ease;
}

.service-item:hover,
.contact-item:hover {
	transform: translateX(4px);
	color: var(--accent-strong);
}

.service-name {
	color: var(--text-primary);
}

.contact-label-terminal {
	color: var(--text-dim);
}

.metric-line {
	display: grid;
	grid-template-columns: 94px 1fr;
	gap: 12px;
	margin: 6px 0;
}

.metric-label {
	color: var(--text-dim);
}

.help-line {
	display: flex;
	gap: 18px;
}

.help-cmd {
	min-width: 152px;
	color: var(--accent);
}

.help-desc {
	color: var(--text-muted);
}

.temp-loader,
.weather-loader {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
}

.temp-loader .loader-dot,
.weather-loader .loader-dot {
	width: 4px;
	height: 4px;
	border-radius: 999px;
	background: var(--accent);
	animation: loaderPulse 1s ease-in-out infinite;
}

.temp-loader .loader-dot:nth-child(2),
.weather-loader .loader-dot:nth-child(2) {
	animation-delay: 0.2s;
}

.temp-loader .loader-dot:nth-child(3),
.weather-loader .loader-dot:nth-child(3) {
	animation-delay: 0.4s;
}

@keyframes loaderPulse {
	0%,
	100% {
		opacity: 0.25;
		transform: scale(0.8);
	}
	50% {
		opacity: 1;
		transform: scale(1);
	}
}

.terminal-input-line {
	display: flex;
	align-items: center;
	gap: 10px;
	position: sticky;
	bottom: 8px;
	padding: 16px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.05);
	background: linear-gradient(
		180deg,
		rgba(10, 12, 14, 0),
		rgba(10, 12, 14, 0.92) 24%,
		rgba(10, 12, 14, 1)
	);
}

.input-wrapper {
	position: relative;
	flex: 1;
	display: flex;
	align-items: center;
	min-height: 24px;
}

.terminal-input-display {
	color: var(--accent-strong);
	white-space: pre-wrap;
	word-break: break-word;
}

.terminal-input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	background: transparent;
	border: none;
	outline: none;
	color: transparent;
	caret-color: transparent;
}

.terminal-input:disabled {
	opacity: 0.4;
}

.cursor-blink {
	margin-left: 1px;
	color: var(--accent-strong);
	animation: blink 1s step-end infinite;
}

@keyframes blink {
	0%,
	100% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
}

/* --- Modal --- */

.detail-modal {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(4, 8, 7, 0.74);
	backdrop-filter: blur(16px);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s var(--ease-out);
	z-index: 30;
}

.detail-modal[hidden] {
	display: none;
}

.detail-modal.visible {
	opacity: 1;
	pointer-events: auto;
}

.modal-content {
	width: min(640px, 100%);
	padding: 28px;
	border-radius: 1.5rem;
	border: 1px solid rgba(255, 255, 255, 0.07);
	background: rgba(13, 18, 22, 0.96);
	box-shadow: var(--shadow-strong);
}

.modal-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 16px;
}

.modal-title {
	margin-top: 10px;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.05;
}

.modal-close-button {
	width: 42px;
	height: 42px;
	flex-shrink: 0;
	display: grid;
	place-items: center;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.07);
	background: rgba(255, 255, 255, 0.04);
	color: var(--text-muted);
	font-size: 1.4rem;
	cursor: pointer;
	transition:
		transform 0.25s var(--ease-out),
		color 0.2s ease,
		border-color 0.2s ease;
}

.modal-close-button:hover {
	transform: translateY(-1px);
	color: var(--accent-strong);
	border-color: var(--border-accent);
}

.modal-lead {
	color: var(--text-muted);
	line-height: 1.72;
}

.modal-list {
	margin-top: 18px;
	display: grid;
	gap: 12px;
}

.modal-list li {
	position: relative;
	padding-left: 18px;
	color: var(--text-muted);
	line-height: 1.65;
}

.modal-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.72em;
	width: 7px;
	height: 7px;
	border-radius: 999px;
	background: rgba(94, 234, 212, 0.7);
	box-shadow: 0 0 0 4px rgba(94, 234, 212, 0.08);
}

.modal-close-hint {
	margin-top: 24px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	color: var(--text-dim);
}

/* --- Reduced motion --- */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.animate-element {
		will-change: auto;
	}

	.cursor-blink {
		animation: none;
		opacity: 1;
	}

	.loader-dot {
		animation: none;
		opacity: 1;
	}
}

/* --- Responsive: tablet --- */

@media (max-width: 1120px) {
	body {
		padding-top: 114px;
	}

	.hero,
	.workflow-layout,
	.pressure-layout {
		grid-template-columns: 1fr;
	}

	.hero {
		min-height: auto;
		padding-top: 26px;
	}

	.pressure-copy {
		position: static;
	}

	.capability-grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	.capability-card--wide,
	.capability-card--long {
		grid-column: span 6;
	}

	.capability-card--tall,
	.capability-card--compact {
		grid-column: span 3;
	}
}

/* --- Responsive: small tablet --- */

@media (max-width: 860px) {
	body {
		padding-top: 96px;
	}

	.navbar {
		top: 12px;
		padding: 0 12px;
	}

	.navbar-inner {
		min-height: 60px;
		padding: 10px 14px;
		gap: 10px;
	}

	.nav-meta {
		display: none;
	}

	.normal-container,
	.terminal-container {
		padding-left: 16px;
		padding-right: 16px;
	}

	.section-title,
	.cta-title {
		line-height: 1.05;
	}

	.capability-grid {
		grid-template-columns: 1fr;
	}

	.capability-card--wide,
	.capability-card--tall,
	.capability-card--compact,
	.capability-card--long {
		grid-column: auto;
		grid-row: auto;
	}

	.contact-layout {
		grid-template-columns: 1fr;
	}

	.form-submit {
		width: 100%;
		justify-content: space-between;
	}

	.contact-line {
		align-items: flex-start;
		flex-direction: column;
	}

	.manifesto-copy {
		max-width: 100%;
	}

	.pressure-item {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.terminal-container {
		padding-top: 118px;
	}
}

/* --- Responsive: mobile --- */

@media (max-width: 640px) {
	body {
		font-size: 15px;
	}

	.hero-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.primary-cta {
		justify-content: space-between;
		width: 100%;
	}

	.workflow-step {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.help-line {
		flex-direction: column;
		gap: 2px;
	}

	.metric-line {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.modal-content {
		padding: 24px 20px;
		border-radius: 1.25rem;
	}
}

/* --- Responsive: small mobile --- */

@media (max-width: 480px) {
	body {
		padding-top: 92px;
	}

	.navbar-inner {
		border-radius: 24px;
	}

	.hero {
		padding-top: 18px;
	}

	.hero-tags,
	.manifesto-tags {
		gap: 8px;
	}

	.hero-tags li,
	.manifesto-tags span,
	.meta-pill {
		padding: 6px 10px;
		font-size: 10px;
	}

	.shell-card {
		padding: 6px;
		border-radius: 1.5rem;
	}

	.shell-card-inner,
	.capability-card {
		padding: 22px;
		border-radius: calc(1.5rem - 6px);
	}

	.pressure-item {
		padding: 18px 18px 20px;
		border-radius: 1.125rem;
	}

	.contacts-terminal {
		padding: 18px 20px;
	}

	.site-footer {
		justify-content: flex-start;
		padding-top: 44px;
	}

	.terminal-container {
		padding-bottom: 80px;
	}
}
