
:root {
    --lg-vv-bottom-gap: 0px;
    --lg-vv-height: 100vh;
}

/* =====================================================================
   LoupGarou Voice — Premium UI
   Mobile-first · dark immersive · animated atmosphere
   ===================================================================== */

:root {
    --lg-bg:        #07080f;
    --lg-bg-2:      #0e1226;
    --lg-bg-3:      #1a1140;
    --lg-text:      #f0f1ff;
    --lg-dim:       #9aa3c7;
    --lg-faint:     #5a6391;
    --lg-line:      rgba(255,255,255,.10);
    --lg-line-2:    rgba(255,255,255,.18);
    --lg-panel:     rgba(255,255,255,.04);
    --lg-panel-2:   rgba(255,255,255,.08);
    --lg-gold:      #f6c453;
    --lg-gold-2:    #c9963b;
    --lg-blood:     #d6504f;
    --lg-blood-2:   #8e2424;
    --lg-success:   #4ac888;
    --lg-purple:    #8b5cf6;
    --lg-blue:      #3b82f6;
    --lg-night:     #1a1140;
    --lg-day:       #b5862e;
    --lg-radius:    16px;
    --lg-radius-sm: 10px;
    --lg-shadow:    0 14px 40px -10px rgba(0,0,0,.6);
    --lg-shadow-lg: 0 30px 60px -20px rgba(0,0,0,.8);
    --lg-font:      'Cormorant Garamond', 'Iowan Old Style', 'Georgia', serif;
    --lg-font-h:    'Cinzel', 'Cormorant Garamond', serif;
    --lg-font-ui:   'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

.lg-app, .lg-app * { box-sizing: border-box; }
.lg-app *::-webkit-scrollbar { width: 8px; height: 8px; }
.lg-app *::-webkit-scrollbar-thumb { background: rgba(255,255,255,.15); border-radius: 4px; }

.lg-app {
    position: relative;
    color: var(--lg-text);
    font-family: var(--lg-font);
    background: radial-gradient(1200px 800px at 80% -10%, #2a1e44 0%, transparent 60%),
                radial-gradient(900px 700px at -10% 30%, #18324b 0%, transparent 60%),
                var(--lg-bg);
    min-height: 80vh;
    padding: 24px;
    border-radius: var(--lg-radius);
    overflow: hidden;
    isolation: isolate;
}
.lg-app input, .lg-app textarea, .lg-app button { font-family: var(--lg-font-ui); }

/* ============== Animated decorative background ====================== */
.lg-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; border-radius: inherit; }
.lg-bg__stars {
    position: absolute; inset: -10% -10% -10% -10%;
    background-image:
        radial-gradient(2px 2px at 20% 30%, #ffffff 0%, transparent 60%),
        radial-gradient(1.5px 1.5px at 70% 40%, #cfd8ff 0%, transparent 60%),
        radial-gradient(1px 1px at 40% 70%, #fff 0%, transparent 60%),
        radial-gradient(2px 2px at 90% 80%, #ffe7a8 0%, transparent 60%),
        radial-gradient(1px 1px at 10% 90%, #fff 0%, transparent 60%),
        radial-gradient(1.5px 1.5px at 60% 15%, #b9c7ff 0%, transparent 60%);
    background-repeat: repeat;
    background-size: 540px 380px;
    opacity: .65;
    animation: lgStars 120s linear infinite;
}
@keyframes lgStars { from { transform: translateY(0); } to { transform: translateY(-380px); } }

.lg-bg__moon {
    position: absolute; top: 6%; right: 6%;
    width: 140px; height: 140px; border-radius: 50%;
    background:
        radial-gradient(circle at 35% 35%, #fff7d6 0%, #f4dd88 45%, #c9963b 80%, #6a4910 100%);
    box-shadow:
        inset -14px -14px 30px rgba(0,0,0,.35),
        0 0 60px rgba(246,196,83,.4),
        0 0 140px rgba(246,196,83,.18);
    animation: lgMoon 12s ease-in-out infinite alternate;
}
.lg-bg__moon::before, .lg-bg__moon::after {
    content: ''; position: absolute; border-radius: 50%;
    background: rgba(120,70,0,.18);
}
.lg-bg__moon::before { width: 24px; height: 24px; top: 32px; left: 38px; }
.lg-bg__moon::after  { width: 16px; height: 16px; top: 80px; left: 70px; box-shadow: -34px -8px 0 -2px rgba(120,70,0,.14), -10px 22px 0 0 rgba(120,70,0,.12); }
@keyframes lgMoon { from { filter: brightness(1) } to { filter: brightness(1.1) } }

.lg-bg__fog {
    position: absolute; left: -20%; right: -20%; height: 220px;
    background: radial-gradient(60% 50% at 50% 50%, rgba(180,200,255,.10), transparent 70%);
    filter: blur(20px);
    animation: lgFog 32s linear infinite;
}
.lg-bg__fog--1 { top: 30%; }
.lg-bg__fog--2 { top: 55%; opacity: .6; animation-duration: 48s; animation-direction: reverse; }
@keyframes lgFog { from { transform: translateX(-15%) } to { transform: translateX(15%) } }

.lg-bg__forest {
    position: absolute; left: 0; right: 0; bottom: 0; height: 180px;
    pointer-events: none; opacity: .85;
    background:
        linear-gradient(180deg, transparent 0%, var(--lg-bg) 100%),
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 220' preserveAspectRatio='none'><path d='M0 220V120l40 6 14-26 18 22 24-30 26 36 30-44 28 28 36-52 32 36 40-32 30 40 36-26 30 24 38-40 32 40 30-26 36 30 28-28 40 22 36-28 28 26 32-32 40 30 28-22 38 26 32-32 38 38 28-26 36 28 32-18 40 32 30-32 36 38 28-26 40 24 36-32 30 36 38-28 32 28 34-22 30 28 38-32 34 30 36-26 36 30 26-24 36 28 30-22V220z' fill='%23000'/></svg>") repeat-x;
    background-size: auto 100%;
}

/* ============== Common: hero / typography =========================== */
.lg-screen { position: relative; z-index: 1; }

.lg-hero { text-align: center; padding: 18px 12px 30px; max-width: 760px; margin: 0 auto; }
.lg-hero__badge {
    display: inline-block; padding: 6px 14px; border-radius: 999px;
    background: rgba(246,196,83,.10); border: 1px solid rgba(246,196,83,.40);
    color: var(--lg-gold); font-family: var(--lg-font-ui); font-size: 13px;
    letter-spacing: .12em; text-transform: uppercase; font-weight: 600;
    backdrop-filter: blur(6px);
}
.lg-title {
    font-family: var(--lg-font-h);
    font-size: clamp(36px, 6.5vw, 70px);
    font-weight: 700; letter-spacing: .02em;
    margin: 18px 0 12px; line-height: 1.05;
    background: linear-gradient(180deg, #fff 0%, #ffe7a8 55%, #c9963b 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    text-shadow: 0 0 38px rgba(246,196,83,.16);
}
.lg-title span { font-style: italic; font-weight: 500; }
.lg-subtitle { color: var(--lg-dim); max-width: 640px; margin: 0 auto; font-size: clamp(16px, 1.8vw, 19px); line-height: 1.55; }
.lg-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; padding: 18px 0 0; margin: 0; list-style: none; }
.lg-pills li {
    background: rgba(255,255,255,.05); border: 1px solid var(--lg-line);
    padding: 6px 12px; border-radius: 999px; font-family: var(--lg-font-ui); font-size: 13px; color: var(--lg-dim);
}

/* ============== Cards (create / join) =============================== */
.lg-cards {
    display: grid; gap: 18px; max-width: 820px; margin: 28px auto 8px;
    grid-template-columns: 1fr;
}
@media (min-width: 720px) { .lg-cards { grid-template-columns: 1fr 1fr; } }
.lg-card {
    position: relative;
    background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
    border: 1px solid var(--lg-line-2);
    backdrop-filter: blur(18px);
    border-radius: 18px; padding: 24px 22px 22px;
    box-shadow: var(--lg-shadow);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
    overflow: hidden;
}
.lg-card::before {
    content: ''; position: absolute; inset: -1px; border-radius: inherit;
    padding: 1px; background: linear-gradient(135deg, transparent 30%, rgba(246,196,83,.5), transparent 70%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
    opacity: 0; transition: opacity .25s ease; pointer-events: none;
}
.lg-card:hover { transform: translateY(-4px); border-color: rgba(246,196,83,.35); box-shadow: var(--lg-shadow-lg); }
.lg-card:hover::before { opacity: 1; }
.lg-card__icon {
    width: 44px; height: 44px; color: var(--lg-gold);
    display: grid; place-items: center;
    background: rgba(246,196,83,.10); border: 1px solid rgba(246,196,83,.35);
    border-radius: 12px; margin-bottom: 14px;
}
.lg-card__icon svg { width: 22px; height: 22px; }
.lg-card h2 { font-family: var(--lg-font-h); margin: 0 0 8px; font-size: 24px; color: var(--lg-gold); letter-spacing: .02em; }
.lg-card__lead { color: var(--lg-dim); font-size: 15px; margin: 0 0 16px; line-height: 1.45; }
.lg-card label { display:block; font-family: var(--lg-font-ui); font-size: 12px; font-weight: 600;
    color: var(--lg-dim); text-transform: uppercase; letter-spacing: .12em; margin: 12px 0 6px; }
.lg-card input, .lg-input, .lg-app textarea {
    width: 100%; padding: 13px 14px; font-size: 16px;
    background: rgba(0,0,0,.40); border: 1px solid var(--lg-line);
    color: var(--lg-text); border-radius: var(--lg-radius-sm); outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
    font-family: var(--lg-font-ui);
}
.lg-card input:focus, .lg-input:focus, .lg-app textarea:focus {
    border-color: var(--lg-gold); box-shadow: 0 0 0 3px rgba(246,196,83,.18);
}
.lg-card input::placeholder { color: var(--lg-faint); }
.lg-error { color: var(--lg-blood); text-align:center; min-height: 22px; margin: 14px 0 0; font-family: var(--lg-font-ui); }

/* ============== Features grid ======================================= */
.lg-features { max-width: 1080px; margin: 50px auto 8px; padding: 0 4px; }
.lg-features h3 { font-family: var(--lg-font-h); text-align: center; font-size: clamp(22px, 3vw, 30px); color: var(--lg-gold); margin: 0 0 22px; }
.lg-features__grid { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 720px) { .lg-features__grid { grid-template-columns: repeat(4, 1fr); } }
.lg-features__grid article {
    background: var(--lg-panel); border: 1px solid var(--lg-line); border-radius: var(--lg-radius);
    padding: 18px; transition: transform .2s ease, border-color .2s ease;
}
.lg-features__grid article:hover { transform: translateY(-3px); border-color: var(--lg-line-2); }
.lg-feat-emoji { font-size: 28px; margin-bottom: 8px; }
.lg-features h4 { font-family: var(--lg-font-h); font-size: 18px; margin: 0 0 6px; color: var(--lg-text); }
.lg-features p { color: var(--lg-dim); margin: 0; font-size: 15px; line-height: 1.45; }

.lg-foot {
    text-align: center; color: var(--lg-dim); padding: 30px 0 6px;
    font-family: var(--lg-font-ui); font-size: 13px; letter-spacing: .04em;
}
.lg-foot code { background: rgba(255,255,255,.06); padding: 2px 6px; border-radius: 5px; font-size: 12px; }

/* ============== Buttons ============================================= */
.lg-btn {
    cursor: pointer; display: inline-flex; gap: 8px; align-items: center; justify-content: center;
    border: 1px solid var(--lg-line-2);
    background: rgba(255,255,255,.06); color: var(--lg-text);
    padding: 12px 18px; border-radius: var(--lg-radius-sm); font-size: 15px;
    font-family: var(--lg-font-ui); font-weight: 600; letter-spacing: .01em;
    transition: transform .12s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
    margin-top: 8px;
}
.lg-btn:hover { background: rgba(255,255,255,.12); border-color: var(--lg-line-2); }
.lg-btn:active { transform: scale(.97); }
.lg-btn--lg { padding: 14px 22px; font-size: 16px; width: 100%; margin-top: 16px; }
.lg-btn--primary {
    background: linear-gradient(180deg, #ffd676, #c9963b);
    color: #1b1306; border-color: #c9963b; font-weight: 700;
    box-shadow: 0 6px 20px rgba(246,196,83,.25);
}
.lg-btn--primary:hover { background: linear-gradient(180deg, #ffe089, #d2a04a); box-shadow: 0 10px 30px rgba(246,196,83,.4); }
.lg-btn--ghost { background: transparent; }
.lg-btn--rec { background: linear-gradient(180deg, #e3635f, #a23030); border-color:#a23030; color:#fff; }
.lg-btn--success { background: linear-gradient(180deg, #6cd99a, #2f8c5c); border-color:#2f8c5c; color:#08210f; font-weight:700; }
.lg-btn--danger  { background: linear-gradient(180deg, #d6504f, #8e2424); border-color:#8e2424; color:#fff; }

/* ============== Game header ========================================= */
.lg-gheader {
    position: relative; z-index: 2;
    display: flex; align-items: center; gap: 12px; justify-content: space-between;
    background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
    border: 1px solid var(--lg-line-2);
    padding: 14px 16px; border-radius: var(--lg-radius);
    backdrop-filter: blur(14px);
    flex-wrap: wrap;
}
.lg-gheader__code {
    display: flex; gap: 10px; align-items: center; cursor: pointer;
    appearance: none; color: inherit; font: inherit;
    background: rgba(0,0,0,.30); border: 1px solid var(--lg-line); border-radius: 12px;
    padding: 6px 14px; transition: transform .12s ease, border-color .2s ease;
}
.lg-gheader__code:hover { border-color: var(--lg-gold); transform: translateY(-1px); }
.lg-gheader__code strong { font-family: var(--lg-font-h); font-size: 22px; letter-spacing: .25em; color: var(--lg-gold); }
.lg-tag { font-family: var(--lg-font-ui); font-size: 11px; color: var(--lg-dim); text-transform: uppercase; letter-spacing: .12em; }
.lg-gheader__phase {
    display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
    font-family: var(--lg-font-h); font-size: 18px; flex: 1; min-width: 0;
}
.lg-gheader__phase .lg-dim { font-size: 12px; letter-spacing: .15em; text-transform: uppercase; }

/* ============== Layout ============================================== */
.lg-glayout { display: grid; gap: 16px; margin-top: 16px; grid-template-columns: 1fr; position: relative; z-index: 1; }
@media (min-width: 1024px) { .lg-glayout { grid-template-columns: 1.45fr 1fr; } }

.lg-section {
    background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
    border: 1px solid var(--lg-line);
    border-radius: var(--lg-radius); padding: 18px;
    backdrop-filter: blur(14px);
}
.lg-section h3 { margin: 0 0 12px; font-family: var(--lg-font-h); font-size: 20px; color: var(--lg-gold); letter-spacing: .04em; }
.lg-section h4 { font-family: var(--lg-font-ui); font-size: 13px; color: var(--lg-dim); letter-spacing: .12em; text-transform: uppercase; margin: 16px 0 8px; }
.lg-dim { color: var(--lg-dim); font-family: var(--lg-font-ui); font-size: 14px; }

/* ============== Phase banner ======================================== */
.lg-banner {
    display: flex; gap: 14px; align-items: center;
    padding: 18px 18px; border-radius: var(--lg-radius);
    border: 1px solid var(--lg-line-2);
    background: linear-gradient(120deg, #14213a 0%, #1c2952 100%);
    position: relative; overflow: hidden;
    margin-bottom: 16px;
    box-shadow: var(--lg-shadow);
}
.lg-banner::after {
    content: ''; position: absolute; inset: 0;
    background-image: radial-gradient(circle at 10% 20%, rgba(246,196,83,.18), transparent 30%);
    pointer-events: none;
}
.lg-banner__emoji {
    font-size: 40px; width: 60px; height: 60px; flex-shrink: 0;
    display: grid; place-items: center;
    background: rgba(0,0,0,.35); border-radius: 14px;
    border: 1px solid var(--lg-line-2);
}
.lg-banner__title { font-family: var(--lg-font-h); font-size: 22px; }
.lg-banner__timer { font-family: var(--lg-font-ui); color: var(--lg-gold); font-weight: 600; margin-top: 4px; letter-spacing: .04em; }
.lg-banner--day { background: linear-gradient(120deg, #4a3315 0%, #7a5421 100%); }
.lg-banner--vote { background: linear-gradient(120deg, #4a1f5c 0%, #6b2c84 100%); }
.lg-banner--result { background: linear-gradient(120deg, #312757 0%, #5a3e91 100%); }
.lg-banner--end { background: linear-gradient(120deg, #511a1a 0%, #7a3030 100%); }

/* ============== Players grid ======================================== */
.lg-players { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.lg-player {
    display: flex; gap: 12px; align-items: center; padding: 10px;
    border-radius: var(--lg-radius-sm);
    background: rgba(255,255,255,.04); border: 1px solid var(--lg-line);
    transition: transform .15s ease, border-color .2s ease;
    position: relative;
}
.lg-player:hover { transform: translateY(-2px); border-color: var(--lg-line-2); }
.lg-player--me { outline: 2px solid var(--lg-gold); outline-offset: 1px; }
.lg-player--mj { background: linear-gradient(180deg, rgba(139,92,246,.25), rgba(139,92,246,.08)); border-color: rgba(139,92,246,.5); }
.lg-player--dead { opacity: .45; filter: grayscale(70%); }
.lg-player--dead .lg-player__avatar::after {
    content: '☠'; position: absolute; inset: 0; display: grid; place-items: center;
    font-size: 24px; color: #fff; background: rgba(0,0,0,.55); border-radius: 50%;
}
.lg-player__avatar {
    width: 42px; height: 42px; border-radius: 50%; position: relative;
    background: linear-gradient(135deg, #4b3a78, #1f2b56);
    display: grid; place-items: center; font-weight: 700; font-family: var(--lg-font-h);
    color: #fff; font-size: 17px; flex-shrink: 0;
    box-shadow: inset 0 2px 8px rgba(0,0,0,.4);
}
.lg-player__info { min-width: 0; }
.lg-player__name { font-family: var(--lg-font-ui); font-weight: 600; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lg-player__role { color: var(--lg-dim); font-family: var(--lg-font-ui); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ============== My role card (3D flip) =============================== */
.lg-myrole {
    perspective: 1000px;
    height: 220px;
    margin-bottom: 8px;
}
.lg-myrole__card {
    position: relative; width: 100%; height: 100%;
    transition: transform 1.4s cubic-bezier(.34,1.56,.64,1);
    transform-style: preserve-3d;
}
.lg-myrole--flip .lg-myrole__card { transform: rotateY(180deg); }
.lg-myrole__face {
    position: absolute; inset: 0;
    backface-visibility: hidden; -webkit-backface-visibility: hidden;
    border-radius: var(--lg-radius);
    display: flex; flex-direction: column; justify-content: center; align-items: center;
    padding: 20px; text-align: center;
    box-shadow: var(--lg-shadow);
    overflow: hidden;
}
.lg-myrole__back {
    background:
        radial-gradient(circle at 50% 0%, #2a1e44, #0a0d18 80%),
        repeating-linear-gradient(45deg, rgba(255,214,118,.06) 0 10px, transparent 10px 20px);
    border: 1px solid var(--lg-line-2);
}
.lg-myrole__back-art { font-size: 70px; opacity: .85; filter: drop-shadow(0 4px 12px rgba(0,0,0,.4)); }
.lg-myrole__back-text { font-family: var(--lg-font-h); color: var(--lg-gold); margin-top: 8px; letter-spacing: .18em; font-size: 14px; }
.lg-myrole__front {
    transform: rotateY(180deg);
    background: linear-gradient(160deg, #1d1638 0%, #321a4a 60%, #4a1f5c 100%);
    border: 2px solid var(--lg-gold);
    color: var(--lg-text);
}
.lg-myrole__emoji { font-size: 72px; line-height: 1; filter: drop-shadow(0 6px 14px rgba(0,0,0,.5)); }
.lg-myrole__name { font-family: var(--lg-font-h); font-size: 28px; margin: 10px 0 4px; color: var(--lg-gold); letter-spacing: .04em; }
.lg-myrole__team { font-family: var(--lg-font-ui); font-size: 12px; letter-spacing: .15em; text-transform: uppercase; }
.lg-myrole__team--village { color: #6cd99a; }
.lg-myrole__team--loups { color: var(--lg-blood); }
.lg-myrole__team--solo { color: var(--lg-purple); }
.lg-myrole__desc { font-family: var(--lg-font-ui); color: rgba(255,255,255,.78); margin-top: 8px; font-size: 13px; max-width: 360px; line-height: 1.4; }

/* ============== Target picker pills ================================= */
.lg-targets { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.lg-target {
    cursor: pointer; border: 1px solid var(--lg-line-2);
    background: rgba(255,255,255,.05);
    color: var(--lg-text); padding: 10px 14px; border-radius: 999px;
    font-family: var(--lg-font-ui); font-size: 14px; font-weight: 500;
    transition: transform .12s ease, background .2s ease, border-color .2s ease;
}
.lg-target:hover { background: rgba(255,255,255,.12); border-color: var(--lg-gold); }
.lg-target.is-on { background: linear-gradient(180deg, #ffd676, #c9963b); color:#1b1306; border-color:#c9963b; font-weight:700; }
.lg-target--me { opacity: .7; }

.lg-reveal {
    padding: 14px 16px; background: linear-gradient(180deg, rgba(246,196,83,.18), rgba(246,196,83,.06));
    border: 1px solid rgba(246,196,83,.45); border-radius: var(--lg-radius);
    font-family: var(--lg-font-ui); font-size: 15px;
}

/* ============== MJ panel ============================================ */
.lg-wakeup { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 12px; }
.lg-host-players { display: flex; flex-direction: column; gap: 6px; }
.lg-host-row {
    display: flex; justify-content: space-between; align-items: center; gap: 10px;
    padding: 10px 12px; background: rgba(0,0,0,.2); border-radius: var(--lg-radius-sm);
    border: 1px solid var(--lg-line);
}
.lg-host-row__btns { display: flex; gap: 6px; flex-wrap: wrap; }

.lg-cfg { display: grid; gap: 6px; margin-bottom: 10px; }
.lg-cfg__row {
    display: flex; justify-content: space-between; align-items: center; gap: 10px;
    padding: 10px 12px; background: rgba(0,0,0,.20); border-radius: var(--lg-radius-sm);
    border: 1px solid var(--lg-line);
    transition: border-color .15s ease;
}
.lg-cfg__row:hover { border-color: var(--lg-gold); }
.lg-cfg__name { font-family: var(--lg-font-ui); font-size: 14px; }
.lg-cfg__ctrls { display: flex; align-items: center; gap: 6px; }
.lg-cfg__ctrls .lg-btn { padding: 6px 12px; min-width: 36px; margin: 0; font-size: 16px; }
.lg-cfg__count { font-family: var(--lg-font-h); min-width: 28px; text-align: center; font-size: 18px; color: var(--lg-gold); }
.lg-cfg__status { margin: 0 0 10px; min-height: 18px; font-family: var(--lg-font-ui); font-size: 12px; color: var(--lg-muted); }
.lg-cfg__status--ok { color: var(--lg-success); }
.lg-cfg__status--error { color: var(--lg-blood); }

/* ============== Chat ================================================ */
.lg-chatcol { display: flex; flex-direction: column; gap: 14px; min-height: 60vh; }
.lg-channels { display: flex; flex-wrap: wrap; gap: 6px; }
.lg-chan {
    cursor: pointer; padding: 8px 14px; border-radius: 999px;
    border: 1px solid var(--lg-line); background: rgba(255,255,255,.04); color: var(--lg-text);
    font-family: var(--lg-font-ui); font-size: 13px; font-weight: 500;
    transition: background .15s ease, border-color .15s ease;
}
.lg-chan:hover { border-color: var(--lg-gold); }
.lg-chan.is-on { background: linear-gradient(180deg, #6759c4, #2f2580); border-color: #6759c4; color:#fff; font-weight:600; }

.lg-chat {
    flex: 1; overflow: auto; padding: 14px; max-height: 480px;
    background: rgba(0,0,0,.25); border: 1px solid var(--lg-line);
    border-radius: var(--lg-radius);
    display: flex; flex-direction: column; gap: 10px;
}
.lg-pad { padding: 14px; }
.lg-msg {
    background: rgba(255,255,255,.05);
    padding: 10px 12px; border-radius: 14px; max-width: 92%;
    border: 1px solid var(--lg-line);
    animation: lgMsgIn .25s ease-out;
}
@keyframes lgMsgIn { from { opacity: 0; transform: translateY(6px); } }
.lg-msg--me { background: linear-gradient(180deg, #4051d0, #1b2585); border-color: #4051d0; margin-left: auto; }
.lg-msg--mj { border-color: var(--lg-gold); background: rgba(246,196,83,.10); }
.lg-msg__head { display: flex; gap: 10px; font-family: var(--lg-font-ui); font-size: 12px; color: var(--lg-dim); margin-bottom: 4px; }
.lg-msg__from { font-weight: 700; color: var(--lg-text); }
.lg-msg__text { white-space: pre-wrap; line-height: 1.45; font-size: 15px; font-family: var(--lg-font-ui); }
.lg-msg audio { width: 100%; margin-top: 6px; }

.lg-composer {
    background: rgba(0,0,0,.20); border: 1px solid var(--lg-line);
    padding: 12px; border-radius: var(--lg-radius);
    display: flex; flex-direction: column; gap: 10px;
}
.lg-composer textarea { min-height: 64px; resize: vertical; }
.lg-composer__row { display: flex; gap: 8px; flex-wrap: wrap; }

.lg-recbar {
    display: flex; gap: 12px; align-items: center; padding: 10px 12px;
    background: linear-gradient(180deg, rgba(214,80,79,.22), rgba(214,80,79,.10));
    border: 1px solid rgba(214,80,79,.45); border-radius: var(--lg-radius-sm);
}
.lg-rec-dot { width: 14px; height: 14px; background: var(--lg-blood); border-radius: 50%; box-shadow: 0 0 12px var(--lg-blood); animation: lgpulse 1s infinite ease-in-out; }
@keyframes lgpulse { 0%,100% { opacity:1; transform: scale(1) } 50% { opacity: .4; transform: scale(1.5) } }
.lg-recbar__time { font-family: var(--lg-font-ui); font-weight: 700; font-variant-numeric: tabular-nums; }

/* ============== Toast ============================================== */
.lg-toast {
    position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%) translateY(40px);
    background: #1a1f33; color: #fff; padding: 12px 20px;
    border-radius: 999px; border: 1px solid var(--lg-line-2);
    box-shadow: 0 12px 32px rgba(0,0,0,.4);
    opacity: 0; pointer-events: none;
    transition: opacity .25s ease, transform .25s ease; z-index: 99999;
    font-family: var(--lg-font-ui); font-size: 14px;
}
.lg-toast.is-on { opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; }

/* ============== Responsive ========================================= */
@media (max-width: 720px) {
    .lg-app { padding: 14px; border-radius: 0; }
    .lg-bg__moon { width: 100px; height: 100px; }
    .lg-bg__moon::before { width: 16px; height: 16px; top: 22px; left: 28px; }
    .lg-bg__moon::after { width: 12px; height: 12px; top: 60px; left: 52px; }
    .lg-card { padding: 18px 16px; }
    .lg-section { padding: 14px; }
    .lg-glayout { grid-template-columns: 1fr; }
    .lg-chatcol { min-height: 50vh; }
    .lg-gheader { gap: 10px; }
    .lg-gheader__phase { font-size: 16px; }
    .lg-myrole { height: 200px; }
    .lg-myrole__emoji { font-size: 60px; }
    .lg-myrole__name { font-size: 22px; }
    .lg-players { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
    .lg-features__grid { gap: 10px; }
}


/* =====================================================================
   v1.1.0 — Mobile app shell + bottom drawer chat
   ===================================================================== */
.lg-chat-sheet__head,
.lg-chat-fab,
.lg-drawer-backdrop { display: none; }

.lg-chat-sheet__head {
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 2px 2px 0;
}
.lg-chat-sheet__title {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--lg-gold);
    font-family: var(--lg-font-h);
    font-size: 18px;
    letter-spacing: .04em;
}
.lg-chat-sheet__icon,
.lg-chat-fab__icon { width: 22px; height: 22px; display: block; }
.lg-chat-sheet__close {
    display: grid;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    place-items: center;
    border-radius: 50%;
}
.lg-chat-sheet__close svg { width: 20px; height: 20px; }

@media (max-width: 1023px) {
    .lg-app {
        min-height: 100vh;
        min-height: 100svh;
        padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) calc(92px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
        border-radius: 0;
    }
    .lg-gheader {
        position: sticky;
        top: max(8px, env(safe-area-inset-top));
        z-index: 20;
        gap: 8px;
        padding: 10px;
        box-shadow: 0 12px 30px rgba(0,0,0,.22);
    }
    .lg-gheader__code { gap: 7px; padding: 7px 10px; }
    .lg-gheader__code strong { font-size: 18px; letter-spacing: .16em; }
    .lg-gheader__phase { font-size: 15px; }
    .lg-gheader > .lg-btn { padding: 9px 11px; margin: 0; font-size: 12px; }
    .lg-glayout { margin-top: 12px; }
    .lg-section { padding: 14px; }
    .lg-banner { gap: 12px; margin-bottom: 12px; padding: 14px; }
    .lg-banner__emoji { width: 50px; height: 50px; font-size: 31px; }
    .lg-banner__title { font-size: 18px; }
    .lg-players { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .lg-player { min-width: 0; gap: 8px; padding: 8px; }
    .lg-player__avatar { width: 36px; height: 36px; font-size: 14px; }
    .lg-player__name { font-size: 13px; }
    .lg-player__role { font-size: 11px; }
    .lg-chat-sheet__head { display:flex; }
    .lg-chatcol {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1002;
        display: flex;
        min-height: 0;
        max-height: min(88vh, 760px);
        max-height: min(88svh, 760px);
        gap: 10px;
        padding: 14px max(14px, env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
        border: 1px solid rgba(255,255,255,.16);
        border-bottom: 0;
        border-radius: 24px 24px 0 0;
        background: linear-gradient(180deg, rgba(19,22,42,.98), rgba(7,8,15,.995));
        box-shadow: 0 -24px 64px rgba(0,0,0,.56);
        transform: translateY(calc(100% + 24px));
        transition: transform .3s cubic-bezier(.2,.8,.2,1);
        visibility: hidden;
    }
    .lg-chatcol.is-open { transform: translateY(0); visibility: visible; }
    .lg-chatcol .lg-section { padding: 10px; }
    .lg-chatcol .lg-section h3 { display:none; }
    .lg-chat { min-height: 180px; max-height: 42vh; max-height: 42svh; padding: 10px; }
    .lg-composer { padding: 10px; }
    .lg-composer textarea { min-height: 58px; }
    .lg-drawer-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1001;
        display: block;
        padding: 0;
        border: 0;
        background: rgba(0,0,0,.58);
        opacity: 0;
        pointer-events: none;
        transition: opacity .25s ease;
    }
    .lg-drawer-backdrop.is-open { opacity: 1; pointer-events: auto; }
    .lg-chat-fab {
        position: fixed;
        left: max(16px, env(safe-area-inset-left));
        bottom: calc(16px + env(safe-area-inset-bottom));
        z-index: 1000;
        display: grid;
        width: 60px;
        height: 60px;
        margin: 0;
        padding: 0;
        place-items: center;
        border: 1px solid rgba(255,214,118,.62);
        border-radius: 50%;
        background: linear-gradient(160deg, #f8d36e, #b67c25);
        color: #201405;
        box-shadow: 0 14px 32px rgba(0,0,0,.46), 0 0 0 5px rgba(246,196,83,.11);
        cursor: pointer;
        transition: transform .16s ease, box-shadow .2s ease;
    }
    .lg-chat-fab:active { transform: scale(.94); }
    .lg-chat-fab[aria-expanded="true"] { transform: scale(.92); opacity: .72; }
    .lg-chat-fab__badge {
        position:absolute;
        top:-5px;
        right:-5px;
        display:grid;
        min-width:22px;
        height:22px;
        padding:0 5px;
        place-items:center;
        border:2px solid #07080f;
        border-radius:999px;
        background:var(--lg-blood);
        color:#fff;
        font-family:var(--lg-font-ui);
        font-size:11px;
        font-weight:700;
        line-height:1;
    }
    .lg-chat-fab__badge[hidden] { display:none; }
    body.lg-chat-sheet-open { overflow:hidden; }
}

@media (max-width: 380px) {
    .lg-app { padding-inline: 10px; }
    .lg-title { font-size: 34px; }
    .lg-subtitle { font-size: 15px; }
    .lg-pills { gap: 6px; }
    .lg-pills li { padding: 5px 9px; font-size: 11px; }
    .lg-card { padding: 17px 14px; }
    .lg-gheader { align-items: stretch; }
    .lg-gheader__phase { order: 3; width: 100%; flex-basis: 100%; padding-left: 3px; }
    .lg-banner__emoji { width: 44px; height: 44px; font-size: 27px; }
    .lg-section { padding: 12px; }
    .lg-player { gap: 6px; padding: 7px; }
    .lg-player__avatar { width: 31px; height: 31px; font-size: 12px; }
    .lg-player__name { font-size: 12px; }
    .lg-player__role { font-size: 10px; }
    .lg-myrole { height: 188px; }
    .lg-myrole__emoji { font-size: 54px; }
    .lg-myrole__desc { font-size: 12px; }
    .lg-recbar { align-items: stretch; flex-wrap: wrap; gap: 8px; }
}

@media (min-width: 1024px) {
    .lg-chatcol { position: sticky; top: 16px; align-self: start; max-height: calc(100vh - 32px); }
}

@media (prefers-reduced-motion: reduce) {
    .lg-bg__stars,
    .lg-bg__moon,
    .lg-bg__fog,
    .lg-rec-dot { animation: none !important; }
    .lg-card,
    .lg-chatcol,
    .lg-drawer-backdrop,
    .lg-chat-fab,
    .lg-myrole__card { transition-duration: .01ms !important; }
}

/* =====================================================================
   v1.2.0 — Narrator lobby inspired by the provided mobile reference
   ===================================================================== */
.lg-app--host-lobby {
    --lg-host-bg: #f8f5f0;
    --lg-host-card: #fffefd;
    --lg-host-text: #282426;
    --lg-host-muted: #888184;
    --lg-host-line: #e5e0dd;
    --lg-host-accent: #c20b43;
    --lg-host-accent-soft: #d48ba2;
    --lg-host-green: #249a62;
    min-height: 100vh;
    min-height: 100svh;
    padding: 0 0 calc(28px + env(safe-area-inset-bottom));
    overflow: visible;
    border-radius: 0;
    background:
        radial-gradient(430px 360px at 85% 5%, rgba(250,235,214,.82), transparent 68%),
        radial-gradient(460px 420px at 0% 62%, rgba(255,244,218,.62), transparent 66%),
        var(--lg-host-bg);
    color: var(--lg-host-text);
    font-family: var(--lg-font-ui);
}
.lg-app--host-lobby .lg-bg { display: none; }
.lg-app--host-lobby .lg-gheader {
    position: sticky;
    top: 0;
    z-index: 30;
    display: grid;
    grid-template-columns: minmax(116px, 1fr) auto auto auto;
    align-items: center;
    gap: 10px;
    min-height: 110px;
    padding: calc(18px + env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 18px max(16px, env(safe-area-inset-left));
    border: 0;
    border-bottom: 1px solid var(--lg-host-line);
    border-radius: 0;
    background: rgba(250,248,245,.94);
    box-shadow: none;
    backdrop-filter: blur(18px);
}
.lg-app--host-lobby .lg-gheader__room { min-width: 0; }
.lg-app--host-lobby .lg-tag {
    display: block;
    margin-bottom: 5px;
    color: #777173;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .27em;
}
.lg-app--host-lobby .lg-gheader__code {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--lg-host-text);
    box-shadow: none;
}
.lg-app--host-lobby .lg-gheader__code:hover { transform: none; border-color: transparent; }
.lg-app--host-lobby .lg-gheader__code strong {
    overflow: hidden;
    color: #171516;
    font-family: var(--lg-font-ui);
    font-size: clamp(27px, 8vw, 39px);
    font-weight: 750;
    letter-spacing: -.04em;
    line-height: 1;
    text-overflow: ellipsis;
}
.lg-app--host-lobby .lg-gheader__copy { display: grid; width: 19px; height: 19px; color: #777173; place-items: center; }
.lg-app--host-lobby .lg-gheader__copy svg { width: 18px; height: 18px; }
.lg-app--host-lobby .lg-gheader__connection {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 12px 14px;
    border: 1px solid #9ae4bb;
    border-radius: 999px;
    background: #d9fae6;
    color: #268353;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.lg-app--host-lobby .lg-gheader__connection-dot { width: 7px; height: 7px; border-radius: 50%; background: #22a960; }
.lg-app--host-lobby .lg-gheader__phase { display: none; }
.lg-app--host-lobby .lg-gheader__leave {
    margin: 0;
    padding: 13px 17px;
    border: 1px solid var(--lg-host-line);
    border-radius: 14px;
    background: rgba(255,255,255,.84);
    color: #2f2b2d;
    box-shadow: 0 3px 8px rgba(54,40,34,.03);
    font-size: 14px;
    font-weight: 600;
}
.lg-app--host-lobby .lg-chat-fab,
.lg-app--host-lobby .lg-drawer-backdrop,
.lg-app--host-lobby .lg-chatcol { display: none !important; }

.lg-host-lobby {
    width: min(100%, 720px);
    margin-inline: auto;
    padding: 0 max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));
    color: var(--lg-host-text);
    font-family: var(--lg-font-ui);
}
.lg-host-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 44px 0 27px;
    border-bottom: 1px solid var(--lg-host-line);
}
.lg-host-tab {
    position: relative;
    display: inline-flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 0 5px 16px;
    border: 0;
    background: transparent;
    color: #847d80;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
}
.lg-host-tab::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    border-radius: 3px 3px 0 0;
    background: transparent;
    content: '';
}
.lg-host-tab.is-active { color: #272326; }
.lg-host-tab.is-active::after { background: var(--lg-host-accent); }
.lg-host-tab__icon { display: grid; width: 18px; height: 18px; place-items: center; }
.lg-host-tab__icon svg { width: 18px; height: 18px; }
.lg-host-lobby__meta { margin-bottom: 18px; }
.lg-host-lobby__counter {
    margin-bottom: 13px;
    color: #6f696b;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .23em;
    text-transform: uppercase;
}
.lg-host-lobby__invite {
    position: relative;
    padding: 0 0 0 23px;
    border: 0;
    background: transparent;
    color: #948e90;
    cursor: pointer;
    font-size: 14px;
    text-align: left;
}
.lg-host-lobby__invite::before,
.lg-host-lobby__invite::after {
    position: absolute;
    width: 11px;
    height: 11px;
    border: 1.5px solid currentColor;
    border-radius: 2px;
    content: '';
}
.lg-host-lobby__invite::before { top: 1px; left: 0; }
.lg-host-lobby__invite::after { top: 5px; left: 5px; background: var(--lg-host-bg); }
.lg-host-lobby__content { display: grid; gap: 14px; }
.lg-host-card,
.lg-host-player,
.lg-host-summary,
.lg-host-note,
.lg-host-role-card,
.lg-host-tip {
    border: 1px solid var(--lg-host-line);
    border-radius: 17px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 5px 20px rgba(57,45,35,.035);
}
.lg-host-card { padding: 20px; }
.lg-host-card h3 { margin: 0; color: #2b2729; font-size: 16px; font-weight: 650; }
.lg-host-card p { margin: 3px 0 0; color: #999295; font-size: 14px; line-height: 1.35; }
.lg-host-bots__intro { display: flex; gap: 15px; align-items: center; }
.lg-host-bots__icon { display: grid; width: 26px; height: 26px; color: #5e52c8; flex: 0 0 auto; place-items: center; }
.lg-host-bots__icon svg { width: 25px; height: 25px; }
.lg-host-outline-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    margin-top: 16px;
    padding: 10px 19px;
    border: 1px solid #d9d3d1;
    border-radius: 14px;
    background: rgba(255,255,255,.74);
    color: #393436;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
}
.lg-host-outline-btn:disabled { cursor: not-allowed; opacity: .5; }
.lg-host-player {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 82px;
    padding: 16px;
}
.lg-host-player__avatar {
    display: grid;
    width: 49px;
    height: 49px;
    border-radius: 50%;
    background: #ece9e8;
    color: #6f686b;
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 700;
    place-items: center;
}
.lg-host-player--leader .lg-host-player__avatar { background: linear-gradient(145deg, #d5114d, #ab0036); color: #fff; font-size: 15px; }
.lg-host-player__body { min-width: 0; flex: 1; }
.lg-host-player__name { overflow: hidden; color: #312c2f; font-size: 17px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.lg-host-player__name small { margin-left: 7px; color: #8f888b; font-size: 13px; font-weight: 400; }
.lg-host-player__label { margin-top: 3px; color: #817a7d; font-size: 11px; font-weight: 600; letter-spacing: .21em; text-transform: uppercase; }
.lg-host-player__remove {
    padding: 8px;
    border: 0;
    background: transparent;
    color: #ae566d;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
}
.lg-host-role-search,
.lg-host-settings input[type="number"],
.lg-host-settings select {
    width: 100%;
    min-height: 48px;
    padding: 11px 14px;
    border: 1px solid #ddd7d4;
    border-radius: 11px;
    outline: none;
    background: rgba(255,255,255,.82);
    color: #393436;
    font: 14px var(--lg-font-ui);
}
.lg-host-role-search:focus,
.lg-host-settings input:focus,
.lg-host-settings select:focus { border-color: #d0839a; box-shadow: 0 0 0 3px rgba(194,11,67,.08); }
.lg-host-role-list { display: grid; gap: 9px; }
.lg-host-role-card {
    display: grid;
    grid-template-columns: 25px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 82px;
    padding: 11px 10px;
    border-radius: 12px;
}
.lg-host-role-card[hidden] { display: none; }
.lg-host-role-card__emoji { font-size: 19px; text-align: center; }
.lg-host-role-card__body { min-width: 0; }
.lg-host-role-card__heading { display: flex; min-width: 0; align-items: center; gap: 7px; flex-wrap: wrap; }
.lg-host-role-card__heading strong { overflow: hidden; color: #352f32; font-size: 13px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.lg-host-role-card p {
    display: -webkit-box;
    overflow: hidden;
    margin: 5px 0 0;
    color: #8f888b;
    font-size: 10px;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.lg-host-team { padding: 4px 7px; border-radius: 999px; font-size: 8px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.lg-host-team--village { background: #e2f8e9; color: #31835a; }
.lg-host-team--loups { background: #fbd6df; color: #ae204a; }
.lg-host-team--solo { background: #fff0bd; color: #a27012; }
.lg-host-role-stepper { display: grid; grid-template-columns: 28px 25px 28px; align-items: center; gap: 0; }
.lg-host-role-stepper button {
    display: grid;
    width: 28px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #9a9395;
    cursor: pointer;
    font-size: 17px;
    place-items: center;
}
.lg-host-role-stepper button:active { background: #f4eeec; color: var(--lg-host-accent); }
.lg-host-role-stepper span { color: #373235; font-size: 14px; font-weight: 650; text-align: center; }
.lg-host-tip { padding: 15px 16px; color: #696366; font-size: 12px; line-height: 1.5; }
.lg-host-settings { display: grid; gap: 15px; }
.lg-host-settings label { display: grid; gap: 7px; color: #6b6567; font-size: 12px; font-weight: 600; }
.lg-host-settings .lg-host-check { display: flex; align-items: center; gap: 9px; }
.lg-host-settings .lg-host-check input { accent-color: var(--lg-host-accent); }
.lg-host-summary { margin-top: 24px; padding: 20px 20px 16px; }
.lg-host-summary__eyebrow { color: #756e71; font-size: 11px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; }
.lg-host-summary h3 { margin: 8px 0 15px; color: #211e20; font-size: 30px; font-weight: 680; letter-spacing: -.05em; }
.lg-host-summary__rule { height: 1px; margin: 12px 0; background: #e8e2df; }
.lg-host-summary__row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 5px 0; color: #8b8487; font-size: 14px; }
.lg-host-summary__row strong { color: #484245; font-size: 14px; font-weight: 500; }
.lg-host-summary__row--total { color: #4b4548; font-weight: 600; }
.lg-host-summary__row--total strong { color: var(--lg-host-green); }
.lg-host-save { min-height: 17px; margin: 9px 3px 0; color: #867e81; font-size: 11px; text-align: right; }
.lg-host-save--ok { color: #498768; }
.lg-host-save--error { color: #b6254c; }
.lg-host-start {
    width: 100%;
    min-height: 66px;
    margin-top: 10px;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(180deg, #c8174e, #b30a40);
    color: #fff;
    cursor: pointer;
    font-size: 18px;
    font-weight: 650;
    box-shadow: 0 7px 18px rgba(179,10,64,.18);
}
.lg-host-start::before { margin-right: 10px; content: '▷'; font-size: 20px; }
.lg-host-start:disabled { background: #d38ea3; box-shadow: none; cursor: not-allowed; opacity: .9; }
.lg-host-start__hint { margin: 8px 0 0; color: #a16c7c; font-size: 12px; text-align: center; }
.lg-host-note { margin-top: 20px; padding: 19px 20px; color: #686164; }
.lg-host-note strong { color: #4d4749; font-size: 14px; }
.lg-host-note p { margin: 8px 0 0; color: #8f888b; font-size: 13px; line-height: 1.55; }

@media (max-width: 430px) {
    .lg-app--host-lobby .lg-gheader { grid-template-columns: minmax(94px,1fr) auto auto auto; gap: 7px; min-height: 102px; padding-inline: 14px; }
    .lg-app--host-lobby .lg-gheader__connection { gap: 5px; padding: 10px 9px; font-size: 10px; }
    .lg-app--host-lobby .lg-gheader__leave { padding: 11px 13px; font-size: 13px; }
    .lg-host-lobby { padding-inline: 16px; }
    .lg-host-tabs { margin-top: 38px; }
    .lg-host-tab { gap: 7px; font-size: 13px; }
    .lg-host-card { padding: 17px; }
    .lg-host-role-card { grid-template-columns: 22px minmax(0, 1fr) 81px; gap: 7px; padding-inline: 8px; }
    .lg-host-role-card__emoji { font-size: 17px; }
    .lg-host-role-card__heading { gap: 5px; }
    .lg-host-role-card__heading strong { font-size: 12px; }
    .lg-host-team { padding: 3px 5px; font-size: 7px; }
    .lg-host-role-stepper { grid-template-columns: 27px 23px 27px; }
}

@media (min-width: 721px) {
    .lg-app--host-lobby .lg-gheader { padding-inline: max(24px, calc((100vw - 720px) / 2)); }
    .lg-host-lobby { padding-inline: 0; }
}

/* =====================================================================
   v1.3.0 — Light mobile application shell, narrator live dashboard and
   voice-note drawer. The lobby styles above remain the source of truth
   for role configuration; these overrides align the full experience.
   ===================================================================== */

:root {
    --lg-app-cream: #fbf8f3;
    --lg-app-paper: #fffefd;
    --lg-app-ink: #201d1e;
    --lg-app-muted: #817a7d;
    --lg-app-line: #e6e0dc;
    --lg-app-red: #a91e3f;
    --lg-app-red-2: #c32049;
    --lg-app-pink: #f9e1e7;
    --lg-app-green: #4a986d;
    --lg-app-violet: #4139aa;
    --lg-app-orange: #ca812a;
}

/* ---------------- Landing page -------------------------------------- */
.lg-app--landing {
    min-height: 100vh;
    min-height: 100svh;
    padding: 0;
    border-radius: 0;
    overflow: hidden;
    background:
        radial-gradient(100% 42% at 100% 0%, rgba(237,217,219,.42), transparent 66%),
        radial-gradient(95% 34% at 0% 92%, rgba(251,238,215,.55), transparent 70%),
        var(--lg-app-cream);
    color: var(--lg-app-ink);
    font-family: var(--lg-font-ui);
}
.lg-app--landing .lg-bg { display: none; }
.lg-screen--home { min-height: 100vh; min-height: 100svh; }
.lg-home-brand,
.lg-home-main { width: min(100% - 48px, 640px); margin-inline: auto; }
.lg-home-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-top: max(28px, env(safe-area-inset-top));
    color: #1f1c1d;
    font-size: 23px;
    font-weight: 760;
    letter-spacing: -.04em;
}
.lg-home-brand__mark {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(145deg, #bd2348, #9d1537);
    color: #fff;
    box-shadow: 0 8px 18px rgba(169,30,63,.23);
}
.lg-home-brand__mark svg { width: 24px; height: 24px; }
.lg-home-main { padding: 76px 0 52px; }
.lg-home-edition,
.lg-home-card__eyebrow,
.lg-home-label {
    margin: 0;
    color: #716b6c;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .22em;
    line-height: 1.35;
    text-transform: uppercase;
}
.lg-home-title {
    margin: 30px 0 28px;
    color: #1c191a;
    font-size: clamp(56px, 16vw, 88px);
    font-weight: 790;
    letter-spacing: -.085em;
    line-height: .92;
}
.lg-home-title em { display: block; color: #bd274b; font-style: normal; }
.lg-home-intro {
    max-width: 590px;
    margin: 0;
    color: #5d5759;
    font-size: 19px;
    line-height: 1.65;
}
.lg-home-actions { display: grid; gap: 13px; width: min(100%, 270px); margin-top: 48px; }
.lg-home-btn {
    display: inline-flex;
    min-height: 62px;
    align-items: center;
    justify-content: center;
    padding: 14px 20px;
    border: 1px solid #dcd6d3;
    border-radius: 16px;
    background: rgba(255,255,255,.45);
    color: #2a2627;
    cursor: pointer;
    font-size: 17px;
    font-weight: 650;
    line-height: 1.15;
    text-align: center;
    transition: transform .16s ease, box-shadow .18s ease, background .18s ease;
}
.lg-home-btn:active { transform: scale(.98); }
.lg-home-btn--primary {
    border-color: #a91e3f;
    background: linear-gradient(180deg, #b82448, #a21b3b);
    color: #fff;
    box-shadow: 0 9px 19px rgba(169,30,63,.18);
}
.lg-home-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin: 72px 0 60px;
}
.lg-home-stats div { min-width: 0; }
.lg-home-stats dt {
    color: #211e1f;
    font-size: clamp(34px, 10vw, 50px);
    font-weight: 790;
    letter-spacing: -.08em;
    line-height: 1;
}
.lg-home-stats dd {
    width: fit-content;
    margin: 6px 0 0;
    padding-top: 5px;
    border-top: 1px solid #888181;
    color: #777071;
    font-size: 12px;
    font-weight: 560;
    letter-spacing: .22em;
    line-height: 1.3;
    text-transform: uppercase;
}
.lg-home-card {
    padding: 31px 28px 29px;
    border: 1px solid #e5dfdc;
    border-radius: 23px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 11px 25px rgba(80,58,51,.06);
}
.lg-home-card[hidden] { display: none; }
.lg-home-card h2 {
    margin: 14px 0 0;
    color: #211e1f;
    font-size: clamp(36px, 11vw, 56px);
    font-weight: 770;
    letter-spacing: -.075em;
    line-height: 1;
}
.lg-home-card__rule { height: 1px; margin: 31px 0; background: #ebe6e3; }
.lg-home-card p:not(.lg-home-card__eyebrow) { margin: 0; color: #817a7d; font-size: 16px; line-height: 1.55; }
.lg-home-card__buttons { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .88fr); gap: 13px; margin-top: 29px; }
.lg-home-label { display: block; width: fit-content; margin: 0 0 13px; padding-top: 7px; border-top: 1px solid #787172; }
.lg-home-input {
    width: 100%;
    min-height: 70px;
    margin: 0 0 27px;
    padding: 15px 18px;
    border: 2px solid #ddd9d6;
    border-radius: 17px;
    outline: none;
    background: rgba(253,251,248,.86);
    color: #262223;
    font: 20px var(--lg-font-ui);
    transition: border-color .16s ease, box-shadow .16s ease;
}
.lg-home-input:focus { border-color: #9e2a47; box-shadow: 0 0 0 5px rgba(169,30,63,.11); }
.lg-home-input--code { letter-spacing: .24em; text-transform: uppercase; }
.lg-app--landing .lg-error { color: #a91e3f; font-family: var(--lg-font-ui); }

/* ---------------- Shared light game shell --------------------------- */
.lg-app--live-game,
.lg-app--host-stage {
    min-height: 100vh;
    min-height: 100svh;
    border-radius: 0;
    background:
        radial-gradient(100% 40% at 100% 0%, rgba(219,217,248,.5), transparent 70%),
        radial-gradient(90% 35% at 0% 100%, rgba(251,237,216,.42), transparent 72%),
        #f9f7f6;
    color: var(--lg-app-ink);
    font-family: var(--lg-font-ui);
}
.lg-app--live-game .lg-bg,
.lg-app--host-stage .lg-bg { display: none; }
.lg-app--live-game .lg-section,
.lg-app--live-game .lg-card,
.lg-app--live-game .lg-player,
.lg-app--live-game .lg-banner {
    border-color: var(--lg-app-line);
    background: rgba(255,255,255,.88);
    color: var(--lg-app-ink);
    box-shadow: 0 6px 18px rgba(73,55,50,.04);
}
.lg-app--live-game .lg-dim { color: var(--lg-app-muted); }
.lg-app--live-game .lg-gheader,
.lg-app--host-lobby .lg-gheader {
    border: 0;
    border-bottom: 1px solid var(--lg-app-line);
    border-radius: 0;
    background: rgba(251,248,243,.95);
    color: var(--lg-app-ink);
    box-shadow: none;
    backdrop-filter: blur(16px);
}
.lg-app--live-game .lg-gheader__code,
.lg-app--host-lobby .lg-gheader__code { color: #252122; }
.lg-app--live-game .lg-gheader__copy,
.lg-app--host-lobby .lg-gheader__copy { color: #898183; }
.lg-app--live-game .lg-gheader__connection,
.lg-app--host-lobby .lg-gheader__connection {
    border-color: #b9e8cc;
    background: #dcf8e6;
    color: #377f58;
}
.lg-app--live-game .lg-gheader__connection-dot,
.lg-app--host-lobby .lg-gheader__connection-dot { background: #3d9c68; }
.lg-app--live-game .lg-gheader__leave,
.lg-app--host-lobby .lg-gheader__leave {
    border: 1px solid #dfd9d6;
    background: rgba(255,255,255,.86);
    color: #393435;
}

/* ---------------- Narrator reveal and live screens ------------------ */
.lg-app--host-stage { padding: 0 16px calc(84px + env(safe-area-inset-bottom)); }
.lg-app--host-stage .lg-gheader { display: none; }
.lg-app--host-stage .lg-glayout { display: block; margin: 0; }
.lg-app--host-stage .lg-col--left { display: none; }
.lg-host-stage { width: min(100%, 720px); margin-inline: auto; }
.lg-host-stage--reveal { width: 100%; }
.lg-reveal-stage {
    display: flex;
    min-height: 100vh;
    min-height: 100svh;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 36px 18px 92px;
    color: #221e1f;
    text-align: center;
}
.lg-reveal-stage__crown { width: 62px; height: 62px; color: var(--lg-app-orange); }
.lg-reveal-stage__crown svg { width: 100%; height: 100%; }
.lg-reveal-stage__eyebrow {
    margin: 14px 0 27px;
    padding-top: 8px;
    border-top: 1px solid #827a7c;
    color: #787174;
    font-size: 16px;
    font-weight: 580;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.lg-reveal-stage h2 { max-width: 660px; margin: 0; font-size: clamp(47px, 12vw, 71px); font-weight: 780; letter-spacing: -.075em; line-height: 1; }
.lg-reveal-stage p:not(.lg-reveal-stage__eyebrow) { max-width: 610px; margin: 32px 0 42px; color: #5c5658; font-size: 20px; line-height: 1.45; }
.lg-reveal-stage__button {
    width: min(100%, 610px);
    min-height: 78px;
    border: 0;
    border-radius: 17px;
    background: linear-gradient(180deg, #ac2142, #9e1838);
    color: #fff;
    cursor: pointer;
    font-size: 20px;
    font-weight: 650;
    box-shadow: 0 11px 22px rgba(159,25,57,.18);
}
.lg-live-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: max(19px, env(safe-area-inset-top)) 0 17px;
    border-bottom: 1px solid #e0dcdf;
}
.lg-live-header > div { position: relative; padding-left: 44px; }
.lg-live-header > div::before {
    position: absolute;
    top: 50%;
    left: 0;
    display: grid;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    background: #aa2141;
    color: #fff;
    content: '☾';
    font-size: 21px;
    place-items: center;
    transform: translateY(-50%);
}
.lg-live-header__eyebrow { display: block; color: #81797c; font-size: 10px; font-weight: 650; letter-spacing: .17em; text-transform: uppercase; }
.lg-live-header strong { display: block; margin-top: 4px; color: #251f21; font-size: 17px; }
.lg-live-pill,
.lg-gheader__connection {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 10px;
    border: 1px solid #b9e8cc;
    border-radius: 999px;
    background: #dcf8e6;
    color: #377f58;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.lg-live-pill i { width: 7px; height: 7px; border-radius: 50%; background: #3d9c68; }
.lg-live-alive { margin: 18px 0 15px; color: #70696b; font-size: 11px; font-weight: 650; letter-spacing: .18em; text-transform: uppercase; }
.lg-live-players { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.lg-live-player {
    position: relative;
    display: flex;
    min-height: 124px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 7px 11px;
    border: 1px solid #e1dfe5;
    border-radius: 13px;
    background: rgba(255,255,255,.93);
    color: #241f21;
    text-align: center;
    box-shadow: 0 4px 11px rgba(54,47,79,.035);
}
.lg-live-player.is-active { border: 3px solid #c27b2a; box-shadow: 0 0 0 2px rgba(194,123,42,.11); }
.lg-live-player.is-dead { opacity: .5; filter: grayscale(.65); }
.lg-live-player__corner { position: absolute; top: 8px; left: 9px; color: #4c42ae; font-size: 12px; }
.lg-live-player__avatar { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 50%; background: linear-gradient(150deg, #4c43c2, #31299a); color: #fff; font-size: 12px; font-weight: 760; }
.lg-live-player__avatar.is-host { background: linear-gradient(150deg, #d1912a, #bf7323); }
.lg-live-player strong { overflow: hidden; max-width: 100%; font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.lg-live-player small { color: #bd7d24; font-size: 10px; }
.lg-live-role { display: inline-flex; max-width: 100%; align-items: center; justify-content: center; padding: 4px 8px; border-radius: 999px; font-size: 9px; font-weight: 650; line-height: 1.15; text-transform: uppercase; }
.lg-live-role--village { background: #ddf8e5; color: #358359; }
.lg-live-role--loups { background: #f7d5de; color: #aa294a; }
.lg-live-role--solo { background: #fff0bc; color: #a66e11; }
.lg-narrator-control {
    margin-top: 20px;
    padding: 17px 15px 16px;
    border: 1px solid #e5dfdc;
    border-radius: 17px;
    background: rgba(255,255,255,.93);
    box-shadow: 0 7px 17px rgba(63,54,66,.04);
}
.lg-narrator-control__eyebrow { margin: 0; color: #71696c; font-size: 10px; font-weight: 650; letter-spacing: .22em; text-transform: uppercase; }
.lg-narrator-control__intro,
.lg-narrator-control p:not(.lg-narrator-control__eyebrow) { margin: 10px 0 13px; color: #777074; font-size: 12px; line-height: 1.42; }
.lg-narrator-control h3 { margin: 13px 0 0; color: #272224; font-size: 19px; }
.lg-narrator-roles { display: grid; gap: 8px; }
.lg-narrator-role {
    display: flex;
    min-height: 48px;
    align-items: center;
    gap: 7px;
    padding: 9px 10px;
    border: 1px solid #e5dfdc;
    border-radius: 11px;
    background: #fffefa;
    color: #282325;
    cursor: pointer;
    text-align: left;
}
.lg-narrator-role.is-active { border-color: #f3d4dc; background: #fff8fa; }
.lg-narrator-role__label { font-size: 12px; font-weight: 650; }
.lg-narrator-role small { min-width: 0; overflow: hidden; color: #9a9295; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.lg-narrator-role em { margin-left: auto; color: #ad2444; font-size: 9px; font-style: normal; font-weight: 750; text-transform: uppercase; }
.lg-narrator-control__buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 13px; }
.lg-live-outline,
.lg-live-primary { min-height: 52px; padding: 10px; border-radius: 11px; cursor: pointer; font-size: 13px; font-weight: 630; }
.lg-live-outline { border: 1px solid #ded8d6; background: #fffefa; color: #443d3f; }
.lg-live-primary { border: 1px solid #a91e3f; background: linear-gradient(180deg, #ae2142, #9e1838); color: #fff; }

/* ---------------- Light chat drawer -------------------------------- */
@media (max-width: 1023px) {
    .lg-app--host-stage .lg-chat-fab {
        right: max(18px, env(safe-area-inset-right));
        left: auto;
        display: inline-flex;
        width: auto;
        min-width: 134px;
        height: 48px;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 0 16px;
        border: 0;
        border-radius: 999px;
        background: linear-gradient(180deg, #b22445, #9e1838);
        color: #fff;
        box-shadow: 0 9px 18px rgba(159,25,57,.22);
    }
    .lg-app--host-stage .lg-chat-fab__label { display: inline; font-size: 13px; font-weight: 650; }
    .lg-app--host-stage .lg-chat-fab__icon { width: 16px; height: 16px; }
    .lg-chatcol {
        gap: 0;
        max-height: min(88vh, 760px);
        max-height: min(88svh, 760px);
        padding: 0 0 calc(10px + env(safe-area-inset-bottom));
        border-color: #e8e3e1;
        border-radius: 28px 28px 0 0;
        background: #fffdfa;
        color: #272224;
        box-shadow: 0 -20px 56px rgba(32,28,29,.18);
    }
    .lg-chat-sheet__head {
        min-height: 86px;
        padding: 18px 23px 15px 29px;
        border-bottom: 1px solid #eee8e5;
    }
    .lg-chat-sheet__title { gap: 11px; color: #252123; font-family: var(--lg-font-ui); letter-spacing: 0; }
    .lg-chat-sheet__title strong { display: block; font-size: 22px; font-weight: 760; line-height: 1.1; }
    .lg-chat-sheet__title small { display: block; margin-top: 4px; color: #938b8e; font-size: 14px; font-weight: 450; }
    .lg-chat-sheet__accent { width: 5px; height: 60px; border-radius: 5px; background: #b32749; }
    .lg-chat-sheet__close { border: 0; background: transparent; color: #201d1e; }
    .lg-chat-sheet__timer {
        padding: 13px 28px;
        background: #f9dfe6;
        color: #a62445;
        font-size: 16px;
        font-weight: 650;
    }
    .lg-chat-sheet__channels { margin: 0; border: 0; border-radius: 0; background: #fffdfa; box-shadow: none; }
    .lg-chatcol .lg-section { padding: 9px 18px; }
    .lg-chat { min-height: 330px; max-height: 50vh; max-height: 50svh; padding: 18px 23px; background: #fffdfa; }
    .lg-chat-empty { display: grid; min-height: 230px; margin: 0; place-items: center; color: #8f888b !important; font-size: 17px; line-height: 1.45; text-align: center; }
    .lg-msg { border-color: #ece5e2; background: #f6f2ef; color: #2b2628; }
    .lg-msg--me { border-color: #efd0d8; background: #fbe8ed; }
    .lg-msg__head { color: #817a7d; }
    .lg-composer { padding: 12px 20px 4px; border-top: 1px solid #eee8e5; background: #fff; }
    .lg-composer__input-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 9px; align-items: center; }
    .lg-composer textarea,
    .lg-app--live-game .lg-composer textarea {
        min-height: 57px;
        max-height: 104px;
        padding: 16px 18px;
        border: 1px solid #e2dcda;
        border-radius: 999px;
        background: #fbf8f5;
        color: #332e30;
        resize: none;
    }
    .lg-composer textarea::placeholder { color: #aaa2a5; }
    .lg-composer__voice,
    .lg-composer__send {
        display: grid;
        width: 57px;
        height: 57px;
        padding: 0;
        border: 0;
        border-radius: 50%;
        background: #a91e3f;
        color: #fff;
        cursor: pointer;
        place-items: center;
    }
    .lg-composer__send { width: 43px; height: 43px; background: #dfc0c8; color: #8d2942; }
    .lg-composer__send[hidden] { display: none; }
    .lg-composer__voice svg { width: 25px; height: 25px; }
    .lg-composer__send svg { width: 20px; height: 20px; }
    .lg-composer__hint { margin: 7px 8px 0; font-size: 10px; }
    .lg-composer__readonly { margin: 8px; color: #948c8f !important; font-size: 13px; text-align: center; }
    .lg-recbar { margin-top: 9px; border-color: #efcad4; background: #fbe5ea; color: #8f2740; }
    .lg-drawer-backdrop { background: rgba(31,26,28,.38); backdrop-filter: blur(4px); }
}

/* ---------------- Player side light cards --------------------------- */
.lg-app--live-game:not(.lg-app--host-stage) { padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
.lg-app--live-game:not(.lg-app--host-stage) .lg-section h3 { color: #2b2628; }
.lg-app--live-game:not(.lg-app--host-stage) .lg-player__avatar { background: #ece7e5; color: #595154; }
.lg-app--live-game:not(.lg-app--host-stage) .lg-player__name { color: #302a2c; }
.lg-app--live-game:not(.lg-app--host-stage) .lg-player__role { color: #81797c; }
.lg-app--live-game:not(.lg-app--host-stage) .lg-chat-fab {
    border: 0;
    background: linear-gradient(180deg, #b22445, #9e1838);
    color: #fff;
    box-shadow: 0 9px 18px rgba(159,25,57,.22);
}

@media (max-width: 430px) {
    .lg-home-brand,
    .lg-home-main { width: min(100% - 48px, 640px); }
    .lg-home-brand { gap: 12px; font-size: 21px; }
    .lg-home-brand__mark { width: 45px; height: 45px; }
    .lg-home-main { padding-top: 70px; }
    .lg-home-title { font-size: 60px; }
    .lg-home-intro { font-size: 17px; line-height: 1.55; }
    .lg-home-actions { width: 228px; margin-top: 43px; }
    .lg-home-btn { min-height: 58px; border-radius: 14px; font-size: 16px; }
    .lg-home-stats { gap: 12px; margin: 65px 0 53px; }
    .lg-home-stats dt { font-size: 41px; }
    .lg-home-stats dd { font-size: 10px; letter-spacing: .19em; }
    .lg-home-card { padding: 27px 23px 25px; border-radius: 21px; }
    .lg-home-card h2 { font-size: 43px; }
    .lg-home-card__buttons { gap: 10px; }
    .lg-home-input { min-height: 65px; font-size: 18px; }
    .lg-app--host-stage { padding-inline: 15px; }
    .lg-live-header { padding-top: max(16px, env(safe-area-inset-top)); }
    .lg-live-player { min-height: 124px; }
    .lg-chat { min-height: 300px; }
}

@media (min-width: 1024px) {
    .lg-app--landing .lg-home-main { padding-top: 88px; }
    .lg-app--host-stage .lg-chatcol { display: none; }
    .lg-app--host-stage .lg-chatcol.is-open {
        position: fixed;
        right: 24px;
        bottom: 24px;
        left: auto;
        z-index: 1002;
        display: flex;
        width: 430px;
        max-height: min(86vh, 760px);
        padding: 0 0 14px;
        border: 1px solid #e8e3e1;
        border-radius: 24px;
        background: #fffdfa;
        color: #272224;
        box-shadow: 0 18px 56px rgba(32,28,29,.18);
    }
    .lg-app--host-stage .lg-chat-fab {
        position: fixed;
        right: 24px;
        bottom: 24px;
        left: auto;
        z-index: 1000;
        display: inline-flex;
        min-height: 50px;
        align-items: center;
        gap: 8px;
        padding: 0 18px;
        border: 0;
        border-radius: 999px;
        background: #a91e3f;
        color: #fff;
        cursor: pointer;
    }
    .lg-app--host-stage .lg-chat-fab__label { display: inline; }
}

/* Small consistency fixes for the 1.3.0 chat launcher. */
.lg-chat-fab__label { display: none; }
@media (max-width: 1023px) {
    .lg-app--host-stage .lg-chat-fab__label { display: inline; }
}
@media (min-width: 1024px) {
    .lg-app--host-stage .lg-chatcol {
        position: fixed;
        right: 24px;
        bottom: 24px;
        left: auto;
        z-index: 1002;
        display: flex;
        width: 430px;
        max-height: min(86vh, 760px);
        padding: 0 0 14px;
        border: 1px solid #e8e3e1;
        border-radius: 24px;
        background: #fffdfa;
        color: #272224;
        box-shadow: 0 18px 56px rgba(32,28,29,.18);
    }
    .lg-app--host-stage .lg-chat-fab { display: none; }
}


/* =====================================================================
   v1.4.0 — joined-player flow + robust voice composer
   ===================================================================== */
.lg-app--player-lobby,
.lg-app--player-reveal,
.lg-app--player-stage {
    min-height: 100vh;
    min-height: 100svh;
    padding: 0 0 calc(28px + env(safe-area-inset-bottom));
    overflow: visible;
    border-radius: 0;
    background:
        radial-gradient(500px 380px at 95% 3%, rgba(239,238,255,.86), transparent 68%),
        radial-gradient(430px 420px at 0% 70%, rgba(255,244,218,.42), transparent 66%),
        #fbf8f3;
    color: #292426;
    font-family: var(--lg-font-ui);
}
.lg-app--player-lobby .lg-bg,
.lg-app--player-reveal .lg-bg,
.lg-app--player-stage .lg-bg { display:none; }
.lg-app--player-lobby .lg-gheader,
.lg-app--player-stage .lg-gheader {
    position:sticky; top:0; z-index:30; display:grid;
    grid-template-columns:minmax(110px,1fr) auto auto; align-items:center; gap:9px;
    min-height:108px; padding:calc(17px + env(safe-area-inset-top)) 16px 17px;
    border:0; border-bottom:1px solid #e6e1df; border-radius:0;
    background:rgba(251,249,246,.95); color:#252123; box-shadow:none; backdrop-filter:blur(18px);
}
.lg-app--player-lobby .lg-tag,
.lg-app--player-stage .lg-tag { display:block; margin-bottom:5px; color:#7f777a; font-size:10px; letter-spacing:.24em; }
.lg-app--player-lobby .lg-gheader__code,
.lg-app--player-stage .lg-gheader__code { display:inline-flex; align-items:center; gap:7px; padding:0; border:0; background:transparent; color:#1e1a1c; }
.lg-app--player-lobby .lg-gheader__code strong,
.lg-app--player-stage .lg-gheader__code strong { font-size:clamp(26px,8vw,38px); font-weight:780; letter-spacing:-.04em; }
.lg-app--player-lobby .lg-gheader__copy,
.lg-app--player-stage .lg-gheader__copy { width:18px; height:18px; color:#81797b; }
.lg-app--player-lobby .lg-gheader__copy svg,
.lg-app--player-stage .lg-gheader__copy svg { width:18px; height:18px; }
.lg-app--player-lobby .lg-gheader__connection,
.lg-app--player-stage .lg-gheader__connection { display:inline-flex; align-items:center; gap:7px; padding:12px 14px; border:1px solid #a8e8c2; border-radius:999px; background:#ddfae8; color:#278454; font-size:12px; font-weight:650; text-transform:uppercase; }
.lg-app--player-lobby .lg-gheader__connection-dot,
.lg-app--player-stage .lg-gheader__connection-dot { width:7px; height:7px; border-radius:50%; background:#24985c; }
.lg-app--player-lobby .lg-gheader__phase,
.lg-app--player-stage .lg-gheader__phase { display:none; }
.lg-app--player-lobby .lg-gheader__leave,
.lg-app--player-stage .lg-gheader__leave { padding:13px 17px; border:1px solid #e0dad8; border-radius:14px; background:#fffefa; color:#302b2d; font-weight:650; }
.lg-player-stage { width:min(100%,720px); margin-inline:auto; padding:0 16px; }
.lg-player-lobby__tabs { margin:43px 0 25px; border-bottom:1px solid #e3dedc; }
.lg-player-lobby__tab { display:inline-flex; min-width:160px; padding:0 0 16px; border-bottom:3px solid #bf1d49; color:#282325; font-size:17px; }
.lg-player-lobby__meta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:19px; color:#817a7c; font-size:14px; }
.lg-player-lobby__meta > span { font-size:12px; font-weight:650; letter-spacing:.17em; text-transform:uppercase; }
.lg-player-lobby__invite { padding:0; border:0; background:transparent; color:#90898b; cursor:pointer; font-size:13px; }
.lg-player-lobby__list { display:grid; gap:13px; }
.lg-player-lobby__card { display:flex; min-height:92px; align-items:center; gap:18px; padding:17px 20px; border:1px solid #e6e0de; border-radius:17px; background:rgba(255,255,255,.9); box-shadow:0 6px 18px rgba(55,43,35,.035); }
.lg-player-lobby__avatar { display:grid; width:55px; height:55px; flex:0 0 auto; place-items:center; border:1px solid #ddd5d1; border-radius:50%; background:#f4eee5; color:#242021; font-size:24px; }
.lg-player-lobby__avatar.is-host { border:0; background:linear-gradient(160deg,#c71043,#a80536); color:white; }
.lg-player-lobby__card strong { display:block; color:#292426; font-size:21px; font-weight:560; }
.lg-player-lobby__card small { display:block; margin-top:4px; color:#6f696b; font-size:13px; letter-spacing:.17em; text-transform:uppercase; }
.lg-player-lobby__summary,
.lg-player-lobby__wait { margin-top:32px; padding:26px 36px; border:1px solid #e6e0de; border-radius:23px; background:rgba(255,255,255,.9); box-shadow:0 7px 24px rgba(55,43,35,.045); }
.lg-player-lobby__summary span { display:block; color:#827a7d; font-size:14px; letter-spacing:.17em; text-transform:uppercase; }
.lg-player-lobby__summary strong { display:block; margin-top:17px; color:#242022; font-size:40px; letter-spacing:-.06em; }
.lg-player-lobby__wait { text-align:center; }
.lg-player-lobby__mic { color:#878083; font-size:42px; }
.lg-player-lobby__wait h2 { margin:13px 0 8px; color:#242022; font-size:29px; }
.lg-player-lobby__wait p { margin:0; color:#81797c; font-size:18px; line-height:1.45; }
.lg-app--player-lobby .lg-chat-fab,
.lg-app--player-lobby .lg-chatcol,
.lg-app--player-lobby .lg-drawer-backdrop,
.lg-app--player-reveal .lg-chat-fab,
.lg-app--player-reveal .lg-chatcol,
.lg-app--player-reveal .lg-drawer-backdrop { display:none !important; }
.lg-app--player-reveal .lg-gheader { display:none; }
.lg-app--player-reveal .lg-player-stage { min-height:100vh; min-height:100svh; display:grid; place-items:center; padding:35px 16px; }
.lg-player-reveal-stage { width:min(100%,520px); text-align:center; }
.lg-player-reveal-stage__eyebrow { display:inline-block; margin:0 0 42px; padding-top:7px; border-top:1px solid #847c7e; color:#776f72; font-size:17px; letter-spacing:.18em; text-transform:uppercase; }
.lg-secret-card { width:100%; min-height:520px; border:3px solid #a62144; border-radius:28px; background:#fffefb; color:#282325; box-shadow:0 18px 38px rgba(161,31,67,.09); }
.lg-secret-card--hidden { display:grid; place-content:center; gap:20px; padding:30px; background:repeating-linear-gradient(135deg,#fffefb 0 18px,#f8dbe2 18px 30px); cursor:pointer; }
.lg-secret-card__eye { color:#b01e45; font-size:45px; }
.lg-secret-card--hidden strong { white-space:pre-line; font-size:44px; line-height:1.12; }
.lg-secret-card--hidden small { color:#8d8587; font-size:16px; letter-spacing:.16em; text-transform:uppercase; }
.lg-secret-card--front { display:flex; min-height:570px; flex-direction:column; align-items:center; justify-content:center; padding:36px 38px; }
.lg-secret-card__team { padding-top:8px; border-top:1px solid #817a7c; color:#746c6f; font-size:16px; letter-spacing:.2em; text-transform:uppercase; }
.lg-secret-card__emoji { margin:44px 0 13px; font-size:88px; }
.lg-secret-card--front h2 { margin:0; color:#211d1f; font-size:53px; letter-spacing:-.065em; }
.lg-secret-card--front p { margin:31px 0 0; padding-top:28px; border-top:1px solid #ede5e3; color:#575053; font-size:23px; line-height:1.45; }
.lg-secret-card__confirm { width:calc(100% - 10px); min-height:82px; margin-top:36px; border:0; border-radius:18px; background:linear-gradient(180deg,#b32449,#991637); color:#fff; box-shadow:0 12px 22px rgba(155,22,55,.19); cursor:pointer; font-size:22px; font-weight:650; }
.lg-secret-card__waiting { margin:28px 8px 0; color:#746d6f; font-size:17px; line-height:1.45; }
.lg-app--player-stage .lg-glayout { width:min(100%,720px); grid-template-columns:1fr; padding:18px 16px 0; }
.lg-app--player-stage .lg-section { border-color:#e5dfdd; background:rgba(255,255,255,.88); color:#2b2628; box-shadow:0 5px 18px rgba(55,43,35,.035); }
.lg-app--player-stage .lg-banner { border-color:#e5dfdd; background:#fffefd; color:#292426; }
.lg-app--player-stage .lg-dim { color:#8a8285; }
.lg-chat-sheet__context { padding:16px 28px 18px; border-bottom:1px solid #eed7dd; background:#f9dfe6; color:#a42445; }
.lg-chat-sheet__context[hidden] { display:none; }
.lg-chat-sheet__targets { display:flex; flex-wrap:wrap; gap:9px; margin-top:12px; }
.lg-chat-sheet__target { padding:9px 15px; border:1px solid #ecc5d0; border-radius:999px; background:#fff; color:#a12948; cursor:pointer; font-size:14px; }
.lg-msg__audio { display:grid; gap:5px; }
.lg-msg__audio audio { display:block; width:100%; }
.lg-msg__audio small { color:#817a7d; font-size:11px; }
.lg-recbar { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:12px; border:1px solid #efcad4; border-radius:16px; background:#fbe5ea; color:#8f2740; }
.lg-recbar__body { display:grid; gap:3px; }
.lg-recbar__body strong { font-size:13px; }
.lg-recbar__cancel,
.lg-recbar__send { min-height:40px; padding:8px 11px; border-radius:11px; cursor:pointer; font-weight:650; }
.lg-recbar__cancel { border:1px solid #e4bdc8; background:#fff; color:#8f2740; }
.lg-recbar__send { border:1px solid #a91e3f; background:#a91e3f; color:#fff; }
.lg-recbar--sending { display:flex; min-height:62px; justify-content:center; }
@media (max-width:430px) {
    .lg-player-stage { padding-inline:15px; }
    .lg-player-lobby__card { min-height:82px; padding:15px 17px; }
    .lg-player-lobby__card strong { font-size:18px; }
    .lg-player-lobby__summary,.lg-player-lobby__wait { padding:24px 25px; }
    .lg-secret-card { min-height:470px; }
    .lg-secret-card--hidden strong { font-size:37px; }
    .lg-secret-card--front { min-height:510px; padding:30px; }
    .lg-secret-card--front h2 { font-size:44px; }
    .lg-secret-card--front p { font-size:20px; }
    .lg-recbar { grid-template-columns:auto minmax(0,1fr); }
    .lg-recbar__cancel,.lg-recbar__send { width:100%; }
}


/* =====================================================================
   v1.4.1 — mobile chat drawer stacking regression fix
   The drawer lives inside .lg-glayout while the backdrop is a sibling of
   that layout. A z-index on .lg-glayout created a stacking context and kept
   the drawer behind the blur layer on narrow screens. Let the fixed drawer
   join the screen stacking context directly so it always remains sharp and
   interactive above its backdrop.
   ===================================================================== */
@media (max-width: 1023px) {
    .lg-glayout {
        z-index: auto;
    }
    .lg-chatcol {
        z-index: 1202;
        pointer-events: none;
        isolation: isolate;
        opacity: 1;
        filter: none;
        -webkit-filter: none;
    }
    .lg-chatcol.is-open {
        z-index: 1202;
        pointer-events: auto;
        visibility: visible;
        opacity: 1;
        filter: none;
        -webkit-filter: none;
    }
    .lg-drawer-backdrop {
        z-index: 1201;
        -webkit-backdrop-filter: blur(4px);
        backdrop-filter: blur(4px);
    }
    .lg-chat-fab {
        z-index: 1200;
    }
}


/* v1.5.0 — shared private channels, role wake-up notifications and reliable vocals */
.lg-turn-callout { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; align-items:center; margin:14px 0; padding:16px; border:1px solid #eadde0; border-radius:18px; background:#fffdfa; box-shadow:0 10px 26px rgba(72,43,51,.08); }
.lg-turn-callout[hidden] { display:none; }
.lg-turn-callout__icon { display:grid; width:42px; height:42px; place-items:center; border-radius:50%; background:#f8dfe6; font-size:21px; }
.lg-turn-callout__body strong { display:block; color:#241f21; font-size:18px; }
.lg-turn-callout__body p { margin:5px 0 0; color:#786f72; font-size:13px; line-height:1.45; }
.lg-turn-callout__button { grid-column:1/-1; min-height:48px; border:0; border-radius:13px; background:linear-gradient(180deg,#ba1741,#a41036); color:#fff; cursor:pointer; font-weight:700; }
.lg-chat-context__status { margin:0 0 10px; color:#a42445; font-size:14px; }
.lg-chat-context__status.is-done { color:#27784d; }
.lg-chat-sheet__target.is-selected { border-color:#af1f43; background:#af1f43; color:#fff; }
.lg-msg__audio-fallback { color:#9e2444; font-size:12px; font-weight:650; }
.lg-narrator-role__done { display:block; margin-top:4px; color:#27784d; font-size:10px; font-style:normal; }
.lg-narrator-control__status { margin:12px 0; padding:10px 12px; border-radius:11px; background:#f7e8ec; color:#9d2944; font-size:12px; }
.lg-narrator-control__status.is-done { background:#e2f6e9; color:#27784d; }
@media (min-width:1024px) { .lg-turn-callout { grid-template-columns:auto minmax(0,1fr) auto; } .lg-turn-callout__button { grid-column:auto; padding:0 16px; } }

.lg-chat-sheet .lg-msg,
.lg-chat-sheet .lg-msg--me,
.lg-chat-sheet .lg-msg--mj { color:#2b2628; }
.lg-chat-sheet .lg-msg__head,
.lg-chat-sheet .lg-msg__time { color:#817a7d !important; }
.lg-chat-sheet .lg-msg__from,
.lg-chat-sheet .lg-msg__text,
.lg-chat-sheet .lg-msg__audio small { color:#2b2628 !important; }
.lg-chat-sheet .lg-msg__audio-fallback { color:#9e2444 !important; }
.lg-deaths-bulletin {
    margin-top: 10px;
    padding: 12px 14px;
    border: 1px solid #e7e1de;
    border-radius: 18px;
    background: rgba(255,255,255,.72);
    color: #2b2628;
}
.lg-deaths-bulletin__title { display:block; margin-bottom:4px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#746c70; }
.lg-deaths-bulletin__text { margin:0; line-height:1.45; color:#2b2628; }
.lg-wolf-votes__wrap { display:grid; gap:8px; margin:8px 0 12px; }
.lg-wolf-votes { margin:0; padding-left:18px; color:#4a4347; }
.lg-wolf-votes li { margin:0 0 4px; }


/* v1.5.4 — mobile chat drawer viewport/safe-area fix */
@media (max-width: 1023px) {
    .lg-chatcol {
        bottom: var(--lg-vv-bottom-gap, 0px);
        max-height: min(calc(var(--lg-vv-height, 100svh) - 8px), 760px);
    }
    .lg-chatcol.is-open {
        transform: translateY(0);
        visibility: visible;
    }
    .lg-chat {
        padding-bottom: 20px;
        overscroll-behavior: contain;
    }
    .lg-composer {
        position: sticky;
        bottom: 0;
        z-index: 4;
        padding: 12px 20px calc(14px + env(safe-area-inset-bottom) + var(--lg-vv-bottom-gap, 0px));
        box-shadow: 0 -10px 20px rgba(28, 22, 24, .06);
    }
    .lg-composer__hint,
    .lg-composer__readonly,
    .lg-recbar {
        margin-bottom: calc(4px + var(--lg-vv-bottom-gap, 0px));
    }
}


/* v1.5.5 — chat sender names forced visible */
.lg-chat-sheet .lg-msg .lg-msg__from,
.lg-chat-sheet .lg-msg--me .lg-msg__from,
.lg-chat-sheet .lg-msg--mj .lg-msg__from,
.lg-chat-sheet .lg-msg__head .lg-msg__from,
.lg-chat-sheet .lg-msg__head span.lg-msg__from {
    color:#1f1b1d !important;
    opacity:1 !important;
    -webkit-text-fill-color:#1f1b1d !important;
    text-shadow:none !important;
}


/* v1.5.6 — explicit resume choice + sender contrast hardening */
.lg-home-resume { margin-top: 18px; border-color:#e6d5da; background:#fffdfb; }
.lg-home-resume[hidden] { display:none; }
.lg-home-resume h2 span { color:#a91e3f; white-space:nowrap; }
.lg-chat-sheet .lg-msg .lg-msg__from,
.lg-chat-sheet .lg-msg--me .lg-msg__from,
.lg-chat-sheet .lg-msg--mj .lg-msg__from,
.lg-chat-sheet .lg-msg__head .lg-msg__from,
.lg-chat-sheet .lg-msg__head span.lg-msg__from {
    color:#1f1b1d !important;
    opacity:1 !important;
    -webkit-text-fill-color:#1f1b1d !important;
    text-shadow:none !important;
}


/* v1.5.7 — inactive chat channel labels visible on light drawer */
.lg-chat-sheet .lg-chan:not(.is-on),
.lg-chat-sheet__channels .lg-chan:not(.is-on),
.lg-chatcol .lg-chan:not(.is-on) {
    color:#1f1b1d !important;
    opacity:1 !important;
    -webkit-text-fill-color:#1f1b1d !important;
    text-shadow:none !important;
}
.lg-chat-sheet .lg-chan.is-on,
.lg-chat-sheet__channels .lg-chan.is-on,
.lg-chatcol .lg-chan.is-on {
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
}


/* v1.5.8 — player action screens, readable choices and attention alerts */
.lg-app--player-stage .lg-target,
.lg-app--player-stage [data-x="vote-panel"] .lg-target,
.lg-app--player-stage [data-x="actions-panel"] .lg-target {
    border-color:#ddd6d4 !important;
    background:#fffefa !important;
    color:#241f21 !important;
    opacity:1 !important;
    -webkit-text-fill-color:#241f21 !important;
    text-shadow:none !important;
    box-shadow:0 2px 7px rgba(42,31,35,.04);
}
.lg-app--player-stage .lg-target:hover,
.lg-app--player-stage .lg-target:focus-visible {
    border-color:#b71d47 !important;
    background:#fff7f9 !important;
}
.lg-app--player-stage .lg-target.is-on,
.lg-app--player-stage [data-x="vote-panel"] .lg-target.is-on,
.lg-app--player-stage [data-x="actions-panel"] .lg-target.is-on {
    border-color:#b71d47 !important;
    background:linear-gradient(180deg,#c42450,#a71139) !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-weight:750;
}
.lg-app--player-stage .lg-player-action-panel {
    padding:22px 20px !important;
    border:1px solid #ead8dd !important;
    border-radius:23px !important;
    background:rgba(255,255,255,.95) !important;
    box-shadow:0 8px 24px rgba(75,45,54,.07) !important;
}
.lg-app--player-stage .lg-player-action-panel h3 {
    margin:15px 0 10px;
    color:#241f21 !important;
    font-family:var(--lg-font-ui) !important;
    font-size:clamp(22px,6vw,31px) !important;
    font-weight:780 !important;
    line-height:1.15;
    letter-spacing:-.025em;
    text-transform:none;
}
.lg-player-action-panel__notice {
    margin:0 0 14px;
    padding:14px 15px;
    border:1px solid #efcbd4;
    border-radius:16px;
    background:#fff0f4;
}
.lg-player-action-panel__notice strong {
    display:block;
    color:#b31943 !important;
    font-family:var(--lg-font-ui);
    font-size:18px;
    font-weight:800;
}
.lg-player-action-panel__notice p {
    margin:5px 0 0;
    color:#b31943 !important;
    font-family:var(--lg-font-ui);
    font-size:15px;
    font-weight:650;
    line-height:1.42;
}
.lg-app--player-stage .lg-turn-callout {
    border:2px solid #c0224b;
    background:#fff1f5;
    box-shadow:0 12px 30px rgba(168,23,60,.12);
}
.lg-app--player-stage .lg-turn-callout__body strong,
.lg-app--player-stage .lg-turn-callout__body p {
    color:#b31943 !important;
}
.lg-app--player-stage .lg-turn-callout__button {
    min-height:52px;
    background:linear-gradient(180deg,#c42450,#a71139);
    font-size:15px;
    font-weight:780;
}


/* v1.5.9 — animated game outcome overlay */
.lg-end-overlay {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    min-height: 100vh;
    min-height: 100svh;
    place-items: center;
    padding: 24px;
    overflow: hidden;
    background: rgba(20, 16, 18, .72);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}
.lg-end-overlay[hidden] { display:none !important; }
.lg-end-overlay__card {
    position: relative;
    z-index: 2;
    width: min(100%, 520px);
    padding: 36px 24px 28px;
    border: 1px solid rgba(255,255,255,.62);
    border-radius: 28px;
    background: rgba(255, 253, 249, .96);
    color: #251f21;
    box-shadow: 0 24px 70px rgba(0,0,0,.30);
    text-align: center;
    animation: lg-end-card-in .72s cubic-bezier(.18,.86,.28,1.12) both;
}
.lg-end-overlay__emblem { font-size: 76px; line-height: 1; animation: lg-end-emblem 1.4s ease-in-out infinite; }
.lg-end-overlay__eyebrow { margin: 20px 0 8px; color:#746c70; font-size: 12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.lg-end-overlay h2 { margin:0; font-size: clamp(42px, 12vw, 72px); line-height:1; letter-spacing:-.06em; }
.lg-end-overlay__message { margin:18px 0 0; font-size:22px; font-weight:720; line-height:1.25; }
.lg-end-overlay__button { min-height:58px; margin-top:28px; padding:0 24px; border:0; border-radius:15px; background:#2b2628; color:#fff; cursor:pointer; font-size:16px; font-weight:730; }
.lg-end-overlay--victory { background: radial-gradient(circle at 50% 28%, rgba(74,195,124,.48), rgba(17,60,38,.82)); }
.lg-end-overlay--victory h2,
.lg-end-overlay--victory .lg-end-overlay__message { color:#187341; }
.lg-end-overlay--victory .lg-end-overlay__button { background:linear-gradient(180deg,#269b59,#187341); }
.lg-end-overlay--defeat { background: radial-gradient(circle at 50% 28%, rgba(193,29,64,.50), rgba(74,5,20,.88)); animation: lg-defeat-bg 1.6s ease-in-out infinite; }
.lg-end-overlay--defeat h2,
.lg-end-overlay--defeat .lg-end-overlay__message { color:#b0183d; }
.lg-end-overlay--defeat .lg-end-overlay__card { border-color:#f0b4c1; animation: lg-end-card-in .72s cubic-bezier(.18,.86,.28,1.12) both, lg-defeat-card 1.3s ease-in-out .72s infinite; }
.lg-end-overlay--defeat .lg-end-overlay__button { background:linear-gradient(180deg,#bc2147,#941432); }
.lg-end-overlay--host .lg-end-overlay__message { color:#9b6a14; }
.lg-end-overlay__particles { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.lg-end-confetti { position:absolute; top:-10%; left:calc((var(--i) * 5.5%) + 1%); width:11px; height:24px; border-radius:3px; animation:lg-confetti-fall calc(2.3s + (var(--i) * .07s)) linear infinite; transform:rotate(calc(var(--i) * 19deg)); }
.lg-end-confetti--1 { background:#ffd34f; }
.lg-end-confetti--2 { background:#45c579; }
.lg-end-confetti--3 { background:#f27a54; }
.lg-end-confetti--4 { background:#8572e8; }
.lg-end-confetti--5 { background:#f15b97; }
.lg-end-confetti--6 { background:#5ccbe4; }
@keyframes lg-end-card-in { from { opacity:0; transform:translateY(36px) scale(.84); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes lg-end-emblem { 0%,100% { transform:scale(1) rotate(-3deg); } 50% { transform:scale(1.14) rotate(3deg); } }
@keyframes lg-confetti-fall { 0% { opacity:0; transform:translateY(-10vh) rotate(0deg); } 12% { opacity:1; } 100% { opacity:.85; transform:translateY(118vh) rotate(720deg); } }
@keyframes lg-defeat-bg { 0%,100% { background-color:rgba(92,9,28,.82); } 50% { background-color:rgba(130,9,35,.92); } }
@keyframes lg-defeat-card { 0%,100% { transform:translateX(0); } 20% { transform:translateX(-3px); } 40% { transform:translateX(3px); } 60% { transform:translateX(-2px); } 80% { transform:translateX(2px); } }
@media (prefers-reduced-motion: reduce) {
    .lg-end-overlay,
    .lg-end-overlay__card,
    .lg-end-overlay__emblem,
    .lg-end-confetti { animation:none !important; }
}

/* =====================================================================
   v1.6.0 — installable PWA prompt
   ===================================================================== */
.lg-pwa-install {
    position: fixed;
    right: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom));
    left: 16px;
    z-index: 5000;
    max-width: 520px;
    margin-inline: auto;
    padding: 18px;
    border: 1px solid rgba(147, 30, 67, .16);
    border-radius: 24px;
    background: rgba(255, 253, 250, .98);
    color: #262123;
    box-shadow: 0 18px 52px rgba(46, 28, 35, .24);
    opacity: 0;
    transform: translateY(22px) scale(.985);
    transition: opacity .22s ease, transform .22s ease;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}
.lg-pwa-install[hidden] { display: none !important; }
.lg-pwa-install.is-visible { opacity: 1; transform: translateY(0) scale(1); }
.lg-pwa-install__close {
    position: absolute;
    top: 8px;
    right: 10px;
    display: grid;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #534a4d;
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
    place-items: center;
}
.lg-pwa-install__main { display: flex; gap: 14px; align-items: center; padding-right: 26px; }
.lg-pwa-install__icon { width: 62px; height: 62px; flex: 0 0 auto; border-radius: 18px; box-shadow: 0 6px 16px rgba(148, 18, 56, .18); }
.lg-pwa-install__copy strong { display: block; color: #241f21; font-size: 18px; line-height: 1.2; }
.lg-pwa-install__copy p { margin: 5px 0 0; color: #766e71; font-size: 13px; line-height: 1.45; }
.lg-pwa-install__actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 9px; margin-top: 15px; }
.lg-pwa-install__later,
.lg-pwa-install__button {
    min-height: 48px;
    border-radius: 14px;
    cursor: pointer;
    font-weight: 700;
}
.lg-pwa-install__later { border: 1px solid #e1d9d7; background: #fffefa; color: #52494c; }
.lg-pwa-install__button { border: 1px solid #a9153f; background: linear-gradient(180deg, #b52249, #9f173b); color: #fff; box-shadow: 0 8px 16px rgba(159, 23, 59, .18); }
.lg-pwa-install__instructions { margin-top: 14px; padding: 13px 14px; border-radius: 15px; background: #f9e7ec; color: #7f2840; font-size: 13px; line-height: 1.45; }
.lg-pwa-install__instructions[hidden] { display: none !important; }
.lg-pwa-install__instructions strong { display: block; margin-bottom: 5px; color: #8e1e3d; }
.lg-pwa-install__instructions ol { margin: 0; padding-left: 20px; }
.lg-pwa-install__instructions li + li { margin-top: 3px; }
@media (min-width: 700px) {
    .lg-pwa-install { right: 24px; bottom: 24px; left: auto; width: min(440px, calc(100vw - 48px)); margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .lg-pwa-install { transition: none; }
}


/* =====================================================================
   v1.6.2 — rectangular village scene around a central campfire
   ===================================================================== */
.lg-village-ring-section {
    overflow: hidden;
    padding: 20px 10px 18px;
    border-color: #e2d9d1;
    background:
        radial-gradient(circle at 50% 49%, rgba(237, 168, 76, .14), transparent 27%),
        radial-gradient(circle at 50% 52%, rgba(124, 88, 48, .07), transparent 62%),
        rgba(255, 254, 250, .95);
}
.lg-village-ring-section > h3 {
    margin: 0 0 13px;
    color: #6f2634 !important;
    font-family: var(--lg-font-h);
    font-size: clamp(21px, 6vw, 29px);
    font-weight: 700;
    letter-spacing: .015em;
    text-align: center;
}
.lg-village-ring {
    position: relative;
    display: block;
    width: min(100%, 580px);
    min-height: clamp(390px, 102vw, 560px);
    margin: 0 auto;
    border-radius: 40px;
    background: linear-gradient(145deg, rgba(252, 249, 242, .98), rgba(245, 240, 231, .94));
    isolation: isolate;
}
.lg-village-ring::before {
    position: absolute;
    inset: 18px;
    border-radius: 32px;
    border: 1px solid rgba(195, 166, 119, .18);
    content: '';
}
.lg-village-ring__frame,
.lg-village-ring__frame--inner {
    position: absolute;
    left: 50%;
    top: 50%;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}
.lg-village-ring__frame {
    width: 56%;
    height: 42%;
    border: 1px solid rgba(170, 135, 92, .17);
}
.lg-village-ring__frame--inner {
    width: 46%;
    height: 34%;
    border: 1px dashed rgba(170, 135, 92, .20);
}
.lg-village-fire {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 4;
    display: grid;
    width: clamp(92px, 25vw, 136px);
    height: clamp(92px, 25vw, 136px);
    place-items: center;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}
.lg-village-fire__halo {
    position: absolute;
    inset: -24%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 156, 49, .32), rgba(238, 113, 29, .08) 52%, transparent 72%);
    animation: lg-fire-halo 2.1s ease-in-out infinite alternate;
}
.lg-village-fire__stones {
    position: absolute;
    inset: 9%;
    border: clamp(9px, 2.6vw, 14px) dotted rgba(112, 81, 54, .82);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(79, 43, 23, .72), rgba(116, 60, 26, .28) 63%, transparent 66%);
    box-shadow: 0 0 20px rgba(228, 116, 31, .30);
}
.lg-village-fire__flame {
    position: relative;
    z-index: 2;
    filter: drop-shadow(0 6px 8px rgba(190, 81, 19, .35));
    font-size: clamp(48px, 13vw, 74px);
    line-height: 1;
    animation: lg-fire-flame 1.45s ease-in-out infinite alternate;
}
.lg-village-player {
    position: absolute;
    top: var(--lg-y);
    left: var(--lg-x);
    z-index: 5;
    display: grid;
    min-width: clamp(66px, 18vw, 110px);
    min-height: clamp(40px, 10vw, 56px);
    max-width: 112px;
    padding: 7px 8px;
    place-items: center;
    border: 1px solid rgba(198, 170, 125, .82);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255, 255, 252, .98), rgba(249, 242, 228, .98));
    box-shadow: 0 7px 16px rgba(77, 55, 33, .10);
    color: #3b2128;
    text-align: center;
    transform: translate(-50%, -50%);
}
.lg-village-player__name {
    overflow: hidden;
    width: 100%;
    color: #3a2027 !important;
    font-family: var(--lg-font-ui);
    font-size: clamp(11px, 2.9vw, 14px);
    font-weight: 760;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.lg-village-player__role {
    overflow: hidden;
    width: 100%;
    margin-top: 4px;
    color: #1e8b55;
    font-size: clamp(8px, 2vw, 10px);
    font-weight: 800;
    letter-spacing: .07em;
    line-height: 1.05;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.lg-village-player__role.is-wolf { color: #a82649; }
.lg-village-player--me {
    border-color: #26955f;
    background: linear-gradient(180deg, #f6fff9, #dcf4e6);
    box-shadow: 0 0 0 3px rgba(38, 149, 95, .14), 0 8px 18px rgba(29, 112, 69, .14);
}
.lg-village-player--me .lg-village-player__name { color:#168a52 !important; }
.lg-village-player--known-wolf:not(.lg-village-player--me) {
    border-color: rgba(179, 39, 72, .65);
    background: linear-gradient(180deg, #fffafb, #f9e4ea);
}
.lg-village-player--mj {
    border-color: rgba(218, 156, 47, .95);
    background: linear-gradient(180deg, #fffdf4, #f5e4bb);
}
.lg-village-player--dead {
    opacity: .55;
    filter: grayscale(.7);
}
.lg-village-player__dead-mark {
    position: absolute;
    top: -8px;
    right: -7px;
    display: grid;
    width: 20px;
    height: 20px;
    place-items: center;
    border-radius: 50%;
    background: #80253b;
    color: #fff;
    font-size: 11px;
}
.lg-village-scene-note {
    display: grid;
    gap: 8px;
    margin: 12px auto 0;
    width: min(100%, 560px);
    padding: 12px 14px;
    border-radius: 18px;
    background: rgba(255, 248, 250, .92);
    border: 1px solid rgba(193, 141, 155, .32);
    color: #7d2339;
}
.lg-village-scene-note__line {
    font-size: 13px;
    line-height: 1.35;
    font-weight: 650;
}
@keyframes lg-fire-halo {
    from { opacity: .72; transform: scale(.92); }
    to { opacity: 1; transform: scale(1.08); }
}
@keyframes lg-fire-flame {
    from { transform: translateY(2px) scale(.96) rotate(-1deg); }
    to { transform: translateY(-3px) scale(1.05) rotate(1deg); }
}
@media (max-width: 430px) {
    .lg-village-ring-section { padding-inline: 5px; }
    .lg-village-ring {
        min-height: clamp(370px, 104vw, 470px);
        border-radius: 30px;
    }
    .lg-village-ring::before { inset: 12px; border-radius: 24px; }
    .lg-village-player {
        min-width: clamp(60px, 18vw, 82px);
        min-height: 40px;
        max-width: 86px;
        padding: 6px 6px;
        border-radius: 15px;
    }
    .lg-village-player__name { font-size: clamp(10px, 2.8vw, 12px); }
    .lg-village-scene-note { padding: 10px 12px; }
    .lg-village-scene-note__line { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .lg-village-fire__halo,
    .lg-village-fire__flame { animation: none; }
}

/* =====================================================================
   v1.7.0 — Ancien + élection du maire + badge public
   ===================================================================== */
.lg-village-player__mayor,
.lg-live-mayor-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    margin-top: 3px;
    color: #a66f0a;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .03em;
    line-height: 1.1;
    text-transform: uppercase;
}
.lg-live-mayor-badge {
    padding: 4px 8px;
    border: 1px solid rgba(211, 157, 48, .34);
    border-radius: 999px;
    background: rgba(255, 246, 205, .86);
    font-size: 10px;
}
.lg-mayor-election-panel,
.lg-day-speech-panel {
    border-color: rgba(176, 34, 71, .26);
    background: linear-gradient(180deg, rgba(255, 250, 251, .98), rgba(251, 239, 243, .96));
}
.lg-mayor-election-panel__active {
    margin: 10px 0;
    color: #1d7b4a;
    font-weight: 800;
}
.lg-custom-role-editor {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}
.lg-custom-role-editor h3,
.lg-custom-role-editor p { margin: 0; }
.lg-custom-role-editor label {
    display: grid;
    gap: 5px;
    color: #665c60;
    font-size: 12px;
    font-weight: 700;
}
.lg-custom-role-editor input,
.lg-custom-role-editor textarea,
.lg-custom-role-editor select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ded6d2;
    border-radius: 12px;
    background: #fffdfa;
    color: #2d2729;
    font: inherit;
}
.lg-custom-role-editor textarea { resize: vertical; }
.lg-narrator-control button[disabled],
.lg-live-primary[disabled] {
    cursor: not-allowed;
    opacity: .46;
}
@media (max-width: 430px) {
    .lg-village-player__mayor { font-size: 8px; }
}


/* v1.7.1 — narrator vote skipping + functional haptics toggle */
.lg-gheader__haptics {
    display:grid;
    width:42px;
    height:42px;
    flex:0 0 auto;
    place-items:center;
    border:1px solid rgba(130,122,125,.28);
    border-radius:14px;
    background:#fffefa;
    color:#302b2d;
    cursor:pointer;
    font-size:19px;
    line-height:1;
}
.lg-gheader__haptics.is-off { opacity:.62; background:#f2eeeb; }
.lg-live-outline--skip { border-color:#d9b6bf; background:#fff5f7; color:#a12444; font-weight:700; }
@media (max-width: 430px) {
    .lg-app--player-lobby .lg-gheader,
    .lg-app--player-stage .lg-gheader { grid-template-columns:minmax(82px,1fr) auto auto auto; gap:7px; padding-inline:12px; }
    .lg-app--player-lobby .lg-gheader__connection,
    .lg-app--player-stage .lg-gheader__connection { padding:10px 9px; font-size:10px; }
    .lg-app--player-lobby .lg-gheader__leave,
    .lg-app--player-stage .lg-gheader__leave { padding:11px 12px; font-size:12px; }
    .lg-gheader__haptics { width:39px; height:39px; border-radius:12px; font-size:17px; }
}

.lg-live-header__tools { display:flex; align-items:center; gap:8px; }
.lg-live-haptics {
    display:grid;
    width:38px;
    height:38px;
    place-items:center;
    border:1px solid #e0dad8;
    border-radius:12px;
    background:#fffefa;
    color:#302b2d;
    cursor:pointer;
    font-size:17px;
    line-height:1;
}
.lg-live-haptics.is-off { opacity:.62; background:#f2eeeb; }


/* v1.7.2 — smoother mobile UI, automatic haptics and lighter chat rendering */
@media (max-width:1023px) {
    .lg-chatcol {
        transform:translate3d(0, calc(100% + 24px), 0);
        will-change:transform;
        backface-visibility:hidden;
        -webkit-backface-visibility:hidden;
        contain:layout paint;
    }
    .lg-chatcol.is-open { transform:translate3d(0, 0, 0); }
    .lg-drawer-backdrop { will-change:opacity; }
    .lg-chat-fab {
        will-change:transform, opacity;
        transform:translateZ(0);
        backface-visibility:hidden;
        -webkit-backface-visibility:hidden;
    }
    .lg-chat { -webkit-overflow-scrolling:touch; overscroll-behavior:contain; }
    .lg-msg { contain:content; }
    .lg-app button { touch-action:manipulation; }
    .lg-app--player-lobby .lg-gheader,
    .lg-app--player-stage .lg-gheader { grid-template-columns:minmax(82px,1fr) auto auto; }
    .lg-app--host-lobby .lg-gheader { grid-template-columns:minmax(94px,1fr) auto auto; }
}

/* v1.8.0 — public vote markers, visible effects and floating task callout */
.lg-village-player__vote-badge {
    position:absolute;
    top:-12px;
    left:50%;
    z-index:8;
    display:grid;
    min-width:25px;
    height:25px;
    padding:0 6px;
    place-items:center;
    border:2px solid #fffdfa;
    border-radius:999px;
    background:#c52145;
    color:#fff;
    box-shadow:0 4px 10px rgba(139,25,54,.28);
    font-size:12px;
    font-weight:800;
    line-height:1;
    transform:translateX(-50%);
}
.lg-village-player__vote-badge.is-mayor-election {
    background:#26935b;
    box-shadow:0 4px 10px rgba(25,116,70,.24);
}
.lg-village-player__effects {
    display:flex;
    min-height:15px;
    align-items:center;
    justify-content:center;
    gap:2px;
    margin-top:2px;
    color:#4b4043;
    font-size:12px;
    line-height:1;
    white-space:nowrap;
}
.lg-village-player--me .lg-village-player__name {
    color:#198653 !important;
    -webkit-text-fill-color:#198653 !important;
}
.lg-village-player--me {
    border-color:#27955c;
    background:linear-gradient(180deg,#f6fff9,#daf4e4);
    box-shadow:0 0 0 3px rgba(39,149,92,.14),0 8px 18px rgba(30,113,67,.13);
}
.lg-alien-guess {
    display:grid;
    gap:11px;
    margin-top:10px;
}
.lg-alien-guess__label {
    display:grid;
    gap:5px;
    color:#6f6065;
    font-size:12px;
    font-weight:750;
}
.lg-alien-guess__select {
    width:100%;
    min-height:46px;
    padding:8px 11px;
    border:1px solid #decdd2;
    border-radius:12px;
    background:#fffdfa;
    color:#342d30;
    font:inherit;
}
.lg-app--player-stage .lg-turn-callout {
    position:sticky;
    top:118px;
    z-index:36;
    border-color:#b7e2c4;
    background:linear-gradient(180deg,#f2fff6,#e4f8ea);
    box-shadow:0 12px 28px rgba(26,118,69,.14);
    animation:lg-task-float 1.9s ease-in-out infinite alternate;
}
.lg-app--player-stage .lg-turn-callout__icon {
    background:#d5f2df;
}
.lg-app--player-stage .lg-turn-callout__body strong {
    color:#197345 !important;
    font-size:18px;
}
.lg-app--player-stage .lg-turn-callout__body p {
    color:#3b7555 !important;
}
.lg-app--player-stage .lg-turn-callout__button {
    background:linear-gradient(180deg,#2c9b60,#21844f);
}
@keyframes lg-task-float {
    from { transform:translateY(0); }
    to { transform:translateY(-5px); }
}
@media (max-width:430px) {
    .lg-village-player__vote-badge { top:-10px; min-width:22px; height:22px; font-size:11px; }
    .lg-village-player__effects { font-size:11px; }
    .lg-app--player-stage .lg-turn-callout { top:106px; }
}
@media (prefers-reduced-motion: reduce) {
    .lg-app--player-stage .lg-turn-callout { animation:none; }
}


/* =====================================================================
   v1.8.1 — compact player screen, centred MJ and in-scene alerts
   ===================================================================== */
.lg-app--player-stage .lg-gheader {
    min-height:72px;
    padding:calc(7px + env(safe-area-inset-top)) 10px 7px;
    gap:6px;
}
.lg-app--player-stage .lg-tag {
    margin-bottom:2px;
    font-size:8px;
    letter-spacing:.19em;
}
.lg-app--player-stage .lg-gheader__code { gap:5px; }
.lg-app--player-stage .lg-gheader__code strong {
    font-size:clamp(22px,6.4vw,30px);
    letter-spacing:-.035em;
}
.lg-app--player-stage .lg-gheader__copy,
.lg-app--player-stage .lg-gheader__copy svg { width:15px; height:15px; }
.lg-app--player-stage .lg-gheader__connection {
    gap:5px;
    padding:8px 9px;
    font-size:10px;
}
.lg-app--player-stage .lg-gheader__connection-dot { width:6px; height:6px; }
.lg-app--player-stage .lg-gheader__leave {
    padding:9px 11px;
    border-radius:12px;
    font-size:12px;
}
.lg-app--player-stage .lg-glayout { padding:8px 9px 0; }
.lg-app--player-stage [data-x="banner"] { margin-bottom:7px; }
.lg-app--player-stage .lg-banner {
    grid-template-columns:32px minmax(0,1fr);
    gap:8px;
    min-height:0;
    padding:9px 10px;
    border-radius:16px;
}
.lg-app--player-stage .lg-banner__emoji {
    width:30px;
    height:30px;
    font-size:19px;
}
.lg-app--player-stage .lg-banner__title {
    font-size:clamp(15px,4.2vw,18px);
    line-height:1.08;
}
.lg-app--player-stage .lg-banner .lg-dim {
    margin-top:2px;
    font-size:11px;
    line-height:1.25;
}
.lg-app--player-stage .lg-deaths-bulletin {
    margin-top:5px;
    padding:6px 8px;
    border-radius:11px;
}
.lg-app--player-stage .lg-deaths-bulletin__title {
    margin-bottom:1px;
    font-size:9px;
    letter-spacing:.12em;
}
.lg-app--player-stage .lg-deaths-bulletin__text {
    font-size:11px;
    line-height:1.25;
}
.lg-app--player-stage .lg-village-ring-section {
    padding:10px 7px 9px;
    border-radius:20px;
}
.lg-app--player-stage .lg-village-ring-section > h3 {
    margin:0 0 7px;
    font-size:clamp(17px,4.8vw,21px);
    line-height:1.05;
}
.lg-app--player-stage .lg-village-ring {
    min-height:clamp(300px,78vw,390px);
    border-radius:26px;
}
.lg-app--player-stage .lg-village-ring::before {
    inset:9px;
    border-radius:21px;
}
.lg-app--player-stage .lg-village-fire {
    top:47%;
    width:clamp(76px,20vw,108px);
    height:clamp(76px,20vw,108px);
}
.lg-app--player-stage .lg-village-fire__flame { font-size:clamp(40px,10vw,58px); }
.lg-app--player-stage .lg-village-player {
    min-width:clamp(55px,15vw,78px);
    min-height:34px;
    max-width:80px;
    padding:5px 5px;
    border-radius:13px;
}
.lg-app--player-stage .lg-village-player__name {
    font-size:clamp(9px,2.45vw,11px);
    line-height:1.03;
}
.lg-app--player-stage .lg-village-player__role {
    margin-top:2px;
    font-size:clamp(7px,1.75vw,9px);
}
.lg-app--player-stage .lg-village-player__effects {
    margin-top:1px;
    font-size:9px;
    line-height:1;
}
.lg-app--player-stage .lg-village-player--mj-center {
    z-index:7;
    min-width:62px;
    min-height:30px;
    max-width:78px;
    padding:4px 6px;
    border-color:rgba(213,151,36,.95);
    border-radius:999px;
    background:linear-gradient(180deg,#fffdf3,#f4dfa9);
    box-shadow:0 6px 14px rgba(98,67,22,.16);
}
.lg-village-player__mj-label {
    margin-top:1px;
    color:#9a6812;
    font-size:8px;
    font-weight:850;
    letter-spacing:.12em;
    line-height:1;
    text-transform:uppercase;
}
.lg-app--player-stage .lg-scene-actions:empty { display:none; }
.lg-app--player-stage .lg-scene-actions.lg-player-action-panel {
    margin:7px 0 0;
    padding:8px 9px !important;
    border-radius:13px !important;
    box-shadow:none !important;
}
.lg-app--player-stage .lg-scene-actions .lg-player-action-panel__notice {
    margin:0;
    padding:8px 9px;
    border-radius:11px;
}
.lg-app--player-stage .lg-scene-actions .lg-player-action-panel__notice strong {
    font-size:14px;
    line-height:1.15;
}
.lg-app--player-stage .lg-scene-actions .lg-player-action-panel__notice p {
    margin-top:3px;
    font-size:11px;
    line-height:1.28;
}
.lg-app--player-stage .lg-scene-actions .lg-btn {
    min-height:36px;
    margin-top:7px;
    padding:7px 9px;
    font-size:12px;
}
.lg-app--player-stage .lg-scene-turn-callout {
    position:static;
    z-index:auto;
    grid-template-columns:30px minmax(0,1fr);
    gap:7px;
    margin:7px 0 0;
    padding:8px 9px;
    border:1px solid #b7e2c4;
    border-radius:13px;
    box-shadow:none;
    animation:none;
}
.lg-app--player-stage .lg-scene-turn-callout .lg-turn-callout__icon {
    width:30px;
    height:30px;
    font-size:16px;
}
.lg-app--player-stage .lg-scene-turn-callout .lg-turn-callout__body strong { font-size:13px; }
.lg-app--player-stage .lg-scene-turn-callout .lg-turn-callout__body p {
    margin-top:2px;
    font-size:10px;
    line-height:1.2;
}
.lg-app--player-stage .lg-scene-turn-callout .lg-turn-callout__button {
    grid-column:1/-1;
    min-height:34px;
    border-radius:10px;
    font-size:11px;
}
.lg-app--player-stage .lg-village-scene-note {
    gap:4px;
    margin-top:7px;
    padding:8px 9px;
    border-radius:12px;
}
.lg-app--player-stage .lg-village-scene-note__line {
    font-size:10px;
    line-height:1.23;
}
.lg-app--player-stage [data-x="role-panel"] {
    margin-top:8px;
    padding:9px 10px;
    border-radius:16px;
}
.lg-app--player-stage [data-x="role-panel"] > h3 {
    margin:0 0 5px;
    font-size:17px;
}
.lg-app--player-stage .lg-myrole { height:132px; }
.lg-app--player-stage .lg-myrole__emoji { font-size:38px; }
.lg-app--player-stage .lg-myrole__name {
    margin:4px 0 2px;
    font-size:18px;
}
.lg-app--player-stage .lg-myrole__team { font-size:9px; }
.lg-app--player-stage .lg-myrole__desc {
    display:-webkit-box;
    overflow:hidden;
    max-width:94%;
    margin-top:4px;
    font-size:10px;
    line-height:1.25;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}
.lg-app--player-stage [data-x="role-panel"] > .lg-dim {
    margin:4px 0 0 !important;
    font-size:11px;
}
@media (max-width:430px) {
    .lg-app--player-stage .lg-village-ring { min-height:clamp(286px,75vw,340px); }
    .lg-app--player-stage .lg-village-player { min-width:54px; max-width:72px; }
    .lg-app--player-stage .lg-village-player--mj-center { min-width:58px; max-width:70px; }
}


/* v1.8.2 — player activity badges, configurable mayor election and fox picker */
.lg-village-player__activity {
    position:absolute;
    right:-9px;
    bottom:-10px;
    z-index:10;
    display:grid;
    min-width:24px;
    height:24px;
    padding:0 5px;
    place-items:center;
    border:2px solid #fffdfa;
    border-radius:999px;
    background:#6a49c8;
    color:#fff;
    box-shadow:0 5px 12px rgba(65,47,142,.24);
    font-size:11px;
    font-weight:850;
    line-height:1;
    animation:lg-player-activity-pop .38s ease-out, lg-player-activity-pulse 1.4s ease-in-out .38s infinite;
}
.lg-village-player__activity.is-audio { background:#b31241; box-shadow:0 5px 12px rgba(150,21,63,.24); }
@keyframes lg-player-activity-pop {
    from { opacity:0; transform:scale(.45) translateY(5px); }
    to { opacity:1; transform:scale(1) translateY(0); }
}
@keyframes lg-player-activity-pulse {
    0%,100% { transform:scale(1); }
    50% { transform:scale(1.10); }
}
.lg-multi-range { display:grid; gap:9px; margin-top:8px; }
.lg-multi-range__counter { margin:0 !important; }
@media (prefers-reduced-motion:reduce) {
    .lg-village-player__activity { animation:none; }
}

.lg-chat-sheet__target--confirm {
    width:100%;
    margin-top:8px;
    border-color:#a61d42;
    background:#af1642;
    color:#fff;
    font-weight:800;
}
.lg-chat-sheet__target--confirm:disabled {
    opacity:.48;
    cursor:not-allowed;
}

/* ======================================================================
   v1.9.1 — clickable role guide + beginner explanations
   ====================================================================== */
.lg-home-btn--roles {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border-color:#d4c39b;
    background:linear-gradient(180deg,#fffdf6,#f7efe0);
    color:#6f4e20;
    box-shadow:0 8px 18px rgba(112,78,32,.08);
}
.lg-home-btn--roles span { color:#c9922e; font-size:18px; }

/* Illustrated secret role reveal */
.lg-secret-card--illustrated {
    display:block;
    min-height:0;
    padding:0;
    overflow:hidden;
    border-color:#d3a64d;
    background:#140c21;
}
.lg-secret-card__art {
    display:block;
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
}
.lg-secret-card__caption {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 16px 15px;
    background:linear-gradient(180deg,#201238,#120b1f);
    color:#f9f2dc;
}
.lg-secret-card__caption strong {
    color:#f8d37b;
    font-family:var(--lg-font-h);
    font-size:18px;
    letter-spacing:.05em;
}
.lg-secret-card__caption .lg-secret-card__team {
    margin:0;
    padding:0;
    border:0;
    color:#d9c9e9;
    font-size:10px;
}

/* Illustrated compact role card */
.lg-myrole__front { padding:0; justify-content:flex-end; background:#150c25; }
.lg-myrole__art {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}
.lg-myrole__shade {
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(11,7,18,.96) 0%,rgba(11,7,18,.84) 42%,rgba(11,7,18,.28) 100%);
}
.lg-myrole__details {
    position:relative;
    z-index:2;
    width:min(70%,420px);
    margin-right:auto;
    padding:16px 18px;
    text-align:left;
}
.lg-myrole__details .lg-myrole__name { margin:0 0 3px; }
.lg-myrole__details .lg-myrole__desc { margin-top:6px; max-width:100%; }
.lg-app--player-stage .lg-myrole__details { width:72%; padding:11px 12px; }
.lg-app--player-stage .lg-myrole__details .lg-myrole__name { font-size:17px; }
.lg-app--player-stage .lg-myrole__details .lg-myrole__desc { font-size:9px; line-height:1.2; }

/* Host role configuration thumbnails */
.lg-host-role-card { position:relative; overflow:hidden; }
.lg-host-role-card__thumb {
    width:52px;
    height:52px;
    flex:0 0 52px;
    border:1px solid rgba(191,158,93,.45);
    border-radius:14px;
    object-fit:cover;
    box-shadow:0 5px 12px rgba(63,40,12,.12);
}
@media (max-width:430px) {
    .lg-host-role-card__thumb { width:44px; height:44px; flex-basis:44px; border-radius:12px; }
}

/* Premium roles guide */
.lg-screen--guide {
    min-height:100svh;
    background:
        radial-gradient(circle at 50% -5%,rgba(117,65,171,.35),transparent 33%),
        radial-gradient(circle at 20% 35%,rgba(157,36,73,.12),transparent 28%),
        linear-gradient(180deg,#100817 0%,#160b28 34%,#100817 100%);
    color:#f7f1e8;
}
.lg-guide-header {
    position:sticky;
    top:0;
    z-index:30;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:13px max(16px,env(safe-area-inset-left)) 12px max(16px,env(safe-area-inset-right));
    border-bottom:1px solid rgba(235,208,155,.14);
    background:rgba(15,7,24,.86);
    box-shadow:0 12px 25px rgba(0,0,0,.14);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}
.lg-guide-back {
    display:inline-flex;
    align-items:center;
    gap:4px;
    min-height:40px;
    padding:0 12px;
    border:1px solid rgba(228,198,136,.24);
    border-radius:999px;
    background:rgba(255,255,255,.05);
    color:#f3e5c3;
    cursor:pointer;
    font:700 13px/1 var(--lg-font-ui);
}
.lg-guide-back span { font-size:27px; line-height:.7; }
.lg-guide-brand { display:flex; align-items:center; gap:7px; color:#f7d67d; font-family:var(--lg-font-h); font-size:14px; letter-spacing:.06em; }
.lg-guide-brand span { display:grid; width:28px; height:28px; place-items:center; border-radius:50%; background:#ad1941; color:#fff; box-shadow:0 5px 14px rgba(173,25,65,.28); }
.lg-guide-main { width:min(100% - 28px,760px); margin:0 auto; padding:44px 0 calc(56px + env(safe-area-inset-bottom)); }
.lg-guide-hero { padding:30px 3px 46px; text-align:center; }
.lg-guide-kicker { margin:0 0 8px; color:#d7b468; font:800 10px/1.4 var(--lg-font-ui); letter-spacing:.22em; text-transform:uppercase; }
.lg-guide-hero h1,
.lg-guide-story h2,
.lg-guide-section-head h2,
.lg-guide-mayor h2,
.lg-guide-footer h2 { margin:0; font-family:var(--lg-font-h); }
.lg-guide-hero h1 { color:#fff8ed; font-size:clamp(45px,12vw,76px); line-height:.95; letter-spacing:-.06em; }
.lg-guide-hero h1 em { display:block; color:#e6476b; font-style:normal; }
.lg-guide-hero > p { width:min(100%,560px); margin:20px auto 0; color:rgba(247,241,232,.75); font-size:15px; line-height:1.65; }
.lg-guide-scroll-hint { display:inline-flex; gap:7px; align-items:center; margin-top:24px; color:#d8bc82; font-size:11px; letter-spacing:.15em; text-transform:uppercase; }
.lg-guide-scroll-hint b { animation:lg-guide-arrow 1.4s ease-in-out infinite; }
@keyframes lg-guide-arrow { 50% { transform:translateY(5px); } }

.lg-guide-story,
.lg-guide-mayor,
.lg-guide-footer {
    border:1px solid rgba(231,201,143,.16);
    border-radius:24px;
    background:linear-gradient(150deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
    box-shadow:0 18px 36px rgba(0,0,0,.16);
}
.lg-guide-story { padding:24px 20px; }
.lg-guide-story h2,
.lg-guide-section-head h2,
.lg-guide-mayor h2,
.lg-guide-footer h2 { color:#fff7ea; font-size:clamp(26px,7vw,39px); line-height:1.04; }
.lg-guide-story > p:not(.lg-guide-kicker),
.lg-guide-section-head > p:not(.lg-guide-kicker),
.lg-guide-mayor p:not(.lg-guide-kicker),
.lg-guide-footer p:not(.lg-guide-kicker) { margin:12px 0 0; color:rgba(247,241,232,.72); font-size:14px; line-height:1.62; }
.lg-guide-story__steps { display:grid; gap:10px; margin-top:20px; }
.lg-guide-step { display:flex; gap:11px; align-items:center; padding:11px 12px; border-radius:15px; background:rgba(255,255,255,.045); }
.lg-guide-step > span { display:grid; width:30px; height:30px; flex:0 0 30px; place-items:center; border-radius:50%; background:linear-gradient(180deg,#c52c53,#921435); color:#fff; font-size:12px; font-weight:900; }
.lg-guide-step strong { display:block; color:#fff4df; font-size:13px; }
.lg-guide-step small { display:block; margin-top:2px; color:rgba(247,241,232,.61); font-size:11px; line-height:1.4; }
.lg-guide-section-head { padding:47px 4px 18px; text-align:center; }
.lg-guide-role-list { display:grid; gap:17px; }
.lg-guide-role {
    overflow:hidden;
    border:1px solid rgba(229,196,133,.18);
    border-radius:23px;
    background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
    box-shadow:0 17px 34px rgba(0,0,0,.18);
}
.lg-guide-role__visual { overflow:hidden; aspect-ratio:1/1; background:#0c0712; }
.lg-guide-role__visualBtn { position:relative; display:block; width:100%; padding:0; border:0; cursor:pointer; text-align:inherit; }
.lg-guide-role__visualBtn::after { position:absolute; inset:auto 14px 14px; height:42px; border-radius:999px; background:linear-gradient(90deg,rgba(25,12,30,.88),rgba(127,28,61,.78)); box-shadow:0 10px 22px rgba(0,0,0,.24); content:''; opacity:.92; transform:translateY(0); transition:opacity .25s ease, transform .25s ease; }
.lg-guide-role__visual img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .7s ease, filter .7s ease; }
.lg-guide-role:hover .lg-guide-role__visual img,
.lg-guide-role.is-expanded .lg-guide-role__visual img { transform:scale(1.035); filter:saturate(1.07) contrast(1.04); }
.lg-guide-role__tap { position:absolute; left:26px; right:26px; bottom:26px; z-index:2; color:#fff8ec; font:900 11px/1 var(--lg-font-ui); letter-spacing:.12em; text-align:center; text-transform:uppercase; }
.lg-guide-role.is-expanded .lg-guide-role__tap::before { content:'Explication ouverte · '; color:#f8d681; }
.lg-guide-role__copy { padding:17px 17px 18px; }
.lg-guide-role__topline { display:flex; align-items:center; justify-content:space-between; gap:9px; }
.lg-guide-role__emoji { font-size:20px; }
.lg-guide-role__team { padding:5px 8px; border-radius:999px; font:800 9px/1 var(--lg-font-ui); letter-spacing:.11em; text-transform:uppercase; }
.lg-guide-role__team--village { background:rgba(64,190,129,.14); color:#8ce0b6; }
.lg-guide-role__team--loups { background:rgba(217,65,84,.15); color:#ff9bae; }
.lg-guide-role__team--alien,
.lg-guide-role__team--solo { background:rgba(85,187,202,.15); color:#8fe7f1; }
.lg-guide-role h3 { margin:7px 0 0; color:#f8d681; font-family:var(--lg-font-h); font-size:30px; line-height:1.04; letter-spacing:.01em; }
.lg-guide-role p { margin:9px 0 0; color:rgba(247,241,232,.77); font-size:13px; line-height:1.55; }
.lg-guide-role__when { display:block; margin-top:12px; color:#dec389; font-size:11px; line-height:1.4; }
.lg-guide-role__details {
    display:grid;
    gap:9px;
    overflow:hidden;
    margin-top:14px;
    padding:13px;
    border:1px solid rgba(248,214,129,.18);
    border-radius:18px;
    background:linear-gradient(145deg,rgba(255,248,232,.10),rgba(255,255,255,.035));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
    animation:lg-guide-details .32s ease both;
}
.lg-guide-role__details[hidden] { display:none !important; }
.lg-guide-detail-line { display:grid; gap:3px; }
.lg-guide-detail-line strong { color:#f8d681; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.lg-guide-detail-line span { color:rgba(255,250,241,.82); font-size:13px; line-height:1.48; }
.lg-guide-role.is-expanded { border-color:rgba(248,214,129,.35); box-shadow:0 18px 38px rgba(0,0,0,.22), 0 0 0 1px rgba(248,214,129,.08); }
@keyframes lg-guide-details { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }

.lg-guide-mayor { display:flex; gap:13px; margin-top:19px; padding:19px; }
.lg-guide-mayor__icon { display:grid; width:48px; height:48px; flex:0 0 48px; place-items:center; border-radius:16px; background:linear-gradient(145deg,#e6bd59,#986318); box-shadow:0 9px 18px rgba(200,139,31,.20); font-size:23px; }
.lg-guide-footer { margin-top:19px; padding:25px 20px; text-align:center; }
.lg-guide-footer .lg-home-btn { width:min(100%,270px); margin:18px auto 0; }
.lg-guide-reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease var(--lg-guide-delay,0ms), transform .7s cubic-bezier(.2,.7,.2,1) var(--lg-guide-delay,0ms); }
.lg-guide-reveal.is-visible { opacity:1; transform:none; }
@media (min-width:680px) {
    .lg-guide-main { width:min(100% - 54px,1020px); }
    .lg-guide-role-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
    .lg-guide-story__steps { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .lg-guide-step { align-items:flex-start; }
}
@media (prefers-reduced-motion:reduce) {
    .lg-guide-reveal { opacity:1; transform:none; transition:none; }
    .lg-guide-scroll-hint b { animation:none; }
    .lg-guide-role__visual img { transition:none; }
    .lg-guide-role__details { animation:none; }
}
/* Thumbnail column added to host role list in v1.9.1 */
.lg-host-role-card { grid-template-columns:52px 25px minmax(0,1fr) auto; }
@media (max-width:430px) {
    .lg-host-role-card { grid-template-columns:44px 20px minmax(0,1fr) 81px; gap:6px; }
}


/* ------------------------------------------------------------------
   LoupGarou Voice 1.9.9 — Homepage game-first + SEO refresh
   ------------------------------------------------------------------ */
.lg-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.lg-app--landing {
    background:
        radial-gradient(620px 360px at 94% 2%, rgba(169, 30, 63, .15), transparent 66%),
        radial-gradient(520px 330px at 0% 15%, rgba(198, 146, 46, .16), transparent 72%),
        radial-gradient(380px 240px at 52% 28%, rgba(89, 61, 138, .08), transparent 72%),
        linear-gradient(180deg, #fffaf3 0%, #fbf3eb 46%, #fffdf9 100%);
}
.lg-app--landing::before,
.lg-app--landing::after {
    position: fixed;
    pointer-events: none;
    content: '';
    z-index: 0;
}
.lg-app--landing::before {
    top: 74px;
    right: -90px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,.72), rgba(169,30,63,.06) 55%, transparent 72%);
    filter: blur(2px);
    opacity: .78;
}
.lg-app--landing::after {
    inset: 0;
    background-image:
        radial-gradient(circle at 18% 22%, rgba(169,30,63,.12) 0 1px, transparent 2px),
        radial-gradient(circle at 79% 15%, rgba(204,147,54,.16) 0 1px, transparent 2px),
        radial-gradient(circle at 63% 67%, rgba(117,83,151,.12) 0 1px, transparent 2px);
    background-size: 180px 220px, 230px 190px, 210px 210px;
    opacity: .45;
    animation: lg-home-stars 13s linear infinite alternate;
}
.lg-screen--home { overflow-x: hidden; }
.lg-home-brand,
.lg-home-main {
    position: relative;
    z-index: 1;
    width: min(100% - 34px, 780px);
}
.lg-home-brand {
    gap: 11px;
    padding-top: max(16px, env(safe-area-inset-top));
    font-size: 19px;
    animation: lg-home-rise .54s ease both;
}
.lg-home-brand__badge {
    margin-left: auto;
    padding: 7px 10px;
    border: 1px solid rgba(169, 30, 63, .14);
    border-radius: 999px;
    background: rgba(255,255,255,.72);
    color: #9d1c3d;
    font-size: 10px;
    font-weight: 820;
    letter-spacing: .075em;
    text-transform: uppercase;
    box-shadow: 0 8px 22px rgba(80, 46, 55, .07);
}
.lg-home-main { padding: 30px 0 78px; }
.lg-home-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    align-items: stretch;
}
.lg-home-hero__copy { animation: lg-home-rise .64s ease .08s both; }
.lg-home-edition {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    width: fit-content;
    margin: 0;
    padding: 8px 12px;
    border: 1px solid rgba(168, 134, 76, .28);
    border-radius: 999px;
    background: rgba(255, 255, 255, .68);
    color: #745d64;
    font-size: 10px;
    font-weight: 760;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.lg-home-title {
    margin: 18px 0 12px;
    color: #191617;
    font-family: var(--lg-font-ui);
    font-size: clamp(43px, 12vw, 78px);
    font-weight: 870;
    letter-spacing: -.086em;
    line-height: .88;
}
.lg-home-title em {
    display: block;
    color: #b01643;
    font-style: normal;
    letter-spacing: -.08em;
}
.lg-home-intro {
    max-width: 590px;
    margin: 0;
    color: #5f5559;
    font-size: clamp(15px, 4.15vw, 20px);
    line-height: 1.48;
}
.lg-home-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}
.lg-home-tags span {
    padding: 7px 10px;
    border: 1px solid rgba(225, 212, 202, .82);
    border-radius: 999px;
    background: rgba(255,255,255,.68);
    color: #6d6265;
    font-size: 11px;
    font-weight: 760;
    box-shadow: 0 6px 16px rgba(70, 52, 47, .04);
}
.lg-home-actions {
    grid-template-columns: 1fr;
    gap: 10px;
    width: min(100%, 336px);
    margin-top: 24px;
}
.lg-home-btn {
    min-height: 52px;
    border-radius: 15px;
    font-size: 15px;
    font-weight: 790;
    box-shadow: 0 8px 20px rgba(69, 50, 42, .04);
}
.lg-home-btn--primary {
    position: relative;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(169,30,63,.24);
}
.lg-home-btn--primary::after {
    position: absolute;
    inset: -70% auto -70% -35%;
    width: 34%;
    transform: rotate(18deg);
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.34), transparent);
    content: '';
    animation: lg-home-shine 4.2s ease-in-out infinite;
}
.lg-home-btn--roles {
    border-color: rgba(198, 146, 46, .36);
    background: linear-gradient(180deg, #fffaf0, #f7eedb);
    color: #76562b;
}
.lg-home-preview {
    position: relative;
    min-height: 250px;
    padding: 15px;
    border: 1px solid rgba(203, 189, 178, .72);
    border-radius: 28px;
    background:
        radial-gradient(circle at 50% 44%, rgba(255, 164, 44, .19), transparent 32%),
        radial-gradient(circle at 87% 10%, rgba(169, 30, 63, .10), transparent 38%),
        linear-gradient(145deg, rgba(255,255,255,.80), rgba(246, 239, 226, .72));
    box-shadow: 0 18px 44px rgba(72, 44, 38, .10);
    isolation: isolate;
    overflow: hidden;
    animation: lg-home-rise .72s ease .16s both;
}
.lg-home-preview::before {
    position: absolute;
    inset: 10px;
    border: 1px solid rgba(201, 157, 85, .25);
    border-radius: 22px;
    content: '';
}
.lg-home-preview__top {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #867b78;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.lg-home-preview__top span { display:flex; align-items:center; gap:7px; }
.lg-home-preview__top i {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #25a76a;
    box-shadow: 0 0 0 0 rgba(37,167,106,.40);
    animation: lg-home-live 1.55s ease-in-out infinite;
}
.lg-home-preview__top b { color: #a91e3f; font-size: 18px; letter-spacing: .04em; }
.lg-home-preview__village {
    position: relative;
    z-index: 1;
    height: 170px;
    margin-top: 11px;
    border-radius: 22px;
}
.lg-home-preview__moon {
    position:absolute;
    right: 16%;
    top: 3%;
    color: rgba(126, 92, 141, .42);
    font-size: 28px;
    animation: lg-home-float 3.8s ease-in-out infinite alternate;
}
.lg-home-preview__fire {
    position: absolute;
    left: 50%;
    top: 51%;
    display: grid;
    width: 74px;
    height: 74px;
    place-items: center;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle, rgba(255,214,139,.82), rgba(255,161,45,.24) 60%, transparent 72%);
    font-size: 37px;
    filter: drop-shadow(0 10px 18px rgba(203, 117, 39, .25));
    animation: lg-home-fire 2.4s ease-in-out infinite alternate;
}
.lg-home-preview__player {
    position: absolute;
    display: grid;
    min-width: 75px;
    padding: 8px 10px;
    place-items: center;
    border: 1px solid rgba(190, 162, 116, .66);
    border-radius: 15px;
    background: rgba(255,255,255,.84);
    color: #3f2930;
    font-size: 12px;
    font-weight: 820;
    box-shadow: 0 8px 18px rgba(88, 65, 48, .08);
}
.lg-home-preview__player:nth-of-type(2) { left: 7%; top: 16%; }
.lg-home-preview__player:nth-of-type(3) { right: 7%; top: 17%; }
.lg-home-preview__player:nth-of-type(5) { left: 8%; bottom: 9%; }
.lg-home-preview__player:nth-of-type(6) { right: 7%; bottom: 8%; }
.lg-home-preview__player--wolf { border-color: rgba(185, 46, 82, .58); color: #a91e3f; background: #fff3f6; }
.lg-home-preview__player--me { border-color: rgba(59, 158, 103, .58); color: #23835a; background: #f1fff7; }
.lg-home-preview__bubble {
    position: absolute;
    z-index: 4;
    max-width: 158px;
    padding: 7px 9px;
    border-radius: 999px;
    border: 1px solid rgba(169, 30, 63, .16);
    background: rgba(255, 255, 255, .88);
    color: #8f2140;
    font-size: 10px;
    font-weight: 820;
    box-shadow: 0 9px 18px rgba(75, 46, 50, .10);
    opacity: 0;
}
.lg-home-preview__bubble--one { left: 14%; top: 2%; animation: lg-home-bubble 5.5s ease-in-out infinite .4s; }
.lg-home-preview__bubble--two { right: 8%; bottom: 0; animation: lg-home-bubble 5.5s ease-in-out infinite 2.7s; }
.lg-home-preview__note {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    margin: 0 auto;
    padding: 9px 12px;
    border-radius: 999px;
    background: #fff;
    color: #705d61;
    font-size: 12px;
    font-weight: 780;
    box-shadow: 0 8px 18px rgba(74, 54, 48, .08);
}
.lg-home-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 26px 0 20px;
}
.lg-home-stats div {
    padding: 13px 8px;
    border: 1px solid rgba(226, 215, 208, .9);
    border-radius: 18px;
    background: rgba(255,255,255,.68);
    box-shadow: 0 10px 22px rgba(71, 54, 43, .045);
}
.lg-home-stats dt { font-size: clamp(25px, 7.2vw, 36px); text-align: center; }
.lg-home-stats dd {
    width: auto;
    margin-top: 6px;
    padding-top: 6px;
    border-top-color: rgba(136,129,129,.34);
    text-align: center;
    font-size: 8.6px;
    letter-spacing: .12em;
}
.lg-home-rhythm,
.lg-home-steps,
.lg-home-benefits,
.lg-home-card,
.lg-home-resume,
.lg-home-seo {
    margin-top: 15px;
    border: 1px solid rgba(229, 223, 220, .95);
    border-radius: 24px;
    background: rgba(255,255,255,.76);
    box-shadow: 0 13px 30px rgba(80,58,51,.06);
}
.lg-home-rhythm,
.lg-home-steps,
.lg-home-benefits,
.lg-home-seo { padding: 20px 17px; }
.lg-home-rhythm h2,
.lg-home-steps h2,
.lg-home-benefits h2 {
    margin: 8px 0 15px;
    color: #211e1f;
    font-size: clamp(27px, 7.4vw, 40px);
    font-weight: 830;
    letter-spacing: -.06em;
    line-height: .98;
}
.lg-home-rhythm__grid,
.lg-home-steps__grid,
.lg-home-benefits__grid {
    display: grid;
    gap: 10px;
}
.lg-home-rhythm__grid article,
.lg-home-steps__grid article,
.lg-home-benefits__grid article {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 6px 11px;
    align-items: center;
    padding: 12px;
    border: 1px solid rgba(232, 223, 214, .9);
    border-radius: 18px;
    background: rgba(255, 252, 247, .80);
}
.lg-home-rhythm__grid span,
.lg-home-steps__grid span,
.lg-home-benefits__grid span {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 50%;
    background: #a91e3f;
    color: #fff;
    font-weight: 840;
}
.lg-home-rhythm__grid span { background: #fff4e8; color: #8d4f12; }
.lg-home-benefits__grid span { background: #fff1f5; color: #a91e3f; font-size: 17px; }
.lg-home-rhythm__grid strong,
.lg-home-steps__grid strong,
.lg-home-benefits__grid strong { color: #272223; font-size: 15px; }
.lg-home-rhythm__grid small,
.lg-home-steps__grid small,
.lg-home-benefits__grid small {
    grid-column: 2;
    color: #776f72;
    font-size: 13px;
    line-height: 1.35;
}
.lg-home-card { padding: 21px 18px; }
.lg-home-card--choice h2 { font-size: clamp(30px, 7.4vw, 42px); }
.lg-home-card--choice .lg-home-card__buttons { margin-top: 17px; }
.lg-home-card__rule { margin: 20px 0; }
.lg-home-card p:not(.lg-home-card__eyebrow) { font-size: 15px; }
.lg-home-card__buttons { margin-top: 21px; }
.lg-home-resume {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 13px 14px;
    border-color: rgba(218, 203, 196, .98);
    background: rgba(255, 252, 249, .82);
}
.lg-home-resume[hidden] { display: none; }
.lg-home-resume strong {
    display: block;
    margin: 4px 0 3px;
    color: #1f1c1d;
    font-size: 18px;
}
.lg-home-resume strong span { color: #a91e3f; }
.lg-home-resume p:not(.lg-home-card__eyebrow) {
    margin: 0;
    color: #7a7275;
    font-size: 12px;
    line-height: 1.35;
}
.lg-home-resume__actions {
    display: grid;
    gap: 8px;
    min-width: 108px;
}
.lg-home-resume__actions .lg-home-btn {
    min-height: 42px;
    padding: 8px 12px;
    border-radius: 13px;
    font-size: 12px;
}
.lg-home-seo {
    margin-bottom: 10px;
    background: rgba(255,255,255,.58);
}
.lg-home-seo h2 {
    margin: 0 0 8px;
    color: #272223;
    font-size: 20px;
    letter-spacing: -.03em;
}
.lg-home-seo p {
    margin: 0;
    color: #6f676a;
    font-size: 14px;
    line-height: 1.5;
}
.lg-home-floating-cta { display:none !important; }
.lg-home-reveal {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .62s ease, transform .62s ease;
}
.lg-home-reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (min-width: 760px) {
    .lg-home-hero { grid-template-columns: minmax(0, 1fr) 335px; }
    .lg-home-actions { grid-template-columns: 1fr 1fr; width: min(100%, 548px); }
    .lg-home-actions .lg-home-btn--roles { grid-column: span 2; }
    .lg-home-rhythm__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .lg-home-steps__grid,
    .lg-home-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 430px) {
    .lg-home-brand,
    .lg-home-main { width: min(100% - 28px, 760px); }
    .lg-home-brand__mark { width: 40px; height: 40px; }
    .lg-home-brand { font-size: 17px; }
    .lg-home-brand__badge { font-size: 8.5px; padding: 6px 8px; }
    .lg-home-main { padding-top: 27px; }
    .lg-home-title { margin-top: 16px; }
    .lg-home-actions { width: 100%; max-width: 338px; margin-top: 22px; }
    .lg-home-preview { min-height: 224px; padding: 13px; border-radius: 24px; }
    .lg-home-preview__village { height: 148px; }
    .lg-home-preview__fire { width: 64px; height: 64px; font-size: 32px; }
    .lg-home-preview__player { min-width: 64px; padding: 7px 8px; font-size: 10.5px; }
    .lg-home-preview__bubble { font-size: 9px; max-width: 136px; }
    .lg-home-card__buttons { gap: 9px; }
    .lg-home-resume { grid-template-columns: 1fr; }
    .lg-home-resume__actions { grid-template-columns: 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .lg-home-brand,
    .lg-home-hero__copy,
    .lg-home-preview,
    .lg-home-stats,
    .lg-home-preview__fire,
    .lg-home-btn--primary::after,
    .lg-home-preview__bubble,
    .lg-app--landing::after,
    .lg-home-reveal { animation: none !important; transition: none !important; opacity:1; transform:none; }
}
@keyframes lg-home-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes lg-home-shine { 0%, 62% { transform: translateX(0) rotate(18deg); opacity: 0; } 70% { opacity: 1; } 100% { transform: translateX(480%) rotate(18deg); opacity: 0; } }
@keyframes lg-home-fire { from { transform: translate(-50%, -50%) scale(.96); } to { transform: translate(-50%, -52%) scale(1.05); } }
@keyframes lg-home-live { 0% { box-shadow:0 0 0 0 rgba(37,167,106,.38); } 70% { box-shadow:0 0 0 8px rgba(37,167,106,0); } 100% { box-shadow:0 0 0 0 rgba(37,167,106,0); } }
@keyframes lg-home-bubble { 0%, 20% { opacity:0; transform:translateY(8px) scale(.96); } 30%, 62% { opacity:1; transform:translateY(0) scale(1); } 78%,100% { opacity:0; transform:translateY(-6px) scale(.98); } }
@keyframes lg-home-float { from { transform: translateY(0); } to { transform: translateY(-7px); } }
@keyframes lg-home-stars { from { transform: translateY(0); } to { transform: translateY(-18px); } }


/* v1.9.9 — restore previous-session resume and remove fixed bottom CTA */
.lg-home-floating-cta { display:none !important; }
.lg-home-resume {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:18px 0 0;
    padding:16px 15px;
    border:1px solid rgba(194, 164, 123, .42);
    border-radius:22px;
    background:linear-gradient(135deg, rgba(255,255,255,.88), rgba(255,247,232,.82));
    box-shadow:0 14px 32px rgba(53, 38, 30, .08);
}
.lg-home-resume[hidden] { display:none !important; }
.lg-home-resume strong {
    display:block;
    margin:2px 0 4px;
    color:#261f21;
    font-size:20px;
    line-height:1.05;
    letter-spacing:-.035em;
}
.lg-home-resume strong span { color:#b41446; }
.lg-home-resume p[data-resume-summary] {
    margin:0;
    color:#6c6466;
    font-size:12.5px;
    line-height:1.35;
}
.lg-home-resume__actions {
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    min-width:120px;
}
.lg-home-resume__actions .lg-home-btn {
    min-height:40px;
    padding:8px 12px;
    border-radius:13px;
    font-size:12px;
    white-space:nowrap;
}
.lg-home-edition { letter-spacing:.18em; }
@media (max-width:430px) {
    .lg-home-resume {
        align-items:stretch;
        padding:14px;
    }
    .lg-home-resume__actions {
        min-width:106px;
    }
    .lg-home-resume__actions .lg-home-btn {
        font-size:11.5px;
        padding-inline:8px;
    }
}

/* LoupGarou Voice 1.9.9 — Landing page V2, game-first, compact above the fold */
.lg-landing-v2 {
    --lg2-blood:#b51646;
    --lg2-blood2:#8d1234;
    --lg2-ink:#1f191c;
    --lg2-cream:#fff8ed;
    --lg2-gold:#d7aa50;
    --lg2-night:#150911;
    --lg2-muted:#70676a;
    --lg2-shadow:0 22px 70px rgba(53,31,38,.14);
    --lg2-red-shadow:0 18px 44px rgba(181,22,70,.30);
    position:relative;
    min-height:100svh;
    padding:0 14px 40px;
    color:var(--lg2-ink);
    overflow:hidden;
    background:
        radial-gradient(circle at 50% -8%, rgba(255,255,255,.98), rgba(255,246,235,.62) 34%, transparent 58%),
        radial-gradient(circle at 12% 4%, rgba(181,22,70,.12), transparent 30%),
        radial-gradient(circle at 92% 16%, rgba(215,170,80,.20), transparent 28%),
        linear-gradient(180deg,#fffaf2 0%,#f9efe4 48%,#fff8f0 100%);
}
.lg-landing-v2::before {
    content:"";
    position:absolute;
    top:-115px;
    right:-105px;
    width:300px;
    height:300px;
    border-radius:50%;
    background:radial-gradient(circle,#fff 0%,#fde8ee 38%,rgba(181,22,70,.10) 60%,transparent 72%);
    animation:lg-v2-moon-drift 10s ease-in-out infinite;
    pointer-events:none;
}
.lg-landing-v2::after {
    content:"";
    position:absolute;
    left:-20%;
    right:-20%;
    top:420px;
    height:160px;
    background:radial-gradient(ellipse at center,rgba(255,255,255,.70),transparent 72%);
    filter:blur(24px);
    animation:lg-v2-mist 12s ease-in-out infinite alternate;
    pointer-events:none;
    opacity:.8;
}
.lg-landing-v2 * { box-sizing:border-box; }
.lg-v2-topbar,
.lg-v2-main {
    position:relative;
    z-index:1;
    width:min(100%, 1120px);
    margin:0 auto;
}
.lg-v2-topbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:14px 0 6px;
}
.lg-v2-brand {
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    color:var(--lg2-ink);
    text-decoration:none;
}
.lg-v2-wolf-logo {
    position:relative;
    display:grid;
    width:46px;
    height:46px;
    flex:0 0 auto;
    place-items:center;
    border-radius:50%;
    background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.28),transparent 30%), linear-gradient(145deg,var(--lg2-blood),var(--lg2-blood2));
    color:#fff;
    box-shadow:0 14px 32px rgba(181,22,70,.28);
    overflow:hidden;
}
.lg-v2-wolf-logo::before {
    content:"";
    position:absolute;
    inset:-40%;
    background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.30), transparent 64%);
    transform:translateX(-90%) rotate(12deg);
    animation:lg-v2-logo-glint 4.8s ease-in-out infinite;
}
.lg-v2-wolf-logo svg {
    position:relative;
    width:29px;
    height:29px;
    animation:lg-v2-wolf-breath 3.2s ease-in-out infinite;
    filter:drop-shadow(0 2px 4px rgba(0,0,0,.18));
}
.lg-v2-brand strong {
    display:block;
    font-size:16px;
    font-weight:900;
    letter-spacing:-.03em;
    line-height:1.05;
}
.lg-v2-brand small {
    display:block;
    margin-top:2px;
    color:var(--lg2-muted);
    font-size:9.5px;
    font-weight:800;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.lg-v2-top-cta {
    display:inline-flex;
    align-items:center;
    gap:7px;
    border:1px solid rgba(181,22,70,.14);
    border-radius:999px;
    background:rgba(255,255,255,.62);
    color:var(--lg2-blood);
    padding:9px 12px;
    cursor:pointer;
    font-size:12px;
    font-weight:900;
    box-shadow:0 8px 22px rgba(47,26,30,.06);
    white-space:nowrap;
}
.lg-v2-top-cta i {
    width:8px;
    height:8px;
    border-radius:50%;
    background:#24bf66;
    animation:lg-v2-live-pulse 1.7s ease-in-out infinite;
}
.lg-v2-hero {
    display:grid;
    grid-template-rows:auto auto auto;
    gap:12px;
    min-height:calc(100svh - 66px);
    padding:10px 0 18px;
}
.lg-v2-hero-card {
    position:relative;
    overflow:hidden;
    padding:21px 18px 18px;
    border:1px solid rgba(95,64,68,.12);
    border-radius:34px;
    background:linear-gradient(180deg,rgba(255,255,255,.74),rgba(255,248,237,.62));
    box-shadow:var(--lg2-shadow);
    backdrop-filter:blur(18px);
}
.lg-v2-hero-card::before {
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 82% 12%,rgba(181,22,70,.13),transparent 22%), radial-gradient(circle at 14% 90%,rgba(215,170,80,.20),transparent 26%);
    pointer-events:none;
}
.lg-v2-hero-card > * { position:relative; z-index:1; }
.lg-v2-eyebrow,
.lg-v2-kicker {
    margin:0;
    color:#73696c;
    font-size:10px;
    font-weight:900;
    letter-spacing:.16em;
    line-height:1.3;
    text-transform:uppercase;
}
.lg-v2-eyebrow {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:13px;
    padding:8px 10px;
    border:1px solid rgba(181,22,70,.10);
    border-radius:999px;
    background:rgba(255,255,255,.66);
}
.lg-v2-eyebrow b,
.lg-v2-kicker { color:var(--lg2-blood); }
.lg-v2-hero h1 {
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    white-space:nowrap !important;
}
.lg-v2-title {
    margin:0;
    max-width:820px;
    color:var(--lg2-ink);
    font-size:clamp(38px, 11.8vw, 68px);
    line-height:.88;
    letter-spacing:-.075em;
    font-weight:950;
}
.lg-v2-title em {
    display:block;
    color:var(--lg2-blood);
    font-style:normal;
}
.lg-v2-sub {
    margin:15px 0 0;
    max-width:680px;
    color:#5d5558;
    font-size:15.8px;
    line-height:1.55;
}
.lg-v2-proof-row {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:14px;
}
.lg-v2-proof-row span {
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:8px 10px;
    border:1px solid rgba(63,42,46,.08);
    border-radius:999px;
    background:rgba(255,255,255,.72);
    color:#625a5d;
    font-size:11.5px;
    font-weight:800;
    box-shadow:0 8px 18px rgba(47,26,30,.045);
}
.lg-v2-cta-box {
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin-top:18px;
}
.lg-v2-btn {
    display:inline-flex;
    min-height:53px;
    align-items:center;
    justify-content:center;
    padding:12px 16px;
    border:1px solid #ddd4cf;
    border-radius:17px;
    background:rgba(255,255,255,.78);
    color:var(--lg2-ink);
    cursor:pointer;
    font-size:15px;
    font-weight:950;
    letter-spacing:-.01em;
    line-height:1.15;
    text-align:center;
    text-decoration:none;
    box-shadow:0 8px 20px rgba(47,26,30,.05);
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.lg-v2-btn:active { transform:scale(.985); }
.lg-v2-btn:hover { transform:translateY(-2px); }
.lg-v2-btn--primary {
    border-color:rgba(181,22,70,.42);
    background:linear-gradient(180deg,var(--lg2-blood),var(--lg2-blood2));
    color:#fff;
    box-shadow:var(--lg2-red-shadow);
}
.lg-v2-btn--gold {
    border-color:rgba(215,170,80,.45);
    background:linear-gradient(180deg,#fffdf9,#fff0cc);
    color:#75531f;
    box-shadow:0 14px 32px rgba(215,170,80,.16);
}
.lg-v2-mini-game {
    position:relative;
    overflow:hidden;
    min-height:164px;
    padding:12px;
    border:1px solid rgba(93,64,70,.11);
    border-radius:30px;
    background:radial-gradient(circle at center,#fff2cb 0%,#fff7ea 30%,#f5e7d3 78%);
    box-shadow:var(--lg2-shadow);
}
.lg-v2-mini-head {
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#6d6265;
    font-size:10px;
    font-weight:900;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.lg-v2-mini-head strong { color:var(--lg2-blood); font-size:14px; letter-spacing:.03em; }
.lg-v2-fire-ring {
    position:absolute;
    left:50%;
    top:54%;
    display:grid;
    width:92px;
    height:92px;
    place-items:center;
    border:1px dashed rgba(215,170,80,.38);
    border-radius:50%;
    background:rgba(255,255,255,.23);
    box-shadow:inset 0 0 32px rgba(215,170,80,.16);
    transform:translate(-50%,-50%);
}
.lg-v2-fire-ring::before {
    content:"";
    position:absolute;
    width:128px;
    height:128px;
    border:1px solid rgba(215,170,80,.16);
    border-radius:50%;
}
.lg-v2-fire {
    font-size:39px;
    animation:lg-v2-fire-pulse 1.7s ease-in-out infinite;
    filter:drop-shadow(0 8px 12px rgba(255,140,22,.20));
}
.lg-v2-chip {
    position:absolute;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:62px;
    max-width:96px;
    min-height:34px;
    padding:7px 10px;
    overflow:hidden;
    border:1px solid rgba(172,138,82,.40);
    border-radius:14px;
    background:rgba(255,255,255,.80);
    color:#3b2d31;
    font-size:11px;
    font-weight:950;
    text-overflow:ellipsis;
    white-space:nowrap;
    box-shadow:0 8px 18px rgba(44,30,28,.07);
}
.lg-v2-chip--wolf { border-color:rgba(181,22,70,.35); background:#fff1f5; color:var(--lg2-blood); }
.lg-v2-chip--me { border-color:rgba(36,191,102,.45); background:#effff5; color:#158b4b; }
.lg-v2-c1 { left:12px; top:48px; }
.lg-v2-c2 { right:15px; top:50px; }
.lg-v2-c3 { left:21px; bottom:28px; }
.lg-v2-c4 { right:22px; bottom:26px; }
.lg-v2-mini-status {
    position:absolute;
    left:50%;
    bottom:9px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:7px 10px;
    border:1px solid rgba(255,255,255,.8);
    border-radius:999px;
    background:rgba(255,255,255,.78);
    color:#6b6265;
    font-size:10px;
    font-weight:900;
    white-space:nowrap;
    box-shadow:0 8px 18px rgba(47,26,30,.06);
    transform:translateX(-50%);
}
.lg-v2-quick-stats {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:9px;
}
.lg-v2-quick-stats div {
    padding:12px 8px;
    border:1px solid rgba(95,64,68,.10);
    border-radius:20px;
    background:rgba(255,255,255,.72);
    text-align:center;
    box-shadow:0 10px 24px rgba(47,26,30,.05);
}
.lg-v2-quick-stats strong {
    display:block;
    font-size:20px;
    font-weight:950;
    letter-spacing:-.06em;
    line-height:1;
}
.lg-v2-quick-stats span {
    display:block;
    margin-top:5px;
    color:#7a7073;
    font-size:8.8px;
    font-weight:900;
    letter-spacing:.16em;
    line-height:1.25;
    text-transform:uppercase;
}
.lg-v2-form-card,
.lg-v2-section,
.lg-v2-final,
.lg-v2-seo {
    position:relative;
    z-index:1;
    width:min(100%, 1120px);
    margin:24px auto 0;
}
.lg-v2-form-card,
.lg-v2-card,
.lg-v2-quote,
.lg-v2-seo {
    padding:20px;
    border:1px solid rgba(95,64,68,.11);
    border-radius:26px;
    background:rgba(255,255,255,.70);
    box-shadow:var(--lg2-shadow);
    backdrop-filter:blur(14px);
}
.lg-v2-form-card[hidden] { display:none !important; }
.lg-v2-form-card h2,
.lg-v2-section h2,
.lg-v2-final h2,
.lg-v2-seo h2 {
    margin:8px 0 0;
    color:var(--lg2-ink);
    font-size:clamp(30px,8.6vw,52px);
    font-weight:950;
    line-height:.98;
    letter-spacing:-.065em;
}
.lg-v2-form-card p,
.lg-v2-lead,
.lg-v2-card p,
.lg-v2-quote p,
.lg-v2-seo p {
    margin:14px 0 0;
    max-width:760px;
    color:#625a5d;
    font-size:16px;
    line-height:1.7;
}
.lg-v2-grid {
    display:grid;
    gap:14px;
    margin-top:20px;
}
.lg-v2-card h3,
.lg-v2-quote strong {
    margin:0;
    color:var(--lg2-ink);
    font-size:20px;
    font-weight:950;
    letter-spacing:-.04em;
}
.lg-v2-step {
    display:grid;
    width:38px;
    height:38px;
    margin-bottom:14px;
    place-items:center;
    border-radius:50%;
    background:var(--lg2-blood);
    color:white;
    font-weight:950;
}
.lg-v2-dark {
    overflow:hidden;
    padding:24px;
    border-radius:32px;
    background:radial-gradient(circle at 90% 0%,rgba(181,22,70,.28),transparent 30%), radial-gradient(circle at 20% 100%,rgba(215,170,80,.18),transparent 34%), linear-gradient(135deg,var(--lg2-night),#24102d);
    color:#fff;
    box-shadow:var(--lg2-shadow);
}
.lg-v2-dark h2,
.lg-v2-final h2 { color:#fff; }
.lg-v2-dark .lg-v2-kicker,
.lg-v2-final .lg-v2-kicker { color:rgba(255,255,255,.72); }
.lg-v2-dark p { color:rgba(255,255,255,.74); }
.lg-v2-dark article {
    padding:16px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:22px;
    background:rgba(255,255,255,.08);
}
.lg-v2-dark h3 { color:#fff; }
.lg-v2-quote { background:#fff; }
.lg-v2-quote strong {
    display:block;
    margin-top:12px;
    font-size:14px;
}
.lg-v2-final {
    padding:25px 20px;
    border-radius:34px;
    background:linear-gradient(135deg,var(--lg2-blood),var(--lg2-night));
    color:#fff;
    box-shadow:var(--lg2-red-shadow);
}
.lg-v2-final p { color:rgba(255,255,255,.76); }
.lg-v2-final .lg-v2-btn:not(.lg-v2-btn--gold) {
    border-color:rgba(255,255,255,.22);
    background:rgba(255,255,255,.12);
    color:#fff;
}
.lg-v2-final .lg-v2-btn:first-child {
    background:#fff;
    color:var(--lg2-blood);
}
.lg-v2-resume {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:14px;
    padding:14px;
    border:1px solid rgba(194,164,123,.42);
    border-radius:22px;
    background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(255,247,232,.82));
    box-shadow:0 14px 32px rgba(53,38,30,.08);
}
.lg-v2-resume[hidden] { display:none !important; }
.lg-v2-resume strong { display:block; margin:2px 0 4px; font-size:20px; line-height:1.05; letter-spacing:-.035em; }
.lg-v2-resume strong span { color:var(--lg2-blood); }
.lg-v2-resume p[data-resume-summary] { margin:0; color:#6c6466; font-size:12.5px; line-height:1.35; }
.lg-v2-resume__actions { display:grid; min-width:118px; gap:8px; }
.lg-v2-resume__actions .lg-v2-btn { min-height:40px; padding:8px 10px; font-size:12px; border-radius:13px; }
.lg-landing-v2 .lg-error { width:min(100%, 1120px); margin:18px auto 0; }
@media (min-width:620px) {
    .lg-v2-cta-box { grid-template-columns:1fr 1fr; }
    .lg-v2-cta-box .lg-v2-btn--gold { grid-column:span 2; }
    .lg-v2-mini-game { min-height:210px; }
    .lg-v2-fire-ring { width:116px; height:116px; }
    .lg-v2-fire-ring::before { width:160px; height:160px; }
    .lg-v2-fire { font-size:52px; }
}
@media (min-width:860px) {
    .lg-v2-topbar { padding-top:24px; }
    .lg-v2-hero {
        grid-template-columns:1.05fr .95fr;
        grid-template-rows:auto auto;
        align-items:center;
        column-gap:34px;
        min-height:calc(100svh - 80px);
        padding-top:34px;
    }
    .lg-v2-hero-card { grid-row:1 / span 2; padding:34px; }
    .lg-v2-mini-game { min-height:360px; }
    .lg-v2-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .lg-v2-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .lg-v2-section { margin-top:54px; }
    .lg-v2-dark { padding:36px; }
    .lg-v2-final { padding:40px; }
}
@media (max-height:760px) and (max-width:619px) {
    .lg-v2-topbar { padding-top:10px; }
    .lg-v2-wolf-logo { width:40px; height:40px; }
    .lg-v2-wolf-logo svg { width:25px; height:25px; }
    .lg-v2-hero { gap:10px; padding-top:8px; }
    .lg-v2-hero-card { padding:16px 15px; }
    .lg-v2-eyebrow { margin-bottom:10px; padding:7px 9px; font-size:9px; }
    .lg-v2-title { font-size:38px; }
    .lg-v2-sub { margin-top:12px; font-size:14.2px; line-height:1.45; }
    .lg-v2-proof-row { margin-top:10px; }
    .lg-v2-proof-row span { padding:7px 9px; font-size:10.5px; }
    .lg-v2-cta-box { gap:8px; margin-top:14px; }
    .lg-v2-btn { min-height:49px; }
    .lg-v2-mini-game { min-height:142px; }
    .lg-v2-quick-stats { gap:7px; }
    .lg-v2-quick-stats div { padding:10px 6px; }
    .lg-v2-quick-stats strong { font-size:18px; }
}
@keyframes lg-v2-moon-drift { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-12px,14px) scale(1.03)} }
@keyframes lg-v2-mist { from{transform:translateX(-5%)} to{transform:translateX(5%)} }
@keyframes lg-v2-logo-glint { 0%,60%,100%{transform:translateX(-95%) rotate(12deg)} 72%{transform:translateX(95%) rotate(12deg)} }
@keyframes lg-v2-wolf-breath { 0%,100%{transform:scale(1)} 50%{transform:scale(1.055)} }
@keyframes lg-v2-live-pulse { 0%,100%{box-shadow:0 0 0 0 rgba(36,191,102,.40)} 50%{box-shadow:0 0 0 8px rgba(36,191,102,0)} }
@keyframes lg-v2-fire-pulse { 0%,100%{transform:scale(1);filter:saturate(1)} 50%{transform:scale(1.08);filter:saturate(1.35)} }
@media (prefers-reduced-motion:reduce) {
    .lg-landing-v2 *, .lg-landing-v2::before, .lg-landing-v2::after { animation:none !important; transition:none !important; }
}


/* v1.9.9 — homepage copy replacements and top-right proof stat */
.lg-v2-mini-head--stat {
    justify-content: flex-end;
    text-align: right;
}
.lg-v2-mini-head--stat strong {
    display: inline-flex;
    max-width: 210px;
    padding: 8px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.76);
    color: #b51646;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: -.01em;
    line-height: 1.15;
    box-shadow: 0 8px 18px rgba(47,26,30,.06);
}
.lg-v2-section .lg-v2-card h3:only-child {
    margin-bottom: 0;
}
@media (max-width: 430px) {
    .lg-v2-mini-head--stat strong { max-width: 178px; font-size: 10.8px; }
}


/* v1.9.9 — clean animated village scene, homepage + player board */
.lg-v2-hero-card {
    padding: 18px 16px 16px;
    border-radius: 30px;
    background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,248,238,.56));
}
.lg-v2-title {
    text-align: left;
    letter-spacing: -.072em;
    line-height: .92;
}
.lg-v2-title span { display:block; }
.lg-v2-title em { display:block; }
.lg-v2-sub { max-width: 590px; }
.lg-v2-proof-row span:nth-child(2) { display:none; }
.lg-v2-mini-game--village {
    min-height: 236px;
    padding: 10px;
    border-radius: 32px;
    background: radial-gradient(circle at 50% 52%, #fff1cc 0%, #fff7eb 36%, #f4e7d4 78%);
}
.lg-v2-mini-game--village::before {
    content:"";
    position:absolute;
    inset:8px;
    border:1px solid rgba(215,170,80,.18);
    border-radius:26px;
    pointer-events:none;
}
.lg-v2-mini-head--stat {
    justify-content:flex-end;
    min-height:34px;
    padding: 4px 6px;
    letter-spacing:.08em;
}
.lg-v2-mini-head--stat strong {
    display:inline-flex;
    max-width: 214px;
    justify-content:center;
    padding:9px 13px;
    border-radius:999px;
    background:rgba(255,255,255,.82);
    box-shadow:0 8px 18px rgba(54,33,28,.05);
    color:var(--lg2-blood);
    font-size:12px;
    line-height:1.15;
    text-align:center;
}
.lg-v2-village-scene {
    position:absolute;
    inset:42px 8px 34px;
    border-radius:50%;
    background:radial-gradient(circle at 50% 56%, rgba(255,230,179,.96) 0 16%, rgba(255,249,239,.62) 34%, transparent 58%);
}
.lg-v2-village-scene::before,
.lg-v2-village-scene::after {
    content:"";
    position:absolute;
    left:50%; top:54%;
    border:1px dashed rgba(215,170,80,.25);
    border-radius:50%;
    transform:translate(-50%,-50%);
    pointer-events:none;
}
.lg-v2-village-scene::before { width:76%; height:72%; }
.lg-v2-village-scene::after { width:54%; height:50%; border-style:solid; opacity:.5; }
.lg-v2-village-glow {
    position:absolute;
    left:50%; top:55%;
    width:140px; height:140px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(255,164,50,.30), transparent 68%);
    transform:translate(-50%,-50%);
    animation:lg-v2-fire-halo 2.2s ease-in-out infinite alternate;
}
.lg-v2-hut,
.lg-v2-tree {
    position:absolute;
    display:block;
    opacity:.88;
    filter: drop-shadow(0 7px 8px rgba(82,49,25,.10));
}
.lg-v2-hut {
    width:28px; height:22px;
    border-radius:4px 4px 6px 6px;
    background:linear-gradient(180deg,#9b6437,#704426);
}
.lg-v2-hut::before {
    content:"";
    position:absolute;
    left:-4px; right:-4px; top:-10px;
    height:14px;
    clip-path:polygon(50% 0,100% 100%,0 100%);
    background:linear-gradient(180deg,#c77c40,#8a4f26);
}
.lg-v2-hut::after {
    content:"";
    position:absolute;
    right:5px; bottom:5px;
    width:5px; height:5px;
    border-radius:2px;
    background:#ffd16d;
    box-shadow:0 0 8px #ffd16d;
}
.lg-v2-hut--one { left:26%; top:34%; transform:rotate(-10deg) scale(.9); }
.lg-v2-hut--two { right:24%; top:35%; transform:rotate(12deg) scale(.88); }
.lg-v2-hut--three { right:28%; bottom:20%; transform:rotate(-9deg) scale(.72); opacity:.75; }
.lg-v2-tree {
    width:18px; height:32px;
    background:linear-gradient(180deg,#5d7f4d,#3f6036);
    clip-path:polygon(50% 0,80% 35%,68% 35%,92% 68%,72% 68%,100% 100%,0 100%,28% 68%,8% 68%,32% 35%,20% 35%);
}
.lg-v2-tree--one { left:20%; bottom:28%; transform:rotate(-6deg); }
.lg-v2-tree--two { right:18%; bottom:33%; transform:rotate(7deg) scale(.92); }
.lg-v2-spark {
    position:absolute;
    z-index:2;
    color:#d7a850;
    font-size:16px;
    animation:lg-v2-spark-float 3.8s ease-in-out infinite;
}
.lg-v2-spark--one { left:28%; top:19%; }
.lg-v2-spark--two { right:26%; top:21%; animation-delay:1.1s; }
.lg-v2-spark--three { left:49%; bottom:13%; animation-delay:2.0s; }
.lg-v2-campfire {
    position:absolute;
    left:50%; top:55%;
    width:96px; height:96px;
    transform:translate(-50%,-50%);
    display:grid;
    place-items:center;
    z-index:3;
}
.lg-v2-campfire__halo,
.lg-v2-campfire__stones,
.lg-v2-campfire__logs,
.lg-v2-campfire__flame { position:absolute; display:block; }
.lg-v2-campfire__halo {
    inset:-26%; border-radius:50%;
    background:radial-gradient(circle, rgba(255,170,54,.34), rgba(255,140,31,.08) 56%, transparent 72%);
    animation:lg-v2-fire-halo 2.1s ease-in-out infinite alternate;
}
.lg-v2-campfire__stones {
    inset:12%; border-radius:50%;
    border:9px dotted rgba(120,82,54,.72);
    background:radial-gradient(circle, rgba(93,45,22,.65), rgba(143,74,28,.22) 64%, transparent 66%);
}
.lg-v2-campfire__logs {
    width:56px; height:12px; border-radius:999px;
    background:#6e3d22;
    transform:rotate(24deg);
    box-shadow:0 0 0 0 #6e3d22, 0 0 0 0 #6e3d22;
}
.lg-v2-campfire__logs::after {
    content:""; position:absolute; inset:0; border-radius:999px; background:#824725; transform:rotate(115deg);
}
.lg-v2-campfire__flame {
    bottom:28px;
    width:34px; height:48px;
    border-radius:56% 44% 50% 50%;
    transform-origin:50% 100%;
    clip-path:polygon(50% 0,76% 31%,92% 60%,75% 100%,50% 90%,25% 100%,8% 60%,25% 31%);
}
.lg-v2-campfire__flame--back { background:linear-gradient(180deg,#ff8d1d,#e74313); animation:lg-v2-flame-back 1.45s ease-in-out infinite alternate; }
.lg-v2-campfire__flame--front { width:22px; height:34px; background:linear-gradient(180deg,#fff39b,#ffb221); animation:lg-v2-flame-front 1.18s ease-in-out infinite alternate; }
.lg-v2-chip--plain {
    min-width:76px;
    min-height:38px;
    padding:8px 12px 13px;
    border-radius:16px;
    font-size:12px;
    background:rgba(255,255,255,.82);
    border-color:rgba(232,199,159,.80);
    color:#2c2528;
    box-shadow:0 9px 18px rgba(64,39,29,.06);
}
.lg-v2-chip--plain::after {
    content:"";
    position:absolute;
    left:50%; bottom:6px;
    width:7px; height:7px;
    border-radius:50%;
    background:#118953;
    box-shadow:0 0 0 3px rgba(17,137,83,.08);
    transform:translateX(-50%);
}
.lg-v2-mini-game--village .lg-v2-c1 { left:50%; top:46px; }
.lg-v2-mini-game--village .lg-v2-c2 { right:10px; top:86px; }
.lg-v2-mini-game--village .lg-v2-c3 { left:10px; top:86px; }
.lg-v2-mini-game--village .lg-v2-c4 { right:16px; bottom:46px; }
.lg-v2-mini-game--village .lg-v2-c5 { left:50%; bottom:18px; }
.lg-v2-mini-game--village .lg-v2-c6 { left:16px; bottom:46px; }
.lg-v2-mini-game--village .lg-v2-c7 { left:50%; bottom:58px; border-color:rgba(17,137,83,.45); color:#118953; background:#f5fff8; }
.lg-v2-mini-game--village .lg-v2-mini-status {
    bottom:9px;
    z-index:6;
    max-width:calc(100% - 28px);
    overflow:hidden;
    text-overflow:ellipsis;
}
@media (max-height:760px) and (max-width:619px) {
    .lg-v2-mini-game--village { min-height:190px; }
    .lg-v2-village-scene { inset:40px 4px 28px; }
    .lg-v2-chip--plain { min-width:66px; min-height:32px; padding:7px 8px 12px; font-size:10.5px; }
    .lg-v2-campfire { width:76px; height:76px; }
    .lg-v2-campfire__flame { bottom:23px; transform:scale(.82); }
    .lg-v2-mini-head--stat strong { max-width:196px; font-size:10.5px; padding:8px 10px; }
    .lg-v2-proof-row span:nth-child(3) { display:none; }
}
@media (min-width:860px) {
    .lg-v2-mini-game--village { min-height:390px; }
    .lg-v2-campfire { width:130px; height:130px; }
    .lg-v2-campfire__flame { bottom:40px; transform:scale(1.28); }
    .lg-v2-chip--plain { min-width:96px; min-height:46px; font-size:14px; }
    .lg-v2-mini-game--village .lg-v2-c1 { top:66px; }
    .lg-v2-mini-game--village .lg-v2-c2 { right:34px; top:126px; }
    .lg-v2-mini-game--village .lg-v2-c3 { left:34px; top:126px; }
    .lg-v2-mini-game--village .lg-v2-c4 { right:54px; bottom:88px; }
    .lg-v2-mini-game--village .lg-v2-c5 { bottom:46px; }
    .lg-v2-mini-game--village .lg-v2-c6 { left:54px; bottom:88px; }
    .lg-v2-mini-game--village .lg-v2-c7 { bottom:110px; }
}
.lg-village-ring-section {
    padding:12px 8px 10px;
    border-color:rgba(231,206,176,.8);
    background:linear-gradient(180deg, rgba(255,250,241,.96), rgba(255,244,230,.92));
    border-radius:24px;
}
.lg-village-ring-section > h3 {
    margin:0 0 8px;
    color:#2a2022 !important;
    font-family:var(--lg-font-h);
    font-size:clamp(22px,6vw,30px);
    font-weight:760;
    letter-spacing:-.045em;
}
.lg-village-ring {
    min-height:clamp(330px,88vw,470px);
    border-radius:32px;
    background:radial-gradient(circle at 50% 51%, rgba(255,225,164,.74) 0 20%, rgba(255,252,245,.72) 38%, rgba(255,247,236,.88) 100%);
    box-shadow: inset 0 0 0 1px rgba(232,198,159,.42), 0 14px 34px rgba(60,36,25,.06);
    overflow:hidden;
}
.lg-village-ring::before,
.lg-village-ring::after {
    content:"";
    position:absolute;
    left:50%; top:52%;
    border-radius:50%;
    transform:translate(-50%,-50%);
    pointer-events:none;
}
.lg-village-ring::before { width:78%; height:72%; border:1px dashed rgba(215,170,80,.24); }
.lg-village-ring::after { width:54%; height:50%; border:1px solid rgba(215,170,80,.14); }
.lg-village-ring__frame,
.lg-village-ring__frame--inner { display:none; }
.lg-village-ambience { position:absolute; inset:0; z-index:1; pointer-events:none; }
.lg-village-hut,
.lg-village-spark { position:absolute; display:block; }
.lg-village-hut {
    width:28px; height:22px;
    border-radius:4px 4px 6px 6px;
    background:linear-gradient(180deg,#9d6639,#6e4428);
    opacity:.78;
    filter:drop-shadow(0 6px 7px rgba(71,45,27,.10));
}
.lg-village-hut::before { content:""; position:absolute; left:-4px; right:-4px; top:-10px; height:14px; clip-path:polygon(50% 0,100% 100%,0 100%); background:linear-gradient(180deg,#c77d43,#8a4f27); }
.lg-village-hut::after { content:""; position:absolute; right:5px; bottom:5px; width:5px; height:5px; border-radius:2px; background:#ffd16d; box-shadow:0 0 8px #ffd16d; }
.lg-village-hut--one { left:24%; top:33%; transform:rotate(-10deg) scale(.9); }
.lg-village-hut--two { right:24%; top:34%; transform:rotate(12deg) scale(.88); }
.lg-village-hut--three { right:30%; bottom:20%; transform:rotate(-9deg) scale(.72); opacity:.62; }
.lg-village-spark { color:#d7a850; font-size:16px; animation:lg-v2-spark-float 3.7s ease-in-out infinite; }
.lg-village-spark--one { left:27%; top:19%; }
.lg-village-spark--two { right:25%; top:20%; animation-delay:1.1s; }
.lg-village-spark--three { left:49%; bottom:15%; animation-delay:2.0s; }
.lg-village-fire { z-index:3; width:clamp(96px,27vw,142px); height:clamp(96px,27vw,142px); }
.lg-village-fire__halo { inset:-26%; background:radial-gradient(circle, rgba(255,170,54,.36), rgba(255,140,31,.08) 56%, transparent 74%); animation:lg-v2-fire-halo 2.1s ease-in-out infinite alternate; }
.lg-village-fire__stones { inset:12%; border:clamp(8px,2.2vw,12px) dotted rgba(120,82,54,.72); background:radial-gradient(circle, rgba(93,45,22,.65), rgba(143,74,28,.22) 64%, transparent 66%); }
.lg-village-fire__logs { position:absolute; width:58%; height:10%; border-radius:999px; background:#6e3d22; transform:rotate(24deg); z-index:2; }
.lg-village-fire__logs::after { content:""; position:absolute; inset:0; border-radius:999px; background:#824725; transform:rotate(115deg); }
.lg-village-fire__flame { position:absolute; bottom:32%; left:50%; border-radius:56% 44% 50% 50%; transform-origin:50% 100%; clip-path:polygon(50% 0,76% 31%,92% 60%,75% 100%,50% 90%,25% 100%,8% 60%,25% 31%); filter:drop-shadow(0 8px 10px rgba(190,81,19,.24)); }
.lg-village-fire__flame--back { width:36%; height:48%; background:linear-gradient(180deg,#ff8d1d,#e74313); transform:translateX(-50%); animation:lg-v2-flame-back 1.45s ease-in-out infinite alternate; }
.lg-village-fire__flame--front { width:24%; height:34%; background:linear-gradient(180deg,#fff39b,#ffb221); transform:translateX(-50%); animation:lg-v2-flame-front 1.18s ease-in-out infinite alternate; }
.lg-village-player {
    z-index:5;
    min-width:clamp(82px,22vw,120px);
    min-height:clamp(44px,11vw,58px);
    max-width:128px;
    padding:9px 10px 13px;
    border-radius:18px;
    border-color:rgba(232,199,159,.86);
    background:rgba(255,255,255,.86);
    box-shadow:0 9px 18px rgba(64,39,29,.07), inset 0 0 0 1px rgba(255,255,255,.7);
}
.lg-village-player__name {
    font-size:clamp(12px,3vw,15px);
    color:#2a2225 !important;
    font-weight:850;
}
.lg-village-player__status-dot {
    width:8px;
    height:8px;
    margin-top:7px;
    border-radius:50%;
    background:#108850;
    box-shadow:0 0 0 4px rgba(16,136,80,.08);
}
.lg-village-player__role { display:none !important; }
.lg-village-player--me {
    border-color:rgba(16,136,80,.55);
    background:linear-gradient(180deg,#fbfffc,#effff5);
    color:#108850;
}
.lg-village-player--me .lg-village-player__name { color:#108850 !important; }
.lg-village-player--dead { opacity:.48; filter:grayscale(.4); }
.lg-village-player--dead .lg-village-player__status-dot { background:#9a8f91; box-shadow:none; }
.lg-app--player-stage .lg-village-ring { min-height:clamp(315px,84vw,405px); }
.lg-app--player-stage .lg-village-fire { top:50%; width:clamp(86px,23vw,116px); height:clamp(86px,23vw,116px); }
.lg-app--player-stage .lg-village-player { min-width:clamp(72px,20vw,96px); min-height:42px; max-width:104px; padding:8px 8px 12px; border-radius:16px; }
.lg-app--player-stage .lg-village-player__name { font-size:clamp(11px,2.85vw,13px); }
.lg-app--player-stage .lg-village-player--mj-center { border-color:rgba(215,170,80,.58); background:rgba(255,253,244,.90); }
@keyframes lg-v2-fire-halo { from{transform:scale(.96); opacity:.72;} to{transform:scale(1.08); opacity:1;} }
@keyframes lg-v2-flame-back { from{transform:translateX(-50%) scaleX(.92) scaleY(.96) rotate(-3deg);} to{transform:translateX(-50%) scaleX(1.06) scaleY(1.08) rotate(4deg);} }
@keyframes lg-v2-flame-front { from{transform:translateX(-50%) scaleX(1.05) scaleY(.92) rotate(3deg);} to{transform:translateX(-50%) scaleX(.92) scaleY(1.08) rotate(-4deg);} }
@keyframes lg-v2-spark-float { 0%,100%{transform:translateY(0) scale(1); opacity:.55;} 50%{transform:translateY(-7px) scale(1.1); opacity:1;} }
@media (prefers-reduced-motion:reduce) {
    .lg-v2-campfire__halo,.lg-v2-campfire__flame,.lg-village-fire__halo,.lg-village-fire__flame,.lg-v2-spark,.lg-village-spark { animation:none !important; }
}


/* v1.9.9 — compact village scene, private role visibility, day/night mode, right chat bubble */
.lg-banner--attention {
    position:relative;
    overflow:hidden;
    border:1px solid rgba(181,22,70,.24) !important;
    background:linear-gradient(135deg, rgba(255,244,249,.98), rgba(255,255,255,.94)) !important;
    box-shadow:0 14px 34px rgba(181,22,70,.10), inset 0 0 0 1px rgba(255,255,255,.75) !important;
    animation:lg-next-step-glow 2.4s ease-in-out infinite;
}
.lg-banner--attention::before {
    content:"À faire maintenant";
    position:absolute;
    top:8px;
    right:12px;
    color:#b51646;
    font-size:10px;
    font-weight:900;
    letter-spacing:.16em;
    text-transform:uppercase;
    opacity:.72;
}
.lg-banner--attention .lg-banner__emoji {
    animation:lg-attention-hand 1.8s ease-in-out infinite;
}
.lg-banner--attention .lg-banner__title {
    padding-right:86px;
    color:#9f173d !important;
}
@keyframes lg-next-step-glow {
    0%,100% { box-shadow:0 14px 34px rgba(181,22,70,.08), inset 0 0 0 1px rgba(255,255,255,.75); }
    50% { box-shadow:0 16px 40px rgba(181,22,70,.18), inset 0 0 0 1px rgba(255,255,255,.85); }
}
@keyframes lg-attention-hand {
    0%,100% { transform:rotate(0deg) scale(1); }
    35% { transform:rotate(-7deg) scale(1.05); }
    70% { transform:rotate(7deg) scale(1.05); }
}

.lg-village-ring { transition:background .35s ease, box-shadow .35s ease; }
.lg-village-phase-badge {
    position:absolute;
    top:10px;
    right:10px;
    z-index:8;
    display:grid;
    width:34px;
    height:34px;
    place-items:center;
    border:1px solid rgba(215,170,80,.32);
    border-radius:50%;
    background:rgba(255,255,255,.72);
    box-shadow:0 8px 18px rgba(52,32,28,.08);
    font-size:18px;
    pointer-events:none;
}
.lg-village-ring--day {
    background:radial-gradient(circle at 50% 51%, rgba(255,226,166,.76) 0 20%, rgba(255,253,247,.78) 39%, rgba(255,248,239,.94) 100%) !important;
}
.lg-village-ring--night {
    background:radial-gradient(circle at 50% 51%, rgba(255,166,54,.30) 0 21%, rgba(54,31,61,.78) 43%, rgba(22,11,34,.96) 100%) !important;
    box-shadow:inset 0 0 0 1px rgba(186,154,235,.18), 0 15px 38px rgba(20,9,28,.18) !important;
}
.lg-village-ring--night::before { border-color:rgba(245,221,168,.18) !important; }
.lg-village-ring--night::after { border-color:rgba(255,255,255,.10) !important; }
.lg-village-ring--night .lg-village-phase-badge {
    background:rgba(31,20,48,.72);
    border-color:rgba(255,255,255,.18);
    box-shadow:0 0 24px rgba(255,215,120,.12);
}
.lg-village-ring--night .lg-village-hut { opacity:.45; filter:brightness(.75) drop-shadow(0 0 8px rgba(255,190,85,.12)); }
.lg-village-ring--night .lg-village-fire__halo { background:radial-gradient(circle, rgba(255,156,45,.62), rgba(255,120,31,.14) 58%, transparent 75%) !important; }

.lg-village-player,
.lg-app--player-stage .lg-village-player {
    min-width:unset !important;
    width:clamp(62px, 17vw, 88px) !important;
    min-height:unset !important;
    max-width:92px !important;
    padding:6px 8px !important;
    border-radius:14px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:2px !important;
    white-space:nowrap;
}
.lg-village-ring--dense .lg-village-player,
.lg-app--player-stage .lg-village-ring--dense .lg-village-player {
    width:clamp(48px, 13.2vw, 64px) !important;
    max-width:66px !important;
    padding:4px 5px !important;
    border-radius:12px !important;
}
.lg-village-player__nameRow {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    width:100%;
    min-width:0;
}
.lg-village-player__name,
.lg-app--player-stage .lg-village-player__name {
    max-width:calc(100% - 12px);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:clamp(10.5px, 2.55vw, 13px) !important;
    line-height:1.1 !important;
}
.lg-village-ring--dense .lg-village-player__name {
    font-size:clamp(9.2px, 2.35vw, 11px) !important;
}
.lg-village-player__status-dot,
.lg-app--player-stage .lg-village-player__status-dot {
    flex:0 0 auto;
    width:7px !important;
    height:7px !important;
    margin:0 !important;
    border-radius:50%;
    background:#10965a !important;
    box-shadow:0 0 0 3px rgba(16,150,90,.10) !important;
}
.lg-village-player__role,
.lg-app--player-stage .lg-village-player__role {
    display:block !important;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#8a6a22 !important;
    font-size:9.5px !important;
    font-weight:850 !important;
    line-height:1.05 !important;
    letter-spacing:.01em;
}
.lg-village-ring--dense .lg-village-player__role { font-size:8.4px !important; }
.lg-village-player--me .lg-village-player__role { color:#108850 !important; }
.lg-village-player--known-wolf:not(.lg-village-player--me) {
    border-color:rgba(181,22,70,.42) !important;
    background:linear-gradient(180deg,#fff8fa,#fff0f4) !important;
}
.lg-village-player--known-wolf .lg-village-player__role { color:#b51646 !important; }
.lg-village-player__mj-label {
    margin-top:0 !important;
    color:#9a711b !important;
    font-size:8.5px !important;
    line-height:1 !important;
}
.lg-village-player__effects { position:absolute; top:-8px; right:-8px; }
.lg-village-player__vote-badge { top:-9px; right:-9px; }
.lg-village-ring--dense .lg-village-fire { width:clamp(76px,21vw,102px) !important; height:clamp(76px,21vw,102px) !important; }

@media (max-width:1023px) {
    .lg-chat-fab,
    .lg-app--live-game:not(.lg-app--host-stage) .lg-chat-fab,
    .lg-app--host-stage .lg-chat-fab {
        left:auto !important;
        right:max(16px, env(safe-area-inset-right)) !important;
        bottom:calc(16px + env(safe-area-inset-bottom)) !important;
    }
    .lg-chat-fab__badge {
        right:-5px !important;
        left:auto !important;
    }
}
@media (max-width:430px) {
    .lg-banner--attention::before { position:static; display:block; margin-bottom:2px; }
    .lg-banner--attention .lg-banner__title { padding-right:0; font-size:17px !important; }
    .lg-village-phase-badge { width:30px; height:30px; font-size:16px; }
}
@media (prefers-reduced-motion:reduce) {
    .lg-banner--attention, .lg-banner--attention .lg-banner__emoji { animation:none !important; }
}


/* v1.9.9 — premium animated top notification inspired by the reference banner */
.lg-banner.lg-banner--premium {
    display:grid !important;
    grid-template-columns:64px minmax(0,1fr) 86px;
    align-items:center;
    gap:14px;
    min-height:92px;
    margin:0 0 14px;
    padding:15px 16px;
    border-radius:24px;
    border:1px solid rgba(206,156,75,.38) !important;
    background:
        radial-gradient(circle at 92% 22%, rgba(255,255,255,.92), transparent 16%),
        radial-gradient(circle at 15% 50%, rgba(255,244,217,.86), transparent 32%),
        linear-gradient(135deg, rgba(255,252,245,.98), rgba(255,247,232,.94)) !important;
    color:#231926 !important;
    box-shadow:0 14px 32px rgba(55,38,31,.12), inset 0 0 0 1px rgba(255,255,255,.78) !important;
    overflow:hidden;
    isolation:isolate;
    animation:lg-premium-banner-enter .42s cubic-bezier(.2,.8,.2,1) both, lg-premium-banner-breathe 3.2s ease-in-out infinite 1s;
}
.lg-banner.lg-banner--premium::before {
    content:"";
    position:absolute;
    inset:6px;
    border-radius:20px;
    border:1px solid rgba(220,176,100,.28);
    pointer-events:none;
    opacity:.9;
}
.lg-banner.lg-banner--premium::after {
    content:"✦";
    position:absolute;
    left:50%;
    top:10px;
    transform:translateX(-50%);
    color:#d7a847;
    font-size:18px;
    line-height:1;
    text-shadow:0 0 16px rgba(215,168,71,.35);
    animation:lg-premium-star 2.6s ease-in-out infinite;
}
.lg-banner--premium .lg-banner__emblem {
    position:relative;
    z-index:1;
    display:grid;
    place-items:center;
    width:58px;
    height:58px;
    border-radius:50%;
    border:1px solid rgba(215,168,71,.65);
    background:radial-gradient(circle at 36% 30%, rgba(255,255,255,.35), transparent 30%), linear-gradient(145deg,#442a55,#170a24);
    box-shadow:0 12px 22px rgba(59,35,64,.18), 0 0 0 6px rgba(215,168,71,.08);
}
.lg-banner--premium .lg-banner__emblemGlow {
    position:absolute;
    inset:-7px;
    border-radius:50%;
    border:1px solid rgba(215,168,71,.25);
    animation:lg-premium-emblem-pulse 2.3s ease-in-out infinite;
}
.lg-banner--premium .lg-banner__emoji {
    width:auto !important;
    height:auto !important;
    border:0 !important;
    border-radius:0 !important;
    background:none !important;
    display:block !important;
    font-size:29px !important;
    filter:drop-shadow(0 5px 8px rgba(0,0,0,.22));
    animation:lg-premium-icon-float 2.4s ease-in-out infinite;
}
.lg-banner--premium .lg-banner__body {
    position:relative;
    z-index:1;
    min-width:0;
}
.lg-banner--premium .lg-banner__eyebrow {
    margin:0 0 2px;
    color:#a47a2d;
    font-size:9.5px;
    font-weight:950;
    letter-spacing:.22em;
    line-height:1.1;
    text-transform:uppercase;
}
.lg-banner--premium .lg-banner__title {
    margin:0;
    padding:0 !important;
    color:#2a1731 !important;
    font-family:var(--lg-font-h);
    font-size:clamp(18px, 4.7vw, 28px);
    font-weight:900;
    line-height:1.02;
    letter-spacing:.02em;
    text-transform:uppercase;
    text-shadow:0 1px 0 rgba(255,255,255,.62);
}
.lg-banner--premium .lg-banner__meta {
    display:inline-flex;
    align-items:center;
    gap:7px;
    max-width:100%;
    margin-top:7px;
    padding:7px 10px;
    border:1px solid rgba(215,168,71,.30);
    border-radius:999px;
    background:rgba(255,255,255,.68);
    color:#a66c11;
    box-shadow:0 7px 18px rgba(215,168,71,.12);
    font-size:12px;
    font-weight:850;
    line-height:1.15;
}
.lg-banner--premium .lg-banner__metaIcon {
    display:grid;
    width:24px;
    height:24px;
    place-items:center;
    border-radius:50%;
    background:rgba(255,246,222,.94);
    color:#b57a18;
    font-size:14px;
    flex:0 0 auto;
}
.lg-banner--premium .lg-banner__timer {
    color:#d99a24 !important;
    font-family:var(--lg-font-ui);
    font-size:14px;
    font-weight:950;
    letter-spacing:.01em;
    margin:0 !important;
}
.lg-banner--premium .lg-banner__hint,
.lg-banner--premium .lg-dim {
    margin-top:7px;
    color:#665c60 !important;
    font-size:12.5px;
    line-height:1.3;
}
.lg-banner--premium .lg-banner__villageGhost {
    position:absolute;
    right:16px;
    bottom:8px;
    z-index:0;
    width:118px;
    height:64px;
    opacity:.18;
    background:
      radial-gradient(circle at 83% 18%, #d7a847 0 8px, transparent 9px),
      linear-gradient(135deg, transparent 0 22%, rgba(99,80,62,.38) 22% 45%, transparent 46%),
      linear-gradient(to top, rgba(99,80,62,.28) 0 34%, transparent 35%),
      linear-gradient(to top, transparent 0 42%, rgba(99,80,62,.30) 43% 52%, transparent 53%);
    clip-path:polygon(0 100%,100% 100%,100% 0,0 0);
    pointer-events:none;
}
.lg-banner--premium.lg-banner--night {
    background:
      radial-gradient(circle at 92% 16%, rgba(255,255,255,.18), transparent 17%),
      linear-gradient(135deg, rgba(34,20,50,.98), rgba(18,9,29,.96)) !important;
    color:#fff !important;
    border-color:rgba(220,184,112,.34) !important;
    box-shadow:0 16px 38px rgba(18,9,29,.25), inset 0 0 0 1px rgba(255,255,255,.06) !important;
}
.lg-banner--premium.lg-banner--night .lg-banner__title { color:#fff5df !important; text-shadow:0 0 20px rgba(215,168,71,.14); }
.lg-banner--premium.lg-banner--night .lg-banner__eyebrow { color:#e7bf72; }
.lg-banner--premium.lg-banner--night .lg-banner__hint,
.lg-banner--premium.lg-banner--night .lg-dim { color:rgba(255,255,255,.72) !important; }
.lg-banner--premium.lg-banner--night .lg-banner__meta { background:rgba(255,255,255,.10); color:#f3c96d; border-color:rgba(215,168,71,.22); }
.lg-banner--premium.lg-banner--day .lg-banner__emblem { background:linear-gradient(145deg,#fff1ba,#db9d28); color:#5c3c0b; }
.lg-banner--premium.lg-banner--attention {
    animation:lg-premium-banner-enter .42s cubic-bezier(.2,.8,.2,1) both, lg-premium-attention 2.2s ease-in-out infinite .6s !important;
}
.lg-banner--premium.lg-banner--attention::before { border-color:rgba(181,22,70,.20); }
.lg-banner--premium.lg-banner--attention .lg-banner__title { color:#9f173d !important; }
.lg-banner--premium.lg-banner--attention .lg-banner__emblem { background:linear-gradient(145deg,#f5d26d,#a9832a); color:#fff; }
@keyframes lg-premium-banner-enter {
    from { opacity:0; transform:translateY(-10px) scale(.985); }
    to { opacity:1; transform:translateY(0) scale(1); }
}
@keyframes lg-premium-banner-breathe {
    0%,100% { transform:translateY(0); }
    50% { transform:translateY(-1px); }
}
@keyframes lg-premium-attention {
    0%,100% { box-shadow:0 14px 32px rgba(55,38,31,.12), 0 0 0 0 rgba(181,22,70,.00), inset 0 0 0 1px rgba(255,255,255,.78); }
    50% { box-shadow:0 18px 42px rgba(181,22,70,.17), 0 0 0 4px rgba(181,22,70,.035), inset 0 0 0 1px rgba(255,255,255,.86); }
}
@keyframes lg-premium-icon-float {
    0%,100% { transform:translateY(0) scale(1); }
    50% { transform:translateY(-2px) scale(1.06); }
}
@keyframes lg-premium-emblem-pulse {
    0%,100% { transform:scale(.96); opacity:.55; }
    50% { transform:scale(1.08); opacity:1; }
}
@keyframes lg-premium-star {
    0%,100% { opacity:.5; transform:translateX(-50%) scale(.95); }
    50% { opacity:1; transform:translateX(-50%) scale(1.12); }
}
@media (max-width:480px) {
    .lg-banner.lg-banner--premium {
        grid-template-columns:54px minmax(0,1fr);
        min-height:82px;
        padding:12px 13px;
        border-radius:21px;
        gap:11px;
    }
    .lg-banner--premium .lg-banner__emblem { width:50px; height:50px; }
    .lg-banner--premium .lg-banner__emoji { font-size:25px !important; }
    .lg-banner--premium .lg-banner__title { font-size:clamp(16px, 4.8vw, 21px); }
    .lg-banner--premium .lg-banner__meta { margin-top:6px; padding:6px 9px; font-size:11px; }
    .lg-banner--premium .lg-banner__metaIcon { width:21px; height:21px; font-size:12px; }
    .lg-banner--premium .lg-banner__hint { display:none; }
    .lg-banner--premium .lg-banner__villageGhost { right:8px; width:92px; height:48px; opacity:.12; }
}
@media (prefers-reduced-motion:reduce) {
    .lg-banner.lg-banner--premium,
    .lg-banner.lg-banner--premium::after,
    .lg-banner--premium .lg-banner__emoji,
    .lg-banner--premium .lg-banner__emblemGlow { animation:none !important; }
}


/* v1.10.1 — homepage mobile polish: controlled hero title, square village preview, clearer IA stat */
.lg-v2-title {
    font-size: clamp(28px, 8.9vw, 64px) !important;
    line-height: .96 !important;
    letter-spacing: -.062em !important;
}
.lg-v2-title span,
.lg-v2-title em {
    display:block !important;
    white-space:nowrap !important;
}
.lg-v2-sub {
    font-size:15px;
    line-height:1.48;
}
.lg-v2-mini-game--village {
    aspect-ratio:1 / 1;
    min-height:0 !important;
    height:auto !important;
    padding:10px;
    border-radius:26px;
    background:
        radial-gradient(circle at 50% 52%, rgba(255,210,122,.42) 0 20%, rgba(255,248,236,.72) 44%, transparent 66%),
        linear-gradient(180deg, rgba(255,250,242,.96), rgba(247,232,211,.92));
}
.lg-v2-mini-game--village::before {
    inset:7px;
    border-radius:21px;
    background:linear-gradient(135deg, rgba(255,255,255,.15), rgba(215,170,80,.04));
}
.lg-v2-mini-head--stat {
    position:absolute;
    z-index:9;
    top:10px;
    right:10px;
    left:10px;
    min-height:0;
    padding:0;
    justify-content:flex-end;
    pointer-events:none;
}
.lg-v2-mini-head--stat strong {
    max-width:185px !important;
    padding:7px 9px !important;
    border:1px solid rgba(255,255,255,.72);
    background:rgba(255,255,255,.86) !important;
    font-size:10.5px !important;
    line-height:1.12 !important;
    letter-spacing:.01em !important;
    text-align:center;
    box-shadow:0 10px 22px rgba(76,42,32,.07);
}
.lg-v2-village-scene {
    inset:48px 8px 34px !important;
    border-radius:22px !important;
    background:
        radial-gradient(circle at 50% 52%, rgba(255,185,70,.32) 0 12%, rgba(255,236,192,.22) 28%, transparent 56%),
        radial-gradient(circle at 50% 50%, rgba(255,255,255,.24), transparent 66%);
}
.lg-v2-village-scene::before {
    width:82% !important;
    height:82% !important;
    opacity:.55;
}
.lg-v2-village-scene::after {
    width:54% !important;
    height:54% !important;
    opacity:.38;
}
.lg-v2-hut { z-index:1; opacity:.42 !important; transform-origin:center; }
.lg-v2-tree { z-index:1; opacity:.35 !important; }
.lg-v2-hut--one { left:22% !important; top:38% !important; transform:rotate(-10deg) scale(.62) !important; }
.lg-v2-hut--two { right:22% !important; top:38% !important; transform:rotate(12deg) scale(.62) !important; }
.lg-v2-hut--three { right:28% !important; bottom:19% !important; transform:rotate(-9deg) scale(.50) !important; }
.lg-v2-campfire {
    width:86px !important;
    height:86px !important;
    z-index:4;
}
.lg-v2-chip--plain {
    z-index:6;
    min-width:auto !important;
    width:auto !important;
    max-width:74px !important;
    min-height:28px !important;
    padding:6px 9px 10px !important;
    border-radius:13px !important;
    font-size:10.5px !important;
    line-height:1 !important;
    box-shadow:0 8px 16px rgba(64,39,29,.055) !important;
}
.lg-v2-chip--plain::after {
    width:5px !important;
    height:5px !important;
    bottom:4px !important;
}
.lg-v2-mini-game--village .lg-v2-c1 { left:50% !important; top:4% !important; transform:translateX(-50%) !important; }
.lg-v2-mini-game--village .lg-v2-c2 { right:2% !important; top:30% !important; transform:none !important; }
.lg-v2-mini-game--village .lg-v2-c3 { left:2% !important; top:30% !important; transform:none !important; }
.lg-v2-mini-game--village .lg-v2-c4 { left:12% !important; bottom:10% !important; right:auto !important; transform:none !important; }
.lg-v2-mini-game--village .lg-v2-c7 { right:12% !important; left:auto !important; bottom:10% !important; transform:none !important; border-color:rgba(17,137,83,.45); color:#118953; background:#f5fff8; }
.lg-v2-mini-game--village .lg-v2-c5,
.lg-v2-mini-game--village .lg-v2-c6 { display:none !important; }
.lg-v2-mini-game--village .lg-v2-mini-status {
    z-index:8;
    left:50%;
    bottom:8px !important;
    max-width:calc(100% - 20px);
    padding:6px 9px;
    font-size:9.5px;
    background:rgba(255,255,255,.86);
}
.lg-v2-quick-stats div:nth-child(3) span {
    letter-spacing:.12em;
}
@media (max-width:430px) {
    .lg-v2-hero-card { padding:16px 14px 14px; border-radius:26px; }
    .lg-v2-title { font-size: clamp(27px, 8.55vw, 36px) !important; }
    .lg-v2-sub { font-size:14px; }
    .lg-v2-proof-row span { font-size:10.5px; padding:7px 8px; }
    .lg-v2-mini-game--village { border-radius:24px; }
}
@media (max-width:350px) {
    .lg-v2-title { font-size:25px !important; letter-spacing:-.065em !important; }
    .lg-v2-mini-head--stat strong { max-width:166px !important; font-size:9.6px !important; }
    .lg-v2-chip--plain { max-width:62px !important; font-size:9.5px !important; padding-inline:7px !important; }
}
@media (min-width:860px) {
    .lg-v2-title { font-size: clamp(52px, 5.2vw, 72px) !important; }
    .lg-v2-mini-game--village { aspect-ratio:auto; min-height:390px !important; }
    .lg-v2-chip--plain { max-width:96px !important; min-height:38px !important; padding:8px 12px 13px !important; font-size:13px !important; }
    .lg-v2-mini-game--village .lg-v2-c1 { top:14% !important; }
    .lg-v2-mini-game--village .lg-v2-c2 { right:8% !important; top:33% !important; }
    .lg-v2-mini-game--village .lg-v2-c3 { left:8% !important; top:33% !important; }
    .lg-v2-mini-game--village .lg-v2-c4 { left:16% !important; bottom:18% !important; }
    .lg-v2-mini-game--village .lg-v2-c7 { right:16% !important; bottom:18% !important; }
}

/* v1.10.2 — homepage village preview redesign: role chips, cleaner square scene, improved fire */
.lg-v2-mini-game--village {
    position: relative;
    aspect-ratio: 1 / 1;
    min-height: 328px !important;
    padding: 12px !important;
    border-radius: 28px !important;
    background:
        radial-gradient(circle at 50% 52%, rgba(255,240,207,.95) 0%, rgba(252,245,233,.98) 42%, #f5ebda 100%) !important;
    overflow: hidden;
}
.lg-v2-mini-game--village::before {
    content: "";
    position: absolute;
    inset: 10px;
    border: 1px solid rgba(224, 194, 145, .62);
    border-radius: 24px;
    pointer-events: none;
}
.lg-v2-mini-head--stat {
    position: relative;
    z-index: 8;
    justify-content: center !important;
    min-height: 42px !important;
    padding: 0 0 4px !important;
}
.lg-v2-mini-head--stat strong {
    max-width: 250px !important;
    padding: 11px 16px !important;
    border: 1px solid rgba(255,255,255,.84);
    background: rgba(255,255,255,.88) !important;
    color: var(--lg2-blood) !important;
    font-size: 12.5px !important;
    font-weight: 950 !important;
    line-height: 1.12 !important;
    text-align: center !important;
    box-shadow: 0 12px 22px rgba(72,40,31,.08) !important;
}
.lg-v2-village-scene {
    inset: 52px 14px 54px !important;
    border-radius: 26px !important;
    background:
        radial-gradient(circle at 50% 52%, rgba(255,183,56,.20) 0 14%, rgba(255,234,197,.16) 15% 32%, transparent 33%),
        radial-gradient(circle at 50% 52%, rgba(255,255,255,.36), transparent 68%) !important;
}
.lg-v2-village-scene::before,
.lg-v2-village-scene::after {
    left: 50% !important;
    top: 53% !important;
    border-color: rgba(216,173,106,.24) !important;
}
.lg-v2-village-scene::before {
    width: 82% !important;
    height: 72% !important;
    opacity: .7;
}
.lg-v2-village-scene::after {
    width: 52% !important;
    height: 44% !important;
    opacity: .46;
}
.lg-v2-village-glow {
    width: 190px !important;
    height: 190px !important;
    left: 50% !important;
    top: 54% !important;
    background: radial-gradient(circle, rgba(255,179,63,.42), rgba(255,190,91,.12) 46%, transparent 72%) !important;
}
.lg-v2-hut,
.lg-v2-tree {
    z-index: 1;
    opacity: .42 !important;
}
.lg-v2-hut { width: 24px !important; height: 18px !important; }
.lg-v2-hut--one { left: 17% !important; top: 42% !important; transform: rotate(-8deg) scale(.88) !important; }
.lg-v2-hut--two { right: 16% !important; top: 42% !important; transform: rotate(8deg) scale(.88) !important; }
.lg-v2-hut--three { display: none !important; }
.lg-v2-tree--one { left: 14% !important; bottom: 20% !important; }
.lg-v2-tree--two { right: 14% !important; bottom: 22% !important; }
.lg-v2-spark { z-index: 2; font-size: 14px !important; }
.lg-v2-spark--one { left: 26% !important; top: 18% !important; }
.lg-v2-spark--two { right: 24% !important; top: 18% !important; }
.lg-v2-spark--three { left: 50% !important; bottom: 14% !important; transform: translateX(-50%); }

.lg-v2-campfire {
    width: 118px !important;
    height: 118px !important;
    left: 50% !important;
    top: 54% !important;
    z-index: 4;
}
.lg-v2-campfire__embers,
.lg-v2-campfire__halo,
.lg-v2-campfire__stones,
.lg-v2-campfire__logs,
.lg-v2-campfire__flame { position: absolute; display: block; }
.lg-v2-campfire__embers {
    inset: 26% !important;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(121,61,24,.55) 0%, rgba(75,41,20,.35) 42%, transparent 64%);
}
.lg-v2-campfire__halo {
    inset: -30% !important;
    background: radial-gradient(circle, rgba(255,173,70,.34), rgba(255,150,44,.10) 54%, transparent 72%) !important;
}
.lg-v2-campfire__stones {
    inset: 14% !important;
    border: 10px dotted rgba(125,87,58,.78) !important;
    background: radial-gradient(circle, rgba(123,75,38,.14), transparent 70%) !important;
}
.lg-v2-campfire__logs {
    width: 64px !important;
    height: 12px !important;
    border-radius: 999px;
    background: linear-gradient(180deg, #8c542e, #6f3d22) !important;
    transform: rotate(27deg);
}
.lg-v2-campfire__logs::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: linear-gradient(180deg, #8c542e, #6f3d22) !important;
    transform: rotate(116deg);
}
.lg-v2-campfire__flame {
    bottom: 32px !important;
    width: 38px !important;
    height: 54px !important;
    clip-path: polygon(50% 0,74% 22%,88% 46%,72% 100%,50% 88%,28% 100%,12% 46%,26% 22%);
    transform-origin: 50% 100%;
}
.lg-v2-campfire__flame--back {
    background: linear-gradient(180deg, #ff9732, #e04a15) !important;
}
.lg-v2-campfire__flame--front {
    width: 24px !important;
    height: 36px !important;
    background: linear-gradient(180deg, #fff5a3, #ffc53e) !important;
    bottom: 34px !important;
}

.lg-v2-chip--plain {
    z-index: 6;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-width: auto !important;
    width: auto !important;
    max-width: none !important;
    min-height: 38px !important;
    padding: 8px 28px 8px 12px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(225,191,140,.9) !important;
    background: rgba(255,255,255,.92) !important;
    color: #2e2729 !important;
    font-size: 11.5px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    box-shadow: 0 8px 18px rgba(64,39,29,.06) !important;
}
.lg-v2-chip--plain::after {
    content: "" !important;
    position: absolute !important;
    right: 10px !important;
    left: auto !important;
    top: 50% !important;
    bottom: auto !important;
    width: 9px !important;
    height: 9px !important;
    border-radius: 50% !important;
    background: #16a25b !important;
    box-shadow: 0 0 0 4px rgba(22,162,91,.10) !important;
    transform: translateY(-50%) !important;
}
.lg-v2-chip--wolf {
    border-color: rgba(190,71,106,.42) !important;
    background: #fff1f6 !important;
    color: var(--lg2-blood) !important;
}
.lg-v2-mini-game--village .lg-v2-c1 { left: 50% !important; top: 2% !important; transform: translateX(-50%) !important; }
.lg-v2-mini-game--village .lg-v2-c2 { right: 2% !important; top: 26% !important; left: auto !important; bottom: auto !important; transform: none !important; }
.lg-v2-mini-game--village .lg-v2-c3 { left: 3% !important; top: 26% !important; right: auto !important; bottom: auto !important; transform: none !important; }
.lg-v2-mini-game--village .lg-v2-c4 { right: 8% !important; bottom: 18% !important; left: auto !important; top: auto !important; transform: none !important; }
.lg-v2-mini-game--village .lg-v2-c5 { left: 8% !important; bottom: 18% !important; top: auto !important; transform: none !important; }
.lg-v2-mini-game--village .lg-v2-c6,
.lg-v2-mini-game--village .lg-v2-c7 { display: none !important; }

.lg-v2-mini-game--village .lg-v2-mini-status {
    z-index: 8;
    left: 50%;
    bottom: 12px !important;
    max-width: calc(100% - 28px);
    padding: 8px 14px !important;
    border: 1px solid rgba(255,255,255,.88) !important;
    background: rgba(255,255,255,.88) !important;
    color: #6c6163 !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    transform: translateX(-50%);
}

@media (max-width: 430px) {
    .lg-v2-mini-game--village {
        min-height: 300px !important;
    }
    .lg-v2-mini-head--stat strong {
        max-width: 216px !important;
        padding: 9px 12px !important;
        font-size: 11px !important;
    }
    .lg-v2-village-scene {
        inset: 50px 10px 50px !important;
    }
    .lg-v2-campfire {
        width: 102px !important;
        height: 102px !important;
    }
    .lg-v2-campfire__flame { bottom: 28px !important; }
    .lg-v2-chip--plain {
        min-height: 34px !important;
        padding: 7px 24px 7px 10px !important;
        font-size: 10px !important;
    }
    .lg-v2-chip--plain::after {
        right: 8px !important;
        width: 8px !important;
        height: 8px !important;
        box-shadow: 0 0 0 3px rgba(22,162,91,.10) !important;
    }
}

@media (min-width: 860px) {
    .lg-v2-mini-game--village {
        aspect-ratio: auto;
        min-height: 400px !important;
    }
    .lg-v2-chip--plain {
        min-height: 42px !important;
        padding: 9px 30px 9px 13px !important;
        font-size: 13px !important;
    }
    .lg-v2-mini-game--village .lg-v2-c1 { top: 7% !important; }
    .lg-v2-mini-game--village .lg-v2-c2 { right: 7% !important; top: 28% !important; }
    .lg-v2-mini-game--village .lg-v2-c3 { left: 7% !important; top: 28% !important; }
    .lg-v2-mini-game--village .lg-v2-c4 { right: 15% !important; bottom: 20% !important; }
    .lg-v2-mini-game--village .lg-v2-c5 { left: 15% !important; bottom: 20% !important; }
}


/* v1.10.3 — homepage preview uses the approved square village image */
.lg-v2-mini-game--photo {
    position: relative !important;
    display: block !important;
    aspect-ratio: 1 / 1 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-radius: 28px !important;
    border: 1px solid rgba(224, 194, 145, .58) !important;
    background: #fff3df !important;
    box-shadow: 0 20px 48px rgba(70, 42, 28, .12) !important;
}
.lg-v2-mini-game--photo::before,
.lg-v2-mini-game--photo::after {
    display: none !important;
}
.lg-v2-village-photo {
    display: block;
    width: 100%;
    height: 100%;
}
.lg-v2-village-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.lg-v2-mini-game--photo .lg-v2-mini-head--stat,
.lg-v2-mini-game--photo .lg-v2-village-scene,
.lg-v2-mini-game--photo .lg-v2-mini-status,
.lg-v2-mini-game--photo .lg-v2-chip,
.lg-v2-mini-game--photo .lg-v2-campfire,
.lg-v2-mini-game--photo .lg-v2-hut,
.lg-v2-mini-game--photo .lg-v2-tree,
.lg-v2-mini-game--photo .lg-v2-spark {
    display: none !important;
}
@media (max-width: 430px) {
    .lg-v2-mini-game--photo {
        border-radius: 24px !important;
        margin-top: 2px;
    }
}
@media (min-width: 860px) {
    .lg-v2-mini-game--photo {
        min-height: 0 !important;
    }
}


/* v1.10.4 — centered step banner, mayor direction, second speech controls */
.lg-banner--premium {
    justify-content: center !important;
    text-align: center !important;
    padding-inline: 18px !important;
}
.lg-banner--premium .lg-banner__emblem {
    display: none !important;
}
.lg-banner--premium .lg-banner__body {
    align-items: center !important;
    text-align: center !important;
    width: 100%;
}
.lg-banner--premium .lg-banner__meta {
    justify-content: center !important;
}
.lg-banner--premium .lg-banner__hint {
    text-align: center !important;
}
.lg-extra-requests {
    display: grid;
    gap: 9px;
    margin-top: 12px;
    padding: 12px;
    border: 1px solid rgba(183,29,71,.18);
    border-radius: 16px;
    background: rgba(255,246,249,.72);
}
.lg-extra-requests > strong {
    color: #9d1439;
    font-size: 13px;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.lg-extra-requests__row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto auto;
    gap: 8px;
    align-items: center;
}
.lg-extra-requests__row span {
    min-width: 0;
    overflow: hidden;
    color: #282123;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.lg-extra-requests__row .lg-btn {
    min-height: 36px;
    margin: 0;
    padding: 7px 10px;
    border-radius: 12px;
    font-size: 12px;
}
@media (max-width: 430px) {
    .lg-extra-requests__row {
        grid-template-columns: 1fr;
    }
    .lg-extra-requests__row .lg-btn {
        width: 100%;
    }
}


/* SEO/content sections: visible, crawlable and lightweight. */
.lg-v2-seo--expanded,
.lg-v2-faq {
    text-align:left;
}
.lg-v2-seo-grid {
    display:grid;
    gap:14px;
    margin-top:20px;
}
.lg-v2-seo-grid article {
    padding:16px;
    border:1px solid rgba(95,64,68,.10);
    border-radius:18px;
    background:rgba(255,255,255,.58);
}
.lg-v2-seo-grid h3,
.lg-v2-seo-subtitle,
.lg-v2-faq summary {
    margin:0;
    color:var(--lg2-ink);
    font-family:var(--lg-font-ui);
    font-size:17px;
    font-weight:950;
    letter-spacing:-.03em;
}
.lg-v2-seo-subtitle { margin-top:26px; }
.lg-v2-role-seo-list {
    display:grid;
    gap:10px;
    margin:14px 0 0;
    padding:0;
    list-style:none;
}
.lg-v2-role-seo-list li {
    padding:12px 14px;
    border:1px solid rgba(95,64,68,.09);
    border-radius:16px;
    background:rgba(255,255,255,.54);
    color:#625a5d;
    font-size:14px;
    line-height:1.55;
}
.lg-v2-role-seo-list strong { color:var(--lg2-ink); }
.lg-v2-faq details {
    margin-top:12px;
    padding:14px 16px;
    border:1px solid rgba(95,64,68,.10);
    border-radius:16px;
    background:rgba(255,255,255,.58);
}
.lg-v2-faq summary { cursor:pointer; }
.lg-v2-faq p { margin-top:10px; }
@media (min-width: 900px) {
    .lg-v2-seo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .lg-v2-role-seo-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Jitsi live voice control — v1.10.8 */
.lg-voice-panel{border:1px solid rgba(139,17,53,.18);background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,247,241,.9));box-shadow:0 18px 45px rgba(63,15,35,.12);border-radius:24px;padding:18px;display:grid;gap:14px;position:relative;overflow:hidden}.lg-voice-panel:before{content:"";position:absolute;inset:-40% auto auto -15%;width:220px;height:220px;border-radius:999px;background:radial-gradient(circle,rgba(169,21,63,.18),transparent 68%);pointer-events:none}.lg-voice-panel>*{position:relative}.lg-voice-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.lg-voice-panel__eyebrow{margin:0 0 4px;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800;color:#a9153f}.lg-voice-panel h3{margin:0;font-family:Cinzel,serif;font-size:1.25rem;color:#26101b}.lg-voice-panel__msg{margin:0;color:#5f4b56;line-height:1.45}.lg-voice-mode{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:900;background:#fff;border:1px solid rgba(0,0,0,.08);color:#3b1a28}.lg-voice-mode--night{background:#15112b;color:#fff}.lg-voice-mode--day{background:#fff6d8;color:#6b3b00}.lg-voice-mode--vote{background:#f4e8ff;color:#4d1674}.lg-voice-rooms,.lg-voice-microw,.lg-voice-host-tools__phases,.lg-voice-host-tools__private,.lg-voice-floor{display:flex;flex-wrap:wrap;gap:8px}.lg-voice-btn{border:1px solid rgba(92,35,58,.18);background:#fff;color:#3b1a28;border-radius:14px;padding:10px 12px;font-weight:850;cursor:pointer;box-shadow:0 8px 18px rgba(63,15,35,.08);transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.lg-voice-btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(63,15,35,.13)}.lg-voice-btn:disabled{opacity:.48;cursor:not-allowed;transform:none;box-shadow:none}.lg-voice-btn.is-active{background:#25101d;color:#fff;border-color:#25101d}.lg-voice-btn--primary{background:#a9153f;color:#fff;border-color:#a9153f}.lg-voice-btn--danger{background:#22111a;color:#fff;border-color:#22111a}.lg-voice-host-tools{display:grid;gap:10px;padding-top:4px}.lg-voice-select{min-width:190px;flex:1;border:1px solid rgba(92,35,58,.2);border-radius:14px;padding:10px 12px;background:#fff;color:#25101d;font-weight:750}.lg-voice-timer{border-radius:16px;padding:10px 12px;background:#25101d;color:#fff;font-weight:900;text-align:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.lg-voice-note,.lg-voice-error{margin:0;border-radius:14px;padding:10px 12px;font-weight:750}.lg-voice-note{background:rgba(37,16,29,.06);color:#60424f}.lg-voice-error{background:rgba(169,21,63,.12);color:#8a1034}.lg-voice-sleep{border-radius:18px;padding:18px;text-align:center;font-family:Cinzel,serif;font-weight:900;background:linear-gradient(135deg,#17132c,#25101d);color:#fff;letter-spacing:.03em}.lg-jitsi-dock{position:fixed;right:16px;bottom:16px;width:min(430px,calc(100vw - 32px));z-index:99999;border-radius:24px;overflow:hidden;background:#080711;color:#fff;box-shadow:0 24px 70px rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.12)}.lg-jitsi-dock__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:linear-gradient(135deg,#231024,#080711)}.lg-jitsi-dock__head strong{display:block}.lg-jitsi-dock__head small{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(255,255,255,.68)}.lg-jitsi-dock__actions{display:flex;gap:8px}.lg-jitsi-mini,.lg-jitsi-close{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;border-radius:12px;font-weight:900;cursor:pointer}.lg-jitsi-mini{padding:8px 10px}.lg-jitsi-close{width:36px;height:36px;font-size:24px;line-height:1}.lg-jitsi-dock__body{height:320px;background:#000}.lg-jitsi-dock iframe{display:block;border:0!important;width:100%!important;height:100%!important}@media (max-width:720px){.lg-voice-panel{border-radius:20px;padding:14px}.lg-voice-panel__head{flex-direction:column}.lg-voice-btn,.lg-voice-select{width:100%;justify-content:center}.lg-jitsi-dock{left:10px;right:10px;bottom:10px;width:auto;border-radius:20px}.lg-jitsi-dock__body{height:270px}.lg-jitsi-mini{font-size:.78rem;padding:7px 8px}}


/* v1.10.9 — Jitsi mic permission fix UI + professional full-width step notification */
.lg-banner.lg-banner--premium{
    width:100% !important;
    grid-template-columns:50px minmax(0,1fr) !important;
    align-items:center !important;
    padding:16px 18px !important;
}
.lg-banner--premium .lg-banner__body{width:100% !important;}
.lg-banner--premium .lg-banner__title{max-width:100% !important;}
.lg-banner--premium .lg-banner__meta{
    display:flex !important;
    width:100% !important;
    box-sizing:border-box !important;
    justify-content:flex-start !important;
    white-space:normal !important;
    border-radius:16px !important;
}
.lg-banner--premium .lg-banner__villageGhost{right:12px !important;opacity:.10 !important;}
.lg-voice-panel{
    margin-top:14px;
}
.lg-voice-btn--primary:not(:disabled){
    background:linear-gradient(135deg,#a9153f,#d984a1) !important;
    border-color:rgba(169,21,63,.55) !important;
    color:#fff !important;
}
.lg-voice-btn:disabled{
    filter:grayscale(.12);
}
.lg-jitsi-dock__body::before{
    content:"Autorisez le microphone si le navigateur le demande.";
    display:block;
    padding:8px 12px;
    background:#16111c;
    color:rgba(255,255,255,.78);
    font-size:12px;
    font-weight:800;
}
.lg-jitsi-dock iframe{height:calc(100% - 34px)!important;}
@media (max-width:480px){
    .lg-banner.lg-banner--premium{
        grid-template-columns:1fr !important;
        gap:10px !important;
        min-height:auto !important;
        padding:15px !important;
    }
    .lg-banner--premium .lg-banner__emblem{
        display:none !important;
    }
    .lg-banner--premium .lg-banner__eyebrow{
        font-size:10px !important;
        letter-spacing:.18em !important;
    }
    .lg-banner--premium .lg-banner__title{
        font-size:clamp(20px,7vw,28px) !important;
        line-height:1.04 !important;
    }
    .lg-banner--premium .lg-banner__meta{
        margin-top:10px !important;
        padding:10px 12px !important;
        font-size:13px !important;
        line-height:1.28 !important;
    }
    .lg-banner--premium .lg-banner__villageGhost{opacity:.08 !important;}
}


/* v1.10.10 — compact mobile interface for phase banner + Jitsi voice panel */
.lg-banner.lg-banner--premium{
    min-height:0 !important;
    margin:8px 0 10px !important;
    padding:12px 14px !important;
    border-radius:20px !important;
    box-shadow:0 10px 26px rgba(63,15,35,.08) !important;
}
.lg-banner--premium .lg-banner__body{
    display:grid !important;
    gap:5px !important;
    align-items:center !important;
}
.lg-banner--premium .lg-banner__eyebrow{
    font-size:10px !important;
    line-height:1 !important;
    letter-spacing:.16em !important;
    margin:0 !important;
}
.lg-banner--premium .lg-banner__title{
    font-size:clamp(20px,4.8vw,28px) !important;
    line-height:1.02 !important;
    margin:0 !important;
}
.lg-banner--premium .lg-banner__meta{
    min-height:0 !important;
    margin-top:2px !important;
    padding:7px 10px !important;
    border-radius:14px !important;
    font-size:12.5px !important;
    line-height:1.22 !important;
}
.lg-banner--premium .lg-banner__metaIcon{
    width:22px !important;
    height:22px !important;
    min-width:22px !important;
    font-size:13px !important;
}
.lg-banner--premium .lg-banner__hint{
    margin:0 !important;
    font-size:12px !important;
    line-height:1.25 !important;
}
.lg-voice-panel{
    margin-top:8px !important;
    padding:12px !important;
    gap:9px !important;
    border-radius:20px !important;
    box-shadow:0 10px 26px rgba(63,15,35,.08) !important;
}
.lg-voice-panel:before{opacity:.45 !important;transform:scale(.72) !important;}
.lg-voice-panel__head{
    align-items:center !important;
    gap:8px !important;
}
.lg-voice-panel__eyebrow{
    margin:0 0 2px !important;
    font-size:10px !important;
    line-height:1 !important;
    letter-spacing:.16em !important;
}
.lg-voice-panel h3{
    font-size:clamp(18px,4.9vw,24px) !important;
    line-height:1.05 !important;
}
.lg-voice-mode{
    padding:5px 9px !important;
    font-size:12px !important;
    line-height:1 !important;
}
.lg-voice-panel__msg{
    margin:0 !important;
    font-size:14px !important;
    line-height:1.32 !important;
}
.lg-voice-rooms,
.lg-voice-microw{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px !important;
}
.lg-voice-rooms .lg-voice-btn:first-child:last-child,
.lg-voice-microw .lg-voice-btn:first-child:last-child{grid-column:1/-1 !important;}
.lg-voice-btn{
    min-height:42px !important;
    padding:8px 10px !important;
    border-radius:13px !important;
    font-size:13px !important;
    line-height:1.12 !important;
    box-shadow:0 5px 12px rgba(63,15,35,.06) !important;
}
.lg-voice-timer{
    padding:7px 10px !important;
    border-radius:13px !important;
    font-size:13px !important;
}
.lg-voice-note,
.lg-voice-error{
    padding:8px 10px !important;
    border-radius:12px !important;
    font-size:12.5px !important;
    line-height:1.25 !important;
}
.lg-voice-sleep{
    padding:10px !important;
    border-radius:14px !important;
    font-size:14px !important;
}
.lg-host-stage__voice,
.lg-player-stage__voice{margin-top:8px !important;}
@media (max-width:720px){
    .lg-voice-panel__head{flex-direction:row !important;justify-content:space-between !important;}
    .lg-voice-btn,.lg-voice-select{width:auto !important;}
}
@media (max-width:480px){
    .lg-banner.lg-banner--premium{
        padding:10px 11px !important;
        gap:0 !important;
        border-radius:18px !important;
    }
    .lg-banner--premium .lg-banner__eyebrow{font-size:9px !important;}
    .lg-banner--premium .lg-banner__title{font-size:clamp(18px,6vw,23px) !important;letter-spacing:-.02em !important;}
    .lg-banner--premium .lg-banner__meta{padding:6px 8px !important;font-size:11.5px !important;}
    .lg-banner--premium .lg-banner__metaIcon{width:20px !important;height:20px !important;min-width:20px !important;}
    .lg-voice-panel{
        padding:11px !important;
        gap:8px !important;
        border-radius:18px !important;
    }
    .lg-voice-panel h3{font-size:20px !important;}
    .lg-voice-panel__msg{font-size:13.5px !important;}
    .lg-voice-rooms,.lg-voice-microw{gap:7px !important;}
    .lg-voice-btn{min-height:40px !important;padding:7px 8px !important;font-size:12.5px !important;}
}
@media (max-width:360px){
    .lg-voice-rooms,
    .lg-voice-microw{grid-template-columns:1fr !important;}
}


/* v1.10.11 — premium compact Jitsi dock */
.lg-jitsi-dock{
    right:12px !important;
    bottom:12px !important;
    width:min(360px,calc(100vw - 24px)) !important;
    border-radius:22px !important;
    background:linear-gradient(180deg,#120d1c 0%,#09070f 100%) !important;
    border:1px solid rgba(255,255,255,.10) !important;
    box-shadow:0 24px 60px rgba(3,3,8,.42) !important;
    backdrop-filter:blur(14px);
}
.lg-jitsi-dock__head{
    padding:10px 12px !important;
    gap:10px !important;
    background:linear-gradient(135deg,rgba(40,18,47,.96),rgba(10,8,18,.96)) !important;
}
.lg-jitsi-dock__meta{
    min-width:0;
    display:grid;
    gap:3px;
    flex:1;
}
.lg-jitsi-dock__head strong{
    font-size:15px;
    line-height:1.05;
}
.lg-jitsi-dock__head small{
    max-width:100% !important;
    font-size:11.5px;
    line-height:1.2;
    color:rgba(255,255,255,.58) !important;
}
.lg-jitsi-status{
    display:inline-flex;
    align-items:center;
    gap:6px;
    width:max-content;
    padding:4px 8px;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
    letter-spacing:.02em;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.07);
    color:#fff;
}
.lg-jitsi-status::before{
    content:"";
    width:8px;
    height:8px;
    border-radius:999px;
    background:#f3c24f;
    box-shadow:0 0 0 3px rgba(243,194,79,.18);
}
.lg-jitsi-status.is-live::before{
    background:#34d399;
    box-shadow:0 0 0 3px rgba(52,211,153,.18);
}
.lg-jitsi-dock__actions{
    display:flex;
    gap:6px !important;
    align-items:center;
    flex-shrink:0;
}
.lg-jitsi-mini,.lg-jitsi-toggle,.lg-jitsi-close{
    border:1px solid rgba(255,255,255,.14) !important;
    background:rgba(255,255,255,.08) !important;
    color:#fff !important;
    border-radius:12px !important;
    font-weight:900 !important;
    cursor:pointer;
    min-height:38px;
}
.lg-jitsi-mini,.lg-jitsi-toggle{padding:0 10px !important;font-size:12px;white-space:nowrap;}
.lg-jitsi-close{width:38px !important;height:38px !important;font-size:22px !important;line-height:1 !important;}
.lg-jitsi-dock__body{
    height:auto !important;
    display:grid;
    gap:8px;
    padding:0 10px 10px;
    background:transparent !important;
}
.lg-jitsi-dock__body::before{content:none !important;display:none !important;}
.lg-jitsi-dock__hint{
    padding:8px 10px;
    border-radius:14px;
    background:rgba(255,255,255,.05);
    color:rgba(255,255,255,.72);
    font-size:12px;
    line-height:1.25;
}
.lg-jitsi-dock__viewport{
    height:190px;
    overflow:hidden;
    border-radius:16px;
    background:#000;
    border:1px solid rgba(255,255,255,.07);
}
.lg-jitsi-dock iframe{height:100% !important;}
.lg-jitsi-dock.is-compact{
    width:min(340px,calc(100vw - 24px)) !important;
}
.lg-jitsi-dock.is-compact .lg-jitsi-dock__body{
    display:none !important;
}
.lg-jitsi-dock.is-compact .lg-jitsi-mini{
    padding:0 9px !important;
}
@media (max-width:720px){
    .lg-jitsi-dock{
        left:12px !important;
        right:12px !important;
        width:auto !important;
        border-radius:20px !important;
    }
    .lg-jitsi-dock__head{
        padding:10px !important;
        align-items:flex-start !important;
    }
    .lg-jitsi-dock__head strong{font-size:14px;}
    .lg-jitsi-dock__head small{font-size:11px;}
    .lg-jitsi-mini,.lg-jitsi-toggle{font-size:11.5px;min-height:36px;}
    .lg-jitsi-close{width:36px !important;height:36px !important;}
    .lg-jitsi-dock__viewport{height:156px;}
}
@media (max-width:420px){
    .lg-jitsi-dock__head{gap:8px !important;}
    .lg-jitsi-dock__actions{gap:5px !important;}
    .lg-jitsi-mini,.lg-jitsi-toggle{padding:0 8px !important;}
    .lg-jitsi-status{font-size:10.5px;padding:4px 7px;}
}


/* v1.10.12 — mini floating call bar (WhatsApp/Discord style) */
.lg-jitsi-dock{
    right:12px !important;
    left:auto !important;
    bottom:14px !important;
    width:min(340px,calc(100vw - 24px)) !important;
    border-radius:999px !important;
    overflow:hidden !important;
    background:rgba(12,10,18,.94) !important;
    border:1px solid rgba(255,255,255,.08) !important;
    box-shadow:0 18px 48px rgba(5,5,10,.34) !important;
    backdrop-filter:blur(18px);
}
.lg-jitsi-dock__head{
    padding:10px 10px 10px 12px !important;
    min-height:58px;
    gap:10px !important;
    background:transparent !important;
}
.lg-jitsi-dock__meta{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:3px;
    flex:1;
}
.lg-jitsi-dock__head strong{
    display:block;
    font-size:14px;
    line-height:1.05;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.lg-jitsi-dock__head small{
    display:none !important;
}
.lg-jitsi-status{
    display:inline-flex;
    align-items:center;
    gap:6px;
    align-self:flex-start;
    padding:3px 8px;
    border-radius:999px;
    font-size:10.5px;
    font-weight:900;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.07);
    color:#f8f7fb;
}
.lg-jitsi-status::before{
    content:'';
    width:7px;
    height:7px;
    border-radius:50%;
    background:#f2c14e;
    box-shadow:0 0 0 3px rgba(242,193,78,.16);
}
.lg-jitsi-status.is-live::before{
    background:#34d399;
    box-shadow:0 0 0 3px rgba(52,211,153,.16);
}
.lg-jitsi-dock__actions{
    gap:6px !important;
    align-items:center;
    flex-shrink:0;
}
.lg-jitsi-mini,.lg-jitsi-toggle,.lg-jitsi-close{
    min-height:38px;
    border:1px solid rgba(255,255,255,.10) !important;
    background:rgba(255,255,255,.08) !important;
    color:#fff !important;
    border-radius:999px !important;
    font-size:11.5px !important;
    font-weight:900 !important;
    box-shadow:none !important;
}
.lg-jitsi-mini,.lg-jitsi-toggle{padding:0 12px !important;}
.lg-jitsi-close{width:38px !important;height:38px !important;padding:0 !important;font-size:21px !important;}
.lg-jitsi-dock__body{
    display:grid;
    gap:8px;
    padding:0 10px 10px !important;
    background:transparent !important;
}
.lg-jitsi-dock__hint{
    display:none !important;
}
.lg-jitsi-dock__viewport{
    height:150px !important;
    border-radius:18px !important;
    overflow:hidden;
    background:#000;
    border:1px solid rgba(255,255,255,.06);
}
.lg-jitsi-dock iframe{height:100% !important;}
.lg-jitsi-dock.is-compact{
    width:min(320px,calc(100vw - 24px)) !important;
}
.lg-jitsi-dock.is-compact .lg-jitsi-dock__body{display:none !important;}
.lg-jitsi-dock.is-compact .lg-jitsi-dock__head{
    min-height:56px;
    padding:9px 10px 9px 12px !important;
}
.lg-jitsi-dock.is-compact .lg-jitsi-toggle{background:rgba(52,211,153,.14) !important;border-color:rgba(52,211,153,.22) !important;}
@media (max-width:720px){
    .lg-jitsi-dock{
        left:12px !important;
        right:12px !important;
        width:auto !important;
        max-width:none !important;
        bottom:12px !important;
    }
    .lg-jitsi-dock__head strong{font-size:13.5px;}
    .lg-jitsi-mini,.lg-jitsi-toggle,.lg-jitsi-close{min-height:36px;font-size:11px !important;}
    .lg-jitsi-mini,.lg-jitsi-toggle{padding:0 10px !important;}
    .lg-jitsi-close{width:36px !important;height:36px !important;}
    .lg-jitsi-dock__viewport{height:132px !important;}
}
@media (max-width:420px){
    .lg-jitsi-dock{width:auto !important;}
    .lg-jitsi-dock__head{gap:8px !important;}
    .lg-jitsi-status{font-size:10px;padding:3px 7px;}
    .lg-jitsi-mini,.lg-jitsi-toggle{padding:0 9px !important;}
}


/* v1.10.13 — direct MJ microphone control on player icons */
.lg-village-player--host-voice{
    padding-bottom:34px !important;
    overflow:visible !important;
}
.lg-village-player--mic-open{
    border-color:rgba(28,185,105,.72) !important;
    box-shadow:0 0 0 2px rgba(28,185,105,.16),0 14px 30px rgba(28,185,105,.20) !important;
}
.lg-village-player--mic-closed{
    border-color:rgba(199,40,62,.38) !important;
}
.lg-village-player--mic-open .lg-village-player__status-dot{
    background:#23c96f !important;
    box-shadow:0 0 0 5px rgba(35,201,111,.18),0 0 18px rgba(35,201,111,.55) !important;
}
.lg-village-player--mic-closed .lg-village-player__status-dot{
    background:#e33b55 !important;
    box-shadow:0 0 0 5px rgba(227,59,85,.15) !important;
}
.lg-village-player__voice-controls{
    position:absolute;
    left:50%;
    bottom:-16px;
    transform:translateX(-50%);
    display:flex;
    align-items:center;
    gap:5px;
    z-index:8;
    pointer-events:auto;
}
.lg-village-player__mic-btn,
.lg-village-player__wake-btn{
    border:1px solid rgba(255,255,255,.72);
    color:#fff;
    font-weight:950;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(34,17,26,.20);
    backdrop-filter:blur(10px);
}
.lg-village-player__mic-btn{
    width:30px;
    height:30px;
    min-width:30px;
    display:grid;
    place-items:center;
    padding:0;
    border-radius:999px;
    font-size:14px;
}
.lg-village-player__mic-btn.is-open{background:linear-gradient(135deg,#18b86a,#0f9c58);}
.lg-village-player__mic-btn.is-closed{background:linear-gradient(135deg,#dc2f51,#a9153f);}
.lg-village-player__mic-btn.is-dead{background:#8f8589;opacity:.65;}
.lg-village-player__mic-btn:disabled{cursor:not-allowed;filter:grayscale(.25);}
.lg-village-player__wake-btn{
    min-height:28px;
    padding:0 8px;
    border-radius:999px;
    background:linear-gradient(135deg,#f0bf58,#a9153f);
    font-size:10.5px;
    letter-spacing:.01em;
    white-space:nowrap;
}
.lg-voice-host-tools--direct .lg-voice-note{
    background:rgba(25,18,31,.06) !important;
    border:1px solid rgba(25,18,31,.08);
}
.lg-voice-host-tools--direct .lg-voice-host-tools__phases,
.lg-voice-host-tools--direct .lg-voice-host-tools__private{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:7px !important;
}
.lg-voice-host-tools--direct .lg-voice-host-tools__private{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.lg-voice-host-tools--direct .lg-voice-btn{
    min-height:36px !important;
    font-size:12px !important;
    padding:7px 8px !important;
}
.lg-jitsi-dock__head strong::before{
    content:'🎧 ';
}
@media (max-width:720px){
    .lg-village-player--host-voice{padding-bottom:31px !important;}
    .lg-village-player__voice-controls{bottom:-15px;gap:4px;}
    .lg-village-player__mic-btn{width:28px;height:28px;min-width:28px;font-size:13px;}
    .lg-village-player__wake-btn{min-height:26px;padding:0 7px;font-size:10px;}
    .lg-voice-host-tools--direct .lg-voice-host-tools__phases,
    .lg-voice-host-tools--direct .lg-voice-host-tools__private{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media (max-width:380px){
    .lg-village-player__wake-btn{font-size:9.5px;padding:0 6px;}
    .lg-voice-host-tools--direct .lg-voice-host-tools__phases,
    .lg-voice-host-tools--direct .lg-voice-host-tools__private{grid-template-columns:1fr 1fr !important;}
}


/* v1.10.14 — corrected narrator control + restored professional call window */
.lg-village-player--host-voice{
    cursor:pointer !important;
    touch-action:manipulation;
}
.lg-village-player--host-voice .lg-village-player__nameRow{
    padding-right:18px;
}
.lg-village-player--mic-open{
    border-color:rgba(31,190,111,.78) !important;
    box-shadow:0 0 0 2px rgba(31,190,111,.18),0 13px 28px rgba(31,190,111,.18) !important;
}
.lg-village-player--mic-closed{
    border-color:rgba(214,41,67,.48) !important;
}
.lg-village-player--mic-open .lg-village-player__status-dot,
.lg-village-player__mic-btn.is-open + .lg-village-player__status-dot{
    background:#21c875 !important;
    box-shadow:0 0 0 4px rgba(33,200,117,.18),0 0 18px rgba(33,200,117,.42) !important;
}
.lg-village-player--mic-closed .lg-village-player__status-dot{
    background:#e13b55 !important;
    box-shadow:0 0 0 4px rgba(225,59,85,.16) !important;
}
.lg-village-player__mic-btn{
    border:2px solid rgba(255,255,255,.9) !important;
    font-size:13px !important;
    line-height:1 !important;
}
.lg-village-player__mic-btn.is-open{
    background:linear-gradient(135deg,#26cf7d,#0f9f5f) !important;
    box-shadow:0 8px 20px rgba(21,166,95,.32) !important;
}
.lg-village-player__mic-btn.is-closed{
    background:linear-gradient(135deg,#ef405f,#a9153f) !important;
    box-shadow:0 8px 20px rgba(169,21,63,.24) !important;
}
.lg-village-player__mic-btn.is-dead{
    background:#8f8589 !important;
    box-shadow:none !important;
}
.lg-village-player__wake-btn{
    background:linear-gradient(135deg,#f2c65d,#a9153f) !important;
    box-shadow:0 8px 20px rgba(169,21,63,.22) !important;
}

/* Restore expanded call dock, replacing the mini-bar style. */
.lg-jitsi-dock{
    left:auto !important;
    right:12px !important;
    bottom:12px !important;
    width:min(420px,calc(100vw - 24px)) !important;
    border-radius:24px !important;
    overflow:hidden !important;
    background:linear-gradient(180deg,#15101d 0%,#09070f 100%) !important;
    border:1px solid rgba(255,255,255,.12) !important;
    box-shadow:0 24px 70px rgba(4,4,10,.42) !important;
    backdrop-filter:blur(18px);
}
.lg-jitsi-dock__head{
    min-height:auto !important;
    padding:12px 14px !important;
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    background:linear-gradient(135deg,#2a1430 0%,#100b19 100%) !important;
}
.lg-jitsi-dock__meta{
    min-width:0 !important;
    flex:1 !important;
    display:grid !important;
    gap:4px !important;
}
.lg-jitsi-dock__head strong{
    font-size:16px !important;
    line-height:1.1 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
}
.lg-jitsi-dock__head strong::before{content:'🎧 ' !important;}
.lg-jitsi-dock__head small{
    display:block !important;
    max-width:100% !important;
    font-size:11px !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    color:rgba(255,255,255,.56) !important;
}
.lg-jitsi-status{
    width:max-content !important;
    display:inline-flex !important;
    align-items:center !important;
    gap:6px !important;
    padding:4px 9px !important;
    border-radius:999px !important;
    font-size:11px !important;
    font-weight:900 !important;
    color:#fff !important;
    background:rgba(255,255,255,.08) !important;
    border:1px solid rgba(255,255,255,.08) !important;
}
.lg-jitsi-status::before{
    content:'' !important;
    width:8px !important;
    height:8px !important;
    border-radius:999px !important;
    background:#ef405f !important;
    box-shadow:0 0 0 3px rgba(239,64,95,.16) !important;
}
.lg-jitsi-status.is-live::before{
    background:#26cf7d !important;
    box-shadow:0 0 0 3px rgba(38,207,125,.16) !important;
}
.lg-jitsi-dock__actions{
    display:flex !important;
    align-items:center !important;
    gap:7px !important;
    flex-shrink:0 !important;
}
.lg-jitsi-mini,.lg-jitsi-toggle,.lg-jitsi-close{
    border:1px solid rgba(255,255,255,.16) !important;
    background:rgba(255,255,255,.09) !important;
    color:#fff !important;
    border-radius:14px !important;
    font-weight:900 !important;
    cursor:pointer !important;
    box-shadow:none !important;
}
.lg-jitsi-mini,.lg-jitsi-toggle{
    min-height:38px !important;
    padding:0 11px !important;
    font-size:12px !important;
    white-space:nowrap !important;
}
.lg-jitsi-close{
    width:38px !important;
    height:38px !important;
    min-height:38px !important;
    padding:0 !important;
    font-size:23px !important;
    line-height:1 !important;
}
.lg-jitsi-dock__body{
    display:grid !important;
    gap:9px !important;
    height:auto !important;
    padding:10px !important;
    background:#08070d !important;
}
.lg-jitsi-dock__body::before{content:none !important;display:none !important;}
.lg-jitsi-dock__hint{
    display:block !important;
    padding:8px 10px !important;
    border-radius:14px !important;
    background:rgba(255,255,255,.055) !important;
    color:rgba(255,255,255,.72) !important;
    font-size:12px !important;
    line-height:1.25 !important;
}
.lg-jitsi-dock__viewport{
    height:260px !important;
    border-radius:18px !important;
    overflow:hidden !important;
    background:#000 !important;
    border:1px solid rgba(255,255,255,.08) !important;
}
.lg-jitsi-dock iframe{height:100% !important;width:100% !important;border:0 !important;}
.lg-jitsi-dock.is-compact{
    width:min(380px,calc(100vw - 24px)) !important;
    border-radius:20px !important;
}
.lg-jitsi-dock.is-compact .lg-jitsi-dock__body{display:none !important;}
.lg-jitsi-dock.is-compact .lg-jitsi-dock__head{padding:10px 12px !important;}
@media (max-width:720px){
    .lg-jitsi-dock{
        left:10px !important;
        right:10px !important;
        bottom:10px !important;
        width:auto !important;
        max-width:none !important;
        border-radius:22px !important;
    }
    .lg-jitsi-dock__head{padding:10px 11px !important;gap:9px !important;}
    .lg-jitsi-dock__head strong{font-size:14px !important;}
    .lg-jitsi-dock__head small{font-size:10.5px !important;}
    .lg-jitsi-status{font-size:10.5px !important;padding:3px 8px !important;}
    .lg-jitsi-mini,.lg-jitsi-toggle{min-height:36px !important;padding:0 9px !important;font-size:11px !important;}
    .lg-jitsi-close{width:36px !important;height:36px !important;min-height:36px !important;}
    .lg-jitsi-dock__viewport{height:220px !important;}
}
@media (max-width:420px){
    .lg-jitsi-mini{display:none !important;}
    .lg-jitsi-dock__actions{gap:6px !important;}
    .lg-jitsi-toggle{padding:0 10px !important;}
}


/* v1.10.15 — manual narrator voice permissions + compact election UI */
/* Remove the duplicated top notification during mayor candidacy when older markup/cache exists. */
.lg-banner--premium.lg-banner--attention:has(.lg-banner__title){
    /* kept harmless for modern browsers; JS also removes this banner in v1.10.15 */
}

/* Player vocal: only the three call choices, compact and obvious. */
.lg-voice-answer-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.lg-voice-answer-btn{
    min-height:42px;
    border:1px solid rgba(92,35,58,.16);
    border-radius:14px;
    background:#fff;
    color:#3b1a28;
    font-weight:950;
    font-size:13px;
    line-height:1.15;
    box-shadow:0 6px 15px rgba(63,15,35,.06);
    cursor:pointer;
    transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
.lg-voice-answer-btn:disabled{
    opacity:.58;
    cursor:not-allowed;
    box-shadow:none;
}
.lg-voice-answer-btn.is-ready{
    color:#073f27;
    border-color:rgba(34,197,94,.55);
    background:linear-gradient(135deg,rgba(236,253,245,.98),rgba(187,247,208,.92));
    box-shadow:0 0 0 2px rgba(34,197,94,.13),0 10px 24px rgba(22,163,74,.14);
    animation:lgVoiceReadyPulse 1.15s ease-in-out infinite;
}
.lg-voice-answer-btn.is-active{
    color:#fff;
    background:linear-gradient(135deg,#1fb86a,#0f8f54);
    border-color:rgba(31,184,106,.9);
}
@keyframes lgVoiceReadyPulse{
    0%,100%{transform:translateY(0);box-shadow:0 0 0 2px rgba(34,197,94,.12),0 10px 24px rgba(22,163,74,.14);}
    50%{transform:translateY(-1px);box-shadow:0 0 0 5px rgba(34,197,94,.18),0 14px 30px rgba(22,163,74,.20);}
}
.lg-voice-mini-actions{
    display:flex;
    gap:8px;
}
.lg-voice-mini-action{
    flex:1;
    min-height:34px;
    border:1px solid rgba(92,35,58,.14);
    border-radius:12px;
    background:rgba(255,255,255,.78);
    color:#4a2636;
    font-weight:850;
    font-size:12px;
}

/* Narrator floating player menu. */
.lg-voice-player-menu{
    position:fixed;
    left:50%;
    bottom:18px;
    transform:translateX(-50%);
    width:min(390px,calc(100vw - 24px));
    z-index:100000;
    border-radius:24px;
    overflow:hidden;
    background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,250,246,.96));
    border:1px solid rgba(92,35,58,.16);
    box-shadow:0 26px 70px rgba(42,18,31,.28);
    padding:14px;
    display:grid;
    gap:10px;
}
.lg-voice-player-menu__head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:10px;
}
.lg-voice-player-menu__head strong{
    display:block;
    font-family:Cinzel,serif;
    font-size:18px;
    line-height:1.05;
    color:#25101d;
}
.lg-voice-player-menu__head small{
    display:block;
    margin-top:3px;
    color:#6d5962;
    font-weight:750;
    font-size:12px;
}
.lg-voice-player-menu__close{
    width:34px;
    height:34px;
    border-radius:999px;
    border:1px solid rgba(92,35,58,.14);
    background:#fff;
    color:#3b1a28;
    font-size:22px;
    line-height:1;
    font-weight:900;
}
.lg-voice-player-menu__hint{
    margin:0;
    padding:9px 10px;
    border-radius:14px;
    background:rgba(37,16,29,.05);
    color:#5d4651;
    font-size:12.5px;
    line-height:1.32;
    font-weight:700;
}
.lg-voice-player-menu__actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.lg-voice-player-menu__btn{
    min-height:42px;
    border:1px solid rgba(92,35,58,.14);
    border-radius:14px;
    background:#fff;
    color:#331725;
    font-weight:950;
    font-size:13px;
    line-height:1.15;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(63,15,35,.06);
}
.lg-voice-player-menu__btn.is-general{background:linear-gradient(135deg,#fff,#f8f4ed);}
.lg-voice-player-menu__btn.is-narrator{background:linear-gradient(135deg,#f7f1ff,#fff);}
.lg-voice-player-menu__btn.is-wolves{background:linear-gradient(135deg,#fff1f4,#fff);color:#8a1234;}
.lg-voice-player-menu__btn.is-stop{
    grid-column:1/-1;
    background:linear-gradient(135deg,#24101a,#4a1c2f);
    color:#fff;
    border-color:rgba(36,16,26,.85);
}

/* Micro dots on village profiles: clear red/green states. */
.lg-village-player--host-voice .lg-village-player__status-dot{
    width:12px !important;
    height:12px !important;
    border:2px solid #fff !important;
}
.lg-village-player--mic-open .lg-village-player__status-dot{
    background:#18c76f !important;
    box-shadow:0 0 0 5px rgba(24,199,111,.18),0 0 18px rgba(24,199,111,.48) !important;
}
.lg-village-player--mic-closed .lg-village-player__status-dot{
    background:#dc2f51 !important;
    box-shadow:0 0 0 5px rgba(220,47,81,.16) !important;
}
.lg-village-player__mic-btn{
    font-size:0 !important;
    position:relative;
}
.lg-village-player__mic-btn::before{
    content:"";
    width:12px;
    height:12px;
    border-radius:999px;
    background:#dc2f51;
    box-shadow:0 0 0 4px rgba(220,47,81,.16);
}
.lg-village-player__mic-btn.is-open::before{
    background:#18c76f;
    box-shadow:0 0 0 4px rgba(24,199,111,.18),0 0 14px rgba(24,199,111,.45);
}
.lg-village-player__mic-btn.is-dead::before{background:#9a9095;box-shadow:none;}

/* Restored professional floating call window. */
.lg-jitsi-dock{
    left:auto !important;
    right:12px !important;
    bottom:12px !important;
    width:min(420px,calc(100vw - 24px)) !important;
    border-radius:24px !important;
    overflow:hidden !important;
    background:linear-gradient(180deg,#15101d 0%,#09070f 100%) !important;
    border:1px solid rgba(255,255,255,.12) !important;
    box-shadow:0 24px 70px rgba(4,4,10,.42) !important;
    backdrop-filter:blur(18px);
}
.lg-jitsi-dock__head{
    min-height:auto !important;
    padding:12px 14px !important;
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    background:linear-gradient(135deg,#2a1430 0%,#100b19 100%) !important;
}
.lg-jitsi-dock__head strong{font-size:16px !important;line-height:1.1 !important;}
.lg-jitsi-dock__head small{display:block !important;color:rgba(255,255,255,.60) !important;font-size:11px !important;}
.lg-jitsi-dock__body{display:grid !important;gap:9px !important;padding:10px !important;background:#08070d !important;}
.lg-jitsi-dock__hint{display:block !important;padding:8px 10px !important;border-radius:14px !important;background:rgba(255,255,255,.055) !important;color:rgba(255,255,255,.72) !important;font-size:12px !important;}
.lg-jitsi-dock__viewport{height:240px !important;border-radius:18px !important;overflow:hidden !important;background:#000 !important;border:1px solid rgba(255,255,255,.08) !important;}
.lg-jitsi-dock.is-compact .lg-jitsi-dock__body{display:none !important;}

/* Compact and centered mayor nomination card. */
.lg-mayor-election-panel .lg-player-action-panel__notice{
    text-align:center !important;
    justify-items:center !important;
    padding:12px 14px !important;
    border-radius:18px !important;
    background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(255,247,241,.88)) !important;
}
.lg-mayor-election-panel .lg-player-action-panel__notice strong{
    display:block;
    text-align:center;
    font-size:clamp(18px,5vw,24px) !important;
    line-height:1.05 !important;
    color:#9f143b !important;
}
.lg-mayor-election-panel .lg-player-action-panel__notice p{
    text-align:center;
    margin:6px 0 0 !important;
    font-size:13px !important;
    line-height:1.25 !important;
}
.lg-mayor-election-panel .lg-btn--primary{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    width:min(340px,100%) !important;
    margin:10px auto 0 !important;
    background:linear-gradient(135deg,#20c76f,#0f9658) !important;
    border-color:#0f9658 !important;
    color:#fff !important;
    box-shadow:0 14px 28px rgba(15,150,88,.22) !important;
}
@media (max-width:720px){
    .lg-voice-player-menu{bottom:12px;width:calc(100vw - 20px);border-radius:22px;padding:12px;}
    .lg-voice-player-menu__actions{grid-template-columns:1fr 1fr;}
    .lg-voice-answer-grid{grid-template-columns:1fr;gap:7px;}
    .lg-voice-answer-btn{min-height:40px;font-size:12.5px;}
    .lg-jitsi-dock{left:10px !important;right:10px !important;bottom:10px !important;width:auto !important;border-radius:22px !important;}
    .lg-jitsi-dock__viewport{height:210px !important;}
}


/* v1.10.16 — narrator dashboard direct click voice fix */
.lg-live-player--voice-clickable{
    cursor:pointer;
    user-select:none;
    transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.lg-live-player--voice-clickable:hover,
.lg-live-player--voice-clickable:focus-visible{
    transform:translateY(-1px);
    border-color:rgba(169,21,63,.34);
    box-shadow:0 10px 24px rgba(63,15,35,.12);
    outline:none;
}
.lg-live-player--voice-clickable:active{transform:translateY(0) scale(.99);}
.lg-live-player__mic-state{
    position:absolute;
    top:8px;
    right:8px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:24px;
    border-radius:999px;
    border:2px solid #fff;
    font-size:11px;
    line-height:1;
    font-weight:950;
    box-shadow:0 7px 16px rgba(31,21,35,.18);
    z-index:2;
}
.lg-live-player__mic-state.is-open{
    background:#19bf66;
    color:#fff;
    box-shadow:0 0 0 3px rgba(25,191,102,.16),0 8px 18px rgba(25,191,102,.28);
}
.lg-live-player__mic-state.is-closed{
    background:#c01845;
    color:#fff;
}
.lg-live-player__mic-state.is-dead{
    background:#99939b;
    color:#fff;
}
.lg-live-player--mic-open{
    border-color:rgba(25,191,102,.46) !important;
    box-shadow:0 0 0 2px rgba(25,191,102,.14),0 10px 24px rgba(25,191,102,.13) !important;
}
.lg-live-player__voice-invite{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    max-width:100%;
    padding:4px 8px;
    border-radius:999px;
    font-size:9.5px;
    line-height:1.1;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.03em;
    white-space:nowrap;
}
.lg-live-player__voice-invite.is-general{
    background:rgba(34,197,94,.14);
    color:#0c7a43;
}
.lg-live-player__voice-invite.is-narrator{
    background:rgba(124,58,237,.13);
    color:#5f27ad;
}
.lg-live-player__voice-invite.is-wolves{
    background:rgba(190,18,60,.13);
    color:#9f1239;
}
.lg-voice-player-menu__btn:hover,
.lg-voice-player-menu__btn:focus-visible{
    transform:translateY(-1px);
    outline:none;
    box-shadow:0 12px 24px rgba(63,15,35,.12);
}
@media (max-width:720px){
    .lg-live-player__mic-state{top:7px;right:7px;width:22px;height:22px;font-size:10px;}
    .lg-live-player__voice-invite{font-size:8.8px;padding:4px 7px;}
}

/* v2.0.0 — React premium red / ivory mobile homepage */
.lg-app.lg-app--react-home {
    --lgr-red:#c51f32;
    --lgr-red-2:#8f1024;
    --lgr-red-3:#5c0a18;
    --lgr-cream:#fff8f0;
    --lgr-cream-2:#f8ece3;
    --lgr-ink:#351518;
    --lgr-muted:#8b6763;
    --lgr-line:rgba(150,35,42,.16);
    min-height:100vh;
    min-height:100svh;
    padding:0;
    border-radius:0;
    background:linear-gradient(180deg,#fff9f3 0%,#fff3ec 46%,#fff8f2 100%);
    color:var(--lgr-ink);
    font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
}
.lg-app--react-home .lg-bg{display:none!important;}
.lg-screen--home{min-height:100vh;min-height:100svh;}
.lg-react-home-shell{position:relative;isolation:isolate;min-height:100vh;min-height:100svh;overflow:hidden;padding:calc(env(safe-area-inset-top,0px) + 10px) 16px calc(100px + env(safe-area-inset-bottom,0px));}
.lg-react-home-bg{position:absolute;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(circle at 50% 7%,rgba(255,255,255,.96) 0 14%,rgba(255,235,222,.72) 31%,transparent 51%),radial-gradient(circle at 12% 10%,rgba(198,31,50,.16),transparent 34%),linear-gradient(180deg,#fffaf5,#fff0e8 58%,#fff7f1);}
.lg-react-home-bg span{position:absolute;left:50%;top:-68px;width:min(92vw,440px);aspect-ratio:1;border-radius:50%;transform:translateX(-50%);background:radial-gradient(circle,#fffaf1 0 44%,rgba(255,221,203,.42) 45% 67%,transparent 68%);box-shadow:0 0 80px rgba(198,31,50,.13);opacity:.9;}
.lg-react-home-bg i,.lg-react-home-bg b{position:absolute;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(198,31,50,.18),transparent);height:1px;width:78%;left:11%;top:156px;transform:rotate(-4deg);}
.lg-react-home-bg b{top:510px;transform:rotate(3deg);opacity:.7;}
.lg-react-top{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:480px;margin:0 auto;min-height:48px;}
.lg-react-mark,.lg-react-notify{border:1px solid rgba(178,31,45,.22);background:rgba(255,255,255,.62);backdrop-filter:blur(18px);box-shadow:0 12px 28px rgba(89,26,26,.08);color:var(--lgr-red-2);}
.lg-react-mark{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;}
.lg-react-mark svg{width:26px;height:26px;filter:drop-shadow(0 3px 10px rgba(197,31,50,.18));}
.lg-react-notify{position:relative;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;font:700 22px/1 Inter,system-ui;color:#5d2926;}
.lg-react-notify i{position:absolute;right:4px;top:4px;width:10px;height:10px;background:#e1333d;border:2px solid #fff;border-radius:50%;}
.lg-react-main{max-width:480px;margin:0 auto;}
.lg-react-hero{text-align:center;padding:18px 0 18px;}
.lg-react-ornament{color:var(--lgr-red);font-size:19px;margin:0 0 6px;position:relative;display:inline-flex;align-items:center;gap:14px;}
.lg-react-ornament:before,.lg-react-ornament:after{content:"";display:block;width:72px;height:1px;background:linear-gradient(90deg,transparent,var(--lgr-red),transparent);}
.lg-react-title{margin:0;font-family:Cinzel,"Cormorant Garamond",Georgia,serif;font-weight:700;line-height:.88;letter-spacing:-.04em;color:#54211c;text-shadow:0 1px 0 #fff;}
.lg-react-title span{display:block;font-size:clamp(48px,15vw,76px);}
.lg-react-title em{display:block;font-style:normal;font-size:clamp(40px,12vw,62px);color:var(--lgr-red);text-shadow:0 0 18px rgba(198,31,50,.22);}
.lg-react-subtitle{margin:14px 0 14px;font-size:15px;letter-spacing:.04em;color:#68413f;}
.lg-react-pills{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;}
.lg-react-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(198,31,50,.24);border-radius:999px;padding:10px 13px;background:rgba(255,255,255,.62);color:#5d2926;font-size:13px;font-weight:650;box-shadow:0 10px 22px rgba(89,26,26,.06);backdrop-filter:blur(15px);}
.lg-react-pill svg{width:17px;height:17px;color:var(--lgr-red);}
.lg-react-actions{display:grid;gap:12px;margin-top:2px;}
.lg-react-action{appearance:none;border:0;width:100%;text-align:left;border-radius:22px;padding:17px 18px;display:grid;grid-template-columns:66px 1fr 42px;align-items:center;gap:14px;cursor:pointer;min-height:92px;font-family:Inter,system-ui;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;}
.lg-react-action:active,.lg-react-mini-btn:active,.lg-react-nav button:active{transform:scale(.985);}
.lg-react-action--primary{background:linear-gradient(135deg,#e52b38 0%,#be152b 45%,#840e20 100%);box-shadow:0 18px 45px rgba(180,28,42,.32),inset 0 1px 0 rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.36);color:#fffaf6;}
.lg-react-action--secondary{background:rgba(255,255,255,.78);border:1px solid rgba(128,48,43,.15);box-shadow:0 14px 32px rgba(89,26,26,.08);color:var(--lgr-ink);}
.lg-react-action__icon{width:62px;height:62px;border-radius:22px;display:grid;place-items:center;background:rgba(255,255,255,.13);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);color:currentColor;}
.lg-react-action__icon svg{width:32px;height:32px;}
.lg-react-action--secondary .lg-react-action__icon{background:#fff5ee;color:var(--lgr-red-2);box-shadow:inset 0 0 0 1px rgba(198,31,50,.10),0 10px 20px rgba(89,26,26,.05);}
.lg-react-action__copy strong{display:block;font:700 28px/1.05 "Cormorant Garamond",Georgia,serif;letter-spacing:-.02em;}
.lg-react-action__copy small{display:block;margin-top:5px;color:rgba(255,255,255,.84);font-size:14px;line-height:1.35;}
.lg-react-action--secondary .lg-react-action__copy small{color:var(--lgr-muted);}
.lg-react-action__arrow{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid currentColor;opacity:.88;}
.lg-react-action__arrow svg{width:20px;height:20px;}
.lg-react-formcard,.lg-react-resume,.lg-react-call,.lg-react-feature{border:1px solid var(--lgr-line);background:rgba(255,255,255,.72);box-shadow:0 14px 36px rgba(89,26,26,.08);backdrop-filter:blur(18px);}
.lg-react-formcard{margin-top:12px;border-radius:22px;padding:18px;}
.lg-react-formcard[hidden],.lg-react-resume[hidden]{display:none!important;}
.lg-react-kicker,.lg-react-resume__title,.lg-react-call__head strong{text-transform:uppercase;letter-spacing:.12em;color:var(--lgr-red);font-weight:800;font-size:12px;}
.lg-react-formcard h2{margin:4px 0 4px;font-family:Cinzel,serif;color:#4d1717;font-size:24px;}
.lg-react-formcard p{margin:0 0 12px;color:#77514d;font-size:14px;}
.lg-react-formcard label{display:block;margin:10px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7d5552;font-weight:800;}
.lg-react-formcard .lg-home-input{width:100%;border:1px solid rgba(185,32,45,.18);border-radius:15px;background:#fffdf9;color:#381719;padding:14px;font-size:16px;outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.8);}
.lg-react-formcard .lg-home-input:focus{border-color:rgba(198,31,50,.55);box-shadow:0 0 0 4px rgba(198,31,50,.10);}
.lg-react-formcard__buttons{display:grid;grid-template-columns:1fr 92px;gap:10px;margin-top:14px;}
.lg-react-mini-btn{border:1px solid rgba(150,35,42,.18);border-radius:15px;background:#fff8f2;color:#6a2423;font-weight:800;font-size:14px;padding:12px 14px;cursor:pointer;box-shadow:0 8px 18px rgba(89,26,26,.06);}
.lg-react-mini-btn--red{background:linear-gradient(135deg,#df2b37,#a9142a);color:#fff;border-color:transparent;box-shadow:0 12px 28px rgba(180,28,42,.25);}
.lg-react-mini-btn--outline{background:#fff7f1;color:var(--lgr-red-2);border-color:rgba(198,31,50,.42);min-width:112px;}
.lg-react-link-btn{border:0;background:transparent;color:#9d6c65;font-weight:700;padding:8px;cursor:pointer;}
.lg-react-resume{margin-top:12px;border-radius:20px;padding:16px;}
.lg-react-resume__row{display:grid;grid-template-columns:44px minmax(78px,1fr) minmax(70px,1fr) auto;align-items:center;gap:10px;margin-top:10px;}
.lg-react-resume__icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(198,31,50,.32);color:var(--lgr-red);background:#fff8f1;}
.lg-react-resume__icon svg{width:22px;height:22px;}
.lg-react-resume__copy small{display:block;color:#8d625d;font-size:12px;}
.lg-react-resume__copy strong{font-family:Cinzel,serif;font-size:21px;color:#401716;}
.lg-react-resume__phase{display:flex;align-items:center;gap:8px;color:#5b2e2b;font-size:13px;line-height:1.25;}
.lg-react-resume__phase svg{width:18px;height:18px;color:var(--lgr-red-2);flex:0 0 auto;}
.lg-react-call{margin-top:12px;border-radius:20px;padding:16px;}
.lg-react-call__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.lg-react-call__head small{display:block;color:#6f514e;font-size:14px;margin-top:3px;}
.lg-react-call__head>span{color:var(--lgr-red);display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff8f1;}
.lg-react-call__head svg{width:20px;height:20px;}
.lg-react-avatars{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:13px;}
.lg-react-avatar{position:relative;text-align:center;min-width:0;}
.lg-react-avatar__face{position:relative;margin:0 auto 6px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(198,31,50,.25);background:linear-gradient(145deg,#fff9f3,#f4ddd4);color:#65312e;font-weight:900;box-shadow:inset 0 1px 0 #fff,0 8px 16px rgba(89,26,26,.08);overflow:hidden;}
.lg-react-avatar__face--b{background:linear-gradient(145deg,#f8e5d9,#dfb0a5);}.lg-react-avatar__face--c{background:linear-gradient(145deg,#d72834,#6f0e1e);color:#fff;}.lg-react-avatar__face--d{background:linear-gradient(145deg,#fffdf8,#eadbd2);}.lg-react-avatar__face--e{background:linear-gradient(145deg,#efe1d9,#c9ada5);}
.lg-react-avatar.is-speaking .lg-react-avatar__face{box-shadow:0 0 0 4px rgba(198,31,50,.12),0 0 26px rgba(198,31,50,.38);border-color:rgba(198,31,50,.7);}
.lg-react-avatar__face svg{width:25px;height:25px;}
.lg-react-avatar__dot{position:absolute;right:14px;bottom:24px;width:11px;height:11px;background:#5fd56f;border:2px solid #fff;border-radius:50%;}
.lg-react-avatar.is-muted .lg-react-avatar__dot{background:#d02d36;}
.lg-react-avatar__mute{position:absolute;right:8px;bottom:23px;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:#d02d36;color:#fff;font-weight:900;border:2px solid #fff;line-height:1;}
.lg-react-avatar small{font-size:12px;color:#4e2b29;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;}
.lg-react-features{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
.lg-react-feature{border-radius:18px;padding:13px 12px;display:grid;grid-template-columns:36px 1fr 12px;gap:10px;align-items:center;min-height:86px;}
.lg-react-feature__icon{color:var(--lgr-red);display:grid;place-items:center;}
.lg-react-feature__icon svg{width:28px;height:28px;}
.lg-react-feature h3{margin:0;color:#3b1817;font:800 14px/1.15 Inter,system-ui;letter-spacing:-.02em;}
.lg-react-feature p{margin:4px 0 0;color:#73514d;font-size:12.5px;line-height:1.28;}
.lg-react-feature__arrow{color:#a62b2c;font-size:24px;line-height:1;}
.lg-react-error{min-height:24px;margin:12px 0 0;text-align:center;color:var(--lgr-red-2);font-family:Inter,system-ui;font-weight:700;}
.lg-react-nav{position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));z-index:40;max-width:500px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 78px 1fr 1fr;align-items:center;gap:2px;padding:10px 10px;border-radius:32px;background:rgba(255,248,241,.86);border:1px solid rgba(150,35,42,.15);box-shadow:0 18px 48px rgba(89,26,26,.18);backdrop-filter:blur(22px);}
.lg-react-nav button{appearance:none;border:0;background:transparent;color:#815a55;display:grid;place-items:center;gap:3px;font:700 12px/1 Inter,system-ui;cursor:pointer;min-height:50px;border-radius:20px;}
.lg-react-nav button svg{width:22px;height:22px;}
.lg-react-nav button.is-active{color:var(--lgr-red);}
.lg-react-nav__center{width:72px!important;height:72px!important;min-height:72px!important;border-radius:50%!important;margin:-34px auto -4px;background:radial-gradient(circle at 35% 25%,#ff4853,#b51227 58%,#710d1d)!important;color:#fff!important;box-shadow:0 12px 30px rgba(198,31,50,.38),0 0 0 7px rgba(255,255,255,.78)!important;}
.lg-react-nav__center svg{width:37px!important;height:37px!important;}
@media (max-width:380px){.lg-react-home-shell{padding-left:12px;padding-right:12px}.lg-react-title span{font-size:45px}.lg-react-title em{font-size:39px}.lg-react-action{grid-template-columns:56px 1fr 36px;min-height:84px;padding:14px}.lg-react-action__icon{width:54px;height:54px;border-radius:18px}.lg-react-action__copy strong{font-size:24px}.lg-react-avatars{gap:4px}.lg-react-avatar__face{width:48px;height:48px}.lg-react-feature{grid-template-columns:30px 1fr}.lg-react-feature__arrow{display:none}.lg-react-feature h3{font-size:13px}.lg-react-feature p{font-size:11.5px}.lg-react-resume__row{grid-template-columns:38px 1fr auto}.lg-react-resume__phase{display:none}.lg-react-link-btn{display:none}}
@media (min-width:720px){.lg-app.lg-app--react-home{display:grid;place-items:center;background:#120709}.lg-react-home-shell{width:430px;min-height:900px;border-radius:42px;margin:24px 0;box-shadow:0 34px 90px rgba(0,0,0,.35);border:10px solid #191919;overflow:hidden}.lg-react-nav{position:absolute;left:16px;right:16px;bottom:16px}}
.lg-react-noscript{min-height:100vh;display:grid;place-content:center;gap:10px;text-align:center;padding:24px;background:#fff6ef;color:#351518}.lg-react-noscript h1{margin:0;font-family:Cinzel,Georgia,serif;color:#c51f32}

/* v2.0.0 — React feature pages opened from the top-right icon */
.lg-app.lg-app--react-home .lg-react-home-shell{overflow:visible;}
.lg-app.lg-app--react-home .lg-react-home-shell--page{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px));}
.lg-react-mark{appearance:none;cursor:pointer;padding:0;}
.lg-react-pages-button svg{width:22px;height:22px;color:var(--lgr-red-2);}
.lg-react-feature--button{appearance:none;width:100%;text-align:left;cursor:pointer;border:1px solid var(--lgr-line);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;background:rgba(255,255,255,.78);}
.lg-react-feature--button:hover,.lg-react-page-tile:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(151,28,40,.12);border-color:rgba(198,31,50,.32);}
.lg-react-page{position:relative;z-index:1;padding-top:12px;display:grid;gap:14px;}
.lg-react-back{appearance:none;justify-self:start;border:1px solid rgba(198,31,50,.18);border-radius:999px;background:rgba(255,255,255,.78);color:#762b2b;font:850 13px/1 Inter,system-ui;padding:11px 14px;box-shadow:0 10px 24px rgba(89,26,26,.07);backdrop-filter:blur(16px);cursor:pointer;}
.lg-react-page-hero,.lg-react-seo-card,.lg-react-faq,.lg-react-final-cta,.lg-react-page-tile,.lg-react-proof{border:1px solid rgba(150,35,42,.14);background:rgba(255,255,255,.76);box-shadow:0 16px 42px rgba(89,26,26,.08);backdrop-filter:blur(18px);}
.lg-react-page-hero{border-radius:28px;padding:24px 22px;overflow:hidden;position:relative;}
.lg-react-page-hero:before{content:"";position:absolute;inset:-80px -70px auto auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(198,31,50,.15),transparent 68%);pointer-events:none;}
.lg-react-page-icon{width:54px;height:54px;border-radius:20px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#e52b38,#9b1328);box-shadow:0 18px 36px rgba(180,28,42,.25);margin-bottom:14px;}
.lg-react-page-icon svg{width:29px;height:29px;}
.lg-react-page-kicker{margin:0 0 9px;text-transform:uppercase;letter-spacing:.13em;color:var(--lgr-red);font-weight:900;font-size:12px;}
.lg-react-page h1{margin:0 0 10px;font:800 clamp(36px,10vw,58px)/.92 "Cormorant Garamond",Georgia,serif;letter-spacing:-.04em;color:#3b1515;}
.lg-react-page h1 strong,.lg-react-page h1 em{color:var(--lgr-red);font-style:normal;}
.lg-react-page-hero p:not(.lg-react-page-kicker){margin:0;color:#73514d;font-size:16px;line-height:1.55;}
.lg-react-page-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;}
.lg-react-page-grid{display:grid;grid-template-columns:1fr;gap:12px;}
.lg-react-page-tile{border-radius:22px;padding:18px;text-align:left;display:grid;grid-template-columns:52px 1fr;column-gap:14px;row-gap:3px;align-items:center;color:#351518;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;font-family:Inter,system-ui;}
.lg-react-page-tile__icon{grid-row:1 / span 3;width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:#fff4ee;color:var(--lgr-red);box-shadow:inset 0 0 0 1px rgba(198,31,50,.12);}
.lg-react-page-tile__icon svg{width:28px;height:28px;}
.lg-react-page-tile strong{font:900 17px/1.1 Inter,system-ui;color:#371818;}
.lg-react-page-tile small{color:#76514e;font-size:13px;line-height:1.35;}
.lg-react-page-tile em{font-style:normal;color:var(--lgr-red);font-weight:900;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-top:3px;}
.lg-react-proof-grid{display:grid;grid-template-columns:1fr;gap:10px;}
.lg-react-proof{border-radius:20px;padding:16px;}
.lg-react-proof span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:13px;background:#fff1eb;color:var(--lgr-red);font:950 13px/1 Inter,system-ui;margin-bottom:10px;}
.lg-react-proof h2,.lg-react-seo-card h2,.lg-react-faq h2,.lg-react-final-cta h2{margin:0 0 8px;color:#361616;font:850 23px/1.05 "Cormorant Garamond",Georgia,serif;letter-spacing:-.02em;}
.lg-react-proof p,.lg-react-seo-card p,.lg-react-faq p,.lg-react-final-cta p{margin:0;color:#74514e;font-size:14.5px;line-height:1.55;}
.lg-react-content-stack{display:grid;gap:12px;}
.lg-react-seo-card{border-radius:22px;padding:20px;}
.lg-react-faq{border-radius:24px;padding:18px;display:grid;gap:10px;}
.lg-react-faq details{border:1px solid rgba(150,35,42,.12);background:rgba(255,248,242,.72);border-radius:16px;padding:14px;}
.lg-react-faq summary{cursor:pointer;color:#421b1b;font-weight:900;}
.lg-react-faq details[open]{background:#fff;box-shadow:0 10px 22px rgba(89,26,26,.06);}
.lg-react-page__seo{margin:0;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.54);border:1px dashed rgba(198,31,50,.24);color:#8d615d;font-size:12.5px;line-height:1.4;}
.lg-react-final-cta{border-radius:28px;padding:22px;text-align:center;background:linear-gradient(135deg,#fff,#fff3ec);}
.lg-react-final-cta .lg-react-mini-btn{margin-top:16px;}
.lg-react-page--menu .lg-react-page-hero{background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(255,241,235,.78));}
.lg-react-page--feature .lg-react-page-hero{background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(255,238,231,.74));}
@media (max-width:380px){.lg-react-page-actions{grid-template-columns:1fr}.lg-react-page h1{font-size:34px}.lg-react-page-hero{padding:20px}.lg-react-proof h2,.lg-react-seo-card h2,.lg-react-faq h2,.lg-react-final-cta h2{font-size:21px}.lg-react-page-tile{grid-template-columns:46px 1fr;padding:15px}.lg-react-page-tile__icon{width:46px;height:46px}}
@media (min-width:720px){.lg-app.lg-app--react-home .lg-react-home-shell{overflow-y:auto;max-height:900px}.lg-react-home-shell--page{min-height:900px}.lg-react-proof-grid{grid-template-columns:repeat(3,1fr)}.lg-react-page-grid{grid-template-columns:1fr 1fr}.lg-react-nav{position:absolute}}

/* =====================================================================
   v2.0.0 — Premium in-game navigation: discussion, deaths, clan, village
   ===================================================================== */
.lg-game-nav,
.lg-game-panel,
.lg-live-notice { display:none; }

@media (max-width:1023px) {
    .lg-app--live-game {
        --lg-game-red:#c9152b;
        --lg-game-red-dark:#8f0d20;
        --lg-game-ivory:#fffaf5;
        --lg-game-text:#32191b;
        --lg-game-muted:#7b5d60;
        --lg-game-border:rgba(201,21,43,.18);
        padding-bottom:calc(134px + env(safe-area-inset-bottom)) !important;
    }
    .lg-app--live-game .lg-chat-fab,
    .lg-app--live-game:not(.lg-app--host-stage) .lg-chat-fab,
    .lg-app--host-stage .lg-chat-fab { display:none !important; }

    .lg-app--live-game .lg-game-nav {
        position:fixed;
        left:max(12px, env(safe-area-inset-left));
        right:max(12px, env(safe-area-inset-right));
        bottom:calc(12px + var(--lg-vv-bottom-gap, 0px));
        z-index:1000;
        display:grid;
        grid-template-columns:1fr 1fr 78px 1fr 1fr;
        align-items:end;
        min-height:78px;
        padding:10px 9px 12px;
        border:1px solid rgba(201,21,43,.16);
        border-radius:34px;
        background:linear-gradient(180deg, rgba(255,253,249,.94), rgba(255,248,241,.98));
        box-shadow:0 16px 46px rgba(88,38,42,.22), inset 0 1px 0 rgba(255,255,255,.9);
        backdrop-filter:blur(18px);
        transition:transform .28s cubic-bezier(.2,.8,.2,1), opacity .2s ease;
    }
    body.lg-chat-sheet-open .lg-game-nav,
    body.lg-game-panel-open .lg-game-nav { transform:translateY(calc(100% + 22px)); opacity:.2; pointer-events:none; }

    .lg-game-nav button {
        -webkit-tap-highlight-color:transparent;
        appearance:none;
        border:0;
        background:transparent;
        color:#74575a;
        font:800 12px/1.15 var(--lg-font-ui);
        cursor:pointer;
    }
    .lg-game-nav__item {
        position:relative;
        display:grid;
        place-items:center;
        gap:5px;
        min-width:0;
        padding:7px 2px 0;
        border-radius:18px;
        transition:color .18s ease, transform .18s ease, background .18s ease;
    }
    .lg-game-nav__item:active { transform:translateY(1px) scale(.97); }
    .lg-game-nav__item.is-active,
    .lg-game-nav__item:hover { color:var(--lg-game-red); }
    .lg-game-nav__item.is-locked { opacity:.78; }
    .lg-game-nav__icon {
        position:relative;
        display:grid;
        width:30px;
        height:30px;
        place-items:center;
    }
    .lg-game-nav__icon svg { width:28px; height:28px; display:block; }
    .lg-game-nav__label {
        display:block;
        max-width:64px;
        overflow:hidden;
        text-align:center;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .lg-game-nav__item.has-count .lg-game-nav__icon::after {
        content:attr(data-count);
    }
    .lg-game-nav__center {
        position:relative;
        align-self:center;
        justify-self:center;
        display:grid;
        width:78px;
        height:78px;
        margin-top:-42px;
        place-items:center;
        border:8px solid rgba(255,255,255,.74) !important;
        border-radius:50%;
        background:radial-gradient(circle at 40% 18%, #ff4b5d 0%, #d71936 42%, #8f0d20 100%) !important;
        color:#fff !important;
        box-shadow:0 16px 35px rgba(201,21,43,.32), 0 0 0 10px rgba(201,21,43,.08);
        transition:transform .18s ease, box-shadow .2s ease;
    }
    .lg-game-nav__center:active { transform:scale(.95); }
    .lg-game-nav__centerIcon svg { width:32px; height:32px; display:block; }
    .lg-game-nav__badge {
        position:absolute;
        top:-18px;
        right:2px;
        display:grid;
        min-width:24px;
        height:24px;
        padding:0 6px;
        place-items:center;
        border:2px solid #fffaf5;
        border-radius:999px;
        background:#c9152b;
        color:#fff;
        font:900 11px/1 var(--lg-font-ui);
        box-shadow:0 8px 18px rgba(201,21,43,.32);
    }
    .lg-game-nav__badge[hidden] { display:none; }

    .lg-live-notice {
        position:fixed;
        left:max(18px, env(safe-area-inset-left));
        right:max(18px, env(safe-area-inset-right));
        bottom:calc(104px + var(--lg-vv-bottom-gap, 0px));
        z-index:1004;
        display:block;
        padding:11px 16px;
        border:1px solid rgba(24,145,84,.22);
        border-radius:18px;
        background:linear-gradient(135deg, rgba(232,255,243,.98), rgba(213,255,233,.96));
        color:#14633f;
        box-shadow:0 14px 35px rgba(38,158,101,.18);
        font:850 13px/1.25 var(--lg-font-ui);
        opacity:0;
        transform:translateY(12px) scale(.98);
        pointer-events:none;
        transition:opacity .22s ease, transform .22s cubic-bezier(.2,.8,.2,1);
    }
    .lg-live-notice::before {
        content:'●';
        margin-right:8px;
        color:#1fc979;
        text-shadow:0 0 10px rgba(31,201,121,.38);
    }
    .lg-live-notice.is-on { opacity:1; transform:translateY(0) scale(1); }
    .lg-live-notice[hidden] { display:none; }

    .lg-game-panel {
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        z-index:1003;
        display:flex;
        flex-direction:column;
        max-height:min(88vh, 760px);
        max-height:min(88svh, 760px);
        padding:10px max(15px, env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(15px, env(safe-area-inset-left));
        border:1px solid rgba(201,21,43,.16);
        border-bottom:0;
        border-radius:30px 30px 0 0;
        background:linear-gradient(180deg, #fffdf9 0%, #fff8f1 100%);
        box-shadow:0 -28px 70px rgba(91,36,41,.28);
        color:var(--lg-game-text);
        transform:translateY(calc(100% + 28px));
        visibility:hidden;
        transition:transform .34s cubic-bezier(.2,.8,.2,1), visibility .34s linear;
    }
    .lg-game-panel.is-open { transform:translateY(0); visibility:visible; }
    .lg-game-panel__handle {
        width:48px;
        height:5px;
        margin:0 auto 12px;
        border-radius:999px;
        background:#e8d7d2;
    }
    .lg-game-panel__head {
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        padding:0 2px 14px;
        border-bottom:1px solid rgba(201,21,43,.12);
    }
    .lg-game-panel__head small {
        display:block;
        margin-bottom:2px;
        color:var(--lg-game-red);
        font:900 11px/1 var(--lg-font-ui);
        letter-spacing:.14em;
        text-transform:uppercase;
    }
    .lg-game-panel__head h2 {
        margin:0;
        color:#2e1517;
        font-family:Georgia, 'Times New Roman', serif;
        font-size:30px;
        line-height:1;
    }
    .lg-game-panel__close {
        display:grid;
        width:44px;
        height:44px;
        flex:0 0 auto;
        place-items:center;
        border:1px solid rgba(201,21,43,.16);
        border-radius:50%;
        background:#fff;
        color:#74383e;
        cursor:pointer;
        box-shadow:0 8px 22px rgba(120,38,43,.10);
    }
    .lg-game-panel__close svg { width:20px; height:20px; }
    .lg-game-panel__content {
        min-height:0;
        overflow:auto;
        padding:15px 1px 4px;
        -webkit-overflow-scrolling:touch;
    }
    .lg-game-panel-card {
        display:flex;
        align-items:center;
        gap:13px;
        padding:15px;
        margin-bottom:13px;
        border:1px solid rgba(201,21,43,.13);
        border-radius:22px;
        background:rgba(255,255,255,.76);
        box-shadow:0 12px 30px rgba(99,40,43,.08);
    }
    .lg-game-panel-card__icon {
        display:grid;
        width:52px;
        height:52px;
        flex:0 0 auto;
        place-items:center;
        border-radius:18px;
        background:linear-gradient(145deg, #ffeff1, #fffaf5);
        color:var(--lg-game-red);
        font-size:25px;
        box-shadow:inset 0 0 0 1px rgba(201,21,43,.12);
    }
    .lg-game-panel-card strong { display:block; color:#311719; font:900 16px/1.2 var(--lg-font-ui); }
    .lg-game-panel-card p { margin:4px 0 0; color:var(--lg-game-muted); font:500 13px/1.35 var(--lg-font-ui); }

    .lg-game-panel-village h3,
    .lg-panel-subtitle {
        margin:18px 0 10px;
        color:#351819;
        font:900 15px/1 var(--lg-font-ui);
    }
    .lg-game-panel-village .lg-village-ring {
        min-height:clamp(300px, 74vw, 405px);
        border-radius:28px;
    }
    .lg-game-panel-village__note { margin-top:12px; }
    .lg-death-list,
    .lg-speech-list { display:grid; gap:10px; }
    .lg-death-card,
    .lg-speech-row {
        display:flex;
        align-items:center;
        gap:12px;
        padding:13px;
        border:1px solid rgba(201,21,43,.12);
        border-radius:19px;
        background:#fff;
        box-shadow:0 8px 20px rgba(99,40,43,.06);
    }
    .lg-death-card__avatar,
    .lg-speech-row span {
        display:grid;
        width:42px;
        height:42px;
        flex:0 0 auto;
        place-items:center;
        border-radius:15px;
        background:#fff0f1;
        color:var(--lg-game-red);
        font-weight:900;
    }
    .lg-death-card strong,
    .lg-speech-row strong { color:#311719; font:900 15px/1.1 var(--lg-font-ui); }
    .lg-death-card p { margin:4px 0 0; color:var(--lg-game-muted); font:500 12px/1.35 var(--lg-font-ui); }
    .lg-speech-row em { margin-left:auto; color:#8b6d70; font:800 11px/1 var(--lg-font-ui); font-style:normal; }
    .lg-speech-row.is-active { border-color:rgba(201,21,43,.3); background:#fff4f5; }
    .lg-panel-timer {
        margin:8px 0 14px;
        padding:11px 13px;
        border-radius:16px;
        background:#fff0f1;
        color:var(--lg-game-red-dark);
        font:900 13px/1 var(--lg-font-ui);
    }
    .lg-empty-state {
        display:grid;
        place-items:center;
        min-height:210px;
        padding:24px;
        text-align:center;
        border:1px solid rgba(201,21,43,.12);
        border-radius:26px;
        background:rgba(255,255,255,.78);
    }
    .lg-empty-state__icon {
        display:grid;
        width:68px;
        height:68px;
        margin-bottom:12px;
        place-items:center;
        border-radius:24px;
        background:#fff0f1;
        color:var(--lg-game-red);
        font-size:32px;
    }
    .lg-empty-state strong { color:#311719; font:900 18px/1.2 var(--lg-font-ui); }
    .lg-empty-state p { margin:8px 0 0; color:var(--lg-game-muted); font:500 13px/1.45 var(--lg-font-ui); }
    .lg-panel-main-action {
        width:100%;
        padding:15px 18px;
        border:0;
        border-radius:20px;
        background:linear-gradient(135deg, #ef2b45, #9a0d22);
        color:#fff;
        box-shadow:0 16px 34px rgba(201,21,43,.22);
        font:900 15px/1 var(--lg-font-ui);
        cursor:pointer;
    }
}

@media (max-width:380px) {
    .lg-app--live-game .lg-game-nav { grid-template-columns:1fr 1fr 70px 1fr 1fr; padding-inline:6px; }
    .lg-game-nav__label { font-size:11px; max-width:54px; }
    .lg-game-nav__center { width:70px; height:70px; margin-top:-36px; }
}


/* =====================================================================
   v2.0.0 — Navigation de partie finalisée : notifications, rôle,
   vocal premium et confidentialité nocturne
   ===================================================================== */
@media (max-width:1023px) {
    .lg-game-nav__label { max-width:78px; white-space:normal; line-height:1.05; }
    .lg-game-nav__item[data-nav-panel="notifications"] .lg-game-nav__icon,
    .lg-game-nav__item[data-nav-panel="role"] .lg-game-nav__icon { color:#8b5f61; }
    .lg-game-nav__item.is-active[data-nav-panel="notifications"] .lg-game-nav__icon,
    .lg-game-nav__item.is-active[data-nav-panel="role"] .lg-game-nav__icon { color:var(--lg-game-red); }
    .lg-game-nav__item.is-ready .lg-game-nav__icon::after {
        content:'•';
        position:absolute;
        top:-4px;
        right:-2px;
        color:#22c773;
        font-size:18px;
        line-height:1;
        text-shadow:0 0 8px rgba(34,199,115,.36);
    }

    .lg-panel-voice-first { margin-bottom:14px; }
    .lg-panel-voice-first .lg-voice-panel,
    .lg-app--live-game [data-x="voice-panel"] .lg-voice-panel {
        overflow:hidden;
        border:1px solid rgba(201,21,43,.18);
        border-radius:26px;
        background:
            radial-gradient(circle at 10% 0%, rgba(239,43,69,.16), transparent 42%),
            linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,244,238,.94));
        box-shadow:0 18px 42px rgba(134,45,51,.13), inset 0 1px 0 rgba(255,255,255,.86);
    }
    .lg-voice-panel__head {
        align-items:center;
        padding-bottom:12px;
        border-bottom:1px solid rgba(201,21,43,.10);
    }
    .lg-voice-panel__eyebrow {
        color:#c9152b !important;
        font-weight:950 !important;
        letter-spacing:.16em !important;
        text-transform:uppercase !important;
    }
    .lg-voice-panel h3 {
        color:#321719 !important;
        font-family:Georgia,'Times New Roman',serif !important;
        font-size:24px !important;
        letter-spacing:-.02em;
    }
    .lg-voice-panel__msg {
        margin:12px 0 !important;
        padding:13px 14px;
        border:1px solid rgba(201,21,43,.12);
        border-radius:18px;
        background:rgba(255,255,255,.72);
        color:#6e4f52 !important;
        font-weight:700 !important;
    }
    .lg-voice-answer-grid { gap:10px !important; }
    .lg-voice-answer-btn {
        border-radius:18px !important;
        background:linear-gradient(180deg,#fff,#fff7f2) !important;
        border:1px solid rgba(201,21,43,.16) !important;
        color:#482124 !important;
        box-shadow:0 10px 24px rgba(94,34,39,.08);
    }
    .lg-voice-answer-btn.is-ready {
        background:linear-gradient(135deg,#ef2b45,#990d22) !important;
        color:#fff !important;
        box-shadow:0 14px 30px rgba(201,21,43,.24);
    }
    .lg-voice-answer-btn.is-active { outline:3px solid rgba(34,199,115,.20); }
    .lg-voice-host-tools { border-radius:22px !important; background:rgba(255,255,255,.7) !important; }
    .lg-voice-note { color:#74575a !important; font-weight:650 !important; }

    .lg-notification-log { display:grid; gap:10px; }
    .lg-notification-log__item {
        display:grid;
        grid-template-columns:14px 1fr;
        gap:12px;
        padding:14px;
        border:1px solid rgba(201,21,43,.12);
        border-radius:20px;
        background:rgba(255,255,255,.82);
        box-shadow:0 8px 22px rgba(100,40,43,.06);
    }
    .lg-notification-log__dot {
        width:10px;
        height:10px;
        margin-top:5px;
        border-radius:50%;
        background:#c9152b;
        box-shadow:0 0 0 6px rgba(201,21,43,.08);
    }
    .lg-notification-log__item.is-success .lg-notification-log__dot { background:#22c773; box-shadow:0 0 0 6px rgba(34,199,115,.10); }
    .lg-notification-log__item.is-gold .lg-notification-log__dot { background:#c9963b; box-shadow:0 0 0 6px rgba(201,150,59,.12); }
    .lg-notification-log__item.is-night .lg-notification-log__dot { background:#7b5360; box-shadow:0 0 0 6px rgba(123,83,96,.12); }
    .lg-notification-log__item strong { display:block; color:#321719; font:900 14px/1.2 var(--lg-font-ui); }
    .lg-notification-log__item p { margin:4px 0 0; color:#73595c; font:600 12.5px/1.35 var(--lg-font-ui); }

    .lg-role-sheet {
        display:grid;
        grid-template-columns:112px 1fr;
        gap:15px;
        align-items:center;
        margin-bottom:14px;
        padding:15px;
        border:1px solid rgba(201,21,43,.14);
        border-radius:26px;
        background:linear-gradient(135deg,#fff,#fff4ee);
        box-shadow:0 16px 36px rgba(104,38,43,.10);
    }
    .lg-role-sheet__visual {
        position:relative;
        min-height:132px;
        overflow:hidden;
        border-radius:22px;
        background:linear-gradient(135deg,#c9152b,#7a0a1c);
        box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);
    }
    .lg-role-sheet__visual img {
        width:100%;
        height:100%;
        min-height:132px;
        object-fit:cover;
        opacity:.9;
    }
    .lg-role-sheet__visual span {
        position:absolute;
        right:8px;
        bottom:8px;
        display:grid;
        width:36px;
        height:36px;
        place-items:center;
        border-radius:14px;
        background:rgba(255,255,255,.86);
        box-shadow:0 8px 20px rgba(0,0,0,.14);
    }
    .lg-role-sheet__body small {
        display:block;
        color:#c9152b;
        font:950 11px/1 var(--lg-font-ui);
        letter-spacing:.12em;
        text-transform:uppercase;
    }
    .lg-role-sheet__body h3 {
        margin:7px 0 7px;
        color:#301416;
        font-family:Georgia,'Times New Roman',serif;
        font-size:30px;
        line-height:1;
    }
    .lg-role-sheet__body p { margin:0; color:#75595c; font:600 13px/1.4 var(--lg-font-ui); }

    .lg-role-info-grid { display:grid; gap:10px; margin-bottom:16px; }
    .lg-role-info-grid article,
    .lg-role-tip {
        padding:14px;
        border:1px solid rgba(201,21,43,.12);
        border-radius:20px;
        background:#fff;
        box-shadow:0 8px 20px rgba(100,40,43,.05);
    }
    .lg-role-info-grid strong { color:#321719; font:900 13px/1 var(--lg-font-ui); }
    .lg-role-info-grid p { margin:6px 0 0; color:#765b5e; font:600 12.5px/1.4 var(--lg-font-ui); }
    .lg-role-tips h3 { margin:16px 0 10px; color:#321719; font:950 16px/1 var(--lg-font-ui); }
    .lg-role-tip { display:grid; grid-template-columns:34px 1fr; gap:10px; align-items:start; margin-bottom:9px; }
    .lg-role-tip span {
        display:grid;
        width:34px;
        height:34px;
        place-items:center;
        border-radius:13px;
        background:#fff0f1;
        color:#c9152b;
        font-weight:950;
    }
    .lg-role-tip p { margin:0; color:#5e4246; font:700 13px/1.4 var(--lg-font-ui); }

    .lg-village-player--mic-open .lg-village-player__status-dot { background:#22c773; box-shadow:0 0 0 5px rgba(34,199,115,.15); }
    .lg-village-player--mic-closed .lg-village-player__status-dot { background:#d84b55; box-shadow:0 0 0 5px rgba(216,75,85,.11); }
    .lg-village-player:not(.lg-village-player--host-voice).lg-village-player--mic-open .lg-village-player__status-dot { background:#d84b55; box-shadow:none; }
    .lg-village-ring--night .lg-village-player__status-dot,
    .lg-village-ring--night .lg-village-player--mic-open .lg-village-player__status-dot {
        background:#d84b55 !important;
        box-shadow:0 0 0 5px rgba(216,75,85,.10) !important;
    }
}

/* v2.0.0 — WebRTC PeerJS voice layer */
.lg-webrtc-status {
    display: grid;
    gap: 4px;
    padding: 14px 16px;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,243,238,.86));
    border: 1px solid rgba(201,21,43,.16);
    box-shadow: 0 12px 32px rgba(129,18,30,.12);
    color: #351819;
}
.lg-webrtc-status strong {
    font-family: var(--lg-font-h, Georgia, serif);
    font-size: 18px;
    color: #851124;
}
.lg-webrtc-status span {
    font-weight: 900;
    color: #c9152b;
}
.lg-webrtc-status small {
    color: #7d5d5f;
    line-height: 1.35;
}
.lg-webrtc-remotes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.lg-webrtc-remote {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 46px;
    padding: 10px 12px;
    border-radius: 16px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(201,21,43,.14);
    color: #351819;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}
.lg-webrtc-remote__dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #33c979;
    box-shadow: 0 0 0 5px rgba(51,201,121,.14);
    flex: 0 0 auto;
}
.lg-webrtc-remote strong {
    font-size: 13px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* v2.0.0 — mobile WebRTC audio unlock hardening */
.lg-webrtc-audio-sink {
    position: fixed !important;
    left: -9999px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
    overflow: hidden !important;
}
.lg-webrtc-unlock {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 10px;
    padding: 12px 13px;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,239,232,.92));
    border: 1px solid rgba(201,21,43,.22);
    box-shadow: 0 14px 34px rgba(129,18,30,.14);
    color: #351819;
}
.lg-webrtc-unlock__text { display: grid; gap: 2px; min-width: 0; }
.lg-webrtc-unlock__text strong {
    font-family: var(--lg-font-h, Georgia, serif);
    color: #8f0d20;
    font-size: 15px;
    line-height: 1.1;
}
.lg-webrtc-unlock__text span {
    color: #74515a;
    font: 800 12px/1.3 var(--lg-font-ui, system-ui, sans-serif);
}
.lg-webrtc-unlock__btn,
.lg-webrtc-remote__unlock {
    border: 0;
    cursor: pointer;
    border-radius: 999px;
    background: linear-gradient(135deg,#ef2b45,#a9153f);
    color: #fff;
    font-weight: 950;
    box-shadow: 0 10px 22px rgba(201,21,43,.22);
    white-space: nowrap;
}
.lg-webrtc-unlock__btn { padding: 10px 13px; }
.lg-webrtc-remote__meta { display: grid; gap: 2px; min-width: 0; flex: 1; }
.lg-webrtc-remote__meta small {
    color: #7d5d5f;
    font: 800 11px/1.25 var(--lg-font-ui, system-ui, sans-serif);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.lg-webrtc-remote__unlock {
    display: none;
    padding: 7px 9px;
    font-size: 11px;
}
.lg-webrtc-remote.is-sound-blocked {
    border-color: rgba(201,21,43,.28);
    background: rgba(255,240,241,.92);
}
.lg-webrtc-remote.is-sound-blocked .lg-webrtc-remote__dot {
    background: #d84b55;
    box-shadow: 0 0 0 5px rgba(216,75,85,.13);
}
.lg-webrtc-remote.is-sound-blocked .lg-webrtc-remote__unlock { display: inline-flex; }
.lg-webrtc-remote.is-sound-live .lg-webrtc-remote__dot {
    background: #22c773;
    box-shadow: 0 0 0 5px rgba(34,199,115,.15);
}
@media (max-width: 560px) {
    .lg-webrtc-unlock { align-items: stretch; flex-direction: column; }
    .lg-webrtc-unlock__btn { width: 100%; }
    .lg-webrtc-remotes { grid-template-columns: 1fr; }
}

/* v2.0.0 — Premium Appel panel: narrator floor control, mic states, 2-minute timer */
.lg-call-room-hero{
  position:relative; display:grid; grid-template-columns:1fr auto; gap:16px; align-items:center;
  padding:22px; border-radius:28px; overflow:hidden;
  background:radial-gradient(circle at 14% 0%, rgba(201,21,43,.15), transparent 42%), linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,245,240,.78));
  border:1px solid rgba(201,21,43,.16); box-shadow:0 18px 46px rgba(112,20,25,.12);
}
.lg-call-room-hero::before{content:"";position:absolute;inset:-80px auto auto -80px;width:180px;height:180px;border-radius:50%;background:rgba(201,21,43,.12);filter:blur(18px);pointer-events:none}
.lg-call-room-hero__kicker{display:inline-flex;align-items:center;gap:8px;margin-bottom:8px;color:#c4162c;font-weight:900;text-transform:uppercase;letter-spacing:.11em;font-size:11px}
.lg-call-room-hero__kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:#35c975;box-shadow:0 0 0 6px rgba(53,201,117,.15)}
.lg-call-room-hero h3{margin:0 0 6px;font-family:Georgia,serif;font-size:clamp(28px,6vw,42px);line-height:1;color:#351719;letter-spacing:-.035em}
.lg-call-room-hero p{margin:0;color:#765a5b;line-height:1.5;font-size:14px}
.lg-call-room-hero__state{display:grid;gap:6px;justify-items:end;padding:14px 16px;border-radius:22px;background:rgba(255,255,255,.78);border:1px solid rgba(201,21,43,.14);min-width:140px;text-align:right}
.lg-call-room-hero__state strong{color:#3a1619;font-size:14px}.lg-call-room-hero__state span{color:#c4162c;font-weight:900;font-size:13px}
.lg-call-room-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 16px}.lg-call-main-btn{appearance:none;border:1px solid rgba(201,21,43,.18);background:rgba(255,255,255,.86);color:#6b3c40;border-radius:999px;padding:12px 15px;font-weight:900;box-shadow:0 10px 22px rgba(112,20,25,.08)}
.lg-call-main-btn.is-primary{background:linear-gradient(135deg,#f02d46,#b30f27);color:#fff;border-color:rgba(179,15,39,.5);box-shadow:0 16px 34px rgba(201,21,43,.25)}
.lg-call-main-btn.is-success{background:linear-gradient(135deg,#40d97f,#119a55);color:#fff;border-color:rgba(17,154,85,.5)}
.lg-call-request-state{display:inline-flex;align-items:center;padding:12px 15px;border-radius:999px;background:#fff;color:#c4162c;border:1px solid rgba(201,21,43,.16);font-weight:900}
.lg-call-privacy{margin:12px 0 18px;padding:15px 17px;border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.84),rgba(255,247,242,.68));border:1px solid rgba(201,21,43,.13)}
.lg-call-privacy strong{display:block;color:#3a1619;margin-bottom:5px}.lg-call-privacy p{margin:0;color:#765a5b;line-height:1.45;font-size:13px}
.lg-call-roster h3{margin:0 0 12px;color:#351719;font-family:Georgia,serif;font-size:24px}.lg-call-roster__grid{display:grid;gap:12px}
.lg-call-player{display:grid;grid-template-columns:58px 1fr;gap:13px;align-items:center;padding:14px;border-radius:24px;background:rgba(255,255,255,.9);border:1px solid rgba(201,21,43,.13);box-shadow:0 12px 28px rgba(112,20,25,.08);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.lg-call-player.is-speaking{border-color:rgba(201,21,43,.48);box-shadow:0 18px 38px rgba(201,21,43,.18)}.lg-call-player.has-hand{background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(255,245,231,.86))}
.lg-call-player__avatar{position:relative;width:58px;height:58px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,#fff8f4,#f2ddd5);border:1px solid rgba(201,21,43,.18);color:#783236;font-weight:1000;box-shadow:inset 0 0 0 1px rgba(255,255,255,.85)}
.lg-call-player.is-open .lg-call-player__avatar,.lg-call-player.is-speaking .lg-call-player__avatar{background:linear-gradient(135deg,#f42c46,#9d0c20);color:#fff;box-shadow:0 0 0 6px rgba(201,21,43,.10),0 14px 30px rgba(201,21,43,.22)}
.lg-call-player__presence{position:absolute;right:-3px;bottom:-3px;width:16px;height:16px;border-radius:50%;background:#cfc3bf;border:3px solid #fff}.lg-call-player.is-joined .lg-call-player__presence{background:#36c976}.lg-call-player.is-secret .lg-call-player__presence{background:#c4162c}
.lg-call-player__top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.lg-call-player__top strong{color:#351719;font-size:15px}.lg-call-player p{margin:0;color:#765a5b;font-size:13px;line-height:1.35}.lg-call-player__mic{white-space:nowrap;font-size:11px;font-weight:900;padding:6px 8px;border-radius:999px;background:#fff1f1;color:#9d0c20}.lg-call-player__mic.is-open{background:#eafff2;color:#13854a}.lg-call-player__mic.is-secret{background:#fff1f1;color:#c4162c}
.lg-call-player__timer{display:inline-flex;margin-top:8px;color:#c4162c;font-weight:1000;font-size:12px}.lg-call-player__hand{display:inline-flex;margin-top:8px;padding:6px 9px;border-radius:999px;background:#fff7df;color:#9f6500;font-weight:900;font-size:12px}.lg-call-player__actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.lg-call-action{border:1px solid rgba(201,21,43,.16);background:#fff;color:#6b3c40;border-radius:999px;padding:8px 10px;font-size:12px;font-weight:900}.lg-call-action.is-primary{background:#c4162c;color:#fff}.lg-call-action.is-danger{background:#fff0f1;color:#c4162c}.lg-call-action.is-success{background:#26b867;color:#fff}.lg-call-action.is-wolves{background:#2e1720;color:#fff}
@media(max-width:560px){.lg-call-room-hero{grid-template-columns:1fr;padding:18px}.lg-call-room-hero__state{justify-items:start;text-align:left;min-width:0}.lg-call-main-btn{flex:1 1 auto}.lg-call-player{grid-template-columns:52px 1fr;border-radius:22px}.lg-call-player__avatar{width:52px;height:52px;border-radius:19px}.lg-call-player__top{align-items:flex-start;flex-direction:column;gap:5px}.lg-call-player__mic{align-self:flex-start}}

/* =====================================================================
   v2.0.0 — Nettoyage UX appel : bouton central Appel, accueil léger,
   bouton vocal neutre, bulle réduite et roster MJ premium
   ===================================================================== */
@media (max-width:1023px){
  .lg-app--live-game{padding-bottom:calc(106px + env(safe-area-inset-bottom)) !important;}
  .lg-app--live-game .lg-game-nav{
    left:max(16px, env(safe-area-inset-left)) !important;
    right:max(16px, env(safe-area-inset-right)) !important;
    bottom:calc(10px + var(--lg-vv-bottom-gap,0px)) !important;
    grid-template-columns:1fr 1fr 62px 1fr 1fr !important;
    min-height:64px !important;
    padding:7px 8px 8px !important;
    border-radius:28px !important;
    box-shadow:0 12px 34px rgba(88,38,42,.18), inset 0 1px 0 rgba(255,255,255,.92) !important;
  }
  .lg-game-nav__item{gap:3px !important;padding:5px 1px 0 !important;border-radius:15px !important;}
  .lg-game-nav__icon{width:24px !important;height:24px !important;}
  .lg-game-nav__icon svg{width:24px !important;height:24px !important;}
  .lg-game-nav__label{font-size:10.5px !important;line-height:1.03 !important;max-width:62px !important;}
  .lg-game-nav__center{
    width:64px !important;height:64px !important;margin-top:-34px !important;border-width:7px !important;
    box-shadow:0 12px 28px rgba(201,21,43,.28), 0 0 0 8px rgba(201,21,43,.07) !important;
  }
  .lg-game-nav__centerIcon svg{width:28px !important;height:28px !important;}
  .lg-game-nav__center.is-call-live,
  .lg-game-nav__item.is-call-live{
    color:#13975b !important;
    animation:lgCallPulse 1.15s ease-in-out infinite;
  }
  .lg-game-nav__center.is-call-live{
    background:radial-gradient(circle at 36% 18%,#59ef99 0%,#16b86a 46%,#087341 100%) !important;
    box-shadow:0 14px 32px rgba(20,184,106,.34),0 0 0 10px rgba(32,201,121,.13) !important;
  }
  .lg-game-nav__center.is-call-joined{box-shadow:0 12px 28px rgba(20,184,106,.24),0 0 0 8px rgba(32,201,121,.10) !important;}
  @keyframes lgCallPulse{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-1px) scale(1.045)}}
  .lg-game-nav__badge--call{
    top:-16px !important;right:-14px !important;background:#18bd72 !important;color:#fff !important;
    min-width:42px !important;height:22px !important;font-size:9px !important;text-transform:uppercase;letter-spacing:.05em;
    box-shadow:0 9px 20px rgba(24,189,114,.28) !important;
  }
  .lg-game-nav__miniBadge{
    position:absolute;top:2px;right:9px;display:grid;min-width:18px;height:18px;padding:0 5px;place-items:center;
    border-radius:999px;background:#c9152b;color:#fff;border:2px solid #fffaf5;font:900 9px/1 var(--lg-font-ui);
    box-shadow:0 6px 12px rgba(201,21,43,.25);
  }
  .lg-game-nav__miniBadge[hidden]{display:none !important;}

  .lg-app--live-game [data-x="voice-panel"]{margin-bottom:8px !important;}
  .lg-app--live-game [data-x="voice-panel"] .lg-voice-panel,
  .lg-panel-voice-first .lg-voice-panel{
    padding:10px 12px !important;border-radius:20px !important;gap:8px !important;
    box-shadow:0 10px 24px rgba(134,45,51,.08), inset 0 1px 0 rgba(255,255,255,.9) !important;
  }
  .lg-app--live-game [data-x="voice-panel"] .lg-voice-panel__head,
  .lg-panel-voice-first .lg-voice-panel__head{padding-bottom:7px !important;}
  .lg-app--live-game [data-x="voice-panel"] .lg-voice-panel h3,
  .lg-panel-voice-first .lg-voice-panel h3{font-size:18px !important;}
  .lg-app--live-game [data-x="voice-panel"] .lg-voice-panel__eyebrow,
  .lg-panel-voice-first .lg-voice-panel__eyebrow{font-size:10px !important;margin-bottom:1px !important;}
  .lg-app--live-game [data-x="voice-panel"] .lg-voice-panel__msg,
  .lg-panel-voice-first .lg-voice-panel__msg{
    margin:7px 0 !important;padding:8px 10px !important;border-radius:14px !important;font-size:12.5px !important;line-height:1.28 !important;
  }
  .lg-voice-answer-grid{gap:7px !important;}
  .lg-voice-answer-btn{min-height:42px !important;padding:9px 10px !important;border-radius:14px !important;font-size:12.5px !important;}
  .lg-voice-answer-btn:not(.is-call-live):not(.is-active){
    background:linear-gradient(180deg,#fff,#fff9f4) !important;color:#53363a !important;box-shadow:0 7px 16px rgba(94,34,39,.06) !important;
  }
  .lg-voice-answer-btn.is-call-live,
  .lg-call-main-btn.is-call-live{background:linear-gradient(135deg,#34d985,#0d9f5d) !important;color:#fff !important;border-color:rgba(13,159,93,.45) !important;box-shadow:0 14px 30px rgba(24,189,114,.24) !important;}

  .lg-jitsi-dock.is-compact{
    left:auto !important;right:18px !important;bottom:calc(86px + var(--lg-vv-bottom-gap,0px)) !important;
    width:64px !important;height:64px !important;border-radius:50% !important;overflow:visible !important;border:0 !important;
    background:transparent !important;box-shadow:none !important;z-index:1002 !important;
  }
  .lg-jitsi-dock.is-compact .lg-jitsi-dock__head{
    width:64px !important;height:64px !important;padding:0 !important;border-radius:50% !important;
    display:grid !important;place-items:center !important;background:linear-gradient(135deg,#f02d46,#9c0c22) !important;
    box-shadow:0 14px 32px rgba(201,21,43,.30),0 0 0 9px rgba(201,21,43,.10) !important;
  }
  .lg-jitsi-dock.is-compact .lg-jitsi-dock__meta,
  .lg-jitsi-dock.is-compact .lg-jitsi-mini,
  .lg-jitsi-dock.is-compact .lg-jitsi-close,
  .lg-jitsi-dock.is-compact .lg-jitsi-dock__body{display:none !important;}
  .lg-jitsi-dock.is-compact .lg-jitsi-dock__actions{position:absolute !important;inset:0 !important;display:block !important;}
  .lg-jitsi-dock.is-compact .lg-jitsi-toggle{
    position:absolute !important;inset:0 !important;width:64px !important;height:64px !important;border-radius:50% !important;
    border:0 !important;background:transparent !important;color:#fff !important;font-size:0 !important;padding:0 !important;
  }
  .lg-jitsi-dock.is-compact .lg-jitsi-toggle::before{content:'🎧';font-size:27px;line-height:1;}

  .lg-call-roster__grid{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px !important;}
  .lg-call-player{grid-template-columns:1fr !important;text-align:center !important;gap:8px !important;padding:12px 9px !important;border-radius:22px !important;cursor:pointer;}
  .lg-call-player__avatar{margin-inline:auto;width:54px !important;height:54px !important;border-radius:20px !important;}
  .lg-call-player__top{display:grid !important;place-items:center !important;gap:6px !important;margin-bottom:0 !important;}
  .lg-call-player__top strong{font-size:13.5px !important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .lg-call-player p{font-size:11.5px !important;line-height:1.25 !important;min-height:28px;}
  .lg-call-player__mic{font-size:10px !important;padding:5px 7px !important;}
  .lg-call-player__actions{justify-content:center !important;gap:6px !important;}
  .lg-call-action{font-size:10.5px !important;padding:7px 8px !important;}
  .lg-call-room-hero{padding:16px !important;border-radius:24px !important;gap:12px !important;}
  .lg-call-room-hero h3{font-size:28px !important;}
  .lg-call-room-actions{gap:8px !important;margin:10px 0 12px !important;}
  .lg-call-main-btn{padding:10px 12px !important;font-size:12.5px !important;}
  .lg-call-privacy{padding:12px 13px !important;border-radius:18px !important;margin:9px 0 13px !important;}
}

/* v2.0.0 — liens d'invitation directs + signal appel final */
.lg-invite-room-note{
  margin:12px 0 2px;padding:11px 13px;border-radius:18px;
  background:linear-gradient(135deg,rgba(33,196,117,.12),rgba(255,255,255,.86));
  border:1px solid rgba(33,196,117,.26);color:#176845;font-weight:800;line-height:1.35;
  box-shadow:0 10px 24px rgba(33,196,117,.08);
}
.lg-game-nav__center.is-call-live::after{
  content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid rgba(31,198,118,.45);
  animation:lgCallRing 1.2s ease-out infinite;pointer-events:none;
}
@keyframes lgCallRing{0%{transform:scale(.92);opacity:.9}100%{transform:scale(1.28);opacity:0}}
.lg-game-nav__badge--call:not([hidden]){
  display:grid !important;place-items:center !important;
}
@media(max-width:560px){
  .lg-invite-room-note{font-size:12.5px;padding:10px 12px;border-radius:16px;}
}

/* v2.0.0 — Invitations directes, spectateurs, équilibre rôles, accueil compact */
.lg-app--invite-only .lg-react-hero,
.lg-app--invite-only .lg-react-actions,
.lg-app--invite-only .lg-react-resume,
.lg-app--invite-only .lg-react-call,
.lg-app--invite-only .lg-react-features,
.lg-app--invite-only .lg-react-nav,
.lg-app--invite-only .lg-react-top { display:none !important; }
.lg-app--invite-only .lg-react-main { min-height:100svh; display:grid; align-items:center; padding:18px 14px 44px; }
.lg-app--invite-only .lg-react-formcard[data-home-panel="join"] { margin:0 auto; width:min(94vw, 520px); }
.lg-invite-room-note { margin:10px 0 0; padding:10px 12px; border-radius:16px; color:#7b1828; background:rgba(232,32,59,.08); border:1px solid rgba(232,32,59,.15); font-weight:700; }
.lg-react-formcard { gap:12px !important; padding:24px 20px !important; }
.lg-react-formcard h2 { margin:2px 0 4px !important; }
.lg-react-formcard p { margin:0 0 8px !important; }
.lg-react-formcard label { margin-top:10px !important; }
.lg-react-formcard .lg-home-input { min-height:54px !important; padding:12px 16px !important; }
.lg-react-mini-btn, .lg-react-action__copy, .lg-react-action__copy strong, .lg-react-action__copy small, .lg-host-start, .lg-host-outline-btn, .lg-btn { font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important; }
.lg-react-call--marquee { overflow:hidden; }
.lg-react-avatars-marquee { overflow:hidden; mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.lg-react-avatars-track { display:flex; gap:18px; width:max-content; animation:lgPlayersMarquee 72s linear infinite; will-change:transform; padding:8px 0 4px; }
.lg-react-avatars-track .lg-react-avatar { flex:0 0 auto; }
@keyframes lgPlayersMarquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .lg-react-avatars-track { animation:none; flex-wrap:wrap; width:auto; } }
.lg-role-balance { margin:14px 0 16px; padding:16px; border-radius:22px; background:rgba(255,255,255,.82); border:1px solid rgba(201,21,43,.15); box-shadow:0 12px 34px rgba(90,20,25,.08); }
.lg-role-balance__top { display:flex; justify-content:space-between; gap:14px; align-items:center; }
.lg-role-balance__top strong { display:block; font-size:18px; color:#351419; }
.lg-role-balance__top small { color:#7d5b60; font-weight:700; }
.lg-role-balance__score { min-width:70px; text-align:center; padding:9px 12px; border-radius:999px; font-weight:1000; color:#fff; }
.lg-role-balance--red .lg-role-balance__score { background:#c61d35; }
.lg-role-balance--orange .lg-role-balance__score { background:#e88922; }
.lg-role-balance--green .lg-role-balance__score { background:#20a964; }
.lg-role-balance__bar { height:10px; margin:14px 0 12px; border-radius:999px; background:rgba(86,43,47,.10); overflow:hidden; }
.lg-role-balance__bar i { display:block; height:100%; border-radius:inherit; transition:width .22s ease; }
.lg-role-balance--red .lg-role-balance__bar i { background:linear-gradient(90deg,#ef4b63,#a40d24); }
.lg-role-balance--orange .lg-role-balance__bar i { background:linear-gradient(90deg,#f4a331,#e26d1f); }
.lg-role-balance--green .lg-role-balance__bar i { background:linear-gradient(90deg,#41d17e,#0f9252); }
.lg-role-balance__notes { margin:0; padding-left:18px; color:#725359; line-height:1.45; font-weight:650; }
.lg-join-request-card { display:grid; gap:12px; padding:16px; border-radius:22px; border:1px solid rgba(201,21,43,.14); background:rgba(255,255,255,.86); box-shadow:0 10px 24px rgba(80,20,30,.07); margin:10px 0; }
.lg-join-request-card strong { color:#351419; display:block; }
.lg-join-request-card small { color:#7d5b60; font-weight:700; }
.lg-join-request-card__actions { display:flex; flex-wrap:wrap; gap:8px; }
.lg-night-role-list .lg-speech-row strong { font-size:15px; }
.lg-live-add-request { width:46px; height:46px; border-radius:18px; border:0; color:#fff; background:linear-gradient(135deg,#ef2a45,#9b0d22); font-size:31px; line-height:1; font-weight:900; box-shadow:0 14px 32px rgba(201,21,43,.28); }
.lg-live-add-request:active { transform:scale(.96); }
.lg-host-player--guest .lg-host-player__label::first-letter { text-transform:uppercase; }
.lg-host-player .lg-host-player__label { font-weight:800; }
.lg-host-player:has(.lg-host-player__label) { overflow:hidden; }

/* =====================================================================
   v2.0.0 — Invitation popup, clean narrator header, SEO/perf/security polish
   ===================================================================== */
.lg-village-phase-badge{display:none!important;}
.lg-live-add-request{
    min-width:54px; min-height:54px; border-radius:22px!important;
    background:linear-gradient(135deg,#ef2946,#b50f2c)!important;
    color:#fff!important; border:0!important;
    box-shadow:0 16px 34px rgba(190,18,54,.28),0 0 0 7px rgba(190,18,54,.08)!important;
    font-size:30px!important; font-weight:900!important;
}
.lg-live-add-request:active{transform:scale(.96);}
.lg-game-panel.is-mode-invite .lg-game-panel__content{padding-top:6px;}
.lg-invite-panel-card{
    display:flex; gap:16px; align-items:center;
    padding:18px; border-radius:26px;
    background:linear-gradient(135deg,#fff 0%,#fff7f4 100%);
    border:1px solid rgba(190,18,54,.14);
    box-shadow:0 18px 42px rgba(125,42,48,.10);
    margin-bottom:14px;
}
.lg-invite-panel-card__icon{
    width:58px; height:58px; border-radius:22px; display:grid; place-items:center;
    background:linear-gradient(135deg,#ef2946,#a60b24); color:#fff;
    font-size:32px; font-weight:900; flex:0 0 auto;
    box-shadow:0 14px 30px rgba(190,18,54,.22);
}
.lg-invite-panel-card__body small{
    display:block; color:#c21738; font-weight:900; letter-spacing:.13em;
    text-transform:uppercase; font-size:11px; margin-bottom:4px;
}
.lg-invite-panel-card__body h3{
    margin:0 0 4px; font-family:Georgia,'Times New Roman',serif;
    font-size:30px; line-height:1; color:#351719;
}
.lg-invite-panel-card__body p{margin:0;color:#7d5b5c;line-height:1.42;}
.lg-invite-share-box{
    padding:16px; border-radius:24px; background:rgba(255,255,255,.92);
    border:1px solid rgba(190,18,54,.15); box-shadow:0 12px 30px rgba(125,42,48,.08);
}
.lg-invite-code-line,.lg-invite-link-line{
    display:grid; gap:7px; padding:12px 0; border-bottom:1px solid rgba(190,18,54,.10);
}
.lg-invite-code-line span,.lg-invite-link-line span{
    font-size:12px; color:#8b6768; font-weight:900; letter-spacing:.12em; text-transform:uppercase;
}
.lg-invite-code-line strong{
    font-size:38px; letter-spacing:.18em; color:#3b171a; font-family:Georgia,'Times New Roman',serif;
}
.lg-invite-link-line code{
    display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    color:#7e1b2c; background:#fff2f4; border-radius:14px; padding:11px 12px;
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; font-size:13px;
}
.lg-invite-actions{display:grid; grid-template-columns:1fr; gap:10px; margin-top:14px;}
.lg-invite-actions .lg-btn{width:100%; margin:0; border-radius:18px;}
.lg-invite-security-note{
    margin:12px 2px 0; color:#7d5b5c; font-size:13px; line-height:1.45;
}
@media (min-width:540px){.lg-invite-actions{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){
    .lg-invite-panel-card{padding:14px;border-radius:22px;}
    .lg-invite-panel-card__body h3{font-size:25px;}
    .lg-invite-code-line strong{font-size:32px;}
}


/* =====================================================================
   v2.0.1 — Spectator entry, centered invite modal, narrator badge polish
   ===================================================================== */
.lg-live-header__tools{padding-left:0!important;}
.lg-live-header__tools::before{display:none!important;content:none!important;}
.lg-live-header > div:first-child::before{display:grid;}
.lg-game-nav__item.has-requests .lg-game-nav__icon{color:#c9152b!important;animation:lgRequestPulse 1.5s ease-in-out infinite;}
.lg-game-nav__miniBadge--requests{top:-5px!important;right:18px!important;background:#18bd72!important;color:#fff!important;box-shadow:0 8px 18px rgba(24,189,114,.28)!important;}
@keyframes lgRequestPulse{0%,100%{filter:drop-shadow(0 0 0 rgba(201,21,43,0));transform:translateY(0)}50%{filter:drop-shadow(0 0 9px rgba(201,21,43,.34));transform:translateY(-1px)}}
.lg-game-panel.is-mode-invite{
    left:max(14px,env(safe-area-inset-left));
    right:max(14px,env(safe-area-inset-right));
    bottom:calc(14px + env(safe-area-inset-bottom));
    max-width:560px;
    margin:0 auto;
    max-height:min(82vh,720px);
    border:1px solid rgba(201,21,43,.15);
    border-radius:34px;
    padding:10px 14px 18px;
    box-shadow:0 26px 80px rgba(87,28,34,.28),0 0 0 999px rgba(44,18,22,.16);
}
.lg-game-panel.is-mode-invite .lg-game-panel__head{padding:0 2px 12px;align-items:center;}
.lg-game-panel.is-mode-invite .lg-game-panel__head h2{font-size:34px;}
.lg-game-panel.is-mode-invite .lg-game-panel__content{padding:12px 2px 2px;}
.lg-game-panel.is-mode-invite .lg-game-panel__close{width:48px;height:48px;}
.lg-invite-premium{padding:16px;border-radius:26px;background:linear-gradient(135deg,#fff,#fff6f2);border:1px solid rgba(201,21,43,.12);box-shadow:0 16px 42px rgba(91,31,37,.09);margin-bottom:12px;}
.lg-invite-premium__top{display:flex;align-items:center;gap:14px;}
.lg-invite-premium__mark{width:58px;height:58px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(135deg,#ef2946,#a70b24);color:#fff;font:1000 32px/1 var(--lg-font-ui);box-shadow:0 15px 30px rgba(201,21,43,.24);flex:0 0 auto;}
.lg-invite-premium small,.lg-invite-copy-card span{display:block;color:#c9152b;font:900 11px/1.05 var(--lg-font-ui);letter-spacing:.14em;text-transform:uppercase;margin-bottom:5px;}
.lg-invite-premium h3{margin:0 0 5px;color:#321417;font:800 33px/.95 Georgia,'Times New Roman',serif;letter-spacing:-.035em;}
.lg-invite-premium p{margin:0;color:#7f6062;font:650 13px/1.4 var(--lg-font-ui);}
.lg-invite-copy-card{display:grid;gap:12px;padding:16px;border-radius:28px;background:#fff;border:1px solid rgba(201,21,43,.13);box-shadow:0 14px 36px rgba(91,31,37,.08);}
.lg-invite-copy-card__row{min-width:0;border-radius:20px;background:linear-gradient(180deg,#fffdfb,#fff8f4);border:1px solid rgba(201,21,43,.10);padding:14px 16px;}
.lg-invite-copy-card__row--code strong{display:block;color:#351619;font:900 42px/1 Georgia,'Times New Roman',serif;letter-spacing:.16em;}
.lg-invite-copy-card__row--link code{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;color:#7a1d2d;background:transparent;font:750 14px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
.lg-invite-copy-card__actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:2px;}
.lg-invite-copy-card__actions .lg-btn{width:100%;min-height:48px;border-radius:18px;margin:0;font:900 14px/1 var(--lg-font-ui);}
.lg-invite-security-note{margin:10px 4px 0!important;text-align:center;color:#806064!important;font:650 12.5px/1.42 var(--lg-font-ui)!important;}
@media (min-width:640px){.lg-game-panel.is-mode-invite{left:50%;right:auto;width:min(560px,calc(100vw - 34px));transform:translate(-50%,calc(100% + 28px));}.lg-game-panel.is-mode-invite.is-open{transform:translate(-50%,0);}}

/* v2.0.2 — WebRTC call control stability */
.lg-voice-host-tools__quick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 12px}
.lg-voice-btn--success,.lg-voice-mini-action.is-success,.lg-call-main-btn.is-success,.lg-call-action.is-success{background:linear-gradient(135deg,#25d976,#11924f)!important;color:#fff!important;border-color:rgba(17,146,79,.42)!important;box-shadow:0 12px 28px rgba(37,217,118,.22)}
.lg-voice-mini-action.is-danger,.lg-call-main-btn.is-danger{background:#fff0f1!important;color:#b40f27!important;border-color:rgba(180,15,39,.2)!important}
.lg-voice-mini-state{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:999px;background:#fff6f7;border:1px solid rgba(201,21,43,.14);color:#7a5559;font-weight:800;text-align:center}
.lg-call-player.is-speaking{border-color:rgba(37,217,118,.55)!important;box-shadow:0 0 0 4px rgba(37,217,118,.12),0 18px 34px rgba(120,20,34,.12)}
.lg-call-player.is-speaking .lg-call-player__avatar{background:linear-gradient(135deg,#24d978,#0f9450)!important;color:#fff!important}
@media(max-width:560px){.lg-voice-host-tools__quick{grid-template-columns:1fr}.lg-voice-mini-state{width:100%}}

/* v2.0.3 — compact premium call toggles */
.lg-call-roster__grid{gap:9px!important}
.lg-call-player{min-height:0!important;padding:10px 8px!important;border-radius:20px!important;box-shadow:0 8px 22px rgba(112,20,25,.07)!important}
.lg-call-player__avatar{width:46px!important;height:46px!important;border-radius:17px!important;font-size:14px!important}
.lg-call-player__top{gap:4px!important}
.lg-call-player__top strong{font-size:12.5px!important;line-height:1.15!important}
.lg-call-player p{font-size:10.5px!important;line-height:1.22!important;min-height:auto!important;margin-top:2px!important}
.lg-call-player__mic{display:none!important}
.lg-call-player__timer{margin-top:5px!important;font-size:11px!important;justify-content:center!important}
.lg-call-player__actions--compact{display:flex!important;justify-content:center!important;align-items:center!important;gap:5px!important;margin-top:7px!important}
.lg-call-toggle{border:0!important;border-radius:999px!important;min-width:72px!important;padding:8px 12px!important;font-size:11.5px!important;font-weight:1000!important;letter-spacing:.01em!important;box-shadow:0 10px 20px rgba(120,20,34,.10)!important;cursor:pointer!important}
.lg-call-toggle.is-closed{background:linear-gradient(135deg,#fff2f4,#f8dce1)!important;color:#9d0c20!important;border:1px solid rgba(201,21,43,.18)!important}
.lg-call-toggle.is-open{background:linear-gradient(135deg,#26d978,#10964f)!important;color:#fff!important;border:1px solid rgba(16,150,79,.28)!important;box-shadow:0 12px 24px rgba(38,217,120,.22)!important}
.lg-call-action--mini{padding:7px 8px!important;font-size:10px!important;min-width:auto!important;border-radius:999px!important}
.lg-call-player.is-speaking .lg-call-toggle.is-open{animation:lgCallPulse 1.35s ease-in-out infinite}
@keyframes lgCallPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(38,217,120,.28)}50%{transform:scale(1.035);box-shadow:0 0 0 8px rgba(38,217,120,0)}}
@media(max-width:560px){
  .lg-call-roster__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .lg-call-player{padding:9px 7px!important;border-radius:18px!important;gap:6px!important}
  .lg-call-player__avatar{width:44px!important;height:44px!important;border-radius:16px!important}
  .lg-call-toggle{min-width:68px!important;padding:7px 10px!important;font-size:11px!important}
}

/* v2.0.4 — creation/join feedback */
.lg-react-mini-btn.is-loading,
.lg-react-mini-btn[aria-busy="true"],
.lg-react-mini-btn:disabled {
    opacity: .72;
    cursor: wait;
    transform: none !important;
    pointer-events: none;
}

/* v2.0.6 — React narrator command center and player microphone sheet. */
.lg-narrator-react-root{
    margin:14px 0 17px;
}
.lg-narrator-command-center{
    display:grid;
    gap:11px;
}
.lg-narrator-call-card,
.lg-mayor-command-card{
    position:relative;
    overflow:hidden;
    padding:15px;
    border:1px solid #e4dedb;
    border-radius:18px;
    background:rgba(255,255,255,.96);
    box-shadow:0 9px 24px rgba(55,39,48,.07);
}
.lg-narrator-call-card::before,
.lg-mayor-command-card::before{
    position:absolute;
    inset:0 auto 0 0;
    width:4px;
    background:#d8d0cc;
    content:"";
}
.lg-narrator-call-card.is-live::before{background:#14a85f;}
.lg-mayor-command-card::before{background:#d49a35;}
.lg-narrator-command-card__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}
.lg-narrator-command-card__kicker{
    display:block;
    margin-bottom:4px;
    color:#857b7e;
    font-size:9px;
    font-weight:800;
    letter-spacing:.19em;
    text-transform:uppercase;
}
.lg-narrator-command-card__head h2{
    margin:0;
    color:#261f22;
    font-size:18px;
    font-weight:760;
    letter-spacing:-.025em;
    line-height:1.12;
}
.lg-narrator-command-card__status{
    margin:11px 0 13px;
    color:#746b6e;
    font-size:12px;
    line-height:1.4;
}
.lg-narrator-call-status{
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    gap:6px;
    min-height:29px;
    padding:0 10px;
    border:1px solid #e3dedb;
    border-radius:999px;
    background:#f7f4f2;
    color:#837a7d;
    font-size:9px;
    font-weight:850;
    letter-spacing:.07em;
}
.lg-narrator-call-status.is-live{
    border-color:#a9e3c3;
    background:#e4f8ec;
    color:#187449;
}
.lg-narrator-status-dot{
    display:inline-block;
    width:7px;
    height:7px;
    border-radius:50%;
    background:#aaa2a4;
}
.lg-narrator-status-dot.is-live{
    background:#16b568;
    box-shadow:0 0 0 4px rgba(22,181,104,.13);
}
.lg-narrator-status-dot.is-offline{background:#c4515e;}
.lg-narrator-call-actions{
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
    gap:8px;
}
.lg-narrator-call-button,
.lg-mayor-speech-button{
    min-height:50px;
    padding:10px 12px;
    border-radius:13px;
    cursor:pointer;
    font-size:12px;
    font-weight:760;
    line-height:1.2;
    transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease;
    touch-action:manipulation;
}
.lg-narrator-call-button:active:not(:disabled),
.lg-mayor-speech-button:active:not(:disabled){transform:scale(.985);}
.lg-narrator-call-button.is-start{
    border:1px solid #12a25a;
    background:linear-gradient(180deg,#20c978,#10a45c);
    color:#fff;
    box-shadow:0 8px 18px rgba(16,164,92,.19);
}
.lg-narrator-call-button.is-stop{
    border:1px solid #bf2949;
    background:linear-gradient(180deg,#d64261,#b92143);
    color:#fff;
    box-shadow:0 8px 18px rgba(185,33,67,.16);
}
.lg-narrator-call-button:disabled,
.lg-mayor-speech-button:disabled{
    cursor:not-allowed;
    opacity:.43;
    box-shadow:none;
}
.lg-mayor-candidate-count{
    display:grid;
    min-width:42px;
    height:32px;
    padding:0 8px;
    place-items:center;
    border:1px solid #f0d69e;
    border-radius:999px;
    background:#fff5d9;
    color:#8c5b10;
    font-size:12px;
    font-weight:850;
}
.lg-mayor-new-candidate{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-top:10px;
    padding:7px 10px;
    border-radius:999px;
    background:#fff0c9;
    color:#8c5b10;
    font-size:10px;
    font-weight:850;
    letter-spacing:.02em;
}
.lg-mayor-candidate-list{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    min-height:31px;
    margin:0 0 12px;
}
.lg-mayor-candidate-chip,
.lg-mayor-candidate-empty{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:0 11px;
    border-radius:999px;
    font-size:11px;
    font-weight:720;
}
.lg-mayor-candidate-chip{
    border:1px solid #efcf90;
    background:#fff7e5;
    color:#6f4812;
}
.lg-mayor-candidate-empty{
    border:1px dashed #ddd4cf;
    color:#8c8385;
}
.lg-mayor-speech-button{
    width:100%;
    border:1px solid #b92246;
    background:linear-gradient(180deg,#cc3a5b,#a91c3e);
    color:#fff;
    box-shadow:0 8px 18px rgba(169,28,62,.16);
}
.lg-mayor-command-card.is-attention{
    border-color:#e3b453;
    animation:lgMayorCandidateAttention 1.05s ease-in-out infinite;
}
@keyframes lgMayorCandidateAttention{
    0%,100%{box-shadow:0 9px 24px rgba(55,39,48,.07),0 0 0 0 rgba(218,159,53,0);transform:translateY(0);}
    50%{box-shadow:0 12px 28px rgba(97,64,18,.12),0 0 0 5px rgba(218,159,53,.15);transform:translateY(-1px);}
}
.lg-live-player--voice-clickable{
    cursor:pointer;
    transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
    touch-action:manipulation;
}
.lg-live-player--voice-clickable:active{transform:scale(.985);}
.lg-live-player--voice-clickable:focus-visible{
    outline:3px solid rgba(169,30,63,.22);
    outline-offset:2px;
}
.lg-live-player.is-disconnected{
    border-style:dashed;
    opacity:.72;
}
.lg-live-player__voice-label{
    display:block;
    max-width:100%;
    overflow:hidden;
    color:#80777a;
    font-size:8.5px;
    font-weight:700;
    line-height:1.15;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.lg-live-player__voice-label.is-open{color:#158553;}
.lg-player-voice-react-root{
    position:fixed;
    inset:0;
    z-index:100200;
    pointer-events:none;
}
.lg-player-voice-backdrop{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
    background:rgba(24,13,19,.46);
    backdrop-filter:blur(5px);
    cursor:pointer;
    pointer-events:auto;
    animation:lgVoiceSheetFade .2s ease both;
}
.lg-player-voice-sheet{
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    width:min(100%,520px);
    max-height:min(78vh,620px);
    margin-inline:auto;
    overflow:auto;
    padding:10px 15px calc(17px + env(safe-area-inset-bottom));
    border:1px solid rgba(78,48,61,.14);
    border-bottom:0;
    border-radius:26px 26px 0 0;
    background:linear-gradient(180deg,#fff 0%,#fffaf6 100%);
    box-shadow:0 -20px 60px rgba(41,19,30,.24);
    pointer-events:auto;
    animation:lgVoiceSheetUp .24s cubic-bezier(.2,.75,.25,1) both;
}
.lg-player-voice-sheet:focus{outline:none;}
.lg-player-voice-sheet__handle{
    width:42px;
    height:4px;
    margin:0 auto 11px;
    border-radius:999px;
    background:#d8d0cc;
}
.lg-player-voice-sheet__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.lg-player-voice-sheet__identity{
    display:flex;
    min-width:0;
    align-items:center;
    gap:11px;
}
.lg-player-voice-sheet__avatar{
    display:grid;
    width:50px;
    height:50px;
    flex:0 0 auto;
    place-items:center;
    border-radius:16px;
    background:linear-gradient(145deg,#4f45c3,#302798);
    color:#fff;
    font-size:12px;
    font-weight:850;
    box-shadow:0 8px 18px rgba(48,39,152,.2);
}
.lg-player-voice-sheet__kicker{
    display:block;
    overflow:hidden;
    max-width:210px;
    color:#9a7a36;
    font-size:9px;
    font-weight:820;
    letter-spacing:.08em;
    text-overflow:ellipsis;
    text-transform:uppercase;
    white-space:nowrap;
}
.lg-player-voice-sheet h2{
    overflow:hidden;
    max-width:230px;
    margin:3px 0 0;
    color:#251e21;
    font-size:21px;
    letter-spacing:-.035em;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.lg-player-voice-sheet__close{
    display:grid;
    width:38px;
    height:38px;
    flex:0 0 auto;
    place-items:center;
    border:1px solid #e2dcd8;
    border-radius:50%;
    background:#fff;
    color:#3a3034;
    cursor:pointer;
    font-size:24px;
    line-height:1;
}
.lg-player-voice-sheet__meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin:14px 0 11px;
}
.lg-player-state-badge,
.lg-player-voice-state{
    display:inline-flex;
    min-height:31px;
    align-items:center;
    gap:7px;
    padding:0 10px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
}
.lg-player-state-badge.is-alive{background:#e5f8ed;color:#18754a;}
.lg-player-state-badge.is-dead{background:#f0eceb;color:#746b6d;}
.lg-player-state-badge.is-offline{background:#fbe6e8;color:#9a3041;}
.lg-player-state-badge.is-spectator{background:#ece9ff;color:#5847a2;}
.lg-player-voice-state{border:1px solid #e1dcd9;background:#f8f5f3;color:#6d6467;}
.lg-player-voice-state.is-open{border-color:#afe2c6;background:#e4f8ec;color:#16734a;}
.lg-player-voice-state.is-offline{border-color:#efc8ce;background:#fcecef;color:#963244;}
.lg-player-voice-sheet__hint{
    margin:0 0 12px;
    padding:10px 11px;
    border-radius:13px;
    background:#f5f1ef;
    color:#6e6467;
    font-size:11.5px;
    line-height:1.4;
}
.lg-player-voice-sheet__actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}
.lg-player-voice-sheet__button{
    min-height:52px;
    padding:10px;
    border-radius:14px;
    cursor:pointer;
    font-size:12px;
    font-weight:800;
    touch-action:manipulation;
}
.lg-player-voice-sheet__button.is-open{
    border:1px solid #12a25a;
    background:linear-gradient(180deg,#20c978,#10a45c);
    color:#fff;
}
.lg-player-voice-sheet__button.is-close{
    border:1px solid #bf2949;
    background:linear-gradient(180deg,#d64261,#b92143);
    color:#fff;
}
.lg-player-voice-sheet__button:disabled{
    cursor:not-allowed;
    opacity:.38;
    filter:grayscale(.35);
}
.lg-player-voice-sheet__warning{
    margin:10px 0 0;
    color:#963244;
    font-size:11px;
    font-weight:700;
    text-align:center;
}
body.loupgarou-player-voice-sheet-open{overflow:hidden!important;}
@keyframes lgVoiceSheetFade{from{opacity:0}to{opacity:1}}
@keyframes lgVoiceSheetUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@media (min-width:700px){
    .lg-narrator-command-center{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;}
    .lg-mayor-command-card:only-child,.lg-narrator-call-card:only-child{grid-column:1/-1;}
    .lg-player-voice-sheet{bottom:20px;border-bottom:1px solid rgba(78,48,61,.14);border-radius:26px;}
}
@media (max-width:370px){
    .lg-narrator-call-actions,
    .lg-player-voice-sheet__actions{grid-template-columns:1fr;}
    .lg-narrator-command-card__head h2{font-size:16px;}
    .lg-narrator-call-button,.lg-mayor-speech-button{font-size:11px;}
}
@media (prefers-reduced-motion:reduce){
    .lg-mayor-command-card.is-attention,
    .lg-player-voice-backdrop,
    .lg-player-voice-sheet{animation:none!important;}
    .lg-narrator-call-button,
    .lg-mayor-speech-button,
    .lg-live-player--voice-clickable{transition:none!important;}
}

/* v2.0.7 — cache-proof Narrator command center, always visible above the roster. */
.lg-host-stage--command-center-v208 > .lg-narrator-react-root,
.lg-host-stage--command-center-v209 > .lg-narrator-react-root{
    display:block!important;
    width:100%;
    margin:12px 0 16px!important;
    visibility:visible!important;
    opacity:1!important;
}
.lg-narrator-command-shell{
    position:relative;
    width:100%;
    padding:11px;
    border:1px solid rgba(108,31,56,.16);
    border-radius:22px;
    background:linear-gradient(155deg,rgba(255,255,255,.99),rgba(255,247,243,.98));
    box-shadow:0 15px 34px rgba(67,31,45,.10);
}
.lg-narrator-command-shell__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:1px 3px 10px;
}
.lg-narrator-command-shell__kicker{
    display:block;
    margin-bottom:2px;
    color:#a21e43;
    font-size:8.5px;
    font-weight:900;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.lg-narrator-command-shell__header h2{
    margin:0;
    color:#281d22;
    font-family:Inter,system-ui,sans-serif;
    font-size:17px;
    font-weight:850;
    letter-spacing:-.035em;
    line-height:1.12;
}
.lg-narrator-command-shell__build{
    display:inline-flex;
    min-height:27px;
    flex:0 0 auto;
    align-items:center;
    gap:6px;
    padding:0 9px;
    border:1px solid #a9e3c3;
    border-radius:999px;
    background:#e7f8ee;
    color:#147047;
    font-size:8px;
    font-weight:900;
    letter-spacing:.06em;
    white-space:nowrap;
}
.lg-narrator-command-shell .lg-narrator-command-center{gap:9px;}
.lg-narrator-command-shell .lg-narrator-call-card,
.lg-narrator-command-shell .lg-mayor-command-card{
    box-shadow:0 7px 18px rgba(55,39,48,.06);
}
@media (max-width:370px){
    .lg-narrator-command-shell{padding:9px;border-radius:18px;}
    .lg-narrator-command-shell__header{align-items:flex-start;}
    .lg-narrator-command-shell__header h2{font-size:15px;}
    .lg-narrator-command-shell__build{padding:0 7px;font-size:7px;}
}


/* =====================================================================
   v2.0.8 — explicit home resume + premium Narrator leave/end controls
   ===================================================================== */
.lg-gheader__session-actions{
    display:flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
}
.lg-gheader__session-actions [hidden]{display:none!important;}
.lg-session-action{
    display:inline-flex;
    min-width:0;
    min-height:48px;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:0 15px;
    border-radius:15px;
    cursor:pointer;
    font:800 12px/1.1 Inter,system-ui,sans-serif;
    letter-spacing:-.01em;
    touch-action:manipulation;
    transition:transform .15s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,opacity .18s ease;
}
.lg-session-action:active{transform:scale(.975);}
.lg-session-action:focus-visible{outline:3px solid rgba(189,31,65,.20);outline-offset:2px;}
.lg-session-action__icon{
    display:grid;
    width:20px;
    height:20px;
    flex:0 0 auto;
    place-items:center;
}
.lg-session-action__icon svg{display:block;width:20px;height:20px;}
.lg-session-action--leave{
    border:1px solid #ded7d4;
    background:rgba(255,255,255,.95);
    color:#42383b;
    box-shadow:0 7px 18px rgba(62,45,50,.06);
}
.lg-session-action--leave:hover{border-color:#cfc4c0;background:#fff;box-shadow:0 9px 22px rgba(62,45,50,.09);}
.lg-session-action--end{
    border:1px solid #a9163a;
    background:linear-gradient(180deg,#cf284e,#a71338);
    color:#fff;
    box-shadow:0 10px 23px rgba(169,19,56,.19);
}
.lg-session-action--end:hover{background:linear-gradient(180deg,#d92d55,#ad153d);box-shadow:0 12px 27px rgba(169,19,56,.25);}
.lg-session-action.is-compact{
    min-height:43px;
    padding:0 12px;
    border-radius:13px;
    font-size:11px;
}
.lg-session-action.is-compact .lg-session-action__icon,
.lg-session-action.is-compact .lg-session-action__icon svg{width:17px;height:17px;}
.lg-app--host-lobby .lg-gheader__session-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
.lg-app--host-lobby .lg-gheader__session-actions .lg-session-action{margin:0;white-space:nowrap;}
.lg-app--player-lobby .lg-gheader__session-actions,
.lg-app--player-stage .lg-gheader__session-actions{display:flex;}
.lg-app--player-lobby .lg-gheader__session-actions .lg-session-action--leave,
.lg-app--player-stage .lg-gheader__session-actions .lg-session-action--leave{min-height:42px;}

.lg-live-header{flex-wrap:wrap;}
.lg-host-session-actions{
    display:grid;
    width:100%;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    padding:0!important;
}
.lg-host-session-actions::before{display:none!important;content:none!important;}
.lg-host-session-actions .lg-session-action{width:100%;min-height:49px;}
.lg-reveal-stage{position:relative;}
.lg-reveal-session-actions{
    position:absolute;
    top:max(14px,env(safe-area-inset-top));
    right:max(14px,env(safe-area-inset-right));
    left:max(14px,env(safe-area-inset-left));
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}
.lg-reveal-session-actions .lg-session-action{width:100%;}

.lg-session-confirm{
    position:fixed;
    inset:0;
    z-index:100000;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
}
.lg-session-confirm__backdrop{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    background:rgba(31,17,22,.48);
    cursor:pointer;
    backdrop-filter:blur(6px);
    animation:lgSessionConfirmFade .18s ease both;
}
.lg-session-confirm__sheet{
    position:relative;
    z-index:1;
    width:min(100%,520px);
    padding:24px 20px 20px;
    border:1px solid rgba(95,54,66,.16);
    border-radius:28px;
    background:linear-gradient(160deg,#fff,#fff8f5);
    color:#2d2025;
    box-shadow:0 28px 90px rgba(32,14,20,.34);
    text-align:center;
    animation:lgSessionConfirmUp .22s cubic-bezier(.2,.75,.25,1) both;
}
.lg-session-confirm__mark{
    display:grid;
    width:58px;
    height:58px;
    margin:0 auto 13px;
    place-items:center;
    border-radius:20px;
    background:#f1ecea;
    color:#4a3c40;
}
.lg-session-confirm--danger .lg-session-confirm__mark{
    background:linear-gradient(145deg,#da3158,#a81238);
    color:#fff;
    box-shadow:0 13px 28px rgba(169,18,55,.22);
}
.lg-session-confirm__mark svg{width:27px;height:27px;}
.lg-session-confirm__kicker{
    margin:0 0 6px;
    color:#aa1c42;
    font-size:9px;
    font-weight:900;
    letter-spacing:.17em;
    text-transform:uppercase;
}
.lg-session-confirm__sheet h2{
    margin:0;
    color:#2a1d22;
    font-family:Inter,system-ui,sans-serif;
    font-size:clamp(22px,6vw,30px);
    font-weight:880;
    letter-spacing:-.045em;
    line-height:1.08;
}
.lg-session-confirm__message{
    margin:13px auto 19px;
    max-width:430px;
    color:#75676c;
    font-size:13px;
    line-height:1.5;
}
.lg-session-confirm__actions{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
}
.lg-session-confirm__cancel,
.lg-session-confirm__accept{
    min-height:52px;
    padding:0 15px;
    border-radius:15px;
    cursor:pointer;
    font:850 12px/1 Inter,system-ui,sans-serif;
    touch-action:manipulation;
}
.lg-session-confirm__cancel{
    border:1px solid #ddd4d1;
    background:#fff;
    color:#4a3f42;
}
.lg-session-confirm__accept{
    border:1px solid #a9163a;
    background:linear-gradient(180deg,#cf284e,#a71338);
    color:#fff;
    box-shadow:0 10px 23px rgba(169,19,56,.19);
}
.lg-session-confirm--leave .lg-session-confirm__accept{
    border-color:#463a3d;
    background:linear-gradient(180deg,#4d4144,#2e2528);
    box-shadow:0 10px 23px rgba(45,35,39,.16);
}
.lg-session-confirm button:disabled{cursor:wait;opacity:.72;}
body.lg-session-confirm-open{overflow:hidden!important;}
@keyframes lgSessionConfirmFade{from{opacity:0}to{opacity:1}}
@keyframes lgSessionConfirmUp{from{opacity:0;transform:translateY(28px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media (min-width:560px){
    .lg-session-confirm{align-items:center;}
    .lg-session-confirm__actions{grid-template-columns:1fr 1.25fr;}
}
@media (max-width:430px){
    .lg-app--host-lobby .lg-gheader{grid-template-columns:minmax(90px,1fr) auto;}
    .lg-app--host-lobby .lg-gheader__connection{display:none;}
    .lg-app--host-lobby .lg-gheader__session-actions{gap:6px;}
    .lg-app--host-lobby .lg-session-action.is-compact{min-height:40px;padding:0 9px;font-size:9.5px;}
    .lg-app--host-lobby .lg-session-action.is-compact .lg-session-action__icon,
    .lg-app--host-lobby .lg-session-action.is-compact .lg-session-action__icon svg{width:15px;height:15px;}
    .lg-host-session-actions .lg-session-action{min-height:47px;padding:0 10px;font-size:10.5px;}
    .lg-session-confirm__sheet{padding:22px 16px 16px;border-radius:25px;}
}
@media (max-width:355px){
    .lg-session-action__icon{display:none;}
    .lg-host-session-actions{gap:7px;}
}
@media (prefers-reduced-motion:reduce){
    .lg-session-action,.lg-session-confirm__backdrop,.lg-session-confirm__sheet{animation:none!important;transition:none!important;}
}

/* =====================================================================
   v2.0.9 — salon lisible, actions fiables et état de reconnexion
   ===================================================================== */
.lg-app--host-lobby .lg-gheader{
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
        "room connection"
        "actions actions";
    row-gap:12px;
    min-height:0;
}
.lg-app--host-lobby .lg-gheader__room{grid-area:room;min-width:0;overflow:visible;}
.lg-app--host-lobby .lg-gheader__connection{grid-area:connection;justify-self:end;}
.lg-app--host-lobby .lg-gheader__phase{grid-area:phase;}
.lg-app--host-lobby .lg-gheader__session-actions{
    grid-area:actions;
    width:100%;
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.lg-app--host-lobby .lg-gheader__code{
    width:auto;
    max-width:100%;
    overflow:visible;
}
.lg-app--host-lobby .lg-gheader__code strong{
    display:block;
    min-width:0;
    overflow:visible;
    text-overflow:clip;
    white-space:nowrap;
    font-size:clamp(23px,7.2vw,34px);
    font-weight:800;
    letter-spacing:.025em;
    line-height:1;
    font-variant-numeric:tabular-nums;
}
.lg-app--host-lobby .lg-gheader__copy{flex:0 0 auto;}
.lg-app--host-lobby .lg-session-action.is-compact{
    min-height:46px;
    font-size:11px;
}
.lg-gheader__connection:not(.is-online){border-color:#f0cf9b;background:#fff5df;color:#8b5a16;}
.lg-react-formcard button.is-loading,
[data-action="create-room"].is-loading,
[data-action="join-room"].is-loading{pointer-events:none;}
@media (max-width:430px){
    .lg-app--host-lobby .lg-gheader{
        grid-template-columns:minmax(0,1fr) auto;
        grid-template-areas:
            "room connection"
            "actions actions";
        gap:10px;
        padding:calc(15px + env(safe-area-inset-top)) 14px 14px;
    }
    .lg-app--host-lobby .lg-gheader__connection{
        display:inline-flex;
        max-width:105px;
        padding:9px 10px;
        overflow:hidden;
        font-size:9px;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .lg-app--host-lobby .lg-gheader__code strong{font-size:clamp(22px,7.4vw,30px);letter-spacing:.02em;}
    .lg-app--host-lobby .lg-gheader__session-actions{gap:8px;}
    .lg-app--host-lobby .lg-session-action.is-compact{min-height:44px;padding:0 10px;font-size:10.5px;}
}
@media (max-width:350px){
    .lg-app--host-lobby .lg-gheader__connection{display:none;}
    .lg-app--host-lobby .lg-gheader{grid-template-areas:"room room" "actions actions";}
    .lg-app--host-lobby .lg-gheader__code strong{font-size:25px;}
}
@media (min-width:760px){
    .lg-app--host-lobby .lg-gheader{
        grid-template-columns:minmax(220px,1fr) auto minmax(300px,auto);
        grid-template-areas:"room connection actions";
        row-gap:0;
    }
    .lg-app--host-lobby .lg-gheader__session-actions{width:auto;}
}
