/* odin.boum.it — thème boum.it (variables de sites/www/public/css/common.css de boumit-website) :
   fond crème, encre presque noire, or foncé ; Syne pour la marque, Space Grotesk pour le texte. */
*{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
:root{
  --bg:#F6F2EA;--surface:#EFE8DA;--surface-2:#FFFFFF;
  --ink:#111111;--text:#111111;--text-muted:#4A463F;--text-faint:#6B655A;
  --gold:#84651F;--gold-light:#9A7A2C;
  --border:rgba(17,17,17,.10);--border-gold:rgba(132,101,31,.35);
  --danger:#9C3B2E;
  --font-display:'Syne',sans-serif;--font-body:'Space Grotesk',system-ui,sans-serif
}
html,body{height:100%}
body{background:var(--bg);color:var(--text);font:16px/1.6 var(--font-body);-webkit-font-smoothing:antialiased}
::selection{background:rgba(132,101,31,.25)}
:focus-visible{outline:1px solid var(--gold);outline-offset:3px}

.app{height:100%;display:grid;grid-template-rows:auto 1fr auto;max-width:760px;margin:0 auto;
  padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}

header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:max(1.1rem,env(safe-area-inset-top,0px));padding-bottom:.6rem}
.logo{font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:.08em;color:var(--text);text-decoration:none;white-space:nowrap}
.logo span{color:var(--gold)}
.logo-sub{font-family:var(--font-body);font-size:.68rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);margin-inline-start:.6rem;vertical-align:middle}
.head-right{display:flex;align-items:center;gap:1rem}
.env{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);border:1px solid var(--border-gold);padding:.3rem .6rem}
.lang-wrap{position:relative;display:inline-flex;align-items:center}
.lang-wrap::after{content:'▾';position:absolute;inset-inline-end:.2rem;color:var(--gold);font-size:.7rem;pointer-events:none}
.lang-select{appearance:none;-webkit-appearance:none;background:transparent;border:none;border-bottom:1px solid var(--border-gold);color:var(--text-muted);font:inherit;font-size:.8rem;letter-spacing:.08em;cursor:pointer;padding:.4rem 1.4rem .4rem 0}
[dir="rtl"] .lang-select{padding:.4rem 0 .4rem 1.4rem}

main{overflow-y:auto;min-height:0;display:flex;flex-direction:column;align-items:center;padding-bottom:1rem;scroll-behavior:smooth}
.stage{position:sticky;top:0;z-index:2;width:100%;display:flex;flex-direction:column;align-items:center;background:linear-gradient(var(--bg) 75%,rgba(246,242,234,0));padding-bottom:.4rem;transition:padding .5s}
#orb{width:min(300px,64vw);aspect-ratio:1;display:block;transition:width .6s cubic-bezier(.76,0,.24,1)}
.started #orb{width:min(140px,32vw)}
.state{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);min-height:1.2em;text-align:center}
.intro{text-align:center;max-width:52ch;margin:.2rem auto 1.6rem;display:grid;gap:.6rem;justify-items:center}
.kicker{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.lead{font-size:.95rem;line-height:1.65;color:var(--text-muted);text-wrap:balance}
.proofs{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}
.proofs li{font-size:.75rem;letter-spacing:.04em;color:var(--text-muted);border:1px solid var(--border-gold);padding:.35rem .7rem;background:var(--surface-2)}
.started .intro{display:none}
#orb{cursor:pointer;touch-action:manipulation}

.thread{list-style:none;width:100%;display:flex;flex-direction:column;gap:1.4rem}
.msg{max-width:100%;overflow-wrap:anywhere}
.msg.odin{font-size:1.12rem;line-height:1.6;color:var(--ink)}
.msg.odin:first-child{font-family:var(--font-display);font-size:clamp(1.4rem,4.2vw,2rem);font-weight:600;line-height:1.25;letter-spacing:-.02em;text-align:center;text-wrap:balance}
.msg.odin p+p,.msg.odin p+ul,.msg.odin ul+p{margin-top:.6rem}
.msg.odin ul,.msg.odin ol{padding-inline-start:1.2rem}
.msg.odin strong{font-weight:600}
.msg.user{align-self:flex-end;max-width:85%;background:var(--surface-2);border:1px solid var(--border);padding:.75rem 1rem;color:var(--text-muted);white-space:pre-wrap}
.msg.error{align-self:center;font-size:.9rem;color:var(--danger);text-align:center}

footer{padding-bottom:max(1rem,env(safe-area-inset-bottom,0px));display:grid;gap:.5rem}
.notice{font-size:.72rem;color:var(--text-faint);text-align:center;line-height:1.5}
.composer{display:flex;align-items:flex-end;gap:.5rem;background:var(--surface-2);border:1px solid var(--border-gold);padding:.45rem .45rem .45rem 1rem}
[dir="rtl"] .composer{padding:.45rem 1rem .45rem .45rem}
.composer textarea{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:16px;color:var(--text);resize:none;padding:.55rem 0;max-height:9rem;line-height:1.5}
.composer textarea:focus{outline:none}
.icon-btn{width:42px;height:42px;border:1px solid var(--border-gold);background:transparent;color:var(--gold);display:grid;place-items:center;cursor:pointer;flex:none;transition:background-color .3s,color .3s}
.icon-btn:hover{background:var(--gold);color:var(--bg)}
.icon-btn.send{background:var(--gold);color:var(--bg);border-color:var(--gold)}
.icon-btn.on{background:var(--danger);border-color:var(--danger);color:#fff;animation:pulse 1.4s infinite}
.icon-btn:disabled{opacity:.4;cursor:default}
@keyframes pulse{50%{opacity:.7}}

:lang(ar){letter-spacing:0!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}main{scroll-behavior:auto}}
@media (max-width:480px){.logo{font-size:1.15rem}.logo-sub{display:none}.msg.odin{font-size:1.05rem}}
