html,body,#root{height:100%;width:100%;margin:0;padding:0;overflow:hidden;box-sizing:border-box}.snake-error-dialog{position:fixed;top:0;left:0;width:100vw;height:100dvh;display:flex;align-items:center;justify-content:center;background:#00000059;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:9999;padding:0}.snake-error-dialog-content{background:#1e222cfa;border-radius:18px;box-shadow:0 8px 32px #00000040;padding:2.5rem 2.5rem 2rem;min-width:320px;max-width:90vw;color:#fff;text-align:center;border:1px solid rgba(255,255,255,.08)}.snake-error-dialog-content h2{margin-top:0;margin-bottom:.7em;font-size:1.6em;font-weight:700;letter-spacing:.01em}.snake-error-dialog-content p{margin-bottom:2em;color:#ffe6b3;font-size:1.1em}.snake-error-dialog-btn{background:linear-gradient(90deg,#ffb347,#ffcc80);color:#222;font-weight:600;border:none;border-radius:8px;padding:.7em 2.2em;font-size:1.1em;cursor:pointer;box-shadow:0 2px 8px #00000014;transition:background .2s,color .2s}.snake-error-dialog-btn:hover{background:linear-gradient(90deg,#ffd580,#ffb347);color:#111}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}.platform-links{margin-top:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:#080e1e80;text-align:left}.platform-links-compact{margin-top:10px;padding:8px 10px}.platform-links-text{margin:0 0 8px;font-size:.8em;color:#d6e4ff;line-height:1.45}.platform-links-actions{display:flex;gap:8px;flex-wrap:wrap}.platform-link-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-size:.78em;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:.45em .85em;min-height:32px}.platform-link-btn:hover{color:#fff;border-color:#fff9}body{margin:0;display:block;min-width:320px;min-height:100dvh;background:#242424}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.button-primary{background:linear-gradient(135deg,#2563eb,#7c3aed);border-color:#fff3;color:#fff;font-weight:600;box-shadow:0 8px 20px #2563eb40}.button-primary:hover{border-color:#ffffff80;transform:translateY(-1px)}.button-primary:focus,.button-primary:focus-visible{outline:3px solid rgba(59,130,246,.85);outline-offset:2px}.button-cta:focus,.button-cta:focus-visible{outline:3px solid rgba(34,197,94,.9);outline-offset:3px;box-shadow:0 0 0 6px #22c55e33}.status-message{display:inline-flex;align-items:center;padding:.6em 1.1em;border-radius:999px;font-weight:700;letter-spacing:.01em;background:#2563eb2e;border:1px solid rgba(37,99,235,.35);color:#bfdbfe;box-shadow:0 6px 16px #1e40af33}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}.status-message{background:#2563eb1f;border-color:#2563eb4d;color:#1d4ed8;box-shadow:0 6px 14px #2563eb2e}}.bento-grid{display:grid;grid-template-columns:repeat(1,1fr);grid-template-rows:auto;gap:16px;padding:20px;max-width:1200px;margin:0 auto}.bento-grid-mobile-scroll{height:100%;min-height:0}.bento-card{background:#ffffff0d;border-radius:16px;padding:20px;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .2s ease,box-shadow .2s ease}.bento-card:hover{transform:translateY(-2px);box-shadow:0 8px 32px #0003}.bento-header{grid-column:span 4;text-align:center}.bento-small{grid-column:span 1}.bento-medium{grid-column:span 2}.bento-large{grid-column:span 3}.bento-full{grid-column:span 4}@media(max-width:900px){.bento-grid{grid-template-columns:repeat(2,1fr)}.bento-grid-mobile-scroll{height:100dvh;max-height:100dvh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom))}.bento-header,.bento-large,.bento-full,.bento-medium{grid-column:span 2}.bento-small{grid-column:span 1}}@media(max-width:600px){.bento-grid{grid-template-columns:1fr}.bento-header,.bento-small,.bento-medium,.bento-large,.bento-full{grid-column:span 1}}@media(prefers-color-scheme:light){.bento-card{background:#00000008;border:1px solid rgba(0,0,0,.1)}.bento-card:hover{box-shadow:0 8px 32px #0000001a}}.bento-table{width:100%;border-collapse:collapse}.bento-table caption{text-align:left;font-weight:700;font-size:1.25em;margin-bottom:12px;color:inherit}.bento-table th,.bento-table td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(255,255,255,.1);word-break:break-all;overflow-wrap:break-word;max-width:200px}.bento-table th{font-weight:600;color:#ffffffb3}.bento-table tbody tr:hover{background:#ffffff0d}.bento-table tbody tr.current-player{font-weight:700;background:#ffffff14}.snake-canvas-shell{position:relative;width:100%;max-width:100%;margin:0 auto}.snake-canvas{width:100%;max-width:100%;height:auto;aspect-ratio:1 / 1;display:block;background:radial-gradient(circle at 20% 20%,rgba(102,179,255,.1),transparent 40%),radial-gradient(circle at 80% 0%,rgba(255,170,60,.08),transparent 45%),#0b0f1a;border-radius:16px;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px #ffffff0d}@media(prefers-color-scheme:light){.bento-table th,.bento-table td{border-bottom:1px solid rgba(0,0,0,.1)}.bento-table th{color:#0009}.bento-table tbody tr:hover{background:#00000008}.bento-table tbody tr.current-player{background:#0000000d}.snake-canvas{background:radial-gradient(circle at 20% 20%,rgba(102,179,255,.12),transparent 40%),radial-gradient(circle at 80% 0%,rgba(255,170,60,.1),transparent 45%),#f7f9fc;border:1px solid rgba(0,0,0,.08)}}#root{width:100%;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
