@font-face {
	font-family: "Lora";
	font-weight: 400;
	font-display: swap;
	src: url("/public/fonts/lora-regular-webfont.woff2") format("woff2");
}

@font-face {
	font-family: "Lora";
	font-weight: 700;
	font-display: swap;
	src: url("/public/fonts/lora-bold-webfont.woff2") format("woff2");
}

@font-face {
	font-family: "Open Sans";
	font-weight: 400;
	font-display: swap;
	src: url("/public/fonts/opensans-regular-webfont.woff2") format("woff2");
}

@font-face {
	font-family: "Open Sans";
	font-weight: 700;
	font-display: swap;
	src: url("/public/fonts/opensans-bold-webfont.woff2") format("woff2");
}

:root {
	--page: #d8d5cc;
	--card: #f3f1ea;
	--border: #c9c3b4;
	--maroon: #5c1512;
	--maroon-dark: #41100c;
	--orange: #e9602b;
	--orange-dark: #d2531f;
	--red: #c63000;
	--ink: #2b2b2b;
	--muted: #5c574e;
}

* {
	box-sizing: border-box;
}

body {
	margin: 0;
	min-height: 100vh;
	display: grid;
	place-items: center;
	padding: 2rem;
	color: var(--ink);
	background: var(--page);
	font: 16px/1.6 "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

main {
	width: 100%;
	max-width: 34rem;
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: 3px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

.ribbon {
	margin: 0;
	padding: 0.85rem 1.4rem;
	background: var(--maroon);
	color: #fff;
	font-family: "Lora", Georgia, Cambria, "Times New Roman", serif;
	font-weight: 700;
	font-size: 1.6rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.body {
	padding: 1.75rem 1.5rem 2rem;
	text-align: center;
}

.tagline {
	margin: 0 0 1rem;
	color: var(--red);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

p {
	margin: 0.6rem 0;
	color: #3a3a3a;
}

.charname {
	font-family: "Lora", Georgia, serif;
	font-size: 1.6rem;
	color: var(--maroon);
}

.charmeta {
	margin-top: 0.1rem;
	color: var(--muted);
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.stats {
	margin: 1.1rem 0 0.25rem;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.6rem;
}

.stat {
	padding: 0.7rem 0.5rem;
	background: #ece8dd;
	border: 1px solid var(--border);
	border-radius: 2px;
}

.stat .val {
	font-family: "Lora", Georgia, serif;
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--maroon);
}

.stat .label {
	margin-top: 0.15rem;
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted);
}

.form {
	margin: 1.25rem auto 0;
	max-width: 22rem;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.field {
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--border);
	border-radius: 2px;
	background: #fff;
	color: var(--ink);
	font: inherit;
}

.hint {
	margin-top: 1.25rem;
	font-size: 0.8rem;
	color: var(--muted);
}

.widget-form {
	margin-top: 1.6rem;
	padding-top: 1.2rem;
	border-top: 1px solid var(--border);
}

.widget-title {
	margin: 0 0 0.2rem;
	font-family: "Lora", Georgia, serif;
	font-size: 1.1rem;
	color: var(--maroon);
}

.wrow {
	display: grid;
	grid-template-columns: 3.5rem 1fr 1fr;
	gap: 0.5rem;
	align-items: center;
}

.wlabel {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--muted);
}

.links {
	margin-top: 1.6rem;
	display: flex;
	gap: 0.6rem;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}

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

a:hover {
	text-decoration: underline;
}

.btn {
	display: inline-block;
	padding: 0.6rem 1.15rem;
	border-radius: 2px;
	background: var(--maroon);
	color: #fff;
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	transition: background-color 0.15s;
}

.btn:hover {
	background: var(--maroon-dark);
	color: #fff;
	text-decoration: none;
}

.btn.primary {
	background: var(--orange);
}

.btn.primary:hover {
	background: var(--orange-dark);
}

code {
	padding: 0.1rem 0.35rem;
	border-radius: 2px;
	background: #e7e3d8;
	color: var(--maroon);
}
