:root{--bg:#fff8ec;--bg-2:#fff1d6;--paper:#fff;--ink:#1f1a2e;--ink-2:#4b4560;--ink-3:#8a83a0;--line:#1f1a2e;--coral:#ff6b6b;--coral-2:#ffd1d1;--mint:#2ec4a6;--mint-2:#c9f4ea;--sunny:#ffc531;--sunny-2:#fff0bd;--grape:#9b5de5;--grape-2:#e8d8fb;--sky:#4cc9f0;--sky-2:#d4f2fc;--shadow:5px 5px 0 var(--line);--shadow-sm:3px 3px 0 var(--line);--shadow-lg:8px 8px 0 var(--line);--radius:18px;--radius-sm:12px;--font-display:"Fredoka", "Nunito", system-ui, sans-serif;--font-body:"Nunito", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--ink);background-color:var(--bg);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 1px 1px,#1f1a2e17 1px,#0000 0);background-size:22px 22px;margin:0;font-size:16px;line-height:1.55}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.15}p{margin:0 0 .9em}a{color:inherit}code,pre{font-family:var(--font-mono)}code.inline{background:var(--sunny-2);border:1.5px solid var(--line);border-radius:6px;padding:0 5px;font-size:.9em;font-weight:600}.app{grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.topbar{z-index:20;background:var(--paper);border-bottom:3px solid var(--line);align-items:center;gap:16px;padding:12px 24px;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);align-items:center;gap:10px;font-size:1.5rem;font-weight:700;text-decoration:none;display:flex}.brand .logo{width:40px;height:40px;filter:drop-shadow(3px 3px 0 var(--line));transition:transform .25s;display:block;transform:rotate(-6deg)}.brand:hover .logo{transform:rotate(8deg)scale(1.08)}.nav{gap:6px;margin-left:12px;display:flex}.nav a{border:2.5px solid #0000;border-radius:999px;padding:8px 14px;font-weight:800;text-decoration:none;transition:all .15s}.nav a:hover{border-color:var(--line)}.nav a.active{background:var(--ink);color:#fff;border-color:var(--line)}.spacer{flex:1}.xp-pill{background:var(--paper);border:2.5px solid var(--line);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:12px;padding:6px 12px 6px 8px;font-size:.9rem;font-weight:800;display:flex}.xp-pill .lvl{background:var(--grape);color:#fff;border:2.5px solid var(--line);width:34px;height:34px;font-family:var(--font-display);border-radius:50%;place-items:center;display:grid}.xp-pill .bar{border:2px solid var(--line);background:var(--paper);border-radius:999px;width:120px;height:12px;overflow:hidden}.xp-pill .bar>i{background:linear-gradient(90deg, var(--sunny), var(--coral));height:100%;transition:width .5s cubic-bezier(.2,.9,.3,1.3);display:block}.page{width:min(1240px,100% - 48px);margin:0 auto;padding:32px 0 80px}.card{background:var(--paper);border:3px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.card.tint-coral{background:var(--coral-2)}.card.tint-mint{background:var(--mint-2)}.card.tint-sunny{background:var(--sunny-2)}.card.tint-grape{background:var(--grape-2)}.card.tint-sky{background:var(--sky-2)}.btn{--btn-bg:var(--paper);--btn-fg:var(--ink);font:inherit;font-family:var(--font-display);color:var(--btn-fg);background:var(--btn-bg);border:2.5px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:1rem;font-weight:600;text-decoration:none;transition:transform .1s,box-shadow .1s;display:inline-flex}.btn:hover:not(:disabled){box-shadow:4px 4px 0 var(--line);transform:translate(-1px,-1px)}.btn:active:not(:disabled){box-shadow:1px 1px 0 var(--line);transform:translate(2px,2px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{--btn-bg:var(--coral);--btn-fg:#fff}.btn.mint{--btn-bg:var(--mint);--btn-fg:#fff}.btn.sunny{--btn-bg:var(--sunny)}.btn.grape{--btn-bg:var(--grape);--btn-fg:#fff}.btn.ink{--btn-bg:var(--ink);--btn-fg:#fff}.btn.ghost{box-shadow:none;border-color:#0000}.btn.ghost:hover:not(:disabled){border-color:var(--line)}.btn.sm{padding:6px 12px;font-size:.9rem}.btn.lg{padding:14px 26px;font-size:1.15rem}.chip{border:2px solid var(--line);background:var(--paper);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.8rem;font-weight:800;display:inline-flex}.chip.coral{background:var(--coral);color:#fff}.chip.mint{background:var(--mint);color:#fff}.chip.sunny{background:var(--sunny)}.chip.grape{background:var(--grape);color:#fff}.chip.sky{background:var(--sky)}.hero{grid-template-columns:1.2fr 1fr;align-items:center;gap:32px;margin-bottom:40px;display:grid}.hero h1{margin-bottom:12px;font-size:clamp(2.4rem,5vw,4rem)}.hero h1 .hl{background:var(--sunny);border:3px solid var(--line);box-shadow:var(--shadow-sm);border-radius:14px;padding:0 14px;display:inline-block;transform:rotate(-2deg)}.hero p.lead{color:var(--ink-2);max-width:48ch;font-size:1.2rem}.hero-art{min-height:300px;position:relative}.floaty{font-family:var(--font-mono);background:var(--paper);border:3px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:10px 16px;font-size:.95rem;font-weight:600;animation:4s ease-in-out infinite bob;position:absolute}.floaty.big{padding:12px 20px;font-size:3rem}@keyframes bob{0%,to{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-12px) rotate(var(--rot,0deg))}}.stats-row{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:40px;display:grid}.stat{align-items:center;gap:14px;padding:16px 18px;display:flex}.stat .ico{border:2.5px solid var(--line);background:var(--paper);border-radius:14px;place-items:center;width:52px;height:52px;font-size:1.8rem;display:grid}.stat .val{font-family:var(--font-display);font-size:1.6rem;font-weight:700;line-height:1}.stat .lbl{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:800}.section-title{align-items:baseline;gap:14px;margin-bottom:18px;display:flex}.section-title h2{font-size:1.8rem}.section-title .sub{color:var(--ink-3);font-weight:700}.lesson-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;margin-bottom:48px;display:grid}.lesson-card{flex-direction:column;gap:10px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;position:relative}.lesson-card:hover{box-shadow:var(--shadow-lg);transform:translate(-3px,-3px)}.lesson-card .num{width:40px;height:40px;font-family:var(--font-display);background:var(--ink);color:#fff;border:3px solid var(--line);border-radius:50%;place-items:center;font-weight:700;display:grid;position:absolute;top:-14px;left:-14px}.lesson-card .emoji{font-size:2.4rem;line-height:1}.lesson-card h3{font-size:1.3rem}.lesson-card .tag{color:var(--ink-2);flex:1;font-size:.95rem}.progress-line{border:2px solid var(--line);background:var(--paper);border-radius:999px;height:12px;overflow:hidden}.progress-line>i{background:var(--ink);height:100%;transition:width .4s;display:block}.lesson-card .meta{justify-content:space-between;align-items:center;font-size:.8rem;font-weight:800;display:flex}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;display:grid}.badge{align-items:center;gap:12px;padding:12px 14px;display:flex}.badge.locked{opacity:.45;filter:grayscale();box-shadow:none}.badge .e{font-size:1.8rem}.badge b{font-family:var(--font-display);display:block}.badge small{color:var(--ink-2)}.lesson-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:28px;display:grid}.lesson-layout>*,.playground>*{min-width:0}.lesson-head{align-items:center;gap:20px;margin-bottom:28px;display:flex}.lesson-head .emoji{border:3px solid var(--line);width:84px;height:84px;box-shadow:var(--shadow);border-radius:20px;place-items:center;font-size:3.2rem;display:grid}.lesson-head h1{font-size:2.2rem}.lesson-head .tag{color:var(--ink-2);font-size:1.05rem}.tabs{background:var(--paper);border:3px solid var(--line);box-shadow:var(--shadow-sm);border-radius:999px;gap:6px;margin-bottom:24px;padding:6px;display:inline-flex}.tabs button{font:inherit;font-family:var(--font-display);cursor:pointer;color:var(--ink);background:0 0;border:none;border-radius:999px;padding:8px 18px;font-weight:600}.tabs button.active{background:var(--ink);color:#fff}.tabs button .cnt{background:var(--sunny);color:var(--ink);border:1.5px solid var(--line);border-radius:999px;margin-left:6px;padding:1px 7px;font-size:.75rem}.section{margin-bottom:26px}.section h2{align-items:center;gap:10px;margin-bottom:10px;font-size:1.45rem;display:flex}.section h2:before{content:"";border:2.5px solid var(--line);background:var(--accent,var(--sunny));border-radius:4px;width:14px;height:14px;transform:rotate(12deg)}.section .body{color:var(--ink-2);font-size:1.05rem}.section .body strong{color:var(--ink)}.example{border:3px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);margin-top:14px;overflow:hidden}.example .ex-head{background:var(--accent,var(--sunny));border-bottom:3px solid var(--line);font-family:var(--font-display);align-items:center;gap:10px;padding:8px 14px;font-weight:600;display:flex}.example .ex-body{padding:12px 14px}.example .explain{border-top:2px dashed var(--line);color:var(--ink-2);background:var(--bg-2);padding:10px 14px;font-size:.95rem}.editor-wrap{border:2.5px solid var(--line);background:#fffdf7;border-radius:10px;overflow:hidden}.editor-wrap .cm-editor{font-family:var(--font-mono);font-size:.95rem}.editor-wrap .cm-content{font-family:var(--font-mono)}.editor-wrap .cm-editor.cm-focused{outline:none}.editor-wrap .cm-gutters{background:var(--bg-2);border-right:2px solid var(--line);color:var(--ink-3)}.editor-wrap .cm-activeLine{background:#ffc5312e}.editor-wrap .cm-activeLineGutter{background:#ffc5314d}.editor-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.editor-actions .hint-txt{color:var(--ink-3);font-size:.8rem;font-weight:700}.result{margin-top:12px}.result .meta{color:var(--ink-3);align-items:center;gap:10px;margin-bottom:8px;font-size:.8rem;font-weight:800;display:flex}.table-wrap{border:2.5px solid var(--line);background:var(--paper);border-radius:10px;max-height:340px;overflow:auto}table.rs{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:.85rem}table.rs th{text-align:left;background:var(--ink);color:#fff;white-space:nowrap;padding:8px 12px;font-weight:600;position:sticky;top:0}table.rs td{white-space:nowrap;border-bottom:1.5px solid #eee5d3;padding:6px 12px}table.rs tr:nth-child(2n) td{background:#fffaf0}table.rs td.null{color:var(--ink-3);font-style:italic}table.rs td.num{text-align:right}.sql-error{border:2.5px solid var(--line);background:var(--coral-2);font-family:var(--font-mono);white-space:pre-wrap;border-radius:10px;padding:12px 14px;font-size:.85rem}.sql-empty{border:2.5px dashed var(--line);color:var(--ink-3);border-radius:10px;padding:12px 14px;font-weight:700}.exercise{margin-bottom:22px;transition:box-shadow .2s;position:relative}.exercise.done{border-color:var(--mint);box-shadow:5px 5px 0 var(--mint)}.exercise .ex-top{align-items:center;gap:12px;margin-bottom:8px;display:flex}.exercise .ex-top h3{flex:1;font-size:1.25rem}.exercise .prompt{color:var(--ink-2);margin-bottom:12px;font-size:1.05rem}.feedback{border:2.5px solid var(--line);border-radius:10px;align-items:flex-start;gap:10px;margin-top:12px;padding:12px 16px;font-weight:700;animation:.25s cubic-bezier(.2,.9,.3,1.4) pop;display:flex}.feedback.ok{background:var(--mint-2)}.feedback.bad{background:var(--coral-2)}.feedback.info{background:var(--sky-2)}.feedback .big{font-size:1.4rem;line-height:1}.feedback small{color:var(--ink-2);font-weight:600;display:block}@keyframes pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.hint-box{border:2.5px dashed var(--line);background:var(--sunny-2);border-radius:10px;margin-top:10px;padding:10px 14px;font-size:.95rem}.hint-box+.hint-box{margin-top:6px}.diff-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;display:grid}.diff-grid h4{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:.85rem}.side{flex-direction:column;gap:14px;display:flex;position:sticky;top:84px}.schema h3{align-items:center;gap:8px;margin-bottom:10px;font-size:1.1rem;display:flex}.schema details{border:2.5px solid var(--line);background:var(--paper);border-radius:10px;margin-bottom:8px;overflow:hidden}.schema summary{cursor:pointer;font-family:var(--font-mono);align-items:center;gap:8px;padding:7px 12px;font-size:.9rem;font-weight:600;list-style:none;display:flex}.schema summary::-webkit-details-marker{display:none}.schema details[open] summary{border-bottom:2px solid var(--line);background:var(--bg-2)}.schema ul{font-family:var(--font-mono);margin:0;padding:6px 12px;font-size:.78rem;list-style:none}.schema li{justify-content:space-between;gap:8px;padding:2px 0;display:flex}.schema li span:last-child{color:var(--ink-3);text-align:right}.schema li .note{font-family:var(--font-body);color:var(--ink-3);font-size:.72rem;display:block}.next-up{flex-direction:column;gap:8px;display:flex}.boss-arena{max-width:860px;margin:0 auto}.boss-top{grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin-bottom:24px;display:grid}.fighter{flex-direction:column;gap:6px;display:flex}.fighter.right{align-items:flex-end}.fighter .who{font-family:var(--font-display);align-items:center;gap:8px;font-size:1.1rem;font-weight:700;display:flex}.fighter .who .face{font-size:2rem;transition:transform .2s}.fighter .who .face.hit{animation:.4s shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)rotate(-8deg)}40%{transform:translate(8px)rotate(8deg)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.hp{border:3px solid var(--line);background:var(--paper);border-radius:999px;width:260px;max-width:100%;height:20px;overflow:hidden}.hp>i{height:100%;transition:width .5s cubic-bezier(.2,.9,.3,1.2);display:block}.hp.player>i{background:linear-gradient(90deg, var(--mint), var(--sky))}.hp.boss>i{background:linear-gradient(90deg, var(--coral), var(--grape))}.vs{font-family:var(--font-display);background:var(--sunny);border:3px solid var(--line);width:64px;height:64px;box-shadow:var(--shadow-sm);border-radius:50%;place-items:center;font-size:2rem;font-weight:700;display:grid;transform:rotate(-8deg)}.combo{font-family:var(--font-display);color:var(--coral);font-weight:700;animation:.3s pop}.q-card{padding:26px}.q-card .q-num{align-items:center;gap:10px;margin-bottom:12px;display:flex}.q-card h2{margin-bottom:14px;font-size:1.5rem}.q-card pre.code{border:2.5px solid var(--line);white-space:pre-wrap;background:#fffdf7;border-radius:10px;margin:0 0 16px;padding:12px 16px;font-size:.95rem}.options{gap:10px;display:grid}.option{font:inherit;text-align:left;background:var(--paper);border:2.5px solid var(--line);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:12px 16px;font-weight:700;transition:transform .1s,background .15s;display:flex}.option:hover:not(:disabled){background:var(--sunny-2);transform:translate(4px)}.option .key{width:30px;height:30px;font-family:var(--font-display);border:2px solid var(--line);background:var(--bg-2);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.option code{font-size:.9rem}.option.right{background:var(--mint-2);border-color:var(--mint)}.option.wrong{background:var(--coral-2)}.option:disabled{cursor:default}.timer{border:2px solid var(--line);background:var(--paper);border-radius:999px;height:8px;margin-bottom:18px;overflow:hidden}.timer>i{background:var(--sunny);height:100%;transition:width 1s linear;display:block}.timer.danger>i{background:var(--coral)}.result-screen{text-align:center;padding:40px 30px}.result-screen h1{margin-bottom:8px;font-size:3rem}.result-screen .score{font-family:var(--font-display);margin:10px 0;font-size:5rem;font-weight:700;line-height:1}.result-screen .stars{letter-spacing:6px;margin-bottom:20px;font-size:2.4rem}.review-list{text-align:left;gap:10px;margin:24px 0;display:grid}.review-item{border:2.5px solid var(--line);background:var(--paper);border-radius:12px;gap:12px;padding:12px 16px;display:flex}.review-item.ok{background:var(--mint-2)}.review-item.bad{background:var(--coral-2)}.review-item small{color:var(--ink-2);font-weight:600;display:block}.playground{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:28px;display:grid}.snippets{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.toasts{z-index:50;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--paper);border:3px solid var(--line);min-width:260px;box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:12px;padding:12px 16px;animation:.35s cubic-bezier(.2,.9,.3,1.3) slidein;display:flex}.toast .e{font-size:2rem}.toast b{font-family:var(--font-display);display:block}.toast small{color:var(--ink-2);font-weight:600}@keyframes slidein{0%{transform:translate(120%)}to{transform:translate(0)}}.xp-float{font-family:var(--font-display);color:var(--grape);pointer-events:none;font-size:1.4rem;font-weight:700;animation:1.2s ease-out forwards floatup;position:absolute;top:-10px;right:20px}@keyframes floatup{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-60px)}}.loading{min-height:50vh;font-family:var(--font-display);place-items:center;gap:12px;font-size:1.4rem;display:grid}.loading .pizza{font-size:4rem;animation:1.4s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.kbd{font-family:var(--font-mono);border:1.5px solid var(--line);background:var(--paper);border-bottom-width:3px;border-radius:5px;padding:1px 6px;font-size:.75rem}.topbar .nav a,.topbar .btn{white-space:nowrap}@media (width<=1500px){.xp-pill .bar{width:70px}}@media (width<=1320px){.xp-pill span:nth-child(2){display:none}}@media (width<=1120px){.xp-pill .bar,.topbar-support{display:none}}@media (width<=960px){.hero{grid-template-columns:1fr}.hero-art{display:none}.stats-row{grid-template-columns:repeat(2,1fr)}.lesson-layout,.playground{grid-template-columns:1fr}.side{position:static}.nav,.xp-pill .bar{display:none}.boss-top{grid-template-columns:1fr}.fighter.right{align-items:flex-start}.vs{display:none}.diff-grid{grid-template-columns:1fr}}.faq{gap:12px;display:grid}.faq-item{padding:0;overflow:hidden}.faq-item summary{cursor:pointer;align-items:center;gap:12px;padding:16px 22px;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:before{content:"+";font-family:var(--font-display);border:2.5px solid var(--line);background:var(--sunny);border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:1.4rem;transition:transform .2s;display:grid}.faq-item[open] summary:before{content:"–";transform:rotate(180deg)}.faq-item summary h3{font-size:1.1rem}.faq-item p{color:var(--ink-2);margin:0;padding:0 22px 18px 66px;font-size:1rem}.support-btn{border-radius:10px;line-height:0;transition:transform .12s;display:inline-block}.support-btn img{border-radius:10px;width:auto;height:44px;display:block}.support-btn.sm img{height:34px}.support-btn.lg img{height:54px}.support-btn:hover{transform:translate(-1px,-2px)rotate(-1.5deg)}.support-btn:active{transform:translate(1px,1px)}.topbar-support{margin-left:8px}.site-footer{border-top:3px solid var(--line);background:var(--paper);margin-top:auto}.site-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;width:min(1240px,100% - 48px);margin:0 auto;padding:28px 0;display:flex}.support-card{flex-wrap:wrap;align-items:center;gap:20px;margin-top:48px;display:flex}.support-nudge{color:var(--ink-2);flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin:0 0 20px;font-weight:700;display:flex}@media (width<=960px){.topbar-support{display:none}}.input{font:inherit;border:2.5px solid var(--line);background:var(--paper);color:var(--ink);border-radius:10px;width:100%;min-width:0;padding:9px 12px}.input:focus{outline:3px solid var(--sunny);outline-offset:1px}textarea.input{resize:vertical;font-family:var(--font-body)}select.input{width:auto}.field{flex-direction:column;gap:6px;font-weight:700;display:flex}.field>span{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-size:.85rem}.dialog{border:3px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);background:var(--paper);width:min(440px,100% - 32px);color:var(--ink);padding:0}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1f1a2e73}.dialog-body{text-align:center;padding:28px;position:relative}.dialog-body h2{margin-top:8px;font-size:1.6rem}.dialog-x{position:absolute;top:10px;right:10px}.dialog-or{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:10px;margin:18px 0 12px;font-size:.8rem;font-weight:800;display:flex}.dialog-or:before,.dialog-or:after{content:"";border-top:2px dashed var(--line);opacity:.4;flex:1}.acct{margin-left:4px;position:relative}.acct-btn{border:2.5px solid var(--line);background:var(--grape);cursor:pointer;width:40px;height:40px;box-shadow:var(--shadow-sm);border-radius:50%;padding:0;overflow:hidden}.acct-btn img{object-fit:cover;width:100%;height:100%;display:block}.acct-initial{width:100%;height:100%;font-family:var(--font-display);color:#fff;background:var(--grape);place-items:center;font-weight:700;display:grid}.acct-menu{background:var(--paper);border:2.5px solid var(--line);min-width:190px;box-shadow:var(--shadow);z-index:30;border-radius:12px;padding:6px;animation:.15s pop;display:grid;position:absolute;top:46px;right:0}.acct-menu .acct-name{color:var(--ink-3);padding:8px 10px 4px;font-size:.85rem;font-weight:800}.acct-menu a,.acct-menu button{font:inherit;text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 10px;font-weight:700;text-decoration:none}.acct-menu a:hover,.acct-menu button:hover{background:var(--sunny-2)}table.board{border-collapse:collapse;width:100%}table.board th{text-align:left;background:var(--ink);color:#fff;font-family:var(--font-display);padding:12px 16px;font-size:.9rem;font-weight:600}table.board td{vertical-align:middle;border-bottom:2px solid #f1e9d6;padding:10px 16px}table.board tr.me td{background:var(--sunny-2)}table.board .rank{font-family:var(--font-display);width:56px;font-size:1.2rem}table.board .xp{font-family:var(--font-display);text-align:right;font-size:1.1rem;font-weight:700}table.board .who{align-items:center;gap:10px;text-decoration:none;display:flex}table.board .who img,table.board .who .acct-initial{border:2px solid var(--line);object-fit:cover;border-radius:50%;flex-shrink:0;width:36px;height:36px}table.board .who small{color:var(--ink-3);font-size:.75rem;font-weight:700;display:block}table.board .lvl-title{color:var(--ink-2);font-size:.85rem;font-weight:700}.streak-strip{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.streak-strip .day{border:2.5px solid var(--line);background:var(--paper);border-radius:9px;place-items:center;width:34px;height:34px;font-size:1rem;display:grid}.streak-strip .day.on{background:var(--sunny)}.streak-strip .day.today{outline:3px solid var(--grape);outline-offset:2px}.quick-links{grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:40px;display:grid}.quick{flex-direction:column;gap:4px;padding:18px 20px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex}.quick:hover{box-shadow:var(--shadow-lg);transform:translate(-3px,-3px)}.quick .q-emoji{margin-bottom:4px;font-size:2rem;line-height:1}.quick b{font-family:var(--font-display);font-size:1.15rem}.quick span:last-child{color:var(--ink-2);font-size:.95rem}.profile-head{flex-wrap:wrap;align-items:center;gap:22px;margin-bottom:28px;display:flex}.profile-head .avatar{border:3px solid var(--line);width:96px;height:96px;box-shadow:var(--shadow);object-fit:cover;border-radius:24px;font-size:2.4rem}.profile-head h1{font-size:2.2rem}.certificate{background:var(--sunny);margin-bottom:40px;padding:10px}.cert-inner{border:3px double var(--line);text-align:center;background:var(--paper);background-image:radial-gradient(circle at 1px 1px,#1f1a2e14 1px,#0000 0);background-size:18px 18px;border-radius:12px;padding:34px 28px}.cert-seal{font-size:3rem;line-height:1}.cert-kicker{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);margin-top:10px;font-size:.8rem;font-weight:800}.cert-name{font-family:var(--font-display);margin:6px 0;font-size:clamp(2rem,5vw,3rem);font-weight:700}.cert-text{max-width:52ch;color:var(--ink-2);margin:0 auto;font-size:1.05rem}.cert-foot{color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:26px;font-size:.85rem;font-weight:800;display:flex}@media (width<=960px){.quick-links{grid-template-columns:1fr}table.board th:nth-child(3),table.board td:nth-child(3){display:none}}.legal{max-width:820px;margin:0 auto}.legal-card{padding:32px}.legal-intro{color:var(--ink-2);font-size:1.1rem}.legal-toc{border:2px dashed var(--line);background:var(--bg-2);border-radius:12px;flex-wrap:wrap;gap:8px;margin:18px 0 28px;padding:14px;display:flex}.legal-toc a{background:var(--paper);border:1.5px solid var(--line);border-radius:999px;padding:4px 10px;font-size:.85rem;font-weight:800;text-decoration:none}.legal-toc a:hover{background:var(--sunny)}.legal section{margin-bottom:26px;scroll-margin-top:90px}.legal section h2{margin-bottom:8px;font-size:1.3rem}.legal section p,.legal section li{color:var(--ink-2);font-size:1.02rem}.legal section ul{margin:0 0 12px;padding-left:22px}.legal section li{margin-bottom:6px}.legal-foot{border-top:2px dashed var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:18px;font-weight:700;display:flex}.site-footer-right{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.legal-links{gap:14px;font-size:.85rem;font-weight:800;display:flex}.legal-links a{color:var(--ink-3);text-decoration:none}.legal-links a:hover{color:var(--ink);text-decoration:underline}@media (width<=960px){.site-footer-right{align-items:flex-start}}
