:root{--void: #0a0711;--void-2: #130b22;--panel: rgba(28, 18, 44, .62);--panel-2: rgba(16, 10, 28, .86);--line: rgba(255, 255, 255, .1);--line-strong: rgba(255, 255, 255, .18);--text: #f4ecff;--muted: #9a8cbe;--shard-1: #ff3d8b;--shard-2: #ff7a3d;--tech: #28e3d8;--tech-2: #3aa0ff;--gold: #ffcf52;--homodeus: #e6a93a;--maquis: #45c267;--ordre: #4a91ff;--spectra: #d24be0;--neutre: #9a90b8;--shard-grad: linear-gradient(118deg, var(--shard-1), var(--shard-2));--shard-clip: polygon( 0 10px, 10px 0, 100% 0, 100% calc(100% - 10px) , calc(100% - 10px) 100%, 0 100% )}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:Saira,system-ui,sans-serif;color:var(--text);background:var(--void);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;user-select:none;-webkit-user-select:none}body:before{content:"";position:fixed;top:-20%;right:-20%;bottom:-20%;left:-20%;z-index:-2;background:radial-gradient(42% 38% at 14% 10%,rgba(255,61,139,.22),transparent 62%),radial-gradient(38% 34% at 86% 16%,rgba(255,122,61,.16),transparent 60%),radial-gradient(46% 42% at 84% 92%,rgba(40,227,216,.16),transparent 62%),radial-gradient(40% 40% at 20% 88%,rgba(58,160,255,.12),transparent 60%),linear-gradient(160deg,#0e0918,var(--void) 60%);animation:drift 34s ease-in-out infinite alternate}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}@keyframes drift{0%{transform:translate3d(-2%,-1%,0) scale(1.02)}to{transform:translate3d(2%,1%,0) scale(1.06)}}input,textarea{user-select:text;-webkit-user-select:text}.brand,.brand-hero{font-family:Chakra Petch,sans-serif;font-weight:700;letter-spacing:.04em;line-height:1}.brand .shards,.brand-hero .shards{color:#fff;text-shadow:0 0 18px rgba(255,61,139,.45)}.brand .of,.brand-hero .of{color:var(--muted);font-weight:500;font-style:italic}.brand .infinity,.brand-hero .infinity{background:linear-gradient(92deg,var(--tech),var(--gold) 85%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 22px rgba(40,227,216,.25)}.brand.sm{font-size:1.25rem}.brand-hero{display:flex;flex-direction:column;align-items:center;gap:.1em;font-size:clamp(2.6rem,9vw,5.2rem);text-align:center;animation:pageIn .7s cubic-bezier(.2,.8,.2,1) both}.brand-hero .of{font-size:.42em;letter-spacing:.3em}.tagline{color:var(--muted);letter-spacing:.22em;text-transform:uppercase;font-size:.78rem;margin:.2rem 0 1.6rem;animation:pageIn .7s .1s cubic-bezier(.2,.8,.2,1) both}@keyframes pageIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}button{font-family:Chakra Petch,sans-serif;font-weight:600;letter-spacing:.03em;font-size:.92rem;padding:.55rem .9rem;min-height:42px;border-radius:9px;border:1px solid var(--line-strong);background:#ffffff0a;color:var(--text);cursor:pointer;transition:transform .06s,filter .15s,box-shadow .2s,background .15s;touch-action:manipulation}button:hover:not(:disabled){filter:brightness(1.15);background:#ffffff14}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{border:none;color:#2a0712;background:var(--shard-grad);clip-path:var(--shard-clip);box-shadow:0 8px 26px #ff3d8b52,inset 0 1px #fff6;text-transform:uppercase;font-weight:700}button.primary:hover:not(:disabled){box-shadow:0 10px 34px #ff3d8b80}button.big{padding:.9rem 1.3rem;font-size:1.05rem}button.link{background:none;border:none;color:var(--tech);min-height:auto;padding:.35rem}button.link:hover{text-shadow:0 0 12px rgba(40,227,216,.5);background:none}button.ghost-btn{background:none;border:1px solid var(--line);color:var(--muted)}input{font-family:inherit;font-size:1rem;padding:.7rem .85rem;border-radius:9px;border:1px solid var(--line-strong);background:#080510b3;color:var(--text);transition:border .15s,box-shadow .15s}input::placeholder{color:#6f648c}input:focus{outline:none;border-color:var(--tech);box-shadow:0 0 0 3px #28e3d82e}.screen{min-height:100vh;min-height:100dvh;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));display:flex;flex-direction:column;gap:.8rem}.screen.center{align-items:center;justify-content:center}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:1.4rem;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 24px 60px #00000073}.panel.shard{position:relative;border-radius:0;clip-path:var(--shard-clip)}.panel.shard:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--shard-grad);opacity:.85}.error{color:#ff6b86;font-weight:500}.muted{color:var(--muted)}.login-screen .auth{width:min(380px,92vw);display:flex;flex-direction:column;gap:.7rem;animation:pageIn .7s .2s cubic-bezier(.2,.8,.2,1) both}.form-title{margin:0 0 .3rem;font-family:Chakra Petch,sans-serif;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-size:.82rem}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;width:min(960px,100%);margin:0 auto}.user{display:flex;gap:1rem;align-items:center}.who{font-family:Chakra Petch,sans-serif}.lobby{width:min(620px,100%);margin:2rem auto;display:flex;flex-direction:column;gap:1rem;animation:pageIn .6s cubic-bezier(.2,.8,.2,1) both}.lobby h3{font-family:Chakra Petch,sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:.85rem;color:var(--muted);margin:.4rem 0 0}.join-by-id{display:flex;gap:.5rem}.join-by-id input{flex:1}.room-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.room-list li{display:flex;justify-content:space-between;align-items:center;background:#ffffff0a;padding:.6rem .9rem;border-radius:10px;border:1px solid var(--line)}code{font-family:Chakra Petch,monospace;background:#0006;padding:.1rem .45rem;border-radius:6px;color:var(--tech)}.lobby-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;width:min(960px,100%);margin:1.5rem auto;align-items:start;animation:pageIn .6s cubic-bezier(.2,.8,.2,1) both}.lobby-grid .lobby{width:auto;margin:0}.count-select{display:flex;gap:.5rem}.seg{flex:1;font-family:Chakra Petch,sans-serif}.seg.active{border-color:var(--tech);color:var(--tech);background:#28e3d81a;box-shadow:inset 0 0 0 1px #28e3d840}.divider{display:flex;align-items:center;gap:.6rem;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;margin:.4rem 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.room-info{display:flex;flex-direction:column;gap:.1rem;font-family:Chakra Petch,sans-serif;min-width:0}.room-info .muted{font-family:Saira,sans-serif;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:190px}.room-meta{display:flex;align-items:center;gap:.5rem}.small{font-size:.82rem}.waiting{width:min(440px,92vw);display:flex;flex-direction:column;align-items:center;gap:.9rem;text-align:center}.screen-title{font-family:Chakra Petch,sans-serif;margin:.2rem 0 0;font-weight:600}.roomcode{font-family:Chakra Petch,monospace;font-size:1.8rem;letter-spacing:.12em;padding:.7rem 1.2rem;border:1px dashed var(--tech);border-radius:12px;background:#28e3d80f;color:var(--tech);position:relative;min-height:auto}.roomcode .copy-hint{position:absolute;right:8px;bottom:4px;font-size:.6rem;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.lobby-players{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center}.pill{font-family:Chakra Petch,sans-serif;background:#ffffff0f;border:1px solid var(--line);padding:.25rem .7rem;border-radius:999px;font-size:.85rem}.pill.ghost{color:var(--muted);border-style:dashed}.pulse-dots{display:flex;gap:.4rem}.pulse-dots i{width:9px;height:9px;border-radius:50%;background:var(--shard-1);animation:pulse 1.2s infinite ease-in-out}.pulse-dots i:nth-child(2){background:var(--shard-2);animation-delay:.2s}.pulse-dots i:nth-child(3){background:var(--tech);animation-delay:.4s}@keyframes pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.game{gap:.6rem;max-width:1100px;margin:0 auto;width:100%}.game .topbar{width:100%;font-family:Chakra Petch,sans-serif;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:.5rem .9rem}.banner{background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--tech);padding:.5rem .85rem;border-radius:8px}.banner.error{border-left-color:#ff6b86;color:#ff8ea0}.zone-label{font-family:Chakra Petch,sans-serif;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.25rem}.row{display:flex;gap:.5rem;flex-wrap:wrap}.player-strip{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem}.player-strip.mine{border-color:#28e3d866;box-shadow:0 0 0 1px #28e3d826 inset}.player-strip.dead{opacity:.4;filter:grayscale(.6)}.player-head{display:flex;gap:1rem;align-items:baseline;flex-wrap:wrap;font-family:Chakra Petch,sans-serif}.dials{font-weight:600;color:var(--gold)}.champs{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.4rem}.resources{font-family:Chakra Petch,sans-serif;font-size:1.25rem;font-weight:700;margin:.4rem 0;letter-spacing:.05em}.card{--fac: var(--neutre);width:150px;background:linear-gradient(180deg,#ffffff0d,#08051099);border:1px solid color-mix(in srgb,var(--fac) 55%,transparent);border-radius:11px;overflow:hidden;display:flex;flex-direction:column;font-size:.76rem;box-shadow:0 6px 16px #0006;transition:transform .1s,box-shadow .15s}.card.compact{width:122px}.card.clickable{cursor:pointer}.card.clickable:hover{transform:translateY(-4px);box-shadow:0 12px 26px #0000008c,0 0 0 1px var(--fac)}.card.selected{outline:2px solid var(--tech);outline-offset:1px;box-shadow:0 0 18px #28e3d866}.card.tapped{transform:rotate(2deg);opacity:.78}.card.empty{border-style:dashed;border-color:var(--line);min-height:64px;align-items:center;justify-content:center;color:var(--muted);background:#ffffff05}.card-head{display:flex;justify-content:space-between;align-items:center;gap:.3rem;padding:.32rem .45rem;color:#fff;font-family:Chakra Petch,sans-serif;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.5)}.card-name{font-size:.73rem;line-height:1.05}.card-cost{background:#00000073;border-radius:50%;width:1.5rem;height:1.5rem;display:grid;place-items:center;flex:none;font-size:.82rem}.card-body{padding:.4rem .45rem;display:flex;flex-direction:column;gap:.3rem}.card-meta{display:flex;gap:.3rem;flex-wrap:wrap;color:var(--muted);font-size:.7rem}.badge{background:#00000059;border-radius:5px;padding:0 .32rem}.badge.shield{color:var(--tech)}.badge.hp{color:var(--maquis)}.card-text{color:#ddd3f2;min-height:2.3rem;line-height:1.25}.card-footer{padding:.3rem;border-top:1px solid var(--line);display:flex;gap:.3rem}.card-footer .actions{display:flex;gap:.3rem;width:100%}.card-footer button{flex:1;padding:.3rem;min-height:34px;font-size:.72rem}.actionbar{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--line)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#06040cb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:1rem;z-index:20}.panel.choice{max-width:92vw;display:flex;flex-direction:column;gap:.9rem}.panel.choice h3{font-family:Chakra Petch,sans-serif;margin:0}.panel.choice .actions,.panel.center .actions{display:flex;gap:.5rem}.panel.center{text-align:center}.panel.center h2{font-family:Chakra Petch,sans-serif}.log{position:fixed;bottom:.5rem;right:.5rem;width:min(320px,82vw);background:#080510d1;border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem;font-size:.74rem;color:var(--muted);max-height:28vh;overflow:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@media (max-width: 640px){.card{width:124px;font-size:.72rem}.brand-hero{font-size:clamp(2.2rem,13vw,3.4rem)}.log{position:static;width:auto}}
