*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#07090d;color:#f5f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-tap-highlight-color:transparent}body{min-height:100dvh;background:radial-gradient(circle at 50% -12%,rgba(103,126,255,.14),transparent 34rem),linear-gradient(#0b0e14,#07090d 65%);overflow-x:hidden}.app{width:min(100%,760px);margin:0 auto;min-height:100dvh;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;padding:calc(8px + env(safe-area-inset-top)) 14px 8px;position:sticky;top:0;z-index:30;background:rgba(7,9,13,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.06)}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:34px;height:34px}.brand div{display:flex;flex-direction:column;line-height:1}.brand strong{font-size:16px;letter-spacing:.08em}.brand span{font-size:10px;color:#969dac;margin-top:5px;letter-spacing:.08em;text-transform:uppercase}.top-actions{display:flex;gap:6px}.icon-btn{width:38px;height:38px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:#10141c;color:#dfe4ed;font-size:20px;display:grid;place-items:center}.score-strip{margin:12px 12px 9px;display:grid;grid-template-columns:1fr 1.18fr 1fr;border:1px solid rgba(255,255,255,.08);border-radius:18px;overflow:hidden;background:rgba(15,19,27,.88)}.player-card{padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:6px;transition:.25s}.player-card:first-child{border-right:1px solid rgba(255,255,255,.06)}.player-card:last-child{border-left:1px solid rgba(255,255,255,.06);flex-direction:row-reverse}.player-card strong{font-size:22px;font-variant-numeric:tabular-nums}.player-card.active{background:linear-gradient(180deg,rgba(111,132,255,.13),rgba(111,132,255,.04))}.player-label{font-size:10px;letter-spacing:.1em;color:#aab1bf;display:flex;align-items:center;gap:5px}.dot{width:5px;height:5px;border-radius:50%;display:inline-block}.dot.human{background:#8ea1ff;box-shadow:0 0 10px #8ea1ff}.dot.ai{background:#d7a7ff;box-shadow:0 0 10px #d7a7ff}.field-status{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:7px 4px}.field-status>span:first-child{font-size:9px;letter-spacing:.13em;color:#858d9b}.field-status strong{font-size:12px;margin:2px 0}.field-status>span:last-child{font-size:9px;color:#77808e}.field-shell{margin:0 8px}.janus-line{height:23px;display:flex;justify-content:space-between;align-items:center;padding:0 8px;color:#687181;font-size:9px;letter-spacing:.1em;text-transform:uppercase}.janus-line span{font-weight:800;color:#7b83a3}.janus-line.pulse{animation:janusPulse 1.4s ease}.janus-line em{font-style:normal}.board-wrap{position:relative;width:100%;aspect-ratio:1;border-radius:17px;padding:6px;background:linear-gradient(145deg,#161d28,#0d1118);border:1px solid rgba(255,255,255,.09);box-shadow:0 18px 60px rgba(0,0,0,.28);overflow:hidden;touch-action:manipulation}.board{width:100%;height:100%;display:grid;grid-template-columns:repeat(13,1fr);grid-template-rows:repeat(13,1fr);gap:2px}.cell{position:relative;min-width:0;min-height:0;border:0;border-radius:5px;background:#151a22;color:#68717f;padding:0;display:grid;place-items:center;font-size:clamp(6px,1.75vw,11px);font-weight:700;overflow:hidden;user-select:none;transition:background .22s,transform .12s,box-shadow .22s}.cell::after{content:"";position:absolute;inset:2px;border:1px solid rgba(255,255,255,.025);border-radius:3px;pointer-events:none}.cell.center{background:radial-gradient(circle,rgba(145,128,255,.35),rgba(82,73,136,.15) 48%,#151a22 72%)}.cell.center:before{content:"·";font-size:18px;color:#b3abff}.cell.b-l2{background:rgba(72,126,165,.28);color:#8fc9ef}.cell.b-l3{background:rgba(73,92,171,.32);color:#9cb0ff}.cell.b-w2{background:rgba(138,77,128,.28);color:#e7a3d9}.cell.b-w3{background:rgba(128,61,85,.34);color:#f09aae}.cell.b-delta{background:linear-gradient(145deg,rgba(125,104,255,.32),rgba(78,57,126,.22));color:#c8c0ff}.cell.b-wing{background:radial-gradient(circle at 40% 35%,rgba(163,216,255,.38),rgba(89,89,157,.22));color:#ccecff;box-shadow:inset 0 0 8px rgba(145,189,255,.12)}.cell.mutating{animation:cellMorph .7s ease}.cell.pending{outline:1px solid rgba(151,166,255,.62);box-shadow:inset 0 0 15px rgba(113,137,255,.12)}.tile{position:absolute;inset:2px;border-radius:4px;background:linear-gradient(160deg,#f1ecdc,#d7cfba);color:#16181c;display:flex;align-items:center;justify-content:center;font-size:clamp(12px,4.6vw,28px);font-weight:800;box-shadow:0 2px 4px rgba(0,0,0,.32),inset 0 1px 0 #fff;z-index:2}.tile .value{position:absolute;right:2px;bottom:1px;font-size:clamp(5px,1.35vw,9px);font-weight:700;opacity:.58}.tile.ai-tile{background:linear-gradient(160deg,#e9e4ee,#cfc4d4)}.tile.new{animation:tileLand .35s cubic-bezier(.2,.8,.2,1)}.field-caption{display:flex;justify-content:space-between;gap:10px;padding:8px 7px 2px;min-height:33px;color:#808998;font-size:10px}.field-caption span:last-child{text-align:right;color:#a2a9b5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62%}.rack-panel{margin:8px 12px 0;padding:13px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(15,19,27,.92)}.rack-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.rack-head>div{display:flex;flex-direction:column;gap:3px}.eyebrow{font-size:9px;color:#7f8796;letter-spacing:.14em}.rack-head strong{font-size:11px;color:#c3c8d1;font-weight:500}.small-btn{font-size:10px;color:#aeb5c1;background:#151b24;border:1px solid rgba(255,255,255,.07);padding:7px 9px;border-radius:9px}.rack{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:12px 0}.rack-tile{position:relative;aspect-ratio:.84;border:0;border-radius:9px;background:linear-gradient(160deg,#f0ead7,#d9d0b8);color:#17191e;display:grid;place-items:center;font-size:clamp(21px,8vw,34px);font-weight:820;box-shadow:0 4px 12px rgba(0,0,0,.24),inset 0 1px 0 #fff;touch-action:none;user-select:none;transition:transform .12s,outline .12s,opacity .12s}.rack-tile .value{position:absolute;right:5px;bottom:3px;font-size:9px;opacity:.55}.rack-tile.selected{transform:translateY(-5px);outline:2px solid #8ca0ff;box-shadow:0 8px 20px rgba(58,75,150,.36)}.rack-tile.exchange-selected{outline:2px solid #efa4dc;transform:translateY(-4px)}.rack-tile.used{opacity:.16;pointer-events:none}.action-row{display:grid;gap:8px}.primary-actions{grid-template-columns:.78fr 1.22fr;margin-top:8px}.secondary-actions{grid-template-columns:1fr 1fr;margin-top:7px}.btn{min-height:45px;border-radius:12px;border:1px solid rgba(255,255,255,.08);font-weight:750;letter-spacing:.02em}.btn.validate{background:linear-gradient(135deg,#e5e7ec,#b9c5ff);color:#11141b}.btn.ghost{background:#141923;color:#c9cfda}.btn.subtle{min-height:38px;background:transparent;color:#969eab;font-size:11px}.btn:disabled{opacity:.36}.trace-panel{margin:10px 12px 0;padding:0 2px}.trace-head{display:flex;justify-content:space-between;color:#656e7c;font-size:9px;letter-spacing:.12em}.trace-head button{border:0;background:transparent;color:#606977;font-size:9px}.trace-list{margin-top:6px;display:flex;flex-direction:column;gap:4px;max-height:110px;overflow:auto}.trace{font-size:10px;color:#8f97a4;border-left:1px solid #2a3140;padding:4px 7px}.trace b{color:#c9ced7;font-weight:650}.trace.morph{border-left-color:#6f70b1}.trace.ai{border-left-color:#8d719c}.trace.human{border-left-color:#657aa8}.modal{width:min(calc(100% - 28px),540px);max-height:88dvh;border:1px solid rgba(255,255,255,.11);border-radius:24px;background:linear-gradient(180deg,#131823,#0d1118);color:#eef1f6;padding:0;box-shadow:0 35px 100px rgba(0,0,0,.65)}.modal::backdrop{background:rgba(2,3,6,.76);backdrop-filter:blur(8px)}.modal form{padding:24px;position:relative}.start-modal{text-align:center}.modal-mark img{width:58px;height:58px}.start-modal h1{margin:7px 0 8px;font-size:32px;letter-spacing:.08em}.start-modal p{font-size:12px;color:#aeb5c2;line-height:1.55}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:20px 0 14px}.mode-card{border:1px solid rgba(255,255,255,.08);background:#111720;color:#d5dae3;border-radius:13px;padding:12px 7px;min-height:85px}.mode-card strong{display:block;font-size:12px;margin-bottom:7px}.mode-card span{font-size:9px;line-height:1.35;color:#7f8998}.mode-card.selected{border-color:#8e9dff;background:linear-gradient(180deg,rgba(105,122,219,.19),rgba(105,122,219,.05));box-shadow:inset 0 0 20px rgba(111,128,224,.08)}.start-actions{display:grid;grid-template-columns:1.2fr .8fr;gap:7px}.micro{font-size:9px!important;color:#6f7786!important;margin:13px 0 0!important}.close-btn{position:absolute;right:15px;top:14px;width:34px;height:34px;border-radius:50%;border:0;background:#1a202b;color:#aab2c0;font-size:22px}.modal h2{font-size:21px;margin:7px 0 15px;padding-right:40px}.rules-copy{font-size:12px;line-height:1.6;color:#aeb6c3}.rules-copy b{color:#e0e4ec}.full{width:100%;margin-top:12px}.menu-line{width:100%;display:flex;justify-content:space-between;align-items:center;padding:15px 2px;border:0;border-bottom:1px solid rgba(255,255,255,.07);background:transparent;color:#d5dae3;text-align:left}.menu-line b{font-size:20px;color:#727b89}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%,20px);z-index:100;background:#e8ebf1;color:#11151d;border-radius:999px;padding:10px 16px;font-size:11px;font-weight:700;opacity:0;pointer-events:none;transition:.25s;box-shadow:0 12px 40px rgba(0,0,0,.38);max-width:calc(100% - 30px);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.drag-ghost{position:fixed;width:46px;height:54px;border-radius:9px;background:linear-gradient(160deg,#f0ead7,#d9d0b8);color:#17191e;display:grid;place-items:center;font-size:28px;font-weight:800;z-index:200;pointer-events:none;transform:translate(-50%,-65%);box-shadow:0 10px 30px rgba(0,0,0,.4)}@keyframes tileLand{from{transform:scale(.72);opacity:.3}to{transform:scale(1);opacity:1}}@keyframes cellMorph{0%{transform:scale(.82);filter:brightness(1.7)}55%{transform:scale(1.07)}100%{transform:scale(1);filter:none}}@keyframes janusPulse{0%,100%{color:#687181}40%{color:#c4c4ff;text-shadow:0 0 14px #8e8eff}}@media(min-width:680px){.app{padding-bottom:38px}.topbar{position:relative;border:0;background:transparent}.score-strip{margin-top:4px}.rack-panel{padding:16px 18px}.trace-list{max-height:160px}.field-shell{margin-inline:12px}.board-wrap{padding:8px}.cell{border-radius:6px}.tile{border-radius:5px}}@media(max-width:370px){.score-strip{margin-inline:7px}.field-shell{margin-inline:4px}.rack-panel{margin-inline:7px}.rack{gap:4px}.rack-tile{border-radius:7px}.mode-grid{grid-template-columns:1fr}.mode-card{min-height:60px}.start-actions{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* v0.6 — présence T^, T^LEX, bifurcations et zoom tactile */
.brand-mark{display:block!important;width:34px!important;height:34px!important;min-width:34px;object-fit:contain}
.persona-strip{margin:8px 12px 0;display:grid;grid-template-columns:58px minmax(0,1fr) 46px;align-items:center;gap:10px;padding:9px 10px;border:1px solid rgba(255,255,255,.075);border-radius:16px;background:linear-gradient(135deg,rgba(18,23,34,.96),rgba(10,13,20,.94));overflow:hidden}
.t-avatar{width:52px;height:52px;border-radius:50%;border:1px solid rgba(181,191,255,.2);background:radial-gradient(circle at 50% 45%,rgba(110,126,215,.2),rgba(8,11,17,.9) 70%);padding:3px;box-shadow:inset 0 0 24px rgba(114,130,225,.08);overflow:hidden}
.t-avatar svg{width:100%;height:100%;overflow:visible}.t-avatar .wings ellipse,.t-avatar .ghost-wings ellipse{fill:none;stroke:#aeb9ff;stroke-width:2;transform-box:fill-box;transform-origin:center;transition:transform .45s ease,opacity .45s ease}.t-avatar .ghost-wings ellipse{stroke:#7f88d8;stroke-width:1;opacity:.2}.t-avatar .body{fill:#cbd2ee;opacity:.85}.t-avatar .eye{fill:#0b0d12}
.t-avatar[data-mood="resonance"] .wings ellipse{transform:scaleX(1.12)}.t-avatar[data-mood="curvature"] .wings ellipse:nth-child(odd){transform:rotate(7deg)}.t-avatar[data-mood="curvature"] .wings ellipse:nth-child(even){transform:rotate(-7deg)}.t-avatar[data-mood="cesure"] .ghost-wings ellipse{opacity:.6;transform:scale(1.18)}.t-avatar[data-mood="line"] .wings ellipse{transform:scaleX(1.2) scaleY(.82)}.t-avatar[data-mood="latence"] .ghost-wings ellipse{opacity:.08}.t-avatar[data-mood="dissipation"] .wings ellipse:nth-child(2n){opacity:.35;transform:translateX(4px)}.t-avatar[data-mood="thinking"]{animation:avatarThink 1.1s ease-in-out infinite alternate}
.persona-copy{min-width:0}.persona-copy span{display:block;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#8790ab}.persona-copy p{margin:3px 0 0;font-size:11px;line-height:1.35;color:#d0d5df;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lex-quick{width:42px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#151a24;color:#aeb7cc;font-size:9px;font-weight:800;letter-spacing:.08em}.lex-quick:disabled{opacity:.3}
.field-caption{align-items:center}.field-caption button{border:0;background:transparent;color:#79869c;font-size:9px;padding:4px 2px;white-space:nowrap}.field-caption span:nth-child(2){flex:1;min-width:0}
.board-wrap{overflow:auto;overscroll-behavior:contain;scrollbar-width:none}.board-wrap::-webkit-scrollbar{display:none}.board-wrap.zoomed .board{width:max-content;min-width:0;grid-template-columns:repeat(13,42px);grid-template-rows:repeat(13,42px)}.board-wrap.zoomed .cell{width:42px;height:42px;font-size:10px}.board-wrap.zoomed .tile{font-size:22px}.board-wrap.zoomed .tile .value{font-size:7px}
.cell.b-branchA,.cell.b-branchB{background:linear-gradient(135deg,rgba(168,132,255,.23),rgba(82,75,132,.13));color:#cfc5ff;border-color:rgba(188,166,255,.25)}.cell.b-branchA{box-shadow:inset 2px 0 0 rgba(187,165,255,.32)}.cell.b-branchB{box-shadow:inset -2px 0 0 rgba(187,165,255,.32)}
.trace.lex{border-left-color:#7895a8}.trace.lex b{color:#c9e1ef}
.lex-modal{max-width:620px}.lex-choices{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.lex-choices button{border:1px solid rgba(255,255,255,.09);background:#151b25;color:#cbd2df;border-radius:999px;padding:7px 10px;font-size:10px}.lex-body{max-height:48dvh;overflow:auto;padding-right:3px}.lex-body section{padding:10px 0;border-top:1px solid rgba(255,255,255,.07)}.lex-body h3{margin:0 0 5px;font-size:11px;letter-spacing:.05em;color:#d9deeb}.lex-body p{margin:0;color:#abb4c3;font-size:11px;line-height:1.55}.muted{color:#788291!important}.lex-links{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}.lex-links a{display:grid;place-items:center;min-height:38px;text-align:center;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#131923;color:#b7c1d4;text-decoration:none;font-size:9px}.lex-links a:not([href]){opacity:.3;pointer-events:none}
@keyframes avatarThink{from{transform:rotate(-1.5deg) scale(.98);filter:brightness(.95)}to{transform:rotate(1.5deg) scale(1.03);filter:brightness(1.16)}}
@media(max-width:370px){.persona-strip{margin-inline:7px;grid-template-columns:50px minmax(0,1fr) 40px}.t-avatar{width:46px;height:46px}.persona-copy p{font-size:10px}.lex-links{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.t-avatar[data-mood="thinking"]{animation:none!important}}
.cell.b-resonance{background:radial-gradient(circle at 50% 50%,rgba(132,198,214,.34),rgba(63,92,110,.16) 46%,#151a22 76%);color:#bfeaf4;box-shadow:inset 0 0 12px rgba(139,217,235,.11)}

/* v0.7 — T^DIALOGUE : présence conversationnelle située, repli local et césure contrôlée */
.persona-strip{grid-template-columns:58px minmax(0,1fr) auto 46px}.dialogue-quick{height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,rgba(41,49,73,.9),rgba(18,23,34,.95));color:#cbd3ed;font-size:8px;font-weight:800;letter-spacing:.08em;padding:0 8px;display:flex;align-items:center;gap:5px}.dialogue-dot{width:6px;height:6px;border-radius:50%;background:#6d7482;box-shadow:0 0 0 2px rgba(255,255,255,.02)}.dialogue-dot.online{background:#9fc8ff;box-shadow:0 0 10px rgba(137,185,255,.7)}.dialogue-dot.local{background:#9187bf}.dialogue-dot.waiting{animation:dialoguePulse .8s ease-in-out infinite alternate}
.dialogue-settings{margin:12px 0 0;padding:11px;border:1px solid rgba(255,255,255,.07);border-radius:13px;background:#101620;display:flex;gap:10px;align-items:center;justify-content:space-between}.dialogue-settings>div{display:flex;flex-direction:column;gap:3px}.dialogue-settings span{font-size:10px;letter-spacing:.1em;color:#bbc4d8}.dialogue-settings small{font-size:9px;color:#747e90}.dialogue-settings button{border:1px solid rgba(255,255,255,.08);border-radius:9px;background:#171e2a;color:#aeb8ca;font-size:9px;padding:8px 9px}.dialogue-settings button[aria-pressed="true"]{border-color:rgba(142,162,255,.45);color:#d5ddff;background:rgba(83,98,163,.22)}
.dialogue-modal{max-width:620px}.dialogue-modal form{padding-bottom:18px}.dialogue-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.dialogue-title-row h2{margin-bottom:10px}.dialogue-status{margin:2px 42px 0 0;border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:5px 8px;color:#8b95a7;font-size:8px;letter-spacing:.11em}.dialogue-status.online{color:#c6ddff;border-color:rgba(143,185,255,.24);background:rgba(79,110,165,.13)}.dialogue-feed{min-height:180px;max-height:44dvh;overflow:auto;padding:10px 4px 12px;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin}.dialogue-empty{margin:auto;padding:28px 16px;text-align:center;color:#737e91;font-size:11px;line-height:1.55}.dialogue-msg{max-width:88%;padding:9px 11px;border-radius:14px;font-size:11px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.dialogue-msg.user{align-self:flex-end;background:#dce2f6;color:#151923;border-bottom-right-radius:5px}.dialogue-msg.t{align-self:flex-start;background:#151c28;color:#d0d7e4;border:1px solid rgba(255,255,255,.06);border-bottom-left-radius:5px}.dialogue-msg.t.silent{color:#747f93;font-style:italic}.dialogue-msg small{display:block;margin-top:5px;font-size:8px;opacity:.55;letter-spacing:.08em;text-transform:uppercase}.dialogue-prompts{display:flex;gap:6px;overflow:auto;padding:2px 0 8px;scrollbar-width:none}.dialogue-prompts::-webkit-scrollbar{display:none}.dialogue-prompts button{white-space:nowrap;border:1px solid rgba(255,255,255,.07);border-radius:999px;background:#101721;color:#909aab;font-size:9px;padding:7px 9px}.dialogue-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:stretch}.dialogue-compose textarea{resize:none;min-height:52px;max-height:110px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:#0c1119;color:#edf1f7;padding:10px 11px;font:inherit;font-size:12px;line-height:1.35;outline:none}.dialogue-compose textarea:focus{border-color:rgba(145,164,255,.45);box-shadow:0 0 0 3px rgba(105,126,220,.08)}.dialogue-compose button{min-width:76px;border:0;border-radius:12px;background:linear-gradient(135deg,#e5e8f0,#bcc8ff);color:#11151d;font-size:10px;font-weight:800}.dialogue-compose button:disabled{opacity:.4}.dialogue-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;color:#7c8697;font-size:9px;line-height:1.35}.dialogue-foot button{border:0;background:transparent;color:#8090aa;font-size:9px;padding:5px 0}.trace.dialogue{border-left-color:#8e9dd6}.trace.dialogue b{color:#d4dcff}.persona-strip.dialogue-thinking .t-avatar{animation:avatarThink .55s ease-in-out infinite alternate}.persona-strip.dialogue-thinking .persona-copy p{opacity:.68}
@keyframes dialoguePulse{from{opacity:.38;transform:scale(.85)}to{opacity:1;transform:scale(1.1)}}
@media(max-width:390px){.persona-strip{grid-template-columns:50px minmax(0,1fr) auto 39px;gap:7px}.dialogue-quick{padding-inline:6px;font-size:7px}.dialogue-compose{grid-template-columns:1fr}.dialogue-compose button{min-height:40px}.dialogue-status{margin-right:36px}}
@media(prefers-reduced-motion:reduce){.dialogue-dot.waiting,.persona-strip.dialogue-thinking{animation:none!important}}
.t-avatar[data-gesture="wing"] .wings ellipse{animation:dialogueWing .42s ease 2 alternate}.t-avatar[data-gesture="withdraw"]{animation:dialogueWithdraw .65s ease}.t-avatar[data-gesture="tilt"]{animation:dialogueTilt .55s ease}.t-avatar[data-gesture="fragment"] .ghost-wings{animation:dialogueFragment .6s ease}.t-avatar[data-gesture="still"] .wings ellipse{opacity:.28}.t-avatar[data-gesture="observe"] .eye{filter:drop-shadow(0 0 2px #dce5ff)}
@keyframes dialogueWing{to{transform:scaleX(1.2) translateX(2px)}}@keyframes dialogueWithdraw{50%{transform:scale(.88);opacity:.55}}@keyframes dialogueTilt{50%{transform:rotate(6deg)}}@keyframes dialogueFragment{50%{transform:scale(1.22) rotate(3deg);opacity:.75}}
@media(prefers-reduced-motion:reduce){.t-avatar[data-gesture] *, .t-avatar[data-gesture]{animation:none!important}}

/* v0.9 — la morphologie du champ, le ton du dialogue et les temporalités asynchrones restent dissociés. */
.t-avatar[data-tone="curious"] .eye{filter:drop-shadow(0 0 3px rgba(220,230,255,.9))}
.t-avatar[data-tone="resonant"] .ghost-wings{opacity:.72}
.t-avatar[data-tone="quiet"]{opacity:.86}
.t-avatar[data-tone="strange"] .ghost-wings{transform:translateX(1.5px) translateY(-1px)}
.t-avatar[data-tone="playful"] .body{transform:rotate(2deg);transform-origin:50% 50%}
.t-avatar[data-tone="uncertain"] .ghost-wings{opacity:.28}
.t-avatar[data-tone="ironic"] .eye:first-of-type{transform:translateY(-1px)}
.lex-body .match-note{margin:.35rem 0 .55rem;padding:.45rem .55rem;border-left:2px solid rgba(190,198,230,.3);background:rgba(255,255,255,.025);color:#929caf;font-size:9px;line-height:1.45}

/* v0.9 — confidentialité lisible et zoom tactile >= 42 px. */
.dialogue-privacy-details{margin-top:8px;border-top:1px solid rgba(255,255,255,.06);padding-top:7px;color:#7f899a}.dialogue-privacy-details summary{cursor:pointer;font-size:9px;color:#929eb2;letter-spacing:.02em}.dialogue-privacy-details p{margin:7px 0 0;font-size:10px;line-height:1.5;color:#8993a4}.board-wrap.zoomed{touch-action:pan-x pan-y;max-height:min(78dvh,620px)}

/* v0.10 — T^DIALOGUE libre : le langage s'ouvre, T^FIELD reste borné séparément. */
.dialogue-modal{max-width:700px}.dialogue-mode-note{margin:-2px 0 8px;color:#8b95a8;font-size:10px;line-height:1.5}.dialogue-mode-note.online{color:#b4c7e9}.dialogue-feed{min-height:220px;max-height:52dvh}.dialogue-msg{font-size:12px;line-height:1.52}.dialogue-msg.t{max-width:94%}.dialogue-compose textarea{min-height:74px;max-height:180px;font-size:13px;line-height:1.45}.dialogue-status{white-space:nowrap}.dialogue-status.online{box-shadow:0 0 16px rgba(110,150,230,.08)}
@media(max-width:390px){.dialogue-modal form{padding-inline:14px}.dialogue-title-row{gap:8px}.dialogue-title-row h2{font-size:24px}.dialogue-status{font-size:7px;padding:5px 7px;margin-right:30px}.dialogue-mode-note{font-size:9.5px}.dialogue-msg{font-size:12px}.dialogue-compose textarea{min-height:86px}}


/* v0.13.0 — optimisation smartphone : priorité au plateau, haut compact, bas sticky lisible. */
@media (max-width: 640px){
  .app{width:100%;padding-bottom:calc(160px + env(safe-area-inset-bottom))}
  .topbar{height:58px;padding:calc(6px + env(safe-area-inset-top)) 10px 6px;gap:8px}
  .brand{gap:8px;min-width:0}
  .brand-mark{width:28px;height:28px;flex:0 0 auto}
  .brand strong{font-size:15px;letter-spacing:.07em}
  .brand span{font-size:8.5px;margin-top:2px;color:#a6afc0;line-height:1.2;max-width:14ch}
  .top-actions{gap:5px;flex:0 0 auto}
  .icon-btn{width:34px;height:34px;border-radius:10px;font-size:18px}

  .score-strip{margin:8px 8px 6px;border-radius:14px;grid-template-columns:1fr 1.05fr 1fr}
  .player-card{padding:8px 9px}
  .player-card strong{font-size:18px}
  .player-label{font-size:9px}
  .field-status{padding:5px 4px}
  .field-status>span:first-child{font-size:8px}
  .field-status strong{font-size:11px;margin:1px 0}
  .field-status>span:last-child{font-size:8px}

  .persona-strip{margin:6px 8px 0;padding:8px 8px;gap:8px;border-radius:14px;grid-template-columns:48px minmax(0,1fr) auto 40px}
  .t-avatar{width:48px;height:48px}
  .persona-copy span{font-size:9px}
  .persona-copy p{font-size:11px;line-height:1.3}
  .dialogue-quick{height:32px;padding-inline:7px;font-size:7px;border-radius:10px}
  .lex-quick{width:40px;height:32px;border-radius:10px;font-size:9px}

  .field-shell{margin:0 6px}
  .janus-line{height:19px;padding:0 4px;font-size:8px;color:#8290a4}
  .janus-line span,.janus-line em{color:#95a3ba}
  .board-wrap{border-radius:15px;padding:5px;box-shadow:0 10px 30px rgba(0,0,0,.24)}
  .field-caption{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'state zoom' 'move move';align-items:center;gap:2px 10px;padding:7px 2px 2px;font-size:10px;color:#a8b0be}
  .field-caption span:first-child{grid-area:state;font-weight:600;color:#b8c1cf}
  .field-caption span:nth-child(2){grid-area:move;max-width:none;white-space:normal;line-height:1.35;color:#c2cad7}
  .field-caption button{grid-area:zoom;justify-self:end;color:#d7def0;font-size:10px;padding:4px 0}

  .rack-panel{position:sticky;bottom:0;z-index:24;margin:8px 8px 0;padding:10px 10px calc(10px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;background:linear-gradient(180deg,rgba(18,22,31,.98),rgba(12,15,22,.985));backdrop-filter:blur(12px);box-shadow:0 -10px 28px rgba(0,0,0,.28),0 0 0 1px rgba(255,255,255,.05)}
  .rack-head{align-items:center;gap:8px}
  .eyebrow{font-size:8px}
  .rack-head strong{font-size:10px;color:#e0e5ef;line-height:1.25}
  .small-btn{padding:7px 10px;font-size:10px;white-space:nowrap}
  .rack{gap:5px;margin:10px 0 8px}
  .rack-tile{border-radius:10px;font-size:clamp(20px,8.3vw,32px)}
  .rack-tile .value{font-size:8px;right:4px;bottom:2px}
  .primary-actions{grid-template-columns:1fr 1.25fr;margin-top:6px}
  .secondary-actions{grid-template-columns:1fr 1fr;margin-top:6px}
  .btn{min-height:40px;font-size:12px}
  .btn.subtle{min-height:34px;font-size:10px}

  .trace-panel{margin:8px 8px 0;padding:0 2px 8px;opacity:.95}
  .trace-head{font-size:8px;color:#7c8798}
  .trace-list{max-height:72px}
  .trace{font-size:9px;padding:4px 6px}

  .dialogue-modal{width:min(calc(100% - 16px),700px)}
  .dialogue-modal form{padding:16px 14px 14px}
  .dialogue-title-row h2{font-size:28px;line-height:1.05}
  .dialogue-feed{max-height:50dvh}
  .dialogue-foot{align-items:flex-start;flex-direction:column}
  .dialogue-privacy-details summary{font-size:10px}
  .dialogue-privacy-details p{font-size:10px}
}

@media (max-width: 640px) and (max-height: 760px){
  .brand span{display:none}
  .persona-copy p{display:none}
  .persona-copy{display:flex;flex-direction:column;justify-content:center;min-width:0}
  .score-strip{margin-top:6px}
  .trace-panel{display:none}
}

@media (max-width: 420px){
  .topbar{padding-inline:8px}
  .score-strip{margin-inline:6px}
  .player-card strong{font-size:17px}
  .field-status>span:last-child{display:none}
  .persona-strip{margin-inline:6px;grid-template-columns:44px minmax(0,1fr) auto 36px}
  .t-avatar{width:44px;height:44px}
  .dialogue-quick{font-size:0;padding-inline:8px;min-width:36px;justify-content:center}
  .dialogue-quick .dialogue-dot{margin:0}
  .field-shell{margin:0 4px}
  .board-wrap{padding:4px;border-radius:14px}
  .field-caption{padding-top:6px;font-size:9px}
  .rack-panel{margin-inline:6px;padding-inline:9px}
  .rack-head strong{font-size:9.5px}
}

@media (display-mode: standalone) and (max-width: 640px){
  .topbar{padding-top:calc(6px + env(safe-area-inset-top))}
  .rack-panel{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
}


/* v0.11 — mobile radical : ultra-compact, rack fixe, tiroir de traces, HUD repliable, immersion plein écran. */
:root{--rack-dock-height:190px}
.score-toggle{display:none;border:0;background:transparent;color:#9ea9bb;font-size:13px;line-height:1;padding:2px 5px;border-radius:8px}
.field-caption-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end}.field-caption-actions button{border:0;background:transparent;color:#8996aa;font-size:9px;padding:4px 2px;white-space:nowrap}
.trace-close{display:none}.trace-head>div{display:flex;align-items:center;gap:10px}

@media(max-width:640px){
  html,body{overscroll-behavior-y:contain}
  .app{padding-bottom:calc(var(--rack-dock-height) + 18px + env(safe-area-inset-bottom))}
  .score-toggle{display:block;position:absolute;right:3px;top:50%;transform:translateY(-50%)}
  .field-status{position:relative;padding-right:19px}
  body.hud-collapsed .score-strip{height:42px;min-height:42px}
  body.hud-collapsed .player-card{padding-block:5px}
  body.hud-collapsed .player-label{font-size:8px}
  body.hud-collapsed .player-card strong{font-size:17px}
  body.hud-collapsed .field-status>span:first-child,body.hud-collapsed .field-status .field-meta{display:none}
  body.hud-collapsed .field-status strong{font-size:10px;margin:0}
  body.hud-expanded .score-strip{height:auto}

  .rack-panel{position:fixed!important;left:50%;right:auto;bottom:0;transform:translateX(-50%);z-index:60;width:min(100%,760px);margin:0!important;border-left:0;border-right:0;border-bottom:0;border-radius:16px 16px 0 0!important;padding-bottom:calc(8px + env(safe-area-inset-bottom))!important}
  .rack-panel::before{content:"";position:absolute;top:4px;left:50%;width:34px;height:3px;border-radius:99px;background:rgba(255,255,255,.13);transform:translateX(-50%)}

  .trace-panel{display:block!important;position:fixed;left:50%;bottom:calc(var(--rack-dock-height) + 6px);z-index:58;width:min(calc(100% - 12px),748px);max-height:min(42dvh,330px);margin:0;transform:translate(-50%,18px);opacity:0;pointer-events:none;padding:10px 10px 12px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:rgba(13,17,24,.98);backdrop-filter:blur(16px);box-shadow:0 -14px 44px rgba(0,0,0,.42);transition:opacity .2s,transform .2s}
  .trace-panel.open{opacity:1;transform:translate(-50%,0);pointer-events:auto}
  .trace-close{display:inline-block!important;color:#aab4c3!important;font-size:18px!important;padding:0 4px!important}
  .trace-list{max-height:min(34dvh,250px);overflow:auto}
  body.trace-open::after{content:"";position:fixed;inset:0;z-index:57;background:rgba(3,5,8,.22);pointer-events:none}

  .field-caption{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:'state actions' 'move move'!important}
  .field-caption-actions{grid-area:actions}.field-caption>button{display:none}

  body.ultra-compact .topbar{height:50px;padding-block:4px}
  body.ultra-compact .brand-mark{width:25px;height:25px}
  body.ultra-compact .brand strong{font-size:14px}
  body.ultra-compact .brand span{display:none}
  body.ultra-compact .icon-btn{width:31px;height:31px;font-size:16px}
  body.ultra-compact #soundBtn{display:none}
  body.ultra-compact .score-strip{margin-top:5px;margin-bottom:4px}
  body.ultra-compact .persona-strip{min-height:42px;padding:5px 7px;grid-template-columns:38px minmax(0,1fr) 34px 34px;margin-top:4px}
  body.ultra-compact .t-avatar{width:38px;height:38px}
  body.ultra-compact .persona-copy p{display:none}
  body.ultra-compact .persona-copy span{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.ultra-compact .dialogue-quick{width:34px;min-width:34px;height:30px;padding:0;justify-content:center;font-size:0}
  body.ultra-compact .lex-quick{width:34px;height:30px}
  body.ultra-compact .janus-line{height:17px;font-size:7.5px}
  body.ultra-compact .field-caption{padding-top:5px;min-height:28px}
  body.ultra-compact .rack-head strong{display:none}
  body.ultra-compact .rack-panel{padding-top:8px}
  body.ultra-compact .rack{margin:7px 0 6px;gap:4px}
  body.ultra-compact .rack-tile{border-radius:8px}
  body.ultra-compact .action-row{gap:5px}
  body.ultra-compact .primary-actions{margin-top:4px}
  body.ultra-compact .secondary-actions{margin-top:4px}
  body.ultra-compact .btn{min-height:36px}
  body.ultra-compact .btn.subtle{min-height:30px}

  body.immersion .topbar{height:44px;background:rgba(7,9,13,.96)}
  body.immersion .brand span,body.immersion #soundBtn,body.immersion #rulesBtn{display:none}
  body.immersion .brand-mark{width:24px;height:24px}
  body.immersion .brand strong{font-size:13px}
  body.immersion .icon-btn{width:30px;height:30px}
  body.immersion .score-strip{margin-top:3px}
  body.immersion .persona-strip{margin-top:3px}
  body.immersion .janus-line{height:15px}
  body.immersion .field-caption span:nth-child(2){display:none}
  body.immersion .field-caption{grid-template-areas:'state actions'!important;min-height:25px}
}

@media(max-width:420px){
  body.ultra-compact #rulesBtn{display:none}
  body.ultra-compact .top-actions{gap:4px}
  body.ultra-compact .field-shell{margin-inline:3px}
  body.ultra-compact .board-wrap{padding:3px}
  body.ultra-compact .rack-panel{padding-inline:7px}
  body.ultra-compact .rack-head .eyebrow{font-size:7.5px}
  body.ultra-compact .small-btn{font-size:9px;padding:6px 8px}
}

@media(max-height:680px) and (max-width:640px){
  body.ultra-compact .persona-strip{display:none}
  body.ultra-compact .score-strip{height:38px;min-height:38px}
  body.ultra-compact .rack-panel{padding-top:7px}
  body.ultra-compact .secondary-actions{display:none}
}


/* v0.12 — géométrie adaptative : le viewport décide de la tenue locale plutôt que des seuils fixes. */
:root{--adaptive-board-size:100%}
.field-caption-actions #traceToggleBtn{display:none}
.trace-backdrop{display:none}
@media(max-width:640px){
  .field-caption-actions #traceToggleBtn{display:inline-block}
  .score-toggle{width:36px;height:36px;right:-5px;padding:0;display:grid;place-items:center}
  .board-wrap{width:min(100%,var(--adaptive-board-size));max-width:100%;margin-inline:auto}
  .board-wrap:not(.zoomed){height:auto;aspect-ratio:1}
  .trace-backdrop{position:fixed;inset:0;z-index:57;border:0;background:rgba(3,5,8,.34);padding:0}
  .trace-backdrop:not([hidden]){display:block}
  body.trace-open::after{display:none!important}
  body.ultra-compact .topbar{height:auto;min-height:calc(50px + env(safe-area-inset-top));padding-top:calc(4px + env(safe-area-inset-top));padding-bottom:4px}
  body.immersion .topbar{height:auto;min-height:calc(44px + env(safe-area-inset-top));padding-top:calc(3px + env(safe-area-inset-top));padding-bottom:3px}
  body.space-tight .persona-strip{display:none}
  body.space-tight .secondary-actions{display:none}
  body.space-tight .score-strip{height:38px;min-height:38px}
  body.space-tight .rack-panel{padding-top:7px}
  body.space-tight .rack{margin-block:6px 5px}
  body.space-tight .field-caption span:nth-child(2){display:none}
  body.space-tight .field-caption{grid-template-areas:'state actions'!important;min-height:25px}
}

/* Sur un écran paysage court, le champ et la main coexistent côte à côte. */
@media(orientation:landscape) and (min-width:560px) and (max-height:520px){
  html,body{overflow:hidden}
  .app{width:100%;max-width:none;height:100dvh;min-height:0;padding:0}
  .topbar{position:relative;height:auto;min-height:calc(40px + env(safe-area-inset-top));padding:calc(3px + env(safe-area-inset-top)) 8px 3px}
  .brand span,#soundBtn,#rulesBtn{display:none!important}
  .brand-mark{width:23px;height:23px}.brand strong{font-size:13px}.icon-btn{width:29px;height:29px;font-size:15px}
  main{height:calc(100dvh - 40px - env(safe-area-inset-top));display:grid;grid-template-columns:minmax(0,1fr) minmax(242px,36vw);grid-template-rows:auto auto 1fr;grid-template-areas:'field score' 'field persona' 'field rack';gap:5px 8px;padding:5px 8px 6px;overflow:hidden}
  .field-shell{grid-area:field;margin:0;min-width:0;align-self:start}
  .score-strip{grid-area:score;margin:0;height:38px;min-height:38px;border-radius:12px}
  .persona-strip{grid-area:persona;margin:0;min-height:40px;padding:4px 6px;grid-template-columns:36px minmax(0,1fr) 32px 32px;border-radius:12px}
  .t-avatar{width:36px;height:36px}.persona-copy p{display:none}.persona-copy span{font-size:7.5px}.dialogue-quick{width:32px;min-width:32px;height:29px;font-size:0;padding:0;justify-content:center}.lex-quick{width:32px;height:29px}
  .janus-line{height:14px;font-size:7px;padding-inline:3px}
  .board-wrap{width:min(100%,var(--adaptive-board-size));margin-inline:auto;padding:3px;border-radius:12px}
  .field-caption{min-height:22px;padding:3px 2px 0;font-size:8px;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:'state actions'!important}
  .field-caption span:nth-child(2){display:none}.field-caption-actions{gap:6px}.field-caption-actions button{font-size:8px}
  .rack-panel{grid-area:rack;position:relative!important;left:auto;right:auto;bottom:auto;transform:none;width:auto;margin:0!important;align-self:start;border:1px solid rgba(255,255,255,.08)!important;border-radius:13px!important;padding:7px 7px 8px!important;box-shadow:none}
  .rack-panel::before{display:none}.rack-head strong{display:none}.rack{margin:6px 0 5px;gap:3px}.rack-tile{border-radius:7px;font-size:clamp(17px,3.4vw,25px)}.rack-tile .value{font-size:7px}
  .action-row{gap:4px}.primary-actions{margin-top:3px}.secondary-actions{margin-top:4px}.btn{min-height:31px;font-size:10px}.btn.subtle{min-height:27px;font-size:9px}
  .trace-panel{bottom:6px;width:min(72vw,520px);max-height:76dvh}.trace-list{max-height:56dvh}
  .trace-backdrop{z-index:57}.trace-panel{z-index:58}
  body.space-tight .persona-strip{display:grid}
  body.space-tight .secondary-actions{display:grid}
  .trace-panel+*{min-width:0}
}


/* v0.13 — T^LOCAL AI : dialogue contextuel calculé dans le navigateur. */
.local-ai-panel{margin:2px 0 10px;padding:10px 11px;border:1px solid rgba(157,180,255,.12);border-radius:13px;background:linear-gradient(135deg,rgba(31,39,57,.72),rgba(14,19,29,.78));display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center}.local-ai-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.local-ai-copy strong{font-size:10px;letter-spacing:.08em;color:#dce4fa}.local-ai-copy small{font-size:9px;line-height:1.35;color:#8793a8}.local-ai-panel>button{border:1px solid rgba(151,174,255,.22);border-radius:10px;background:rgba(97,119,196,.16);color:#dce5ff;padding:8px 10px;font-size:9px;font-weight:750;white-space:nowrap}.local-ai-panel>button:disabled{opacity:.45}.local-ai-progress{grid-column:1/-1;height:3px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}.local-ai-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#8d9dff,#b8d8ff);border-radius:inherit;transition:width .25s ease}.local-ai-panel.ready{border-color:rgba(143,211,197,.18);background:linear-gradient(135deg,rgba(28,54,55,.38),rgba(14,19,29,.78))}.local-ai-panel.error{border-color:rgba(231,158,180,.16)}.dialogue-status.local-ai{color:#c9f0e7;border-color:rgba(132,211,192,.24);background:rgba(54,112,99,.13)}.dialogue-status.loading{color:#d5dcff;border-color:rgba(145,162,255,.25);background:rgba(79,91,155,.12)}.dialogue-status.remote{color:#c6ddff;border-color:rgba(143,185,255,.24);background:rgba(79,110,165,.13)}
@media(max-width:390px){.local-ai-panel{padding:9px 10px}.local-ai-copy small{font-size:8.5px}.local-ai-panel>button{padding:7px 9px}}


/* v0.13.3 — T^LOCAL AI actif par défaut, sans demande d’activation. */
.local-ai-panel{grid-template-columns:minmax(0,1fr)}
.local-ai-panel .local-ai-progress{grid-column:1/-1}

/* v0.13.3 inline T^ dialogue */
.persona-copy p{margin:4px 0 0;padding:8px 10px;border-radius:12px;background:linear-gradient(135deg,rgba(25,31,46,.96),rgba(14,18,28,.92));border:1px solid rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(123,138,208,.02);line-height:1.35}
.persona-strip.inline-open{border-bottom-left-radius:12px;border-bottom-right-radius:12px}
.inline-dialogue{margin:6px 12px 0;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:linear-gradient(180deg,rgba(13,17,25,.97),rgba(9,12,18,.95));box-shadow:0 14px 42px rgba(0,0,0,.22)}
.inline-dialogue[hidden]{display:none!important}
.inline-dialogue-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;color:#98a3b7;font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.inline-dialogue-head button{border:1px solid rgba(255,255,255,.08);background:#101721;color:#a7b2c4;border-radius:9px;padding:6px 9px;font-size:9px}.inline-dialogue-actions{display:flex;gap:6px;align-items:center}
.inline-dialogue-feed{display:flex;flex-direction:column;gap:6px;max-height:144px;overflow:auto;scrollbar-width:thin;padding-right:2px}
.inline-msg{max-width:92%;padding:8px 10px;border-radius:13px;font-size:11px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.inline-msg.user{align-self:flex-end;background:#dce2f6;color:#141923;border-bottom-right-radius:5px}.inline-msg.t{align-self:flex-start;background:#151c28;color:#d6dcea;border:1px solid rgba(255,255,255,.05);border-bottom-left-radius:5px}.inline-msg small{display:block;margin-top:4px;font-size:8px;letter-spacing:.08em;opacity:.58;text-transform:uppercase}.inline-empty{color:#7e8795;font-size:10px;padding:6px 2px 10px}
.inline-dialogue-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:8px}.inline-dialogue-compose input{min-width:0;border:1px solid rgba(255,255,255,.09);border-radius:11px;background:#0c1119;color:#eef1f7;padding:10px 11px;font:inherit;font-size:12px;outline:none}.inline-dialogue-compose input:focus{border-color:rgba(145,164,255,.45);box-shadow:0 0 0 3px rgba(105,126,220,.08)}.inline-dialogue-compose button{min-width:68px;border:0;border-radius:11px;background:linear-gradient(135deg,#e5e8f0,#bcc8ff);color:#11151d;font-size:10px;font-weight:800}
.persona-copy[data-profile="retenu"] p{border-color:rgba(207,214,255,.08)}.persona-copy[data-profile="miroir"] p{border-color:rgba(138,174,255,.16)}.persona-copy[data-profile="oblique"] p{border-color:rgba(205,155,255,.18)}.persona-copy[data-profile="ludique"] p{border-color:rgba(146,215,255,.16)}
@media(max-width:420px){.inline-dialogue{margin-inline:8px;border-radius:14px;padding:8px}.inline-dialogue-compose{grid-template-columns:1fr auto}.inline-dialogue-head button{padding:5px 8px;font-size:8px}}
@media(max-width:360px){.inline-dialogue{margin-inline:6px}.inline-dialogue-compose{grid-template-columns:1fr}.inline-dialogue-compose button{min-height:38px}}
body.ultra-compact .inline-dialogue{margin:4px 8px 0;padding:7px;border-radius:12px}.body.space-tight .inline-dialogue{display:none}
body.space-tight .inline-dialogue{display:none}


/* v0.14 — présence T^ organique, profils et dialogue embarqué */
.persona-strip{position:relative;isolation:isolate;transition:border-color .35s ease,box-shadow .35s ease,background .35s ease}
.persona-strip::before{content:"";position:absolute;inset:-40% -10%;z-index:-1;pointer-events:none;opacity:.22;background:radial-gradient(circle at 16% 50%,rgba(128,148,255,.22),transparent 28%),radial-gradient(circle at 70% 25%,rgba(181,126,255,.14),transparent 26%);transform:translate3d(0,0,0);animation:tFieldDrift 13s ease-in-out infinite alternate}
.persona-strip[data-profile="retenu"]{border-color:rgba(188,198,230,.07);box-shadow:inset 0 0 20px rgba(116,128,166,.025)}
.persona-strip[data-profile="miroir"]{border-color:rgba(132,173,255,.16);box-shadow:inset 0 0 24px rgba(81,125,212,.055),0 0 24px rgba(80,115,200,.025)}
.persona-strip[data-profile="oblique"]{border-color:rgba(202,147,255,.17);box-shadow:inset 0 0 26px rgba(158,91,210,.05)}
.persona-strip[data-profile="ludique"]{border-color:rgba(127,211,231,.15);box-shadow:inset 0 0 24px rgba(88,184,208,.045)}
.persona-strip[data-profile="oblique"]::before{transform:translateX(4%) rotate(-2deg);opacity:.29}.persona-strip[data-profile="ludique"]::before{animation-duration:8s;opacity:.28}.persona-strip[data-profile="retenu"]::before{opacity:.12}
.persona-copy p{position:relative;white-space:normal;max-height:3.1em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.persona-copy p::after{content:"";position:absolute;left:10px;top:-4px;width:20px;height:1px;background:linear-gradient(90deg,rgba(160,177,255,.55),transparent)}
.t-avatar[data-profile="miroir"] .ghost-wings{opacity:.62}.t-avatar[data-profile="oblique"] .ghost-wings{transform:translate(2px,-1px) rotate(2deg);opacity:.52}.t-avatar[data-profile="ludique"] .wings{transform-origin:50% 50%;animation:tWingFloat 3.8s ease-in-out infinite alternate}.t-avatar[data-profile="retenu"] .ghost-wings{opacity:.24}
.persona-style-settings button{min-width:106px}
.inline-dialogue{position:relative;overflow:hidden}.inline-dialogue::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(103,127,218,.035),transparent 45%,rgba(159,101,205,.025))}
.inline-dialogue-feed,.inline-dialogue-compose,.inline-dialogue-head{position:relative;z-index:1}
@keyframes tFieldDrift{from{transform:translate3d(-1%,1%,0) scale(.98)}to{transform:translate3d(2%,-2%,0) scale(1.04)}}
@keyframes tWingFloat{from{transform:rotate(-1deg) scale(.985)}to{transform:rotate(1deg) scale(1.02)}}
@media(prefers-reduced-motion:reduce){.persona-strip::before,.t-avatar[data-profile="ludique"] .wings{animation:none!important}}


/* v0.18.0 — mobile dialogue visibility: T^ must never disappear behind compact layout. */
.persona-copy{cursor:pointer;min-width:0}
.persona-copy:focus-visible{outline:2px solid rgba(145,164,255,.5);outline-offset:3px;border-radius:12px}
@media (max-width:640px) and (orientation:portrait){
  body.ultra-compact .persona-strip,
  body.space-tight .persona-strip,
  body.ultra-compact.space-tight .persona-strip{display:grid!important;min-height:54px!important;grid-template-columns:42px minmax(0,1fr) 36px 36px!important;padding:5px 7px!important;margin-top:4px!important}
  body.ultra-compact .t-avatar,body.space-tight .t-avatar{width:40px!important;height:40px!important}
  body.ultra-compact .persona-copy,body.space-tight .persona-copy{display:flex!important;min-width:0;flex-direction:column;justify-content:center;gap:2px}
  body.ultra-compact .persona-copy span,body.space-tight .persona-copy span{display:block!important;font-size:7px!important;line-height:1.05;color:#8792a8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.ultra-compact .persona-copy p,body.space-tight .persona-copy p{display:-webkit-box!important;margin:0!important;padding:5px 7px!important;font-size:10px!important;line-height:1.22!important;min-height:27px;max-height:2.55em!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal!important;overflow:hidden;background:linear-gradient(135deg,rgba(28,35,52,.98),rgba(14,18,28,.96));border-color:rgba(137,158,238,.12)}
  body.ultra-compact .dialogue-quick,body.space-tight .dialogue-quick{width:36px!important;min-width:36px!important;height:32px!important;padding:0!important;justify-content:center!important;font-size:0!important}
  body.ultra-compact .dialogue-quick::after,body.space-tight .dialogue-quick::after{content:'···';font-size:14px;letter-spacing:1px;color:#c8d1e7;line-height:1}
  body.ultra-compact .dialogue-quick .dialogue-dot,body.space-tight .dialogue-quick .dialogue-dot{position:absolute;width:5px;height:5px;right:5px;top:5px}
  body.ultra-compact .lex-quick,body.space-tight .lex-quick{width:36px!important;height:32px!important}

  /* The direct dialogue is a sheet: it no longer consumes the board's vertical layout. */
  .inline-dialogue{position:fixed!important;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));width:auto!important;margin:0!important;z-index:72!important;max-height:min(52dvh,390px);padding:10px!important;border-radius:18px!important;overflow:hidden;background:linear-gradient(180deg,rgba(15,20,30,.995),rgba(8,11,17,.995));box-shadow:0 22px 70px rgba(0,0,0,.62),0 0 0 1px rgba(137,157,226,.08);backdrop-filter:blur(18px)}
  .inline-dialogue:not([hidden]){display:block!important}
  body.space-tight .inline-dialogue:not([hidden]),body.ultra-compact .inline-dialogue:not([hidden]){display:block!important}
  .inline-dialogue-head{margin-bottom:6px;font-size:9px}
  .inline-dialogue-feed{max-height:min(27dvh,190px);min-height:58px}
  .inline-msg{font-size:11px;padding:7px 9px}
  .inline-dialogue-compose{position:sticky;bottom:0;margin-top:7px;grid-template-columns:minmax(0,1fr) 62px;background:rgba(8,11,17,.94);padding-top:3px}
  .inline-dialogue-compose input{min-height:42px;font-size:12px}
  .inline-dialogue-compose button{min-width:62px;min-height:42px}
  body.dialogue-inline-open::before{content:'';position:fixed;inset:0;z-index:71;background:rgba(2,4,8,.28);pointer-events:none}
  body.dialogue-inline-open .inline-dialogue{pointer-events:auto}
}

@media (max-width:380px) and (orientation:portrait){
  body.ultra-compact .persona-strip,body.space-tight .persona-strip{grid-template-columns:38px minmax(0,1fr) 34px 34px!important;padding-inline:5px!important}
  body.ultra-compact .t-avatar,body.space-tight .t-avatar{width:36px!important;height:36px!important}
  body.ultra-compact .persona-copy p,body.space-tight .persona-copy p{font-size:9.5px!important;padding:4px 6px!important}
}


/* v0.18.0 — T^ visible et dialoguant dans le flux de jeu, surtout sur smartphone. */
.persona-strip.has-unread{border-color:rgba(147,171,255,.28);box-shadow:0 0 0 1px rgba(138,159,255,.05),0 0 26px rgba(86,111,211,.08),inset 0 0 24px rgba(108,127,209,.05)}
.persona-strip.has-unread .persona-copy p{border-color:rgba(158,177,255,.22);box-shadow:0 0 18px rgba(104,127,220,.08)}
.persona-strip.has-unread .dialogue-quick{box-shadow:0 0 0 1px rgba(169,185,255,.18),0 0 16px rgba(120,145,255,.16)}
.dialogue-quick{position:relative}.dialogue-quick::before{content:'';position:absolute;inset:-5px;border-radius:14px;pointer-events:none;border:1px solid transparent}.persona-strip.has-unread .dialogue-quick::before{border-color:rgba(160,181,255,.16);animation:tUnreadPulse 1.8s ease-in-out infinite}
@keyframes tUnreadPulse{0%,100%{opacity:.3;transform:scale(.96)}50%{opacity:1;transform:scale(1.03)}}

.inline-dialogue-backdrop{position:fixed;inset:0;z-index:71;border:0;background:rgba(2,4,8,.34);backdrop-filter:blur(2px);padding:0;margin:0}
.inline-dialogue-backdrop[hidden]{display:none!important}
body.dialogue-inline-open{overflow:hidden}
body.dialogue-inline-open .board-wrap,body.dialogue-inline-open .rack-panel{pointer-events:none}
body.dialogue-inline-open .inline-dialogue{pointer-events:auto}

.inline-dialogue{--sheet-bottom:max(8px,env(safe-area-inset-bottom));bottom:var(--sheet-bottom)!important;max-height:min(58dvh,430px)!important}
.inline-dialogue-feed{overscroll-behavior:contain}
.inline-dialogue-head{position:sticky;top:0;z-index:3;background:linear-gradient(180deg,rgba(15,20,30,.99),rgba(15,20,30,.90));padding-bottom:3px}
.inline-dialogue-compose{z-index:3}
.inline-msg.t{border-color:rgba(147,165,230,.10)}
.inline-msg.t:last-child{box-shadow:0 0 16px rgba(105,126,220,.05)}

.persona-copy{cursor:pointer}
.persona-copy:focus-visible{outline:2px solid rgba(144,165,255,.55);outline-offset:3px;border-radius:12px}
.persona-copy p{transition:border-color .2s,box-shadow .2s,background .2s}

@media(max-width:640px){
  .persona-strip{min-height:58px!important}
  .persona-copy p{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal!important;overflow:hidden!important;max-height:2.75em!important;font-size:10.5px!important;line-height:1.28!important}
  .inline-dialogue{left:max(6px,env(safe-area-inset-left))!important;right:max(6px,env(safe-area-inset-right))!important;border-radius:18px!important}
  .inline-dialogue-feed{max-height:min(30dvh,210px)!important}
  .inline-dialogue-compose input{font-size:16px!important} /* évite le zoom automatique iOS */
  .inline-dialogue-actions button{min-height:32px}
}
@media(max-width:390px){
  .persona-strip{grid-template-columns:40px minmax(0,1fr) 36px 34px!important}
  .persona-copy p{font-size:10px!important;padding:5px 7px!important}
  .persona-copy span{font-size:7px!important}
  .inline-dialogue{padding:9px!important;max-height:min(62dvh,420px)!important}
  .inline-dialogue-feed{min-height:70px;max-height:min(34dvh,210px)!important}
}
@media(max-height:680px) and (max-width:640px){
  .persona-strip{min-height:52px!important}
  .persona-copy p{-webkit-line-clamp:1;max-height:1.5em!important}
  .inline-dialogue{max-height:min(70dvh,390px)!important}
}
@media(prefers-reduced-motion:reduce){.persona-strip.has-unread .dialogue-quick::before{animation:none!important}}


/* v0.18.0 — rack manipulable + score de pose en direct */
.rack-head-tools{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.live-score{min-width:72px;min-height:42px;padding:5px 9px;border:1px solid rgba(166,178,255,.2);border-radius:11px;background:linear-gradient(135deg,rgba(90,103,176,.18),rgba(24,30,44,.92));display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;box-shadow:inset 0 0 18px rgba(111,130,224,.05)}
.live-score[hidden]{display:none!important}.live-score strong{font-size:18px;color:#e8ebff;font-variant-numeric:tabular-nums}.live-score small{margin-top:3px;font-size:7.5px;letter-spacing:.08em;text-transform:uppercase;color:#8f99ae;white-space:nowrap}.live-score.ready{border-color:rgba(151,183,255,.36);background:linear-gradient(135deg,rgba(111,137,224,.23),rgba(25,32,48,.95))}.live-score.check{border-color:rgba(215,164,255,.25)}.live-score.progress strong{color:#bdc5d6}
.rack-tile{cursor:grab}.rack-tile:active{cursor:grabbing}.rack-tile.dragging{opacity:.38;transform:scale(.94);outline:1px dashed rgba(195,205,255,.45)}.rack-tile.drop-target{outline:2px solid rgba(147,166,255,.85);transform:translateY(-3px)}
.cell.drop-hover{outline:2px solid rgba(151,166,255,.82)!important;box-shadow:inset 0 0 15px rgba(113,137,255,.18),0 0 12px rgba(113,137,255,.16)}
.cell.pending.dragging-pending .tile{opacity:.42;transform:scale(.9)}
.drag-ghost{z-index:260}
@media(max-width:640px){.rack-head{align-items:center}.rack-head-tools{gap:6px}.live-score{min-width:62px;min-height:38px;padding:4px 7px}.live-score strong{font-size:16px}.live-score small{font-size:7px}.rack-head strong{max-width:24ch}.rack-tile.drop-target{transform:translateY(-2px)}}
@media(max-width:390px){.rack-head{gap:6px}.rack-head-tools{gap:5px}.live-score{min-width:56px;min-height:36px;padding:4px 6px}.live-score strong{font-size:15px}.small-btn{padding-inline:8px}.rack-head strong{font-size:9px;max-width:18ch}}

/* v0.18.0 — validation lexicale non-binaire */
.validation-modal{max-width:520px}.validation-modal strong{color:#eef2ff}.validation-modal .start-actions{margin-top:16px}


/* v0.18.0 — interaction tactile robuste + T^ toujours visible + score de pose toujours exposé */
@media(max-width:640px){
  body .persona-strip, body.ultra-compact .persona-strip, body.space-tight .persona-strip,
  body.ultra-compact.space-tight .persona-strip{display:grid!important;visibility:visible!important;opacity:1!important;min-height:54px!important}
  body .persona-copy{display:flex!important;min-width:0!important;visibility:visible!important}
  body .persona-copy p{display:-webkit-box!important;visibility:visible!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal!important;overflow:hidden!important}
  body .dialogue-quick{display:flex!important;visibility:visible!important}
}
.field-caption-actions{display:flex;align-items:center;gap:8px}
.board-live-score{display:flex;align-items:baseline;gap:4px;padding:5px 8px;border-radius:10px;border:1px solid rgba(162,178,255,.26);background:linear-gradient(135deg,rgba(83,100,178,.24),rgba(18,24,37,.96));box-shadow:0 0 18px rgba(96,118,218,.08);white-space:nowrap}
.board-live-score[hidden]{display:none!important}.board-live-score strong{font-size:13px;color:#eef1ff;font-variant-numeric:tabular-nums}.board-live-score small{font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:#9ca7ba}
.board-live-score.ready{border-color:rgba(140,203,183,.32);background:linear-gradient(135deg,rgba(58,120,104,.18),rgba(18,24,37,.96))}.board-live-score.check{border-color:rgba(218,170,255,.28)}
.cell.pending .tile::before{content:attr(data-live);position:absolute;left:2px;top:2px;min-width:15px;height:14px;padding:0 3px;border-radius:5px;background:rgba(14,18,28,.84);color:#dfe5ff;font-size:7px;line-height:14px;font-weight:800;box-shadow:0 1px 4px rgba(0,0,0,.28)}
.rack-tile,.cell.pending{touch-action:none!important;-webkit-user-select:none!important;user-select:none!important}
body.drag-active{overscroll-behavior:none;touch-action:none}
body.drag-active .board-wrap{touch-action:none}
.drag-ghost{pointer-events:none!important;will-change:left,top;transform:translate(-50%,-62%);border:1px solid rgba(255,255,255,.28)}
.cell.drop-hover{transform:scale(1.025);z-index:5}
@media(max-width:390px){.board-live-score{padding:4px 6px}.board-live-score strong{font-size:12px}.board-live-score small{font-size:6.5px}.field-caption-actions{gap:5px}}
