:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.5;font-weight:400;scrollbar-gutter:stable;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;color:#ffffffeb;background-color:#121212}}@media(prefers-color-scheme:light){:root:not([data-theme]){color-scheme:light;color:#1b1b1b;background-color:#fafafa}}:root[data-theme=dark]{color-scheme:dark;color:#ffffffeb;background-color:#121212;--color-link: #7aa2ff;--color-success: #2ea043;--color-error: #ff4545;--color-copy-btn: #4CAF50;--color-tab-bg: #2a2a2a;--color-tab-border: #444;--color-tab-hover: #3a3a3a;--color-tab-active: #505050;--color-game-border: #888}:root[data-theme=light]{color-scheme:light;color:#1b1b1b;background-color:#fafafa;--color-link: #2a5db0;--color-success: #1a7f37;--color-error: #cf222e;--color-copy-btn: #1a7f37;--color-tab-bg: #f1f1f1;--color-tab-border: #ccc;--color-tab-hover: #e0e0e0;--color-tab-active: #d0d0d0;--color-game-border: #000}a{font-weight:600;color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}body{margin:0;min-width:320px;min-height:100vh;scrollbar-gutter:stable}h1{font-size:1.7rem;line-height:1.2;margin:0 0 8px}h2{font-size:1.05rem;margin:0 0 8px}button,select{font:inherit}button{border-radius:10px;border:1px solid color-mix(in oklab,currentColor 20%,transparent);padding:.55em .9em;background:color-mix(in oklab,currentColor 6%,transparent);cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}select{padding:.45em .7em;border-radius:10px;border:1px solid color-mix(in oklab,currentColor 20%,transparent);background:color-mix(in oklab,currentColor 6%,transparent);color:inherit}pre,code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}:root[data-theme=dark] code[class*=language-],:root[data-theme=dark] pre[class*=language-]{color:#d4d4d4}:root[data-theme=dark] pre[class*=language-]>code{border-left-color:#7aa2ff;box-shadow:-1px 0 #7aa2ff,0 0 0 1px #333;background-color:#1e1e1e;background-image:linear-gradient(transparent 50%,#64a0ff0a 50%)}:root[data-theme=dark] :not(pre)>code[class*=language-],:root[data-theme=dark] pre[class*=language-]{background-color:#1e1e1e}:root[data-theme=dark] .token.comment,:root[data-theme=dark] .token.block-comment,:root[data-theme=dark] .token.prolog,:root[data-theme=dark] .token.doctype,:root[data-theme=dark] .token.cdata{color:#6a9955}:root[data-theme=dark] .token.punctuation{color:#d4d4d4}:root[data-theme=dark] .token.property,:root[data-theme=dark] .token.tag,:root[data-theme=dark] .token.boolean,:root[data-theme=dark] .token.number,:root[data-theme=dark] .token.function-name,:root[data-theme=dark] .token.constant,:root[data-theme=dark] .token.symbol,:root[data-theme=dark] .token.deleted{color:#f47067}:root[data-theme=dark] .token.selector,:root[data-theme=dark] .token.attr-name,:root[data-theme=dark] .token.string,:root[data-theme=dark] .token.char,:root[data-theme=dark] .token.function,:root[data-theme=dark] .token.builtin,:root[data-theme=dark] .token.inserted{color:#a5d6ff}:root[data-theme=dark] .token.operator,:root[data-theme=dark] .token.entity,:root[data-theme=dark] .token.url,:root[data-theme=dark] .token.variable{color:#d2a8ff;background:none}:root[data-theme=dark] .token.atrule,:root[data-theme=dark] .token.attr-value,:root[data-theme=dark] .token.keyword,:root[data-theme=dark] .token.class-name{color:#7ee787}:root[data-theme=dark] .token.regex,:root[data-theme=dark] .token.important{color:#ffa657}:root[data-theme=dark] .language-css .token.string,:root[data-theme=dark] .style .token.string{color:#d2a8ff;background:none}.themeToggle{padding:.35em .55em;font-size:1.1rem;line-height:1;border-radius:8px;background:none;border:1px solid color-mix(in oklab,currentColor 15%,transparent);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.themeToggle:hover{background:color-mix(in oklab,currentColor 10%,transparent)}#root{width:100%}.page{max-width:1100px;margin:0 auto;padding:16px}.topbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:16px}.brand{font-weight:700}.problemPick{display:flex;gap:8px;align-items:center}.links{font-size:.95rem;display:flex;align-items:center;gap:12px}.links a+a{margin-left:12px}.home{display:grid;gap:16px}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}@media(max-width:980px){.grid{grid-template-columns:1fr}}.card{border:1px solid color-mix(in oklab,currentColor 20%,transparent);border-radius:12px;padding:16px;background:color-mix(in oklab,currentColor 3%,transparent)}.muted{opacity:.8}.sig{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:start;margin-top:12px}.sigLabel{font-weight:600;opacity:.9}.sigCode{margin:0;padding:10px;border-radius:10px;background:color-mix(in oklab,currentColor 8%,transparent);overflow:auto}.editor{width:100%;min-height:360px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;padding:12px;tab-size:4;-moz-tab-size:4;border-radius:10px;border:1px solid color-mix(in oklab,currentColor 20%,transparent);background:color-mix(in oklab,currentColor 4%,transparent);color:inherit}.actions{display:flex;gap:10px;align-items:center;margin-top:10px}.panel{margin-top:12px;border-radius:10px;border:1px solid color-mix(in oklab,currentColor 20%,transparent)}.panel.error{border-color:color-mix(in oklab,var(--color-error) 50%,transparent)}.serverNotice--success{border-color:color-mix(in oklab,var(--color-success) 55%,transparent)}.serverNotice--warning{border-color:color-mix(in oklab,#f59e0b 55%,transparent)}.serverNotice--error{border-color:color-mix(in oklab,var(--color-error) 55%,transparent)}.panelTitle{font-weight:600;padding:10px 12px;border-bottom:1px solid color-mix(in oklab,currentColor 18%,transparent)}.panelBody{margin:0;padding:10px 12px;overflow:auto}.celebration{margin-top:12px;padding:16px;border-radius:12px;border:1px solid color-mix(in oklab,var(--color-success) 55%,transparent);background:color-mix(in oklab,var(--color-success) 12%,transparent);animation:celebration-pop .22s ease-out}.celebrationTitle{font-size:1.35rem;font-weight:800;color:var(--color-success)}.celebrationSub{margin-top:4px;font-weight:600;opacity:.95}@keyframes celebration-pop{0%{transform:translateY(2px);opacity:.6}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.celebration{animation:none}}.results{list-style:none;padding:0;margin:0;display:grid;gap:10px}.results li{position:relative;--result-state-color: currentColor;--result-tier-color: var(--result-state-color);padding:10px 10px 10px 16px;border-radius:10px;background:color-mix(in oklab,currentColor 5%,transparent);overflow:hidden}.results li.pass{--result-state-color: var(--color-success)}.results li.fail{--result-state-color: var(--color-error)}.results li:before{content:"";position:absolute;inset:0 auto 0 0;width:6px;border-radius:10px 0 0 10px;background:linear-gradient(135deg,var(--result-state-color) 0 50%,var(--result-tier-color) 50% 100%)}.results li.testTier--hidden{--result-tier-color: #f59e0b}.results li.testTier--serverFixed{--result-tier-color: #6d28d9}.results li.testTier--serverRandom{--result-tier-color: #c026d3}.results li.testTier--serverOther{--result-tier-color: #8b5cf6}.testName{font-weight:700;margin-right:8px}.testStatus{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.testTier--visible.pass .testStatus{color:var(--color-success)}.testTier--hidden.pass .testStatus{color:color-mix(in oklab,#f59e0b 78%,currentColor)}.testTier--serverFixed.pass .testStatus{color:color-mix(in oklab,#6d28d9 78%,currentColor)}.testTier--serverRandom.pass .testStatus{color:color-mix(in oklab,#c026d3 78%,currentColor)}.testTier--serverOther.pass .testStatus{color:color-mix(in oklab,#8b5cf6 78%,currentColor)}.results li.fail .testStatus{color:var(--color-error)}.tiny{margin:8px 0 0;font-size:12px;opacity:.9;overflow:auto}.json,.console{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;border-radius:10px;background:color-mix(in oklab,currentColor 6%,transparent);border:1px solid color-mix(in oklab,currentColor 18%,transparent)}.footer{margin-top:16px}.homeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}@media(max-width:980px){.homeGrid{grid-template-columns:1fr}}.homeSectionTitle{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.homeList{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:12px}.homeLink{display:flex;gap:10px;align-items:baseline;text-decoration:none}.homeLink:hover{text-decoration:underline}.homeId{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-weight:700}.homeTitle{opacity:.9}.homeDesc{margin-top:4px;font-size:.95rem}.solvedCheck{display:inline-flex;align-items:center;gap:4px;border-radius:999px;border:1px solid color-mix(in oklab,var(--color-success) 55%,transparent);background:color-mix(in oklab,var(--color-success) 12%,transparent);color:var(--color-success);padding:1px 8px;font-size:.78rem;font-weight:700;margin-left:6px;white-space:nowrap}.progressBadges{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.solvedCheck.verified,.badge.verified{border-color:color-mix(in oklab,#7c3aed 55%,transparent);background:color-mix(in oklab,#7c3aed 13%,transparent);color:color-mix(in oklab,#7c3aed 80%,currentColor)}.challengeCheck,.badge.challenge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;border:1px solid color-mix(in oklab,#3b82f6 42%,transparent);background:color-mix(in oklab,#3b82f6 9%,transparent);color:color-mix(in oklab,#3b82f6 78%,currentColor);padding:1px 8px;font-size:.78rem;font-weight:700;margin-left:6px;white-space:nowrap}.chapterComplete{display:inline-flex;align-items:center;gap:4px;border-radius:999px;border:1px solid color-mix(in oklab,var(--color-success) 55%,transparent);background:color-mix(in oklab,var(--color-success) 12%,transparent);color:var(--color-success);padding:1px 8px;font-size:.78rem;font-weight:700;margin-left:8px;white-space:nowrap}.chapterProgress{display:inline-flex;align-items:center;border-radius:999px;border:1px solid color-mix(in oklab,currentColor 20%,transparent);background:color-mix(in oklab,currentColor 5%,transparent);padding:1px 8px;font-size:.78rem;font-weight:700;margin-left:8px;white-space:nowrap;opacity:.7}.chapterVerified{display:inline-flex;align-items:center;gap:4px;border-radius:999px;border:1px solid color-mix(in oklab,#7c3aed 55%,transparent);background:color-mix(in oklab,#7c3aed 13%,transparent);color:color-mix(in oklab,#7c3aed 80%,currentColor);padding:1px 8px;font-size:.78rem;font-weight:700;margin-left:8px;white-space:nowrap}.auth{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.authSignedOut{display:contents}.authLoading{display:inline-flex;align-items:center;min-height:calc(2.6em + 2px)}.authSignIn{flex-basis:100%;display:grid;gap:8px;justify-items:start;padding-top:2px}.authOtpRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-start}.authOAuthRow{display:flex;align-items:center;gap:8px;justify-content:flex-start}.authField{display:flex;align-items:center;gap:8px}.authField input{padding:.45em .7em;border-radius:10px;border:1px solid color-mix(in oklab,currentColor 20%,transparent);background:color-mix(in oklab,currentColor 6%,transparent);color:inherit}.authCodeInput{width:140px}.authGitHubButton{opacity:.82}.authStatus{display:inline-flex;align-items:flex-start;gap:8px;min-width:min(320px,100%);max-width:720px;border:1px solid color-mix(in oklab,currentColor 20%,transparent);border-radius:10px;padding:6px 9px;font-size:.9rem;font-weight:600;background:color-mix(in oklab,currentColor 7%,transparent)}.authStatus:before{content:"";width:8px;height:8px;margin-top:.35em;border-radius:999px;background:currentColor;box-shadow:0 0 0 3px color-mix(in oklab,currentColor 16%,transparent);flex:0 0 auto}.authStatusLine{flex-basis:100%}.authStatus--info{color:color-mix(in oklab,#3b82f6 70%,currentColor);background:color-mix(in oklab,#3b82f6 12%,transparent);border-color:color-mix(in oklab,#3b82f6 45%,transparent)}.authStatus--warning{color:color-mix(in oklab,#f59e0b 70%,currentColor);background:color-mix(in oklab,#f59e0b 14%,transparent);border-color:color-mix(in oklab,#f59e0b 55%,transparent)}.authStatus--error{color:color-mix(in oklab,#ef4444 72%,currentColor);background:color-mix(in oklab,#ef4444 13%,transparent);border-color:color-mix(in oklab,#ef4444 58%,transparent)}.testDataNote{margin-top:8px}.authEmail{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9rem;opacity:.9}.badge{display:inline-flex;align-items:center;border-radius:999px;border:1px solid color-mix(in oklab,currentColor 20%,transparent);padding:2px 8px;font-size:.78rem;font-weight:700;line-height:1.5;white-space:nowrap;background:color-mix(in oklab,currentColor 5%,transparent)}.badge.solved,.badgeComplete{border-color:color-mix(in oklab,var(--color-success) 55%,transparent);background:color-mix(in oklab,var(--color-success) 12%,transparent);color:var(--color-success)}.badgeVerified{border-color:color-mix(in oklab,#7c3aed 55%,transparent);background:color-mix(in oklab,#7c3aed 13%,transparent);color:color-mix(in oklab,#7c3aed 80%,currentColor)}.badge.unsolved{opacity:.85}code[class*=language-],pre[class*=language-]{color:#000;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{position:relative;margin:.5em 0;overflow:visible;padding:1px}pre[class*=language-]>code{position:relative;z-index:1;border-left:10px solid #358ccb;box-shadow:-1px 0 #358ccb,0 0 0 1px #dfdfdf;background-color:#fdfdfd;background-image:linear-gradient(transparent 50%,#458ed10a 50%);background-size:3em 3em;background-origin:content-box;background-attachment:local}code[class*=language-]{max-height:inherit;height:inherit;padding:0 1em;display:block;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background-color:#fdfdfd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:1em}:not(pre)>code[class*=language-]{position:relative;padding:.2em;border-radius:.3em;color:#c92c2c;border:1px solid rgba(0,0,0,.1);display:inline;white-space:normal}pre[class*=language-]:before,pre[class*=language-]:after{content:"";display:block;position:absolute;bottom:.75em;left:.18em;width:40%;height:20%;max-height:13em;box-shadow:0 13px 8px #979797;-webkit-transform:rotate(-2deg);-moz-transform:rotate(-2deg);-ms-transform:rotate(-2deg);-o-transform:rotate(-2deg);transform:rotate(-2deg)}pre[class*=language-]:after{right:.75em;left:auto;-webkit-transform:rotate(2deg);-moz-transform:rotate(2deg);-ms-transform:rotate(2deg);-o-transform:rotate(2deg);transform:rotate(2deg)}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#7d8b99}.token.punctuation{color:#5f6364}.token.property,.token.tag,.token.boolean,.token.number,.token.function-name,.token.constant,.token.symbol,.token.deleted{color:#c92c2c}.token.selector,.token.attr-name,.token.string,.token.char,.token.function,.token.builtin,.token.inserted{color:#2f9c0a}.token.operator,.token.entity,.token.url,.token.variable{color:#a67f59;background:#ffffff80}.token.atrule,.token.attr-value,.token.keyword,.token.class-name{color:#1990b8}.token.regex,.token.important{color:#e90}.language-css .token.string,.style .token.string{color:#a67f59;background:#ffffff80}.token.important{font-weight:400}.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.namespace{opacity:.7}@media screen and (max-width:767px){pre[class*=language-]:before,pre[class*=language-]:after{bottom:14px;box-shadow:none}}pre[class*=language-].line-numbers.line-numbers{padding-left:0}pre[class*=language-].line-numbers.line-numbers code{padding-left:3.8em}pre[class*=language-].line-numbers.line-numbers .line-numbers-rows{left:0}pre[class*=language-][data-line]{padding-top:0;padding-bottom:0;padding-left:0}pre[data-line] code{position:relative;padding-left:4em}pre .line-highlight{margin-top:0}.copy{position:absolute;right:0;z-index:3;padding:5px 10px;cursor:pointer;background-color:var(--color-copy-btn);color:#fff;border:none;border-radius:5px;font-size:14px}.tab{overflow:hidden;border:1px solid var(--color-tab-border);background-color:var(--color-tab-bg)}.tab button{background-color:inherit;float:left;border:none;outline:none;cursor:pointer;padding:14px 16px;transition:.3s;font-size:17px}.tab button:hover{background-color:var(--color-tab-hover)}.tab button.active{background-color:var(--color-tab-active)}
