@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/sql-quest/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/sql-quest/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/sql-quest/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/sql-quest/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/sql-quest/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/sql-quest/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/sql-quest/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/sql-quest/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/sql-quest/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/sql-quest/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/sql-quest/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/sql-quest/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans:"Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--radius-sm:8px;--radius:12px;--radius-lg:18px;--header-h:60px;--ease:cubic-bezier(.2, .8, .2, 1)}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0f20;--bg-2:#0f1328;--surface:#151a35;--surface-2:#1b2143;--surface-3:#242b54;--border:#272e5c;--border-strong:#38417d;--text:#e9ebfa;--text-2:#b8bde0;--muted:#8b91bb;--accent:#8b6cff;--accent-strong:#a58dff;--accent-soft:#8b6cff29;--accent-2:#5ee1ff;--accent-2-soft:#5ee1ff24;--success:#34d399;--success-soft:#34d39924;--danger:#fb7185;--danger-soft:#fb718524;--warning:#fbbf24;--warning-soft:#fbbf2424;--gold:#fcd34d;--code-bg:#0a0d1d;--shadow:0 10px 30px #00000059;--shadow-sm:0 2px 10px #00000040;--glow:0 0 0 1px #8b6cff59, 0 8px 30px #8b6cff40;--syn-keyword:#c792ff;--syn-string:#a5e887;--syn-number:#ffb86b;--syn-comment:#6b7299;--syn-func:#5ee1ff;--syn-type:#ffcb6b;--syn-op:#9aa3d8;--syn-name:#e9ebfa}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f5fb;--bg-2:#eceef8;--surface:#fff;--surface-2:#f5f6fc;--surface-3:#e9ecf7;--border:#e0e3f0;--border-strong:#c7cce2;--text:#141733;--text-2:#3a3f66;--muted:#676d93;--accent:#6a4af0;--accent-strong:#5634e0;--accent-soft:#6a4af01a;--accent-2:#0e8fb0;--accent-2-soft:#0e8fb01a;--success:#059669;--success-soft:#0596691a;--danger:#e11d48;--danger-soft:#e11d4814;--warning:#c77700;--warning-soft:#d977061a;--gold:#f0a800;--code-bg:#f7f8fd;--shadow:0 10px 30px #1e235a1f;--shadow-sm:0 2px 8px #1e235a14;--glow:0 0 0 1px #6a4af04d, 0 8px 24px #6a4af02e;--syn-keyword:#7c3aed;--syn-string:#15803d;--syn-number:#c2410c;--syn-comment:#8a90b0;--syn-func:#0e7490;--syn-type:#a16207;--syn-op:#525a85;--syn-name:#141733}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.6;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.015em;margin:0 0 .5em;line-height:1.25}p{margin:0 0 .9em}code,kbd,pre{font-family:var(--font-mono);font-size:.9em}:not(pre)>code{background:var(--accent-soft);color:var(--accent-strong);white-space:nowrap;border-radius:6px;padding:.1em .38em;font-size:.86em}kbd{background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text-2);border-bottom-width:2px;border-radius:5px;padding:0 5px;font-size:.75em}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tok-keyword{color:var(--syn-keyword);font-weight:600}.tok-string,.tok-string2{color:var(--syn-string)}.tok-number,.tok-bool,.tok-atom{color:var(--syn-number)}.tok-comment{color:var(--syn-comment);font-style:italic}.tok-typeName{color:var(--syn-type)}.tok-operator,.tok-punctuation{color:var(--syn-op)}.tok-variableName,.tok-propertyName{color:var(--syn-name)}.tok-variableName2,.tok-standard{color:var(--syn-func)}pre.sql-code,.code-block pre{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:14px 16px;font-size:.88rem;line-height:1.55;overflow-x:auto}pre.sql-code{margin:.4em 0 1em}.btn{--btn-bg:var(--surface-2);--btn-fg:var(--text);--btn-border:var(--border);border:1px solid var(--btn-border);background:var(--btn-bg);height:38px;color:var(--btn-fg);font:inherit;cursor:pointer;white-space:nowrap;transition:transform .12s var(--ease), background .15s, border-color .15s, box-shadow .15s, opacity .15s;-webkit-user-select:none;user-select:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.92rem;font-weight:600;display:inline-flex;text-decoration:none!important}.btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--border-strong)}.btn:active:not(:disabled){transform:translateY(1px)scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{--btn-bg:linear-gradient(135deg, var(--accent), #6f55f0);--btn-fg:#fff;--btn-border:transparent;background:var(--btn-bg);box-shadow:0 4px 16px #8b6cff59}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--accent-strong), var(--accent));border-color:#0000;box-shadow:0 6px 22px #8b6cff73}.btn-success{--btn-fg:#fff;background:linear-gradient(135deg,#10b981,#059669);border-color:#0000;box-shadow:0 4px 16px #10b9814d}.btn-success:hover:not(:disabled){background:linear-gradient(135deg,#34d399,#10b981);border-color:#0000}.btn-ghost{--btn-bg:transparent;--btn-border:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:#0000}.btn-sm{border-radius:8px;height:30px;padding:0 11px;font-size:.82rem}.btn-lg{border-radius:12px;height:48px;padding:0 24px;font-size:1rem}.btn-icon{width:38px;padding:0}.btn-icon.btn-sm{width:30px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.chip{background:var(--surface-3);color:var(--text-2);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.chip-accent{background:var(--accent-soft);color:var(--accent-strong);border-color:#0000}.chip-gold{background:var(--warning-soft);color:var(--gold);border-color:#0000}.chip-success{background:var(--success-soft);color:var(--success);border-color:#0000}.muted{color:var(--muted)}.page{width:100%;max-width:1180px;margin:0 auto;padding:32px 20px 80px}.page-title{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800}.progress-bar{background:var(--surface-3);border-radius:999px;height:8px;overflow:hidden}.progress-bar>span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--accent-2));height:100%;transition:width .6s var(--ease);display:block}.stars{letter-spacing:0;gap:1px;display:inline-flex}.stars .on{color:var(--gold);filter:drop-shadow(0 0 4px #fcd34d73)}.stars .off{color:var(--surface-3)}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-header{z-index:50;height:var(--header-h);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);align-items:center;gap:18px;padding:0 18px;display:flex;position:sticky;top:0}.brand{color:var(--text);letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.08rem;font-weight:800;display:flex;text-decoration:none!important}.brand img{width:30px;height:30px}.brand span b{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.main-nav{gap:4px;display:flex}.main-nav a{color:var(--text-2);border-radius:9px;padding:7px 12px;font-size:.92rem;font-weight:600;text-decoration:none}.main-nav a:hover{background:var(--surface-2);color:var(--text)}.main-nav a.active{background:var(--accent-soft);color:var(--accent-strong)}.header-right{align-items:center;gap:8px;margin-left:auto;display:flex}.hud-pill{background:var(--surface);border:1px solid var(--border);height:36px;color:var(--text);border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:.86rem;font-weight:700;display:flex;text-decoration:none!important}.hud-pill .xp-mini{width:60px;height:6px}.hud-streak{color:var(--warning)}@media (max-width:860px){.app-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--bg)}.main-nav{z-index:60;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border);justify-content:space-around;position:fixed;bottom:0;left:0;right:0}.main-nav a{padding:6px 10px;font-size:.8rem}.hud-pill .xp-mini,.hud-pill .rank-name{display:none}.page{padding-bottom:110px}.toasts{bottom:80px;left:16px}}.toasts{z-index:200;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:20px;right:16px}.toast{pointer-events:auto;background:var(--surface);border:1px solid var(--border-strong);min-width:240px;max-width:340px;box-shadow:var(--shadow);animation:toast-in .35s var(--ease);cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:12px 16px;display:flex}.toast-icon{font-size:1.5rem}.toast-title{font-size:.92rem;font-weight:700}.toast-body{color:var(--muted);font-size:.8rem;line-height:1.4}.toast-xp{border-color:#fcd34d73}.toast-xp .toast-title{color:var(--gold)}.toast-achievement,.toast-rank{border-color:var(--accent);box-shadow:var(--glow)}@keyframes toast-in{0%{opacity:0;transform:translateY(20px)scale(.96)}}.modal-backdrop{z-index:150;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0507149e;place-items:center;padding:16px;animation:.2s fade-in;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border-strong);width:min(560px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow);animation:pop-in .35s var(--ease);border-radius:22px;padding:28px;overflow-y:auto}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(12px)scale(.96)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-main{flex-direction:column;flex:1;display:flex}.page-loading{color:var(--muted);justify-content:center;align-items:center;gap:10px;padding:80px 20px;display:flex}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);margin-bottom:6px;font-size:.78rem;font-weight:700}.small{font-size:.85rem}.section-title{margin:36px 0 14px;font-size:1.35rem;font-weight:800}.section-sub{margin-top:-6px}.prose{color:var(--text-2);font-size:1rem;line-height:1.72}.prose p,.prose ul,.prose ol{margin:0 0 .95em}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.3em 0}.prose li::marker{color:var(--accent)}.prose strong{color:var(--text);font-weight:700}.prose em{color:var(--text)}.prose h3{color:var(--text);margin:1.4em 0 .5em;font-size:1.12rem}.prose h4{color:var(--text);margin:1.2em 0 .4em;font-size:1rem}.prose blockquote{border-left:3px solid var(--border-strong);color:var(--muted);margin:0 0 1em;padding:4px 14px}.prose table{border-collapse:collapse;width:100%;margin:.4em 0 1.2em;font-size:.92rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:7px 11px}.prose th{background:var(--surface-2);color:var(--text);font-weight:700}.prose>:last-child{margin-bottom:0}.prose hr{border:0;border-top:1px dashed var(--border-strong);margin:1.5em 0}.level-page{height:calc(100vh - var(--header-h));flex-direction:column;min-height:560px;display:flex}.level-top{border-bottom:1px solid var(--border);background:var(--bg-2);align-items:center;gap:16px;padding:10px 18px;display:flex}.level-heading{flex:1;min-width:0}.level-floor{letter-spacing:.06em;text-transform:uppercase;font-size:.74rem;font-weight:700}.level-title{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:10px;margin:0;font-size:1.15rem;font-weight:800;display:flex;overflow:hidden}.level-best{font-size:.9rem}.boss-tag{letter-spacing:.1em;color:#fff;background:linear-gradient(135deg,#f59e0b,#ef4444);border-radius:6px;padding:3px 8px;font-size:.66rem;font-weight:800}.step-pills{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:0;padding:0;list-style:none;display:flex}.step-pill{border:2px solid var(--border-strong);background:var(--surface);width:30px;height:30px;color:var(--muted);font:inherit;cursor:pointer;transition:all .2s var(--ease);border-radius:50%;font-size:.8rem;font-weight:700}.step-pill:disabled{cursor:default;opacity:.45}.step-pill.done{border-color:var(--success);color:var(--success)}.step-pill.current{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 0 0 4px var(--accent-soft)}.level-split{flex:1;grid-template-columns:minmax(380px,46%) 1fr;min-height:0;display:grid}.lesson-pane{border-right:1px solid var(--border);padding:28px 32px 40px;overflow-y:auto}.step{max-width:720px;animation:step-in .35s var(--ease);margin:0 auto}@keyframes step-in{0%{opacity:0;transform:translateY(8px)}}.step-kicker{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:700}.step-title{margin:4px 0 18px;font-size:1.6rem;font-weight:800}.step>*+*{margin-top:18px}.step-nav{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;max-width:720px;margin:30px auto 0;padding-top:18px;display:flex}.step-nav-note{font-size:.88rem}.editor-pane{background:var(--bg-2);flex-direction:column;min-height:0;display:flex}.mobile-tabs,.mobile-solve{display:none}@media (max-width:960px){.level-page{height:auto;min-height:calc(100vh - var(--header-h))}.level-top{flex-wrap:wrap;padding:10px 14px}.step-pills{justify-content:flex-start;width:100%}.level-split{display:block}.lesson-pane{border-right:0;padding:20px 16px 120px}.mobile-tabs{top:var(--header-h);z-index:20;background:var(--bg);border-bottom:1px solid var(--border);display:flex;position:sticky}.mobile-tabs button{color:var(--muted);font:inherit;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:12px;font-weight:700}.mobile-tabs button.active{color:var(--accent-strong);border-bottom-color:var(--accent)}.tab-lesson .editor-pane,.tab-editor .lesson-pane{display:none}.editor-pane{min-height:calc(100vh - var(--header-h) - 48px);padding-bottom:80px}.mobile-solve{z-index:30;display:flex;position:fixed;bottom:74px;left:16px;right:16px}}.code-block{position:relative}.code-caption{color:var(--muted);margin-bottom:6px;font-size:.78rem;font-weight:700}.code-actions{justify-content:flex-end;gap:4px;margin-top:4px;display:flex}.example{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.example-head{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 14px;font-size:.82rem;display:flex}.example-label{color:var(--accent-2);letter-spacing:.03em;font-weight:800}.example-caption{color:var(--text-2);font-weight:600}.example-fails{background:var(--warning-soft);color:var(--warning);border-color:#0000;margin-left:auto}.example-code,.example pre{background:var(--code-bg);margin:0;padding:14px 16px;font-size:.9rem;line-height:1.6;overflow-x:auto}.quiz .example-code{border-radius:var(--radius-sm);border:1px solid var(--border);margin-bottom:12px}.example-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:10px 12px;display:flex}.example>.result-table,.example>.error-card,.example>.run-message{margin:0 12px 12px}.callout{--c:var(--accent);border:1px solid color-mix(in srgb, var(--c) 35%, var(--border));background:color-mix(in srgb, var(--c) 8%, var(--surface));border-radius:var(--radius);padding:14px 16px}.callout-title{color:var(--text);margin-bottom:6px;font-size:.95rem;font-weight:800}.callout .prose{font-size:.95rem}.callout-tip{--c:#10b981}.callout-mistake{--c:#f43f5e}.callout-interview{--c:#f59e0b}.callout-mysql{--c:#0ea5e9}.callout-analogy{--c:#a855f7}.callout-think{--c:#22d3ee}.callout-note{--c:#64748b}.maya{align-items:flex-start;gap:12px;display:flex}.maya-avatar{background:linear-gradient(135deg, var(--accent-soft), var(--accent-2-soft));border:2px solid var(--accent);border-radius:50%;flex:none;place-items:center;width:46px;height:46px;font-size:1.6rem;display:grid}.maya-bubble{background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-sm);border-radius:4px 16px 16px;flex:1;padding:12px 16px;position:relative}.maya-name{color:var(--accent-strong);margin-bottom:4px;font-size:.78rem;font-weight:800}.quiz{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:16px}.quiz-label{color:var(--accent-2);margin-bottom:6px;font-size:.85rem;font-weight:800}.quiz-question{color:var(--text);font-weight:600}.quiz-options{gap:8px;display:grid}.quiz-option{text-align:left;border:1.5px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;transition:all .15s var(--ease);border-radius:10px;align-items:center;gap:12px;padding:10px 14px;font-size:.95rem;display:flex}.quiz-option:hover:not(:disabled){border-color:var(--accent);transform:translate(3px)}.quiz-option:disabled{cursor:default}.quiz-letter{background:var(--surface-3);width:26px;height:26px;color:var(--text-2);border-radius:7px;flex:none;place-items:center;font-size:.8rem;font-weight:800;display:grid}.quiz-option.correct{border-color:var(--success);background:var(--success-soft)}.quiz-option.correct .quiz-letter{background:var(--success);color:#fff}.quiz-option.wrong{border-color:var(--danger);background:var(--danger-soft);animation:.35s shake}.quiz-option.wrong .quiz-letter{background:var(--danger);color:#fff}.quiz-option.dim{opacity:.55}.quiz-explain{background:var(--surface-2);border-left:3px solid var(--success);border-radius:10px;margin-top:12px;padding:12px 14px}.quiz-explain.bad{border-left-color:var(--warning)}.quiz-explain .prose{margin-top:4px;font-size:.93rem}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.task-card{border:1.5px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:18px}.task-card.mission{border-color:color-mix(in srgb, var(--accent) 60%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 7%, var(--surface)), var(--surface));box-shadow:var(--glow)}.task-card.solved{border-color:color-mix(in srgb, var(--success) 60%, var(--border));box-shadow:none}.task-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.task-badge{background:var(--accent-2-soft);color:var(--accent-2);border-radius:999px;padding:3px 10px;font-size:.78rem;font-weight:800}.task-badge.mission{background:var(--accent);color:#fff}.task-title{color:var(--text);font-weight:800}.task-stars{margin-left:auto;font-size:1.1rem}.task-stars .on{color:var(--gold)}.task-stars .off{color:var(--surface-3)}.task-prompt{color:var(--text)}.task-help{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.task-footer{margin-top:12px;font-size:.85rem}.hints{gap:8px;margin-top:12px;display:grid}.hint{background:var(--warning-soft);border:1px dashed color-mix(in srgb, var(--warning) 50%, transparent);animation:step-in .3s var(--ease);border-radius:10px;padding:10px 14px}.hint-label{text-transform:uppercase;color:var(--warning);letter-spacing:.06em;font-size:.72rem;font-weight:800}.hint .prose{font-size:.93rem}.confirm-inline{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:6px;font-size:.88rem;display:inline-flex}.solution{margin-top:14px}.solution-label,.post-solve-title{color:var(--text);margin-bottom:6px;font-size:.9rem;font-weight:800}.post-solve{border-top:1px dashed var(--border-strong);margin-top:14px;padding-top:14px}.alt{margin-top:10px}.alt summary{cursor:pointer;color:var(--accent-strong);margin-bottom:8px;font-size:.9rem;font-weight:700}.alt-item{margin-top:12px}.workspace{flex-direction:column;flex:1;min-height:0;display:flex}.ws-task{border-bottom:1px solid var(--border);background:var(--surface)}.ws-task.mission{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 10%, var(--surface)), var(--surface))}.ws-task-bar{width:100%;color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:9px 14px;font-size:.88rem;font-weight:700;display:flex}.ws-task-bar.static{cursor:default}.ws-task-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.ws-task-toggle{font-size:.8rem;font-weight:600}.ws-task-prompt{max-height:30vh;padding:0 14px 12px;font-size:.92rem;overflow-y:auto}.ws-continue{margin:0 14px 12px}.ws-editor{background:var(--code-bg);flex:none;min-height:90px;overflow:hidden}.ws-editor .sql-editor,.ws-editor .cm-editor{height:100%}.ws-divider{cursor:row-resize;background:var(--border);touch-action:none;flex:none;height:7px;position:relative}.ws-divider:after{content:"";background:var(--border-strong);border-radius:3px;width:40px;height:3px;margin-left:-20px;position:absolute;top:2px;left:50%}.ws-divider:hover{background:var(--accent-soft)}.ws-toolbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 14px;display:flex}.ws-spacer{flex:1}.ws-shortcut{font-size:.78rem}@media (max-width:1200px){.ws-shortcut{display:none}}.ws-tabs{background:var(--surface);border-bottom:1px solid var(--border);gap:2px;padding:0 10px;display:flex}.ws-tabs button,.result-tabs button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:9px 12px;font-size:.84rem;font-weight:700}.ws-tabs button.active,.result-tabs button.active{color:var(--accent-strong);border-bottom-color:var(--accent)}.ws-output{flex:1;min-height:160px;padding:14px;overflow:auto}.ws-hint{color:var(--text-2);align-items:center;gap:14px;padding:20px 8px;font-size:.93rem;display:flex}.ws-hint-icon{font-size:2rem}.engine-banner{background:var(--accent-soft);color:var(--text-2);border-radius:10px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 14px;font-size:.88rem;display:flex}.engine-banner.failed{background:var(--danger-soft)}.expected-note{margin-bottom:10px;font-size:.85rem}.preview-label{color:var(--muted);margin-bottom:8px;font-size:.85rem}.run-messages{gap:4px;margin-bottom:10px;display:grid}.run-message{color:var(--success);font-size:.88rem;font-family:var(--font-mono)}.run-time{color:var(--muted);margin-top:8px;font-size:.75rem}.result-tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:8px;display:flex}.result-table{border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow:hidden}.result-caption{color:var(--text-2);background:var(--surface-2);border-bottom:1px solid var(--border);padding:6px 12px;font-size:.78rem;font-weight:800}.result-scroll{overflow:auto}.result-table table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:.84rem}.result-table.compact table{font-size:.8rem}.result-table th{z-index:1;background:var(--surface-2);color:var(--text);text-align:left;border-bottom:1px solid var(--border-strong);white-space:nowrap;padding:7px 12px;font-weight:700;position:sticky;top:0}.result-table td{border-bottom:1px solid var(--border);white-space:nowrap;color:var(--text-2);padding:6px 12px}.result-table tr:last-child td{border-bottom:0}.result-table tbody tr:hover td{background:var(--surface-2)}.result-table .num{text-align:right}.result-table .rownum{width:1%;color:var(--muted);text-align:right;-webkit-user-select:none;user-select:none;padding-right:6px;font-size:.75rem}.null{color:var(--muted);opacity:.8;font-size:.85em;font-style:italic}.result-table tr.flag-extra td{background:var(--danger-soft)}.result-table tr.flag-missing td{background:var(--warning-soft)}.result-footer{color:var(--muted);border-top:1px solid var(--border);background:var(--surface-2);padding:5px 12px;font-size:.75rem}.result-empty{color:var(--muted);text-align:center;padding:16px;font-size:.88rem}.error-card{border:1px solid color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 6%, var(--surface));color:var(--text-2);border-radius:12px;padding:14px 16px;font-size:.93rem}.error-head{align-items:center;gap:12px;margin-bottom:8px;display:flex}.error-icon{font-size:1.5rem}.error-title{color:var(--text);font-weight:800}.error-where{color:var(--muted);font-size:.8rem}.error-tips{margin:0 0 8px;padding-left:1.2em}.error-tips li{margin:4px 0}.error-raw{background:var(--code-bg);border:1px solid var(--border);white-space:pre-wrap;color:var(--danger);border-radius:8px;margin:8px 0 0;padding:10px 12px;font-size:.8rem}.verdict{gap:12px;display:grid}.verdict-card{animation:pop-in .3s var(--ease);border:1px solid;border-radius:12px;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.verdict-card.pass{border-color:color-mix(in srgb, var(--success) 50%, transparent);background:var(--success-soft)}.verdict-card.fail{border-color:color-mix(in srgb, var(--warning) 45%, transparent);background:var(--warning-soft)}.verdict-icon{font-size:1.6rem;line-height:1}.verdict-title{color:var(--text);font-weight:800}.verdict-msg{color:var(--text-2);margin-top:2px;font-size:.92rem}.verdict-compare{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (max-width:1300px){.verdict-compare{grid-template-columns:1fr}}.schema-panel{gap:8px;display:grid}.schema-loading{color:var(--muted);align-items:center;gap:10px;display:flex}.schema-table{border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow:hidden}.schema-table-head{width:100%;color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:9px 12px;display:flex}.schema-caret{color:var(--muted);transition:transform .2s}.schema-table.open .schema-caret{transform:rotate(90deg)}.schema-name{font-family:var(--font-mono);font-weight:700}.schema-count{color:var(--muted);margin-left:auto;font-size:.78rem}.schema-cols{border-top:1px solid var(--border);padding:6px 0}.schema-col{font-family:var(--font-mono);justify-content:space-between;gap:10px;padding:3px 12px;font-size:.8rem;display:flex}.schema-col-name{color:var(--text);align-items:center;gap:6px;display:flex}.schema-col-type{color:var(--muted);text-align:right}.schema-ref{color:var(--accent-2)}.key-badge{font-size:.62rem;font-weight:800;font-family:var(--font-sans);border-radius:4px;padding:1px 5px}.key-badge.pk{background:var(--warning-soft);color:var(--gold)}.key-badge.fk{background:var(--accent-2-soft);color:var(--accent-2)}.schema-preview{margin:4px 8px 2px}.schema-others{justify-self:start}.viz{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);margin:0;overflow:hidden}.viz-title{font-family:var(--font-mono);color:var(--accent-strong);background:var(--surface-2);border-bottom:1px solid var(--border);padding:10px 16px;font-size:.85rem;font-weight:700}.viz-body{padding:16px;overflow-x:auto}.viz-caption{color:var(--muted);padding:0 16px 14px;font-size:.85rem}.viz-row{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.viz-arrow-block{animation:step-in .4s var(--ease);align-items:flex-start;gap:14px;display:flex}.viz-arrow{color:var(--accent);padding-top:60px;font-size:1.6rem}.viz-arrow.down{text-align:center;padding:0}.viz-controls{flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;display:flex}.viz-status{min-width:200px;color:var(--text-2);flex:1;padding-left:6px;font-size:.88rem}.t-good{color:var(--success)}.t-bad{color:var(--danger)}.t-warn{color:var(--warning)}.vtable-wrap{flex:none}.vtable-name{text-transform:uppercase;letter-spacing:.06em;height:26px;color:var(--muted);font-size:.74rem;font-weight:800;line-height:26px;font-family:var(--font-sans)}.vtable{border:1px solid var(--border-strong);background:var(--code-bg);font-family:var(--font-mono);transition:height .5s var(--ease);border-radius:10px;font-size:.8rem;position:relative;overflow:hidden}.vt-row{border-bottom:1px solid var(--border);width:100%;height:34px;transition:transform .7s var(--ease), opacity .45s, background-color .3s, box-shadow .3s;align-items:center;display:grid;position:absolute;top:0;left:0}.vt-head{background:var(--surface-2);color:var(--text);z-index:2;font-weight:700;position:absolute;transform:none!important}.vt-cell{white-space:nowrap;text-overflow:ellipsis;color:var(--text-2);padding:0 9px;overflow:hidden}.vt-head .vt-cell{color:var(--text)}.vt-cell.num{text-align:right}.vt-cell.null{color:var(--muted);font-style:italic}.vt-cell.hl-col{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text)}.vt-cell.new-col{background:color-mix(in srgb, var(--accent-2) 14%, transparent);color:var(--text);font-weight:700}.vt-mark{text-align:center;font-weight:800}.vt-row.current{box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-soft);z-index:1}.vt-row.keep{background:var(--success-soft)}.vt-row.keep .vt-mark{color:var(--success)}.vt-row.drop{opacity:.35}.vt-row.drop .vt-mark{color:var(--danger)}.vt-row.skip{opacity:.45;background:var(--surface-3)}.vt-row.gone{opacity:0;pointer-events:none}.vt-row.dim,.vt-row.faded{opacity:.4}.vt-row.appear{animation:.5s both fade-in}.vt-row.unmatched{opacity:.4;outline:1.5px dashed var(--danger);outline-offset:-3px}.vt-row.unmatched.kept{opacity:1;outline-color:var(--warning)}.vt-row.in-frame{box-shadow:inset 0 0 0 2px var(--accent-2)}.vt-row.src-a .vt-mark{color:var(--accent)}.vt-row.src-b .vt-mark{color:var(--accent-2)}.vt-row.grp-0{background:#8b6cff2e}.vt-row.grp-1{background:#22c1e62e}.vt-row.grp-2{background:#f59e0b2e}.vt-row.grp-3{background:#10b9812e}.vt-row.grp-4{background:#f43f5e2e}.vt-row.grp-5{background:#a3e6352e}.vt-row.grp-6{background:#e879f92e}.vt-row.grp-7{background:#60a5fa2e}.join-stage{align-items:flex-start;display:flex}.join-lines{flex:none;overflow:visible}.join-line{fill:none;stroke-width:2.5px;stroke-dasharray:200;stroke-dashoffset:200px;animation:draw .7s var(--ease) forwards}@keyframes draw{to{stroke-dashoffset:0}}.join-result{animation:step-in .4s var(--ease);margin-top:8px}.erd{position:relative}.erd-table{border:1.5px solid var(--border-strong);background:var(--code-bg);font-family:var(--font-mono);z-index:1;border-radius:10px;font-size:.8rem;position:absolute;top:0;overflow:hidden}.erd-head{background:var(--surface-2);height:36px;color:var(--text);border-bottom:1px solid var(--border-strong);padding:0 12px;font-weight:800;line-height:36px}.erd-col{height:28px;color:var(--text-2);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:0 12px;display:flex}.erd-lines{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:visible}.erd-line{fill:none;stroke:var(--accent-2);stroke-width:2px}.erd-arrowhead{fill:var(--accent-2)}.pipe-label{color:var(--muted);margin:4px 0 8px;font-size:.8rem;font-weight:700}.pipe-row{flex-wrap:wrap;gap:6px 0;margin-bottom:12px;display:flex}.pipe-cell{align-items:center;display:flex}.pipe-chip{border:1.5px solid var(--border-strong);background:var(--surface-2);min-width:96px;transition:all .3s var(--ease);border-radius:10px;padding:6px 10px}.pipe-chip.lit{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--glow)}.pipe-chip.dim{opacity:.7}.pipe-kw{font-family:var(--font-mono);color:var(--text);white-space:nowrap;font-size:.82rem;font-weight:800}.pipe-does{color:var(--muted);white-space:nowrap;font-size:.72rem}.pipe-arrow{color:var(--muted);padding:0 6px}.flow-steps{gap:12px;display:grid}.flow-step{border:1px solid var(--border);background:var(--surface-2);animation:step-in .35s var(--ease);border-radius:12px;gap:12px;padding:12px;transition:box-shadow .3s,border-color .3s;display:flex}.flow-step.current{border-color:var(--accent);box-shadow:var(--glow)}.flow-num{background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:.85rem;font-weight:800;display:grid}.flow-content{gap:8px;min-width:0;display:grid}.flow-title{color:var(--text);font-weight:700}.flow-sql{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;margin:0;padding:10px 12px;font-size:.82rem;overflow-x:auto}.flow-note{color:var(--text-2);font-size:.88rem}.map-hero{grid-template-columns:1fr 320px;align-items:end;gap:24px;margin-bottom:26px;display:grid}.map-summary{gap:12px;padding:18px;display:grid}.map-summary-row{justify-content:space-between;display:flex}.big-num{font-size:1.8rem;font-weight:800;line-height:1.1}.gold{color:var(--gold)}@media (max-width:800px){.map-hero{grid-template-columns:1fr}}.tower{gap:16px;display:grid}.floor{--floor-color:var(--accent);border:1px solid var(--border);border-left:4px solid var(--floor-color);border-radius:var(--radius-lg);background:var(--surface);padding:18px 20px;transition:box-shadow .2s}.floor.current{box-shadow:0 0 0 1px color-mix(in srgb, var(--floor-color) 60%, transparent), 0 10px 40px color-mix(in srgb, var(--floor-color) 18%, transparent)}.floor.locked{opacity:.6}.floor-head{align-items:center;gap:16px;display:flex}.floor-badge{background:color-mix(in srgb, var(--floor-color) 18%, var(--surface-2));width:54px;height:54px;color:var(--floor-color);border-radius:14px;flex:none;align-content:center;place-items:center;line-height:1;display:grid}.floor-num{font-size:1.4rem;font-weight:900}.floor-word{text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;font-weight:800}.floor-info{flex:1;min-width:0}.floor-info h2{margin:0;font-size:1.15rem}.floor-sub{color:var(--muted);font-size:.9rem}.floor-stats{text-align:right;font-size:.85rem;font-weight:700}.floor-stars{color:var(--gold)}.floor-lock{color:var(--muted)}.floor-intro{background:var(--surface-2);border-radius:10px;margin:14px 0 0;padding:12px 14px;font-size:.93rem}.floor-path{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:14px 10px;margin:18px 0 2px;padding:0;list-style:none;display:grid}.node a,.node>div{text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:6px 4px;transition:background .15s;display:flex;text-decoration:none!important}.node a:hover{background:var(--surface-2)}.node-circle{border:3px solid var(--border-strong);background:var(--surface-2);width:52px;height:52px;color:var(--text-2);transition:transform .2s var(--ease);border-radius:50%;place-items:center;font-size:1.1rem;font-weight:800;display:grid;position:relative}.node a:hover .node-circle{transform:scale(1.08)}.node.available .node-circle{border-color:var(--floor-color);color:var(--text)}.node.done .node-circle{border-color:var(--floor-color);background:var(--floor-color);color:#fff}.node.boss .node-circle{border-radius:18px;width:60px;height:60px;font-size:1.5rem}.node.skippable .node-circle{border-style:dashed;border-color:var(--floor-color)}.node.locked .node-circle{opacity:.7;font-size:.95rem}.node-pulse{border-radius:inherit;border:2px solid var(--floor-color);animation:1.8s ease-out infinite pulse;position:absolute;inset:-8px}@keyframes pulse{0%{opacity:.9;transform:scale(.85)}to{opacity:0;transform:scale(1.25)}}.node-title{color:var(--text);font-size:.8rem;font-weight:700;line-height:1.3}.node.locked .node-title{color:var(--muted)}.node-note{color:var(--muted);font-size:.72rem}.node-note.next{color:var(--floor-color);font-weight:800}.node .stars{font-size:.85rem}@media (max-width:600px){.floor{padding:14px}.floor-head{flex-wrap:wrap}.floor-stats{text-align:left;gap:12px;width:100%;display:flex}.floor-path{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}}.home{width:100%;max-width:1180px;margin:0 auto;padding:0 20px 80px}.hero{grid-template-columns:1.1fr 1fr;align-items:center;gap:40px;padding:64px 0 40px;display:grid}.hero-title{letter-spacing:-.035em;margin:8px 0 18px;font-size:clamp(2.2rem,5vw,3.6rem);font-weight:900;line-height:1.05}.grad{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.hero-sub{color:var(--text-2);max-width:560px;font-size:1.12rem}.hero-cta{flex-wrap:wrap;gap:12px;margin:24px 0 16px;display:flex}.hero-trust{font-size:.85rem}.hero-demo{box-shadow:var(--shadow), var(--glow);padding:0;overflow:hidden;transform:rotate(1deg)}.demo-head{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:7px;padding:11px 14px;display:flex}.dot{border-radius:50%;width:11px;height:11px}.dot.r{background:#ff5f57}.dot.y{background:#febc2e}.dot.g{background:#28c840}.demo-title{color:var(--text-2);margin-left:10px;font-size:.82rem;font-weight:700}.demo-code{background:var(--code-bg);margin:0;padding:18px 20px;font-size:.95rem;line-height:1.7}.demo-table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:.85rem}.demo-table th,.demo-table td{border-top:1px solid var(--border);text-align:left;padding:8px 20px}.demo-table th{background:var(--surface-2)}.demo-table .num{text-align:right}.demo-win{background:var(--success-soft);color:var(--success);align-items:center;gap:12px;padding:12px 20px;font-size:.9rem;font-weight:800;display:flex}.xp-gain{color:var(--gold);margin-left:auto;font-weight:900}.steps-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin:0;padding:0;list-style:none;display:grid}.step-card{padding:20px;position:relative}.step-card-num{color:var(--surface-3);font-size:1.6rem;font-weight:900;position:absolute;top:14px;right:16px}.step-card-icon{font-size:1.8rem}.step-card h3{margin:8px 0 4px;font-size:1.05rem}.step-card p{margin:0;font-size:.9rem}.floors-list{grid-template-columns:repeat(2,1fr);gap:10px;padding:0;list-style:none;display:grid}.floor-chip{--floor-color:var(--accent);background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--floor-color);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;font-size:.93rem;display:flex}.floor-chip-num{color:var(--floor-color);width:22px;font-weight:900}.floor-chip-icon{font-size:1.3rem}.features-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.feature-card{padding:20px}.feature-icon{font-size:1.8rem}.feature-card h3{margin:8px 0 4px;font-size:1.02rem}.feature-card p{margin:0;font-size:.9rem}.home-cta{text-align:center;background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 16%, var(--surface)), color-mix(in srgb, var(--accent-2) 10%, var(--surface)));margin-top:44px;padding:36px}.site-footer{text-align:center;margin-top:40px;font-size:.82rem}@media (max-width:900px){.hero{grid-template-columns:1fr;padding-top:36px}.hero-demo{transform:none}.steps-grid,.features-grid{grid-template-columns:1fr 1fr}.floors-list{grid-template-columns:1fr}}@media (max-width:560px){.steps-grid,.features-grid{grid-template-columns:1fr}.home{padding-bottom:110px}}.playground-page{height:calc(100vh - var(--header-h));grid-template-columns:280px 1fr;min-height:560px;display:grid}.pg-side{border-right:1px solid var(--border);padding:20px;overflow-y:auto}.pg-title{font-size:1.35rem;font-weight:800}.pg-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:20px 0 8px;font-size:.8rem;font-weight:800}.pg-samples{gap:6px;display:grid}.pg-sample{text-align:left;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:10px;padding:9px 12px;font-size:.88rem;font-weight:600}.pg-sample:hover{border-color:var(--accent);background:var(--accent-soft)}.pg-tips{padding-left:1.1em}.pg-main{background:var(--bg-2);flex-direction:column;min-height:0;display:flex}@media (max-width:860px){.playground-page{height:auto;display:block}.pg-side{border-right:0;border-bottom:1px solid var(--border)}.pg-main{min-height:80vh;padding-bottom:80px}}.codex-page .viz{margin:24px 0 8px}.codex-chapter-title{margin:32px 0 12px;font-size:1.1rem;font-weight:800}.codex-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;display:grid}.codex-card{flex-direction:column;gap:6px;padding:18px;display:flex}.codex-card.locked{opacity:.6;border-style:dashed}.codex-card.focus{box-shadow:var(--glow);border-color:var(--accent)}.codex-name{font-family:var(--font-mono);color:var(--accent-strong);font-size:1.1rem;font-weight:800}.codex-summary{font-size:.92rem}.codex-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:4px;font-size:.72rem;font-weight:800}.codex-card pre.sql-code{margin:0;font-size:.8rem}.codex-link{margin-top:auto;padding-top:8px;font-size:.85rem;font-weight:700}.rank-card{align-items:center;gap:22px;padding:24px;display:flex}.rank-icon{background:linear-gradient(135deg, var(--accent-soft), var(--accent-2-soft));border:2px solid var(--accent);border-radius:24px;place-items:center;width:86px;height:86px;font-size:3.4rem;display:grid}.rank-info{flex:1;gap:8px;display:grid}.rank-title{margin:0;font-size:1.8rem;font-weight:900}.stat-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px;display:grid}.stat{padding:16px}.stat-num{font-size:1.6rem;font-weight:900}.stat-num .muted{font-size:.9rem}.stat-label{color:var(--muted);font-size:.85rem}@media (max-width:700px){.stat-grid{grid-template-columns:1fr 1fr}}.rank-ladder{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.rank-ladder li{border:1px solid var(--border);background:var(--surface);opacity:.55;border-radius:10px;padding:8px 12px;font-size:.9rem;font-weight:700}.rank-ladder li.reached{opacity:1;border-color:var(--accent)}.achievements{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.achievement{opacity:.55;align-items:center;gap:12px;padding:12px 14px;display:flex}.achievement.got{opacity:1;border-color:color-mix(in srgb, var(--gold) 50%, var(--border))}.achievement-icon{font-size:1.7rem}.achievement-title{font-size:.93rem;font-weight:800}.settings{margin-top:36px;padding:4px 22px 18px}.setting-row{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.setting-row:first-of-type{border-top:0}.setting-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:3px;display:inline-flex}.segmented button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 12px;font-size:.86rem;font-weight:700}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.danger-text{color:var(--danger)}.btn.danger{background:var(--danger);color:#fff;border-color:#0000}.complete{text-align:center}.complete-emoji{animation:bounce .8s var(--ease);font-size:3rem}@keyframes bounce{0%{transform:scale(.3)}60%{transform:scale(1.2)}}.complete-title{margin:4px 0 0;font-size:1.9rem;font-weight:900}.complete-stars{justify-content:center;gap:10px;margin:16px 0 6px;display:flex}.big-star{transition:transform .35s var(--ease), color .3s, opacity .3s;font-size:3.2rem;line-height:1}.big-star.hidden{opacity:0;transform:scale(.3)rotate(-30deg)}.big-star.on{color:var(--gold);filter:drop-shadow(0 0 12px #fcd34d99);animation:star-pop .45s var(--ease)}.big-star.off{color:var(--surface-3)}@keyframes star-pop{0%{transform:scale(.2)rotate(-40deg)}70%{transform:scale(1.3)rotate(8deg)}}.complete-hint{margin:0;font-size:.85rem}.complete-xp{margin:10px 0 14px;font-size:1.5rem}.complete-xp .xp-gain{margin:0}.complete-rank{text-align:left;background:var(--surface-2);border-radius:12px;gap:8px;padding:14px;display:grid}.complete-rank-row{flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:.88rem;display:flex}.rank-up{color:var(--accent-strong);font-weight:800}.complete-unlocks,.complete-takeaways{text-align:left;margin-top:16px}.complete-section-title{margin-bottom:8px;font-size:.9rem;font-weight:800}.unlock-chips{flex-wrap:wrap;gap:6px;display:flex}.complete-takeaways ul{color:var(--text-2);margin:0;padding-left:1.2em;font-size:.93rem}.complete-takeaways li{margin:5px 0}.complete-actions{gap:10px;margin-top:22px;display:grid}.complete-secondary{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.skip-banner{background:var(--warning-soft);border:1px dashed color-mix(in srgb, var(--warning) 55%, transparent);max-width:720px;color:var(--text-2);border-radius:12px;margin:0 auto 20px;padding:12px 16px;font-size:.92rem}.locked-page{text-align:center;padding-top:80px}.locked-icon{font-size:3.5rem}
