@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,500;0,600;0,700;0,800;0,900;1,700&family=Black+Ops+One&display=swap');

:root {
	--rv14-bg: #050708;
	--rv14-panel: rgba(12, 17, 19, .86);
	--rv14-ink: #f1f6f2;
	--rv14-muted: #8b9b93;
	--rv14-green: #a8ff00;
	--rv14-green2: #5ee400;
	--rv14-ice: #71dfff;
	--rv14-red: #ff3b30;
	--rv14-line: rgba(168, 255, 0, .22);
	--rv14-safe-top: env(safe-area-inset-top, 0px);
	--rv14-safe-bottom: env(safe-area-inset-bottom, 0px);
}

html:has(.rv14-app),
body.rv14-app-body,
body.rv14-fullscreen-page {
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	min-width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	min-height: 100% !important;
	background: var(--rv14-bg) !important;
	overflow: hidden !important;
}

html:has(.rv14-app) {
	touch-action: manipulation;
}

body.rv14-app-body {
	position: relative !important;
	overscroll-behavior: none;
	touch-action: manipulation;
}

body.rv14-app-body > *:not(.rv14-app):not(script):not(link):not(style) {
	max-width: none;
}

.rv14-app,
.rv14-app * {
	box-sizing: border-box;
}

.rv14-app {
	position: relative;
	width: 100%;
	height: 100dvh;
	min-height: 100dvh;
	overflow-x: hidden;
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: none;
	overscroll-behavior-y: auto;
	touch-action: pan-y pinch-zoom;
	scroll-behavior: smooth;
	color: var(--rv14-ink);
	background:
		radial-gradient(circle at 50% -10%, rgba(113, 223, 255, .1), transparent 32rem),
		radial-gradient(circle at 90% 36%, rgba(168, 255, 0, .06), transparent 28rem),
		var(--rv14-bg);
	font-family: "Barlow Condensed", Impact, sans-serif;
	font-size: 18px;
	line-height: 1.2;
	-webkit-tap-highlight-color: transparent;
	isolation: isolate;
}

.rv14-app button,
.rv14-app input {
	font: inherit;
}

.rv14-app button {
	-webkit-appearance: none;
	appearance: none;
}

.rv14-fx {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 80;
	pointer-events: none;
}

.rv14-grid,
.rv14-scanlines,
.rv14-tilt-field {
	position: fixed;
	inset: 0;
	pointer-events: none;
}

.rv14-grid {
	z-index: -2;
	opacity: .24;
	background-image:
		linear-gradient(rgba(168, 255, 0, .08) 1px, transparent 1px),
		linear-gradient(90deg, rgba(168, 255, 0, .08) 1px, transparent 1px);
	background-size: 42px 42px;
	transform: perspective(500px) rotateX(62deg) scale(1.8) translateY(28%);
	transform-origin: bottom;
	animation: rv14-grid-drift 9s linear infinite;
}

.rv14-scanlines {
	z-index: 50;
	opacity: .12;
	background: repeating-linear-gradient(0deg, rgba(255,255,255,.15) 0 1px, transparent 1px 4px);
	mix-blend-mode: overlay;
}

.rv14-tilt-field {
	z-index: -1;
	transition: transform .16s ease-out;
}

.rv14-orb {
	position: absolute;
	display: block;
	width: 34vw;
	aspect-ratio: 1;
	border: 1px solid var(--rv14-line);
	border-radius: 50%;
	filter: blur(1px);
	opacity: .26;
}

.rv14-orb::before,
.rv14-orb::after {
	content: "";
	position: absolute;
	inset: 16%;
	border: inherit;
	border-radius: inherit;
}

.rv14-orb::after { inset: 34%; }
.rv14-orb-a { top: 11%; left: -16%; }
.rv14-orb-b { top: 46%; right: -19%; border-color: rgba(113, 223, 255, .23); }
.rv14-orb-c { bottom: -12%; left: 25%; width: 50vw; }

@keyframes rv14-grid-drift { to { background-position: 0 42px, 42px 0; } }

.rv14-boot {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: grid;
	place-items: center;
	padding: calc(24px + var(--rv14-safe-top)) 20px calc(24px + var(--rv14-safe-bottom));
	background:
		linear-gradient(135deg, transparent 0 48%, rgba(168,255,0,.04) 48% 52%, transparent 52%),
		radial-gradient(circle at 50% 35%, rgba(168,255,0,.1), transparent 30rem),
		#050708;
	transition: opacity .65s ease, visibility .65s ease, transform .65s cubic-bezier(.2,.8,.2,1);
}

.rv14-boot.is-gone {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: scale(1.06);
}

.rv14-boot-card {
	width: min(760px, 100%);
	text-align: center;
}

.rv14-classified,
.rv14-modal-code,
.rv14-overline,
.rv14-kicker {
	color: var(--rv14-green);
	font-size: clamp(.72rem, 2.7vw, .92rem);
	letter-spacing: .2em;
	font-weight: 800;
}

.rv14-classified::before,
.rv14-classified::after {
	content: "//";
	margin: 0 12px;
	color: var(--rv14-muted);
}

.rv14-emblem-wrap {
	display: grid;
	place-items: center;
	margin: clamp(22px, 5vh, 54px) 0 24px;
}

.rv14-emblem {
	position: relative;
	display: grid;
	place-items: center;
	width: clamp(130px, 34vw, 220px);
	aspect-ratio: 1;
	padding: 0;
	border: 1px solid rgba(168,255,0,.45);
	border-radius: 50%;
	color: var(--rv14-green);
	background: rgba(5,7,8,.4);
	cursor: pointer;
	box-shadow:
		0 0 0 10px rgba(168,255,0,.025),
		0 0 90px rgba(168,255,0,.14),
		inset 0 0 50px rgba(168,255,0,.05);
}

.rv14-emblem::before,
.rv14-emblem::after {
	content: "";
	position: absolute;
	inset: -12px;
	border: 1px dashed rgba(168,255,0,.35);
	border-radius: 50%;
	animation: rv14-spin 18s linear infinite;
}

.rv14-emblem::after {
	inset: 12px;
	border-style: solid;
	border-color: rgba(113,223,255,.2) transparent;
	animation-duration: 7s;
	animation-direction: reverse;
}

.rv14-emblem-ring {
	position: absolute;
	width: 122%;
	height: 12px;
	border-left: 26px solid var(--rv14-green);
	border-right: 26px solid var(--rv14-green);
	transform: rotate(-28deg);
	opacity: .8;
}

.rv14-emblem-number {
	position: relative;
	z-index: 2;
	font-family: "Black Ops One", "Barlow Condensed", sans-serif;
	font-size: clamp(4.5rem, 17vw, 8rem);
	line-height: 1;
	text-shadow: 0 0 30px rgba(168,255,0,.35);
}

@keyframes rv14-spin { to { transform: rotate(360deg); } }

.rv14-kicker {
	margin: 0 0 8px;
	color: var(--rv14-muted);
}

.rv14-boot h1 {
	margin: 0;
	font-family: "Black Ops One", "Barlow Condensed", sans-serif;
	font-size: clamp(2.7rem, 10vw, 6.4rem);
	line-height: .92;
	letter-spacing: -.03em;
	text-transform: uppercase;
	text-shadow: 0 0 40px rgba(255,255,255,.08);
}

.rv14-boot-sub {
	margin: 15px 0 0;
	color: var(--rv14-muted);
	font-size: clamp(.85rem, 3.4vw, 1.2rem);
	letter-spacing: .08em;
}

.rv14-boot-sub strong { color: var(--rv14-ice); }

.rv14-boot-line {
	width: min(520px, 82%);
	height: 2px;
	margin: 28px auto;
	background: rgba(255,255,255,.08);
	overflow: hidden;
}

.rv14-boot-line span {
	display: block;
	width: 34%;
	height: 100%;
	background: var(--rv14-green);
	box-shadow: 0 0 14px var(--rv14-green);
	animation: rv14-scan 1.6s ease-in-out infinite alternate;
}

@keyframes rv14-scan { to { transform: translateX(194%); } }

.rv14-primary,
.rv14-secondary,
.rv14-salvo,
.rv14-footer button {
	position: relative;
	border: 1px solid var(--rv14-green);
	color: #071000;
	background: var(--rv14-green);
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
	transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.rv14-primary {
	width: min(420px, 100%);
	padding: 17px 24px 14px;
}

.rv14-primary span { display: block; font-size: clamp(1.25rem, 5vw, 1.8rem); }
.rv14-primary small { display: block; margin-top: 3px; font-size: .67rem; letter-spacing: .15em; opacity: .65; }

.rv14-primary:hover,
.rv14-primary:focus-visible,
.rv14-secondary:hover,
.rv14-salvo:hover,
.rv14-footer button:hover {
	transform: translateY(-2px);
	box-shadow: 0 0 34px rgba(168,255,0,.28);
	filter: brightness(1.08);
}

.rv14-primary:active,
.rv14-secondary:active,
.rv14-salvo:active,
.rv14-footer button:active {
	transform: scale(.97);
}

.rv14-audio-note {
	margin: 12px 0 0;
	color: #66736d;
	font-size: .77rem;
	letter-spacing: .04em;
}

.rv14-main {
	display: none;
	width: 100%;
	min-height: 100dvh;
	overflow: visible;
	touch-action: pan-y pinch-zoom;
}

.rv14-main.is-live {
	display: block;
	overflow: visible;
	animation: rv14-enter .8s ease both;
}

.rv14-app.rv14-scroll-locked {
	overflow-y: hidden !important;
	touch-action: none !important;
}

@keyframes rv14-enter {
	from { opacity: 0; transform: scale(.98); }
}

.rv14-hud {
	position: fixed;
	inset: 0 0 auto;
	z-index: 40;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 14px;
	min-height: calc(54px + var(--rv14-safe-top));
	padding: var(--rv14-safe-top) clamp(14px, 3vw, 36px) 0;
	border-bottom: 1px solid rgba(168,255,0,.16);
	background: rgba(5,7,8,.74);
	backdrop-filter: blur(14px);
	color: var(--rv14-muted);
	font-size: clamp(.66rem, 2.4vw, .85rem);
	font-weight: 800;
	letter-spacing: .1em;
}

.rv14-hud-left,
.rv14-hud-right {
	display: flex;
	align-items: center;
	gap: 10px;
}

.rv14-hud-right { justify-content: flex-end; }

.rv14-live-dot {
	width: 7px;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--rv14-green);
	box-shadow: 0 0 12px var(--rv14-green);
	animation: rv14-pulse 1.2s ease-in-out infinite;
}

@keyframes rv14-pulse { 50% { opacity: .3; } }

.rv14-hud-center {
	color: var(--rv14-ice);
	font-variant-numeric: tabular-nums;
}

.rv14-icon-btn {
	padding: 8px 10px;
	border: 1px solid rgba(255,255,255,.13);
	color: var(--rv14-muted);
	background: transparent;
	font-size: .69rem;
	font-weight: 800;
	letter-spacing: .08em;
	cursor: pointer;
}

.rv14-icon-btn.is-on {
	border-color: rgba(168,255,0,.5);
	color: var(--rv14-green);
}

.rv14-hero {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 100svh;
	padding: calc(90px + var(--rv14-safe-top)) 24px 60px;
	text-align: center;
	overflow: hidden;
}

.rv14-hero::before {
	content: "";
	position: absolute;
	width: min(76vw, 800px);
	aspect-ratio: 1;
	border: 1px solid rgba(168,255,0,.12);
	border-radius: 50%;
	box-shadow:
		0 0 0 70px rgba(168,255,0,.018),
		0 0 0 140px rgba(168,255,0,.012),
		0 0 120px rgba(168,255,0,.08);
	animation: rv14-breathe 4s ease-in-out infinite;
}

@keyframes rv14-breathe { 50% { transform: scale(1.04); opacity: .62; } }

.rv14-overline,
.rv14-hero h2,
.rv14-callsign,
.rv14-hero-copy,
.rv14-stat-row,
.rv14-salvo {
	position: relative;
	z-index: 2;
}

.rv14-overline {
	margin: 0 0 20px;
}

.rv14-hero h2 {
	margin: 0;
	font-family: "Black Ops One", "Barlow Condensed", sans-serif;
	font-size: clamp(2.4rem, 8vw, 6rem);
	line-height: .78;
	text-transform: uppercase;
}

.rv14-hero h2 span { display: block; }

.rv14-hero h2 .rv14-mega {
	margin: .08em 0;
	color: var(--rv14-green);
	font-size: clamp(7rem, 30vw, 19rem);
	line-height: .8;
	letter-spacing: -.05em;
	text-shadow:
		4px 4px 0 rgba(113,223,255,.12),
		0 0 55px rgba(168,255,0,.22);
}

.rv14-callsign {
	margin-top: 20px;
	padding: 7px 18px;
	border: 1px solid var(--rv14-ice);
	color: var(--rv14-ice);
	font-size: clamp(1.15rem, 4vw, 2rem);
	font-weight: 900;
	letter-spacing: .4em;
	transform: skewX(-8deg);
}

.rv14-hero-copy {
	width: min(670px, 100%);
	margin: 24px auto;
	color: #a6b2ac;
	font-size: clamp(1rem, 3.5vw, 1.4rem);
	line-height: 1.45;
}

.rv14-stat-row {
	display: flex;
	gap: clamp(18px, 6vw, 70px);
	margin: 5px 0 28px;
}

.rv14-stat-row div {
	display: grid;
	gap: 3px;
}

.rv14-stat-row strong {
	color: var(--rv14-ink);
	font-size: clamp(2rem, 7vw, 4rem);
	line-height: 1;
}

.rv14-stat-row span {
	color: var(--rv14-muted);
	font-size: .68rem;
	letter-spacing: .16em;
}

.rv14-salvo {
	padding: 13px 22px;
	background: transparent;
	color: var(--rv14-green);
}

.rv14-lock {
	position: absolute;
	top: 50%;
	width: 56px;
	height: 56px;
	border-top: 1px solid var(--rv14-green);
	border-left: 1px solid var(--rv14-green);
	opacity: .35;
}

.rv14-lock-left { left: 4vw; transform: rotate(-45deg); }
.rv14-lock-right { right: 4vw; transform: rotate(135deg); }

.rv14-command,
.rv14-progress-section {
	position: relative;
	z-index: 2;
	width: min(1180px, calc(100% - 32px));
	margin: 0 auto;
	padding: clamp(70px, 12vw, 140px) 0;
}

.rv14-section-head {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 30px;
}

.rv14-section-head > span {
	color: var(--rv14-green);
	font-family: "Black Ops One", sans-serif;
	font-size: 2.3rem;
	line-height: 1;
}

.rv14-section-head p {
	margin: 0 0 4px;
	color: var(--rv14-muted);
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .18em;
}

.rv14-section-head h3 {
	margin: 0;
	font-family: "Black Ops One", "Barlow Condensed", sans-serif;
	font-size: clamp(2rem, 6vw, 4.5rem);
	line-height: .9;
}

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

.rv14-mission-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: 280px;
	padding: 25px;
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.1);
	color: var(--rv14-ink);
	background:
		linear-gradient(135deg, rgba(255,255,255,.03), transparent 55%),
		rgba(10,14,15,.8);
	text-align: left;
	cursor: pointer;
	clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 18px 100%, 0 calc(100% - 18px));
	transition: transform .22s ease, border-color .22s ease, background .22s ease;
}

.rv14-mission-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 25%, rgba(168,255,0,.12) 50%, transparent 75%);
	transform: translateX(-110%);
	transition: transform .55s ease;
}

.rv14-mission-card:hover,
.rv14-mission-card:focus-visible {
	transform: translateY(-5px);
	border-color: rgba(168,255,0,.48);
	background-color: rgba(17,25,21,.88);
}

.rv14-mission-card:hover::after { transform: translateX(110%); }

.rv14-card-index {
	position: absolute;
	top: 18px;
	right: 19px;
	color: #526059;
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .15em;
}

.rv14-card-icon {
	position: relative;
	display: block;
	width: 72px;
	height: 72px;
	margin-bottom: auto;
}

.rv14-puck-icon::before {
	content: "";
	position: absolute;
	inset: 20px 3px 15px;
	border-radius: 50%;
	background: var(--ice, var(--rv14-ice));
	box-shadow: 0 14px 0 -2px rgba(113,223,255,.3), 0 0 24px rgba(113,223,255,.22);
	transform: skewX(-15deg);
}

.rv14-radio-icon {
	border: 1px solid rgba(168,255,0,.45);
	border-radius: 50%;
}

.rv14-radio-icon::before,
.rv14-radio-icon::after {
	content: "";
	position: absolute;
	inset: 14px;
	border: inherit;
	border-radius: inherit;
}

.rv14-radio-icon::after {
	inset: 30px;
	background: var(--rv14-green);
	box-shadow: 0 0 18px var(--rv14-green);
}

.rv14-radar-icon {
	background:
		linear-gradient(90deg, transparent 49%, rgba(168,255,0,.45) 50% 51%, transparent 52%),
		linear-gradient(transparent 49%, rgba(168,255,0,.45) 50% 51%, transparent 52%);
	border: 1px solid rgba(168,255,0,.45);
	border-radius: 50%;
}

.rv14-radar-icon::after {
	content: "";
	position: absolute;
	inset: 50% 50% 0 0;
	background: linear-gradient(45deg, rgba(168,255,0,.35), transparent);
	transform-origin: bottom right;
	animation: rv14-radar 2s linear infinite;
}

@keyframes rv14-radar { to { transform: rotate(360deg); } }

.rv14-burst-icon::before,
.rv14-burst-icon::after {
	content: "";
	position: absolute;
	inset: 8px 33px;
	background: var(--rv14-red);
	box-shadow: 0 0 16px rgba(255,59,48,.45);
	transform: rotate(22deg);
}

.rv14-burst-icon::after { transform: rotate(112deg); }

.rv14-mission-card strong {
	margin-top: 30px;
	font-family: "Black Ops One", "Barlow Condensed", sans-serif;
	font-size: clamp(1.55rem, 4vw, 2.3rem);
}

.rv14-mission-card em {
	margin: 7px 0 24px;
	color: var(--rv14-muted);
	font-style: normal;
	font-size: 1rem;
}

.rv14-mission-card b {
	margin-top: auto;
	color: var(--rv14-green);
	font-size: .84rem;
	letter-spacing: .12em;
}

.rv14-progress-section {
	padding-top: 20px;
	padding-bottom: clamp(90px, 13vw, 160px);
}

.rv14-progress-shell {
	padding: clamp(22px, 5vw, 48px);
	border: 1px solid rgba(168,255,0,.2);
	background: rgba(9,13,14,.78);
}

.rv14-progress-top {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 12px;
	color: var(--rv14-muted);
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .12em;
}

.rv14-progress-track {
	height: 11px;
	padding: 2px;
	border: 1px solid rgba(168,255,0,.25);
}

.rv14-progress-track span {
	display: block;
	width: 0;
	height: 100%;
	background: var(--rv14-green);
	box-shadow: 0 0 16px rgba(168,255,0,.45);
	transition: width .6s cubic-bezier(.2,.8,.2,1);
}

.rv14-objectives {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 18px;
	margin-top: 28px;
}

.rv14-objectives div {
	color: #6d7a74;
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .08em;
	transition: color .3s ease;
}

.rv14-objectives span {
	display: inline-grid;
	place-items: center;
	width: 20px;
	aspect-ratio: 1;
	margin-right: 7px;
	border: 1px solid #3e4944;
	color: transparent;
	font-size: .75rem;
}

.rv14-objectives div.is-done {
	color: var(--rv14-ink);
}

.rv14-objectives div.is-done span {
	border-color: var(--rv14-green);
	color: #071000;
	background: var(--rv14-green);
	box-shadow: 0 0 14px rgba(168,255,0,.25);
}

.rv14-footer {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 70svh;
	padding: 80px 24px calc(80px + var(--rv14-safe-bottom));
	border-top: 1px solid rgba(255,255,255,.06);
	background: radial-gradient(circle at center, rgba(168,255,0,.09), transparent 34rem);
	text-align: center;
}

.rv14-footer p {
	margin: 0 0 12px;
	color: var(--rv14-muted);
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .25em;
}

.rv14-footer h3 {
	margin: 0;
	font-family: "Black Ops One", "Barlow Condensed", sans-serif;
	font-size: clamp(2.5rem, 9vw, 7rem);
	line-height: .92;
}

.rv14-footer span {
	margin: 20px 0 36px;
	color: var(--rv14-green);
	font-size: clamp(1rem, 3vw, 1.4rem);
	font-weight: 900;
	letter-spacing: .18em;
}

.rv14-footer button {
	padding: 13px 24px;
	background: transparent;
	color: var(--rv14-green);
}

.rv14-modal {
	position: fixed;
	inset: 0;
	z-index: 120;
	display: grid;
	place-items: center;
	padding: max(16px, var(--rv14-safe-top)) 16px max(16px, var(--rv14-safe-bottom));
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s ease, visibility .25s ease;
}

.rv14-modal.is-open {
	opacity: 1;
	visibility: visible;
}

.rv14-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.86);
	backdrop-filter: blur(10px);
}

.rv14-modal-panel {
	position: relative;
	z-index: 2;
	width: min(900px, 100%);
	max-height: calc(100dvh - 32px - var(--rv14-safe-top) - var(--rv14-safe-bottom));
	padding: clamp(24px, 5vw, 50px);
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-y;
	-webkit-overflow-scrolling: touch;
	touch-action: pan-y;
	overscroll-behavior: contain;
	border: 1px solid rgba(168,255,0,.38);
	background:
		linear-gradient(135deg, rgba(168,255,0,.04), transparent 42%),
		#09100d;
	box-shadow: 0 30px 100px rgba(0,0,0,.7), 0 0 60px rgba(168,255,0,.08);
	clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 24px 100%, 0 calc(100% - 24px));
	transform: translateY(20px) scale(.98);
	transition: transform .25s ease;
}

.rv14-modal.is-open .rv14-modal-panel { transform: none; }

.rv14-modal-close {
	position: absolute;
	top: 12px;
	right: 15px;
	z-index: 3;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid rgba(255,255,255,.13);
	color: var(--rv14-muted);
	background: rgba(0,0,0,.35);
	font-size: 1.8rem;
	line-height: 1;
	cursor: pointer;
}

.rv14-modal h3 {
	margin: 8px 0 25px;
	font-family: "Black Ops One", "Barlow Condensed", sans-serif;
	font-size: clamp(2.2rem, 7vw, 5rem);
	line-height: .92;
}

.rv14-secondary {
	padding: 12px 18px;
	background: transparent;
	color: var(--rv14-green);
}

.rv14-decrypt-lines {
	display: flex;
	gap: 6px;
	margin: 22px 0;
}

.rv14-decrypt-lines i {
	display: block;
	height: 5px;
	flex: 1;
	background: rgba(168,255,0,.16);
	overflow: hidden;
}

.rv14-decrypt-lines i::after {
	content: "";
	display: block;
	width: 50%;
	height: 100%;
	background: var(--rv14-green);
	animation: rv14-decrypt .7s ease-in-out infinite alternate;
}

.rv14-decrypt-lines i:nth-child(2)::after { animation-delay: -.2s; }
.rv14-decrypt-lines i:nth-child(3)::after { animation-delay: -.4s; }
.rv14-decrypt-lines i:nth-child(4)::after { animation-delay: -.1s; }
.rv14-decrypt-lines i:nth-child(5)::after { animation-delay: -.5s; }

@keyframes rv14-decrypt { to { transform: translateX(100%); } }

.rv14-message-text {
	min-height: 7em;
	color: #dbe5df;
	font-size: clamp(1.2rem, 4vw, 1.65rem);
	line-height: 1.5;
	white-space: pre-line;
}

.rv14-message-text::after {
	content: "▋";
	color: var(--rv14-green);
	animation: rv14-pulse .7s infinite;
}

.rv14-message-text.is-complete::after { display: none; }

.rv14-signoff {
	margin: 25px 0;
	color: var(--rv14-ice);
	font-size: 1.2rem;
	font-weight: 800;
}

.rv14-loadout-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-bottom: 28px;
}

.rv14-loadout-grid div {
	position: relative;
	min-height: 170px;
	padding: 24px;
	border: 1px solid rgba(255,255,255,.09);
	background: rgba(255,255,255,.025);
}

.rv14-loadout-grid span {
	color: var(--rv14-green);
	font-family: "Black Ops One", sans-serif;
	font-size: 2rem;
	opacity: .5;
}

.rv14-loadout-grid strong {
	display: block;
	margin: 18px 0 7px;
	font-size: 1.35rem;
	letter-spacing: .08em;
}

.rv14-loadout-grid p {
	margin: 0;
	color: var(--rv14-muted);
	line-height: 1.35;
}

.rv14-game-instructions {
	margin: -10px 0 20px;
	color: var(--rv14-muted);
	line-height: 1.4;
}

.rv14-game-stats {
	display: flex;
	gap: 8px;
	margin-bottom: 10px;
}

.rv14-game-stats span {
	flex: 1;
	padding: 8px 10px;
	border: 1px solid rgba(255,255,255,.09);
	color: var(--rv14-muted);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-align: center;
}

.rv14-game-stats b {
	margin-left: 6px;
	color: var(--rv14-green);
	font-size: 1.1rem;
}

#rv14-rink {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 720 / 460;
	border: 1px solid rgba(113,223,255,.35);
	background: #dff8ff;
	touch-action: manipulation;
}

.rv14-power {
	height: 12px;
	margin: 10px 0;
	padding: 2px;
	border: 1px solid rgba(255,255,255,.14);
}

.rv14-power span {
	display: block;
	width: 0;
	height: 100%;
	background: linear-gradient(90deg, var(--rv14-ice), var(--rv14-green), var(--rv14-red));
}

.rv14-shoot {
	display: block;
	margin: 0 auto;
}

.rv14-game-over {
	margin-top: 18px;
	padding: 20px;
	border: 1px solid rgba(168,255,0,.25);
	background: rgba(168,255,0,.04);
	text-align: center;
}

.rv14-game-over h4 {
	margin: 0 0 8px;
	font-family: "Black Ops One", sans-serif;
	font-size: 2rem;
}

.rv14-game-over p { color: var(--rv14-muted); }

.rv14-game-over label {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin: 16px 0;
	color: var(--rv14-muted);
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .12em;
}

.rv14-game-over input {
	width: 90px;
	padding: 9px;
	border: 1px solid var(--rv14-green);
	outline: none;
	color: var(--rv14-green);
	background: #020403;
	font-weight: 900;
	text-align: center;
	text-transform: uppercase;
}

.rv14-game-actions {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
}

.rv14-leaderboard {
	margin-top: 18px;
	padding-top: 15px;
	border-top: 1px solid rgba(255,255,255,.08);
}

.rv14-leaderboard > span {
	color: var(--rv14-muted);
	font-size: .78rem;
	letter-spacing: .1em;
}

.rv14-score-row {
	display: grid;
	grid-template-columns: 34px 1fr auto;
	gap: 10px;
	padding: 7px 3px;
	border-bottom: 1px solid rgba(255,255,255,.05);
	font-size: .86rem;
}

.rv14-score-row b { color: var(--rv14-green); }

.rv14-toast {
	position: fixed;
	left: 50%;
	bottom: calc(22px + var(--rv14-safe-bottom));
	z-index: 200;
	width: min(520px, calc(100% - 32px));
	padding: 13px 18px;
	border: 1px solid rgba(168,255,0,.4);
	color: var(--rv14-green);
	background: rgba(5,7,8,.94);
	font-weight: 800;
	letter-spacing: .06em;
	text-align: center;
	transform: translate(-50%, 140%);
	transition: transform .35s cubic-bezier(.2,.8,.2,1);
}

.rv14-toast.is-showing { transform: translate(-50%, 0); }

.rv14-noscript noscript {
	position: fixed;
	inset: auto 20px 20px;
	z-index: 300;
	padding: 14px;
	color: white;
	background: #b30000;
}

.rv14-app.rv14-chaos {
	animation: rv14-chaos .12s linear 14;
}

@keyframes rv14-chaos {
	0% { filter: hue-rotate(0) contrast(1); transform: translate(0); }
	25% { filter: hue-rotate(80deg) contrast(1.5); transform: translate(2px, -2px); }
	50% { filter: hue-rotate(180deg) contrast(1.2); transform: translate(-2px, 1px); }
	75% { filter: hue-rotate(280deg) contrast(1.6); transform: translate(1px, 2px); }
	100% { filter: hue-rotate(360deg) contrast(1); transform: translate(0); }
}

.rv14-app.rv14-overtime::before {
	content: "OVERTIME MODE // CLASSIFIED";
	position: fixed;
	inset: 50% auto auto 50%;
	z-index: 190;
	padding: 16px 22px;
	border: 2px solid var(--rv14-red);
	color: white;
	background: #0a0000;
	font-family: "Black Ops One", sans-serif;
	font-size: clamp(1rem, 5vw, 2.5rem);
	text-align: center;
	transform: translate(-50%, -50%) rotate(-3deg);
	box-shadow: 0 0 80px rgba(255,59,48,.6);
	animation: rv14-overtime-banner 2.1s ease both;
}

@keyframes rv14-overtime-banner {
	0% { opacity: 0; transform: translate(-50%, -50%) scale(.2) rotate(-15deg); }
	20%, 80% { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(-3deg); }
	100% { opacity: 0; transform: translate(-50%, -50%) scale(1.4) rotate(4deg); }
}




/* Native app-owned scrolling for iPhone Safari and Android Chrome. */
@media (hover: none), (pointer: coarse) {
	.rv14-app {
		height: 100dvh !important;
		min-height: 100dvh !important;
		overflow-x: hidden !important;
		overflow-y: scroll !important;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-y: auto;
		touch-action: pan-y pinch-zoom !important;
	}

	.rv14-app.rv14-scroll-locked {
		overflow-y: hidden !important;
		touch-action: none !important;
	}

	.rv14-main,
	.rv14-main.is-live,
	.rv14-hero,
	.rv14-command,
	.rv14-progress-section,
	.rv14-footer {
		touch-action: pan-y pinch-zoom;
	}
}

@media (max-width: 700px) {
	.rv14-app { font-size: 16px; }
	.rv14-hud { grid-template-columns: 1fr auto; }
	.rv14-hud-center { display: none; }
	.rv14-hud-right { gap: 5px; }
	.rv14-icon-btn { padding: 7px 8px; font-size: .61rem; }
	.rv14-mission-grid,
	.rv14-loadout-grid,
	.rv14-objectives { grid-template-columns: 1fr; }
	.rv14-mission-card { min-height: 250px; }
	.rv14-hero h2 .rv14-mega { font-size: clamp(7.2rem, 40vw, 12rem); }
	.rv14-lock { display: none; }
	.rv14-stat-row { width: 100%; justify-content: space-evenly; }
	.rv14-modal-panel { padding-top: 55px; }
	.rv14-game-stats span { padding: 7px 4px; font-size: .61rem; }
	.rv14-game-stats b { display: block; margin: 2px 0 0; }
}

@media (max-width: 390px) {
	.rv14-hud-left span:last-child { max-width: 115px; }
	.rv14-hero { padding-left: 16px; padding-right: 16px; }
	.rv14-command, .rv14-progress-section { width: calc(100% - 24px); }
}

@media (prefers-reduced-motion: reduce) {
	.rv14-app *,
	.rv14-app *::before,
	.rv14-app *::after {
		scroll-behavior: auto !important;
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}
