/* Organisation de la Bêta 0.1 : apprendre et suivre sa progression sont séparés. */
.beta-version { color:#25191b; border-color:#ff7b82; background:linear-gradient(135deg,#ffb5aa,#ff727a); font-weight:800; letter-spacing:.03em; }
.home-section + .home-section { margin-top:34px; }
.home-section-tools { padding-top:28px; border-top:1px solid rgba(255,132,137,.26); }
.home-section-heading { display:flex; align-items:end; justify-content:space-between; gap:22px; margin:0 2px 14px; }
.home-section-heading .eyebrow { margin-bottom:4px; }
.home-section-heading h2 { margin:0; color:var(--cream); font-size:clamp(1.45rem,3vw,2rem); letter-spacing:-.045em; }
.home-section-heading p:last-child { max-width:355px; margin:0; color:var(--muted); font-size:.92rem; line-height:1.45; text-align:right; }
.home-section-tools .category-card { background:linear-gradient(145deg,#1d2028,#19191f); }
@media (max-width:580px) { .home-section-heading { align-items:start; flex-direction:column; gap:7px; } .home-section-heading p:last-child { text-align:left; } }

/* Barre d'accueil : actualités à gauche, événements à droite. */
.home-ribbon { overflow:hidden; margin:-35px 0 20px; border:1px solid #3d3743; border-radius:13px; background:linear-gradient(90deg,#20202a,#17191d); box-shadow:0 8px 22px rgba(0,0,0,.13); }
.home-ribbon-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.65fr) 44px; align-items:stretch; }
.home-ribbon .news-ticker { width:auto; min-height:44px; margin:0; padding:8px 14px; border:0; border-radius:0; background:transparent; box-shadow:none; font-size:.86rem; }
#newsTickerText { min-width:0; }
.news-ticker-arrow { flex:none; color:#f1d7d7; font-size:1rem; }
.events-summary { display:flex; align-items:center; gap:9px; min-width:0; padding:7px 9px 7px 13px; border-left:1px solid #423a45; background:rgba(255,255,255,.015); }
.events-summary-label { flex:none; padding:3px 7px; border-radius:999px; color:#2c1518; background:#ff5f68; font-size:.62rem; font-weight:800; letter-spacing:.07em; }
.events-summary-text { overflow:hidden; color:#c8c7ce; font-size:.78rem; white-space:nowrap; text-overflow:ellipsis; }
.events-expand-button { align-self:center; width:30px; height:30px; margin:auto; border:1px solid #654047; border-radius:9px; color:#ffd5d5; background:#2a2025; font-size:.9rem; line-height:1; transition:transform .18s,border-color .18s; }
.events-expand-button:hover { border-color:#ff7a80; }
.events-expand-button.expanded { transform:rotate(180deg); }
.ribbon-drawer { display:grid; grid-template-columns:1fr 1fr; gap:19px; padding:15px 16px 17px; border-top:1px solid #423a45; background:rgba(12,13,18,.42); }
.ribbon-drawer[hidden] { display:none; }

/* Communauté et modération de la bêta. */
.admin-card { border-color:rgba(241,189,105,.45); background:linear-gradient(140deg,rgba(74,52,34,.58),rgba(27,29,35,.88)); }
.messages-shell { display:grid; grid-template-columns:minmax(230px,.8fr) minmax(0,1.5fr); min-height:560px; border:1px solid var(--line); border-radius:20px; overflow:hidden; background:rgba(23,25,30,.88); }
.messages-sidebar { display:flex; flex-direction:column; gap:11px; padding:16px; border-right:1px solid var(--line); background:rgba(18,20,25,.72); }
.member-search-label,.messages-sidebar-heading strong { color:var(--cream); font-size:.86rem; font-weight:700; }
.messages-sidebar input { width:100%; padding:10px; border:1px solid var(--line); border-radius:10px; color:var(--text); background:#15171c; }
.messages-sidebar-heading { display:flex; justify-content:space-between; align-items:center; margin-top:6px; }
.messages-sidebar-heading small { color:var(--red-soft); font-size:.72rem; }
.message-member-results,.conversation-list { display:grid; gap:6px; }
.message-member-results:not(:empty) { padding-bottom:8px; border-bottom:1px solid var(--line); }
.member-search-row,.conversation-row { display:flex; align-items:center; gap:9px; width:100%; padding:9px; border:1px solid transparent; border-radius:10px; color:var(--text); text-align:left; background:transparent; }
.member-search-row:hover,.conversation-row:hover,.conversation-row.selected { border-color:rgba(255,115,121,.45); background:#282129; }
.message-avatar { display:grid; flex:none; overflow:hidden; width:35px; height:35px; border-radius:11px; }
.message-avatar img { width:100%; height:100%; object-fit:cover; }
.member-search-row span,.conversation-row span { display:grid; min-width:0; gap:2px; }
.member-search-row small,.conversation-row small { overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; font-size:.73rem; }
.conversation-row i { display:grid; place-items:center; min-width:18px; height:18px; margin-left:auto; border-radius:999px; color:#26191b; background:var(--red-soft); font-size:.67rem; font-style:normal; font-weight:800; }
.message-list-empty { margin:6px 0; color:var(--muted); font-size:.82rem; line-height:1.45; }
.conversation-pane { display:flex; min-width:0; min-height:520px; }
.message-empty { display:grid; place-content:center; justify-items:center; width:100%; padding:30px; color:var(--muted); text-align:center; }
.message-empty span { display:grid; place-items:center; width:52px; height:52px; margin-bottom:10px; border:1px solid var(--line); border-radius:16px; color:var(--red-soft); font-size:1.35rem; }
.message-empty h2 { margin:0; color:var(--cream); font-size:1.1rem; }
.message-empty p { max-width:34ch; line-height:1.5; }
#messageConversation { display:flex; flex:1; min-width:0; flex-direction:column; } #messageConversation[hidden],.message-empty[hidden] { display:none; }
.conversation-header { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:16px 18px; border-bottom:1px solid var(--line); }
.conversation-header div { display:grid; gap:3px; }.conversation-header small { color:var(--muted); font-size:.76rem; }
.message-thread { display:flex; flex:1; min-height:340px; flex-direction:column; gap:9px; overflow:auto; padding:17px; }
.message-bubble { max-width:min(78%,530px); padding:10px 12px; border-radius:14px; background:#282b33; }.message-bubble.mine { align-self:flex-end; border-bottom-right-radius:4px; color:#321f21; background:var(--red-soft); }.message-bubble.theirs { align-self:flex-start; border-bottom-left-radius:4px; }
.message-bubble p { margin:0; overflow-wrap:anywhere; line-height:1.45; }.message-bubble small { display:flex; gap:8px; margin-top:6px; color:inherit; opacity:.72; font-size:.68rem; }.report-message-button { padding:0; border:0; color:inherit; background:transparent; text-decoration:underline; font-size:inherit; }
.message-composer { display:flex; align-items:flex-end; gap:10px; padding:13px; border-top:1px solid var(--line); }.message-composer[hidden] { display:none; }.message-composer textarea { flex:1; min-height:46px; max-height:120px; resize:vertical; padding:11px; border:1px solid var(--line); border-radius:11px; color:var(--text); background:#15171d; font:inherit; }.message-composer .primary-button { flex:none; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.admin-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:11px; margin-bottom:18px; }.admin-summary article { display:grid; gap:5px; padding:16px; border:1px solid var(--line); border-radius:14px; background:rgba(29,32,39,.82); }.admin-summary strong { color:var(--cream); font-size:1.55rem; }.admin-summary span { color:var(--muted); font-size:.8rem; }
.admin-reports,.admin-members { display:grid; gap:10px; }.admin-report { display:flex; justify-content:space-between; gap:16px; padding:14px; border:1px solid var(--line); border-radius:13px; background:#1b1d23; }.admin-report.open { border-color:rgba(255,115,121,.5); }.admin-report > div { display:grid; align-content:start; gap:7px; }.admin-report p { margin:0; color:#dbd9df; line-height:1.45; }.admin-report small { color:var(--muted); }.admin-report > div:last-child { justify-items:end; }.admin-member { display:flex; align-items:center; gap:10px; padding:10px; border:1px solid var(--line); border-radius:12px; background:#1b1d23; }.admin-member div { display:grid; gap:2px; }.admin-member small { color:var(--muted); font-size:.75rem; }.admin-member button { margin-left:auto; color:#ffb4b6; }
@media (max-width:720px) { .messages-shell { grid-template-columns:1fr; }.messages-sidebar { border-right:0; border-bottom:1px solid var(--line); }.conversation-pane { min-height:460px; }.admin-summary { grid-template-columns:repeat(2,1fr); }.admin-report { flex-direction:column; }.admin-report > div:last-child { justify-items:start; } }
.ribbon-list + .ribbon-list { padding-left:19px; border-left:1px solid #423a45; }
.ribbon-list h2 { margin:0 0 9px; color:var(--cream); font-size:.86rem; letter-spacing:.04em; text-transform:uppercase; }
.ribbon-entry { width:100%; display:grid; gap:3px; padding:9px 0; border:0; border-top:1px solid var(--line); color:var(--text); background:transparent; text-align:left; }
.ribbon-entry:first-child { border-top:0; }.ribbon-entry small { color:var(--muted); font-size:.72rem; }.ribbon-entry strong { font-size:.84rem; line-height:1.35; }.ribbon-entry:hover strong { color:var(--red-soft); }
.event-row { display:grid; grid-template-columns:112px minmax(0,1fr); gap:13px; padding:10px 0; border-top:1px solid var(--line); }
.event-row:first-child { padding-top:0; border-top:0; }.event-row:last-child { padding-bottom:0; }
.event-row strong { color:var(--cream); }.event-row p { margin:4px 0 0; color:var(--muted); font-size:.86rem; }.event-date { color:var(--red-soft); font-size:.8rem; font-weight:700; }
@media (max-width:650px) { .home-ribbon { margin:-24px 0 22px; } .home-ribbon-summary { grid-template-columns:minmax(0,1fr) 42px; } .events-summary { grid-column:1 / -1; grid-row:2; border-top:1px solid #423a45; border-left:0; } .events-expand-button { grid-column:2; grid-row:1; } .ribbon-drawer { grid-template-columns:1fr; gap:15px; } .ribbon-list + .ribbon-list { padding-top:15px; padding-left:0; border-top:1px solid #423a45; border-left:0; } }

/* Champ leurre : masqué hors écran mais présent pour détecter les robots qui remplissent tout. */
.bot-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }

/* Un coffre fermé est immobile : l'animation démarre uniquement à l'ouverture. */
.loot-box.loot-chest-asset .loot-chest-lid-art { animation:none !important; }
.loot-box.loot-chest-asset.opening .loot-chest-lid-art { animation:chest-lid-art-open 3.2s cubic-bezier(.18,.82,.22,1) both !important; }
