@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@600;700;800&family=Manrope:wght@400;500;600&display=swap";:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--afr-cream:#fffbeb;--afr-sand:#fde68a;--afr-gold:#e9b44c;--afr-terra:#c65d07;--afr-terra-dark:#9a4a06;--afr-green:#0f3d2e;--afr-green-light:#1b7a4b;--afr-red:#9e2a2b;--afr-ink:#1c1917;--afr-muted:#78716c;--afr-border:#f5e6cc;--afr-card:#fff;--radius-xl:20px;--radius-lg:16px;--shadow-soft:0 10px 30px #1c191714;--shadow-card:0 8px 24px #c65d071f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--afr-cream);color:var(--afr-ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Manrope,system-ui,-apple-system,sans-serif}.hero-kente{background:repeating-linear-gradient(90deg, var(--afr-terra) 0 24px, var(--afr-gold) 24px 48px, var(--afr-green) 48px 72px, var(--afr-red) 72px 88px, #1c1917 88px 92px);height:8px}.app{max-width:1120px;margin:0 auto;padding:0 16px 32px}.header{background:linear-gradient(135deg, var(--afr-green) 0%, #143d2a 55%, #1a5c3a 100%);color:#fffbeb;border-radius:0 0 var(--radius-xl) var(--radius-xl);box-shadow:var(--shadow-soft);margin:0 -16px 20px;padding:28px 24px 20px;position:relative;overflow:hidden}.header:after{content:"";pointer-events:none;background:radial-gradient(600px 200px at 90% -10%,#e9b44c40,#0000 60%),radial-gradient(500px 180px at 10% 120%,#c65d0759,#0000 60%);position:absolute;inset:0}.header h1{letter-spacing:-.02em;z-index:1;margin:0;font-family:Plus Jakarta Sans,sans-serif;font-size:38px;font-weight:800;position:relative}.header h1 span{color:var(--afr-gold)}.subtitle{color:#fde68a;opacity:.95;z-index:1;margin:6px 0 16px;font-size:14px;font-weight:500;position:relative}.auth{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1;background:#ffffff1a;border:1px solid #ffffff26;border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex;position:relative}.auth input{min-width:260px;color:var(--afr-ink);background:#fffbeb;border:none;border-radius:10px;flex:1;padding:10px 12px;font-weight:600}.auth button{background:var(--afr-gold);color:var(--afr-green);cursor:pointer;border:none;border-radius:10px;padding:10px 16px;font-weight:800}.auth button:hover{background:#fde68a}.auth .fp{color:#fde68a;opacity:.9;font-family:monospace;font-size:11px}.hint{color:#fde68a;opacity:.85;font-size:12px}.selector{grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0;display:grid}@media (width<=780px){.selector{grid-template-columns:1fr}}.selector button{background:var(--afr-card);border:2px solid var(--afr-border);border-radius:var(--radius-lg);text-align:left;cursor:pointer;box-shadow:var(--shadow-card);padding:16px 16px 14px;transition:all .2s;position:relative;overflow:hidden}.selector button:before{content:"";background:var(--afr-terra);opacity:0;width:6px;transition:opacity .2s;position:absolute;top:0;bottom:0;left:0}.selector button.active{border-color:var(--afr-terra);transform:translateY(-2px);box-shadow:0 14px 30px #c65d072e}.selector button.active:before{opacity:1}.selector button strong{color:var(--afr-green);font-family:Plus Jakarta Sans,sans-serif;font-size:18px;display:block}.selector button span{color:var(--afr-muted);margin:2px 0;font-size:13px;display:block}.selector button em{letter-spacing:.08em;color:var(--afr-terra);background:#fff7ed;border-radius:999px;padding:2px 6px;font-size:11px;font-style:normal;font-weight:800}.actions{margin:14px 0}.create{background:var(--afr-card);border:1px solid var(--afr-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;display:flex}.create h3{color:var(--afr-green);margin:0;font-family:Plus Jakarta Sans,sans-serif;font-size:15px}.create input{border:1.5px solid var(--afr-border);text-align:center;border-radius:10px;width:110px;padding:10px;font-weight:700}.create button{background:var(--afr-terra);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 18px;font-weight:800;box-shadow:0 6px 16px #c65d074d}.create button:hover{background:var(--afr-terra-dark)}.create button:disabled{opacity:.5;cursor:not-allowed}.lists{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}@media (width<=880px){.lists{grid-template-columns:1fr}}.col{background:var(--afr-card);border:1px solid var(--afr-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:14px}.col h3{color:var(--afr-green);margin:0 0 8px;font-family:Plus Jakarta Sans,sans-serif;display:inline-block}.small{border:1px solid var(--afr-border);cursor:pointer;background:#fffbeb;border-radius:999px;margin-left:8px;padding:4px 8px;font-size:12px}.empty{color:var(--afr-muted);border:1px dashed var(--afr-border);background:#fffbeb;border-radius:10px;padding:12px;font-style:italic}.card{border:1.5px solid var(--afr-border);cursor:pointer;background:linear-gradient(#fff 0%,#fffbeb 100%);border-radius:14px;margin:10px 0;padding:12px;transition:transform .15s,box-shadow .15s,border-color .15s}.card:hover{box-shadow:var(--shadow-card);border-color:var(--afr-gold);transform:translateY(-1px)}.card.selected{border-color:var(--afr-terra);background:#fff7ed;box-shadow:0 8px 20px #c65d0726}.card div:first-child{color:var(--afr-ink);font-size:14px;font-weight:700}.meta{color:var(--afr-muted);margin:4px 0 8px;font-family:monospace;font-size:11px}.card button{border:1.5px solid var(--afr-border);cursor:pointer;background:#fff;border-radius:999px;margin-right:6px;padding:6px 10px;font-size:13px;font-weight:700}.card button:first-of-type{background:var(--afr-green);color:#fff;border-color:var(--afr-green)}.card button.ghost{color:var(--afr-ink);background:#fffbeb}.game-view{background:var(--afr-card);border:1.5px solid var(--afr-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);margin-top:18px;padding:18px;position:relative;overflow:hidden}.game-view:before{content:"";background:linear-gradient(90deg, var(--afr-terra), var(--afr-gold), var(--afr-green));height:6px;position:absolute;top:0;left:0;right:0}.game-view h2{color:var(--afr-green);margin:8px 0 6px;font-family:Plus Jakarta Sans,sans-serif}.board{border:1.5px solid var(--afr-border);background:#fffbeb;border-radius:14px;min-height:140px;margin:14px 0;padding:14px}.board.placeholder{color:var(--afr-muted);place-items:center;font-style:italic;display:grid}.ludo-grid{gap:10px;display:grid}.player-pawns{border:1px solid var(--afr-border);background:#fff;border-radius:12px;padding:10px}.pawns{flex-wrap:wrap;gap:8px;margin:6px 0;display:flex}.pawn{border:2px solid var(--afr-border);background:#fff7ed;border-radius:50%;place-items:center;width:32px;height:32px;font-size:13px;font-weight:800;display:grid}.pawn.home{color:#92400e;background:#fef3c7;border-color:#fde68a}.pawn.active{color:#14532d;background:#dcfce7;border-color:#86efac}.pawn.done{background:var(--afr-green);color:#fff;border-color:var(--afr-green);box-shadow:0 4px 10px #0f3d2e40}.dames-grid .row{justify-content:center;display:flex}.cell{border:1px solid #e7c9a9;place-items:center;width:34px;height:34px;font-size:11px;font-weight:700;display:grid}.cell.dark{color:#fffbeb;background:#78350f}.cell.light{color:#78350f;background:#fef3c7}.awale-row{justify-content:center;gap:8px;margin:8px 0;display:flex}.pit{color:#7c2d12;background:radial-gradient(circle at 30% 30%,#fff7ed,#e7c9a9);border:2px solid #d6a77a;border-radius:50%;place-items:center;width:48px;height:48px;font-weight:800;display:grid;box-shadow:inset 0 2px 6px #00000014}.scores{color:var(--afr-green);justify-content:center;gap:12px;margin:10px 0;font-size:13px;font-weight:700;display:flex}.turn{color:var(--afr-muted);text-align:center;border:1px solid var(--afr-border);background:#fff;border-radius:999px;margin-top:8px;padding:6px 10px;font-size:13px;font-weight:600;display:inline-block}.controls{flex-wrap:wrap;justify-content:center;gap:10px;margin:16px 0;display:flex}.controls button{background:var(--afr-terra);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:10px 16px;font-weight:800;box-shadow:0 6px 14px #c65d0740}.controls button:hover{background:var(--afr-terra-dark);transform:translateY(-1px)}.footer{background:var(--afr-green);color:#fde68a;border-radius:var(--radius-lg);flex-direction:column;gap:4px;margin-top:28px;padding:14px 16px;font-size:12px;font-weight:500;display:flex}.footer span:first-child{color:#fffbeb;font-weight:700}details{border:1px solid var(--afr-border);background:#fffbeb;border-radius:10px;margin-top:12px;padding:8px 10px}details summary{color:var(--afr-green);cursor:pointer;font-weight:700}pre{color:#fde68a;background:#1c1917;border-radius:10px;padding:10px;font-size:11px;overflow:auto}button{font-family:inherit}
