/* =========================================================================
   LARP Quest — Design medfan (front)
   Scope : tout est préfixé .larp-scope / .larp-auth pour ne pas polluer le thème.
   ========================================================================= */

/* Palette exposée sur :root pour que les overlays ajoutés à <body>
   (tutoriels, pop-ins, mini-jeux…) héritent bien des couleurs. */
/* -------------------------------------------------------------------------
   Palette « Monetariis » — luxe noir & bordeaux, filets d'or, argent gravé.
   Les anciens noms de tokens (parch/ink/leather) sont conservés mais REMAPPÉS
   vers la nouvelle gamme sombre, pour que tous les composants basculent en bloc.
   --parch* = surfaces sombres, --ink* = texte clair, --parch-edge = filet d'or.
   ---------------------------------------------------------------------- */
:root {
	--ink: #f4e8d0;                     /* texte principal — ivoire chaud */
	--ink-soft: #b7a583;                /* texte secondaire — champagne feutré */
	--parch: #1d1117;                   /* surface panneau — bordeaux-noir */
	--parch-2: #281a23;                 /* surface relevée / dégradé */
	--parch-edge: rgba(201, 162, 74, .26); /* filet d'or */
	--leather: #f0dfb4;                 /* titres & labels — champagne clair */
	--leather-2: #2a1620;
	--leather-3: #3a1a24;
	--noir: #120a0e;                    /* fonds très sombres — puces, avatars */
	--noir-2: #1a0d12;
	--wine: #5a1220;                    /* bordeaux riche */
	--wine-2: #7c1a2b;                  /* bordeaux clair */
	--wine-deep: #2c0a12;               /* bordeaux profond */
	--panel-head: linear-gradient(180deg, #3a1420, #24101a); /* bandeaux d'en-tête */
	--gold: #c9a24a;
	--gold-lite: #eccf82;
	--gold-deep: #8f6d28;
	--silver: #c7ccd3;                  /* argent (goutte du logo) */
	--silver-lite: #eef1f5;
	--blood: #b02a38;                   /* accent danger — bordeaux vif */
	--emerald: #4f8a5a;
	--violet: #8b6db3;
	--indigo: #8b6db3;
	--r-common: #b6bcc4;
	--r-uncommon: #5bb062;
	--r-rare: #5a93e6;
	--r-epic: #b06fda;
	--r-legendary: #e6b43f;
	--radius: 14px;
	--shadow: 0 20px 50px rgba(0, 0, 0, .55);
}

.larp-scope, .larp-auth {
	--ink: #f4e8d0;
	--ink-soft: #b7a583;
	--parch: #1d1117;
	--parch-2: #281a23;
	--parch-edge: rgba(201, 162, 74, .26);
	--leather: #f0dfb4;
	--leather-2: #2a1620;
	--leather-3: #3a1a24;
	--noir: #120a0e;
	--noir-2: #1a0d12;
	--wine: #5a1220;
	--wine-2: #7c1a2b;
	--wine-deep: #2c0a12;
	--panel-head: linear-gradient(180deg, #3a1420, #24101a);
	--gold: #c9a24a;
	--gold-lite: #eccf82;
	--gold-deep: #8f6d28;
	--silver: #c7ccd3;
	--silver-lite: #eef1f5;
	--blood: #b02a38;
	--emerald: #4f8a5a;
	--violet: #8b6db3;
	--indigo: #8b6db3;

	--r-common: #b6bcc4;
	--r-uncommon: #5bb062;
	--r-rare: #5a93e6;
	--r-epic: #b06fda;
	--r-legendary: #e6b43f;

	--radius: 14px;
	--shadow: 0 20px 50px rgba(0, 0, 0, .55);

	color: var(--ink);
	font-family: 'EB Garamond', Georgia, serif;
	font-size: 18px;
	line-height: 1.6;
	max-width: 1180px;
	margin: 0 auto;
	padding: 8px 18px 60px;
	position: relative;
	z-index: 0;
}

/* Fond plein écran des pages de jeu : bordeaux profond fondu vers le noir,
   avec un halo bordeaux discret en haut (façon écran-titre du logo). */
.larp-scope::before, .larp-auth::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(120% 80% at 50% -10%, #6b1220 0%, #3a0d16 34%, #1a070c 66%, #0b0407 100%),
		#0b0407;
	pointer-events: none;
}
/* Liseré doré discret pour les liens dans le corps de texte. */
.larp-scope a { color: var(--gold-lite); }
.larp-scope a:hover { color: #fff; }

.larp-scope * , .larp-auth * { box-sizing: border-box; }

.larp-scope h1, .larp-scope h2, .larp-scope h3,
.larp-auth h1, .larp-auth h2, .larp-auth h3 {
	font-family: 'Cinzel', serif;
	color: var(--leather);
	letter-spacing: .02em;
	margin: 0 0 .4em;
	line-height: 1.2;
}

/* ---------- Boutons ---------- */
.larp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: 'Cinzel', serif;
	font-weight: 600;
	font-size: 15px;
	letter-spacing: .03em;
	padding: 11px 22px;
	border-radius: 10px;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: transform .12s ease, box-shadow .2s ease, filter .2s ease;
}
.larp-btn:hover { transform: translateY(-2px); }
.larp-btn:active { transform: translateY(0); }
.larp-btn-block { width: 100%; }

.larp-btn-gold {
	background: linear-gradient(180deg, var(--gold-lite), var(--gold) 55%, var(--gold-deep));
	color: #33240c;
	border-color: #7c5c1e;
	box-shadow: 0 8px 20px rgba(150, 110, 30, .35), inset 0 1px 0 rgba(255,255,255,.4);
	text-shadow: 0 1px 0 rgba(255,255,255,.3);
}
.larp-btn-gold:hover { filter: brightness(1.06); }

.larp-btn-ghost {
	background: rgba(201, 162, 74, .05);
	color: var(--gold-lite);
	border-color: var(--parch-edge);
}
.larp-btn-ghost:hover { background: rgba(201, 162, 74, .12); color: #fff; }

.larp-btn-danger { color: #f0b7bd; border-color: rgba(176,42,56,.55); background: rgba(176,42,56,.14); }
.larp-btn-danger:hover { background: rgba(176,42,56,.24); }
.larp-btn-mini { padding: 6px 12px; font-size: 13px; border-radius: 8px; }

/* ---------- Barre de navigation ---------- */
/* Or du joueur, toujours visible en haut à droite. */
.larp-gold-hud {
	position: fixed; top: 12px; right: 14px; z-index: 10000;
	display: inline-flex; align-items: center; gap: 6px;
	background: linear-gradient(180deg, var(--gold-lite), var(--gold));
	color: #2a1c08; font-family: 'Cinzel', serif; font-weight: 800; font-size: 16px;
	padding: 6px 14px; border-radius: 999px;
	border: 1px solid var(--gold-deep);
	box-shadow: 0 6px 18px rgba(20,12,4,.4), inset 0 1px 0 rgba(255,255,255,.4);
	pointer-events: none;
}
@media (max-width: 760px) {
	.larp-gold-hud { top: 8px; right: 8px; font-size: 15px; padding: 5px 12px; }
}

.larp-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	background: var(--panel-head);
	border: 1px solid #000;
	border-radius: var(--radius);
	padding: 8px;
	margin: 6px 0 28px;
	box-shadow: var(--shadow), inset 0 1px 0 rgba(201,162,74,.25);
}
.larp-nav-link {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #d9c8a8;
	text-decoration: none;
	font-family: 'Cinzel', serif;
	font-size: 14px;
	padding: 9px 16px;
	border-radius: 9px;
	transition: background .15s, color .15s;
}
.larp-nav-link:hover { background: rgba(201,162,74,.14); color: var(--gold-lite); }
.larp-nav-link.is-active { background: linear-gradient(180deg, var(--gold), var(--gold-deep)); color: #2a1c08; }
.larp-nav-ico { font-size: 17px; }
.larp-nav-out { color: #cf9d8a; }
/* Desktop : les deux groupes s'enchaînent en une rangée continue ; « Plus » masqué. */
.larp-nav-primary, .larp-nav-secondary { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.larp-nav .larp-nav-more { display: none; }

/* ---------- En-têtes de page ---------- */
.larp-hero {
	text-align: center;
	padding: 28px 20px 8px;
}
.larp-hero-crest, .larp-auth-crest, .larp-crest {
	width: 64px; height: 64px; margin: 0 auto 12px;
	display: grid; place-items: center;
	font-size: 30px; color: var(--gold-lite);
	background: radial-gradient(circle at 50% 40%, #3a1420, #1a070c);
	border: 2px solid var(--gold);
	border-radius: 50%;
	box-shadow: 0 6px 22px rgba(0,0,0,.5), inset 0 0 14px rgba(201,162,74,.35);
}
.larp-hero-title { font-size: 40px; }
.larp-hero-sub { font-style: italic; color: var(--ink-soft); font-size: 20px; margin: 0; }

.larp-page-head { text-align: center; margin: 6px 0 26px; }
.larp-page-title { font-size: 34px; }
.larp-page-sub { font-style: italic; color: var(--ink-soft); margin: 0; }

/* ---------- Panneaux parchemin ---------- */
.larp-panel, .larp-quest-card, .larp-created-card, .larp-quota-bar, .larp-secret-bar,
.larp-quest-form, .larp-quota-form, .larp-empty-panel {
	background:
		linear-gradient(180deg, rgba(201,162,74,.10), rgba(201,162,74,0) 22%),
		linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 1px solid var(--parch-edge);
	border-radius: var(--radius);
	box-shadow: var(--shadow), inset 0 1px 0 rgba(201,162,74,.18);
	padding: 22px 24px;
}
.larp-panel-title {
	font-size: 22px;
	border-bottom: 1px solid var(--parch-edge);
	padding-bottom: 8px;
	margin-bottom: 16px;
	position: relative;
}
.larp-panel-title::after {
	content: '';
	position: absolute; left: 0; bottom: -2px; width: 60px; height: 2px;
	background: var(--gold);
}

.larp-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }

/* ---------- Cartes de stats (dashboard) ---------- */
.larp-stat-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 26px; }
.larp-stat-card {
	display: flex; flex-direction: column; align-items: center; gap: 2px;
	background: var(--panel-head);
	border: 1px solid var(--parch-edge); border-radius: 12px; padding: 16px 8px;
	color: var(--ink);
	box-shadow: inset 0 1px 0 rgba(201,162,74,.22);
}
.larp-stat-ico { font-size: 22px; }
.larp-stat-num { font-family: 'Cinzel', serif; font-size: 26px; color: var(--gold-lite); }
.larp-stat-lab { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: #cbb890; }

/* ---------- Listes ---------- */
.larp-list { list-style: none; margin: 0; padding: 0; }
.larp-list-item {
	display: flex; align-items: center; justify-content: space-between;
	padding: 12px 14px; margin-bottom: 8px;
	background: rgba(255,255,255,.045);
	border-left: 4px solid var(--gold);
	border-radius: 8px;
}
.larp-list-item.is-done { opacity: .7; }
.larp-list-title { font-weight: 600; }
.larp-badge {
	font-family: 'Cinzel', serif; font-size: 12px;
	background: rgba(201,162,74,.14); color: var(--gold-lite);
	padding: 3px 10px; border-radius: 20px; border: 1px solid rgba(201,162,74,.35);
}
.larp-badge.is-done { color: var(--emerald); border-color: rgba(63,107,63,.4); background: rgba(63,107,63,.12); }
.larp-empty { font-style: italic; color: var(--ink-soft); text-align: center; padding: 14px; }

/* Couleurs de catégorie de quête (bordure gauche) */
.larp-color-standard  { border-left-color: var(--gold) !important; }
.larp-color-legendary { border-left-color: var(--violet) !important; }
.larp-color-danger    { border-left-color: var(--blood) !important; }
.larp-color-nature    { border-left-color: var(--emerald) !important; }

/* ---------- Mini inventaire ---------- */
.larp-mini-inv { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.larp-mini-item {
	position: relative; width: 56px; aspect-ratio: 63 / 100; border-radius: 8px;
	background: rgba(255,255,255,.05); border: 2px solid var(--r-common); overflow: hidden;
	display: grid; place-items: center; padding: 3px;
}
.larp-mini-item img { width: 100%; height: 100%; object-fit: contain; display: block; }
.larp-mini-qty { position: absolute; right: -4px; bottom: -6px; background: var(--noir); color: var(--gold-lite); font-size: 11px; padding: 1px 6px; border-radius: 10px; }

/* =========================================================================
   FEUILLE DE PERSONNAGE
   ========================================================================= */
.larp-sheet { display: flex; justify-content: center; }
.larp-sheet-frame {
	position: relative;
	width: 100%; max-width: 860px;
	background:
		radial-gradient(circle at 15% 10%, rgba(201,162,74,.16), transparent 42%),
		radial-gradient(circle at 85% 90%, rgba(124,29,29,.30), transparent 45%),
		linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 2px solid var(--gold);
	border-radius: 18px;
	padding: 30px 34px;
	box-shadow: var(--shadow), inset 0 0 60px rgba(0,0,0,.35);
}
.larp-sheet-frame::before {
	content: ''; position: absolute; inset: 10px;
	border: 1px solid rgba(143,109,40,.4); border-radius: 12px; pointer-events: none;
}
.larp-sheet-corner { position: absolute; width: 26px; height: 26px; border: 2px solid var(--gold-deep); }
.larp-sheet-corner.tl { top: 6px; left: 6px; border-right: 0; border-bottom: 0; }
.larp-sheet-corner.tr { top: 6px; right: 6px; border-left: 0; border-bottom: 0; }
.larp-sheet-corner.bl { bottom: 6px; left: 6px; border-right: 0; border-top: 0; }
.larp-sheet-corner.br { bottom: 6px; right: 6px; border-left: 0; border-top: 0; }

.larp-sheet-head { display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; }
.larp-portrait {
	position: relative; width: 118px; height: 118px; border-radius: 12px;
	background: var(--panel-head);
	border: 3px solid var(--gold); overflow: hidden;
	box-shadow: 0 8px 20px rgba(0,0,0,.3);
}
.larp-portrait img { width: 100%; height: 100%; object-fit: cover; }
.larp-portrait-placeholder { width: 100%; height: 100%; display: grid; place-items: center; font-size: 46px; color: var(--gold); }
.larp-portrait-edit {
	position: absolute; right: 4px; bottom: 4px; width: 28px; height: 28px;
	border-radius: 50%; border: 1px solid var(--gold-deep); background: var(--gold);
	color: #2a1c08; cursor: pointer; font-size: 14px; z-index: 2;
	display: grid; place-items: center; line-height: 1;
}
.larp-portrait-edit:hover { background: var(--gold-lite); }
.larp-visually-hidden {
	position: absolute !important; width: 1px; height: 1px;
	padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); border: 0;
}
.larp-portrait-loading {
	position: absolute; inset: 0; display: grid; place-items: center;
	background: rgba(20,12,4,.6); color: var(--gold-lite); font-size: 26px; z-index: 3;
}

.larp-inline-title {
	font-family: 'Cinzel', serif; font-size: 30px; font-weight: 700; color: var(--leather);
	background: transparent; border: none; border-bottom: 2px dashed transparent;
	width: 100%; padding: 2px 4px;
}
.larp-inline-title:focus, .larp-inline-sub:focus { outline: none; border-bottom: 2px dashed var(--gold); }
.larp-sheet-meta { display: flex; gap: 10px; margin: 6px 0; }
.larp-inline-select, .larp-inline-sub {
	font-family: 'EB Garamond', serif; font-size: 17px; color: var(--ink-soft);
	background: rgba(255,255,255,.055); border: 1px solid var(--parch-edge); border-radius: 8px; padding: 5px 10px;
}
.larp-inline-sub { font-style: italic; width: 100%; border-style: dashed; background: transparent; }

.larp-sheet-level { text-align: center; }
.larp-level-badge {
	width: 76px; height: 84px; display: grid; place-items: center;
	background: linear-gradient(180deg, var(--gold-lite), var(--gold-deep));
	color: #2a1c08; font-family: 'Cinzel', serif; font-size: 34px; font-weight: 800;
	clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
	box-shadow: 0 6px 16px rgba(120,90,20,.4);
}
.larp-level-lab { font-family: 'Cinzel', serif; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-deep); margin-top: 4px; }

.larp-xpbar {
	position: relative; height: 22px; margin: 22px 0;
	background: rgba(28,19,12,.12); border: 1px solid var(--parch-edge); border-radius: 12px; overflow: hidden;
}
.larp-xpbar-fill { height: 100%; background: linear-gradient(90deg, var(--gold-deep), var(--gold-lite)); transition: width .6s ease; }
.larp-xpbar-text { position: absolute; inset: 0; display: grid; place-items: center; font-size: 12px; font-family: 'Cinzel', serif; color: var(--leather); }

.larp-sheet-body { display: grid; grid-template-columns: 1fr 260px; gap: 24px; margin-top: 8px; }
.larp-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.larp-stat-shield {
	position: relative; text-align: center; padding: 14px 8px 12px;
	background: linear-gradient(180deg, rgba(201,162,74,.10), rgba(0,0,0,.18));
	border: 1px solid var(--parch-edge); border-radius: 10px;
}
.larp-stat-shield-lab { display: block; font-family: 'Cinzel', serif; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--gold-lite); }
.larp-stat-input {
	width: 68px; text-align: center; font-family: 'Cinzel', serif; font-size: 26px; font-weight: 700; color: var(--leather);
	background: transparent; border: none; margin: 2px 0;
}
.larp-stat-input:focus { outline: none; }
.larp-stat-mod {
	display: inline-block; font-size: 13px; color: #fff; background: var(--leather-2);
	padding: 1px 10px; border-radius: 12px; border: 1px solid var(--gold-deep);
}
.larp-stat-value {
	display: block; font-family: 'Cinzel', serif; font-size: 30px; font-weight: 800; color: var(--leather);
	line-height: 1.1; margin: 4px 0 2px;
}
.larp-stats-note { grid-column: 1 / -1; font-size: 13px; font-style: italic; color: var(--ink-soft); text-align: center; margin: 8px 0 0; }

.larp-sheet-side { display: flex; flex-direction: column; gap: 14px; }
.larp-purse {
	text-align: center; padding: 16px;
	background: var(--panel-head);
	border: 1px solid var(--parch-edge); border-radius: 12px; color: var(--ink);
}
.larp-purse-ico { font-size: 26px; }
.larp-purse-num { display: block; font-family: 'Cinzel', serif; font-size: 34px; color: var(--gold-lite); }
.larp-purse-lab { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: #cbb890; }

.larp-friendcode {
	text-align: center; padding: 14px;
	background: rgba(255,255,255,.05); border: 1px dashed var(--gold-deep); border-radius: 12px;
}
.larp-friendcode-lab { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-soft); margin-bottom: 4px; }
.larp-friendcode-val { font-family: 'Cinzel', serif; font-size: 22px; letter-spacing: .12em; color: var(--blood); }
.larp-friendcode.big .larp-friendcode-val { font-size: 30px; }
.larp-copy { display: block; margin: 8px auto 0; background: none; border: none; color: var(--gold-deep); cursor: pointer; text-decoration: underline; font-size: 13px; }

.larp-bio { margin-top: 20px; }
.larp-bio-lab { font-family: 'Cinzel', serif; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--gold-deep); }
.larp-bio textarea, .larp-scope textarea, .larp-auth textarea, .larp-scope input[type=text], .larp-scope input[type=number],
.larp-scope input[type=password], .larp-scope input[type=email], .larp-scope select {
	width: 100%; font-family: 'EB Garamond', serif; font-size: 17px; color: var(--ink);
	background: rgba(255,255,255,.06); border: 1px solid var(--parch-edge); border-radius: 9px; padding: 10px 12px;
}
.larp-bio textarea:focus, .larp-scope input:focus, .larp-scope select:focus, .larp-scope textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,162,74,.2); }

.larp-sheet-actions { display: flex; align-items: center; gap: 14px; margin-top: 20px; justify-content: center; }
.larp-save-status { font-style: italic; color: var(--emerald); }

/* =========================================================================
   INVENTAIRE
   ========================================================================= */
.larp-inv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 18px; }
.larp-card {
	position: relative; text-align: center; padding: 18px 16px 20px;
	background:
		linear-gradient(180deg, rgba(201,162,74,.08), rgba(201,162,74,0) 26%),
		linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 1px solid var(--r-common); border-radius: 14px;
	box-shadow: var(--shadow);
	transition: transform .15s ease, box-shadow .2s ease;
}
.larp-card:hover { transform: translateY(-4px); box-shadow: var(--shadow), 0 0 0 1px rgba(201,162,74,.35); }
.larp-card-thumb { width: 100%; max-width: 180px; aspect-ratio: 63 / 100; margin: 0 auto 12px; display: grid; place-items: center; background: rgba(255,255,255,.04); border-radius: 10px; padding: 4px; overflow: hidden; }
.larp-card-thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.larp-card-qty { position: absolute; top: 12px; right: 12px; background: var(--noir); color: var(--gold-lite); font-family: 'Cinzel', serif; padding: 2px 10px; border-radius: 12px; font-size: 13px; }
.larp-card-title { font-size: 18px; margin: 4px 0; }
.larp-card-rarity { font-family: 'Cinzel', serif; font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.larp-card-desc { font-size: 14px; color: var(--ink-soft); min-height: 40px; }

.larp-rarity-common    { border-color: var(--r-common); }
.larp-rarity-uncommon  { border-color: var(--r-uncommon); }
.larp-rarity-rare      { border-color: var(--r-rare); }
.larp-rarity-epic      { border-color: var(--r-epic); box-shadow: 0 0 22px rgba(155,89,198,.3); }
.larp-rarity-legendary { border-color: var(--r-legendary); box-shadow: 0 0 26px rgba(224,161,43,.4); }
.larp-rarity-common .larp-card-rarity    { color: var(--r-common); }
.larp-rarity-uncommon .larp-card-rarity  { color: var(--r-uncommon); }
.larp-rarity-rare .larp-card-rarity      { color: var(--r-rare); }
.larp-rarity-epic .larp-card-rarity      { color: var(--r-epic); }
.larp-rarity-legendary .larp-card-rarity { color: var(--r-legendary); }
.larp-mini-item.larp-rarity-uncommon { border-color: var(--r-uncommon); }
.larp-mini-item.larp-rarity-rare { border-color: var(--r-rare); }
.larp-mini-item.larp-rarity-epic { border-color: var(--r-epic); }
.larp-mini-item.larp-rarity-legendary { border-color: var(--r-legendary); }
.larp-card .larp-btn { margin-top: 12px; }

/* Potions dans l'inventaire : de vrais objets, buvables d'un clic. */
.larp-card-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 12px; }
.larp-card-actions .larp-btn { margin-top: 0; }
.larp-card-reveal { display: block; margin-top: 4px; font-size: 12px; font-weight: 600; color: var(--gold-lite); }
.larp-card-potion { border-color: var(--gold); }
.larp-card-potion .larp-card-rarity { color: var(--gold-lite); }
.larp-card-potion .larp-card-thumb { background: rgba(201,162,74,.08); }

/* =========================================================================
   MODALES
   ========================================================================= */
.larp-modal {
	position: fixed; inset: 0; z-index: 99999;
	background: rgba(20,12,4,.6); backdrop-filter: blur(3px);
	display: grid; place-items: center; padding: 20px;
}
.larp-modal[hidden] { display: none; }
.larp-modal-box {
	position: relative; width: 100%; max-width: 440px;
	background: linear-gradient(180deg, var(--parch), var(--parch-2));
	border: 2px solid var(--gold); border-radius: 16px; padding: 28px;
	box-shadow: var(--shadow);
}
.larp-modal-close { position: absolute; top: 12px; right: 14px; background: none; border: none; font-size: 26px; color: var(--ink-soft); cursor: pointer; }
.larp-modal-title { font-size: 22px; }
.larp-modal-item { font-style: italic; color: var(--gold-deep); }
.larp-modal-box label { display: block; font-family: 'Cinzel', serif; font-size: 13px; margin: 12px 0 4px; color: var(--gold-deep); }
.larp-modal-msg { margin-top: 10px; font-style: italic; min-height: 22px; }
.larp-modal-msg.is-ok { color: var(--emerald); }
.larp-modal-msg.is-err { color: var(--blood); }

/* =========================================================================
   CARTE
   ========================================================================= */
.larp-map { height: 520px; border: 2px solid var(--gold); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.larp-map-sm { height: 260px; }
.larp-secret-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; padding: 16px 20px; }
.larp-secret-lab { font-family: 'Cinzel', serif; color: var(--leather); }
.larp-secret-bar input { flex: 1; min-width: 180px; }
.larp-secret-msg { font-style: italic; }
.larp-legend { display: flex; gap: 22px; flex-wrap: wrap; justify-content: center; margin-top: 14px; font-size: 14px; }
.larp-dot { display: inline-block; width: 14px; height: 14px; border-radius: 50%; margin-right: 4px; vertical-align: middle; border: 2px solid; }
.larp-dot.larp-color-standard  { background: var(--gold); border-color: var(--gold-deep); }
.larp-dot.larp-color-legendary { background: var(--violet); border-color: #4a3062; }
.larp-dot.larp-color-danger    { background: var(--blood); border-color: #4d0f0f; }
.larp-dot.larp-color-nature    { background: var(--emerald); border-color: #24401f; }
.larp-dot.larp-color-quantum   { background: #2aa1a1; border-color: #186a6a; }
.larp-dot.larp-color-accepted  { background: #2e8b57; border-color: #1c5a38; }
.larp-popup-recipe { font-size: 12px; color: #4a4030; margin: 4px 0; }
.larp-dungeon-status { font-family: 'Cinzel', serif; font-size: 12px; color: #1f6f6f; margin-top: 6px; }
/* Marqueurs de carte : goutte + picto explicite */
.larp-pin { position: relative; }
.larp-pin-drop { position: absolute; left: 2px; top: 0; display: block; width: 26px; height: 26px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); border: 2px solid rgba(0,0,0,.35); box-shadow: 0 3px 8px rgba(0,0,0,.4); }
.larp-pin-ico { position: absolute; left: 0; top: 1px; width: 30px; height: 25px; display: grid; place-items: center; font-size: 14px; line-height: 1; filter: drop-shadow(0 1px 1px rgba(0,0,0,.55)); }
.larp-popup-title { font-family: 'Cinzel', serif; font-size: 16px; margin: 0 0 4px; color: #1b1710; }
.larp-popup-illus { margin: -2px -2px 8px; border-radius: 8px; overflow: hidden; }
.larp-popup-illus img { display: block; width: 100%; max-height: 120px; object-fit: cover; }

/* Pop-in de briefing de quête (image et/ou vidéo YouTube) */
.larp-briefing { position: fixed; inset: 0; z-index: 100005; display: grid; place-items: center; padding: 20px; background: rgba(6,4,7,.82); backdrop-filter: blur(3px); opacity: 0; transition: opacity .3s; }
.larp-briefing.is-in { opacity: 1; }
.larp-briefing-box {
	position: relative; width: 100%; max-width: 780px;
	background: linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 1px solid var(--gold); border-radius: 16px; padding: 20px;
	box-shadow: var(--shadow); transform: scale(.94); transition: transform .3s cubic-bezier(.2,1.3,.4,1);
}
.larp-briefing.is-in .larp-briefing-box { transform: scale(1); }
.larp-briefing-close { position: absolute; top: 6px; right: 12px; background: none; border: none; color: var(--ink-soft); font-size: 28px; line-height: 1; cursor: pointer; }
.larp-briefing-close:hover { color: #fff; }
.larp-briefing-kicker { font-family: 'Cinzel', serif; letter-spacing: .16em; text-transform: uppercase; font-size: 11px; color: var(--gold-lite); }
.larp-briefing-title { font-family: 'Cinzel', serif; font-size: 22px; color: var(--leather); margin: 4px 0 14px; }
.larp-briefing-video { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; border: 1px solid var(--parch-edge); background: #000; }
.larp-briefing-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.larp-briefing-img { border-radius: 10px; overflow: hidden; border: 1px solid var(--parch-edge); }
.larp-briefing-img img { display: block; width: 100%; max-height: 70vh; object-fit: contain; background: #000; }
.larp-popup-giver { font-style: italic; color: #6b5a3a; font-size: 12px; }

/* =========================================================================
   MES QUÊTES
   ========================================================================= */
.larp-tabs { display: flex; gap: 8px; margin-bottom: 20px; border-bottom: 2px solid rgba(143,109,40,.3); }
.larp-tab {
	font-family: 'Cinzel', serif; font-size: 16px; background: none; border: none; cursor: pointer;
	padding: 12px 20px; color: var(--ink-soft); border-bottom: 3px solid transparent; margin-bottom: -2px;
}
.larp-tab.is-active { color: var(--leather); border-bottom-color: var(--gold); }
.larp-tabpane { display: none; }
.larp-tabpane.is-active { display: block; }

.larp-quest-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.larp-quest-card { border-left: 5px solid var(--gold); }
.larp-quest-card h3 { font-size: 20px; }
.larp-quest-desc { font-size: 16px; line-height: 1.6; color: var(--ink); margin: 0 0 8px; white-space: normal; }
.larp-quest-reward { font-family: 'Cinzel', serif; color: var(--gold-deep); margin: 8px 0; }

.larp-inline-form { display: flex; gap: 8px; margin-top: 8px; }
.larp-inline-form input { flex: 1; }

.larp-quota-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.larp-quota-lab { font-family: 'Cinzel', serif; text-transform: uppercase; letter-spacing: .05em; font-size: 13px; color: var(--gold-deep); }
.larp-quota-val { font-family: 'Cinzel', serif; font-size: 30px; color: var(--leather); margin-left: 10px; }
.larp-quota-note { font-size: 14px; color: var(--ink-soft); margin: 4px 0 0; font-style: italic; }
.larp-quota-form { margin-bottom: 20px; }
.larp-quota-form label { display: block; font-family: 'Cinzel', serif; font-size: 13px; margin: 10px 0 4px; color: var(--gold-deep); }

.larp-giver-head { display: flex; align-items: center; justify-content: space-between; margin: 24px 0 16px; }
.larp-quest-form { margin-bottom: 24px; }
.larp-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.larp-col-span { grid-column: 1 / -1; }
.larp-field label { display: block; font-family: 'Cinzel', serif; font-size: 13px; margin-bottom: 4px; color: var(--gold-deep); }
.larp-field.larp-check label { display: inline; }
.larp-form-actions { display: flex; align-items: center; gap: 12px; margin-top: 16px; }

.larp-created-card { border-left: 5px solid var(--gold); margin-bottom: 16px; }
.larp-created-main h3 { font-size: 19px; display: flex; align-items: center; gap: 10px; }
.larp-created-meta { display: flex; flex-wrap: wrap; gap: 14px; color: var(--ink-soft); font-size: 14px; margin-top: 4px; }
.larp-created-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.larp-refill-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 12px; background: rgba(255,255,255,.05); border-radius: 10px; margin-bottom: 12px; }
.larp-participants { border-top: 1px dashed var(--parch-edge); padding-top: 12px; font-size: 15px; }
.larp-participant { display: flex; align-items: center; gap: 10px; justify-content: space-between; max-width: 420px; padding: 5px 0; }

/* =========================================================================
   COMPAGNONS
   ========================================================================= */
.larp-inline-form { align-items: center; }
.larp-friend-row {
	display: flex; align-items: center; gap: 12px; padding: 10px 12px; margin-bottom: 8px;
	background: rgba(255,255,255,.05); border-radius: 10px; border: 1px solid var(--parch-edge);
}
.larp-friend-av { width: 42px; height: 42px; border-radius: 8px; display: grid; place-items: center; overflow: hidden; background: var(--noir); color: var(--gold); border: 2px solid var(--gold); }
.larp-friend-av img { width: 100%; height: 100%; object-fit: cover; }
.larp-friend-name { flex: 1; font-weight: 600; }
.larp-friend-name small { display: block; font-weight: 400; color: var(--ink-soft); }
.larp-friend-remove { background: none; border: none; color: var(--blood); font-size: 22px; cursor: pointer; }
.larp-friend-row.is-pending { opacity: .75; }
.larp-request-row {
	display: flex; align-items: center; gap: 12px; padding: 10px 12px; margin-bottom: 8px;
	background: rgba(201,162,74,.12); border-radius: 10px; border: 1px solid var(--gold-deep);
}
.larp-requests .larp-panel-title { margin-bottom: 8px; }

/* =========================================================================
   PORTES (accès réservé)
   ========================================================================= */
.larp-gate {
	text-align: center; max-width: 520px; margin: 40px auto;
	background: linear-gradient(180deg, var(--parch), var(--parch-2));
	border: 2px solid var(--gold); border-radius: 18px; padding: 40px 30px;
	box-shadow: var(--shadow);
}
.larp-gate h2 { font-size: 26px; }
.larp-gate-actions { display: flex; gap: 12px; justify-content: center; margin-top: 20px; }

/* =========================================================================
   AUTH
   ========================================================================= */
.larp-auth { display: grid; place-items: center; min-height: 70vh; }
.larp-auth-card {
	width: 100%; max-width: 440px;
	background:
		radial-gradient(circle at 20% 0%, rgba(201,162,74,.12), transparent 45%),
		linear-gradient(180deg, var(--parch), var(--parch-2));
	border: 2px solid var(--gold); border-radius: 20px; padding: 40px 36px;
	box-shadow: var(--shadow), inset 0 0 40px rgba(143,109,40,.12);
	text-align: center;
}
.larp-auth-card-wide { max-width: 620px; }
.larp-auth-title { font-size: 30px; margin-top: 6px; }
.larp-auth-sub { font-style: italic; color: var(--ink-soft); margin: 0 0 20px; }
.larp-auth-form { text-align: left; }
.larp-auth-form .larp-field { display: block; margin-bottom: 14px; }
.larp-auth-form .larp-field > span { display: block; font-family: 'Cinzel', serif; font-size: 13px; color: var(--gold-deep); margin-bottom: 5px; }
.larp-check { display: flex; align-items: center; gap: 8px; font-size: 15px; margin: 8px 0 16px; }
.larp-auth-sep { display: flex; align-items: center; gap: 12px; margin: 18px 0 12px; color: var(--ink-soft); font-style: italic; font-size: 14px; }
.larp-auth-sep::before, .larp-auth-sep::after { content: ''; flex: 1; height: 1px; background: rgba(143,109,40,.35); }
.larp-auth-links { display: flex; justify-content: center; margin-top: 16px; font-size: 15px; }
.larp-auth-links a { color: var(--gold-deep); text-decoration: none; }
.larp-auth-links a:hover { text-decoration: underline; }

.larp-alert { padding: 12px 16px; border-radius: 10px; margin-bottom: 14px; font-size: 15px; text-align: left; }
.larp-alert-error { background: rgba(124,29,29,.1); border: 1px solid rgba(124,29,29,.4); color: var(--blood); }
.larp-alert-ok { background: rgba(63,107,63,.12); border: 1px solid rgba(63,107,63,.4); color: var(--emerald); }

/* =========================================================================
   MISSIVES (messagerie « lettres »)
   ========================================================================= */
.larp-nav-link { position: relative; }
.larp-nav-badge {
	background: var(--blood); color: #fff; font-family: 'Cinzel', serif; font-size: 11px;
	min-width: 18px; height: 18px; line-height: 18px; text-align: center;
	border-radius: 10px; padding: 0 5px; margin-left: 2px;
	box-shadow: 0 2px 5px rgba(0,0,0,.3);
}

.larp-mail {
	display: grid; grid-template-columns: 300px 1fr; gap: 18px;
	min-height: 560px;
}

/* Liste des correspondances */
.larp-mail-list {
	background: linear-gradient(180deg, var(--parch), var(--parch-2));
	border: 1px solid var(--parch-edge); border-radius: var(--radius);
	box-shadow: var(--shadow); padding: 10px; overflow-y: auto; max-height: 640px;
}
.larp-conv {
	display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
	background: transparent; border: none; border-radius: 10px; padding: 10px 12px; cursor: pointer;
	font-family: 'EB Garamond', serif; transition: background .15s; position: relative;
}
.larp-conv:hover { background: rgba(143,109,40,.1); }
.larp-conv.is-active { background: rgba(143,109,40,.18); box-shadow: inset 3px 0 0 var(--gold); }
.larp-conv-av {
	width: 44px; height: 44px; border-radius: 8px; flex: none; overflow: hidden;
	display: grid; place-items: center; background: var(--noir); color: var(--gold);
	border: 2px solid var(--gold); font-size: 18px;
}
.larp-conv-av img { width: 100%; height: 100%; object-fit: cover; }
.larp-conv-main { flex: 1; min-width: 0; }
.larp-conv-name { display: block; font-family: 'Cinzel', serif; font-size: 15px; color: var(--leather); }
.larp-conv-preview { display: block; font-size: 13px; color: var(--ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.larp-conv-badge {
	background: var(--blood); color: #fff; font-size: 11px; font-family: 'Cinzel', serif;
	min-width: 20px; height: 20px; line-height: 20px; text-align: center; border-radius: 10px; padding: 0 6px; flex: none;
}

/* Fil de discussion */
.larp-mail-thread {
	display: flex; flex-direction: column;
	background:
		radial-gradient(circle at 90% 0%, rgba(201,162,74,.08), transparent 40%),
		linear-gradient(180deg, var(--parch), var(--parch-2));
	border: 1px solid var(--parch-edge); border-radius: var(--radius);
	box-shadow: var(--shadow); overflow: hidden;
}
.larp-thread-empty { margin: auto; text-align: center; color: var(--ink-soft); padding: 40px; font-style: italic; }
.larp-thread-head {
	padding: 14px 20px; border-bottom: 2px solid rgba(143,109,40,.25);
	background: rgba(255,255,255,.045);
}
.larp-thread-title { font-family: 'Cinzel', serif; font-size: 18px; color: var(--leather); }
.larp-thread-scroll { flex: 1; overflow-y: auto; padding: 22px; display: flex; flex-direction: column; gap: 18px; }

/* Une lettre */
.larp-letter { display: flex; }
.larp-letter.mine { justify-content: flex-end; }
.larp-letter.theirs { justify-content: flex-start; }
.larp-letter-paper {
	position: relative; max-width: 78%; padding: 16px 20px 22px;
	background:
		repeating-linear-gradient(0deg, transparent, transparent 27px, rgba(201,162,74,.10) 28px),
		linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 1px solid var(--parch-edge); border-radius: 6px;
	box-shadow: 0 6px 16px rgba(0,0,0,.35);
}
.larp-letter.mine .larp-letter-paper {
	background:
		repeating-linear-gradient(0deg, transparent, transparent 27px, rgba(201,162,74,.12) 28px),
		linear-gradient(180deg, rgba(122,26,43,.3), rgba(90,18,32,.28));
	border-color: rgba(201,162,74,.5);
}
.larp-letter.mine .larp-letter-paper::before {
	content: ''; position: absolute; right: -1px; bottom: -1px; width: 0; height: 0;
	border-left: 16px solid transparent; border-bottom: 16px solid var(--gold-deep); opacity: .4;
}
.larp-letter-body { font-size: 17px; line-height: 1.7; color: var(--ink); white-space: pre-wrap; word-wrap: break-word; }
.larp-letter-date { margin-top: 8px; font-size: 12px; font-style: italic; color: var(--ink-soft); text-align: right; }
.larp-letter-seal {
	position: absolute; top: -12px; left: -12px; width: 30px; height: 30px;
	display: grid; place-items: center; border-radius: 50%; font-size: 14px;
	background: radial-gradient(circle at 40% 35%, #a83232, var(--blood));
	color: #f5d9a6; border: 1px solid #4d0f0f; box-shadow: 0 3px 8px rgba(0,0,0,.35);
}
.larp-letter.mine .larp-letter-seal { left: auto; right: -12px; background: radial-gradient(circle at 40% 35%, var(--gold-lite), var(--gold-deep)); color: #33240c; border-color: #6b501c; }

.larp-thread-compose {
	display: flex; gap: 10px; align-items: flex-end;
	padding: 14px 18px; border-top: 2px solid rgba(143,109,40,.25); background: rgba(255,255,255,.045);
}
.larp-thread-compose textarea { flex: 1; resize: vertical; min-height: 52px; }

/* =========================================================================
   DIVERS : console, GPS, verrou créateur
   ========================================================================= */
.larp-nav-txt { display: inline-flex; }
.larp-nav-short { display: none; }

.larp-console-ribbon {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: 'Cinzel', serif; font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
	color: var(--gold-deep); background: rgba(143,109,40,.08);
	border: 1px solid rgba(143,109,40,.25); border-radius: 20px; padding: 5px 14px; margin: 0 auto 10px;
}
.larp-console-ribbon { display: flex; width: fit-content; }
.larp-console-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--emerald); box-shadow: 0 0 0 0 rgba(63,107,63,.6); animation: larp-pulse 2.4s infinite; }
@keyframes larp-pulse {
	0% { box-shadow: 0 0 0 0 rgba(63,107,63,.5); }
	70% { box-shadow: 0 0 0 8px rgba(63,107,63,0); }
	100% { box-shadow: 0 0 0 0 rgba(63,107,63,0); }
}

/* Point « tu es ici » sur la carte */
.larp-userdot {
	display: block; width: 16px; height: 16px; border-radius: 50%;
	background: #2a6bd6; border: 3px solid #fff; box-shadow: 0 0 0 2px #2a6bd6, 0 2px 6px rgba(0,0,0,.4);
	animation: larp-userpulse 2s infinite;
}
@keyframes larp-userpulse {
	0% { box-shadow: 0 0 0 2px #2a6bd6, 0 0 0 0 rgba(42,107,214,.5); }
	70% { box-shadow: 0 0 0 2px #2a6bd6, 0 0 0 14px rgba(42,107,214,0); }
	100% { box-shadow: 0 0 0 2px #2a6bd6, 0 0 0 0 rgba(42,107,214,0); }
}
.larp-recenter {
	width: 40px; height: 40px; font-size: 18px; cursor: pointer;
	background: var(--parch); border: 2px solid var(--gold); border-radius: 10px;
	box-shadow: 0 3px 8px rgba(0,0,0,.3);
}
.larp-recenter:hover { background: #fff; }

.larp-locked { text-align: center; }
.larp-locked .larp-crest { margin: 0 auto 10px; }
.larp-form-hint { font-size: 14px; font-style: italic; color: var(--ink-soft); margin-top: 8px; }

/* Rang Monetariis sous le niveau */
.larp-rank {
	margin-top: 4px; font-family: 'Cinzel', serif; font-size: 12px; letter-spacing: .04em;
	color: var(--blood); text-transform: uppercase;
}

/* =========================================================================
   HAUTS FAITS
   ========================================================================= */
.larp-feats { margin-top: 22px; }
.larp-feats-count { font-family: 'Cinzel', serif; font-size: 14px; color: var(--gold-deep); float: right; }
.larp-feats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.larp-feat {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px;
	padding: 16px 12px; border-radius: 12px; border: 1px solid var(--parch-edge);
	background: rgba(255,255,255,.05);
}
.larp-feat.is-unlocked {
	background: linear-gradient(180deg, rgba(201,162,74,.16), rgba(201,162,74,.06));
	border-color: var(--gold); box-shadow: inset 0 0 16px rgba(201,162,74,.18);
}
.larp-feat.is-locked { opacity: .55; filter: grayscale(.4); }
.larp-feat-ico { font-size: 30px; line-height: 1; }
.larp-feat-name { font-family: 'Cinzel', serif; font-size: 14px; color: var(--leather); }
.larp-feat-desc { font-size: 12px; color: var(--ink-soft); }

/* =========================================================================
   GAZETTE (journal / coupures de presse)
   ========================================================================= */
.larp-gazette {
	background:
		linear-gradient(180deg, rgba(0,0,0,.015), transparent 3%),
		#f7f2e6;
	border: 1px solid #d8ccae; border-radius: 8px;
	box-shadow: var(--shadow);
	padding: 32px 34px 40px;
	color: #241f16;
}
.larp-gazette-masthead { text-align: center; margin-bottom: 24px; }
.larp-gazette-rule-top, .larp-gazette-rule-bottom { height: 3px; background: #241f16; }
.larp-gazette-rule-bottom { height: 1px; margin-top: 10px; box-shadow: 0 3px 0 #241f16; }
.larp-gazette-title {
	font-family: 'Cinzel', serif; font-weight: 800; font-size: clamp(30px, 6vw, 54px);
	letter-spacing: .02em; margin: 12px 0 4px; color: #1b1710;
	text-shadow: 0 1px 0 rgba(255,255,255,.4);
}
/* La gazette est un journal sur papier CLAIR : ses titres doivent rester en
   encre sombre. On surclasse la règle globale .larp-scope h1/h2/h3 (champagne). */
.larp-gazette .larp-gazette-title,
.larp-gazette .larp-clip-title { color: #1b1710; }
.larp-gazette .larp-clip-rubrique { color: #7c1d1d; }
.larp-gazette-tag { font-style: italic; color: #5a4f3a; margin: 0 0 12px; font-size: 16px; }
.larp-gazette-meta {
	display: flex; justify-content: space-between; align-items: center;
	font-family: 'Cinzel', serif; font-size: 12px; text-transform: uppercase; letter-spacing: .06em;
	color: #4a4030; border-top: 1px solid #cbbf9e; border-bottom: 1px solid #cbbf9e; padding: 6px 0; margin-top: 12px;
}

.larp-clip { break-inside: avoid; margin-bottom: 22px; }
.larp-clip-lead {
	border-bottom: 2px solid #241f16; padding-bottom: 20px; margin-bottom: 24px;
}
.larp-clip-rubrique {
	display: inline-block; font-family: 'Cinzel', serif; font-size: 11px; letter-spacing: .12em;
	text-transform: uppercase; color: #7c1d1d; border: 1px solid #7c1d1d; border-radius: 3px;
	padding: 2px 8px; margin-bottom: 8px;
}
.larp-clip-title {
	font-family: 'Cinzel', serif; color: #1b1710; line-height: 1.15; margin: 4px 0;
}
.larp-clip-lead .larp-clip-title { font-size: clamp(26px, 4vw, 38px); }
.larp-clip .larp-clip-title { font-size: 21px; }
.larp-clip-byline { font-style: italic; color: #6b5f45; font-size: 13px; margin-bottom: 10px; }
.larp-clip-photo { position: relative; margin: 12px 0; border: 1px solid #c9bd9c; }
.larp-clip-photo img { width: 100%; display: block; filter: sepia(.25) contrast(1.05); }
.larp-clip-caption {
	position: absolute; bottom: 0; left: 0; right: 0; font-size: 11px; font-style: italic;
	background: rgba(20,16,10,.6); color: #f3ead2; padding: 3px 8px;
}
.larp-clip-body { font-size: 17px; line-height: 1.75; text-align: justify; hyphens: auto; }
.larp-clip-body p { margin: 0 0 12px; }
.larp-dropcap p:first-of-type::first-letter {
	font-family: 'Cinzel', serif; font-size: 3.4em; line-height: .8; float: left;
	padding: 6px 10px 2px 0; color: #7c1d1d;
}
.larp-clip-chapo { font-size: 16px; color: #3a3222; margin: 6px 0 8px; }
.larp-clip-more summary {
	cursor: pointer; font-family: 'Cinzel', serif; font-size: 13px; color: #7c1d1d;
	list-style: none; display: inline-block; border-bottom: 1px dotted #7c1d1d; margin-top: 4px;
}
.larp-clip-more summary::-webkit-details-marker { display: none; }
.larp-clip-more[open] summary { margin-bottom: 10px; }

/* Communiqué déclencheur (quête « signal ») : incitation à clore le dossier */
.larp-signal-cta { margin-top: 18px; padding-top: 16px; border-top: 1px dashed #b3402f; text-align: center; }
.larp-signal-doubt { font-style: italic; color: #7a2318; margin: 0 0 12px; font-size: 15px; }
.larp-signal-close { break-inside: avoid; }

/* ==========================================================================
   Landing / vitrine publique (bêta fermée)  —  .larp-lp
   ========================================================================== */
.larp-lp { max-width: 1040px; margin: 0 auto; }
.larp-lp .larp-lp-h2 { font-family: 'Cinzel', serif; color: var(--gold-lite); font-size: clamp(24px, 4vw, 34px); text-align: center; margin: 0 0 26px; letter-spacing: .5px; }
.larp-lp section { padding: 54px 18px; border-bottom: 1px solid var(--parch-edge); }
.larp-lp p { line-height: 1.75; }

.larp-lp-ribbon { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; background: linear-gradient(90deg, transparent, rgba(201,162,74,.12), transparent); padding: 10px 16px; font-style: italic; color: var(--ink-soft); }
.larp-btn-mini { padding: 6px 14px; font-size: 14px; }

/* Héro */
.larp-lp-hero { text-align: center; padding: 68px 18px 56px; }
.larp-lp-crest { width: 62px; height: 62px; line-height: 58px; margin: 0 auto 20px; border: 2px solid var(--gold); border-radius: 50%; color: var(--gold-lite); font-size: 30px; box-shadow: 0 0 30px rgba(201,162,74,.25); }
.larp-lp-crest.small { width: 44px; height: 44px; line-height: 40px; font-size: 22px; }
.larp-lp-kicker { text-transform: uppercase; letter-spacing: 3px; font-size: 12px; color: var(--ink-soft); margin: 0 0 18px; }
.larp-lp-title { font-family: 'Cinzel', serif; font-weight: 800; font-size: clamp(30px, 6.4vw, 60px); line-height: 1.08; margin: 0 auto 22px; max-width: 15ch; color: var(--ink); }
.larp-lp-title-em { display: block; background: linear-gradient(180deg, var(--gold-lite), var(--gold) 55%, var(--gold-deep)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.larp-lp-lede { max-width: 60ch; margin: 0 auto 30px; font-size: clamp(16px, 2.4vw, 20px); color: var(--ink-soft); }
.larp-lp-cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.larp-lp-cta-main { font-size: 18px; padding: 15px 34px; }
.larp-lp-scarcity { margin: 22px 0 0; font-size: 14px; color: var(--ink-soft); letter-spacing: .4px; }

/* Manifeste */
.larp-lp-manifesto { max-width: 68ch; margin: 0 auto; text-align: center; }
.larp-lp-manifesto p { color: var(--ink); font-size: 17px; }

/* Arguments chocs */
.larp-lp-punch { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; text-align: center; }
.larp-lp-punch-item { border: 1px solid var(--parch-edge); border-radius: 14px; padding: 22px 10px; background: linear-gradient(180deg, var(--parch-2), var(--parch)); color: var(--ink-soft); font-size: 14px; }
.larp-lp-punch-big { display: block; font-family: 'Cinzel', serif; font-size: 40px; color: var(--gold-lite); margin-bottom: 6px; }

/* Piliers */
.larp-lp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.larp-lp-card { border: 1px solid var(--parch-edge); border-radius: 16px; padding: 24px 20px; background: linear-gradient(180deg, var(--parch-2), var(--parch)); }
.larp-lp-card h3 { font-family: 'Cinzel', serif; color: var(--gold-lite); margin: 6px 0 8px; font-size: 19px; }
.larp-lp-card p { color: var(--ink-soft); font-size: 15px; margin: 0; }
.larp-lp-ico { font-size: 30px; }

/* Galerie métiers */
.larp-lp-metier-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.larp-lp-metier { margin: 0; border: 1px solid var(--parch-edge); border-radius: 16px; overflow: hidden; background: var(--parch); }
.larp-lp-metier-img { height: 200px; background-size: cover; background-position: center top; filter: saturate(.92) contrast(1.02); }
.larp-lp-metier figcaption { padding: 14px 16px 18px; }
.larp-lp-metier h3 { font-family: 'Cinzel', serif; color: var(--gold-lite); margin: 0 0 6px; font-size: 18px; }
.larp-lp-metier p { color: var(--ink-soft); font-size: 14px; margin: 0; }

/* Étapes */
.larp-lp-steps-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.larp-lp-step { text-align: center; padding: 10px; }
.larp-lp-step-n { display: inline-block; width: 46px; height: 46px; line-height: 44px; border-radius: 50%; border: 2px solid var(--gold); color: var(--gold-lite); font-family: 'Cinzel', serif; font-size: 22px; margin-bottom: 12px; }
.larp-lp-step h3 { font-family: 'Cinzel', serif; color: var(--ink); margin: 0 0 8px; font-size: 18px; }
.larp-lp-step p { color: var(--ink-soft); font-size: 15px; margin: 0; }

/* Teaser univers */
.larp-lp-teaser { text-align: center; }
.larp-lp-teaser blockquote { max-width: 62ch; margin: 0 auto; font-family: 'EB Garamond', serif; font-style: italic; font-size: clamp(18px, 3vw, 24px); line-height: 1.6; color: var(--ink); border-left: 3px solid var(--gold); border-right: 3px solid var(--gold); padding: 0 24px; }
.larp-lp-teaser-sign { color: var(--ink-soft); margin-top: 16px; letter-spacing: 1px; }

/* CTA final */
.larp-lp-final { text-align: center; }
.larp-lp-final p { max-width: 56ch; margin: 0 auto 26px; color: var(--ink-soft); }
.larp-lp-already { margin-top: 18px; font-size: 14px; }
.larp-lp-already a { color: var(--gold-lite); }

/* FAQ */
.larp-lp-faq { max-width: 62ch; margin: 0 auto; }
.larp-lp-q { border: 1px solid var(--parch-edge); border-radius: 12px; padding: 4px 18px; margin-bottom: 12px; background: var(--parch); }
.larp-lp-q summary { cursor: pointer; font-family: 'Cinzel', serif; color: var(--gold-lite); padding: 12px 0; list-style: none; }
.larp-lp-q summary::-webkit-details-marker { display: none; }
.larp-lp-q[open] summary { border-bottom: 1px solid var(--parch-edge); margin-bottom: 10px; }
.larp-lp-q p { color: var(--ink-soft); font-size: 15px; margin: 0 0 12px; }

/* Footer */
.larp-lp-footer { text-align: center; border-bottom: none !important; }
.larp-lp-footer p { color: var(--ink-soft); font-style: italic; margin: 8px 0 22px; }

@media (max-width: 860px) {
	.larp-lp-grid, .larp-lp-metier-grid { grid-template-columns: repeat(2, 1fr); }
	.larp-lp-punch { grid-template-columns: repeat(2, 1fr); }
	.larp-lp-steps-row { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
	.larp-lp-grid, .larp-lp-metier-grid { grid-template-columns: 1fr; }
	.larp-lp-cta-main { width: 100%; }
}

/* --- Variante « site corporate Monetariis » --- */
.larp-lp-topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 16px 18px; border-bottom: 1px solid var(--parch-edge); }
.larp-lp-brand { font-family: 'Cinzel', serif; font-weight: 800; letter-spacing: 3px; color: var(--gold-lite); text-decoration: none; font-size: 20px; }
.larp-lp-brand span { margin: 0 8px; color: var(--gold-deep); }
.larp-lp-brand small { font-family: 'EB Garamond', serif; font-weight: 400; letter-spacing: 1px; font-size: 12px; color: var(--ink-soft); text-transform: uppercase; }
.larp-lp-topnav { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.larp-lp-topnav a { color: var(--ink-soft); text-decoration: none; font-size: 13px; letter-spacing: .6px; text-transform: uppercase; }
.larp-lp-topnav a:hover { color: var(--gold-lite); }
.larp-lp-espace { border: 1px solid var(--parch-edge); border-radius: 999px; padding: 7px 16px; color: var(--gold-lite) !important; }
.larp-lp-espace:hover { background: rgba(201,162,74,.12); }
.larp-lp-claim { text-align: center; font-family: 'Cinzel', serif; color: var(--gold-lite); font-size: clamp(18px, 3vw, 24px); margin-top: 26px; }
.larp-lp-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 26px; }
.larp-lp-trust span { border: 1px solid var(--parch-edge); border-radius: 8px; padding: 8px 16px; color: var(--ink-soft); font-size: 12px; letter-spacing: 1px; text-transform: uppercase; }
.larp-lp-corp-footer .larp-lp-brand.footer { display: block; font-family: 'Cinzel', serif; font-weight: 800; letter-spacing: 4px; color: var(--gold-lite); font-size: 22px; margin-bottom: 6px; }
.larp-lp-legal { font-size: 12px; color: var(--ink-soft); font-style: italic; margin-top: 18px; }
@media (max-width: 560px) { .larp-lp-topbar { justify-content: center; text-align: center; } .larp-lp-topnav { gap: 14px; } }

/* Colonnes de journal pour les articles secondaires */
.larp-gazette-columns { columns: 2; column-gap: 34px; }
.larp-gazette-columns .larp-clip {
	padding-bottom: 18px; border-bottom: 1px solid #cbbf9e;
}

/* =========================================================================
   MÉTIERS — choix (cartes-destin) & page dédiée
   ========================================================================= */
.larp-metier-grid {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 20px;
	margin-bottom: 24px;
}
.larp-metier-card {
	position: relative; border-radius: 18px; overflow: hidden; cursor: pointer;
	background: var(--panel-head);
	border: 2px solid transparent;
	box-shadow: var(--shadow);
	transition: transform .2s ease, box-shadow .2s ease, filter .2s ease, border-color .2s ease;
}
.larp-metier-card:focus { outline: 3px solid var(--gold); outline-offset: 2px; }
.larp-metier-card:hover {
	transform: translateY(-6px) scale(1.02);
	border-color: var(--accent);
	box-shadow: 0 18px 40px rgba(20,12,4,.4), 0 0 26px color-mix(in srgb, var(--accent) 55%, transparent);
}
/* Les autres cartes s'estompent au survol de la grille (comme la maquette). */
.larp-metier-grid:hover > .larp-metier-card:not(:hover) { filter: brightness(.6) saturate(.7); }
.larp-metier-bg {
	aspect-ratio: 3 / 4; background-size: cover; background-position: center top;
	display: grid; place-items: center;
}
.larp-metier-emoji { font-size: 74px; filter: drop-shadow(0 4px 10px rgba(0,0,0,.5)); }
.larp-metier-body { padding: 16px 18px 20px; }
.larp-metier-cat {
	font-family: 'Cinzel', serif; font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
	color: var(--gold-lite); margin: 0 0 4px;
}
.larp-metier-card .larp-metier-name { font-family: 'Cinzel', serif; font-size: 24px; color: #ffffff; margin: 0 0 8px; text-shadow: 0 2px 8px rgba(0,0,0,.7), 0 0 2px rgba(0,0,0,.6); }
.larp-metier-play { font-size: 14px; font-style: italic; color: #cbb890; min-height: 40px; margin: 0 0 12px; }
.larp-metier-secret { margin-top: 8px; }

/* Page métier */
.larp-metier-page { --accent: #6d4a8f; }
.larp-metier-banner {
	position: relative; border-radius: 18px; overflow: hidden;
	background-size: cover; background-position: center;
	min-height: 320px; padding: 40px 30px;
	display: flex; flex-direction: column; align-items: center; justify-content: flex-end; text-align: center;
	color: #fff; box-shadow: var(--shadow);
	border: 2px solid var(--accent);
}
.larp-metier-emblem {
	font-size: 60px; width: 96px; height: 96px; display: grid; place-items: center; margin-bottom: 10px;
	background: rgba(0,0,0,.35); border: 2px solid var(--accent); border-radius: 50%;
	box-shadow: 0 6px 20px rgba(0,0,0,.5);
}
.larp-metier-banner-cat { font-family: 'Cinzel', serif; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.8); margin: 0 0 4px; }
.larp-metier-page .larp-metier-banner-title { font-family: 'Cinzel', serif; font-size: clamp(30px, 6vw, 48px); margin: 0; color: #fff; text-shadow: 0 3px 18px rgba(0,0,0,.6); }
.larp-metier-banner-play { font-style: italic; font-size: 17px; color: rgba(255,255,255,.9); margin: 8px 0 0; max-width: 640px; }
.larp-metier-content {
	background: linear-gradient(180deg, var(--parch), var(--parch-2));
	border: 1px solid var(--parch-edge); border-top: 4px solid var(--accent); border-radius: 0 0 16px 16px;
	padding: 28px 32px; margin-top: -8px; font-size: 18px; line-height: 1.8;
	box-shadow: var(--shadow);
}
.larp-metier-content p { margin: 0 0 14px; }
.larp-metier-content strong { color: var(--leather); font-family: 'Cinzel', serif; }
.larp-metier-foot { text-align: center; color: var(--ink-soft); margin-top: 16px; }

/* Compétences de métier */
.larp-metier-skills {
	background: linear-gradient(180deg, var(--parch), var(--parch-2));
	border: 1px solid var(--parch-edge); border-radius: 16px; padding: 22px 26px; margin-top: 16px;
	box-shadow: var(--shadow);
}
.larp-skill-list { display: flex; flex-direction: column; gap: 12px; }
.larp-skill { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--parch-edge); background: rgba(255,255,255,.05); }
.larp-skill.is-unlocked { border-left: 4px solid var(--accent, var(--gold)); }
.larp-skill.is-locked { opacity: .6; filter: grayscale(.3); }
.larp-skill-lvl { flex: none; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--noir); color: var(--gold-lite); font-family: 'Cinzel', serif; font-weight: 700; border: 2px solid var(--gold-deep); }
.larp-skill-main { display: flex; flex-direction: column; }
.larp-skill-name { font-family: 'Cinzel', serif; font-size: 17px; color: var(--leather); }
.larp-skill-desc { font-size: 15px; color: var(--ink-soft); }
.larp-skill-need { font-size: 13px; font-style: italic; color: var(--blood); margin-top: 2px; }

/* Décryptage d'identité (Hacker) */
.larp-chat-name.larp-hackable { cursor: pointer; text-decoration: underline dotted rgba(120,120,120,.6); }
.larp-chat-name.larp-hackable:hover { text-decoration-color: #2aa1a1; }
.larp-hacking, .larp-hacked {
	font-family: 'Courier New', monospace !important; color: #2fe66b !important;
	text-shadow: 0 0 6px rgba(47,230,107,.8); letter-spacing: 1px;
}
.larp-hacking { animation: larp-flick .45s infinite; }
@keyframes larp-flick { 0%,100% { opacity: 1; } 50% { opacity: .55; } }

/* Invite « choisis ton métier » sur le tableau de bord */
.larp-metier-prompt {
	display: flex; align-items: center; gap: 16px; text-decoration: none;
	background: linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 2px solid var(--gold); border-radius: 14px; padding: 16px 20px; margin-bottom: 24px;
	box-shadow: var(--shadow); color: var(--ink);
	transition: transform .15s ease;
}
.larp-metier-prompt:hover { transform: translateY(-2px); }
.larp-metier-prompt-ico { font-size: 34px; }
.larp-metier-prompt-cta { margin-left: auto; font-family: 'Cinzel', serif; color: var(--gold-deep); white-space: nowrap; }

/* Pastille métier sur la feuille de perso */
.larp-metier-chip {
	display: inline-flex; align-items: center; gap: 6px; text-decoration: none;
	font-family: 'EB Garamond', serif; font-size: 16px; color: var(--leather);
	background: rgba(255,255,255,.055); border: 1px solid var(--gold); border-radius: 8px; padding: 5px 12px;
}
.larp-metier-chip-empty { color: var(--gold-deep); border-style: dashed; }
.larp-register-note { font-style: italic; color: var(--gold-deep); font-size: 14px; }

/* Niveau de métier (bannière) */
.larp-metier-level { display: flex; align-items: center; gap: 12px; margin-top: 14px; flex-wrap: wrap; justify-content: center; }
.larp-metier-level-badge {
	width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%;
	background: var(--accent); color: #fff; font-family: 'Cinzel', serif; font-size: 20px; font-weight: 800;
	border: 2px solid rgba(255,255,255,.6);
}
.larp-metier-level-bar { width: 220px; max-width: 60vw; height: 12px; background: rgba(0,0,0,.35); border: 1px solid var(--parch-edge); border-radius: 8px; overflow: hidden; }
.larp-metier-level-fill { height: 100%; background: linear-gradient(90deg, var(--gold-deep), var(--gold-lite)); }
.larp-metier-level-lab { color: rgba(255,255,255,.9); font-size: 12px; width: 100%; text-align: center; }

/* =========================================================================
   CHRONIQUE (livre d'histoire du personnage)
   ========================================================================= */
.larp-chronicle { margin-top: 22px; }
.larp-book { display: flex; flex-direction: column; gap: 14px; }
.larp-chapter {
	display: flex; gap: 16px; align-items: flex-start;
	background: linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 1px solid var(--parch-edge); border-left: 4px solid var(--gold); border-radius: 10px;
	padding: 16px 18px;
}
.larp-chapter-num {
	flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%;
	background: var(--noir); color: var(--gold-lite); font-family: 'Cinzel', serif; font-weight: 700;
	border: 2px solid var(--gold-deep);
}
.larp-chapter-title { font-family: 'Cinzel', serif; font-size: 19px; margin: 2px 0 6px; color: var(--leather); }
.larp-chapter-text { font-size: 17px; line-height: 1.75; color: var(--ink); }
.larp-chapter-text p { margin: 0 0 8px; }
.larp-chapter-date { font-size: 12px; font-style: italic; color: var(--ink-soft); }

/* =========================================================================
   TCHAT GÉNÉRAL (place publique)
   ========================================================================= */
.larp-chat {
	display: flex; flex-direction: column; height: 64vh; min-height: 440px;
	background: linear-gradient(180deg, var(--parch), var(--parch-2));
	border: 1px solid var(--parch-edge); border-radius: var(--radius);
	box-shadow: var(--shadow); overflow: hidden;
}
.larp-chat-alias {
	padding: 10px 18px; background: rgba(143,109,40,.1); border-bottom: 1px solid var(--parch-edge);
	font-size: 14px; font-style: italic; color: var(--ink-soft);
}
.larp-chat-alias strong { font-style: normal; font-family: 'Cinzel', serif; color: var(--blood); margin-left: 4px; }
.larp-chat-scroll { flex: 1; overflow-y: auto; padding: 16px 18px; display: flex; flex-direction: column; gap: 10px; }
.larp-chat-msg {
	max-width: 80%; align-self: flex-start;
	background: rgba(255,255,255,.06); border: 1px solid var(--parch-edge); border-radius: 12px;
	padding: 8px 12px;
}
.larp-chat-msg.mine { align-self: flex-end; background: linear-gradient(180deg, rgba(122,26,43,.35), rgba(90,18,32,.3)); border-color: rgba(201,162,74,.5); }
.larp-chat-head { display: flex; align-items: baseline; gap: 10px; justify-content: space-between; margin-bottom: 2px; }
.larp-chat-name { font-family: 'Cinzel', serif; font-size: 13px; font-weight: 700; }
.larp-chat-known { color: var(--emerald); }
.larp-chat-time { font-size: 11px; color: var(--ink-soft); flex: none; }
.larp-chat-del {
	flex: none; margin-left: 6px; border: none; background: transparent; cursor: pointer;
	color: #b3402f; font-size: 12px; line-height: 1; padding: 2px 4px; border-radius: 4px;
	opacity: .35; transition: opacity .15s, background .15s;
}
.larp-chat-msg:hover .larp-chat-del { opacity: .85; }
.larp-chat-del:hover { opacity: 1; background: rgba(179,64,47,.12); }
.larp-chat-body { font-size: 16px; line-height: 1.5; color: var(--ink); word-wrap: break-word; }
.larp-chat-compose { display: flex; gap: 10px; padding: 12px 16px; border-top: 2px solid rgba(143,109,40,.25); background: rgba(255,255,255,.045); }
.larp-chat-compose input { flex: 1; }
.larp-chat-void { text-align: center; font-style: italic; color: var(--violet); padding: 30px 16px; }
/* Bascule de dimension : vibration + distorsion avant l'effacement */
.larp-chat-warp { animation: larp-warp 1.5s ease forwards; }
.larp-chat-warp .larp-chat-scroll { animation: larp-warp-inner 1.5s ease forwards; }
@keyframes larp-warp {
	0% { transform: translate(0,0); filter: none; }
	10% { transform: translate(-4px,2px); }
	20% { transform: translate(5px,-3px); }
	30% { transform: translate(-6px,3px) skewX(1deg); }
	40% { transform: translate(6px,-2px) skewX(-1deg); }
	55% { transform: translate(-5px,4px); filter: hue-rotate(140deg) saturate(1.6); }
	70% { transform: translate(4px,-4px) scale(1.01); filter: hue-rotate(240deg) blur(1px); }
	100% { transform: scale(.96); filter: hue-rotate(320deg) blur(6px) brightness(1.4); opacity: .15; }
}
@keyframes larp-warp-inner {
	60% { opacity: 1; }
	100% { opacity: 0; transform: translateY(-20px); }
}

/* =========================================================================
   MAUSOLÉE (mort définitive)
   ========================================================================= */
.larp-mausoleum { display: grid; place-items: center; min-height: 80vh; padding: 40px 18px; }
.larp-tomb {
	max-width: 560px; width: 100%; text-align: center; color: #d9cfc0;
	background:
		radial-gradient(circle at 50% 0%, rgba(120,120,130,.15), transparent 60%),
		linear-gradient(180deg, #2a2b31, #17181c);
	border: 2px solid #45474f; border-radius: 16px 16px 10px 10px;
	padding: 44px 34px 36px; box-shadow: 0 30px 60px rgba(0,0,0,.5);
}
.larp-tomb-top { font-size: 40px; color: #8a8d97; margin-bottom: 10px; }
.larp-tomb-here { font-family: 'Cinzel', serif; letter-spacing: .3em; text-transform: uppercase; font-size: 13px; color: #9a9da6; margin: 0; }
.larp-mausoleum .larp-tomb-name { font-family: 'Cinzel', serif; font-size: 40px; color: #eceff4; margin: 6px 0 2px; }
.larp-tomb-metier { font-style: italic; color: #b7bcc6; margin: 0; }
.larp-tomb-rule { width: 80px; height: 2px; background: #5a5d66; margin: 18px auto; }
.larp-tomb-text { font-size: 17px; line-height: 1.7; color: #c6ccd6; }
.larp-tomb-epitaph { font-style: italic; color: #aeb4bf; border-left: 3px solid #5a5d66; padding-left: 14px; margin: 18px auto; max-width: 420px; text-align: left; }
.larp-tomb-date { font-family: 'Cinzel', serif; color: #9a9da6; letter-spacing: .1em; }
.larp-tomb-note { font-size: 14px; color: #8a8d97; margin: 18px 0 22px; }

/* =========================================================================
   ONBOARDING / TUTORIEL
   ========================================================================= */
.larp-onb {
	position: fixed; inset: 0; z-index: 100000; display: none; place-items: center; padding: 20px;
	background: radial-gradient(ellipse at center, rgba(30,20,10,.86), rgba(8,5,2,.96));
	backdrop-filter: blur(6px);
	font-family: 'EB Garamond', Georgia, serif;
}
.larp-onb-box {
	position: relative; width: 100%; max-width: 500px; text-align: center; overflow: hidden;
	background:
		radial-gradient(circle at 50% -10%, rgba(201,162,74,.22), transparent 60%),
		linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 1px solid var(--gold-deep); border-radius: 18px; padding: 0 0 26px;
	box-shadow: 0 40px 90px rgba(0,0,0,.65), 0 0 0 4px rgba(201,162,74,.25), inset 0 0 0 1px rgba(255,255,255,.5);
	color: var(--ink);
	animation: larp-onb-in .35s ease;
}
@keyframes larp-onb-in { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
/* Bandeau supérieur en cuir doré */
.larp-onb-box::before {
	content: ''; display: block; height: 8px;
	background: linear-gradient(90deg, var(--gold-deep), var(--gold-lite), var(--gold-deep));
}
.larp-onb-skip {
	position: absolute; top: 16px; right: 16px; z-index: 2;
	background: rgba(28,19,12,.06); border: 1px solid var(--parch-edge); border-radius: 20px;
	color: var(--ink-soft); cursor: pointer; font-family: 'Cinzel', serif; font-size: 12px; padding: 4px 12px;
}
.larp-onb-skip:hover { background: rgba(28,19,12,.12); }
.larp-onb-ico {
	width: 92px; height: 92px; margin: 26px auto 14px; display: grid; place-items: center; font-size: 44px;
	background: radial-gradient(circle at 50% 38%, #3a1420, #1a070c);
	border: 2px solid var(--gold); border-radius: 50%;
	box-shadow: 0 8px 22px rgba(120,90,20,.35), inset 0 0 16px rgba(201,162,74,.5);
}
.larp-onb-title { font-family: 'Cinzel', serif; font-size: 27px; margin: 0 14px 12px; color: var(--leather); text-shadow: 0 1px 0 rgba(255,255,255,.4); }
.larp-onb-text { font-size: 18px; line-height: 1.75; color: var(--ink); min-height: 104px; margin: 0 32px; }
.larp-onb-text strong { color: var(--blood); font-weight: 600; }
.larp-onb-dots { display: flex; gap: 8px; justify-content: center; margin: 18px 0; }
.larp-onb-dots span { width: 9px; height: 9px; border-radius: 50%; background: rgba(143,109,40,.28); transition: background .2s, transform .2s; }
.larp-onb-dots span.on { background: var(--gold); transform: scale(1.35); box-shadow: 0 0 0 3px rgba(201,162,74,.25); }
.larp-onb-actions { display: flex; gap: 12px; justify-content: space-between; margin: 0 26px; }
.larp-onb-actions .larp-btn { flex: 1; }

/* =========================================================================
   DIALOGUE & TOASTS (remplacent alert/confirm/prompt)
   ========================================================================= */
.larp-dialog {
	position: fixed; inset: 0; z-index: 100001; display: grid; place-items: center; padding: 20px;
	background: radial-gradient(ellipse at center, rgba(30,20,10,.82), rgba(8,5,2,.94));
	backdrop-filter: blur(5px); font-family: 'EB Garamond', Georgia, serif;
}
.larp-dialog[hidden] { display: none; }
.larp-dialog-box {
	position: relative; width: 100%; max-width: 440px; text-align: center; overflow: hidden;
	background:
		radial-gradient(circle at 50% -10%, rgba(201,162,74,.22), transparent 60%),
		linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 1px solid var(--gold-deep); border-radius: 18px; padding: 30px 28px 24px;
	box-shadow: 0 40px 90px rgba(0,0,0,.6), 0 0 0 4px rgba(201,162,74,.22), inset 0 0 0 1px rgba(255,255,255,.5);
	color: var(--ink); animation: larp-onb-in .28s ease;
}
.larp-dialog-box::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 6px; background: linear-gradient(90deg, var(--gold-deep), var(--gold-lite), var(--gold-deep)); }
.larp-dialog-box.is-danger::before { background: linear-gradient(90deg, #4d0f0f, #b33, #4d0f0f); }
.larp-dialog-ico {
	width: 74px; height: 74px; margin: 6px auto 12px; display: grid; place-items: center; font-size: 34px;
	background: radial-gradient(circle at 50% 38%, #3a1420, #1a070c);
	border: 2px solid var(--gold); border-radius: 50%; box-shadow: inset 0 0 14px rgba(201,162,74,.5);
}
.larp-dialog-box.is-danger .larp-dialog-ico { border-color: var(--blood); }
.larp-dialog-title { font-family: 'Cinzel', serif; font-size: 23px; margin: 0 0 8px; color: var(--leather); }
.larp-dialog-msg { font-size: 17px; line-height: 1.65; color: var(--ink); margin: 0 6px 20px; }
.larp-dialog-msg strong { color: var(--blood); }
.larp-dialog-actions { display: flex; gap: 12px; }
.larp-dialog-actions .larp-btn { flex: 1; }
.larp-dialog-box.is-danger .larp-dialog-ok { background: linear-gradient(180deg, #b33, var(--blood)); border-color: #4d0f0f; color: #fff; text-shadow: none; }

.larp-toasts { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 100002; display: flex; flex-direction: column; gap: 10px; align-items: center; pointer-events: none; }
.larp-toast {
	font-family: 'EB Garamond', serif; font-size: 16px; color: #f5ead0; max-width: 90vw;
	background: var(--panel-head);
	border: 1px solid var(--gold-deep); border-left: 4px solid var(--gold); border-radius: 10px;
	padding: 12px 18px; box-shadow: 0 12px 30px rgba(0,0,0,.4);
	opacity: 0; transform: translateY(16px); transition: opacity .3s ease, transform .3s ease;
}
.larp-toast.is-in { opacity: 1; transform: none; }
.larp-toast.is-error { border-left-color: var(--blood); }
.larp-toast.is-ok { border-left-color: var(--emerald); }
.larp-toast.is-info { border-left-color: var(--gold); }

@media (max-width: 760px) {
	.larp-toasts { bottom: 90px; } /* au-dessus de la barre de nav */
}

/* =========================================================================
   POP-IN ÉPIQUE (quête acceptée…)
   ========================================================================= */
.larp-epic {
	position: fixed; inset: 0; z-index: 100003; display: grid; place-items: center; pointer-events: none;
	background: radial-gradient(ellipse at center, rgba(30,20,8,.55), rgba(8,5,2,.2) 60%, transparent);
	opacity: 0; transition: opacity .4s ease;
}
.larp-epic.is-in { opacity: 1; }
.larp-epic-inner { position: relative; text-align: center; transform: scale(.7); transition: transform .5s cubic-bezier(.2,1.4,.4,1); }
.larp-epic.is-in .larp-epic-inner { transform: scale(1); }
.larp-epic-rays {
	position: absolute; left: 50%; top: 40px; width: 520px; height: 520px; margin-left: -260px; margin-top: -260px;
	background: conic-gradient(from 0deg, rgba(201,162,74,.35), transparent 12deg, rgba(201,162,74,.35) 24deg, transparent 36deg, rgba(201,162,74,.35) 48deg, transparent 60deg, rgba(201,162,74,.35) 72deg, transparent 84deg, rgba(201,162,74,.35) 96deg, transparent 108deg, rgba(201,162,74,.35) 120deg, transparent 132deg);
	border-radius: 50%; -webkit-mask: radial-gradient(circle, transparent 40px, #000 42px); mask: radial-gradient(circle, transparent 40px, #000 42px);
	animation: larp-spin 9s linear infinite; opacity: .55;
}
@keyframes larp-spin { to { transform: rotate(360deg); } }
.larp-epic-badge {
	position: relative; width: 96px; height: 96px; margin: 0 auto 14px; display: grid; place-items: center; font-size: 46px;
	color: #33240c; background: radial-gradient(circle at 40% 35%, var(--gold-lite), var(--gold) 60%, var(--gold-deep));
	border: 3px solid #fff; border-radius: 50%;
	box-shadow: 0 0 0 6px rgba(201,162,74,.3), 0 12px 34px rgba(0,0,0,.5);
	animation: larp-badge-pop .6s cubic-bezier(.2,1.6,.4,1);
}
@keyframes larp-badge-pop { 0% { transform: scale(0) rotate(-30deg); } 100% { transform: none; } }
.larp-epic-title {
	font-family: 'Cinzel', serif; font-weight: 800; font-size: clamp(30px, 6vw, 46px); margin: 0;
	color: #fbe9b8; text-shadow: 0 2px 0 #6b501c, 0 0 22px rgba(201,162,74,.7);
	letter-spacing: .02em;
}
.larp-epic-sub { font-family: 'Cinzel', serif; font-style: italic; color: #f3ead2; margin: 6px 0 0; text-shadow: 0 2px 10px rgba(0,0,0,.6); }

/* =========================================================================
   VICTOIRE DE QUÊTE (gains + débrief)
   ========================================================================= */
.larp-victory {
	position: fixed; inset: 0; z-index: 100004; display: grid; place-items: center; padding: 20px;
	background: radial-gradient(ellipse at center, rgba(30,20,8,.82), rgba(8,5,2,.96)); backdrop-filter: blur(6px);
	opacity: 0; transition: opacity .4s ease; font-family: 'EB Garamond', Georgia, serif; overflow-y: auto;
}
.larp-victory.is-in { opacity: 1; }
.larp-victory-box {
	position: relative; width: 100%; max-width: 520px; text-align: center; overflow: hidden; margin: auto;
	background:
		radial-gradient(circle at 50% -10%, rgba(201,162,74,.25), transparent 60%),
		linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 1px solid var(--gold-deep); border-radius: 20px; padding: 30px 30px 26px;
	box-shadow: 0 40px 100px rgba(0,0,0,.7), 0 0 0 5px rgba(201,162,74,.25), inset 0 0 0 1px rgba(255,255,255,.5);
	color: var(--ink); transform: scale(.85) translateY(12px); transition: transform .5s cubic-bezier(.2,1.4,.4,1);
}
.larp-victory.is-in .larp-victory-box { transform: none; }
.larp-victory-rays {
	position: absolute; left: 50%; top: 40px; width: 640px; height: 640px; margin-left: -320px; margin-top: -320px;
	background: conic-gradient(from 0deg, rgba(201,162,74,.3), transparent 12deg, rgba(201,162,74,.3) 24deg, transparent 36deg, rgba(201,162,74,.3) 48deg, transparent 60deg, rgba(201,162,74,.3) 72deg, transparent 84deg, rgba(201,162,74,.3) 96deg, transparent 108deg, rgba(201,162,74,.3) 120deg, transparent 132deg);
	border-radius: 50%; -webkit-mask: radial-gradient(circle, transparent 70px, #000 72px); mask: radial-gradient(circle, transparent 70px, #000 72px);
	animation: larp-spin 14s linear infinite; opacity: .45; pointer-events: none;
}
.larp-victory-illus {
	position: relative; margin: 0 0 14px; border-radius: 12px; overflow: hidden;
	border: 1px solid var(--parch-edge); box-shadow: 0 10px 28px rgba(0,0,0,.55);
}
.larp-victory-illus img { display: block; width: 100%; max-height: 240px; object-fit: cover; }
.larp-victory-illus::after {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	box-shadow: inset 0 -40px 50px -20px rgba(15,7,10,.85); /* fondu vers le bas pour le badge */
}
.larp-victory-illus + .larp-victory-badge { margin-top: -52px; }

.larp-victory-badge {
	position: relative; width: 92px; height: 92px; margin: 0 auto 8px; display: grid; place-items: center; font-size: 46px;
	background: radial-gradient(circle at 40% 35%, var(--gold-lite), var(--gold) 60%, var(--gold-deep));
	border: 3px solid #fff; border-radius: 50%;
	box-shadow: 0 0 0 6px rgba(201,162,74,.3), 0 12px 30px rgba(0,0,0,.45); animation: larp-badge-pop .6s cubic-bezier(.2,1.6,.4,1);
}
.larp-victory-kicker { position: relative; font-family: 'Cinzel', serif; letter-spacing: .22em; text-transform: uppercase; font-size: 12px; color: var(--gold-deep); }
.larp-victory-title { position: relative; font-family: 'Cinzel', serif; font-size: clamp(24px, 5vw, 34px); color: var(--leather); margin: 4px 0 16px; }
.larp-victory-gains { position: relative; list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.larp-vic-gain {
	display: flex; align-items: center; gap: 12px; justify-content: center;
	background: rgba(201,162,74,.12); border: 1px solid rgba(143,109,40,.3); border-radius: 10px; padding: 8px 14px;
	opacity: 0; transform: translateY(10px); animation: larp-gain-in .45s ease forwards;
}
@keyframes larp-gain-in { to { opacity: 1; transform: none; } }
.larp-vic-gico { font-size: 22px; }
.larp-vic-glabel { font-family: 'Cinzel', serif; font-size: 16px; color: var(--leather); }
.larp-victory-debrief {
	position: relative; font-style: italic; font-size: 17px; line-height: 1.7; color: var(--ink); white-space: pre-line; text-align: left;
	background: rgba(255,255,255,.06); border-left: 4px solid var(--gold); border-radius: 8px; padding: 14px 16px; margin: 0 0 18px;
}
.larp-victory-continue { position: relative; width: 100%; }
.larp-victory-rate { position: relative; margin: 0 0 16px; text-align: center; }
.larp-victory-rate-q { font-style: italic; font-size: 16px; color: var(--ink); margin: 0 0 10px; }
.larp-victory-rate-btns { display: flex; gap: 10px; justify-content: center; }
.larp-victory-rate-thanks { font-family: 'Cinzel', serif; font-size: 16px; color: var(--gold-deep); margin: 0; }

/* Badge de statut de quête (créateur) */
.larp-status-badge.is-active { color: var(--emerald); border-color: rgba(63,107,63,.4); background: rgba(63,107,63,.12); }
.larp-status-badge.is-paused { color: var(--blood); border-color: rgba(124,29,29,.4); background: rgba(124,29,29,.1); }

/* Paramètres de compte (fiche d'identité) */
.larp-account { margin-top: 22px; }
.larp-account-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.larp-account-note { font-size: 14px; color: var(--ink-soft); margin: 2px 0 0; }

/* =========================================================================
   CODEX (wiki des règles)
   ========================================================================= */
.larp-wiki { display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: start; }
.larp-wiki-toc {
	position: sticky; top: 14px;
	background: var(--panel-head);
	border: 1px solid #000; border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; gap: 4px;
	box-shadow: var(--shadow);
}
.larp-wiki-toc-title { font-family: 'Cinzel', serif; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-lite); margin-bottom: 6px; }
.larp-wiki-toc a { color: #d9c8a8; text-decoration: none; font-size: 15px; padding: 6px 10px; border-radius: 8px; transition: background .15s, color .15s; }
.larp-wiki-toc a:hover { background: rgba(201,162,74,.15); color: var(--gold-lite); }

.larp-wiki-body { display: flex; flex-direction: column; gap: 18px; }
.larp-wiki-sec {
	background: linear-gradient(180deg, var(--parch), var(--parch-2));
	border: 1px solid var(--parch-edge); border-radius: var(--radius); padding: 24px 26px;
	box-shadow: var(--shadow); scroll-margin-top: 14px;
}
.larp-wiki-sec h2 { font-family: 'Cinzel', serif; font-size: 24px; color: var(--leather); border-bottom: 2px solid rgba(143,109,40,.3); padding-bottom: 8px; margin: 0 0 14px; }
.larp-wiki-sec h3 { font-family: 'Cinzel', serif; font-size: 18px; color: var(--gold-lite); margin: 18px 0 8px; }
.larp-wiki-sec p { font-size: 17px; line-height: 1.75; margin: 0 0 12px; }
.larp-wiki-sec ul, .larp-wiki-sec ol { font-size: 17px; line-height: 1.7; padding-left: 22px; margin: 0 0 12px; }
.larp-wiki-sec li { margin-bottom: 8px; }
.larp-wiki-sec strong { color: var(--leather); }
.larp-wiki-highlight {
	border-left: 5px solid var(--gold);
	background:
		linear-gradient(180deg, rgba(201,162,74,.14), rgba(201,162,74,0) 30%),
		linear-gradient(180deg, var(--parch-2), var(--parch));
}
.larp-wiki-note { font-style: italic; color: var(--gold-lite); background: rgba(201,162,74,.1); border: 1px dashed rgba(201,162,74,.4); border-radius: 8px; padding: 10px 14px; }
.larp-wiki-warn { font-style: normal; color: var(--blood); background: rgba(124,29,29,.08); border: 1px solid rgba(124,29,29,.4); }

.larp-wiki-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 12px 0; }
.larp-wiki-card { text-align: center; background: rgba(255,255,255,.055); border: 1px solid var(--parch-edge); border-radius: 12px; padding: 18px 14px; }
.larp-wiki-card-ico { font-size: 40px; }
.larp-wiki-card h3 { color: var(--leather); margin: 6px 0 4px; font-size: 17px; }
.larp-wiki-card p { font-size: 15px; margin: 0; }
.larp-wiki-card strong { font-family: 'Cinzel', serif; color: var(--blood); font-size: 18px; }

/* =========================================================================
   COMPTOIR D'ÉCHANGE
   ========================================================================= */
.larp-trade { display: grid; grid-template-columns: 260px 1fr; gap: 20px; align-items: start; }
.larp-trade-side, .larp-trade-panel {
	background: linear-gradient(180deg, var(--parch), var(--parch-2));
	border: 1px solid var(--parch-edge); border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow);
	min-width: 0; /* autorise le rétrécissement dans la grille (évite les débordements) */
}
/* Sélecteur de compagnon : pleine largeur + bouton dessous (plus de troncature). */
.larp-trade-side .larp-inline-form { flex-direction: column; align-items: stretch; gap: 8px; }
.larp-trade-side .larp-inline-form select { width: 100%; max-width: 100%; min-width: 0; }
.larp-trade-offers { display: flex; flex-direction: column; gap: 6px; }
.larp-trade-offer { display: flex; flex-direction: column; gap: 2px; text-align: left; background: rgba(255,255,255,.055); border: 1px solid var(--parch-edge); border-radius: 8px; padding: 8px 12px; cursor: pointer; font-family: 'EB Garamond', serif; min-width: 0; width: 100%; box-sizing: border-box; }
.larp-trade-offer:hover { background: rgba(201,162,74,.15); }
.larp-trade-offer.is-action { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold) inset; background: rgba(201,162,74,.14); }
.larp-trade-offer-name { font-weight: 700; overflow-wrap: anywhere; }
.larp-trade-offer-hint { font-size: 12px; color: var(--ink-soft); overflow-wrap: anywhere; }
.larp-trade-offer.is-action .larp-trade-offer-hint { color: var(--gold-deep); font-weight: 600; }

/* Bandeau de statut de l'échange */
.larp-trade-status { border-radius: 10px; padding: 10px 14px; margin-bottom: 14px; font-weight: 600; background: rgba(43,30,17,.06); }
.larp-trade-status.warn { background: rgba(201,162,74,.22); color: var(--gold-deep); }
.larp-trade-status.wait { background: rgba(43,30,17,.08); color: var(--ink-soft); }
.larp-trade-status.ok { background: rgba(63,107,63,.16); color: var(--emerald); }

/* Introduction « comment ça marche » */
.larp-trade-intro h3 { font-family: 'Cinzel', serif; margin: 0 0 8px; }
.larp-trade-steps { margin: 0 0 12px; padding-left: 20px; }
.larp-trade-steps li { margin-bottom: 6px; }
.larp-trade-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.larp-trade-their, .larp-trade-mine { background: rgba(255,255,255,.05); border: 1px solid var(--parch-edge); border-radius: 12px; padding: 14px; }
.larp-trade-their h3, .larp-trade-mine h3 { font-family: 'Cinzel', serif; font-size: 17px; margin: 0 0 10px; color: var(--leather); }
.larp-trade-goods { display: flex; flex-wrap: wrap; gap: 8px; min-height: 40px; }
.larp-trade-gold { font-family: 'Cinzel', serif; color: var(--gold-deep); }
.larp-trade-good { display: inline-flex; flex-direction: column; align-items: center; font-size: 12px; text-align: center; width: 60px; }
.larp-trade-good img { width: 40px; height: 54px; object-fit: contain; }
.larp-trade-good em { font-style: normal; color: var(--ink-soft); font-size: 11px; }
.larp-trade-accepted { margin-top: 10px; font-family: 'Cinzel', serif; font-size: 13px; }
.larp-trade-accepted.yes { color: var(--emerald); }
.larp-trade-accepted.no { color: var(--ink-soft); }
.larp-trade-goldrow { display: block; margin: 0 0 10px; font-family: 'Cinzel', serif; color: var(--gold-deep); }
.larp-trade-goldrow input { width: 90px; }
.larp-trade-invpick { max-height: 260px; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; }
.larp-trade-pick { display: flex; align-items: center; gap: 8px; }
.larp-trade-pick img { width: 30px; height: 40px; object-fit: contain; }
.larp-trade-pick span { flex: 1; font-size: 14px; }
.larp-trade-pick input { width: 60px; }
.larp-trade-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

/* Grand livre joueur */
.larp-ledger { margin-top: 22px; }
.larp-ledger-list { list-style: none; margin: 0; padding: 0; }
.larp-ledger-list li { padding: 8px 0; border-bottom: 1px dashed var(--parch-edge); font-size: 15px; }
.larp-ledger-date { font-family: 'Cinzel', serif; font-size: 12px; color: var(--gold-deep); margin-right: 8px; }

/* Parrainage */
.larp-referral { margin-top: 22px; }
.larp-referral-intro { color: var(--ink-soft); }
.larp-referral-stats { display: flex; gap: 18px; font-family: 'Cinzel', serif; color: var(--gold-deep); margin: 8px 0 12px; flex-wrap: wrap; }
.larp-referral-link input { width: 100%; font-family: monospace; }

/* =========================================================================
   ROULETTE DE LOTERIE
   ========================================================================= */
.larp-lottery {
	position: fixed; inset: 0; z-index: 100005; display: grid; place-items: center; padding: 20px;
	background: radial-gradient(ellipse at center, rgba(30,20,8,.85), rgba(8,5,2,.96)); backdrop-filter: blur(6px);
	opacity: 0; transition: opacity .4s ease;
}
.larp-lottery.is-in { opacity: 1; }
.larp-lottery-box {
	position: relative; width: 100%; max-width: 420px; text-align: center; overflow: hidden;
	background: radial-gradient(circle at 50% -10%, rgba(201,162,74,.28), transparent 60%), linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 1px solid var(--gold); border-radius: 18px; padding: 26px 26px 22px;
	box-shadow: 0 40px 90px rgba(0,0,0,.65), 0 0 0 4px rgba(201,162,74,.25);
}
.larp-lottery-kicker { font-family: 'Cinzel', serif; letter-spacing: .16em; text-transform: uppercase; font-size: 12px; color: var(--gold-deep); margin-bottom: 12px; }
.larp-lottery-wheel { position: relative; height: 78px; overflow: hidden; border: 2px solid var(--gold); border-radius: 12px; background: rgba(28,19,12,.08); }
.larp-lottery-strip { display: flex; transform: translateX(0); }
.larp-lottery-strip.spin { transform: translateX(-1650px); transition: transform 3.6s cubic-bezier(.12,.75,.2,1); }
.larp-lottery-strip > span { flex: 0 0 60px; width: 60px; height: 78px; display: grid; place-items: center; font-size: 34px; }
.larp-lottery-win img { width: 44px; height: 60px; object-fit: contain; }
.larp-lottery-marker { position: absolute; top: -2px; left: 50%; transform: translateX(-50%); color: var(--blood); font-size: 20px; text-shadow: 0 1px 2px rgba(0,0,0,.4); }
.larp-lottery-result { font-size: 20px; margin: 16px 0; color: var(--leather); }
.larp-lottery-result strong { color: var(--blood); font-family: 'Cinzel', serif; }
.larp-lottery-ok { width: 100%; }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 860px) {
	.larp-scope { font-size: 17px; }
	.larp-cols, .larp-grid2, .larp-sheet-body { grid-template-columns: 1fr; }
	.larp-stat-row { grid-template-columns: repeat(2, 1fr); }
	.larp-sheet-head { grid-template-columns: 1fr; text-align: center; justify-items: center; }
	.larp-nav-out { margin-left: 0; }
	.larp-hero-title { font-size: 30px; }
	.larp-mail { grid-template-columns: 1fr; }
	.larp-mail-list { max-height: 260px; }
	.larp-letter-paper { max-width: 90%; }
}

/* ---- Mobile : menu picto en barre inférieure ---- */
@media (max-width: 760px) {
	.larp-scope {
		padding: 4px 12px 90px; /* place pour la barre du bas */
		font-size: 16px;
	}

	/* Barre de navigation fixée en bas, pictos + texte dessous */
	.larp-nav {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
		margin: 0; border-radius: 16px 16px 0 0; padding: 6px 4px;
		gap: 0; flex-wrap: nowrap;
		box-shadow: 0 -6px 20px rgba(20,12,4,.4);
		padding-bottom: calc(6px + env(safe-area-inset-bottom, 0px));
	}
	/* Barre du bas : 5 accès + bouton « Plus ». */
	.larp-nav-primary { display: flex; flex-wrap: nowrap; width: 100%; margin: 0; }
	.larp-nav .larp-nav-more { display: flex; }
	.larp-nav-link {
		flex: 1 1 0; flex-direction: column; align-items: center; gap: 2px;
		padding: 6px 2px; border-radius: 10px; min-width: 0;
	}
	/* Tiroir « Plus » en popover au-dessus de la barre. */
	.larp-nav-secondary {
		display: none;
		position: absolute; bottom: calc(100% + 8px); right: 8px; left: 8px;
		flex-direction: column; gap: 2px;
		background: var(--panel-head);
		border: 1px solid #000; border-radius: 14px; padding: 8px;
		box-shadow: 0 -8px 24px rgba(20,12,4,.45);
	}
	.larp-nav-secondary.is-open { display: flex; }
	.larp-nav-secondary .larp-nav-link { flex-direction: row; justify-content: flex-start; gap: 12px; padding: 12px 14px; }
	.larp-nav-secondary .larp-nav-txt { font-size: 15px; }
	.larp-nav-secondary .larp-nav-full { display: inline; }
	.larp-nav-secondary .larp-nav-short { display: none; }
	.larp-nav-out { margin-left: 0 !important; }
	.larp-nav-more.is-open { background: rgba(201,162,74,.18); }
	.larp-nav-ico { font-size: 20px; line-height: 1; }
	.larp-nav-txt { font-size: 10px; line-height: 1.1; text-align: center; }
	.larp-nav-full { display: none; }
	.larp-nav-short { display: inline; }
	.larp-nav-out { margin-left: 0; }
	.larp-nav-link.is-active { background: linear-gradient(180deg, var(--gold), var(--gold-deep)); }
	.larp-nav-badge {
		position: absolute; top: 2px; right: 50%; transform: translateX(16px);
		margin: 0; font-size: 10px; min-width: 16px; height: 16px; line-height: 16px; padding: 0 4px;
	}

	.larp-page-title { font-size: 26px; }
	.larp-hero-title { font-size: 26px; }
	.larp-stat-row { grid-template-columns: repeat(3, 1fr); gap: 8px; }
	.larp-stat-card { padding: 12px 4px; }
	.larp-stat-num { font-size: 20px; }
	.larp-inv-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
	.larp-quest-cards { grid-template-columns: 1fr; }
	.larp-map { height: 62vh; }
	.larp-tabs { position: sticky; top: 0; background: var(--parch); z-index: 5; }

	/* Feuille de personnage : plus aérée en colonne */
	.larp-sheet-frame { padding: 20px 16px; }
	.larp-stats-grid { grid-template-columns: repeat(2, 1fr); }
	.larp-sheet-side { flex-direction: row; }
	.larp-purse, .larp-friendcode { flex: 1; }

	/* Boutons plus grands au doigt */
	.larp-btn { padding: 12px 20px; font-size: 15px; }
	.larp-btn-mini { padding: 8px 12px; }
	.larp-secret-bar { flex-direction: column; align-items: stretch; }
	.larp-created-actions { flex-direction: column; }
	.larp-created-actions .larp-btn { width: 100%; }

	.larp-gazette { padding: 20px 18px 28px; }
	.larp-gazette-columns { columns: 1; }
	.larp-feats-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
	.larp-feats-count { float: none; display: block; }

	.larp-metier-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.larp-metier-name { font-size: 19px; }
	.larp-metier-emoji { font-size: 54px; }
	.larp-metier-secret { flex-direction: column; align-items: stretch; }
	.larp-metier-banner { min-height: 240px; padding: 28px 18px; }
	.larp-metier-content { padding: 20px 18px; }
	.larp-metier-prompt { flex-wrap: wrap; }
	.larp-metier-prompt-cta { margin-left: 0; }

	.larp-chat { height: 68vh; }
	.larp-chat-msg { max-width: 90%; }

	.larp-wiki { grid-template-columns: 1fr; }
	.larp-wiki-toc { position: static; flex-direction: row; flex-wrap: wrap; }
	.larp-wiki-toc a { font-size: 13px; padding: 5px 8px; }
	.larp-wiki-cards { grid-template-columns: 1fr; }

	.larp-trade { grid-template-columns: 1fr; }
	.larp-trade-cols { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
	.larp-metier-grid { grid-template-columns: 1fr; }
}

/* Petit écran : deux stats par ligne */
@media (max-width: 420px) {
	.larp-stat-row { grid-template-columns: repeat(2, 1fr); }
	.larp-nav-txt { font-size: 9px; }
}

/* =========================================================================
   Place de marché
   ========================================================================= */
.larp-market-sell { margin-bottom: 24px; }
.larp-market-sell .larp-btn { margin-top: 14px; }

.larp-market-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 16px;
}
.larp-market-card {
	background: var(--parch);
	border: 1px solid var(--parch-edge);
	border-radius: var(--radius);
	padding: 14px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	box-shadow: 0 6px 18px rgba(20, 12, 4, .12);
}
.larp-market-thumb {
	height: 120px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(43, 30, 17, .05);
	border-radius: 10px;
	overflow: hidden;
}
.larp-market-thumb img { max-height: 110px; max-width: 100%; object-fit: contain; }
.larp-market-name { font-size: 16px; margin: 4px 0 0; }
.larp-market-seller { font-size: 13px; color: var(--ink-soft); margin: 0; }
.larp-market-bid { margin: 2px 0; font-size: 15px; }
.larp-market-time { font-family: 'Cinzel', serif; font-size: 13px; color: var(--gold-deep); margin: 0 0 4px; }

.larp-tag {
	display: inline-block;
	font-size: 11px;
	font-family: 'Cinzel', serif;
	padding: 1px 7px;
	border-radius: 999px;
	vertical-align: middle;
}
.larp-tag.ok { background: rgba(63, 107, 63, .16); color: var(--emerald); }
.larp-tag.no { background: rgba(124, 29, 29, .12); color: var(--blood); }

.larp-market-card .larp-inline-form { margin-top: auto; }
.larp-market-card .mk-msg { min-height: 0; }

/* Salon des marchands */
.larp-mchat .larp-panel-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.larp-market-mask {
	background: var(--parch-2);
	border: 1px solid var(--parch-edge);
	color: var(--ink-soft);
}
.larp-market-mask.is-on {
	background: var(--violet);
	border-color: var(--violet);
	color: #fff;
}
.larp-mask-alias { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 6px 0 12px; }
.larp-mask-alias label { font-family: 'Cinzel', serif; font-size: 13px; color: var(--gold-deep); }
.larp-mask-alias input { flex: 1; min-width: 140px; }

/* Masque fantôme (Hacker niv.2) actif */
#larp-cloak-toggle.is-on, .larp-cloak-toggle.is-on {
	background: var(--violet);
	border-color: var(--violet);
	color: #fff;
}

@media (max-width: 640px) {
	.larp-market-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 420px) {
	.larp-market-grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   Quêtes : signalement, restrictions, teasing niveau, proximité
   ========================================================================= */

/* Liste « Quêtes proches » (page carte) */
.larp-nearby {
	background: var(--parch);
	border: 1px solid var(--parch-edge);
	border-radius: var(--radius);
	padding: 16px 18px;
	margin-top: 18px;
}
.larp-nearby-hint { color: var(--ink-soft); font-style: italic; margin: 4px 0 0; }
.larp-nearby-list { list-style: none; margin: 10px 0 0; padding: 0; }
.larp-nearby-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 4px;
	border-bottom: 1px dashed var(--parch-edge);
}
.larp-nearby-item:last-child { border-bottom: 0; }
.larp-nearby-dot { width: 12px; height: 12px; border-radius: 50%; flex: none; background: var(--gold); }
.larp-nearby-dot.larp-color-danger { background: var(--blood); }
.larp-nearby-dot.larp-color-nature { background: var(--emerald); }
.larp-nearby-dot.larp-color-legendary { background: var(--violet); }
.larp-nearby-name { flex: 1; font-weight: 600; }
.larp-nearby-dist { font-family: 'Cinzel', serif; font-size: 13px; color: var(--gold-deep); white-space: nowrap; }
.larp-popup-dist { font-size: 12px; color: var(--gold-deep); margin: 2px 0; font-weight: 600; }

/* Bouton & tag de signalement */
.larp-quest-report {
	display: inline-block;
	margin-top: 10px;
	background: none;
	border: 1px solid rgba(124, 29, 29, .4);
	color: var(--blood);
	border-radius: 8px;
	padding: 5px 10px;
	font-size: 12px;
	font-family: 'Cinzel', serif;
	cursor: pointer;
	transition: background .15s;
}
.larp-quest-report:hover { background: rgba(124, 29, 29, .08); }
.larp-reported-tag { display: inline-block; margin-top: 10px; color: var(--blood); font-size: 12px; font-style: italic; }

/* Avis de signalement sur la carte du créateur */
.larp-report-notice {
	background: rgba(124, 29, 29, .08);
	border: 1px solid rgba(124, 29, 29, .3);
	border-radius: 8px;
	padding: 8px 12px;
	margin: 8px 0;
	font-size: 14px;
	color: #6a1a1a;
}
.larp-status-badge.is-reported { background: var(--blood); color: #fff; }
.larp-badge.is-private { background: rgba(43, 30, 17, .12); color: var(--ink-soft); }

/* Teasing de déblocage au niveau 2 */
.larp-teaser-progress {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
	margin: 16px 0;
}
.larp-teaser-badge {
	background: var(--parch-2);
	border: 1px solid var(--parch-edge);
	border-radius: 999px;
	padding: 8px 16px;
	font-family: 'Cinzel', serif;
	font-size: 14px;
}
.larp-teaser-badge.is-goal { background: var(--violet); border-color: var(--violet); color: #fff; }
.larp-teaser-arrow { font-size: 22px; color: var(--gold-deep); }

/* Fenêtre de signalement : champs alignés */
.larp-dialog .larp-report-reason,
.larp-dialog .larp-report-note { width: 100%; }
.larp-dialog .larp-field { margin-top: 10px; }

/* =========================================================================
   Alchimiste : cueillette du jour + mini-jeu de transmutation
   ========================================================================= */
.larp-alch { margin-top: 26px; }
.larp-alch-intro { color: var(--ink-soft); }
.larp-alch-hint { font-style: italic; color: var(--ink-soft); }
.larp-alch-list { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.larp-alch-row {
	display: flex; align-items: center; gap: 12px;
	background: var(--parch); border: 1px solid var(--parch-edge);
	border-radius: 10px; padding: 10px 14px;
}
.larp-alch-row.is-done { opacity: .6; }
.larp-alch-ico { font-size: 22px; }
.larp-alch-name { flex: 1; font-weight: 600; }
.larp-alch-done { color: var(--emerald); font-family: 'Cinzel', serif; font-size: 14px; }

/* Gisements durables du collecteur */
.larp-gis { margin-top: 26px; }
.larp-gis-form {
	margin: 12px 0; padding: 14px; display: flex; flex-direction: column; gap: 10px;
	background: var(--parch); border: 1px solid var(--parch-edge); border-radius: 12px;
}
.larp-gis-pick { margin: 0; font-style: italic; color: var(--ink-soft); font-size: 14px; }
.larp-gis-list { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.larp-gis-row {
	display: flex; align-items: center; gap: 12px;
	background: var(--parch); border: 1px solid var(--parch-edge);
	border-radius: 10px; padding: 10px 14px;
}
.larp-gis-row.is-cooldown { opacity: .62; }
.larp-gis-info { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.larp-gis-name { font-weight: 600; }
.larp-gis-meta { font-size: 12.5px; color: var(--ink-soft); }

/* ---------------------------------------------------------------
 * Atelier de fabrication (craft)
 * ------------------------------------------------------------- */
.larp-craft-bar {
	display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
	background: var(--parch); border: 1px solid var(--parch-edge);
	border-radius: 12px; padding: 10px 16px; margin-bottom: 18px;
}
.larp-craft-metier { font-family: 'Cinzel', serif; font-weight: 600; }
.larp-craft-credits { color: var(--gold-deep); font-weight: 600; }
.larp-craft-codeform { margin-left: auto; display: flex; gap: 6px; }
.larp-craft-codeform input { padding: 6px 10px; border: 1px solid var(--parch-edge); border-radius: 8px; background: rgba(255,255,255,.06); color: var(--ink); }

.larp-craft-lab {
	display: grid; grid-template-columns: 1.1fr 1fr; gap: 18px; margin-bottom: 26px;
}
@media (max-width: 760px) { .larp-craft-lab { grid-template-columns: 1fr; } }

.larp-craft-items { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.larp-craft-item {
	width: 92px; display: flex; flex-direction: column; align-items: center; gap: 2px;
	background: var(--parch); border: 1px solid var(--parch-edge); border-radius: 10px;
	padding: 8px 6px; cursor: grab; user-select: none; text-align: center;
	transition: transform .12s, box-shadow .12s;
}
.larp-craft-item:hover { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0,.14); }
.larp-craft-item:active { cursor: grabbing; }
.larp-craft-item.is-empty { opacity: .38; pointer-events: none; filter: grayscale(1); }
.larp-craft-item img { width: 48px !important; height: 48px !important; object-fit: contain; display: block; }
.larp-craft-item-name { font-size: 11px; line-height: 1.15; color: var(--ink); }
.larp-craft-item-q { font-size: 12px; font-weight: 700; color: var(--gold-deep); }

/* Le creuset */
.larp-craft-cauldron {
	position: relative; border-radius: 16px; overflow: hidden;
	border: 2px solid var(--gold-deep);
	background: radial-gradient(120% 90% at 50% 120%, #3a2b17 0%, #1c140c 70%);
	min-height: 210px; margin-top: 10px; transition: box-shadow .3s;
}
.larp-craft-cauldron.is-over { box-shadow: inset 0 0 0 3px var(--gold); }
.larp-craft-cauldron.is-ready { box-shadow: 0 0 22px rgba(212,175,55,.55); }
.larp-craft-cauldron-glow {
	position: absolute; left: 50%; bottom: -40%; width: 130%; height: 90%;
	transform: translateX(-50%);
	background: radial-gradient(circle, rgba(212,175,55,.42), transparent 62%);
	opacity: .25; transition: opacity .3s; pointer-events: none;
}
.larp-craft-cauldron.is-ready .larp-craft-cauldron-glow { opacity: .7; animation: larpCauldronPulse 2.2s ease-in-out infinite; }
@keyframes larpCauldronPulse { 0%,100% { opacity: .45; } 50% { opacity: .85; } }
.larp-craft-drop { position: relative; z-index: 2; padding: 18px; min-height: 210px; display: flex; flex-direction: column; }
.larp-craft-hint { color: #d9c9a3; font-style: italic; text-align: center; margin: auto; }
.larp-craft-slots { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; align-content: center; flex: 1; }
.larp-craft-slot {
	position: relative; width: 62px; height: 62px; border-radius: 10px; overflow: hidden;
	background: rgba(255,255,255,.08); border: 1px solid rgba(212,175,55,.5);
	display: grid; place-items: center; cursor: pointer;
	animation: larpDropIn .25s ease;
}
.larp-craft-slot img { width: 46px !important; height: 46px !important; object-fit: contain; display: block; }
.larp-craft-slot-q { position: absolute; right: 3px; bottom: 1px; font-size: 11px; font-weight: 700; color: var(--gold); }
@keyframes larpDropIn { from { transform: scale(.4) translateY(-14px); opacity: 0; } to { transform: none; opacity: 1; } }

.larp-craft-cauldron.is-forging .larp-craft-slots { animation: larpForge .9s ease-in-out; }
@keyframes larpForge {
	0% { transform: scale(1); filter: none; }
	45% { transform: scale(1.06) rotate(-1deg); filter: brightness(1.6) drop-shadow(0 0 14px var(--gold)); }
	70% { transform: scale(.6); opacity: .2; filter: brightness(2.4); }
	100% { transform: scale(.3); opacity: 0; }
}
.larp-craft-match { text-align: center; min-height: 22px; margin: 8px 0 4px; color: var(--ink-soft); font-style: italic; }
.larp-craft-match.is-on { color: var(--gold-deep); font-style: normal; font-weight: 700; }
.larp-craft-actions { display: flex; gap: 10px; justify-content: center; }

/* Grimoire des recettes */
.larp-craft-book { margin-top: 8px; }
.larp-recipe-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin-bottom: 20px; }
.larp-recipe-card {
	background: var(--parch); border: 1px solid var(--parch-edge); border-radius: 12px;
	padding: 12px 14px; display: flex; flex-direction: column; gap: 8px;
}
.larp-recipe-card.is-locked { opacity: .62; }
.larp-recipe-card .larp-btn { width: 100%; white-space: normal; line-height: 1.2; text-align: center; padding-left: 10px; padding-right: 10px; }
.larp-recipe-out { display: flex; align-items: center; gap: 10px; }
.larp-recipe-out-img { width: 46px !important; height: 46px !important; object-fit: contain; display: block; flex: none; }
.larp-recipe-name { font-family: 'Cinzel', serif; font-weight: 600; }
.larp-recipe-yield { font-size: 12.5px; color: var(--gold-deep); }
.larp-recipe-desc { font-size: 12.5px; color: var(--ink-soft); margin: 0; }
.larp-recipe-ings { display: flex; flex-wrap: wrap; gap: 10px; }
.larp-recipe-ing { position: relative; width: 68px; height: 68px; border-radius: 10px; background: rgba(255,255,255,.06); border: 1px solid var(--parch-edge); display: grid; place-items: center; cursor: pointer; }
.larp-recipe-ing img { width: 58px !important; height: 58px !important; object-fit: contain; display: block; }
.larp-recipe-ing-q { position: absolute; right: 3px; bottom: 1px; font-size: 12px; font-weight: 700; color: var(--gold-lite); text-shadow: 0 1px 2px #000; }
.larp-recipe-lock { font-size: 12.5px; color: var(--ink-soft); }

/* ---------------------------------------------------------------
 * Officine du Médecin
 * ------------------------------------------------------------- */
.larp-officine { margin-top: 26px; }
.larp-officine-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin-top: 12px; }
.larp-officine-card { background: var(--parch); border: 1px solid var(--parch-edge); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.larp-officine-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.larp-officine-name { font-family: 'Cinzel', serif; font-weight: 600; }
.larp-officine-sev { color: #b3402f; letter-spacing: 2px; font-size: 11px; }
.larp-officine-sign { font-size: 12.5px; color: var(--ink-soft); margin: 0; }
.larp-officine-ings { display: flex; flex-wrap: wrap; gap: 10px; }
.larp-officine-ing { position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 10px; border: 1px solid var(--parch-edge); background: rgba(255,255,255,.06); font-size: 12px; cursor: pointer; }
.larp-officine-ing img { width: 50px !important; height: 50px !important; object-fit: contain; display: block; }
.larp-officine-ing > span { position: absolute; right: 3px; bottom: 1px; font-weight: 700; color: var(--gold-lite); text-shadow: 0 1px 2px #000; }
.larp-officine-ing.is-miss { opacity: .5; filter: grayscale(1); }
.larp-officine-ing.is-ok { border-color: var(--emerald); }

/* Nom de la carte : bulle au survol (desktop) ou au tap (mobile, classe .is-tapped). */
.larp-officine-ing::after, .larp-recipe-ing::after {
	content: attr(data-name);
	position: absolute; left: 50%; bottom: calc(100% + 6px); transform: translateX(-50%) translateY(4px);
	white-space: nowrap; max-width: 220px; overflow: hidden; text-overflow: ellipsis;
	background: var(--noir); color: var(--gold-lite); border: 1px solid var(--parch-edge);
	font-family: 'Cinzel', serif; font-size: 12px; padding: 4px 10px; border-radius: 8px;
	box-shadow: 0 6px 16px rgba(0,0,0,.5);
	opacity: 0; pointer-events: none; transition: opacity .15s ease, transform .15s ease; z-index: 5;
}
.larp-officine-ing:hover::after, .larp-recipe-ing:hover::after,
.larp-officine-ing.is-tapped::after, .larp-recipe-ing.is-tapped::after {
	opacity: 1; transform: translateX(-50%) translateY(0);
}
.larp-officine-ing[data-name=""]::after, .larp-recipe-ing[data-name=""]::after { content: none; }

/* Menus déroulants lisibles : la liste native hérite du fond du <select>,
   il faut donc un fond SOLIDE sombre + des options explicitement claires. */
.larp-scope select, .larp-auth select { background-color: #241820; }
.larp-scope select option, .larp-auth select option,
.larp-scope select optgroup, .larp-auth select optgroup {
	background-color: #1d1117; color: #f4e8d0;
}
.larp-scope select option:checked, .larp-auth select option:checked { background-color: #4a0f1a; color: #fff; }

/* Recette ultime : la Panacée (médecin au carnet complet). */
.larp-panacea {
	margin: 16px 0; padding: 18px 20px; border-radius: 14px; border: 1px solid var(--gold);
	background: radial-gradient(circle at 50% -20%, rgba(201,162,74,.22), transparent 60%), linear-gradient(180deg, var(--parch-2), var(--parch));
	box-shadow: var(--shadow), inset 0 0 32px rgba(201,162,74,.12);
}
.larp-panacea-head { display: flex; align-items: center; gap: 14px; }
.larp-panacea-glyph { font-size: 40px; filter: drop-shadow(0 0 10px rgba(201,162,74,.6)); }
.larp-panacea-title { font-family: 'Cinzel', serif; font-size: 20px; color: var(--gold-lite); margin: 0; }
.larp-panacea-sub { color: var(--ink-soft); font-size: 14px; margin: 2px 0 0; }
.larp-panacea-ings { margin: 14px 0; }
.larp-panacea .larp-panacea-brew { width: 100%; white-space: normal; margin-top: 4px; }
.larp-officine-brew { display: flex; flex-direction: column; gap: 6px; }
.larp-officine-label { padding: 6px 10px; border: 1px solid var(--parch-edge); border-radius: 8px; background: rgba(255,255,255,.06); color: var(--ink); width: 100%; }
.larp-officine-btns { display: flex; flex-wrap: wrap; gap: 6px; }
.larp-officine-msg { font-size: 12.5px; min-height: 16px; }

/* Animation de brassage d'une potion */
.larp-brewfx { position: fixed; inset: 0; z-index: 100001; display: grid; place-items: center; background: rgba(10,7,4,.72); opacity: 0; transition: opacity .3s; padding: 20px; }
.larp-brewfx.is-in { opacity: 1; }
.larp-brew-box { background: linear-gradient(180deg, #241a10, #14100a); border: 2px solid var(--gold-deep); border-radius: 18px; padding: 26px 30px; text-align: center; width: min(360px, 94vw); box-shadow: 0 24px 60px rgba(0,0,0,.5); }
.larp-brew-flask { position: relative; font-size: 68px; line-height: 1; display: inline-block; filter: drop-shadow(0 0 16px rgba(212,175,55,.45)); animation: larpBrewShake .5s ease-in-out infinite; }
.larp-brewfx.is-poison .larp-brew-flask { filter: drop-shadow(0 0 16px rgba(80,200,90,.5)) hue-rotate(60deg); }
.larp-brew-flask.is-ready { animation: larpBrewPop .6s ease forwards; }
@keyframes larpBrewShake { 0%,100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
@keyframes larpBrewPop { 0% { transform: scale(1); } 45% { transform: scale(1.35); filter: drop-shadow(0 0 40px #fff); } 100% { transform: scale(1.12); } }
.larp-brew-bubbles { position: absolute; left: 50%; top: 8px; transform: translateX(-50%); width: 30px; height: 40px; }
.larp-brew-bubbles i { position: absolute; bottom: 0; width: 6px; height: 6px; border-radius: 50%; background: rgba(255,220,140,.9); animation: larpBubble 1.1s ease-in infinite; }
.larp-brewfx.is-poison .larp-brew-bubbles i { background: rgba(120,230,130,.9); }
.larp-brew-bubbles i:nth-child(1) { left: 4px; animation-delay: 0s; }
.larp-brew-bubbles i:nth-child(2) { left: 12px; animation-delay: .3s; }
.larp-brew-bubbles i:nth-child(3) { left: 20px; animation-delay: .6s; }
.larp-brew-bubbles i:nth-child(4) { left: 14px; animation-delay: .9s; }
@keyframes larpBubble { 0% { transform: translateY(0) scale(1); opacity: 0; } 20% { opacity: 1; } 100% { transform: translateY(-34px) scale(.4); opacity: 0; } }
.larp-brew-title { font-family: 'Cinzel', serif; font-size: 18px; color: #f0e2c2; margin: 16px 0 12px; }
.larp-brew-bar { height: 9px; border-radius: 6px; background: rgba(255,255,255,.12); overflow: hidden; }
.larp-brew-bar span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--gold-deep), var(--gold-lite)); transition: width 1.6s cubic-bezier(.4,.1,.3,1); }
.larp-brewfx.is-poison .larp-brew-bar span { background: linear-gradient(90deg, #2f7d3a, #7fe08a); }
.larp-brew-bar span.is-full { width: 100%; }
.larp-brew-done { margin-top: 14px; color: var(--gold-lite); font-family: 'EB Garamond', serif; font-size: 15px; animation: larpRitFade .6s ease; }
.larp-officine-card.is-studied { border-color: var(--emerald); box-shadow: 0 0 0 1px rgba(46,139,87,.5) inset; }
.larp-officine-card.is-studied .larp-officine-name { color: var(--emerald); }

/* Carnet d'étude du médecin */
.larp-carnet { background: var(--parch); border: 1px solid var(--parch-edge); border-radius: 12px; padding: 12px 16px; margin: 10px 0 16px; }
.larp-carnet.is-complete { border-color: var(--gold-deep); box-shadow: 0 0 0 1px var(--gold) inset; }
.larp-carnet-lab { font-family: 'Cinzel', serif; font-weight: 600; }
.larp-carnet-bar { height: 8px; border-radius: 6px; background: rgba(0,0,0,.12); overflow: hidden; margin: 6px 0 4px; }
.larp-carnet-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--emerald), #6fce9c); }
.larp-carnet-count { font-size: 12.5px; color: var(--ink-soft); }
.larp-carnet-done { display: block; margin-top: 6px; color: var(--gold-deep); font-family: 'Cinzel', serif; }
.larp-paliers { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 4px; }
.larp-palier { font-family: 'Cinzel', serif; font-size: 13px; padding: 3px 12px; border-radius: 20px; border: 1px solid var(--parch-edge); color: var(--ink-soft); background: rgba(255,255,255,.05); }
.larp-palier.is-ok { border-color: var(--gold-deep); color: var(--gold-deep); background: rgba(212,175,55,.16); font-weight: 700; }

/* Potions dans l'inventaire */
.larp-potion-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-top: 10px; }
.larp-potion-card { position: relative; text-align: center; background: var(--parch); border: 1px solid var(--parch-edge); border-radius: 12px; padding: 12px 10px; }
.larp-potion-flask { font-size: 34px; }
.larp-potion-label { font-family: 'Cinzel', serif; font-weight: 600; margin-top: 4px; overflow-wrap: anywhere; }
.larp-potion-reveal { font-size: 11px; color: var(--ink-soft); margin-top: 2px; }
.larp-potion-qty { font-size: 12px; color: var(--gold-deep); font-weight: 700; }
.larp-potion-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 8px; }
.larp-relief-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 8px; }

/* Terminal du Hacker : console monospace verte sur noir, cadre d'or luxe. */
.larp-hackterm .larp-panel-title { letter-spacing: .12em; }
.larp-term {
	margin-top: 10px; border: 1px solid var(--parch-edge); border-radius: 10px; overflow: hidden;
	background: #05080a; box-shadow: inset 0 0 40px rgba(0,0,0,.6), 0 0 0 1px rgba(55,255,139,.06);
	font-family: 'Courier New', ui-monospace, monospace;
}
.larp-term-out {
	height: 260px; max-height: 46vh; overflow-y: auto; padding: 14px 16px;
	font-size: 14px; line-height: 1.55; color: #37ff8b;
	text-shadow: 0 0 6px rgba(55,255,139,.35);
}
.larp-term-line { white-space: pre-wrap; word-break: break-word; margin: 0 0 3px; }
.larp-term-sys { color: #7effb8; opacity: .8; }
.larp-term-cmd { color: #eef1f5; }
.larp-term-cmd::first-letter { color: #37ff8b; }
.larp-term-ok { color: #eccf82; text-shadow: 0 0 8px rgba(201,162,74,.5); }
.larp-term-err { color: #ff6b6b; }
.larp-term-input { display: flex; align-items: center; gap: 8px; padding: 10px 16px; border-top: 1px solid rgba(55,255,139,.18); background: #070c0e; }
.larp-term-prompt { color: #37ff8b; font-weight: 700; }
.larp-term-input input {
	flex: 1; background: transparent !important; border: none !important; outline: none;
	color: #eef1f5 !important; font-family: 'Courier New', ui-monospace, monospace; font-size: 14px; padding: 0 !important;
	caret-color: #37ff8b;
}

/* Police / détention */
.larp-police .larp-inline-form input { flex: 1; padding: 8px 12px; border: 1px solid var(--parch-edge); border-radius: 8px; }
.larp-police-warn { border-left: 3px solid var(--blood); padding-left: 12px; color: #e6b9be; }

/* Pop-in « erreur judiciaire » (arrestation d'un innocent) */
.larp-judicial { position: fixed; inset: 0; z-index: 100004; display: grid; place-items: center; padding: 20px; background: rgba(6,4,7,.82); backdrop-filter: blur(3px); opacity: 0; transition: opacity .3s; }
.larp-judicial.is-in { opacity: 1; }
.larp-judicial-box {
	position: relative; width: 100%; max-width: 440px; text-align: center; padding: 30px 28px 26px;
	background: radial-gradient(circle at 50% -10%, rgba(176,42,56,.35), transparent 60%), linear-gradient(180deg, var(--parch-2), var(--parch));
	border: 2px solid var(--blood); border-radius: 18px;
	box-shadow: var(--shadow), 0 0 40px rgba(176,42,56,.35);
	transform: scale(.85); transition: transform .35s cubic-bezier(.2,1.4,.4,1);
}
.larp-judicial.is-in .larp-judicial-box { transform: scale(1); }
.larp-judicial-seal { font-size: 56px; filter: drop-shadow(0 4px 12px rgba(0,0,0,.6)); }
.larp-judicial-stamp {
	display: inline-block; margin: 6px 0 10px; padding: 3px 16px; transform: rotate(-6deg);
	font-family: 'Cinzel', serif; font-weight: 700; font-size: 14px; letter-spacing: .14em; text-transform: uppercase;
	color: #f0b7bd; border: 2px solid var(--blood); border-radius: 6px; background: rgba(176,42,56,.15);
}
.larp-judicial-title { font-family: 'Cinzel', serif; font-size: 21px; color: var(--leather); margin: 0 0 10px; }
.larp-judicial-msg { color: var(--ink-soft); font-size: 15px; line-height: 1.6; margin: 0 0 14px; }
.larp-judicial-fine { font-family: 'Cinzel', serif; font-size: 30px; font-weight: 800; color: #f0b7bd; }
.larp-judicial-fine span { display: block; font-size: 13px; font-weight: 400; color: var(--ink-soft); letter-spacing: .04em; }
.larp-judicial-ban { margin: 12px 0 18px; font-size: 14px; color: var(--gold-lite); font-family: 'Cinzel', serif; }
.larp-judicial-ok { min-width: 160px; }

/* Pop-in de GUÉRISON : une vague de bien-être (lumière chaude, souffle, motes) */
.larp-heal {
	position: fixed; inset: 0; z-index: 100004; display: grid; place-items: center; overflow: hidden;
	background: radial-gradient(circle at 50% 46%, rgba(90,180,120,.20), rgba(6,10,7,.86) 66%);
	opacity: 0; transition: opacity .5s ease; cursor: pointer;
}
.larp-heal.is-in { opacity: 1; }
.larp-heal-glow {
	position: absolute; left: 50%; top: 46%; width: 60vmin; height: 60vmin; transform: translate(-50%,-50%);
	background: radial-gradient(circle, rgba(236,207,130,.55), rgba(120,200,150,.28) 40%, transparent 70%);
	filter: blur(6px); animation: larpHealBloom 3.2s ease-out infinite;
}
.larp-heal-core { position: relative; text-align: center; padding: 20px; transform: scale(.9); transition: transform .5s cubic-bezier(.2,1.3,.4,1); }
.larp-heal.is-in .larp-heal-core { transform: scale(1); }
.larp-heal-halo {
	position: absolute; left: 50%; top: 22px; width: 120px; height: 120px; transform: translate(-50%,0);
	border-radius: 50%; border: 2px solid rgba(236,207,130,.6);
	box-shadow: 0 0 40px rgba(236,207,130,.5), inset 0 0 30px rgba(120,200,150,.4);
	animation: larpHealHalo 2.6s ease-out infinite;
}
.larp-heal-glyph { position: relative; font-size: 76px; filter: drop-shadow(0 0 22px rgba(140,220,160,.7)); animation: larpHealBreath 3.4s ease-in-out infinite; }
.larp-heal-title { position: relative; font-family: 'Cinzel', serif; font-size: 30px; color: var(--gold-lite); margin: 14px 0 8px; text-shadow: 0 2px 18px rgba(0,0,0,.6); }
.larp-heal-msg { position: relative; max-width: 420px; margin: 0 auto; color: #eaf3ea; font-size: 16px; line-height: 1.6; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.larp-heal-motes { position: absolute; inset: 0; pointer-events: none; }
.larp-heal-motes i {
	position: absolute; bottom: 32%; width: 8px; height: 8px; border-radius: 50%;
	background: radial-gradient(circle, #fff7dc, rgba(140,220,160,.5));
	box-shadow: 0 0 10px 2px rgba(200,240,190,.6); opacity: 0;
	animation-name: larpHealRise; animation-timing-function: ease-out; animation-iteration-count: infinite;
}
@keyframes larpHealBloom {
	0% { transform: translate(-50%,-50%) scale(.25); opacity: 0; }
	40% { opacity: .9; }
	100% { transform: translate(-50%,-50%) scale(1.7); opacity: 0; }
}
@keyframes larpHealBreath { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.07) translateY(-4px); } }
@keyframes larpHealHalo { 0% { transform: translate(-50%,0) scale(.7); opacity: .8; } 100% { transform: translate(-50%,0) scale(1.7); opacity: 0; } }
@keyframes larpHealRise { 0% { transform: translateY(0) scale(.6); opacity: 0; } 18% { opacity: .95; } 100% { transform: translateY(-190px) scale(1); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
	.larp-heal-glow, .larp-heal-halo, .larp-heal-glyph, .larp-heal-motes i { animation: none; }
}
.larp-prison { position: fixed; inset: 0; z-index: 100002; background: #07070a; display: grid; place-items: center; text-align: center; padding: 20px; overflow: hidden; }
.larp-prison-bars { position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(90deg, rgba(0,0,0,0) 0 62px, #14141a 62px 82px, #23232c 82px 86px, #14141a 86px 106px); box-shadow: inset 0 0 160px 40px #000; }
.larp-prison-box { position: relative; z-index: 2; max-width: 520px; color: #d7d2c4; }
.larp-prison-title { font-family: 'Cinzel', serif; font-size: 30px; letter-spacing: .1em; color: #c9433a; text-shadow: 0 0 24px rgba(200,40,30,.5); }
.larp-prison-sub { color: #9a958a; margin-top: 6px; }
.larp-prison-timer { font-family: 'Cinzel', serif; font-size: 46px; letter-spacing: .08em; color: #e8dcc4; margin: 20px 0; text-shadow: 0 0 20px rgba(0,0,0,.7); }
.larp-prison-fw { margin-top: 8px; }
.larp-prison-note { color: #8f8a80; font-style: italic; }

/* Rédemption */
.larp-redeem #larp-redeem-metier { display: block; margin: 14px auto 6px; padding: 8px 12px; border-radius: 8px; min-width: 220px; }
.larp-redeem-acts { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 10px; }

/* ---------------------------------------------------------------
 * Chroniques (campagne narrative en carrés)
 * ------------------------------------------------------------- */
.larp-chr-season { background: linear-gradient(180deg, var(--parch), var(--parch-2)); border: 1px solid var(--parch-edge); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow); }
.larp-chr-season-head { text-align: center; margin-bottom: 10px; }
.larp-chr-season-tag { font-family: 'Cinzel', serif; text-transform: uppercase; letter-spacing: .18em; font-size: 12px; color: var(--gold-deep); }
.larp-chr-season-title { font-family: 'Cinzel', serif; font-size: 30px; margin: 2px 0 10px; }
.larp-chr-progress { height: 8px; border-radius: 6px; background: rgba(0,0,0,.12); overflow: hidden; max-width: 420px; margin: 0 auto; }
.larp-chr-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--gold-deep), var(--gold)); }
.larp-chr-progress-lab { display: block; text-align: center; font-size: 12.5px; color: var(--ink-soft); margin-top: 4px; }
.larp-chr-intro { font-style: italic; color: var(--ink-soft); max-width: 60ch; margin: 12px auto 20px; text-align: center; line-height: 1.6; }
.larp-chr-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; margin-bottom: 14px; position: relative; }
.larp-chr-card {
	position: relative; background: var(--parch); border: 1px solid var(--parch-edge); border-radius: 14px;
	padding: 16px 14px 14px; cursor: pointer; transition: transform .12s, box-shadow .18s; overflow: hidden;
}
.larp-chr-card:hover { transform: translateY(-3px); box-shadow: 0 10px 22px rgba(0,0,0,.16); }
.larp-chr-card.is-locked { opacity: .6; cursor: not-allowed; filter: grayscale(.5); }
.larp-chr-card.is-solved { border-color: var(--emerald); box-shadow: 0 0 0 1px var(--emerald) inset; }
.larp-chr-card-badge { position: absolute; top: 10px; right: 12px; font-size: 15px; color: var(--gold-deep); }
.larp-chr-card.is-solved .larp-chr-card-badge { color: var(--emerald); }
.larp-chr-card-type { font-family: 'Cinzel', serif; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-deep); }
.larp-chr-card-title { font-family: 'Cinzel', serif; font-size: 17px; margin: 4px 0 6px; }
.larp-chr-card-teaser { font-size: 13px; color: var(--ink-soft); margin: 0; line-height: 1.4; }
.larp-chr-card-lock { display: block; margin-top: 8px; font-size: 11.5px; font-style: italic; color: var(--ink-soft); }

.larp-chr-modal-box { max-width: 620px; text-align: left; max-height: 88vh; overflow-y: auto; }
.larp-chr-modal-type { font-family: 'Cinzel', serif; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-deep); }
.larp-chr-modal-body { line-height: 1.65; color: var(--ink); margin: 8px 0 12px; }
.larp-chr-modal-body p { margin: 0 0 10px; }
.larp-chr-q { font-weight: 700; }
.larp-chr-hint { font-size: 13px; color: var(--ink-soft); font-style: italic; }
.larp-chr-ings { display: flex; flex-wrap: wrap; gap: 10px; margin: 10px 0; }
.larp-chr-ing { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 4px; border: 1px solid var(--parch-edge); border-radius: 10px; background: rgba(255,255,255,.06); font-size: 13px; }
.larp-chr-ing img { width: 30px !important; height: 30px !important; object-fit: contain; display: block; }
.larp-chr-solved-note { margin-top: 12px; padding: 10px 14px; border-left: 3px solid var(--emerald); background: rgba(46,139,87,.1); border-radius: 8px; font-style: italic; }
.larp-chr-modal-action .larp-inline-form { margin-top: 8px; }
.larp-chr-modal-action .larp-inline-form input { flex: 1; padding: 8px 12px; border: 1px solid var(--parch-edge); border-radius: 8px; }
/* Présages (crescendo d'horreur) */
.larp-omens { margin: 6px 0 22px; padding: 14px 16px; border: 1px solid #6a1620; border-radius: 12px; background: linear-gradient(180deg, #1a1013, #120b0d); }
.larp-omens-title { font-family: 'Cinzel', serif; color: #e79a8c; margin: 0 0 10px; letter-spacing: .06em; }
.larp-omen { border-left: 3px solid #7c1d1d; padding: 8px 12px; margin: 0 0 10px; background: rgba(120,10,10,.08); border-radius: 6px; }
.larp-omen:last-child { margin-bottom: 0; }
.larp-omen-from { display: block; font-size: 11.5px; letter-spacing: .05em; text-transform: uppercase; color: #b06a63; margin-bottom: 3px; }
.larp-omen-text { margin: 0; color: #e8d7cf; font-style: italic; line-height: 1.6; }

/* Révélation gratifiante (piste élucidée) */
.larp-reveal { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; background: radial-gradient(circle at 50% 45%, rgba(40,26,8,.5), rgba(6,4,2,.94) 70%); opacity: 0; transition: opacity .5s; overflow: hidden; text-align: center; padding: 20px; }
.larp-reveal.is-in { opacity: 1; }
.larp-reveal-glow { position: absolute; left: 50%; top: 45%; width: 10px; height: 10px; transform: translate(-50%,-50%); border-radius: 50%; box-shadow: 0 0 120px 60px rgba(255,190,80,.0); transition: box-shadow 1.2s ease; }
.larp-reveal.is-in .larp-reveal-glow { box-shadow: 0 0 200px 120px rgba(255,190,80,.45); }
.larp-reveal-rays { position: absolute; left: 50%; top: 45%; width: 200vmax; height: 200vmax; transform: translate(-50%,-50%) scale(.2); opacity: 0; background: repeating-conic-gradient(from 0deg, rgba(255,205,110,.14) 0deg 6deg, transparent 6deg 12deg); animation: larpRevSpin 22s linear infinite; transition: opacity 1s, transform 1.2s; }
.larp-reveal.is-in .larp-reveal-rays { opacity: 1; transform: translate(-50%,-50%) scale(1); }
@keyframes larpRevSpin { to { transform: translate(-50%,-50%) rotate(360deg); } }
.larp-reveal-core { position: relative; z-index: 2; max-width: 560px; color: #f3e6c8; }
.larp-reveal-seal { font-size: 60px; color: var(--gold); text-shadow: 0 0 30px rgba(255,180,60,.8); transform: scale(.6); opacity: 0; transition: transform .5s cubic-bezier(.2,1.4,.4,1), opacity .5s; }
.larp-reveal.is-in .larp-reveal-seal { transform: scale(1); opacity: 1; }
.larp-reveal-seal.is-break { animation: larpSealBreak .7s ease forwards; }
@keyframes larpSealBreak { 0% { transform: scale(1); } 40% { transform: scale(1.5) rotate(8deg); text-shadow: 0 0 60px #fff; } 100% { transform: scale(1.15); } }
.larp-reveal-kicker { font-family: 'Cinzel', serif; text-transform: uppercase; letter-spacing: .28em; font-size: 13px; color: var(--gold-lite); margin-top: 8px; }
.larp-reveal-title { font-family: 'Cinzel', serif; font-size: 30px; margin: 6px 0 12px; text-shadow: 0 0 24px rgba(255,180,60,.4); }
.larp-reveal-msg { line-height: 1.7; color: #ede0c6; min-height: 40px; font-style: italic; }
.larp-reveal-ok { margin-top: 18px; }
.larp-reveal-embers { position: absolute; inset: 0; pointer-events: none; }
.larp-reveal-embers span { position: absolute; bottom: -12px; width: 5px; height: 5px; border-radius: 50%; background: radial-gradient(circle, #ffd98a, #ff9a2e); box-shadow: 0 0 8px 2px rgba(255,160,50,.6); animation: larpEmber linear infinite; }
@keyframes larpEmber { from { transform: translateY(0) scale(1); opacity: 0; } 10% { opacity: 1; } to { transform: translateY(-105vh) scale(.3); opacity: 0; } }

.larp-chr-banner { border-radius: 12px; overflow: hidden; margin-bottom: 14px; max-height: 260px; }
.larp-chr-banner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.larp-chr-illus { border-radius: 10px; overflow: hidden; margin: 0 0 12px; }
.larp-chr-illus img { width: 100%; max-height: 300px; object-fit: cover; display: block; }
.larp-chr-map { height: 240px; border-radius: 10px; overflow: hidden; margin: 4px 0 12px; border: 1px solid var(--parch-edge); background: var(--noir-2); }
.larp-chr-map-load { display: grid; place-items: center; height: 100%; color: var(--ink-soft); font-style: italic; }

/* Confrérie de métier : épreuve + code horaire */
.larp-confrerie { margin-top: 26px; }
.larp-conf-q { font-weight: 700; }
.larp-conf-epreuve .larp-inline-form { margin-top: 6px; }
.larp-conf-epreuve input { flex: 1; padding: 8px 12px; border: 1px solid var(--parch-edge); border-radius: 8px; }
.larp-conf-code { display: inline-flex; align-items: center; gap: 14px; padding: 12px 20px; border-radius: 12px; background: linear-gradient(180deg, #241a10, #14100a); border: 1px solid var(--gold-deep); margin-top: 8px; }
.larp-conf-code-val { font-family: 'Cinzel', serif; font-size: 30px; letter-spacing: .28em; color: var(--gold-lite); text-shadow: 0 0 16px rgba(212,175,55,.5); }
.larp-conf-code-timer { font-size: 12.5px; color: #b8a888; font-style: italic; }

/* Serment de la confrérie */
.larp-oath { position: fixed; inset: 0; z-index: 100002; display: grid; place-items: center; padding: 20px; opacity: 0; transition: opacity .6s; overflow-y: auto; }
.larp-oath.is-in { opacity: 1; }
.larp-oath-veil { position: absolute; inset: 0; background: radial-gradient(circle at 50% 38%, rgba(60,42,16,.55), #08060a 72%); }
.larp-oath-box { position: relative; z-index: 2; max-width: 560px; width: 100%; text-align: center; background: linear-gradient(180deg, #efe4c6, #e3d4ad); border: 1px solid var(--gold-deep); border-radius: 16px; padding: 26px 30px; box-shadow: 0 24px 70px rgba(0,0,0,.6); color: #2a2013; margin: auto; }
.larp-oath-hand { font-size: 44px; animation: larpOathHand 2.4s ease-in-out infinite; }
@keyframes larpOathHand { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
.larp-oath-kicker { font-family: 'Cinzel', serif; text-transform: uppercase; letter-spacing: .18em; font-size: 12px; color: var(--gold-deep); margin-top: 6px; }
.larp-oath-title { font-family: 'Cinzel', serif; font-size: 26px; margin: 6px 0 14px; color: #3a2a12; }
.larp-oath-scroll { text-align: left; }
.larp-oath-line { font-family: 'EB Garamond', serif; font-size: 16px; line-height: 1.6; margin: 0 0 8px; padding-left: 14px; border-left: 2px solid rgba(150,110,30,.4); animation: larpOathLine .9s ease; }
@keyframes larpOathLine { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; } }
.larp-oath-ok { margin-top: 18px; }

/* Quintessence : les cinq fragments */
.larp-quint { display: flex; flex-direction: column; gap: 8px; }
.larp-quint-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--parch-edge); border-radius: 10px; background: var(--parch); }
.larp-quint-row.is-done { border-color: var(--emerald); box-shadow: 0 0 0 1px var(--emerald) inset; }
.larp-quint-metier { font-family: 'Cinzel', serif; font-weight: 600; min-width: 92px; }
.larp-quint-master { font-size: 12.5px; color: var(--ink-soft); }
.larp-quint-code { font-family: 'Cinzel', serif; letter-spacing: .2em; color: var(--gold-deep); background: rgba(212,175,55,.14); padding: 1px 8px; border-radius: 5px; }
.larp-quint-status { color: var(--emerald); font-family: 'Cinzel', serif; font-size: 13px; }
.larp-quint-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-left: auto; }
.larp-quint-input { width: 110px; padding: 6px 10px; border: 1px solid var(--parch-edge); border-radius: 8px; }

/* La veillée : rite immersif plein écran */
.larp-ritual { position: fixed; inset: 0; z-index: 100000; background: #05040a; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; opacity: 0; transition: opacity .6s; overflow: hidden; padding: 20px; }
.larp-ritual.is-in { opacity: 1; }
.larp-ritual-veil { position: absolute; inset: 0; background: radial-gradient(circle at 50% 42%, rgba(30,18,6,.6), #05040a 62%); pointer-events: none; }
.larp-ritual-candle { position: relative; width: 30px; height: 78px; border-radius: 4px; background: linear-gradient(#f2e4c0, #cbb27e); margin-bottom: 26px; box-shadow: 0 0 60px 24px rgba(255,170,60,.28); }
.larp-ritual-candle.is-dark { box-shadow: none; filter: brightness(.4); transition: all 1.2s; }
.larp-ritual-flame { position: absolute; left: 50%; top: -30px; width: 16px; height: 30px; transform: translateX(-50%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background: radial-gradient(circle at 50% 70%, #fff6c0, #ff9b2a 55%, #b83a00 90%); box-shadow: 0 0 26px 8px rgba(255,150,40,.7); animation: larpFlame .18s infinite alternate; }
.larp-ritual-flame.is-out { opacity: 0; transition: opacity .5s; }
@keyframes larpFlame { from { transform: translateX(-50%) scale(1) rotate(-2deg); } to { transform: translateX(-52%) scale(1.08,1.14) rotate(2deg); } }
.larp-ritual-stage { position: relative; z-index: 2; color: #e8dcc4; max-width: 620px; }
.larp-ritual-line { font-family: 'Cinzel', serif; font-size: 24px; letter-spacing: .04em; margin: 0 0 10px; text-shadow: 0 0 18px rgba(255,140,40,.35); animation: larpRitFade 1.4s ease; }
.larp-ritual-sub { color: #b8a888; font-style: italic; }
.larp-ritual-invoc { font-family: 'Cinzel', serif; font-size: 22px; line-height: 1.6; color: #ffe9c0; margin: 14px 0; text-shadow: 0 0 24px rgba(255,120,20,.4); }
.larp-ritual-listen { color: #ff8a5c; letter-spacing: .06em; animation: larpRitThrob 1.4s ease-in-out infinite; }
.larp-ritual-word { position: absolute; z-index: 3; font-family: 'Cinzel', serif; font-size: 64px; letter-spacing: .3em; color: #fff; text-shadow: 0 0 40px rgba(180,0,0,.9); opacity: 0; transform: scale(.7); transition: opacity 1.4s, transform 3s; }
.larp-ritual-word.is-in { opacity: .92; transform: scale(1.25); }
.larp-ritual-quit { position: absolute; top: 16px; right: 18px; z-index: 5; background: transparent; border: none; color: rgba(255,255,255,.35); font-size: 22px; cursor: pointer; }
.larp-ritual textarea, .larp-ritual .larp-btn { margin-top: 12px; }
.larp-ritual textarea { background: rgba(255,255,255,.06); color: #f0e6d0; border: 1px solid rgba(255,180,80,.3); border-radius: 8px; padding: 8px; }
@keyframes larpRitFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; } }
@keyframes larpRitThrob { 0%,100% { opacity: .5; } 50% { opacity: 1; } }

/* Traque nocturne : journal d'angoisse */
.larp-trail-log { max-height: 42vh; overflow-y: auto; margin: 6px 0 10px; padding-right: 6px; }
.larp-trail-note { background: #141018; color: #d9cfc0; border-left: 3px solid #6a1620; border-radius: 8px; padding: 10px 14px; margin: 0 0 10px; line-height: 1.6; font-size: 14.5px; }
.larp-trail-note.is-new { animation: larpTrailIn .8s ease; }
@keyframes larpTrailIn { from { opacity: 0; transform: translateY(10px); background: #2a0d12; } to { opacity: 1; } }
.larp-trail-scene { background: #1c0708; color: #ffb9ab; border: 1px solid #7c1d1d; border-radius: 8px; padding: 14px 16px; margin: 4px 0 0; font-weight: 600; line-height: 1.65; text-shadow: 0 0 12px rgba(180,0,0,.4); animation: larpTrailIn 1s ease; }
.larp-trail-guide { font-family: 'Cinzel', serif; letter-spacing: .04em; color: var(--gold-deep); text-align: center; margin: 6px 0 10px; }

/* ---------------------------------------------------------------
 * Symptômes des maladies (effets sur l'interface)
 * ------------------------------------------------------------- */
.larp-sym-layer { position: fixed; inset: 0; z-index: 99990; pointer-events: none; overflow: hidden; }
.larp-sym-desat, .larp-sym-blur { position: absolute; inset: 0; }
.larp-sym-blur { -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); animation: larpSymFade .25s ease; }
.larp-sym-invert { position: absolute; inset: 0; background: #fff; mix-blend-mode: difference; }
.larp-sym-fever { position: absolute; inset: 0; box-shadow: inset 0 0 180px 40px rgba(200,30,20,.5); animation: larpFeverPulse 3.5s ease-in-out infinite; }
@keyframes larpFeverPulse { 0%,100% { opacity: .5; } 50% { opacity: .95; } }
.larp-sym-spot { position: absolute; border-radius: 50%; background: radial-gradient(circle, #000 55%, rgba(0,0,0,0) 72%); transition: all 1.8s ease; }
.larp-sym-whisper { position: absolute; color: rgba(255,255,255,.85); font-family: 'Cinzel', serif; font-size: 20px; text-shadow: 0 0 12px rgba(120,0,0,.9); animation: larpWhisper 2.6s ease forwards; white-space: nowrap; }
@keyframes larpWhisper { 0% { opacity: 0; transform: scale(.9); } 20% { opacity: .9; } 100% { opacity: 0; transform: scale(1.15); } }
@keyframes larpSymFade { from { opacity: 0; } to { opacity: 1; } }
.larp-sym-shake { animation: larpSymShake .38s ease; }
@keyframes larpSymShake { 0%,100% { transform: translate(0,0); } 20% { transform: translate(-4px,2px) rotate(-.4deg); } 40% { transform: translate(4px,-2px) rotate(.4deg); } 60% { transform: translate(-3px,1px); } 80% { transform: translate(3px,-1px); } }
.larp-sym-vertigo { animation: larpSymVertigo 9s ease-in-out infinite; }
@keyframes larpSymVertigo { 0%,100% { transform: skew(0deg,0deg) rotate(0deg); } 25% { transform: skew(.6deg,.3deg) rotate(.5deg); } 50% { transform: skew(-.5deg,-.4deg) rotate(-.6deg); } 75% { transform: skew(.4deg,-.3deg) rotate(.3deg); } }

/* Rappel « tu es souffrant » (inquiétant) */
.larp-sick-pulse { position: fixed; inset: 0; z-index: 99991; pointer-events: none; display: grid; place-items: center; opacity: 0; transition: opacity .5s; background: radial-gradient(circle at 50% 60%, rgba(60,0,0,.28), rgba(0,0,0,.02) 60%); }
.larp-sick-pulse.is-in { opacity: 1; }
.larp-sick-pulse-txt { font-family: 'Cinzel', serif; font-size: 22px; color: #ffb3a3; text-shadow: 0 0 18px rgba(160,0,0,.8); animation: larpSickThrob 1.3s ease-in-out infinite; max-width: 92vw; }
.larp-sick-list { list-style: none; margin: 14px auto 6px; padding: 0; max-width: 30em; text-align: left; font-family: 'EB Garamond', serif; font-size: 15px; color: #ffd7cd; text-shadow: none; }
.larp-sick-list li { padding: 6px 12px; margin: 6px 0; background: rgba(120,10,10,.35); border-left: 3px solid #b3402f; border-radius: 6px; line-height: 1.5; }
.larp-sick-hint { font-family: 'EB Garamond', serif; font-size: 13px; font-style: italic; color: #e0b8b0; text-shadow: none; margin-top: 8px; }
@keyframes larpSickThrob { 0%,100% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.08); opacity: 1; } }

/* Overlay du mini-jeu */
.larp-alch-game {
	position: fixed; inset: 0; z-index: 9999;
	background: rgba(12, 8, 4, .82);
	display: grid; place-items: center;
	opacity: 0; transition: opacity .25s;
	padding: 16px;
}
.larp-alch-game.is-in { opacity: 1; }
.larp-alch-game-box {
	background: linear-gradient(180deg, #241a10, #14100a);
	border: 2px solid var(--gold-deep);
	border-radius: 18px; padding: 24px;
	width: min(420px, 96vw); text-align: center;
	box-shadow: 0 24px 60px rgba(0,0,0,.5);
}
.larp-alch-game-kicker { font-family: 'Cinzel', serif; letter-spacing: 2px; text-transform: uppercase; font-size: 12px; color: var(--gold-lite); }
.larp-alch-game-status { color: var(--ink); font-size: 18px; margin: 12px 0 18px; min-height: 26px; }
.larp-alch-round { color: var(--gold-lite); font-family: 'Cinzel', serif; margin: 16px 0 10px; }
.larp-alch-pad {
	display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
.larp-alch-el {
	--el: #888;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
	aspect-ratio: 1 / 1; border-radius: 14px; cursor: pointer;
	background: color-mix(in srgb, var(--el) 32%, #14100a);
	border: 2px solid var(--el); color: #fff;
	transition: transform .08s, box-shadow .12s, background .12s;
	font-size: 42px;
}
.larp-alch-el small { font-family: 'Cinzel', serif; font-size: 13px; letter-spacing: 1px; opacity: .85; }
.larp-alch-el:active { transform: scale(.96); }
.larp-alch-el.is-lit { background: var(--el); box-shadow: 0 0 24px var(--el); transform: scale(1.04); }
.larp-alch-el.is-ok { box-shadow: 0 0 20px var(--emerald); }
.larp-alch-el.is-bad { box-shadow: 0 0 20px var(--blood); }
.larp-alch-quit { margin-top: 18px; color: var(--gold-lite); border-color: var(--gold-deep); }

/* =========================================================================
   Collecteur : mini-jeu du portail dimensionnel
   ========================================================================= */
.larp-portal-game {
	position: fixed; inset: 0; z-index: 9999; padding: 12px;
	display: grid; place-items: center;
	background: radial-gradient(circle at 50% 45%, rgba(20,40,60,.6), rgba(2,4,8,.96));
	opacity: 0; transition: opacity .3s;
}
.larp-portal-game.is-in { opacity: 1; }
.larp-portal-box { width: min(520px, 98vw); text-align: center; }
.larp-portal-kicker { font-family: 'Cinzel', serif; letter-spacing: 3px; text-transform: uppercase; color: #7fe6ff; font-size: 13px; text-shadow: 0 0 12px rgba(70,200,255,.8); }
.larp-portal-stage {
	position: relative; height: min(56vh, 380px); margin: 12px 0; border-radius: 18px; overflow: hidden;
	background: radial-gradient(circle at 50% 50%, rgba(10,30,45,.5), rgba(0,0,0,.85));
	box-shadow: inset 0 0 60px rgba(0,0,0,.8);
}
/* Le vortex */
.larp-portal { position: absolute; left: 50%; top: 50%; width: 190px; height: 190px; transform: translate(-50%,-50%); }
.larp-portal-core, .larp-portal-ring {
	position: absolute; inset: 0; border-radius: 50%;
}
.larp-portal-core {
	background:
		radial-gradient(circle at 50% 50%, #eafcff 0%, #58e0ff 14%, #1f8fd6 34%, #5b3aa0 60%, rgba(20,10,40,0) 74%);
	filter: blur(2px);
	box-shadow: 0 0 60px 10px rgba(70,200,255,.7), 0 0 140px 40px rgba(90,58,160,.55);
	animation: larp-portal-pulse 2.4s ease-in-out infinite;
}
.larp-portal-ring {
	background: conic-gradient(from 0deg, rgba(120,230,255,0), rgba(120,230,255,.55), rgba(90,58,160,.15), rgba(120,230,255,0), rgba(160,255,240,.5), rgba(120,230,255,0));
	-webkit-mask: radial-gradient(circle, transparent 40%, #000 42%, #000 70%, transparent 72%);
	        mask: radial-gradient(circle, transparent 40%, #000 42%, #000 70%, transparent 72%);
	animation: larp-portal-spin 3.2s linear infinite;
	mix-blend-mode: screen;
}
.larp-portal-ring.r2 { animation: larp-portal-spin 5.5s linear infinite reverse; opacity: .7; filter: hue-rotate(40deg); }
@keyframes larp-portal-spin { to { transform: rotate(360deg); } }
@keyframes larp-portal-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.08); } }
.larp-portal.is-closing { animation: larp-portal-close .5s ease forwards; }
@keyframes larp-portal-close { to { transform: translate(-50%,-50%) scale(0.05) rotate(120deg); opacity: 0; } }

/* Essences à récolter */
.larp-portal-orb {
	position: absolute; width: 46px; height: 46px; margin: 0; cursor: pointer;
	display: grid; place-items: center; font-size: 22px;
	border-radius: 50%;
	background: radial-gradient(circle at 40% 35%, #fff, #9fe9ff 30%, #3aa6d6 60%, rgba(30,60,90,.2) 80%);
	box-shadow: 0 0 18px 4px rgba(120,220,255,.75);
	transform: translate(-50%,-50%) scale(.4);
	transition: left .9s cubic-bezier(.2,.9,.3,1), top .9s cubic-bezier(.2,.9,.3,1), opacity .5s, transform .3s;
	user-select: none;
}
.larp-portal-orb.is-got { transform: translate(-50%,-50%) scale(1.6); opacity: 0; box-shadow: 0 0 30px 10px rgba(160,255,220,.9); }
.larp-portal-orb.is-fade { opacity: 0; transform: translate(-50%,-50%) scale(.3); }
.larp-portal-hud { display: flex; justify-content: space-between; color: #cfeffff2; font-family: 'Cinzel', serif; font-size: 16px; padding: 0 6px; }
.larp-portal-hud #larp-portal-time { color: #7fe6ff; }
.larp-portal-help { color: #9fc7d8; font-size: 13px; margin: 8px 0; }
.larp-portal-quit { color: #7fe6ff; border-color: rgba(120,230,255,.5); }

/* =========================================================================
   Popin terminal « hacker » (confirmation de décryptage)
   ========================================================================= */
.larp-hackdlg {
	position: fixed; inset: 0; z-index: 100001;
	display: grid; place-items: center; padding: 16px;
	background: rgba(2, 8, 4, .82);
	opacity: 0; transition: opacity .2s;
}
.larp-hackdlg.is-in { opacity: 1; }
.larp-hackdlg-box {
	position: relative; overflow: hidden;
	width: min(440px, 96vw);
	background: #04140c; color: #37ff8b;
	border: 1px solid #1e7a4d; border-radius: 10px;
	padding: 18px 20px 20px;
	font-family: 'Courier New', monospace;
	box-shadow: 0 0 40px rgba(55,255,139,.35), inset 0 0 30px rgba(55,255,139,.06);
	transform: scale(.96); transition: transform .2s;
}
.larp-hackdlg.is-in .larp-hackdlg-box { transform: scale(1); }
.larp-hackdlg-scan {
	position: absolute; inset: 0; pointer-events: none;
	background: repeating-linear-gradient(0deg, rgba(55,255,139,.05) 0, rgba(55,255,139,.05) 1px, transparent 2px, transparent 4px);
}
.larp-hackdlg-head { color: #9effc4; font-size: 13px; border-bottom: 1px dashed #1e7a4d; padding-bottom: 8px; margin-bottom: 12px; letter-spacing: .5px; }
.larp-hackdlg-body p { margin: 6px 0; font-size: 14px; }
.larp-hackdlg-warn { color: #ffd35a; text-shadow: 0 0 8px rgba(255,211,90,.5); }
.larp-hackdlg-code { letter-spacing: 2px; background: rgba(0,255,140,.12); padding: 1px 8px; border-radius: 4px; }
.larp-hackdlg-cursor { animation: larp-blink 1s steps(1) infinite; }
@keyframes larp-blink { 50% { opacity: 0; } }
.larp-hackdlg-actions { display: flex; gap: 10px; margin-top: 16px; }
.larp-hackdlg-btn {
	flex: 1; cursor: pointer; font-family: 'Courier New', monospace; font-weight: 700; font-size: 14px;
	background: #0a2a1a; color: #37ff8b; border: 1px solid #37ff8b; border-radius: 6px; padding: 9px 10px;
	transition: background .12s, box-shadow .12s;
}
.larp-hackdlg-btn:hover { background: #37ff8b; color: #04140c; box-shadow: 0 0 18px rgba(55,255,139,.6); }
.larp-hackdlg-btn.ghost { border-color: #1e7a4d; color: #6fdca0; }
.larp-hackdlg-btn.ghost:hover { background: #123; color: #9effc4; box-shadow: none; }

/* =========================================================================
   Égrégore + rituel
   ========================================================================= */
.larp-egregore-toggle { font-size: 17px; }
.larp-egregore-hint { text-align: center; color: var(--ink-soft); font-style: italic; margin: 10px 0; }
.larp-egregore-near { margin-top: 12px; }
.larp-egregore-row {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	background: var(--parch); border: 1px solid var(--parch-edge);
	border-radius: 10px; padding: 10px 14px; margin-bottom: 8px;
}
.larp-egregore-name { font-weight: 600; }

.larp-ritual {
	position: fixed; inset: 0; z-index: 9990;
	background: radial-gradient(circle at 50% 40%, rgba(60,40,90,.35), rgba(10,7,14,.92));
	display: grid; place-items: center; padding: 16px;
	opacity: 0; transition: opacity .3s;
}
.larp-ritual.is-in { opacity: 1; }
.larp-ritual-box {
	width: min(460px, 96vw); text-align: center;
	background: linear-gradient(180deg, #211a2e, #140f1c);
	border: 2px solid var(--violet); border-radius: 20px; padding: 26px 24px;
	box-shadow: 0 0 60px rgba(109,74,143,.5);
}
.larp-ritual-progress { font-family: 'Cinzel', serif; letter-spacing: 2px; text-transform: uppercase; font-size: 12px; color: #c9b6e6; }
.larp-ritual-title { color: #f2e9ff; font-size: 24px; margin: 10px 0 14px; }
.larp-ritual-text { color: #e6dcf5; font-size: 17px; line-height: 1.6; }
.larp-ritual-input { margin: 16px 0; text-align: left; }
.larp-ritual-input label { display: block; font-family: 'Cinzel', serif; font-size: 13px; color: #c9b6e6; margin-bottom: 4px; }
.larp-ritual-input select, .larp-ritual-word { width: 100%; }
.larp-vote-pad { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.larp-vote-el {
	display: flex; flex-direction: column; align-items: center; gap: 2px;
	padding: 12px 4px; border-radius: 12px; cursor: pointer;
	background: rgba(201,182,230,.1); border: 2px solid rgba(201,182,230,.35);
	color: #f2e9ff; font-size: 26px;
}
.larp-vote-el small { font-family: 'Cinzel', serif; font-size: 11px; letter-spacing: 1px; }
.larp-vote-el.is-sel { background: var(--violet); border-color: #e6d6ff; box-shadow: 0 0 18px rgba(109,74,143,.7); }
.larp-vote-el:disabled { opacity: .7; cursor: default; }

/* =========================================================================
   Politique (partis / guildes)
   ========================================================================= */
.larp-guild-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.larp-guild-code { margin: 6px 0 0; font-size: 15px; }
.larp-guild-code strong { font-family: 'Cinzel', serif; letter-spacing: 2px; color: var(--gold-deep); }

.larp-proclaim {
	background: linear-gradient(180deg, #7c1d1d, #5a1414);
	color: #fff; border-radius: 12px; padding: 16px 20px; margin: 14px 0;
	font-size: 22px; font-weight: 700; font-family: 'Cinzel', serif;
	text-align: center; letter-spacing: .5px; box-shadow: 0 8px 24px rgba(124,29,29,.4);
	animation: larp-proclaim-pulse 2.4s ease-in-out infinite;
}
@keyframes larp-proclaim-pulse { 0%,100% { box-shadow: 0 8px 24px rgba(124,29,29,.35); } 50% { box-shadow: 0 8px 34px rgba(124,29,29,.7); } }

.larp-rente {
	background: linear-gradient(180deg, rgba(233,207,130,.28), rgba(201,162,74,.16));
	border: 1px solid var(--gold-deep); border-radius: 12px;
	padding: 12px 16px; margin: 12px 0; font-weight: 600; color: var(--gold-deep);
}
.larp-guild-members { display: flex; flex-direction: column; gap: 6px; }
.larp-guild-member { display: flex; align-items: center; gap: 8px; padding: 7px 4px; border-bottom: 1px dashed var(--parch-edge); }
.larp-guild-member:last-child { border-bottom: 0; }
.larp-guild-mname { flex: 1; font-weight: 600; }
.larp-guild-mname small { display: block; font-weight: 400; font-size: 12px; color: var(--ink-soft); }
.larp-guild-kick { margin-left: auto; }

.larp-guild-sell, .larp-guild-deposit { margin: 12px 0; }
.larp-qty-field { display: inline-flex; align-items: center; gap: 6px; flex: none; font-family: 'Cinzel', serif; font-size: 13px; color: var(--gold-deep); }
.larp-qty-field input { flex: none; width: 64px; text-align: center; }
.larp-chest-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; margin-top: 12px; }
.larp-chest-item {
	background: var(--parch); border: 1px solid var(--parch-edge); border-radius: 10px;
	padding: 10px; display: flex; flex-direction: column; gap: 6px; align-items: center; text-align: center;
}
.larp-chest-thumb { height: 80px; display: flex; align-items: center; justify-content: center; }
.larp-chest-thumb img { max-height: 78px; max-width: 100%; object-fit: contain; }
.larp-chest-name { font-weight: 600; font-size: 14px; }

/* Tableau public des partis qui recrutent */
.larp-party-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; margin-top: 10px; }
.larp-party-card { background: var(--parch); border: 1px solid var(--parch-edge); border-left: 4px solid var(--violet); border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 6px; }
.larp-party-name { margin: 0; font-size: 17px; }
.larp-party-meta { margin: 0; font-size: 13px; color: var(--ink-soft); }
.larp-party-recruit { margin: 4px 0; font-style: italic; background: rgba(109,74,143,.1); border-radius: 8px; padding: 8px 10px; }
.larp-party-card .larp-btn { margin-top: auto; align-self: flex-start; }

/* Travail au loin (créneaux PNJ) */
.larp-work-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.larp-work-card {
	background: var(--parch); border: 1px solid var(--parch-edge);
	border-left: 4px solid var(--emerald); border-radius: 12px; padding: 16px;
	display: flex; flex-direction: column; gap: 6px;
}
.larp-work-title { margin: 0; font-size: 18px; }
.larp-work-when { margin: 0; font-family: 'Cinzel', serif; font-size: 13px; color: var(--gold-deep); }
.larp-work-desc { margin: 4px 0; color: var(--ink-soft); }
.larp-work-reward { background: rgba(201,162,74,.14); border-radius: 8px; padding: 8px 10px; font-weight: 600; }
.larp-work-slots { margin: 2px 0; font-size: 13px; color: var(--ink-soft); }
.larp-work-signup { margin-top: auto; }
.larp-work-signup label { font-family: 'Cinzel', serif; font-size: 13px; color: var(--gold-deep); }
.larp-work-status { margin-top: auto; font-family: 'Cinzel', serif; font-size: 14px; padding: 6px 0; }
.larp-work-status.is-pending { color: var(--gold-deep); }
.larp-work-status.is-ok { color: var(--emerald); }
.larp-work-status.is-bad { color: var(--blood); }
.larp-chest-item .larp-inline-form { flex-wrap: wrap; justify-content: center; gap: 6px; width: 100%; margin-top: 4px; }
.larp-chest-item .chest-w-qty { flex: 0 0 54px; width: 54px; text-align: center; }
.larp-chest-item .chest-w-to { flex: 1 1 100%; min-width: 0; }
.larp-chest-item .chest-withdraw { flex: 1 1 100%; }

/* Grimoire du donneur de quête */
.larp-grimoire { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.larp-grimoire-row { background: var(--parch); border: 1px solid var(--parch-edge); border-left: 4px solid var(--gold); border-radius: 10px; padding: 10px 14px; }
.larp-grimoire-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.larp-grimoire-player { font-weight: 700; }
.larp-grimoire-quest { color: var(--ink-soft); font-style: italic; }
.larp-grimoire-when { margin-left: auto; font-family: 'Cinzel', serif; font-size: 12px; color: var(--gold-deep); }
.larp-grimoire-gold { color: var(--gold-deep); font-weight: 600; }
.larp-grimoire-comment { margin-top: 6px; font-style: italic; color: var(--ink); background: rgba(201,162,74,.1); border-radius: 8px; padding: 6px 10px; }

/* Mot de fin de quête dans la popin de victoire */
.larp-victory-comment { margin: 10px 0; }
.larp-victory-comment-text { width: 100%; }
.larp-victory-comment-send { margin-top: 6px; }

/* Distance sur les cartes de quête du journal */
.larp-quest-dist { float: right; font-family: 'Cinzel', serif; font-size: 13px; color: var(--gold-deep); }

/* =========================================================================
   Passage de niveau de métier (animation) + tutoriel de métier
   ========================================================================= */
.larp-lvlup {
	position: fixed; inset: 0; z-index: 100000;
	display: grid; place-items: center; padding: 16px;
	background: radial-gradient(circle at 50% 45%, rgba(60,40,10,.6), rgba(8,6,3,.94));
	opacity: 0; transition: opacity .3s;
}
.larp-lvlup.is-in { opacity: 1; }
.larp-lvlup-rays {
	position: absolute; width: 150vmax; height: 150vmax; pointer-events: none;
	background: repeating-conic-gradient(from 0deg, rgba(233,207,130,.16) 0deg 8deg, transparent 8deg 16deg);
	animation: larp-rays 18s linear infinite; opacity: .6;
}
@keyframes larp-rays { to { transform: rotate(360deg); } }
.larp-lvlup-box {
	position: relative; z-index: 1; text-align: center;
	width: min(440px, 96vw);
	background: linear-gradient(180deg, #2a1f10, #16100a);
	border: 2px solid var(--gold); border-radius: 20px; padding: 26px 24px;
	box-shadow: 0 0 60px rgba(201,162,74,.55);
	transform: scale(.85); transition: transform .35s cubic-bezier(.2,1.4,.4,1);
}
.larp-lvlup.is-in .larp-lvlup-box { transform: scale(1); }
.larp-lvlup-kicker { font-family: 'Cinzel', serif; letter-spacing: 3px; text-transform: uppercase; color: var(--gold-lite); font-size: 13px; }
.larp-lvlup-ring {
	width: 108px; height: 108px; margin: 16px auto; border-radius: 50%;
	display: grid; place-items: center;
	background: radial-gradient(circle, #3a2a12, #1a1209);
	border: 3px solid var(--gold); box-shadow: 0 0 30px rgba(201,162,74,.7), inset 0 0 20px rgba(233,207,130,.4);
	animation: larp-ring-pop .5s ease .1s both;
}
@keyframes larp-ring-pop { from { transform: scale(0) rotate(-40deg); } to { transform: scale(1) rotate(0); } }
.larp-lvlup-ring span { font-family: 'Cinzel', serif; font-size: 52px; font-weight: 800; color: var(--gold-lite); text-shadow: 0 0 14px rgba(233,207,130,.8); }
.larp-lvlup-title { font-family: 'Cinzel', serif; font-size: 24px; color: #f5ead0; margin-bottom: 12px; }
.larp-lvlup-unlocked { color: var(--gold-lite); font-family: 'Cinzel', serif; letter-spacing: 1px; margin: 12px 0 8px; }

/* Cadeau d'un PNJ (affinité) */
.larp-npcgift-from { font-family: 'Cinzel', serif; font-size: 18px; color: var(--gold-lite); margin-top: 6px; }
.larp-npcgift-msg { font-style: italic; color: #e9ddc0; margin: 8px auto 4px; max-width: 30em; line-height: 1.5; }
.larp-npcgift-item { margin: 14px auto 4px; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.larp-npcgift-item img { width: 92px !important; height: 92px !important; object-fit: contain; display: block; filter: drop-shadow(0 6px 14px rgba(0,0,0,.5)); animation: larpGiftPop .5s ease; }
.larp-npcgift-name { font-family: 'Cinzel', serif; font-size: 16px; color: #fff; }
@keyframes larpGiftPop { 0% { transform: scale(.3) rotate(-8deg); opacity: 0; } 70% { transform: scale(1.12) rotate(2deg); } 100% { transform: none; opacity: 1; } }
.larp-lvlup-skill { background: rgba(233,207,130,.1); border: 1px solid var(--gold-deep); border-radius: 10px; padding: 10px 14px; margin: 8px 0; text-align: left; }
.larp-lvlup-skill-name { color: var(--gold-lite); font-weight: 700; }
.larp-lvlup-skill-desc { color: #e7d6b0; font-size: 14px; margin-top: 2px; }
.larp-lvlup-ok { margin-top: 16px; }

.larp-tuto {
	position: fixed; inset: 0; z-index: 99990;
	display: grid; place-items: center; padding: 16px;
	background: rgba(20,12,4,.9); opacity: 0; transition: opacity .3s;
}
.larp-tuto.is-in { opacity: 1; }
.larp-tuto-box {
	width: min(460px, 96vw); text-align: center;
	background: linear-gradient(180deg, var(--parch), var(--parch-2));
	border: 2px solid var(--gold); border-radius: 20px; padding: 26px 24px;
	box-shadow: var(--shadow); color: var(--ink);
	max-height: 88vh; overflow-y: auto;
}
.larp-tuto-emoji { font-size: 54px; }
.larp-tuto-kicker { font-family: 'Cinzel', serif; letter-spacing: 3px; text-transform: uppercase; color: var(--gold-deep); font-size: 12px; }
.larp-tuto-title { font-family: 'Cinzel', serif; font-size: 26px; margin: 6px 0; }
.larp-tuto-tag { color: var(--ink-soft); font-style: italic; }
.larp-tuto-skills { margin: 16px 0; text-align: left; }
.larp-tuto-skill { display: flex; gap: 10px; align-items: flex-start; padding: 10px; border-radius: 10px; margin-bottom: 8px; border: 1px solid var(--parch-edge); }
.larp-tuto-skill.is-off { opacity: .6; }
.larp-tuto-lvl { flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--gold); color: #2a1c08; font-weight: 700; font-family: 'Cinzel', serif; }
.larp-tuto-sname { font-weight: 700; }
.larp-tuto-sdesc { font-size: 14px; color: var(--ink-soft); }
.larp-tuto-hint { font-size: 13px; color: var(--ink-soft); font-style: italic; }
.larp-ritual-actions { margin-top: 20px; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.larp-ritual-wait { margin-top: 12px; color: #c9b6e6; font-style: italic; min-height: 20px; }

/* =========================================================================
   Écran « piraté » (victime d'un piège)
   ========================================================================= */
.larp-hacked {
	position: fixed; inset: 0; z-index: 100000;
	background: #050806; color: #37ff8b;
	font-family: 'Courier New', monospace;
	display: grid; place-items: center; padding: 20px; overflow: hidden;
}
.larp-hacked-scan {
	position: absolute; inset: 0; pointer-events: none;
	background: repeating-linear-gradient(0deg, rgba(55,255,139,.06) 0, rgba(55,255,139,.06) 1px, transparent 2px, transparent 4px);
	animation: larp-scan 6s linear infinite;
}
@keyframes larp-scan { from { background-position: 0 0; } to { background-position: 0 400px; } }
.larp-hacked-box { text-align: center; max-width: 560px; position: relative; z-index: 1; }
.larp-hacked-glyph { font-size: 60px; filter: drop-shadow(0 0 12px #37ff8b); animation: larp-flicker 1.4s infinite; }
@keyframes larp-flicker { 0%,100% { opacity: 1; } 47% { opacity: .55; } 50% { opacity: .15; } 53% { opacity: .8; } }
.larp-hacked-title { font-size: 30px; font-weight: 700; letter-spacing: 3px; margin: 14px 0; text-shadow: 0 0 10px #37ff8b; }
.larp-hacked-msg { color: #9effc4; font-size: 16px; line-height: 1.6; }
.larp-hacked-timer { font-size: 44px; font-weight: 700; margin: 18px 0 6px; letter-spacing: 4px; }
.larp-hacked-sub { color: #2ea864; font-size: 13px; letter-spacing: 1px; }

/* =========================================================================
   Interface phishing (Hacker)
   ========================================================================= */
.larp-phish { margin-top: 26px; }
.larp-phish-form { background: var(--parch); border: 1px solid var(--parch-edge); border-radius: 12px; padding: 16px; }
.larp-phish-form .larp-field { margin-bottom: 10px; }
.larp-phish-sub { font-family: 'Cinzel', serif; color: var(--gold-deep); margin: 20px 0 8px; }
.larp-phish-row {
	display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
	background: var(--parch); border: 1px solid var(--parch-edge);
	border-radius: 10px; padding: 9px 14px; margin-bottom: 8px;
}
.larp-phish-name { flex: 1; font-weight: 600; }
.larp-phish-victim { color: var(--blood); font-size: 14px; }
.larp-phish-armed { color: var(--gold-deep); font-size: 13px; font-family: 'Cinzel', serif; }
.larp-phish-book { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.larp-phish-card {
	background: linear-gradient(180deg, #241a10, #191109); color: #cdb98f;
	border: 1px solid var(--leather-3); border-radius: 10px; padding: 12px 14px;
}
.larp-phish-card.is-live { border-color: #37ff8b; box-shadow: 0 0 14px rgba(55,255,139,.3); }
.larp-phish-card-head { font-family: 'Cinzel', serif; color: #f5ead0; font-size: 16px; margin-bottom: 6px; }
.larp-phish-live { color: #37ff8b; font-size: 12px; }
.larp-phish-card-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; font-size: 13px; }
