:root{--ivory:#f1e7d0;--paper:#fbf6ea;--ink:#201711;--soft:#5b4a3b;--walnut:#2c1b10;--wood:#8a5a35;--sq-l:#efdcb2;--sq-d:#a9733f;--burg:#8b1e2d;--gold:#c0912f;--green:#2f4a3a;--line:#d9c9a6;
--head:#2c1b10;--field:#fff;--note:#efe2bf;--hov:#eadbb5;--rule:#201711;--serif:'Lora',Georgia,'Times New Roman',serif;--disp:'Playfair Display',Georgia,serif;--ui:'Inter',system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
html{font-size:var(--fs,100%)}body{margin:0;background:var(--ivory) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.07'/%3E%3C/svg%3E");color:var(--ink);font:1.125rem/1.75 var(--serif);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:var(--burg)}a:hover{color:var(--head)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--gold);color:#000;padding:.6rem 1rem;z-index:99}.skip:focus{left:0}
.wrap{width:min(1120px,100% - 2rem);margin-inline:auto}
/* NAV */
.nav{position:sticky;top:0;z-index:50;background:var(--walnut);border-bottom:3px solid var(--gold);font-family:var(--ui)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}
.brand{white-space:nowrap;display:flex;align-items:center;gap:.6rem;color:#f6ead0;text-decoration:none;font-family:var(--disp);font-size:1.15rem;font-weight:700;letter-spacing:.01em}
.brand span.k{font-size:1.7rem;color:var(--gold);line-height:1}
.menu{display:flex;list-style:none;margin:0;padding:0;gap:.15rem}
.menu a{white-space:nowrap;display:block;color:#e8d9b8;text-decoration:none;font-size:.88rem;font-weight:500;padding:.55rem .6rem;border-radius:6px;letter-spacing:.02em}
.menu a:hover{background:rgba(255,255,255,.08);color:#fff}
.menu a[aria-current=page]{background:var(--gold);color:#1d1308;font-weight:700}
.burger{display:none;background:none;border:1px solid var(--gold);color:var(--gold);border-radius:6px;font-size:1.3rem;padding:.25rem .65rem;cursor:pointer}
@media(max-width:1060px){.burger{display:block}.menu{display:none;position:absolute;top:64px;left:0;right:0;background:var(--walnut);flex-direction:column;padding:.5rem 1rem 1rem;border-bottom:3px solid var(--gold)}.menu.open{display:flex}.menu a{padding:.8rem}}
/* HERO */
.hero{position:relative;color:#f7edd6;background:var(--walnut);overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;opacity:.16;background:conic-gradient(var(--sq-d) 25%,var(--sq-l) 0 50%,var(--sq-d) 0 75%,var(--sq-l) 0) 0 0/80px 80px}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,#1d1209 35%,rgba(29,18,9,.55))}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center;padding:4.5rem 0 4rem}
.kicker{font:700 .78rem/1 var(--ui);letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.hero h1{font:900 clamp(2.6rem,6vw,4.6rem)/1.02 var(--disp);margin:.8rem 0 1rem}
.hero h1 em{color:var(--gold);font-style:italic;font-weight:700}
.hero p.lead{font-size:1.2rem;color:#e6d8b9;max-width:34em}
.btns{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}
.btn{display:inline-block;font:600 .92rem var(--ui);letter-spacing:.03em;text-decoration:none;padding:.8rem 1.4rem;border-radius:999px;border:2px solid var(--gold);background:var(--gold);color:#1d1308;cursor:pointer;transition:.2s}
.btn:hover{background:#d8a93f;color:#000;transform:translateY(-2px)}
.btn.ghost{background:transparent;color:var(--gold)}.btn.ghost:hover{background:var(--gold);color:#000}
.hero .fig{margin:0;transform:rotate(1.5deg)}
@media(max-width:860px){.hero .wrap{grid-template-columns:1fr;padding:3rem 0}.hero .fig{transform:none}}
/* PAGE HEAD */
.phead{background:var(--walnut);color:#f7edd6;padding:3.2rem 0 2.6rem;border-bottom:6px double var(--gold)}
.phead h1{font:900 clamp(2.1rem,5vw,3.6rem)/1.08 var(--disp);margin:.6rem 0 .6rem;max-width:18em}
.phead p{color:#dccdaa;max-width:40em;font-size:1.15rem;margin:0}
.crumb{font:500 .8rem var(--ui);color:#bfa982}.crumb a{color:#e8d3a0}
/* LAYOUT */
main{padding-bottom:3rem}
section{padding:2.6rem 0}
h2{font:800 clamp(1.7rem,3.4vw,2.4rem)/1.15 var(--disp);color:var(--head);margin:0 0 1rem;position:relative;padding-bottom:.6rem}
h2::after{content:"";position:absolute;left:0;bottom:0;width:70px;height:4px;background:linear-gradient(90deg,var(--burg) 50%,var(--gold) 0)}
h3{font:700 1.3rem var(--disp);color:var(--burg);margin:1.6rem 0 .4rem}
.cols{column-count:2;column-gap:2.6rem;column-rule:1px solid var(--line);text-align:justify;hyphens:auto}
.cols p{margin:0 0 1em}.cols h3{break-after:avoid;margin-top:0}
@media(max-width:760px){.cols{column-count:1;text-align:left}}
.dropcap::first-letter{float:left;font:900 4.6rem/.8 var(--disp);color:var(--burg);padding:.35rem .6rem 0 0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media(max-width:860px){.grid2,.grid3{grid-template-columns:1fr}}
.pull{margin:1.8rem 0;padding:1.4rem 1.6rem;border-left:6px solid var(--burg);background:var(--paper);font:italic 600 1.5rem/1.35 var(--disp);color:var(--head);break-inside:avoid}
.pull cite{display:block;font:500 .85rem var(--ui);font-style:normal;color:var(--soft);margin-top:.6rem;letter-spacing:.04em}
.box{background:var(--paper);border:1px solid var(--line);border-top:5px solid var(--gold);padding:1.2rem 1.4rem;border-radius:4px;box-shadow:0 6px 18px rgba(44,27,16,.08);break-inside:avoid;margin:0 0 1.2rem}
.box.dark{background:var(--walnut);color:#f1e3c4;border-color:var(--gold)}.box.dark h3{color:var(--gold)}
.box h3{margin-top:0}.box ul{padding-left:1.1rem;margin:.4rem 0 0}
.box li{margin:.25rem 0}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.5rem 0}
@media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--walnut);color:#f5e8c9;text-align:center;padding:1.1rem .6rem;border-radius:6px;border-bottom:4px solid var(--gold)}
.stat b{display:block;font:900 2rem/1 var(--disp);color:var(--gold)}.stat span{font:500 .8rem var(--ui);letter-spacing:.05em}
.card{background:var(--paper);border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:.25s;box-shadow:0 4px 14px rgba(44,27,16,.08)}
.card:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(44,27,16,.2);color:var(--ink)}
.card .n{font:900 3.4rem/1 var(--disp);color:var(--gold);padding:1rem 1.3rem 0}
.card h3{margin:.2rem 1.3rem .3rem;color:var(--head)}.card p{margin:0 1.3rem 1.2rem;font-size:.97rem;color:var(--soft);line-height:1.55}
.card .go{margin:auto 1.3rem 1.2rem;font:700 .85rem var(--ui);color:var(--burg);letter-spacing:.06em}
/* FIGURES */
.fig{margin:0 0 1.4rem;background:var(--paper);padding:.7rem .7rem .2rem;border:1px solid var(--line);box-shadow:0 8px 22px rgba(44,27,16,.15);break-inside:avoid}
.fig .ph{aspect-ratio:4/3;background:#2c1b10;overflow:hidden;position:relative;display:grid;place-items:center}
.fig .ph img{width:100%;height:100%;object-fit:cover;filter:sepia(.18) contrast(1.03);cursor:zoom-in;transition:transform .5s}
.fig .ph img:hover{transform:scale(1.04)}
.fig .ph.empty{background:conic-gradient(var(--sq-d) 25%,var(--sq-l) 0 50%,var(--sq-d) 0 75%,var(--sq-l) 0) 0 0/50px 50px}
.fig .ph.empty::after{content:"♞";font-size:5rem;color:var(--head);background:rgba(251,246,234,.85);width:110px;height:110px;display:grid;place-items:center;border-radius:50%;line-height:1}
.fig figcaption{font:.84rem/1.45 var(--ui);color:var(--soft);padding:.7rem .2rem .6rem}
.fig figcaption b{color:var(--burg);display:block;font-size:.9rem;margin-bottom:.15rem}
.fig figcaption small{display:block;color:#8a7a68;margin-top:.25rem}
.fig.tall .ph{aspect-ratio:3/4}.fig.wide .ph{aspect-ratio:16/9}
.gallery{columns:3 260px;column-gap:1.4rem}
.lightbox{position:fixed;inset:0;background:rgba(15,9,4,.93);z-index:100;display:none;place-items:center;padding:2rem;cursor:zoom-out}
.lightbox.on{display:grid}.lightbox img{max-height:86vh;max-width:96vw;box-shadow:0 0 60px #000}
.lightbox p{color:#e8d9b8;font:.9rem var(--ui);text-align:center;margin:.8rem auto 0;max-width:60ch}
/* TIMELINE */
.timeline{position:relative;margin:2rem 0;padding-left:2.2rem;border-left:4px solid var(--gold)}
.tl{position:relative;margin:0 0 1.6rem;background:var(--paper);border:1px solid var(--line);padding:1rem 1.3rem;border-radius:4px}
.tl::before{content:"";position:absolute;left:-2.2rem;top:1.2rem;width:18px;height:18px;border-radius:50%;background:var(--burg);border:4px solid var(--ivory);transform:translateX(-9px);margin-left:2px}
.tl .y{font:900 1.6rem var(--disp);color:var(--burg)}.tl h3{margin:0 0 .2rem;color:var(--head)}.tl p{margin:.3rem 0 0;font-size:.98rem;line-height:1.6}
/* CHESS */
.chessbox{display:grid;grid-template-columns:minmax(280px,480px) 1fr;gap:2rem;align-items:start;margin:1.5rem 0}
@media(max-width:860px){.chessbox{grid-template-columns:1fr}}
.board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));aspect-ratio:1;width:100%;border:10px solid var(--walnut);outline:2px solid var(--gold);box-shadow:0 12px 30px rgba(0,0,0,.35);user-select:none}
.sq{min-width:0;min-height:0;overflow:hidden;display:grid;place-items:center;font-size:clamp(1.6rem,6.4vw,3.1rem);line-height:1;position:relative;cursor:default}
.sq.l{background:var(--sq-l)}.sq.d{background:var(--sq-d)}
.sq.hl::before{content:"";position:absolute;inset:0;background:rgba(240,200,30,.5)}
.sq.sel::before{content:"";position:absolute;inset:0;background:rgba(40,160,90,.55)}
.sq.bad::before{content:"";position:absolute;inset:0;background:rgba(190,30,45,.5)}
.sq .p{position:relative;z-index:1}
.sq .p.w{color:#fff;text-shadow:0 0 2px #000,0 0 2px #000,0 1px 3px #000}.sq .p.b{color:#16100a;text-shadow:0 0 1px #fff6}
.sq i{position:absolute;font:600 .55rem var(--ui);font-style:normal;opacity:.55;color:#2c1b10;z-index:1}
.sq i.r{top:2px;left:3px}.sq i.f{bottom:1px;right:3px}
.ctrl{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0}
.ctrl button{font:700 .95rem var(--ui);background:var(--walnut);color:#f1e3c4;border:0;border-radius:6px;padding:.55rem .9rem;cursor:pointer;min-width:44px}
.ctrl button:hover{background:var(--burg)}
.moves{max-height:340px;overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:.6rem;font:.9rem/1.9 var(--ui)}
.moves .n{color:var(--soft);margin:0 .2rem 0 .5rem}
.moves button{font:inherit;background:none;border:0;padding:.05rem .35rem;border-radius:3px;cursor:pointer;color:var(--ink)}
.moves button:hover{background:var(--hov)}.moves button.on{background:var(--burg);color:#fff}
.note{font:.92rem/1.55 var(--ui);background:var(--note);border-left:4px solid var(--gold);padding:.7rem 1rem;border-radius:3px;min-height:3.4em}
.puzzle .msg{font:600 1rem var(--ui);margin-top:.8rem;min-height:3em}.msg.ok{color:#1d6b3a}.msg.ko{color:var(--burg)}
/* QUIZ */
.quiz{background:var(--paper);border:1px solid var(--line);border-top:6px solid var(--burg);padding:1.6rem;border-radius:6px;box-shadow:0 10px 26px rgba(44,27,16,.12)}
.qbar{height:8px;background:#e5d6b3;border-radius:9px;overflow:hidden;margin-bottom:1rem}.qbar i{display:block;height:100%;background:linear-gradient(90deg,var(--burg),var(--gold));width:0;transition:.4s}
.quiz h3{margin-top:.2rem;color:var(--head);font-size:1.35rem}
.opt{display:block;width:100%;text-align:left;font:500 1rem var(--ui);padding:.85rem 1rem;margin:.5rem 0;background:var(--field);color:var(--ink);border:2px solid var(--line);border-radius:6px;cursor:pointer;transition:.15s}
.opt:hover:not(:disabled){border-color:var(--gold);background:#fff8e6}
.opt.good{background:#dff0e3;border-color:#2f8f4f}.opt.bad{background:#f6dcdc;border-color:var(--burg)}
.fb{font:.95rem/1.55 var(--ui);margin:.8rem 0;min-height:3em}
.score{font:900 4rem/1 var(--disp);color:var(--burg);text-align:center}
form.cm{display:grid;gap:.8rem}
form.cm input,form.cm textarea{font:1rem var(--ui);padding:.8rem;border:2px solid var(--line);border-radius:6px;background:var(--field);color:var(--ink);width:100%}
.cmt{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--gold);padding:.9rem 1.1rem;margin:.8rem 0;border-radius:4px;font-family:var(--ui);font-size:.97rem}
.cmt b{color:var(--head)}.cmt small{color:var(--soft);margin-left:.5rem}.cmt p{margin:.3rem 0 0;white-space:pre-wrap;line-height:1.55}
/* FOOTER */
footer{background:var(--walnut);color:#d9c9a4;border-top:6px double var(--gold);font-family:var(--ui);font-size:.92rem}
footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;padding:3rem 0 2rem}
@media(max-width:760px){footer .wrap{grid-template-columns:1fr;gap:1.5rem}}
footer h4{font:700 1.05rem var(--disp);color:var(--gold);margin:0 0 .8rem}
footer ul{list-style:none;margin:0;padding:0}footer li{margin:.4rem 0}footer a{color:#ecdcb8;text-decoration:none}footer a:hover{color:var(--gold);text-decoration:underline}
footer .bottom{border-top:1px solid #4a3523;text-align:center;padding:1rem;font-size:.8rem;color:#a99573}
.pn{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem;flex-wrap:wrap}
.tag{display:inline-block;font:700 .72rem var(--ui);letter-spacing:.1em;text-transform:uppercase;background:var(--burg);color:#fff;padding:.25rem .6rem;border-radius:3px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ===== JOURNAL ===== */
.mast{border-bottom:4px double var(--rule);padding:1.1rem 0 .9rem;text-align:center}
.mast-top{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap;font:600 .72rem var(--ui);letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid var(--rule);padding-bottom:.5rem;color:var(--soft)}
.mast-title{font:900 clamp(2.4rem,9vw,6.2rem)/1 var(--disp);letter-spacing:-.01em;color:var(--head);margin:.5rem 0 .2rem;text-transform:none}
.mast-sub{font:italic 1rem var(--disp);color:var(--soft);border-top:1px solid var(--rule);padding-top:.5rem}
.flash{background:var(--walnut);color:#f4e8cc;font:500 .85rem var(--ui);overflow:hidden}.flash .wrap{display:flex;gap:1rem;align-items:center;padding:.5rem 0}.flash b{background:var(--burg);color:#fff;padding:.15rem .6rem;letter-spacing:.14em;font-size:.72rem}
.hero{background:transparent;color:var(--ink)}.hero::before,.hero::after{display:none}
.hero .wrap{padding:2.4rem 0 2rem}.hero h1{color:var(--head)}.hero h1 em{color:var(--burg)}.hero p.lead{color:var(--soft)}
.hero .kicker,.phead .kicker{color:var(--burg)}
.btn.ghost{color:var(--burg);border-color:var(--burg)}.btn.ghost:hover{background:var(--burg);color:#fff}.btn{background:var(--burg);border-color:var(--burg);color:#fff}.btn:hover{background:var(--head);border-color:var(--head);color:var(--ivory)}
.phead{background:transparent;color:var(--ink);border-bottom:4px double var(--rule);border-top:1px solid var(--rule);padding:2rem 0 1.6rem}
.phead h1{color:var(--head)}.phead p{color:var(--soft);font-style:italic;font-family:var(--disp);font-size:1.3rem}
.crumb{color:var(--soft)}.crumb a{color:var(--burg)}
.byline{font:600 .76rem var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin-top:1rem;padding-top:.6rem;border-top:1px solid var(--line)}
section{border-bottom:1px solid var(--line)}
h2{text-transform:uppercase;letter-spacing:.03em;border-top:3px solid var(--rule);padding-top:.7rem;font-size:clamp(1.4rem,3vw,2rem)}
.fig{background:var(--paper);box-shadow:none;border:1px solid var(--rule);padding:.5rem .5rem .1rem}
.fig .ph img{filter:grayscale(.9) sepia(.25) contrast(1.05)}.fig .ph img:hover{filter:none}
.fig figcaption{font-style:italic;border-top:1px solid var(--line);margin-top:.4rem}
.cols{column-rule:1px solid var(--rule)}
.pull{border-left:0;border-block:3px double var(--rule);background:transparent;text-align:center;padding:1rem .5rem}
.stat,.box{border-radius:0}.box{box-shadow:none;border:1px solid var(--rule);border-top:4px solid var(--rule)}
.sommaire{list-style:none;margin:.6rem 0 0;padding:0;font:500 .95rem var(--ui)}.sommaire li{display:flex;gap:.5rem;align-items:baseline;padding:.4rem 0;border-bottom:1px dotted var(--soft)}.sommaire a{color:var(--ink);text-decoration:none;flex:1}.sommaire a:hover{color:var(--burg)}.sommaire b{font-family:var(--disp);color:var(--burg);font-size:1.2rem}
/* NAV droite + tiroir */
.navr{display:flex;align-items:center;gap:.6rem}
.menu{margin-inline:auto}
.nav .wrap{gap:.8rem}
.hb{background:none;border:1px solid var(--gold);color:var(--gold);border-radius:6px;font-size:1.35rem;line-height:1;padding:.35rem .65rem;cursor:pointer}.hb:hover{background:var(--gold);color:#000}

@media(max-width:1060px){.menu{display:none!important}}
.veil{position:fixed;inset:0;background:rgba(10,6,2,.55);z-index:90;display:none}.veil.on{display:block}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(380px,92vw);background:var(--paper);color:var(--ink);z-index:95;transform:translateX(105%);transition:transform .3s;overflow:auto;border-left:4px solid var(--gold);padding:1.2rem 1.3rem 2rem;font-family:var(--ui)}
.drawer.on{transform:none}
.drawer h3{font:800 1.05rem var(--disp);color:var(--head);text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--rule);padding-bottom:.4rem;margin:1.5rem 0 .8rem}
.drawer .dh{display:flex;justify-content:space-between;align-items:center}.drawer .dh b{font:900 1.3rem var(--disp);color:var(--head)}
.drawer .x{background:none;border:1px solid var(--line);color:var(--ink);border-radius:6px;font-size:1.2rem;padding:.2rem .6rem;cursor:pointer}
.drawer ul{list-style:none;margin:0;padding:0}.drawer li a{display:block;padding:.5rem 0;color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--line);font-size:.95rem}.drawer li a:hover{color:var(--burg)}
.dnav{display:none}@media(max-width:1060px){.dnav{display:block}}
.seg{display:flex;flex-wrap:wrap;gap:.4rem}.seg button{flex:1;min-width:70px;font:600 .85rem var(--ui);padding:.55rem .6rem;border:2px solid var(--line);background:var(--field);color:var(--ink);border-radius:6px;cursor:pointer}
.seg button[aria-pressed=true]{background:var(--burg);border-color:var(--burg);color:#fff}
.row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:.6rem 0;font-size:.92rem}
.row label{flex:1}.row input[type=checkbox]{width:22px;height:22px;accent-color:var(--burg)}
.lnote{font-size:.78rem;color:var(--soft);margin:.5rem 0 0}
/* COOKIES */
.cookie{position:fixed;left:50%;bottom:1rem;transform:translate(-50%,160%);transition:transform .4s;width:min(760px,calc(100% - 1.4rem));background:var(--paper);color:var(--ink);border:2px solid var(--rule);border-top:6px solid var(--burg);box-shadow:0 18px 50px rgba(0,0,0,.45);padding:1.1rem 1.3rem;z-index:110;font-family:var(--ui)}
.cookie.on{transform:translate(-50%,0)}.cookie h4{font:800 1.15rem var(--disp);margin:0 0 .4rem;color:var(--head)}.cookie p{font-size:.9rem;line-height:1.55;margin:.3rem 0 .9rem;color:var(--soft)}.cookie .btns{margin:0}
.cookie .btn{padding:.6rem 1.2rem;font-size:.88rem}
.legal h2{margin-top:2rem}.legal p,.legal li{font-size:1rem}.legal table{border-collapse:collapse;width:100%;font:.9rem var(--ui);margin:1rem 0}.legal td,.legal th{border:1px solid var(--line);padding:.6rem;text-align:left;vertical-align:top}.legal th{background:var(--paper)}
.enbar{background:var(--gold);color:#1d1308;text-align:center;font:600 .82rem var(--ui);padding:.4rem}
.chk{display:flex;gap:.6rem;align-items:flex-start;font:.88rem/1.4 var(--ui)}.chk input{width:20px;height:20px;margin-top:.15rem;accent-color:var(--burg)}
.hp{position:absolute;left:-9999px}
.status{font:600 .95rem var(--ui);min-height:1.4em}.status.ok{color:#1d6b3a}.status.ko{color:var(--burg)}
/* THEMES */
[data-theme=dark]{--ivory:#15100b;--paper:#211912;--ink:#efe5cf;--soft:#b9a98d;--line:#42352a;--head:#f4e6c6;--burg:#e5808c;--field:#2b2118;--note:#2e2418;--hov:#3a2d20;--rule:#cdbb97;color-scheme:dark}
[data-theme=dark] .btn{color:#1a0f08}[data-theme=dark] .btn:hover{color:#1a0f08;background:var(--gold);border-color:var(--gold)}
[data-theme=dark] .opt.good{background:#1d3a28}[data-theme=dark] .opt.bad{background:#47202a}
[data-theme=dark] .moves button.on,[data-theme=dark] .seg button[aria-pressed=true]{color:#1a0f08}
[data-theme=sepia]{--ivory:#e8d6ae;--paper:#f1e3c0;--line:#c9b27f;--field:#f7ecd0;--note:#ddc995}
[data-font=read]{--serif:'Atkinson Hyperlegible','Verdana',sans-serif;--disp:'Atkinson Hyperlegible','Verdana',sans-serif}
[data-font=read] body{letter-spacing:.02em;line-height:1.9}[data-font=read] .cols{text-align:left;hyphens:none}
[data-motion=off] *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
/* LOGO */
.mk{height:38px;width:auto;display:block;flex:none}
.brand .mk{color:var(--gold);height:40px}
.mast-logo{color:var(--burg);margin:.4rem 0 0}.mast-logo .mk{height:64px;margin:0 auto}
footer h4.fb{display:flex;align-items:center;gap:.6rem}footer h4.fb .mk{height:30px;color:var(--gold)}
@media(max-width:480px){.brand .bt{font-size:1rem}}
/* AUTH */
html.auth-pending body{visibility:hidden}
.pub .menu{display:none!important}
.authcard{max-width:480px;margin:3rem auto;background:var(--paper);border:1px solid var(--rule);border-top:6px solid var(--burg);padding:1.6rem;box-shadow:0 14px 36px rgba(44,27,16,.15)}
.authcard h1{font:900 1.9rem var(--disp);color:var(--head);margin:.2rem 0 .3rem}.authcard .sub{font:.92rem var(--ui);color:var(--soft);margin:0 0 1rem}
.authcard form{display:grid;gap:.7rem}.authcard label{font:600 .88rem var(--ui)}.authcard input[type=email],.authcard input[type=password],.authcard input[type=text]{font:1rem var(--ui);padding:.8rem;border:2px solid var(--line);border-radius:6px;background:var(--field);color:var(--ink);width:100%}
.authcard .seg{margin-bottom:1rem}.authcard .link{background:none;border:0;color:var(--burg);font:600 .88rem var(--ui);text-decoration:underline;cursor:pointer;padding:0;justify-self:start}
.authcard [hidden],#cfgwarn[hidden]{display:none!important}
#cfgwarn{font:.85rem/1.5 var(--ui);background:#fff3cd;color:#4a3a00;border:1px solid #e0c36b;padding:.7rem .9rem;margin-bottom:1rem}
/* ===== V3 : animations, tiroir, pages compte/paramètres, échiquier SVG ===== */
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--burg),var(--gold));z-index:120;transition:width .1s}
.nav{transition:box-shadow .3s}.nav.scrolled{box-shadow:0 8px 24px rgba(0,0,0,.35)}
.menu a{position:relative}.menu a::after{content:"";position:absolute;left:.6rem;right:.6rem;bottom:.25rem;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .25s}.menu a:hover::after{transform:scaleX(1)}.menu a[aria-current=page]::after{display:none}
.brand .mk{transition:transform .5s}.brand:hover .mk{transform:rotate(-8deg) scale(1.08)}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.in{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}.d1{animation-delay:.12s}.d2{animation-delay:.24s}
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}.rv.seen{opacity:1;transform:none}.rv.d1{transition-delay:.12s}.rv.d2{transition-delay:.24s}
.hero .fig.tall{animation:rise .9s .2s both}
.mast-logo .mk{animation:floaty 5s ease-in-out infinite}
.card{transition:transform .3s,box-shadow .3s}.card .go{transition:letter-spacing .3s}.card:hover .go{letter-spacing:.14em}
.btn{transition:transform .2s,background .2s,box-shadow .2s}.btn:active{transform:scale(.97)}
.tl{transition:transform .3s,box-shadow .3s}.tl:hover{transform:translateX(6px);box-shadow:0 8px 20px rgba(44,27,16,.15)}
.stat{transition:transform .3s}.stat:hover{transform:translateY(-4px)}
.sq .pc{width:86%;height:86%;filter:drop-shadow(0 1.5px 1px rgba(0,0,0,.35));transition:transform .2s;position:relative;z-index:1}.sq:hover .pc{transform:scale(1.07)}
.pc *{stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}
.pw *{fill:#fbf7ec;stroke:#1d140c}.pb *{fill:#2b2017;stroke:#0b0703}
.pc .det{fill:none;stroke-width:1.5}.pw .det{stroke:#1d140c}.pb .det{stroke:#e8dcc2}.pc .cross{stroke-width:2.6}.pb .cross{stroke:#0b0703}
.pw .eye{fill:#1d140c}.pb .eye{fill:#e8dcc2;stroke:none}
.sq{font-size:0}.sq i{font-size:.58rem}
.note.has{background:var(--note);border-left-width:6px;font-size:.98rem}
.jump{font:600 .8rem var(--ui);background:var(--walnut);color:#f4e8cc;border:0;border-radius:99px;padding:.4rem .9rem;cursor:pointer;transition:.2s}.jump:hover{background:var(--burg);transform:translateY(-2px)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin:1rem 0 2rem}
.stp{background:var(--paper);border:1px solid var(--rule);border-top:4px solid var(--gold);padding:1rem;position:relative;display:flex;flex-direction:column;gap:.4rem}
.stp .no{font:900 1.8rem var(--disp);color:var(--burg);line-height:1}.stp h4{font:700 1.02rem var(--disp);margin:0;color:var(--head)}.stp p{font:.88rem/1.5 var(--ui);color:var(--soft);margin:0 0 .4rem;flex:1}.stp .jump{align-self:flex-start}
.fiche{list-style:none;padding:0!important;margin:0}.fiche li{display:flex;gap:.8rem;border-bottom:1px dotted var(--soft);padding:.4rem 0;font:.92rem var(--ui)}.fiche b{min-width:84px;color:var(--burg)}
.analysis{margin-top:2rem}.fig .ot{display:block;font-size:.78rem;color:var(--soft)}
.wrap.narrow{max-width:820px}
/* tiroir */
.hb{display:grid;gap:5px;align-content:center;justify-items:center;width:46px;height:42px;padding:0}.hb span{display:block;width:22px;height:2px;background:currentColor;border-radius:2px;transition:.3s}.hb.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hb.open span:nth-child(2){opacity:0}.hb.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.noscroll{overflow:hidden}
.navav{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;overflow:hidden;border:2px solid var(--gold);font:700 .9rem var(--ui);color:#fff;text-decoration:none;flex:none;transition:transform .2s}.navav:hover{transform:scale(1.08)}.navav[hidden]{display:none}.av img,.navav img{width:100%;height:100%;object-fit:cover;display:block}
.av{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;overflow:hidden;background:var(--walnut);color:#f4e8cc;font:700 1rem var(--ui);flex:none;border:2px solid var(--gold)}.av.big{width:110px;height:110px;font-size:2rem}
.av .mk{height:26px;color:var(--gold)}
.dh{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.duser{display:flex;gap:.8rem;align-items:center;min-width:0}.duser b{display:block;font:700 1.02rem var(--ui);color:var(--head)}.duser small{display:block;font:.8rem var(--ui);color:var(--soft);word-break:break-all}
.dl.big{margin-top:.5rem}.dl.big li a.di{display:flex;gap:.9rem;align-items:center;padding:.85rem .6rem;border-radius:10px;border:0;transition:background .2s,transform .2s}.dl.big li a.di:hover{background:var(--note);transform:translateX(4px);color:var(--ink)}
.di .ic{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--walnut);color:var(--gold);flex:none}.di .ic svg,.btn .ic svg{width:20px;height:20px}.di b{display:block;font:700 .98rem var(--ui);color:var(--ink)}.di small{display:block;font:.78rem var(--ui);color:var(--soft);margin-top:2px}
.btn.full{width:100%;margin-top:1.2rem;display:flex;justify-content:center;align-items:center;gap:.5rem}.btn.full[hidden]{display:none}.btn .ic{display:inline-grid}
.drawer{padding:1.2rem 1.1rem 2rem}.drawer h3{margin-top:.6rem}
.cookie .cl{align-self:center;font:600 .85rem var(--ui)}
footer .fl{font:.88rem var(--ui);margin-top:1rem}footer .fl a[aria-current]{color:var(--gold);font-weight:700}footer h4.fb .mk{height:28px}
/* pages */
.srow{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.4rem 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.srow h3{margin:0 0 .2rem;font:700 1.15rem var(--disp);color:var(--head)}.srow p{margin:0;font:.9rem var(--ui);color:var(--soft);max-width:34em}.sctl{min-width:240px}.cstate{margin-top:.5rem!important;font-weight:600!important;color:var(--head)!important}
.settings .seg button{min-width:80px}
.sw{position:relative;display:inline-block;width:54px;height:30px}.sw input{opacity:0;width:100%;height:100%;position:absolute;inset:0;margin:0;cursor:pointer;z-index:1}.sw span{position:absolute;inset:0;background:var(--line);border-radius:99px;transition:.25s}.sw span::after{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;background:#fff;border-radius:50%;transition:.25s;box-shadow:0 2px 4px rgba(0,0,0,.3)}.sw input:checked+span{background:var(--burg)}.sw input:checked+span::after{transform:translateX(24px)}.sw input:focus-visible+span{outline:3px solid var(--gold)}
.acard{background:var(--paper);border:1px solid var(--rule);border-top:5px solid var(--gold);padding:1.5rem;margin-bottom:1.4rem;display:block}.acard h2{font-size:1.25rem;border:0;padding:0;margin:0 0 1rem;text-transform:none}.acard h2::after{display:none}
.acard label{display:block;font:600 .88rem var(--ui);margin:.8rem 0 .3rem}.acard input[type=text],.acard input[type=email],.acard input[type=password],.acard input:not([type]){font:1rem var(--ui);padding:.75rem;border:2px solid var(--line);border-radius:6px;background:var(--field);color:var(--ink);width:100%}
.acard .two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:600px){.acard .two{grid-template-columns:1fr}}
.acard .btn{margin-top:1rem}.acard.danger{border-top-color:var(--burg)}.muted{color:var(--soft);font:.88rem var(--ui)}
.photorow{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.photorow .btns{margin-top:.6rem}.photorow .btn{margin-top:0}
.welcome{background:var(--gold);color:#1d1308;font:600 1rem var(--ui);padding:1rem 1.2rem;margin-bottom:1.4rem;animation:rise .6s both}.welcome[hidden]{display:none}
/* quiz + commentaires */
.qtags{display:flex;gap:.5rem;flex-wrap:wrap}.tag.alt{background:var(--walnut)}.opts{margin-top:.8rem}.qres{text-align:center;font-family:var(--ui)}.qgoal{font:.9rem var(--ui);color:var(--soft);margin-top:1rem}
.cmme{display:flex;align-items:center;gap:.8rem}.cmme .av{width:44px;height:44px}.cmme b{font:700 1rem var(--ui)}
form.cm label{font:600 .9rem var(--ui)}form.cm textarea{resize:vertical;min-height:110px}
.clist{margin-top:2rem}.cmt{display:flex;gap:.9rem;background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--gold);padding:1rem;margin:.9rem 0;border-radius:4px;animation:rise .5s both}.cmt .av{width:44px;height:44px;font-size:.95rem}
.cmh{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap}.cmh b{font:700 .98rem var(--ui);color:var(--head)}.cmh small{color:var(--soft);font:.78rem var(--ui)}.cmh .link{margin-left:auto;background:none;border:0;color:var(--burg);font:600 .78rem var(--ui);cursor:pointer;text-decoration:underline}
.cmt p{margin:.3rem 0 0;font:.97rem/1.55 var(--ui);white-space:pre-wrap;word-break:break-word}
section.alt{background:var(--paper);border-block:1px solid var(--rule)}
.authcard .kicker{color:var(--burg)}

/* ===== V4 : lecteurs, profils, messages ===== */
.bdg{display:inline-grid;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;margin-left:.35rem;border-radius:99px;background:var(--burg,#8b1a2b);color:#fff;font:700 .72rem var(--ui);font-style:normal;vertical-align:middle}
.bdg[hidden]{display:none}
.navav{position:relative}.navav.hasmsg::after{content:"";position:absolute;top:-2px;right:-2px;width:11px;height:11px;border-radius:50%;background:#d33a4e;border:2px solid #2c1b10}
.dsearch{width:100%;max-width:520px;margin:0 0 1.4rem;padding:.8rem 1rem;border:1.5px solid var(--line);border-radius:8px;background:var(--paper);color:inherit;font:1rem var(--ui)}
.dirlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.pcard{display:flex;gap:1rem;align-items:center;padding:1rem 1.1rem;background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:6px;color:inherit;text-decoration:none;transition:transform .2s,box-shadow .2s}
.pcard:hover,.pcard:focus-visible{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.15)}
.pcard b{font:700 1.05rem var(--ui);color:var(--head)}.pcard p{margin:.2rem 0 0;font:.88rem/1.4 var(--ui);color:var(--soft);word-break:break-word}
.pfcard{display:flex;gap:2rem;align-items:flex-start;background:var(--paper);border:1px solid var(--line);border-top:5px solid var(--gold);padding:2rem;border-radius:6px}
.av.huge{width:150px;height:150px;font-size:3.2rem;border-width:4px}
.pfcard h2{margin:0 0 .2rem}.pfcard h3{margin:1rem 0 .3rem;font:700 .8rem var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
.pfcard .bio{white-space:pre-wrap;word-break:break-word;line-height:1.65;margin:0 0 1.2rem}
.btn.sm{padding:.45rem .9rem;font-size:.85rem}
.msgapp{display:grid;grid-template-columns:320px 1fr;min-height:540px;background:var(--paper);border:1px solid var(--line);border-top:5px solid var(--gold);border-radius:6px;overflow:hidden}
.mlist{border-right:1px solid var(--line);display:flex;flex-direction:column;max-height:680px;overflow:auto}
.mlh{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--line)}.mlh h2{margin:0;font-size:1.1rem}
.conv{display:flex;gap:.7rem;align-items:center;width:100%;padding:.8rem 1rem;background:none;border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;color:inherit;font:inherit}
.conv:hover,.conv.on{background:rgba(201,152,43,.16)}.conv .av{width:42px;height:42px;font-size:.95rem}
.cinfo{display:flex;flex-direction:column;min-width:0;flex:1}.cinfo b{font:700 .95rem var(--ui);color:var(--head)}.cinfo small{font:.8rem var(--ui);color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mthread{display:flex;flex-direction:column;min-width:0}.mempty{margin:auto;padding:2rem;text-align:center;color:var(--soft);font:1rem var(--ui)}
.mpane{display:flex;flex-direction:column;flex:1;min-height:0;max-height:680px}.mpane[hidden]{display:none}
.mph{display:flex;align-items:center;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid var(--line)}.mph .link{display:none}
.mpl{display:flex;align-items:center;gap:.7rem;color:var(--head);text-decoration:none}.mpl .av{width:42px;height:42px;font-size:.95rem}
.mmsgs{flex:1;overflow:auto;padding:1rem;display:flex;flex-direction:column;gap:.55rem;min-height:300px}
.bub{max-width:78%;padding:.6rem .85rem;border-radius:14px;font:.95rem/1.45 var(--ui);word-break:break-word}.bub p{margin:0;white-space:pre-wrap}.bub small{display:block;margin-top:.25rem;font-size:.7rem;opacity:.65}
.bub.me{align-self:flex-end;background:var(--walnut,#2c1b10);color:#f6ecd3;border-bottom-right-radius:3px}.bub.them{align-self:flex-start;background:rgba(201,152,43,.2);border-bottom-left-radius:3px}
.center{text-align:center;margin:auto}
#mform{display:flex;gap:.6rem;padding:.8rem 1rem;border-top:1px solid var(--line)}#mform textarea{flex:1;resize:none;padding:.65rem .8rem;border:1.5px solid var(--line);border-radius:8px;background:var(--bg,#fff);color:inherit;font:.97rem var(--ui)}
.mnote{padding:0 1rem 1rem;margin:0;font-size:.8rem}.mpane .status{padding:0 1rem}
@media(max-width:760px){
 .pfcard{flex-direction:column;align-items:center;text-align:center;padding:1.4rem}.av.huge{width:120px;height:120px}
 .msgapp{grid-template-columns:1fr}.msgapp .mthread{display:none}.msgapp.open .mthread{display:flex}.msgapp.open .mlist{display:none}
 .mph .link{display:inline}.bub{max-width:90%}
}
.mph .link{background:none;border:0;color:var(--burg,#8b1a2b);font:600 .9rem var(--ui);cursor:pointer;text-decoration:underline;padding:0}
.mph .link{background:none;border:0;color:var(--burg,#8b1a2b);font:600 .9rem var(--ui);cursor:pointer;text-decoration:underline;padding:0}

/* ===== V5 : messagerie (liste de lecteurs + conversation) ===== */
.sronly{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pg-msg footer,.pg-msg .progress{display:none!important}.pg-msg main{padding:0}
.mg{display:grid;grid-template-columns:380px minmax(0,1fr);height:calc(100vh - 66px);min-height:520px;max-width:1500px;margin:0 auto;background:var(--paper);border-left:1px solid var(--line);border-right:1px solid var(--line);color:var(--ink);font-family:var(--ui)}
.mg button,.mg input,.mg textarea{font-family:inherit}
.mgl{display:flex;flex-direction:column;min-height:0;min-width:0;border-right:1px solid var(--line)}
.mgh{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.3rem;border-bottom:1px solid var(--line)}
.mgh h2{margin:0;font:700 1.3rem var(--ui);color:var(--head,var(--ink));letter-spacing:0}.mgh h2::before,.mgh h2::after{display:none}
.mgh p{margin:.15rem 0 0;font:.85rem/1.35 var(--ui);color:var(--soft)}
.mgback{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--hov,rgba(0,0,0,.06));color:var(--ink);text-decoration:none;transition:background .2s}.mgback:hover{background:var(--line)}.mgback svg{width:20px;height:20px}
.mgs{position:relative;padding:.8rem 1.1rem;border-bottom:1px solid var(--line)}
.mgs svg{position:absolute;left:1.9rem;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--soft);pointer-events:none}
.mgs input{width:100%;padding:.65rem .9rem .65rem 2.5rem;border:1px solid var(--line);border-radius:99px;background:var(--field,var(--ivory));color:var(--ink);font:.92rem var(--ui);outline:none}
.mgs input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(192,145,47,.22)}
.mnotif{margin:.6rem 1.1rem 0;padding:.5rem .8rem;border-radius:8px;border:1px dashed var(--gold);background:transparent;color:var(--burg);font:600 .82rem var(--ui);cursor:pointer}.mnotif[hidden]{display:none}.mnotif:hover:not(:disabled){background:rgba(192,145,47,.12)}
.mglist{flex:1;overflow:auto;min-height:0}
.mg .conv{display:flex;gap:.9rem;align-items:center;width:100%;padding:.8rem 1.3rem;margin:0;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:left;cursor:pointer;color:var(--ink);font:inherit;position:relative}
.mg .conv:hover{background:var(--hov,rgba(0,0,0,.04))}.mg .conv.on{background:rgba(192,145,47,.16)}.mg .conv.on::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold)}
.mg .av{display:grid;place-items:center;overflow:hidden;border-radius:50%;border:0;color:#fff;font:700 1rem var(--ui);flex:none}.mg .av img{width:100%;height:100%;object-fit:cover;display:block}
.mg .conv .av{width:46px;height:46px}
.cinfo{display:flex;flex-direction:column;min-width:0;flex:1;gap:.1rem}.ctop{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}
.mg .cinfo b{font:600 .98rem var(--ui);color:var(--head,var(--ink));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ctop time{font:.72rem var(--ui);color:var(--soft);flex:none}
.mg .cinfo small{font:.82rem var(--ui);color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mg .conv.unread b,.mg .conv.unread small{color:var(--head,var(--ink));font-weight:700}
.bdg{display:inline-grid;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .4rem;margin-left:.35rem;border-radius:99px;background:var(--burg);color:#fff;font:700 .72rem var(--ui);font-style:normal;vertical-align:middle}.bdg[hidden]{display:none}
.mhint{padding:1rem 1.3rem;color:var(--soft);font:.9rem var(--ui)}
.mgr{display:flex;flex-direction:column;min-width:0;min-height:0}
.mgempty{margin:auto;text-align:center;color:var(--soft);padding:2rem}.mgempty svg{width:64px;height:64px;opacity:.55;margin-bottom:.8rem}.mgempty p{margin:0;font:1rem var(--ui)}
.mpane{display:flex;flex-direction:column;flex:1;min-height:0}.mpane[hidden]{display:none}
.mph{display:flex;align-items:center;gap:.9rem;padding:.75rem 1.4rem;border-bottom:1px solid var(--line);flex:none}
.mph .mback{display:none}
.mpl{display:flex;align-items:center;gap:.9rem;color:inherit;text-decoration:none;min-width:0}.mpl .av{width:46px;height:46px}
.mpn{display:flex;flex-direction:column;min-width:0}.mpn b{font:700 1.05rem var(--ui);color:var(--head,var(--ink))}.mpn small{font:.85rem var(--ui);color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mprof{margin-left:auto;flex:none;font:600 .85rem var(--ui);color:var(--burg);text-decoration:none;padding:.4rem .8rem;border:1px solid var(--line);border-radius:99px}.mprof:hover{background:var(--hov,rgba(0,0,0,.05))}
.mmsgs{flex:1;overflow:auto;padding:1rem 0 .6rem;display:flex;flex-direction:column;min-height:0}
.mstart{padding:1.5rem 1.4rem;margin:auto 0 0}.mstart .av{width:84px;height:84px;margin:0 0 .7rem;font-size:2rem}.mstart h3{margin:0;font:800 1.6rem var(--ui);color:var(--head,var(--ink))}.mstart p{color:var(--soft);font:.95rem var(--ui);margin:.3rem 0 0}
.dsep{display:flex;align-items:center;gap:.7rem;margin:1rem 1.4rem .3rem;color:var(--soft);font:600 .74rem var(--ui)}.dsep::before,.dsep::after{content:"";flex:1;height:1px;background:var(--line)}
.mrow{display:flex;gap:.95rem;padding:.15rem 1.4rem;margin-top:1rem;position:relative;align-items:flex-start}.mrow:hover{background:var(--hov,rgba(0,0,0,.035))}.mrow.cont{margin-top:0}
.mrow .av{width:42px;height:42px;font-size:.95rem;margin-top:2px}.mrow.cont .av{visibility:hidden;height:0;margin:0}
.mbody{min-width:0;flex:1}.mhead{display:flex;align-items:baseline;gap:.55rem}.mhead b{font:700 1rem var(--ui);color:var(--head,var(--ink))}.mrow.mine .mhead b{color:var(--burg)}.mhead time{font:.74rem var(--ui);color:var(--soft)}
.mbody p{margin:0!important;font:1rem/1.5 var(--ui);color:var(--ink);white-space:pre-wrap;word-break:break-word}
.mrow .hov{position:absolute;left:1.4rem;width:42px;text-align:center;font:.65rem var(--ui);color:var(--soft);opacity:0;top:.45rem}.mrow:hover .hov{opacity:1}
.mcomp{display:flex;align-items:center;gap:.7rem;margin:.4rem 1.4rem 1rem;flex:none}
.mcomp textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:26px;background:var(--field,var(--ivory));color:var(--ink);font:1rem/1.4 var(--ui);padding:.8rem 1.2rem;max-height:140px;outline:none;box-shadow:none}
.mcomp textarea::placeholder{color:var(--soft)}.mcomp textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(192,145,47,.22)}
.send{flex:none;width:46px;height:46px;border-radius:50%;border:0;background:var(--burg);color:#fff;display:grid;place-items:center;cursor:pointer;transition:transform .15s,filter .15s}.send:hover{filter:brightness(1.12);transform:scale(1.05)}.send svg{width:22px;height:22px;margin-left:2px}
.mpane .status{padding:0 1.4rem;margin:-.5rem 0 .6rem;font-size:.82rem}
.toast{position:fixed;right:1rem;bottom:1rem;z-index:90;max-width:340px;display:flex;flex-direction:column;gap:.15rem;padding:.8rem 1rem;background:#2c1b10;color:#f6ecd3;border-left:5px solid var(--gold);border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.4);text-decoration:none;font:.9rem var(--ui);transform:translateY(20px);opacity:0;transition:transform .35s,opacity .35s}
.toast.in{transform:none;opacity:1}.toast b{color:#e0b24a}.toast span{opacity:.9;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.navav{position:relative}.navav.hasmsg::after{content:"";position:absolute;top:-2px;right:-2px;width:11px;height:11px;border-radius:50%;background:#e5484d;border:2px solid #2c1b10}
@media(max-width:900px){.mg{grid-template-columns:320px minmax(0,1fr)}}
@media(max-width:760px){
 .mg{grid-template-columns:1fr;height:calc(100vh - 66px);border:0}.mg .mgr{display:none}.mg.open .mgr{display:flex}.mg.open .mgl{display:none}.mgl{border-right:0}
 .mph .mback{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:0;background:var(--hov,rgba(0,0,0,.06));color:var(--ink);cursor:pointer;flex:none}.mph .mback svg{width:20px;height:20px}.mprof{display:none}
 .mph{padding:.6rem .9rem}.mrow{padding:.15rem .9rem}.mcomp{margin:.4rem .9rem .8rem}.toast{left:1rem;right:1rem;max-width:none}
}
@media(prefers-reduced-motion:reduce){.toast{transition:none}}
.mg .mpane{max-height:none}.mg .mmsgs{min-height:0}.mg #mform.mcomp{border-top:0;padding:0;gap:.7rem}
.mgh h2{text-transform:none;border:0!important;padding:0;font-size:1.3rem}.mgh h2::before,.mgh h2::after{display:none!important;content:none}
.mgs input,.mcomp textarea{background:rgba(0,0,0,.055)!important;border:1px solid transparent!important}
[data-theme=dark] .mgs input,[data-theme=dark] .mcomp textarea{background:rgba(255,255,255,.08)!important}
.mgs input:focus,.mcomp textarea:focus{border-color:var(--gold)!important}
.mg .mnote{display:none}
.mg .mpane{margin:0;flex:1 1 auto;height:100%;align-self:stretch}
.mg section.mgr,.mg .mgr{padding:0}
.mg .mstart{margin:auto;padding:1rem;text-align:center}.mg .mstart p{margin:0;font:.95rem var(--ui);color:var(--soft)}
.mg .av img{width:100%!important;height:100%!important;max-width:none;object-fit:cover;border-radius:50%}
.mg .av{max-width:100%}
.mg .av{position:relative}.mg .av img{position:absolute;inset:0}
/* assistant IA */
.mg .conv.bot{background:linear-gradient(90deg,rgba(192,145,47,.14),transparent)}
.botbadge{font:700 .62rem var(--ui);font-style:normal;letter-spacing:.06em;padding:.1rem .38rem;border-radius:4px;background:var(--gold);color:#2c1b10;vertical-align:middle}
.mg .mrow.isbot .mhead b{color:var(--gold)}
.mg .botstart{margin:auto;max-width:520px}.mg .botstart p{font-size:1rem;line-height:1.55;color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:1rem}
.chips button{padding:.55rem 1rem;border-radius:99px;border:1px solid var(--line);background:transparent;color:var(--ink);font:.88rem var(--ui);cursor:pointer;transition:background .2s,border-color .2s}
.chips button:hover{background:rgba(192,145,47,.16);border-color:var(--gold)}
.dots{display:flex;gap:5px;margin:.5rem 0!important}.dots i{width:8px;height:8px;border-radius:50%;background:var(--soft);animation:dotb 1.2s infinite ease-in-out}.dots i:nth-child(2){animation-delay:.18s}.dots i:nth-child(3){animation-delay:.36s}
@keyframes dotb{0%,70%,100%{transform:translateY(0);opacity:.4}35%{transform:translateY(-5px);opacity:1}}
.mclear{margin-left:auto;background:none;border:1px solid var(--line);border-radius:99px;padding:.4rem .8rem;color:var(--soft);font:600 .82rem var(--ui);cursor:pointer}.mclear:hover{background:var(--hov,rgba(0,0,0,.05))}.mclear[hidden]{display:none}
.mbotnote{margin:-.4rem 1.4rem .7rem;font:.74rem var(--ui);color:var(--soft)}.mbotnote[hidden]{display:none}
.mprof[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.dots i{animation:none}}

/* pièces jointes */
.mcomp .attach{flex:none;width:42px;height:42px;border-radius:50%;border:0;background:transparent;color:var(--soft);display:grid;place-items:center;cursor:pointer}.mcomp .attach:hover{color:var(--gold);background:rgba(0,0,0,.06)}.mcomp .attach svg{width:22px;height:22px}
.mpend{display:flex;align-items:center;gap:.6rem;margin:.2rem 1.4rem 0;padding:.45rem .8rem;border-radius:12px;background:rgba(0,0,0,.06);font:.9rem var(--ui);color:var(--ink);justify-content:space-between}.mpend span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mpend button{border:0;background:none;color:var(--ink);font-size:1.3rem;cursor:pointer;line-height:1}
[data-theme=dark] .mpend,[data-theme=dark] .mcomp .attach:hover{background:rgba(255,255,255,.1)}
.mfile{margin-top:.3rem}.mfile img{display:block;max-width:min(340px,100%);max-height:300px;border-radius:12px;cursor:zoom-in;background:rgba(0,0,0,.06);min-height:60px}
.fcard{display:inline-flex;align-items:center;gap:.7rem;padding:.6rem .9rem;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);max-width:340px}.fcard:hover{border-color:var(--gold)}
.fic{flex:none;width:40px;height:40px;border-radius:10px;background:var(--burg);color:#fff;display:grid;place-items:center;font:700 .7rem var(--ui)}.ftx{display:grid;min-width:0}.ftx b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}.ftx small{color:var(--soft)}
@media(max-width:760px){.mpend{margin:.2rem .9rem 0}}

/* finitions messagerie */
.mcomp textarea{overflow-y:auto;scrollbar-width:none}.mcomp textarea::-webkit-scrollbar{display:none}
.mmsgs{scrollbar-width:thin;scrollbar-color:rgba(192,145,47,.45) transparent}
.mmsgs::-webkit-scrollbar{width:8px}.mmsgs::-webkit-scrollbar-track{background:transparent}.mmsgs::-webkit-scrollbar-thumb{background:rgba(192,145,47,.4);border-radius:8px}.mmsgs::-webkit-scrollbar-thumb:hover{background:var(--gold)}
.mglist,.conv-list,#convs{scrollbar-width:thin;scrollbar-color:rgba(192,145,47,.4) transparent}
.thinking{margin:.15rem 0 0;font-style:italic;background:linear-gradient(90deg,var(--soft) 0%,var(--gold) 50%,var(--soft) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shim 1.6s linear infinite}
@keyframes shim{from{background-position:200% 0}to{background-position:-200% 0}}
.send.stop svg{margin-left:0;width:20px;height:20px}

.mbotnote.warn{color:var(--burg);font-weight:600}

.think{display:flex;align-items:center;gap:.7rem;margin-top:.25rem}
.think .thinking{margin:0}
.tboard{position:relative;display:flex;flex:none;border-radius:6px;overflow:hidden;border:1px solid var(--line)}
.tboard i{width:24px;height:24px;background:#e8d5a8}.tboard i:nth-child(even){background:#a67c3d}
.tboard b{position:absolute;left:0;top:-2px;width:24px;height:24px;display:grid;place-items:center;font-size:20px;line-height:1;color:#2a1a0a;animation:knight 2.4s ease-in-out infinite}
@keyframes knight{0%{transform:translate(0,0)}8%{transform:translate(12px,-7px)}16%,25%{transform:translate(24px,0)}33%{transform:translate(36px,-7px)}41%,50%{transform:translate(48px,0)}58%{transform:translate(60px,-7px)}66%,75%{transform:translate(72px,0)}83%{transform:translate(36px,-12px)}92%,100%{transform:translate(0,0)}}

.thinking{background:none!important;-webkit-text-fill-color:initial;color:var(--gold);font-style:italic;font-weight:600;letter-spacing:.02em;animation:none!important;display:inline-flex;white-space:pre}
.thinking span{display:inline-block;animation:asc 1.6s ease-in-out infinite}
@keyframes asc{0%,60%,100%{transform:translateY(0);opacity:.55}30%{transform:translateY(-6px);opacity:1;text-shadow:0 0 10px rgba(192,145,47,.55)}}

.think .tboard{display:none}
.think{margin-top:.15rem}

/* ---------- jouer contre le bot ---------- */
.playbox{display:grid;grid-template-columns:minmax(300px,640px) minmax(280px,1fr);gap:2rem;align-items:start;margin:1rem 0 2rem}
@media(max-width:900px){.playbox{grid-template-columns:1fr}}
.pleft{position:relative}.pleft .board{margin:.4rem 0}
.pplayer{display:flex;align-items:center;gap:.6rem;font:600 1rem var(--ui);color:var(--head);padding:.2rem .2rem}.pplayer .pi{width:26px;height:26px;display:grid;place-items:center;color:var(--burg)}.pplayer .pi svg{width:24px;height:24px}
.gcard{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:1rem 1.2rem;margin-bottom:1rem}
.pstat{min-height:1.6rem;font:600 1.05rem var(--ui);color:var(--head)}.pstat.win{color:#1f7a3f}.pstat.lose{color:var(--burg)}.pstat.warn{color:#b3561b}.pstat.draw{color:var(--soft)}
.pstat .thinking{font-size:1.1rem}
.plab{font:600 .8rem var(--ui);text-transform:uppercase;letter-spacing:.08em;color:var(--soft);margin:0 0 .3rem;display:block}
.plv{display:flex;align-items:baseline;gap:.7rem;margin-bottom:.5rem}.plv b{font:800 2.2rem var(--disp);color:var(--burg)}.plv span{font-style:italic;color:var(--gold)}
#plvl{width:100%;accent-color:var(--gold);cursor:pointer}
.pscale{display:flex;justify-content:space-between;font:.78rem var(--ui);color:var(--soft)}
.pcols{display:flex;gap:.5rem;flex-wrap:wrap}.pcols label{cursor:pointer;position:relative}.pcols input{position:absolute;opacity:0;pointer-events:none}
.pcols span{display:inline-block;padding:.45rem .9rem;border:1px solid var(--line);border-radius:99px;font:600 .9rem var(--ui);transition:.15s}
.pcols input:checked+span{background:var(--burg);border-color:var(--burg);color:#fff}.pcols input:focus-visible+span{outline:2px solid var(--gold)}
.pbtns{display:flex;flex-wrap:wrap;gap:.5rem}.pbtns .btn{flex:1 1 auto;white-space:nowrap}.pbtns .btn:disabled{opacity:.45;cursor:not-allowed}
.pmoves{display:grid;grid-template-columns:2.2rem 1fr 1fr;gap:.15rem .4rem;max-height:200px;overflow:auto;font:.95rem var(--ui);scrollbar-width:thin;scrollbar-color:rgba(192,145,47,.4) transparent}
.pmoves .n{color:var(--soft)}.pmoves button{all:unset;color:var(--ink);cursor:default}.mnone{color:var(--soft)}
.pnote{font-size:.82rem;color:var(--soft);line-height:1.5;margin:.3rem 0}.pnote a{color:inherit;text-decoration:underline}
.playsec .sq.mine{cursor:grab}.playsec .sq.mine:active{cursor:grabbing}.playsec .sq{touch-action:none}
.playsec .sq.dot::after{content:"";position:absolute;width:28%;height:28%;border-radius:50%;background:rgba(40,30,10,.32);z-index:2}
.playsec .sq.cap::after{content:"";position:absolute;inset:6%;border-radius:50%;border:5px solid rgba(40,30,10,.32);z-index:2}
.playsec .sq{cursor:pointer}
.ppromo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;display:flex;align-items:center;gap:.4rem;background:var(--paper);border:2px solid var(--gold);border-radius:14px;padding:.7rem .9rem;box-shadow:0 14px 40px rgba(0,0,0,.4)}
.ppromo b{font:600 .85rem var(--ui);margin-right:.3rem}.ppromo button{width:58px;height:58px;border:1px solid var(--line);border-radius:10px;background:#c9a56a;cursor:pointer;padding:4px}.ppromo button:hover{background:var(--gold)}.ppromo button svg{width:100%;height:100%}
.ppromo .pcancel{width:34px;height:34px;background:none;border:0;font-size:1.1rem}
.ppromo[hidden]{display:none}

/* animations de fin */
.endfx{position:absolute;inset:0;z-index:6;overflow:hidden;display:grid;place-items:center;cursor:pointer;background:radial-gradient(circle at 50% 45%,rgba(20,12,6,.18),rgba(20,12,6,.55))}
.endfx.lose{background:rgba(20,12,6,.62)}
.ribbon{position:relative;z-index:2;animation:ribin .7s cubic-bezier(.2,1.4,.4,1) both}
.ribbon span{display:block;padding:.9rem 3.4rem;font:900 clamp(1.5rem,5.5vw,2.6rem) var(--disp);letter-spacing:.14em;text-transform:uppercase;color:#fff;text-align:center;filter:drop-shadow(0 10px 18px rgba(0,0,0,.45));clip-path:polygon(0 0,100% 0,calc(100% - 22px) 50%,100% 100%,0 100%,22px 50%)}
.win .ribbon span{background:linear-gradient(180deg,#e0a63a,#b07d1c);color:#2c1b10;text-shadow:0 1px 0 rgba(255,255,255,.35)}
.lose .ribbon span{background:linear-gradient(180deg,#5a1d27,#8b1f2f)}
@keyframes ribin{from{transform:scale(.3) rotate(-6deg);opacity:0}to{transform:none;opacity:1}}
.cf{position:absolute;top:-24px;z-index:1;animation:cfall linear forwards}
@keyframes cfall{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--dx),calc(100vh)) rotate(var(--r));opacity:.9}}
.cryrow{position:absolute;left:0;right:0;bottom:12%;display:flex;justify-content:center;gap:clamp(.4rem,3vw,1.6rem);z-index:2}
.cp{position:relative;width:clamp(64px,17%,104px);aspect-ratio:1;animation:sob 1.1s ease-in-out infinite}
.cp svg{width:100%;height:100%;filter:drop-shadow(0 6px 8px rgba(0,0,0,.5))}
.cp .eye{position:absolute;width:7%;height:11%;background:#1d140c;border-radius:50%;transform:translate(-50%,-50%);border:1px solid #fff8}
.cp .tear{position:absolute;width:6%;height:9%;background:#6bb7ff;border-radius:50% 50% 50% 50%/65% 65% 35% 35%;transform:translate(-50%,0);opacity:0;animation:tear 1.4s ease-in infinite}
@keyframes tear{0%{opacity:0;transform:translate(-50%,0) scale(.6)}15%{opacity:.95}100%{opacity:0;transform:translate(-50%,calc(clamp(64px,17vw,104px)*.5)) scale(1)}}
@keyframes sob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(4px) rotate(2deg)}}
@media(prefers-reduced-motion:reduce){.cp,.cp .tear,.ribbon{animation:none}.cp .tear{opacity:.8}}

/* ---------- problèmes, classement, statistiques ---------- */
.ptag{font:600 .75rem var(--ui);padding:.2rem .6rem;border-radius:99px;background:var(--walnut);color:#f4e8cc}
.ptag.lv[data-l="1"]{background:#2f7d4f}.ptag.lv[data-l="2"]{background:#b07d1c}.ptag.lv[data-l="3"]{background:var(--burg)}
.playsec .sq.hint::before{content:"";position:absolute;inset:0;background:rgba(80,150,255,.55);z-index:0}
.shake{animation:shk .4s}@keyframes shk{0%,100%{transform:none}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
.chipsrow{display:flex;gap:.5rem;flex-wrap:wrap}.chipb{font:600 .9rem var(--ui);padding:.45rem 1rem;border:1px solid var(--line);border-radius:99px;background:transparent;color:var(--ink);cursor:pointer;transition:.15s}.chipb:hover{border-color:var(--gold)}.chipb.on{background:var(--burg);border-color:var(--burg);color:#fff}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:.8rem}.kpis div{display:grid;gap:.1rem}.kpis b{font:800 1.7rem var(--disp);color:var(--burg)}.kpis span{font:600 .74rem var(--ui);text-transform:uppercase;letter-spacing:.06em;color:var(--soft)}
.pbar{height:10px;border-radius:99px;background:rgba(0,0,0,.1);overflow:hidden}.pbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#c0912f,#e0a63a);border-radius:99px;transition:width .4s}
.stgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.gcard h3{margin:0 0 .8rem;color:var(--head)}
.split{display:flex;height:12px;border-radius:99px;overflow:hidden;margin-top:1rem;background:rgba(0,0,0,.08)}.split i{display:block}.split .w{background:#2f7d4f}.split .d{background:#b9a47a}.split .l{background:var(--burg)}
.grow{display:grid;grid-template-columns:1fr 1fr 1fr 1.2fr 1fr;gap:.5rem;padding:.55rem 0;border-bottom:1px solid var(--line);font:.92rem var(--ui)}.grow:last-child{border:0}.grow .res{font-weight:700}.grow.w .res{color:#2f7d4f}.grow.l .res{color:var(--burg)}.grow.d .res{color:var(--soft)}
@media(max-width:600px){.grow{grid-template-columns:1fr 1fr 1fr;font-size:.85rem}}
.showrow label{display:flex;align-items:center;gap:.6rem;cursor:pointer}.showrow input{width:20px;height:20px;accent-color:var(--burg)}
.tabs{margin-bottom:1rem}.rkme{font:600 1rem var(--ui);color:var(--head);margin:.2rem 0 1rem}
.rk{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.rkrow{display:grid;grid-template-columns:2.4rem 42px 1fr repeat(var(--c,2),minmax(70px,auto));gap:.8rem;align-items:center;padding:.7rem 1rem;border-bottom:1px solid var(--line);font:.98rem var(--ui)}
.rk[data-cols="1"]{--c:1}.rk[data-cols="2"]{--c:2}
.rkrow:last-child{border:0}.rkh{font:600 .74rem var(--ui);text-transform:uppercase;letter-spacing:.06em;color:var(--soft);background:rgba(0,0,0,.04)}
.rkrow .num{text-align:right;font-weight:700}.rkrow .rn{font-weight:700;color:var(--soft);text-align:center}.rkrow.top .rn{font-size:1.3rem}
.rkrow .av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;overflow:hidden;position:relative}.rkrow .av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rkrow .rname{color:var(--ink);text-decoration:none;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rkrow .rname:hover{color:var(--burg)}
.rkrow.me{background:rgba(192,145,47,.18)}.rkempty{padding:1.2rem;color:var(--soft);text-align:center}
@media(max-width:560px){.rkrow{gap:.5rem;padding:.6rem .7rem;font-size:.9rem;grid-template-columns:1.8rem 34px 1fr repeat(var(--c,2),minmax(48px,auto))}.rkrow .av{width:32px;height:32px}}
.pbtns [hidden],.gcard [hidden]{display:none!important}

/* Badges */
.jpbgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:.8rem}
.jpb{display:grid;justify-items:center;gap:.25rem;text-align:center;padding:.9rem .7rem;border:2px solid var(--bc);border-radius:12px;background:var(--paper)}
.jpb.off{opacity:.55;filter:grayscale(.6)}
.jpbi{width:3.2rem;height:3.2rem;display:grid;place-items:center;font-size:1.7rem;border-radius:50%;border:3px solid var(--bc);background:var(--ivory)}
.jpb b{font:700 .95rem var(--ui);color:var(--head,var(--ink))}.jpbr{font:700 .75rem var(--ui);color:var(--bc);text-transform:uppercase;letter-spacing:.05em}
.jpb .pbar{width:100%;margin:.2rem 0}.jpb .pbar i{background:var(--bc)}.jpb small{font:.72rem var(--ui);color:var(--soft)}
#pbadges{margin:1.5rem 0}
/* Messagerie avancée : actions, réponses, réactions, épinglés, groupes */
.mrow .macts{position:absolute;right:1.2rem;top:-.9rem;display:none;gap:2px;padding:3px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,.12);z-index:3}
.mrow:hover .macts,.mrow.act .macts,.macts:focus-within{display:flex}
.macts button{width:32px;height:30px;border:0;border-radius:7px;background:none;color:var(--soft);font:1.05rem/1 var(--ui);cursor:pointer;display:grid;place-items:center}
.macts button:hover{background:var(--hov,rgba(0,0,0,.06));color:var(--ink)}
.mquote{display:block;max-width:100%;text-align:left;margin:.15rem 0 .25rem;padding:.3rem .6rem;border:0;border-left:3px solid var(--gold);border-radius:4px;background:rgba(192,145,47,.12);color:var(--soft);font:.85rem/1.35 var(--ui);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mquote b{color:var(--ink)}
.mfwd{font:italic .78rem var(--ui);color:var(--soft);margin:.1rem 0}
.mdel{font-style:italic;color:var(--soft)!important}
.medit{font:.72rem var(--ui);color:var(--soft)}
.mpinic{font-size:.8rem;margin-left:.3rem}
.mrow.pinned{background:rgba(192,145,47,.07)}
.mrow.flash{animation:mflash 1.6s}
@keyframes mflash{0%,40%{background:rgba(192,145,47,.35)}100%{background:transparent}}
.mreacts{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.3rem}
.mreact{border:1px solid var(--line);background:var(--paper);border-radius:99px;padding:.1rem .5rem;font:.85rem var(--ui);color:var(--ink);cursor:pointer}
.mreact.me{border-color:var(--gold);background:rgba(192,145,47,.18)}
.mseen{font:.72rem var(--ui);color:var(--soft);margin-top:.2rem;text-align:right}
.mpinbar{display:block;width:100%;text-align:left;padding:.5rem 1.4rem;border:0;border-bottom:1px solid var(--line);background:rgba(192,145,47,.1);color:var(--ink);font:.85rem var(--ui);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}
.mpinbar[hidden]{display:none}
.mctx span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mpop{position:fixed;z-index:120;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);padding:.35rem}
.mmenu{display:flex;flex-direction:column;min-width:170px}
.mmenu button{border:0;background:none;text-align:left;padding:.6rem .8rem;border-radius:8px;font:600 .95rem var(--ui);color:var(--ink);cursor:pointer}
.mmenu button:hover{background:var(--hov,rgba(0,0,0,.06))}
.mmenu .danger,.btn.danger{color:#c0392b}
.memo{display:flex;gap:2px}
.memo button{border:0;background:none;font-size:1.45rem;width:42px;height:42px;border-radius:50%;cursor:pointer;transition:transform .12s}
.memo button:hover{background:var(--hov,rgba(0,0,0,.06));transform:scale(1.2)}
.mmodal{position:fixed;inset:0;z-index:110;background:rgba(0,0,0,.45);display:grid;place-items:center;padding:16px}
.mbox{background:var(--paper);color:var(--ink);width:min(440px,100%);max-height:85vh;overflow:auto;border-radius:14px;padding:1rem 1.2rem 1.2rem;display:flex;flex-direction:column;gap:.7rem;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.mbh{display:flex;align-items:center;justify-content:space-between;gap:1rem}.mbh h3{margin:0}
.mx{border:0;background:none;font-size:1.6rem;line-height:1;color:var(--soft);cursor:pointer}
.mfield{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:.65rem .8rem;font:1rem var(--ui);background:var(--field,var(--ivory));color:var(--ink);resize:vertical}
.mfield:focus{outline:none;border-color:var(--gold)}
.mpick{display:flex;flex-direction:column;max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.mpi{display:flex;align-items:center;gap:.7rem;padding:.55rem .8rem;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer;width:100%}
.mpi:last-child{border-bottom:0}.mpi:hover,.mpi.on{background:rgba(192,145,47,.14)}.mpi b{flex:1;font:600 .95rem var(--ui)}
.mpi .av{width:34px;height:34px;font-size:.85rem}.mpi input{accent-color:var(--gold);width:18px;height:18px}
.mline{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.mline .mfield{flex:1;min-width:150px}
.conv.newg .av{background:var(--gold)!important;color:#1d1308;font-size:1.5rem;font-weight:700}
.av.grp{border-radius:14px}
@media(hover:none){.mrow .macts{top:auto;bottom:-.6rem}}
.mpend[hidden]{display:none!important}
.mpi .link{border:0;background:none;padding:0;color:#c0392b;font:600 .85rem var(--ui);cursor:pointer;text-decoration:underline}

/* Flamme de série */
.pflame{display:inline-flex;align-items:center;gap:.2rem;padding:.2rem .7rem .2rem .45rem;border-radius:99px;background:linear-gradient(135deg,#ffb400,#ff5a00);color:#fff;font:800 1rem var(--ui);box-shadow:0 2px 10px rgba(255,90,0,.35)}
.pflame[hidden]{display:none}.pflame .fi{font-size:1.15rem;filter:drop-shadow(0 0 4px rgba(255,200,0,.8))}
.pflame.pop{animation:flpop .55s}.pflame.out{animation:flout .7s forwards}
@keyframes flpop{0%{transform:scale(1)}40%{transform:scale(1.4) rotate(-8deg)}100%{transform:scale(1)}}
@keyframes flout{to{transform:scale(.2) translateY(-12px);opacity:0;filter:grayscale(1)}}
.flrec{display:flex;align-items:center;gap:1rem;margin-top:1rem;padding:.9rem 1.1rem;border-radius:14px;background:linear-gradient(135deg,#2c1b10,#5a2a0c);color:#fff}
.flbig{position:relative;width:76px;height:76px;flex:none;display:grid;place-items:center}
.flbig .fi{font-size:4.2rem;line-height:1;filter:drop-shadow(0 0 12px rgba(255,150,0,.8));animation:flick 1.6s ease-in-out infinite}
.flbig b{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);font:900 1.5rem var(--disp);color:#fff;-webkit-text-stroke:1.5px #2c1b10;paint-order:stroke}
.fltx{display:grid;gap:.2rem}.fltx span{font:800 .85rem var(--ui);letter-spacing:.12em;text-transform:uppercase;color:#ffc24a}.fltx small{font:.9rem var(--ui);opacity:.9}
.flrec.cold .fi{filter:grayscale(1) opacity(.5);animation:none}
@keyframes flick{0%,100%{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.07) rotate(2deg)}}
.flbig b{-webkit-text-stroke:0;font-size:1.9rem;bottom:-2px;text-shadow:0 2px 0 #7a2600,0 0 10px rgba(0,0,0,.7)}

/* Flamme du record (dessinée en SVG) */
.flbig{width:92px;height:110px}
.flsvg{width:92px;height:110px;overflow:visible;filter:drop-shadow(0 0 14px rgba(255,120,0,.65))}
.flsvg g{transform-box:fill-box;transform-origin:50% 100%}
.flsvg .fl1{animation:fl1 1.8s ease-in-out infinite}.flsvg .fl2{animation:fl2 1.4s ease-in-out infinite}.flsvg .fl3{animation:fl3 1.1s ease-in-out infinite}
@keyframes fl1{0%,100%{transform:scale(1,1) skewX(0)}50%{transform:scale(1.03,1.06) skewX(-2deg)}}
@keyframes fl2{0%,100%{transform:scale(1,1) skewX(0)}50%{transform:scale(.97,1.08) skewX(3deg)}}
@keyframes fl3{0%,100%{transform:scale(1,1)}50%{transform:scale(1.05,.94)}}
.flbig b{bottom:6px;font:900 2rem/1 var(--disp);color:#7a2600;text-shadow:0 1px 0 rgba(255,255,255,.6);-webkit-text-stroke:0}
.flrec{padding:1rem 1.3rem;gap:1.2rem}
.flrec.cold .flsvg{filter:grayscale(1) brightness(1.1) opacity(.55)}.flrec.cold .flsvg g{animation:none}
@media(prefers-reduced-motion:reduce){.flsvg g{animation:none}}
