:root{--bg:#0d0f12;--panel:#171a20;--panel2:#20242b;--text:#f7f3e9;--muted:#9aa2ad;--border:#333a44;--food:#f2a12c;--care:#34b8d0;--green:#76b947;--purple:#6d3b87;--danger:#e45454;--yellow:#f6d64a}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% 0,#242932 0,#111419 42%,#090b0e 100%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;min-height:100vh}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 28px;border-bottom:1px solid var(--border);background:#0e1116d9;backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:16px}.brand img{width:88px;max-height:42px;object-fit:contain;background:white;border-radius:7px;padding:6px}.brand h1{font-size:20px;letter-spacing:2px;margin:0}.brand p{margin:2px 0 0;color:var(--muted);font-size:12px}.top-actions{display:flex;gap:10px;flex-wrap:wrap}button{font:inherit;cursor:pointer}.ghost,.primary,.text-btn{border:1px solid var(--border);border-radius:10px;padding:10px 14px;color:var(--text);background:var(--panel2)}.primary{background:linear-gradient(180deg,#7ebd49,#5b9530);border-color:#8bc85a;font-weight:800;letter-spacing:.3px}.text-btn{background:transparent;padding:5px 8px;font-size:13px;color:#ccd3dc}.big{width:100%;padding:14px;margin-top:6px}main{max-width:1450px;margin:auto;padding:28px}.hero-grid{display:grid;grid-template-columns:minmax(230px,1fr) minmax(360px,1.55fr) minmax(230px,1fr);gap:22px;align-items:center}.meter-card,.panel{background:linear-gradient(180deg,#191d23,#12151a);border:1px solid var(--border);border-radius:18px;padding:20px}.meter-card{min-height:210px}.meter-head{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;letter-spacing:.8px}.meter-head strong{color:var(--text)}.money{margin:28px 0 14px}.money span{font-size:34px;font-weight:900}.money small{display:block;color:var(--muted);margin-top:4px}.bar{height:17px;border-radius:99px;background:#080a0d;border:1px solid #343a42;overflow:hidden}.bar i{display:block;height:100%;width:0;transition:width .8s cubic-bezier(.2,.8,.2,1);background:var(--food)}.care-card .bar i{background:var(--care)}.meter-foot{display:flex;justify-content:space-between;margin-top:10px;font-size:12px;color:var(--muted)}.meter-foot b{font-size:16px;color:var(--text)}.creature-zone{text-align:center;min-width:0}.stage-label{display:flex;justify-content:center;align-items:baseline;gap:10px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-size:12px}.stage-label b{font-size:28px;color:var(--text)}.creature-wrap{min-height:360px;display:grid;place-items:center;position:relative;overflow:visible}.creature-svg{width:min(360px,90%);filter:drop-shadow(0 22px 18px #0008);overflow:visible}.speech{display:inline-block;max-width:420px;background:#f6f0df;color:#222;border-radius:14px;padding:10px 16px;font-weight:800;position:relative;min-height:42px}.speech:after{content:"";position:absolute;top:-9px;left:50%;border:9px solid transparent;border-bottom-color:#f6f0df;border-top:0}.dayline{display:flex;justify-content:center;gap:18px;color:var(--muted);font-size:12px;margin-top:12px}.below-grid{display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:18px;margin-top:24px}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.panel-title h2{font-size:15px;margin:0}.panel-title>span{color:var(--muted);font-size:11px}.activity{display:grid;gap:9px;margin-top:14px}.activity-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border-top:1px solid #262b33;padding-top:9px;font-size:13px}.activity-row:first-child{border-top:0}.activity-row small{color:var(--muted)}.parent-card{display:flex;align-items:center;gap:14px;margin-top:18px}.trophy{font-size:35px}.parent-card strong{font-size:18px}.parent-card p{margin:4px 0;color:var(--muted);font-size:12px}.team-mini{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.agent-chip{border:1px solid var(--border);padding:7px 9px;border-radius:99px;background:#111419;font-size:11px}.modal{display:none;position:fixed;inset:0;background:#050608dc;z-index:40;place-items:center;padding:18px}.modal.open{display:grid}.modal-card{width:min(480px,100%);max-height:90vh;overflow:auto;background:#171a20;border:1px solid #3e4652;border-radius:18px;padding:24px;position:relative;box-shadow:0 30px 80px #000a}.wide .modal-card{width:min(900px,100%)}.close{position:absolute;right:12px;top:10px;background:none;color:#bbb;border:0;font-size:28px}.modal h2{margin:0 0 5px}.muted,.form-error{color:var(--muted);font-size:13px}.form-error{color:#ff8f8f;margin-top:8px}form{display:grid;gap:15px;margin-top:20px}label{display:grid;gap:7px;color:#d7dbe1;font-size:13px}label em{color:var(--muted);font-weight:400}input,select{width:100%;background:#0d1014;color:#fff;border:1px solid #3b424d;border-radius:10px;padding:13px 12px;font-size:16px}.type-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px}.type-switch input{position:absolute;opacity:0}.type-switch span{display:block;border:1px solid #3b424d;background:#0d1014;border-radius:10px;padding:13px;text-align:center;font-weight:800}.type-switch input:checked+span{outline:2px solid #86be55;background:#20291c}.arcade{display:none;position:fixed;inset:0;background:#030406f2;z-index:90;place-items:center;text-align:center;overflow:hidden}.arcade.show{display:grid;animation:flash .12s 2}.arcade-inner{transform:skew(-3deg)}.arcade-agent{font-size:clamp(28px,5vw,64px);font-weight:1000;letter-spacing:2px}.arcade-amount{font-size:clamp(18px,3vw,38px);margin:10px;color:#d9dde4}.arcade-hit{font-size:clamp(42px,9vw,110px);font-weight:1000;line-height:.9;text-shadow:4px 4px 0 #5b2d75,-3px -2px 0 #ba8b2b;margin:25px 0}.arcade-emoji{font-size:80px;animation:bounce .5s infinite alternate}.data-table{width:100%;border-collapse:collapse;margin-top:18px;font-size:13px}.data-table th,.data-table td{text-align:left;padding:10px;border-bottom:1px solid #2d333c}.data-table th{color:var(--muted);font-size:11px;text-transform:uppercase}.delete-btn{background:#391a1d;border:1px solid #6a2b31;color:#ffb2b2;border-radius:8px;padding:6px 8px}.fly{transform-origin:center;animation:fly 1.8s ease-in-out infinite}.fly2{animation-delay:-.8s}.stink{opacity:.7;animation:stink 2s ease-in-out infinite}.sleep-z{animation:floatz 2s infinite}@keyframes flash{50%{background:white}}@keyframes bounce{to{transform:translateY(-18px) rotate(7deg)}}@keyframes fly{0%,100%{transform:translate(0,0)}25%{transform:translate(12px,-12px)}50%{transform:translate(-10px,-18px)}75%{transform:translate(8px,9px)}}@keyframes stink{50%{opacity:.25;transform:translateY(-7px)}}@keyframes floatz{50%{transform:translateY(-8px);opacity:.4}}@media(max-width:900px){.hero-grid{grid-template-columns:1fr 1fr}.creature-zone{grid-column:1/-1;grid-row:1}.below-grid{grid-template-columns:1fr}.topbar{align-items:flex-start}.brand h1{font-size:16px}.top-actions{justify-content:flex-end}.creature-wrap{min-height:310px}}@media(max-width:620px){main{padding:16px}.topbar{padding:14px;display:grid}.top-actions{justify-content:stretch}.top-actions button{flex:1}.hero-grid{grid-template-columns:1fr}.creature-zone{grid-column:auto}.money{margin:18px 0 12px}.meter-card{min-height:auto}.brand img{width:72px}.stage-label b{font-size:23px}.creature-wrap{min-height:280px}.dayline{flex-wrap:wrap}.type-switch{grid-template-columns:1fr}.activity-row{grid-template-columns:auto 1fr}.activity-row>strong{grid-column:2}}
/* V2 — Gérard canon + éclosion */
.creature-art{display:block;width:min(390px,92%);max-height:340px;object-fit:contain;filter:drop-shadow(0 22px 18px #0009);animation:petIdle 3.4s ease-in-out infinite;border-radius:18px}.creature-art.hungry{animation:petHungry 2.2s ease-in-out infinite}.creature-art.dirty{animation:petDirty 1.4s ease-in-out infinite}.hatch{display:none;position:fixed;inset:0;z-index:120;background:#030406f5;place-items:center;text-align:center;overflow:hidden}.hatch.show{display:grid}.hatch-scene{position:relative;width:min(680px,94vw);min-height:520px;display:grid;place-items:center}.hatch-kicker{position:absolute;top:8%;font-size:clamp(24px,5vw,52px);font-weight:1000;letter-spacing:3px;color:#e9e6df}.hatch-egg,.hatch-baby{position:absolute;width:min(280px,55vw);filter:drop-shadow(0 28px 30px #000);transition:.45s ease}.hatch-baby{opacity:0;transform:scale(.35)}.hatch-crack{position:absolute;opacity:0;font-size:clamp(40px,9vw,100px);font-weight:1000;color:#f2d25a;line-height:.85;text-shadow:5px 5px 0 #6d3b87}.hatch-born{position:absolute;bottom:6%;display:grid;gap:8px;opacity:0;transform:translateY(20px)}.hatch-born small{font-size:clamp(20px,4vw,40px);font-weight:900}.hatch-born strong{font-size:clamp(28px,6vw,62px);color:#f2d25a;text-shadow:4px 4px 0 #6d3b87}.hatch.show .hatch-egg{animation:eggShake .18s linear infinite}.hatch.crack .hatch-crack{opacity:1;animation:flashPop .35s 2}.hatch.born .hatch-egg{opacity:0;transform:scale(1.35)}.hatch.born .hatch-crack{opacity:0}.hatch.born .hatch-baby{opacity:1;transform:scale(1)}.hatch.born .hatch-born{opacity:1;transform:none;transition:.4s .25s}.hatch.born:before{content:"";position:absolute;inset:0;background:radial-gradient(circle,#7fbe4960 0,#6d3b8720 34%,transparent 66%);animation:bornPulse .7s ease-out 2}@keyframes petIdle{50%{transform:translateY(-7px) rotate(.5deg)}}@keyframes petHungry{50%{transform:translateY(5px) scale(.985);filter:drop-shadow(0 18px 15px #000b) saturate(.85)}}@keyframes petDirty{25%{transform:translateX(-2px) rotate(-.5deg)}75%{transform:translateX(2px) rotate(.5deg)}}@keyframes eggShake{0%{transform:rotate(-2deg)}50%{transform:rotate(3deg)}100%{transform:rotate(-2deg)}}@keyframes flashPop{50%{transform:scale(1.2);filter:brightness(2)}}@keyframes bornPulse{0%{transform:scale(.3);opacity:0}45%{opacity:1}100%{transform:scale(1.2);opacity:0}}@media(max-width:620px){.creature-art{max-height:270px}.hatch-scene{min-height:430px}}
/* V2.1 — live refresh + audio unlock */
.live-status{align-self:center;padding:7px 9px;border:1px solid #315b36;border-radius:999px;color:#8bd18d;background:#102016;font-size:11px;font-weight:900;letter-spacing:.8px;white-space:nowrap}.live-status.offline{color:#ff9d9d;border-color:#673238;background:#241315}.sound-active{border-color:#5d8f43!important;box-shadow:inset 0 0 0 1px #5d8f43;color:#dff7d1!important}@media(max-width:620px){.live-status{order:-1}.top-actions{align-items:center}}
/* V3 — MySQL + admin + announcer audio */
.setup-page{max-width:760px;margin:8vh auto;padding:20px}.setup-card code,.setup-card pre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.setup-card pre{background:#090b0e;border:1px solid var(--border);padding:16px;border-radius:12px;overflow:auto}.link-btn{display:inline-block;text-decoration:none}.admin-sep{border:0;border-top:1px solid var(--border);margin:24px 0}.danger-zone{display:grid;gap:10px}.danger-zone h3{margin:0;color:#ffb0b0}.danger-btn{border:1px solid #7b3037;border-radius:10px;padding:12px 14px;background:#39171b;color:#ffd6d6;font-weight:900}.milestone{display:none;position:fixed;inset:0;z-index:125;background:#040508e8;place-items:center;text-align:center}.milestone.show{display:grid;animation:flash .12s 2}.milestone-text{font-size:clamp(48px,11vw,140px);font-weight:1000;letter-spacing:-2px;text-shadow:6px 6px 0 #5b2d75,-4px -3px 0 #ba8b2b;transform:skew(-4deg)}.finale{display:none;position:fixed;inset:0;z-index:140;background:radial-gradient(circle at center,#243016 0,#090b0e 52%,#020304 100%);place-items:center;text-align:center;padding:20px}.finale.show{display:grid}.finale-inner{display:grid;place-items:center;gap:10px}.finale img{width:min(420px,80vw);max-height:48vh;object-fit:contain;filter:drop-shadow(0 28px 25px #000)}.finale small{letter-spacing:4px;color:var(--muted);font-weight:900}.finale strong{font-size:clamp(38px,8vw,96px);line-height:.95;text-shadow:5px 5px 0 #5b2d75,-3px -2px 0 #ba8b2b}.finale p{font-size:20px}.finale .ghost{margin-top:12px}
