.dsmp-player {
	--dsmp-cream: #fefaef;
	--dsmp-muted: rgba(254, 250, 239, 0.66);
	--dsmp-line: rgba(254, 250, 239, 0.24);
	--dsmp-accent: #841625;
	--dsmp-gold: #ffffff;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	overflow-x: clip;
	color: var(--dsmp-cream);
	font-family: inherit;
}

.dsmp-admin-preview {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	max-width: 100%;
	margin: 0 0 10px;
	padding: 6px 10px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.96);
	color: #1d2327;
	font-size: 12px;
	line-height: 1.2;
}

.dsmp-admin-preview form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	flex: 1;
}

.dsmp-admin-preview label {
	display: block;
}

.dsmp-admin-preview select {
	width: auto;
	max-width: min(260px, 32vw);
	min-width: 0;
	height: 28px;
	min-height: 28px;
	padding-top: 0;
	padding-bottom: 0;
	font-size: 12px;
}

.dsmp-admin-preview .button {
	min-height: 28px;
	padding: 0 9px;
	font-size: 12px;
	line-height: 26px;
}

.dsmp-admin-preview__title {
	flex: 0 0 auto;
	white-space: nowrap;
}

.dsmp-admin-preview__clear {
	color: #646970;
	white-space: nowrap;
}

.dsmp-player__preview {
	display: flex;
	align-items: center;
	gap: 8px;
	width: fit-content;
	max-width: 100%;
	margin: 0;
	padding: 5px 9px;
	border: 1px solid rgba(203, 191, 155, 0.5);
	border-radius: 999px;
	color: var(--dsmp-gold);
	font-size: 0.72rem;
	line-height: 1.2;
}

.dsmp-player__preview span {
	overflow: hidden;
	color: var(--dsmp-muted);
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dsmp-player,
.dsmp-player * {
	box-sizing: border-box;
}

.dsmp-player [hidden] {
	display: none !important;
}

.dsmp-player * {
	min-width: 0;
}

.dsmp-player p,
.dsmp-player li,
.dsmp-player h1,
.dsmp-player h2,
.dsmp-player h3,
.dsmp-player button {
	overflow-wrap: anywhere;
}

.dsmp-player__header {
	padding: 0;
	border-bottom: 1px solid var(--dsmp-line);
	margin: 0;
}

.dsmp-player__eyebrow {
	margin: 0;
	font-size: 0.8rem;
	color: var(--dsmp-muted);
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.dsmp-player__title {
	margin: 0;
	font-size: clamp(2rem, 7vw, 4rem);
	font-weight: 500;
	letter-spacing: 0.02em;
}

.dsmp-player__card {
	display: grid;
	gap: 20px;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.dsmp-player__main {
	margin: 0;
	padding: 0;
	overscroll-behavior-y: contain;
}

.dsmp-player__message {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.5;
	color: var(--dsmp-muted);
}

.dsmp-player__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 14px 24px;
	border: 0;
	border-radius: 999px;
	background: var(--dsmp-accent);
	color: var(--dsmp-cream);
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	width: 100%;
}

.dsmp-player__button:hover,
.dsmp-player__button:focus {
	opacity: 0.92;
	color: var(--dsmp-cream);
}

.dsmp-player__button:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.dsmp-player--message {
	padding: 0;
}

.dsmp-player__phase {
	margin: 0;
	font-size: 0.85rem;
	color: var(--dsmp-muted);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.dsmp-player__subtitle {
	margin: 0 0 12px;
	font-size: 1.2rem;
}

.dsmp-player__character-title,
.dsmp-player__kicker {
	margin: 0;
	color: var(--dsmp-gold);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.dsmp-player__guide,
.dsmp-player__phase-intro,
.dsmp-player__section,
.dsmp-player__vote-intro,
.dsmp-player__questions {
	padding: 18px;
	border: 1px solid var(--dsmp-line);
	border-radius: 10px;
	background: rgba(254, 250, 239, 0.04);
}

.dsmp-player__phase-intro {
	padding: 0;
	border: 0;
	background: transparent;
}

.dsmp-player__phase-intro h2 {
	margin: 0 0 8px;
}

.dsmp-player__phase-intro p:last-child {
	margin-bottom: 0;
}

.dsmp-player__act-rules {
	display: grid;
	gap: 10px;
	margin-top: 18px;
}

.dsmp-player__act-rules > div {
	display: grid;
	grid-template-columns: minmax(115px, 0.34fr) 1fr;
	gap: 12px;
	padding: 12px 14px;
	border: 1px solid var(--dsmp-line);
	border-radius: 10px;
	background: rgba(254, 250, 239, 0.04);
}

.dsmp-player__act-rules strong {
	color: var(--dsmp-gold);
}

.dsmp-player__act-rules span {
	color: var(--dsmp-muted);
	line-height: 1.45;
}

.dsmp-player__role-instruction {
	padding: 18px;
	border: 1px solid var(--dsmp-line);
	border-left: 4px solid var(--dsmp-gold);
	border-radius: 12px;
	background: rgba(254, 250, 239, 0.055);
}

.dsmp-player__role-instruction h3 {
	margin: 6px 0 10px;
	font-size: 1.2rem;
}

.dsmp-player__role-instruction p:last-child {
	margin-bottom: 0;
}

.dsmp-player__role-instruction--villain {
	border-left-color: var(--dsmp-accent);
	background: rgba(132, 22, 37, 0.12);
}

.dsmp-player__act2-intro {
	padding-bottom: 4px;
}

.dsmp-player__act2-intro h2 {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.55rem, 7vw, 2.2rem);
	letter-spacing: 0.025em;
}

.dsmp-player__act2-overview {
	display: grid;
	gap: 8px;
	padding: 18px;
	border: 1px solid var(--dsmp-line);
	border-radius: 14px;
	background: rgba(254, 250, 239, 0.035);
}

.dsmp-player__act2-overview > h2,
.dsmp-player__act2-overview > p {
	margin: 0;
}

.dsmp-player__act2-overview > p {
	color: var(--dsmp-muted);
}

.dsmp-player__act2-dynamics {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin-top: 8px;
}

.dsmp-player__act2-dynamics article {
	padding: 14px;
	border: 1px solid rgba(254, 250, 239, 0.14);
	border-radius: 11px;
	background: rgba(254, 250, 239, 0.045);
}

.dsmp-player__act2-dynamics h3 {
	margin: 0 0 7px;
	color: var(--dsmp-gold);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.05rem;
}

.dsmp-player__act2-dynamics p {
	margin: 0;
	color: var(--dsmp-muted);
	font-size: 0.92rem;
	line-height: 1.45;
}

.dsmp-player__act2-role {
	display: grid;
	gap: 12px;
	padding: 22px 20px;
	border: 2px solid rgba(243, 219, 161, 0.38);
	border-left: 5px solid var(--dsmp-gold);
	border-radius: 14px;
	background: linear-gradient(145deg, rgba(254, 250, 239, 0.1), rgba(254, 250, 239, 0.035));
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16);
}

.dsmp-player__act2-role h2,
.dsmp-player__act2-role p,
.dsmp-player__act2-role ul {
	margin-top: 0;
	margin-bottom: 0;
}

.dsmp-player__act2-role h2 {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.45rem, 6vw, 2rem);
}

.dsmp-player__act2-role .dsmp-player__list {
	display: grid;
	gap: 7px;
	padding-left: 22px;
}

.dsmp-player__act2-role--villain {
	border-color: rgba(205, 92, 108, 0.45);
	border-left-color: #cd5c6c;
	background: linear-gradient(145deg, rgba(132, 22, 37, 0.3), rgba(74, 16, 24, 0.12));
}

.dsmp-player__act2-role--witness {
	border-color: rgba(226, 192, 111, 0.46);
	border-left-color: #e2c06f;
}

.dsmp-player__act2-role--investigator {
	border-color: rgba(143, 184, 166, 0.42);
	border-left-color: #8fb8a6;
	background: linear-gradient(145deg, rgba(42, 87, 70, 0.24), rgba(254, 250, 239, 0.035));
}

.dsmp-player__act2-risk {
	padding: 11px 13px;
	border-radius: 9px;
	background: rgba(0, 0, 0, 0.22);
	font-size: 0.94rem;
	font-weight: 700;
	line-height: 1.45;
}

.dsmp-player__private-testimony {
	display: grid;
	gap: 12px;
	padding: 20px;
	border: 1px solid rgba(226, 192, 111, 0.5);
	border-radius: 14px;
	background: rgba(72, 50, 16, 0.24);
}

.dsmp-player__private-testimony h2,
.dsmp-player__private-testimony p {
	margin: 0;
}

.dsmp-player__private-testimony h2 {
	font-family: Georgia, "Times New Roman", serif;
}

.dsmp-player__private-testimony-text {
	padding: 15px;
	border-left: 3px solid var(--dsmp-gold);
	background: rgba(0, 0, 0, 0.2);
	font-size: 1.04rem;
	line-height: 1.58;
}

.dsmp-player__private-testimony-note {
	color: var(--dsmp-muted);
	font-size: 0.92rem;
	font-weight: 700;
}

.dsmp-player__waiting {
	padding: clamp(22px, 6vw, 42px);
	border: 1px solid var(--dsmp-line);
	border-radius: 16px;
	background:
		radial-gradient(circle at 85% 15%, rgba(203, 191, 155, 0.12), transparent 34%),
		linear-gradient(145deg, rgba(132, 22, 37, 0.17), rgba(12, 8, 9, 0.2));
}

.dsmp-player__waiting h2 {
	margin: 8px 0 16px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.7rem, 6vw, 2.7rem);
}

.dsmp-player__login-subtitle {
	margin: -6px 0 18px;
	color: var(--dsmp-cream);
	font-size: 1.08rem;
	font-weight: 700;
}

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

.dsmp-player__story-file {
	padding: clamp(18px, 5vw, 28px);
	border: 1px solid var(--dsmp-line);
	border-radius: 16px;
	background: rgba(254, 250, 239, 0.045);
}

.dsmp-player__story-file h2 {
	margin: 8px 0 16px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.5rem, 6vw, 2.25rem);
}

.dsmp-player__story-file > p:last-child {
	margin-bottom: 0;
	font-size: 1.02rem;
	line-height: 1.65;
}

.dsmp-player__sealed-file {
	position: relative;
	display: grid;
	gap: 14px;
	padding: clamp(18px, 5vw, 28px);
	overflow: hidden;
	border: 1px solid rgba(203, 191, 155, 0.5);
	border-radius: 16px;
	background:
		linear-gradient(135deg, rgba(132, 22, 37, 0.32), rgba(20, 12, 14, 0.82)),
		#160d0f;
	box-shadow: 0 18px 45px rgba(0, 0, 0, 0.24);
}

.dsmp-player__sealed-file::after {
	position: absolute;
	top: 18px;
	right: -35px;
	width: 150px;
	padding: 6px 0;
	background: var(--dsmp-gold);
	color: #381019;
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.15em;
	text-align: center;
	transform: rotate(35deg);
	content: "PRIVATE";
}

.dsmp-player__sealed-file.is-revealed::after {
	display: none;
}

.dsmp-player__sealed-file-content {
	display: grid;
	gap: 12px;
	min-height: 180px;
	padding: 22px;
	border: 1px dashed rgba(254, 250, 239, 0.34);
	border-radius: 12px;
	filter: blur(1.8px);
	text-align: center;
	place-content: center;
	user-select: none;
}

.dsmp-player__sealed-file-content span {
	color: var(--dsmp-gold);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.2em;
}

.dsmp-player__sealed-file-content strong {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.7rem;
}

.dsmp-player__sealed-file-content p {
	margin: 0;
	color: var(--dsmp-muted);
}

.dsmp-player__reveal-character {
	position: relative;
	z-index: 1;
	min-height: 50px;
	padding: 12px 20px;
	border: 0;
	border-radius: 999px;
	background: var(--dsmp-cream);
	color: var(--dsmp-accent);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.dsmp-player__revealed-character {
	position: relative;
	z-index: 1;
}

.dsmp-player__character-sheet {
	display: grid;
	gap: 16px;
}

.dsmp-player__character-sheet-header {
	padding: 0 0 16px;
	border-bottom: 1px solid currentColor;
}

.dsmp-player__character-sheet-header .dsmp-player__subtitle {
	margin: 7px 0 5px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.6rem, 7vw, 2.35rem);
	line-height: 1.1;
}

.dsmp-player__character-sheet > p,
.dsmp-player__character-sheet > .dsmp-player__objective,
.dsmp-player__character-sheet > .dsmp-player__secret {
	margin: 0;
	padding: 16px 18px;
	border: 1px solid var(--dsmp-line);
	border-radius: 12px;
	background: rgba(254, 250, 239, 0.05);
}

.dsmp-player__character-guidance {
	display: grid;
	gap: 12px;
	padding: 18px;
	border: 1px solid var(--dsmp-line);
	border-radius: 14px;
}

.dsmp-player__character-guidance h3,
.dsmp-player__character-guidance p,
.dsmp-player__character-guidance ul {
	margin-top: 0;
	margin-bottom: 0;
}

.dsmp-player__character-guidance--locked {
	border-left: 4px solid #bd9a54;
	background: rgba(20, 18, 16, 0.34);
}

.dsmp-player__character-guidance--cover {
	border-left: 4px solid #a76f89;
	background: rgba(71, 28, 52, 0.24);
}

.dsmp-player__character-guidance-help {
	font-size: 0.94rem;
	line-height: 1.55;
	opacity: 0.88;
}

.dsmp-player__villain-strategy {
	display: grid;
	gap: 12px;
	padding: 18px;
	border: 1px solid rgba(214, 179, 95, 0.35);
	border-radius: 14px;
	background: rgba(214, 179, 95, 0.08);
}

.dsmp-player__villain-strategy h3,
.dsmp-player__villain-strategy h4,
.dsmp-player__villain-strategy p {
	margin: 0;
}

.dsmp-player__villain-strategy-role {
	display: grid;
	gap: 10px;
	padding-top: 12px;
	border-top: 1px solid rgba(254, 250, 239, 0.16);
}

.dsmp-player__villain-strategy-role h4 {
	font-size: 1.02rem;
}

.dsmp-player__fanatic-hints {
	padding-top: 4px;
	font-size: 0.95rem;
	line-height: 1.45;
}

.dsmp-player__investigation-profile {
	display: grid;
	gap: 12px;
	padding: 16px 18px;
	border: 1px solid var(--dsmp-line);
	border-radius: 12px;
	background: rgba(254, 250, 239, 0.04);
}

.dsmp-player__investigation-profile--killer,
.dsmp-player__investigation-profile--villain,
.dsmp-player__investigation-profile--suspect,
.dsmp-player__investigation-profile--clear {
	border-left: 3px solid rgba(254, 250, 239, 0.28);
}

.dsmp-player__investigation-profile__kicker {
	margin: 0;
	color: var(--dsmp-muted);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.dsmp-player__investigation-profile__title {
	margin: 0;
	font-family: inherit;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
}

.dsmp-player__investigation-profile__lead {
	margin: 0;
	color: var(--dsmp-muted);
	font-size: 0.92rem;
	line-height: 1.5;
}

.dsmp-player__evidence-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.dsmp-player__evidence-card {
	display: grid;
	gap: 6px;
	padding: 10px 8px;
	border: 1px solid rgba(254, 250, 239, 0.14);
	border-radius: 10px;
	background: rgba(0, 0, 0, 0.1);
}

.dsmp-player__evidence-card.is-yes {
	border-color: rgba(254, 250, 239, 0.22);
	background: rgba(254, 250, 239, 0.06);
}

.dsmp-player__evidence-card.is-no {
	border-color: rgba(254, 250, 239, 0.1);
	background: rgba(0, 0, 0, 0.08);
}

.dsmp-player__evidence-card__label {
	margin: 0;
	color: var(--dsmp-cream);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.dsmp-player__evidence-card__status {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1;
}

.dsmp-player__evidence-card.is-yes .dsmp-player__evidence-card__status {
	color: var(--dsmp-cream);
}

.dsmp-player__evidence-card.is-no .dsmp-player__evidence-card__status {
	color: rgba(254, 250, 239, 0.45);
}

.dsmp-player__evidence-card__detail {
	margin: 0;
	color: var(--dsmp-muted);
	font-size: 0.8rem;
	line-height: 1.4;
}

.dsmp-player__finalists {
	padding: 13px 15px;
	border: 1px solid rgba(214, 179, 95, 0.48);
	border-radius: 10px;
	background: rgba(214, 179, 95, 0.1);
}

.dsmp-player__result-names {
	margin: 0 0 10px;
	color: var(--dsmp-gold);
	font-weight: 700;
}

.dsmp-form--secret-action {
	display: grid;
	gap: 12px;
	padding: 18px;
	border: 1px solid var(--dsmp-line);
	border-radius: 14px;
	background: rgba(254, 250, 239, 0.04);
}

.dsmp-form--secret-action h2,
.dsmp-form--secret-action p {
	margin-top: 0;
}

.dsmp-player__guide h2,
.dsmp-player__section h3,
.dsmp-player__vote-intro h2 {
	margin-top: 0;
}

.dsmp-player__guide-grid {
	display: grid;
	gap: 12px;
	margin-top: 16px;
}

.dsmp-player__questions summary {
	cursor: pointer;
	font-weight: 600;
}

.dsmp-player__vote-counts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	padding: 12px 0;
	color: var(--dsmp-gold);
	font-weight: 600;
}

.dsmp-player__choices {
	display: grid;
	gap: 10px;
}

.dsmp-player__testimonies,
.dsmp-player__search-results {
	display: grid;
	gap: 12px;
}

.dsmp-player__testimony {
	padding: 16px;
	border: 1px solid var(--dsmp-line);
	border-radius: 10px;
	background: rgba(254, 250, 239, 0.04);
}

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

.dsmp-player__choice {
	position: relative;
	display: grid;
	gap: 14px;
	padding: 18px 14px 14px;
	overflow: hidden;
	border: 1px solid var(--dsmp-line);
	border-radius: 14px;
	background:
		linear-gradient(145deg, rgba(132, 22, 37, 0.16), rgba(254, 250, 239, 0.025) 48%),
		rgba(12, 8, 9, 0.28);
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.03);
	transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
}

.dsmp-player__choice::before,
.dsmp-player__choice::after {
	position: absolute;
	width: 18px;
	height: 18px;
	border-color: rgba(203, 191, 155, 0.42);
	content: "";
	pointer-events: none;
}

.dsmp-player__choice::before {
	top: 6px;
	left: 6px;
	border-top: 1px solid;
	border-left: 1px solid;
}

.dsmp-player__choice::after {
	right: 6px;
	bottom: 6px;
	border-right: 1px solid;
	border-bottom: 1px solid;
}

.dsmp-player__choice[data-selected-choice] {
	border-color: var(--dsmp-gold);
	background:
		linear-gradient(145deg, rgba(132, 22, 37, 0.28), rgba(203, 191, 155, 0.08) 62%),
		rgba(12, 8, 9, 0.36);
}

.dsmp-player__choice-person {
	display: grid;
	gap: 5px;
	padding: 0 8px;
	text-align: center;
}

.dsmp-player__choice-person strong {
	color: var(--dsmp-cream);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.22rem;
	font-weight: 600;
	letter-spacing: 0.015em;
}

.dsmp-player__choice-person span {
	color: var(--dsmp-muted);
	font-size: 0.82rem;
	line-height: 1.35;
}

.dsmp-player__choice-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.dsmp-player__choice-actions button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 42px;
	padding: 8px 9px;
	border: 1px solid var(--dsmp-line);
	border-radius: 999px;
	background: rgba(254, 250, 239, 0.04);
	color: var(--dsmp-cream);
	font: inherit;
	font-size: 0.82rem;
	font-weight: 600;
	line-height: 1.15;
	cursor: pointer;
}

.dsmp-player__choice-actions button:only-child {
	grid-column: 1 / -1;
}

.dsmp-player__choice-actions button.is-selected {
	border-color: var(--dsmp-gold);
	background: var(--dsmp-gold);
	color: #1d1d1d;
}

.dsmp-player__choice[data-selected-choice="suspect"] {
	border-color: #d6b35f;
}

.dsmp-player__choice[data-selected-choice="suspect"] .dsmp-player__choice-actions button.is-selected {
	border-color: #d6b35f;
	background: #d6b35f;
}

.dsmp-form__error {
	padding: 10px 12px;
	border-left: 3px solid #d63638;
	background: rgba(214, 54, 56, 0.12);
}

.dsmp-player__preview-note {
	margin: -2px 0 0;
	color: var(--dsmp-muted);
	font-size: 0.85rem;
	text-align: center;
}

.dsmp-player__objective,
.dsmp-player__hint,
.dsmp-player__secret,
.dsmp-player__submitted {
	font-size: 0.95rem;
	line-height: 1.45;
}

.dsmp-player__submitted {
	margin: 0;
	color: var(--dsmp-gold);
	font-weight: 600;
}

.dsmp-player__list {
	margin: 12px 0 0;
	padding-left: 18px;
}

.dsmp-player__list li + li {
	margin-top: 8px;
}

.dsmp-player__footer {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
}

.dsmp-player__ready-state {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 9px 13px;
	border: 1px solid rgba(254, 250, 239, 0.28);
	border-radius: 999px;
	background: rgba(254, 250, 239, 0.08);
	color: var(--dsmp-cream);
	font-size: 0.86rem;
	font-weight: 600;
}

.dsmp-player__ready-state span {
	display: grid;
	width: 20px;
	height: 20px;
	place-items: center;
	border-radius: 50%;
	background: var(--dsmp-cream);
	color: #55101b;
	font-size: 0.75rem;
}

.dsmp-player__accomplice-waiting {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 15px;
	border: 1px solid rgba(254, 250, 239, 0.2);
	border-radius: 12px;
	background: rgba(0, 0, 0, 0.18);
}

.dsmp-player__spinner {
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	margin-top: 4px;
	border: 2px solid rgba(254, 250, 239, 0.22);
	border-top-color: var(--dsmp-cream);
	border-radius: 50%;
	animation: dsmp-spin 0.9s linear infinite;
}

.dsmp-player__proposal-received {
	padding: 16px;
	border: 1px solid rgba(254, 250, 239, 0.52);
	border-radius: 12px;
	background: rgba(254, 250, 239, 0.12);
	animation: dsmp-proposal-arrived 1.2s ease-out both;
}

.dsmp-player__final-warning {
	padding: 14px 16px;
	border: 1px solid rgba(214, 179, 95, 0.6);
	border-left: 4px solid #d6b35f;
	border-radius: 10px;
	background: rgba(214, 179, 95, 0.11);
}

.dsmp-player__result-warning {
	margin: 0;
	padding: 15px 16px;
	border: 1px solid rgba(214, 179, 95, 0.58);
	border-left: 4px solid #d6b35f;
	border-radius: 10px;
	background: rgba(214, 179, 95, 0.11);
	line-height: 1.5;
}

.dsmp-player__result-warning strong {
	display: block;
	margin-bottom: 3px;
	color: #f3dba1;
}

.dsmp-player__object-verdict {
	margin: 14px 0 0;
	padding: 12px 14px;
	border-radius: 9px;
	line-height: 1.45;
}

.dsmp-player__object-verdict--yes {
	border: 1px solid rgba(214, 179, 95, 0.62);
	background: rgba(214, 179, 95, 0.13);
}

.dsmp-player__object-verdict--no {
	border: 1px solid rgba(254, 250, 239, 0.18);
	background: rgba(254, 250, 239, 0.05);
}

.dsmp-player__object-verdict--clue {
	border: 1px solid rgba(181, 140, 152, 0.56);
	background: rgba(181, 140, 152, 0.12);
}

.dsmp-player__reveal-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(26px, 8vw, 54px) 20px;
	border: 1px solid rgba(254, 250, 239, 0.3);
	border-radius: 18px;
	background:
		radial-gradient(circle at 50% 0%, rgba(254, 250, 239, 0.16), transparent 42%),
		linear-gradient(150deg, rgba(132, 22, 37, 0.66), rgba(12, 8, 9, 0.96));
	text-align: center;
}

.dsmp-player__reveal-hero--investigators {
	background:
		radial-gradient(circle at 50% 0%, rgba(214, 179, 95, 0.25), transparent 42%),
		linear-gradient(150deg, rgba(67, 56, 30, 0.82), rgba(12, 8, 9, 0.96));
}

.dsmp-player__reveal-hero h2 {
	margin: 8px 0 24px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.2rem, 11vw, 4.5rem);
	line-height: 0.98;
}

.dsmp-player__reveal-murderer {
	display: grid;
	gap: 4px;
	margin: 0;
}

.dsmp-player__reveal-murderer span,
.dsmp-player__reveal-accusation span {
	color: var(--dsmp-muted);
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

.dsmp-player__reveal-murderer strong {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.65rem, 8vw, 3rem);
}

.dsmp-player__reveal-truth,
.dsmp-player__reveal-details article,
.dsmp-player__reveal-cast {
	padding: 18px;
	border: 1px solid var(--dsmp-line);
	border-radius: 12px;
	background: rgba(254, 250, 239, 0.045);
}

.dsmp-player__reveal-truth > p:last-child,
.dsmp-player__reveal-details article > p:last-child,
.dsmp-player__reveal-cast > p:last-child {
	margin-bottom: 0;
}

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

.dsmp-player__reveal-details h3,
.dsmp-player__reveal-cast h3 {
	margin-top: 0;
}

.dsmp-player__reveal-accusation {
	display: grid;
	gap: 5px;
	padding: 18px;
	border-top: 1px solid var(--dsmp-line);
	text-align: center;
}

.dsmp-player__reveal-accusation strong {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.4rem, 6vw, 2.1rem);
}

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

@keyframes dsmp-proposal-arrived {
	0% {
		box-shadow: 0 0 0 0 rgba(254, 250, 239, 0.5);
		transform: scale(0.98);
	}
	55% {
		box-shadow: 0 0 0 12px rgba(254, 250, 239, 0);
	}
	100% {
		transform: scale(1);
	}
}

.dsmp-player__select {
	display: block;
	width: 100%;
	margin: 8px 0 16px;
	padding: 12px 14px;
	border-radius: 8px;
	border: 1px solid var(--dsmp-line);
	background: rgba(0, 0, 0, 0.2);
	color: var(--dsmp-cream);
	font-size: 1rem;
}

.dsmp-form .dsmp-player__button {
	margin-top: 8px;
}

.dsmp-player-sheet {
	position: fixed;
	inset: 0;
	width: 100dvw;
	max-width: 100dvw;
	z-index: 100000;
	display: block;
	pointer-events: none;
}

.dsmp-player-sheet[hidden] {
	display: none !important;
}

.dsmp-player-sheet.is-open {
	pointer-events: auto;
}

.dsmp-player-sheet__backdrop {
	position: absolute;
	inset: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(8, 8, 8, 0.58);
	opacity: 0;
	transition: opacity 0.28s ease;
	cursor: pointer;
}

.dsmp-player-sheet.is-open .dsmp-player-sheet__backdrop {
	opacity: 1;
}

.dsmp-player-sheet__panel {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	max-height: min(58vh, 520px);
	max-width: 100dvw;
	border-radius: 18px 18px 0 0;
	background: var(--dsmp-cream);
	color: #4a1018;
	box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.28);
	transform: translate3d(0, calc(100% + 32px), 0);
	visibility: hidden;
	transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), max-height 0.34s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.34s;
}

.dsmp-player-sheet.is-open .dsmp-player-sheet__panel {
	transform: translate3d(0, 0, 0);
	visibility: visible;
	transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), max-height 0.34s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s;
}

.dsmp-player-sheet.is-expanded .dsmp-player-sheet__panel {
	max-height: min(92vh, 900px);
}

.dsmp-player-sheet__handle {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 72px;
	height: 28px;
	margin: 0 auto;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	touch-action: none;
}

.dsmp-player-sheet__handle span {
	display: block;
	width: 44px;
	height: 5px;
	border-radius: 999px;
	background: rgba(74, 16, 24, 0.28);
}

.dsmp-player-sheet__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 4px 20px 12px;
	border-bottom: 1px solid rgba(74, 16, 24, 0.12);
}

.dsmp-player-sheet__header h2 {
	margin: 0;
	color: var(--dsmp-accent);
	font-size: 1.25rem;
}

.dsmp-player-sheet__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(132, 22, 37, 0.1);
	color: var(--dsmp-accent);
	font: inherit;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}

.dsmp-player-sheet__body {
	overflow: auto;
	padding: 22px 20px 34px;
	-webkit-overflow-scrolling: touch;
	font-size: 1rem;
	line-height: 1.65;
}

.dsmp-player-sheet__body > :first-child {
	margin-top: 0;
}

.dsmp-player-sheet__body > :last-child {
	margin-bottom: 0;
}

.dsmp-player-sheet__body p {
	margin: 0 0 16px;
}

.dsmp-player-sheet__body h2,
.dsmp-player-sheet__body h3 {
	margin: 26px 0 10px;
	color: var(--dsmp-accent);
	line-height: 1.25;
}

.dsmp-player-sheet__body .dsmp-player__subtitle {
	margin-top: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.55rem;
}

.dsmp-player-sheet__body .dsmp-player__guide-grid {
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 14px;
	margin: 20px 0 24px;
}

.dsmp-player-sheet__body .dsmp-player__section {
	padding: 18px;
	border-color: rgba(74, 16, 24, 0.16);
	border-radius: 14px;
	background: rgba(132, 22, 37, 0.04);
}

.dsmp-player-sheet__body .dsmp-player__section h3 {
	margin: 0 0 8px;
	font-size: 1.05rem;
}

.dsmp-player-sheet__body .dsmp-player__section p {
	margin: 0;
}

.dsmp-player-sheet__body .dsmp-player__list {
	display: grid;
	gap: 10px;
	margin-top: 14px;
	padding-left: 22px;
}

.dsmp-player-sheet__body .dsmp-player__list li + li {
	margin-top: 0;
}

.dsmp-player-sheet__body .dsmp-player__character-title,
.dsmp-player-sheet__body .dsmp-player__kicker {
	color: var(--dsmp-accent);
}

.dsmp-player-sheet__body .dsmp-player__character-sheet {
	gap: 18px;
}

.dsmp-player-sheet__body .dsmp-player__character-sheet-header {
	padding-bottom: 20px;
	border-color: rgba(74, 16, 24, 0.16);
}

.dsmp-player-sheet__body .dsmp-player__character-sheet > p,
.dsmp-player-sheet__body .dsmp-player__character-sheet > .dsmp-player__objective,
.dsmp-player-sheet__body .dsmp-player__character-sheet > .dsmp-player__secret {
	padding: 18px;
	border-color: rgba(74, 16, 24, 0.16);
	background: rgba(132, 22, 37, 0.045);
}

.dsmp-player-sheet__body .dsmp-player__character-guidance--locked {
	border-color: rgba(125, 91, 29, 0.3);
	border-left-color: #8a641f;
	background: #fbf6e9;
}

.dsmp-player-sheet__body .dsmp-player__character-guidance--cover {
	border-color: rgba(116, 51, 82, 0.24);
	border-left-color: #743352;
	background: #fcf2f7;
}

.dsmp-player-sheet__body .dsmp-player__villain-strategy {
	border-color: rgba(132, 22, 37, 0.18);
	background: rgba(132, 22, 37, 0.04);
}

.dsmp-player-sheet__body .dsmp-player__villain-strategy-role {
	border-top-color: rgba(74, 16, 24, 0.12);
}

.dsmp-player-sheet__body .dsmp-player__investigation-profile {
	border-color: rgba(74, 16, 24, 0.12);
	background: rgba(74, 16, 24, 0.03);
}

.dsmp-player-sheet__body .dsmp-player__investigation-profile--killer,
.dsmp-player-sheet__body .dsmp-player__investigation-profile--villain,
.dsmp-player-sheet__body .dsmp-player__investigation-profile--suspect,
.dsmp-player-sheet__body .dsmp-player__investigation-profile--clear {
	border-left-color: rgba(74, 16, 24, 0.2);
}

.dsmp-player-sheet__body .dsmp-player__investigation-profile__kicker {
	color: rgba(74, 16, 24, 0.55);
}

.dsmp-player-sheet__body .dsmp-player__investigation-profile__title {
	color: #4a1018;
}

.dsmp-player-sheet__body .dsmp-player__investigation-profile__lead {
	color: rgba(74, 16, 24, 0.72);
}

.dsmp-player-sheet__body .dsmp-player__evidence-card {
	border-color: rgba(74, 16, 24, 0.1);
	background: #ffffff;
}

.dsmp-player-sheet__body .dsmp-player__evidence-card.is-yes {
	border-color: rgba(74, 16, 24, 0.16);
	background: rgba(74, 16, 24, 0.03);
}

.dsmp-player-sheet__body .dsmp-player__evidence-card.is-no {
	background: rgba(74, 16, 24, 0.02);
}

.dsmp-player-sheet__body .dsmp-player__evidence-card__label,
.dsmp-player-sheet__body .dsmp-player__evidence-card__detail {
	color: rgba(74, 16, 24, 0.72);
}

.dsmp-player-sheet__body .dsmp-player__evidence-card__status {
	color: #4a1018;
}

.dsmp-player-sheet__body .dsmp-player__evidence-card.is-yes .dsmp-player__evidence-card__status {
	color: var(--dsmp-accent);
}

.dsmp-player-sheet__body .dsmp-player__evidence-card.is-no .dsmp-player__evidence-card__status {
	color: rgba(74, 16, 24, 0.35);
}

body.dsmp-player-sheet-open {
	overflow: hidden;
}

.dsmp-player-app-nav {
	position: fixed;
	right: max(12px, env(safe-area-inset-right));
	bottom: max(10px, env(safe-area-inset-bottom));
	left: max(12px, env(safe-area-inset-left));
	z-index: 99990;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: center;
	gap: 4px;
	width: min(520px, calc(100vw - 24px));
	margin: 0 auto;
	padding: 7px;
	border: 1px solid rgba(74, 16, 24, 0.12);
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.14);
}

.dsmp-player.has-app-nav {
	padding-bottom: calc(92px + env(safe-area-inset-bottom));
}

.dsmp-player-app-nav[hidden] {
	display: none;
}

.dsmp-player-app-nav button {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	min-height: 58px;
	padding: 7px 4px 6px;
	border: 0;
	border-radius: 14px;
	background: transparent;
	color: rgba(74, 16, 24, 0.68);
	font: inherit;
	font-size: 0.72rem;
	font-weight: 650;
	line-height: 1;
	cursor: pointer;
	transition: color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.dsmp-player-app-nav button:hover,
.dsmp-player-app-nav button:focus-visible {
	background: rgba(132, 22, 37, 0.08);
	color: #4a1018;
}

.dsmp-player-app-nav button.is-active {
	background: rgba(132, 22, 37, 0.1);
	color: var(--dsmp-accent);
}

.dsmp-player-app-nav button:active {
	transform: scale(0.97);
}

.dsmp-player-app-nav button:disabled {
	color: rgba(74, 16, 24, 0.28);
	cursor: default;
}

.dsmp-player-app-nav button:disabled:hover {
	background: transparent;
}

.dsmp-player-app-nav svg {
	width: 24px;
	height: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.dsmp-player-help {
	display: grid;
	gap: 14px;
}

.dsmp-player-help__section {
	padding: 18px;
	border: 1px solid rgba(74, 16, 24, 0.14);
	border-radius: 14px;
	background: #fffdf7;
}

.dsmp-player-help__section h3 {
	margin: 0 0 10px;
}

.dsmp-player-help__section > :last-child {
	margin-bottom: 0;
}

.dsmp-investigation-notebook__intro {
	margin: 0 0 14px;
	padding: 0;
	color: rgba(74, 16, 24, 0.78);
	font-size: 0.92rem;
	line-height: 1.45;
}

.dsmp-investigation-notebook {
	display: grid;
	gap: 8px;
}

.dsmp-investigation-notebook__person {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: stretch;
	gap: 10px;
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid rgba(74, 16, 24, 0.1);
	border-radius: 0;
	background: transparent;
}

.dsmp-investigation-notebook__person > div {
	display: grid;
	gap: 2px;
}

.dsmp-investigation-notebook__person strong {
	color: #4a1018;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1rem;
}

.dsmp-investigation-notebook__person > div span {
	color: rgba(74, 16, 24, 0.65);
	font-size: 0.75rem;
	line-height: 1.25;
}

.dsmp-investigation-notebook__person fieldset {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6px;
	margin: 0;
	padding: 0;
	border: 0;
}

.dsmp-investigation-notebook__person label {
	position: relative;
	display: block;
	width: 100%;
	cursor: pointer;
}

.dsmp-investigation-notebook__person input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.dsmp-investigation-notebook__person label span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	padding: 5px 4px;
	border: 1px solid rgba(74, 16, 24, 0.18);
	border-radius: 8px;
	color: rgba(74, 16, 24, 0.62);
	font-size: 0.6rem;
	font-weight: 700;
	line-height: 1.15;
	text-align: center;
	transition: 0.18s ease;
}

.dsmp-investigation-notebook__person input:checked + span {
	border-color: #841625;
	background: #841625;
	color: #fff;
	box-shadow: 0 4px 12px rgba(132, 22, 37, 0.24);
}

.dsmp-investigation-notebook__person input:focus-visible + span {
	outline: 2px solid #841625;
	outline-offset: 2px;
}

.dsmp-investigation-notebook__person:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.dsmp-player__hidden-roles {
	display: grid;
	gap: 12px;
	margin-top: 22px;
	padding: 18px;
	border: 1px solid rgba(132, 22, 37, 0.55);
	border-radius: 14px;
	background:
		linear-gradient(145deg, rgba(132, 22, 37, 0.18), rgba(10, 7, 8, 0.18));
}

.dsmp-player__hidden-roles h3,
.dsmp-player__hidden-roles p {
	margin: 0;
}

.dsmp-player__hidden-roles > div {
	display: grid;
	gap: 5px;
	padding: 14px 15px;
	border: 1px solid rgba(254, 250, 239, 0.15);
	border-radius: 11px;
	background: rgba(254, 250, 239, 0.045);
}

.dsmp-player__hidden-roles > div strong {
	color: #f3dba1;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.08rem;
}

.dsmp-player__hidden-roles > div span {
	color: var(--dsmp-muted);
	line-height: 1.5;
}

@media (min-width: 680px) {
	.dsmp-player__choices {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dsmp-player-sheet__panel {
		right: max(0px, calc((100vw - 760px) / 2));
		left: max(0px, calc((100vw - 760px) / 2));
		border-radius: 18px 18px 0 0;
	}
}

@media (max-width: 420px) {
	.dsmp-player__reveal-details {
		grid-template-columns: 1fr;
	}

	.dsmp-player-app-nav {
		right: max(8px, env(safe-area-inset-right));
		left: max(8px, env(safe-area-inset-left));
		width: calc(100vw - 16px);
		border-radius: 18px;
	}

	.dsmp-investigation-notebook__person label span {
		font-size: 0.56rem;
	}

	.dsmp-player__evidence-grid {
		grid-template-columns: 1fr;
	}

	.dsmp-admin-preview {
		gap: 6px;
		padding: 5px 7px;
	}

	.dsmp-admin-preview__title {
		display: none;
	}

	.dsmp-admin-preview select {
		max-width: 100%;
		flex: 1 1 120px;
	}

	.dsmp-admin-preview label {
		display: flex;
		flex: 1 1 120px;
	}

	.dsmp-admin-preview__clear {
		padding: 5px;
	}

	.dsmp-player__title {
		font-size: clamp(1.8rem, 10vw, 2.5rem);
	}

	.dsmp-player__card {
		gap: 16px;
	}

	.dsmp-player__guide,
	.dsmp-player__section,
	.dsmp-player__vote-intro,
	.dsmp-player__questions {
		padding: 14px;
	}

	.dsmp-player__choice-actions button {
		padding-inline: 6px;
		font-size: 0.76rem;
	}

	.dsmp-player__act-rules > div {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.dsmp-player__act2-dynamics {
		grid-template-columns: 1fr;
	}

	.dsmp-player__act2-dynamics article {
		padding: 13px 14px;
	}

	.dsmp-player__act2-role,
	.dsmp-player__private-testimony {
		padding: 18px 16px;
	}

	.dsmp-player-sheet__header,
	.dsmp-player-sheet__body {
		padding-right: 16px;
		padding-left: 16px;
	}
}
