:root{--radius: .625rem;--radius-sm: calc(var(--radius) - 4px);--radius-md: calc(var(--radius) - 2px);--radius-lg: var(--radius);--radius-xl: calc(var(--radius) + 4px);--background: oklch(100% 0 0deg);--foreground: oklch(14.5% 0 0deg);--card: oklch(100% 0 0deg);--card-foreground: oklch(14.5% 0 0deg);--popover: oklch(100% 0 0deg);--popover-foreground: oklch(14.5% 0 0deg);--primary: oklch(20.5% 0 0deg);--primary-foreground: oklch(98.5% 0 0deg);--secondary: oklch(97% 0 0deg);--secondary-foreground: oklch(20.5% 0 0deg);--muted: oklch(97% 0 0deg);--muted-foreground: oklch(55.6% 0 0deg);--accent: oklch(97% 0 0deg);--accent-foreground: oklch(20.5% 0 0deg);--destructive: oklch(57.7% .245 27.325deg);--destructive-rgb: 227, 72, 80;--border: oklch(92.2% 0 0deg);--input: oklch(92.2% 0 0deg);--ring: oklch(70.8% 0 0deg);--ring-rgb: 180, 180, 180;--chart-1: oklch(64.6% .222 41.116deg);--chart-2: oklch(60% .118 184.704deg);--chart-3: oklch(39.8% .07 227.392deg);--chart-4: oklch(82.8% .189 84.429deg);--chart-5: oklch(76.9% .188 70.08deg);--sidebar: oklch(98.5% 0 0deg);--sidebar-foreground: oklch(14.5% 0 0deg);--sidebar-primary: oklch(20.5% 0 0deg);--sidebar-primary-foreground: oklch(98.5% 0 0deg);--sidebar-accent: oklch(97% 0 0deg);--sidebar-accent-foreground: oklch(20.5% 0 0deg);--sidebar-border: oklch(92.2% 0 0deg);--sidebar-ring: oklch(70.8% 0 0deg)}html.dark{--background: oklch(14.5% 0 0deg);--foreground: oklch(98.5% 0 0deg);--card: oklch(20.5% 0 0deg);--card-foreground: oklch(98.5% 0 0deg);--popover: oklch(20.5% 0 0deg);--popover-foreground: oklch(98.5% 0 0deg);--primary: oklch(92.2% 0 0deg);--primary-foreground: oklch(20.5% 0 0deg);--secondary: oklch(26.9% 0 0deg);--secondary-foreground: oklch(98.5% 0 0deg);--muted: oklch(26.9% 0 0deg);--muted-foreground: oklch(70.8% 0 0deg);--accent: oklch(26.9% 0 0deg);--accent-foreground: oklch(98.5% 0 0deg);--destructive: oklch(70.4% .191 22.216deg);--destructive-rgb: 242, 134, 133;--border: oklch(100% 0 0deg / 10%);--input: oklch(100% 0 0deg / 15%);--ring: oklch(55.6% 0 0deg);--ring-rgb: 142, 142, 142;--chart-1: oklch(48.8% .243 264.376deg);--chart-2: oklch(69.6% .17 162.48deg);--chart-3: oklch(76.9% .188 70.08deg);--chart-4: oklch(62.7% .265 303.9deg);--chart-5: oklch(64.5% .246 16.439deg);--sidebar: oklch(20.5% 0 0deg);--sidebar-foreground: oklch(98.5% 0 0deg);--sidebar-primary: oklch(48.8% .243 264.376deg);--sidebar-primary-foreground: oklch(98.5% 0 0deg);--sidebar-accent: oklch(26.9% 0 0deg);--sidebar-accent-foreground: oklch(98.5% 0 0deg);--sidebar-border: oklch(100% 0 0deg / 10%);--sidebar-ring: oklch(55.6% 0 0deg)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;border-width:0;border-style:solid;border-color:var(--border)}*:focus-visible{outline:2px solid var(--ring);outline-offset:2px}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{display:flex;flex-direction:column;align-items:center;gap:2rem;flex:1 0 0;align-self:stretch;background-color:var(--background);color:var(--foreground);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;min-height:100vh;width:100%}#root{display:flex;flex-direction:column;align-items:center;width:100%;min-height:100vh;gap:2rem}.container{width:100%;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}p{font-size:1rem;line-height:1.7;color:var(--foreground)}h1{font-size:clamp(2rem,3vw,2.75rem);letter-spacing:-.02em}h2{font-size:clamp(1.25rem,2.2vw,1.75rem);letter-spacing:-.01em;color:var(--foreground);margin:.8em 0 .3em}ul,ol{padding-left:1.25rem}li{margin:.35rem 0;line-height:1.6}ul{list-style:disc}ol{list-style:decimal}a{color:inherit;text-decoration:inherit}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit}img,svg,video{display:block;max-width:100%;max-height:100%}.app-main{display:flex;align-items:center;flex-direction:column;gap:2rem;flex:1;width:100%}.site-header{display:flex;padding:0 2.25rem;margin:12px 0;align-items:center;gap:2.75rem;border-radius:1.25rem;border:2px solid #ed1380;width:90%;height:5rem;box-sizing:border-box}.site-header .logo-button{flex-shrink:0;padding:0;height:4.5rem;width:4.5rem}.nav{display:flex;align-items:center;gap:8px;flex:1}.actions{display:flex;align-items:center;gap:.75rem}.logo-wrapper{position:relative}.logo{width:100%;height:100%;object-fit:contain}.logo.dark-only{position:absolute;top:0;left:0}.light-only{opacity:1}.dark-only,html.dark .light-only{opacity:0}html.dark .dark-only{opacity:1}.home .logo{width:256px;height:256px}.home{display:flex;flex-direction:column;align-items:center;gap:2rem}.info{display:flex;flex-direction:column;gap:2rem;align-items:center;text-align:center}.links{display:flex;flex-direction:row;gap:20px}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;flex-shrink:0;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;white-space:nowrap;transition:all .15s ease;outline:none;border:1px solid transparent;cursor:pointer;text-decoration:none}.button:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.button:disabled,.button[aria-disabled=true]{pointer-events:none;opacity:.5}.button svg{pointer-events:none;flex-shrink:0}.button--default{background-color:var(--primary);color:var(--primary-foreground);box-shadow:0 1px 2px #0000000d}.button--default:hover{opacity:.9}.button--destructive{background-color:var(--destructive);color:#fff;box-shadow:0 1px 2px #0000000d}.button--destructive:hover{opacity:.9}.button--destructive:focus-visible{outline-color:var(--destructive);box-shadow:0 0 0 3px rgb(var(--destructive-rgb) / 20%)}.button--outline{background-color:var(--background);border-color:var(--input);box-shadow:0 1px 2px #0000000d}.button--outline:hover{background-color:var(--accent);color:var(--accent-foreground)}.button--secondary{background-color:var(--secondary);color:var(--secondary-foreground);box-shadow:0 1px 2px #0000000d}.button--secondary:hover{opacity:.8}.button--ghost{background-color:transparent}.button--ghost:hover{background-color:var(--accent);color:var(--accent-foreground)}.button--link{background-color:transparent;color:var(--primary);text-underline-offset:4px}.button--link:hover{text-decoration:underline}.button--size-default{height:2.25rem;padding:.375rem .75rem}.button--size-default:has(>svg){padding-inline:.75rem}.button--size-sm{height:2rem;gap:.375rem;border-radius:var(--radius-sm);padding:0 .625rem}.button--size-sm:has(>svg){padding-inline:.625rem}.button--size-lg{height:2.5rem;border-radius:var(--radius-lg);padding:0 1.125rem}.button--size-lg:has(>svg){padding-inline:1rem}.button--size-icon{width:2.25rem;height:2.25rem;padding:0}.button--size-icon-sm{width:2rem;height:2rem;padding:0}.button--size-icon-lg{width:2.5rem;height:2.5rem;padding:0}.side-panel-layout{display:flex;gap:2rem;align-items:stretch;width:80%}.side-panel-layout-main{flex:1 1 auto;min-width:0}.side-panel-layout-panel{width:var(--panel-width);height:100%;align-self:stretch;flex:0 0 auto}@media(max-width:900px){.side-panel-layout{flex-direction:column}.side-panel-layout-panel{width:100%}}.ranking{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;border-radius:var(--radius-lg);background:var(--card);color:var(--card-foreground);border:1px solid var(--border);box-shadow:0 12px 30px #0000000f;min-width:min(100%,18rem);height:100%}.ranking-title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground)}.ranking-list{display:flex;flex-direction:column;gap:.5rem}.ranking-item{width:100%;justify-content:space-between}.ranking-empty{font-size:.875rem;color:var(--muted-foreground)}.ranking-item-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.ranking-item-value{flex:0 0 auto;font-variant-numeric:tabular-nums;text-align:right}.signup-card{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;border-radius:var(--radius-lg);background:var(--card);color:var(--card-foreground);border:1px solid var(--border);box-shadow:0 12px 30px #0000000f;height:100%}.signup-title{font-size:.9rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground)}.signup-form{display:flex;flex-direction:column;gap:.75rem}.signup-field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted-foreground)}.signup-field input{width:100%;border-radius:var(--radius-sm);border:1px solid var(--input);background:var(--background);color:var(--foreground);padding:.5rem .75rem;font-size:.9rem}.signup-actions{display:flex;justify-content:flex-end;margin-top:.5rem}.rules-notice{background:var(--accent);color:var(--accent-foreground);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem 1rem;font-size:.9rem}.challenges-main{display:flex;flex-direction:column;gap:1rem}.challenges-grid{display:flex;flex-wrap:wrap;gap:1rem;margin:10px 0}.challenges-groups{display:flex;flex-direction:column;gap:2rem}.challenges-group h2{font-size:1rem;letter-spacing:.08em;text-transform:uppercase}.challenges-empty{color:var(--muted-foreground);font-size:.9rem}.chall-button{width:200px;height:80px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.35rem;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid transparent;background:var(--primary);color:var(--primary-foreground);cursor:pointer;text-align:left}.chall-button[data-solved=true]{background:#2ac831}.chall-button:disabled{opacity:.6;cursor:not-allowed}.chall-button-name{font-size:1rem;font-weight:600;line-height:1.2}.chall-button-score{font-size:.875rem;font-variant-numeric:tabular-nums;opacity:.9}.challenge-modal-backdrop{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:1000}.challenge-modal{position:relative;width:min(640px,92vw);max-height:min(80vh,720px);overflow:auto;background:var(--card);color:var(--card-foreground);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:0 20px 60px #00000040;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.challenge-modal-close{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;border-radius:999px;border:1px solid var(--border);background:var(--background);color:inherit;font-size:1.25rem;display:grid;place-items:center;cursor:pointer}.challenge-modal-header h3{font-size:1.25rem;margin-bottom:.5rem}.challenge-modal-meta{display:flex;flex-wrap:wrap;gap:.5rem}.challenge-tag{padding:.25rem .5rem;border-radius:999px;background:var(--secondary);color:var(--secondary-foreground);font-size:.75rem;font-weight:600;letter-spacing:.02em}.challenge-tag-solved{background:#2ac831;color:#0b1b0f}.challenge-modal-body{font-size:.95rem;line-height:1.6;color:var(--foreground)}.challenge-modal-actions{display:flex;gap:.75rem;flex-wrap:wrap}.challenge-instance-status{font-size:.9rem;color:var(--muted-foreground)}.challenge-instance-error{font-size:.9rem;color:#d14343}.scoreboard,.login,.account,.callback,.not-found{display:flex;flex-direction:column;gap:1rem;align-items:center;text-align:center;width:min(640px,90%)}
