/* Oni Nymeria — front (charte Onirique) */
.onym,.onym-faq{--g:#FFBE7A;--g2:#F2A663;--c:#F2E4C9;--b:#CBBFA2;--bg:#0a131c;--bg2:#0d1a26;--mid:#1F3A4A;--ink:#152635;--ft:'Marcellus SC',Georgia,serif;--fb:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif}
.onym *,.onym *::before,.onym *::after{box-sizing:border-box}
.onym .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.onym button{font:inherit;cursor:pointer}
.onym .iconify{display:inline-block;width:1em;height:1em;vertical-align:-.15em}

/* ---------- Lanceur ---------- */
.onym--float{position:fixed;bottom:22px;z-index:99990;font-family:var(--fb)}
.onym--right{right:22px}.onym--left{left:22px}
.onym-launch{position:relative;display:block;width:72px;height:72px;padding:0;border:0;border-radius:50%;background:var(--bg2);box-shadow:0 10px 28px rgba(0,0,0,.5),0 0 0 2px var(--g),0 0 22px rgba(255,190,122,.35);transition:transform .25s ease,box-shadow .25s ease}
.onym-launch:hover,.onym-launch:focus-visible{transform:translateY(-3px) scale(1.05);box-shadow:0 14px 32px rgba(0,0,0,.55),0 0 0 2px var(--g),0 0 34px rgba(255,190,122,.55);outline:0}
.onym-launch-face{position:absolute;inset:0;border-radius:50%;overflow:hidden}
.onym-launch-face img,.onym-launch-face svg{width:100%;height:100%;object-fit:cover;display:block}
.onym-launch-ring{position:absolute;inset:-7px;border-radius:50%;border:1px dashed rgba(255,190,122,.55);animation:onymSpin 26s linear infinite;pointer-events:none}
.onym-launch-dot{position:absolute;top:3px;right:3px;width:14px;height:14px;border-radius:50%;background:var(--g);border:2px solid var(--bg2);animation:onymPulse 2.4s ease-in-out infinite}
.onym.is-open .onym-launch-dot{display:none}
.onym.is-open .onym-launch{transform:scale(.92)}

/* ---------- Teaser ---------- */
.onym-teaser{position:absolute;bottom:88px;right:0;display:flex;align-items:flex-start;gap:6px;width:max-content;max-width:240px;padding:12px 10px 12px 16px;border-radius:14px 14px 4px 14px;background:linear-gradient(160deg,var(--mid),var(--bg2));border:1px solid rgba(255,190,122,.45);box-shadow:0 10px 26px rgba(0,0,0,.45);color:var(--c);font-family:var(--ft);font-size:16px;line-height:1.3;cursor:pointer;animation:onymRise .45s cubic-bezier(.2,.8,.2,1)}
.onym--left .onym-teaser{right:auto;left:0;border-radius:14px 14px 14px 4px}
.onym-teaser[hidden]{display:none}
.onym-teaser-x{flex:none;border:0;background:none;color:var(--b);padding:2px;line-height:1;opacity:.7}
.onym-teaser-x:hover{opacity:1;color:var(--g)}

/* ---------- Panneau ---------- */
.onym-panel{position:relative;display:flex;flex-direction:column;overflow:hidden;color:var(--c);font-family:var(--fb);font-size:14.5px;line-height:1.55;background:radial-gradient(120% 60% at 50% 0%,rgba(31,58,74,.55),transparent 60%),linear-gradient(180deg,var(--bg2),var(--bg));border:1px solid rgba(255,190,122,.32);border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.6)}
.onym-panel[hidden]{display:none}
.onym-panel::before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--g),transparent);z-index:2}
.onym-panel::after{content:"";position:absolute;inset:5px;border:1px solid rgba(255,190,122,.1);border-radius:12px;pointer-events:none;z-index:2}
.onym--float .onym-panel{position:absolute;bottom:92px;right:0;width:400px;height:min(660px,calc(100vh - 130px));height:min(660px,calc(100dvh - 130px));transform-origin:bottom right;animation:onymOpen .32s cubic-bezier(.2,.8,.2,1)}
.onym--left .onym-panel{right:auto;left:0;transform-origin:bottom left}
.onym--inline{width:100%;max-width:780px;margin:24px auto}
.onym--inline .onym-panel{height:var(--onym-h,600px)}

/* Blocs */
.onym-top{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}
.onym-bottom{flex:none}
.onym-pager{display:none}

/* En-tête */
.onym-head{position:relative;display:flex;align-items:center;gap:14px;padding:16px 14px 14px 16px;background:radial-gradient(1px 1px at 20% 30%,rgba(242,228,201,.7),transparent),radial-gradient(1px 1px at 70% 20%,rgba(242,228,201,.5),transparent),radial-gradient(1.5px 1.5px at 85% 70%,rgba(255,190,122,.6),transparent),radial-gradient(1px 1px at 45% 80%,rgba(242,228,201,.4),transparent),linear-gradient(180deg,rgba(31,58,74,.7),rgba(13,26,38,.2))}
.onym-head::after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,190,122,.5),transparent)}
.onym-portrait{position:relative;flex:none;width:84px;height:84px;border-radius:50%;padding:3px;background:conic-gradient(from 210deg,var(--g),var(--g2),rgba(255,190,122,.25),var(--g))}
.onym-portrait>.onym-av{position:absolute;inset:3px;display:block;border-radius:50%;overflow:hidden;opacity:0;transition:opacity .2s ease;background:var(--bg2)}
.onym-portrait>.onym-av.is-on{opacity:1}
.onym-av img,.onym-av svg,.onym-av picture{display:block;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;margin:0!important}
.onym-aura{position:absolute;inset:-10px;border-radius:50%;background:radial-gradient(circle,rgba(255,190,122,.35),transparent 65%);opacity:0;transition:opacity .4s;z-index:-1}
.onym-portrait.is-talking .onym-aura{opacity:.8}
.onym-portrait.is-talking{animation:onymBob 2.2s ease-in-out infinite}
.onym-id{display:flex;flex-direction:column;min-width:0;flex:1}
.onym-name{font-family:var(--ft);font-size:22px;line-height:1.1;color:var(--g);letter-spacing:.02em;text-shadow:0 0 18px rgba(255,190,122,.35)}
.onym-role{font-size:12.5px;color:var(--b);margin-top:2px}
.onym-state{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11.5px;color:var(--b)}
.onym-state i{width:7px;height:7px;border-radius:50%;background:#7bd389;box-shadow:0 0 8px #7bd389}
.onym-state em{font-style:normal}
.onym-panel.is-busy .onym-state i{background:var(--g);box-shadow:0 0 8px var(--g);animation:onymPulse 1s infinite}
.onym-tools{display:flex;gap:2px;align-self:flex-start}
.onym-tool{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--b);font-size:18px;transition:background .2s,color .2s}
.onym-tool:hover,.onym-tool:focus-visible{background:rgba(255,190,122,.12);color:var(--g);outline:0}
.onym-tool[aria-pressed=true]{color:var(--g)}

/* Journal */
.onym-log::-webkit-scrollbar{width:6px}
.onym-log::-webkit-scrollbar-track{background:transparent}
.onym-log::-webkit-scrollbar-thumb{background:rgba(255,190,122,.3);border-radius:6px}
.onym-sep{border:0;height:1px;margin:12px 0;background:linear-gradient(90deg,transparent,rgba(255,190,122,.45),transparent)}
.onym-log{flex:1;min-height:0;overflow-y:auto;padding:18px 16px 8px;display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:rgba(255,190,122,.35) transparent;overscroll-behavior:contain;outline:0}
.onym-msg{max-width:92%;animation:onymRise .3s ease both}
.onym-msg--bot{align-self:flex-start}
.onym-tag{display:inline-block;margin:0 0 4px 10px;font-family:var(--ft);font-size:12.5px;color:var(--g);letter-spacing:.05em}
.onym-box{position:relative;padding:12px 15px;background:linear-gradient(160deg,rgba(31,58,74,.6),rgba(13,26,38,.75));border:1px solid rgba(255,190,122,.28);border-radius:4px 14px 14px 14px;box-shadow:inset 0 0 0 1px rgba(10,19,28,.6),0 6px 16px rgba(0,0,0,.25);word-wrap:break-word}
.onym-box::before,.onym-box::after{content:"";position:absolute;width:6px;height:6px;background:var(--g);transform:rotate(45deg);opacity:.75}
.onym-box::before{top:-3.5px;left:-3.5px}
.onym-box::after{bottom:-3.5px;right:-3.5px}
.onym-box a{color:var(--g);text-decoration:underline;text-underline-offset:2px}
.onym-box a:hover{color:var(--c)}
.onym-box strong{color:#fff3df;font-weight:600}
.onym-box ul{margin:6px 0;padding-left:18px}
.onym-box p{margin:0}
.onym-next{display:inline-block;margin-left:4px;color:var(--g);font-size:10px;animation:onymBlink 1s steps(2) 3}
.onym-msg--user{align-self:flex-end;max-width:82%;padding:10px 14px;background:var(--c);color:var(--ink);border-radius:14px 4px 14px 14px;font-weight:500;box-shadow:0 6px 14px rgba(0,0,0,.25)}

.onym-empty{margin:6px 0 0;color:var(--b);font-style:italic}

/* Cartes (événements, jeux, liens) */
.onym-cards{list-style:none;margin:10px 0 2px!important;padding:0!important;display:flex;flex-direction:column;gap:7px;transition:opacity .3s}
.onym-card{display:flex;flex-direction:column;gap:1px;padding:8px 11px;border-left:2px solid var(--g);border-radius:6px 10px 10px 6px;background:rgba(10,19,28,.65);color:var(--c)!important;text-decoration:none!important;transition:transform .2s,background .2s}
a.onym-card:hover{transform:translateX(3px);background:rgba(31,58,74,.75)}
.onym-card img{float:left;width:40px;height:40px;object-fit:contain;border-radius:6px;margin-right:10px}
.onym-card-d{font-family:var(--ft);font-size:12px;color:var(--g);letter-spacing:.04em}
.onym-card b{font-weight:600;line-height:1.3}
.onym-card small{color:var(--b);font-size:12px}

/* Avis */
.onym-fb{display:flex;gap:4px;margin:5px 0 0 6px}
.onym-fb button{border:0;background:none;color:var(--b);opacity:.45;font-size:15px;padding:3px;border-radius:6px;transition:opacity .2s,color .2s}
.onym-fb button:hover{opacity:1;color:var(--g)}
.onym-fb.is-done button{pointer-events:none}
.onym-fb.is-done button.is-sel{opacity:1;color:var(--g)}
.onym-fb.is-done button:not(.is-sel){opacity:.15}

/* Saisie en cours */
.onym-typing{display:flex;align-items:center;gap:10px;color:var(--b);font-size:13px;font-style:italic}
.onym-runes{display:flex;gap:5px}
.onym-runes i{width:7px;height:7px;background:var(--g);transform:rotate(45deg);animation:onymRune 1.2s ease-in-out infinite}
.onym-runes i:nth-child(2){animation-delay:.15s}.onym-runes i:nth-child(3){animation-delay:.3s}

/* Choix façon RPG */
.onym-choices{display:flex;flex-direction:column;gap:6px;padding:4px 16px 10px;overflow:visible}
.onym-choices:empty{display:none}
.onym-choice{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;text-align:left;border:1px solid rgba(203,191,162,.3);border-radius:10px;background:rgba(10,19,28,.45);color:var(--c);font-size:14px;line-height:1.3;transition:border-color .2s,background .2s,transform .2s;animation:onymRise .3s ease both}
.onym-choice::before{content:"";flex:none;width:8px;height:8px;background:var(--g);transform:rotate(45deg);opacity:.6;transition:opacity .2s,box-shadow .2s}
.onym-choice:hover,.onym-choice:focus-visible{border-color:var(--g);background:rgba(255,190,122,.08);transform:translateX(4px);outline:0}
.onym-choice:hover::before,.onym-choice:focus-visible::before{opacity:1;box-shadow:0 0 10px var(--g)}
.onym-choice kbd{margin-left:auto;font:600 11px var(--fb);color:var(--b);border:1px solid rgba(203,191,162,.35);border-radius:5px;padding:1px 6px;opacity:.7}
.onym-choice .iconify{margin-left:auto;color:var(--b)}
.onym-choice--hand{border-style:dashed;border-color:rgba(255,190,122,.55)}

/* Consentement */
.onym-consent{margin:0 16px 10px;padding:12px 14px;border-radius:12px;background:rgba(31,58,74,.55);border:1px solid rgba(255,190,122,.25);font-size:12.5px;color:var(--b)}
.onym-consent[hidden]{display:none}
.onym-consent p{margin:0 0 10px}
.onym-consent a{color:var(--g)}
.onym-consent div{display:flex;gap:8px;flex-wrap:wrap}

/* Boutons */
.onym-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 18px;border:1px solid var(--c);border-radius:50px;background:var(--c);color:var(--ink)!important;font-weight:600;font-size:13.5px;text-decoration:none!important;transition:background .2s,border-color .2s}
.onym-btn:hover,.onym-btn:focus-visible{background:var(--g);border-color:var(--g);outline:0}
.onym-btn--ghost{background:transparent;color:var(--c)!important}
.onym-btn--ghost:hover{color:var(--ink)!important}

/* Formulaire de saisie */
.onym-form{display:flex;gap:8px;padding:10px 14px 14px;border-top:1px solid rgba(255,190,122,.12)}
.onym-input{flex:1;min-width:0;height:46px;padding:0 18px;border-radius:50px;border:1px solid rgba(203,191,162,.35);background:rgba(10,19,28,.85);color:var(--c);font:15px var(--fb);transition:border-color .2s,box-shadow .2s}
.onym-input::placeholder{color:rgba(203,191,162,.6)}
.onym-input:focus{outline:0;border-color:var(--g);box-shadow:0 0 0 3px rgba(255,190,122,.15)}
.onym-input:disabled{opacity:.5}
.onym-send{flex:none;width:46px;height:46px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--c);color:var(--ink);font-size:20px;transition:background .2s,transform .2s}
.onym-send:hover,.onym-send:focus-visible{background:var(--g);transform:rotate(-12deg);outline:0}
.onym-send:disabled{opacity:.5}

/* Relais humain */
.onym-hand{display:grid;gap:8px;margin-top:10px}
.onym-hand input,.onym-hand textarea{width:100%;padding:9px 12px;border-radius:10px;border:1px solid rgba(203,191,162,.35);background:rgba(10,19,28,.85);color:var(--c);font:14px var(--fb)}
.onym-hand textarea{min-height:80px;resize:vertical}
.onym-hand input:focus,.onym-hand textarea:focus{outline:0;border-color:var(--g)}
.onym-hand label.onym-ck{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--b)}
.onym-hand .onym-hp{position:absolute;left:-9999px}
.onym-hand .onym-err{color:#ff9f8a;font-size:12.5px;margin:0}

/* ---------- Mobile ---------- */
@media (max-width:600px){
	.onym--float{bottom:16px}.onym--right{right:16px}.onym--left{left:16px}
	.onym-launch{width:62px;height:62px}
	.onym-teaser{bottom:76px;font-size:15px;max-width:200px}
	.onym--float .onym-panel{position:fixed;inset:0;width:100%;height:100%;height:100dvh;border-radius:0;border:0;padding-bottom:env(safe-area-inset-bottom)}
	.onym--float .onym-panel::after{display:none}
	.onym.is-open .onym-launch,.onym.is-open .onym-teaser{display:none}
	.onym-portrait{width:68px;height:68px}
	.onym-name{font-size:20px}
	.onym-choice kbd{display:none}
}
html.onym-lock,html.onym-lock body{overflow:hidden}

/* ---------- FAQ (shortcode) ---------- */
.onym-faq{max-width:860px;margin:32px auto;font-family:var(--fb);color:var(--c)}
.onym-faq-t{font-family:var(--ft);color:var(--g);text-align:center;margin:0 0 18px}
.onym-faq-i{position:relative;margin:0 0 10px;border-radius:12px;background:linear-gradient(160deg,var(--mid),var(--bg2));border:1px solid rgba(255,190,122,.22);box-shadow:0 8px 20px rgba(0,0,0,.35);overflow:hidden}
.onym-faq-i::before{content:"";position:absolute;top:0;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,var(--g),transparent)}
.onym-faq-i summary{list-style:none;cursor:pointer;padding:16px 48px 16px 18px;font-family:var(--ft);font-size:17px;color:var(--g);position:relative}
.onym-faq-i summary::-webkit-details-marker{display:none}
.onym-faq-i summary::after{content:"";position:absolute;right:20px;top:50%;width:9px;height:9px;border-right:2px solid var(--g);border-bottom:2px solid var(--g);transform:translateY(-70%) rotate(45deg);transition:transform .25s}
.onym-faq-i[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.onym-faq-a{padding:0 18px 16px;line-height:1.6}
.onym-faq-a a{color:var(--g)}
.onym-faq-more{text-align:center;margin-top:18px}

/* ---------- Animations ---------- */
@keyframes onymSpin{to{transform:rotate(360deg)}}
@keyframes onymPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.92)}}
@keyframes onymRise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes onymOpen{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}
@keyframes onymBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes onymRune{0%,100%{opacity:.25;transform:rotate(45deg) scale(.7)}50%{opacity:1;transform:rotate(45deg) scale(1)}}
@keyframes onymBlink{0%{opacity:1}50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.onym *,.onym *::before,.onym *::after{animation:none!important;transition:none!important}}

/* ---------- Disposition RPG (boîte de dialogue en bas au centre) ---------- */
.onym--rpg .onym-panel{position:fixed;left:50%;right:auto;bottom:22px;width:min(720px,calc(100vw - 32px));height:auto;transform:translateX(-50%);background:none;border:0;border-radius:0;box-shadow:none;overflow:visible;gap:10px;animation:onymOpenC .32s cubic-bezier(.2,.8,.2,1)}
.onym--rpg .onym-panel::before,.onym--rpg .onym-panel::after{display:none}
.onym--rpg .onym-top{display:grid;grid-template-columns:136px minmax(0,1fr) auto;grid-template-rows:auto 1fr auto;column-gap:16px;min-height:162px;padding:12px 12px 8px;background:radial-gradient(120% 140% at 100% 0%,rgba(255,190,122,.08),transparent 55%),linear-gradient(135deg,rgba(31,58,74,.97),rgba(13,26,38,.97));border:1px solid rgba(255,190,122,.45);border-radius:6px;box-shadow:0 18px 40px rgba(0,0,0,.6),inset 0 0 0 3px rgba(10,19,28,.85),inset 0 0 0 4px rgba(255,190,122,.16)}
.onym--rpg .onym-top::before{content:"";position:absolute;top:-1px;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,var(--g),transparent)}
.onym--rpg .onym-head{display:contents}
.onym--rpg .onym-head::after{content:none}
.onym--rpg .onym-portrait{grid-column:1;grid-row:1/4;align-self:start;width:136px;height:136px;border-radius:4px;padding:3px;background:linear-gradient(145deg,var(--g),#7a5a33 50%,var(--g));box-shadow:0 6px 18px rgba(0,0,0,.5);animation:none!important}
.onym--rpg .onym-portrait>.onym-av{border-radius:2px}
.onym--rpg .onym-aura,.onym--rpg .onym-state,.onym--rpg .onym-tag{display:none}
.onym--rpg .onym-id{grid-column:2;grid-row:1;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:2px 10px;padding-top:2px}
.onym--rpg .onym-name{font-size:22px}
.onym--rpg .onym-tools{grid-column:3;grid-row:1}
.onym--rpg .onym-log{grid-column:2/4;grid-row:2;flex:none;min-height:84px;max-height:170px;padding:6px 6px 0 0;gap:6px}
.onym--rpg .onym-log .onym-msg{display:none;max-width:100%;animation:none}
.onym--rpg .onym-log .onym-msg.is-cur{display:block}
.onym--rpg .onym-box{padding:0;background:none;border:0;border-radius:0;box-shadow:none;font-size:15px;line-height:1.6}
.onym--rpg .onym-box::before,.onym--rpg .onym-box::after{display:none}
.onym--rpg .onym-msg--user{align-self:flex-start;max-width:100%;padding:0;background:none;box-shadow:none;border-radius:0;color:var(--b);font-weight:400;font-style:italic;font-size:13px}
.onym--rpg .onym-msg--user::before{content:"Toi — ";font-style:normal;color:var(--g)}
.onym--rpg .onym-fb{margin-left:0}
.onym--rpg .onym-pager{display:flex;grid-column:2/4;grid-row:3;justify-content:flex-end;align-items:center;gap:2px;margin-top:4px;font-family:var(--ft);font-size:13px;color:var(--g)}
.onym-pg{width:26px;height:26px;display:grid;place-items:center;border:0;border-radius:50%;background:none;color:var(--b);font-size:18px}
.onym-pg:hover:not(:disabled){color:var(--g);background:rgba(255,190,122,.1)}
.onym-pg:disabled{opacity:.25;cursor:default}
.onym--rpg .onym-bottom{padding:12px 0 0;background:rgba(10,19,28,.95);border:1px solid rgba(255,190,122,.18);border-radius:8px;box-shadow:0 14px 34px rgba(0,0,0,.55)}
.onym--rpg .onym-choices{max-height:none;padding:0 14px 8px}
.onym--rpg .onym-choices:not(:empty)::before{content:"Que veux-tu demander ?";font-family:var(--ft);font-size:15px;color:var(--g)}
.onym--rpg .onym-consent{margin:0 14px 10px}
.onym--rpg .onym-form{border-top:0;padding:4px 12px 12px}
.onym--rpg.is-open .onym-launch,.onym--rpg.is-open .onym-teaser{display:none}
@keyframes onymOpenC{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
@media (max-width:600px){
	.onym--rpg .onym-panel{inset:auto 0 0 0;left:0;width:100%;height:auto;transform:none;padding:0 8px calc(8px + env(safe-area-inset-bottom));animation:onymOpen .32s ease}
	.onym--rpg .onym-top{grid-template-columns:64px minmax(0,1fr) auto;column-gap:12px;min-height:0}
	.onym--rpg .onym-portrait{grid-row:1;width:64px;height:64px}
	.onym--rpg .onym-id{flex-direction:column;align-items:flex-start;gap:0;align-self:center}
	.onym--rpg .onym-name{font-size:19px}
	.onym--rpg .onym-log{grid-column:1/4;max-height:34vh;margin-top:8px}
	.onym--rpg .onym-pager{grid-column:1/4}
}

/* ---------- Accroche façon quête ---------- */
.onym-quest{position:absolute;top:-30px;left:50%;width:26px;height:30px;margin-left:-13px;display:grid;place-items:center;font:700 22px/1 var(--ft);color:#1a1206;background:linear-gradient(180deg,#ffe08a,var(--g) 55%,var(--g2));clip-path:polygon(50% 0,100% 18%,100% 70%,50% 100%,0 70%,0 18%);filter:drop-shadow(0 0 6px rgba(255,190,122,.9)) drop-shadow(0 3px 4px rgba(0,0,0,.6));animation:onymQuest 1.6s ease-in-out infinite;pointer-events:none}
.onym-quest[hidden]{display:none}
.onym.has-quest .onym-launch-dot{display:none}
.onym-launch.is-call{animation:onymCall .7s ease 2}
.onym-hook{position:absolute;bottom:96px;right:0;display:flex;gap:14px;width:340px;padding:16px 18px 16px 16px;color:var(--c);font-family:var(--fb);background:radial-gradient(120% 120% at 0% 0%,rgba(255,190,122,.1),transparent 55%),linear-gradient(150deg,rgba(31,58,74,.98),rgba(13,26,38,.98));border:1px solid rgba(255,190,122,.5);border-radius:8px;box-shadow:0 18px 44px rgba(0,0,0,.6),inset 0 0 0 3px rgba(10,19,28,.8),inset 0 0 0 4px rgba(255,190,122,.14);animation:onymHookIn .5s cubic-bezier(.2,.9,.25,1.2)}
.onym-hook[hidden]{display:none}
.onym--left .onym-hook{right:auto;left:0}
.onym-hook::before{content:"";position:absolute;top:-1px;left:14%;right:14%;height:1px;background:linear-gradient(90deg,transparent,var(--g),transparent)}
.onym-hook::after{content:"";position:absolute;bottom:-8px;right:30px;width:14px;height:14px;background:#0f202d;border-right:1px solid rgba(255,190,122,.5);border-bottom:1px solid rgba(255,190,122,.5);transform:rotate(45deg)}
.onym--left .onym-hook::after{right:auto;left:30px}
.onym-hook-face{flex:none;width:64px;height:64px;padding:2px;border-radius:4px;background:linear-gradient(145deg,var(--g),#7a5a33 50%,var(--g));box-shadow:0 4px 12px rgba(0,0,0,.5)}
.onym-hook-face img,.onym-hook-face svg{display:block;width:100%!important;height:100%!important;object-fit:cover;border-radius:2px;max-width:none!important}
.onym-hook-body{flex:1;min-width:0}
.onym-hook-head{display:flex;flex-direction:column;margin-bottom:4px}
.onym-hook-name{font-family:var(--ft);font-size:18px;line-height:1.1;color:var(--g)}
.onym-hook-role{font-size:11px;color:var(--b)}
.onym-hook-txt{margin:0 0 12px;font-size:14px;line-height:1.5;min-height:42px;cursor:pointer}
.onym-hook-txt strong{color:#fff3df}
.onym-hook-act{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.onym-hook-act .onym-btn{min-height:36px;padding:6px 14px;font-size:13px}
.onym-hook .onym-hook-later{width:auto!important;min-width:0!important;min-height:0!important;height:auto!important;margin:0!important;border:0!important;background:none!important;box-shadow:none!important;color:var(--b)!important;font:400 11px/1.2 var(--fb)!important;letter-spacing:0!important;text-transform:none!important;text-decoration:underline;text-underline-offset:3px;padding:2px 4px!important;opacity:.85}
.onym-hook .onym-hook-later:hover{opacity:1}
.onym-hook .onym-hook-later:hover{color:var(--g)!important}
.onym-hook-x{position:absolute;top:6px;right:6px;width:26px;height:26px;display:grid;place-items:center;border:0;border-radius:50%;background:none;color:var(--b);font-size:15px;opacity:.7}
.onym-hook-x:hover{opacity:1;color:var(--g);background:rgba(255,190,122,.1)}
.onym.is-open .onym-hook,.onym.is-open .onym-quest{display:none}
@keyframes onymQuest{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes onymCall{0%,100%{transform:rotate(0)}20%{transform:rotate(-10deg) scale(1.06)}40%{transform:rotate(9deg) scale(1.06)}60%{transform:rotate(-6deg)}80%{transform:rotate(4deg)}}
@keyframes onymHookIn{from{opacity:0;transform:translateY(16px) scale(.92)}to{opacity:1;transform:none}}
@media (max-width:600px){
	.onym-hook{bottom:84px;width:calc(100vw - 32px);max-width:340px;padding:12px 14px 12px 12px;gap:10px}
	.onym-hook-face{width:52px;height:52px}
	.onym-hook-name{font-size:16px}
	.onym-hook-txt{font-size:13.5px;margin-bottom:10px}
	.onym-quest{top:-26px;width:22px;height:26px;margin-left:-11px;font-size:18px}
}
.onym.has-quest .onym-hook{bottom:114px}
@media (max-width:600px){.onym.has-quest .onym-hook{bottom:100px}}

/* ---------- v1.4 ---------- */
/* Case RGPD du relais : case à gauche, texte aligné */
.onym .onym-hand label.onym-ck{display:grid!important;grid-template-columns:20px 1fr;gap:10px;align-items:start;text-align:left;margin:2px 0;line-height:1.45;cursor:pointer}
.onym .onym-hand label.onym-ck span{display:block;min-width:0}
.onym .onym-hand input[type=checkbox]{-webkit-appearance:none;appearance:none;position:relative;width:20px!important;height:20px;min-width:20px;margin:0!important;padding:0!important;flex:none;border:1px solid rgba(203,191,162,.55);border-radius:5px;background:rgba(10,19,28,.85);cursor:pointer;transition:background .2s,border-color .2s;box-shadow:none}
.onym .onym-hand input[type=checkbox]:checked{background:var(--g);border-color:var(--g)}
.onym .onym-hand input[type=checkbox]:checked::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(45deg)}
.onym .onym-hand input[type=checkbox]:focus-visible{outline:2px solid var(--g);outline-offset:2px}

/* Cartes de données Oni */
.onym-card.has-img{flex-direction:row;align-items:center;gap:10px}
.onym-card.has-img img{float:none;flex:none;width:44px;height:44px;margin:0;object-fit:cover;border-radius:6px;background:rgba(255,255,255,.04)}
.onym-card-in{display:flex;flex-direction:column;gap:2px;min-width:0}
.onym-card-ex{display:flex;flex-wrap:wrap;gap:2px 10px}
.onym-card-ex span{white-space:nowrap}
.onym-card-ex i{font-style:normal;color:var(--g);opacity:.8}

/* Réponse répétée repliée */
.onym-again{margin-top:8px;border-top:1px dashed rgba(255,190,122,.25);padding-top:6px}
.onym-again summary{cursor:pointer;color:var(--g);font-size:13px;list-style:none}
.onym-again summary::-webkit-details-marker{display:none}
.onym-again summary::before{content:"▸ ";}
.onym-again[open] summary::before{content:"▾ ";}
.onym-again[open] summary{margin-bottom:6px}

/* Discussion fermée */
.onym-panel.is-locked .onym-input{opacity:.55;cursor:not-allowed;border-style:dashed}
.onym-panel.is-locked .onym-state i{background:#d64545;box-shadow:0 0 8px #d64545;animation:none}

/* ---------- v1.5 : « Continuer » façon RPG ---------- */
.onym-choice--cont{justify-content:center;border-color:rgba(255,190,122,.6);background:linear-gradient(90deg,rgba(255,190,122,.04),rgba(255,190,122,.14),rgba(255,190,122,.04));color:var(--g);font-family:var(--ft);font-size:15px;letter-spacing:.06em}
.onym-choice--cont::before{display:none}
.onym-choice--cont span::after{content:" ▸";display:inline-block;animation:onymNudge 1.2s ease-in-out infinite}
.onym-choice--cont kbd{display:none}
.onym-choice--cont:hover{transform:none;background:rgba(255,190,122,.18)}
@keyframes onymNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
.onym--rpg .onym-choices:has(.onym-choice--cont)::before{content:none}

/* ---------- Hors service / maintenance ---------- */
.onym--off .onym-launch{box-shadow:0 10px 28px rgba(0,0,0,.5),0 0 0 2px #c0473f,0 0 18px rgba(214,69,69,.35)}
.onym--off .onym-launch:hover{box-shadow:0 14px 32px rgba(0,0,0,.55),0 0 0 2px #e05a52,0 0 26px rgba(214,69,69,.5)}
.onym--off .onym-launch-ring{border-color:rgba(214,69,69,.55);animation-duration:60s}
.onym--off .is-gray img,.onym--off .is-gray svg{filter:grayscale(.9) brightness(.65) contrast(.95)}
.onym-off-dot{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#c0473f;color:#fff;border:2px solid var(--bg2);box-shadow:0 2px 6px rgba(0,0,0,.4)}
.onym-off-dot svg{width:13px;height:13px}
.onym-off-badge{display:inline-flex;align-items:center;gap:6px;margin-top:3px;font-size:11.5px;color:#ff9f8a;letter-spacing:.02em}
.onym-off-badge i{width:7px;height:7px;border-radius:50%;background:#e05a52;box-shadow:0 0 8px #e05a52;animation:onymPulse 2s ease-in-out infinite}
.onym-offcard{border-color:rgba(214,69,69,.45)}
.onym-offcard .onym-hook-txt{cursor:default;margin:0}
.onym-offcard .onym-hook-x{font-size:20px;line-height:1}
.onym--off .onym-offcard::after{border-color:rgba(214,69,69,.45)}

/* ---------- Bienveillance ---------- */
.onym-care{list-style:none;margin:10px 0!important;padding:0!important;display:flex;flex-direction:column;gap:7px}
.onym-care-c{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;background:rgba(10,19,28,.7);border:1px solid rgba(242,228,201,.25);color:var(--c)!important;text-decoration:none!important;transition:background .2s,border-color .2s}
.onym-care-c:hover{background:rgba(31,58,74,.85);border-color:rgba(242,228,201,.5)}
.onym-care-n{flex:none;min-width:64px;padding:6px 8px;border-radius:8px;background:var(--c);color:var(--ink);font:700 14px/1.1 var(--fb);text-align:center;white-space:nowrap}
.onym-care-t{display:flex;flex-direction:column;min-width:0}
.onym-care-t b{font-weight:600;font-size:13.5px}
.onym-care-t small{color:var(--b);font-size:12px;line-height:1.4}
.onym-offcard .onym-hook-face{background:linear-gradient(145deg,#c0473f,#5a2a2a 50%,#c0473f)}
a.onym-choice{text-decoration:none!important}
.onym-log{position:relative}
.onym-more{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,190,122,.55);background:rgba(13,26,38,.92);color:var(--g);font-size:14px;line-height:1;box-shadow:0 6px 16px rgba(0,0,0,.45);z-index:3;animation:onymBob 1.6s ease-in-out infinite}
.onym-more[hidden]{display:none}
.onym-more:hover{background:var(--mid)}

.onym-hid{display:none!important}

.onym-song{display:flex;width:max-content;align-items:center;gap:.4em;margin-top:.6em;padding:.35em .9em;border:0;border-radius:999px;background:#F2E4C9;color:#152635;font:600 .85em Inter,sans-serif;cursor:pointer;transition:background .2s}
.onym-song:hover{background:#FFBE7A}
.onym-song span{animation:onymNote 1.2s ease-in-out infinite}
@keyframes onymNote{50%{transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.onym-song span{animation:none}}
