:root{--bg: #0b0a0c;--bg-deep: #070608;--panel: #141216;--panel-2: #1b181e;--panel-3: #100e12;--line: #2a2530;--line-2: #3a3340;--line-soft: #211d25;--ink: #e8e2d8;--ink-2: #b1a89b;--ink-3: #857c72;--ink-4: #5d5650;--gold: #e3b95c;--gold-soft: #f1d79a;--gold-ink: #2a1d05;--gold-a: 227, 185, 92;--crim: #e05a6a;--crim-a: 224, 90, 106;--xp: #b48cff;--xp-a: 180, 140, 255;--cyan: #5ccfe6;--cyan-a: 92, 207, 230;--green: #7fd38e;--green-a: 127, 211, 142;--amber: #f0a45a;--amber-a: 240, 164, 90;--flame: #ff8a4c;--f-disp: "Chakra Petch", system-ui, sans-serif;--f-rom: "Cinzel", "Chakra Petch", serif;--f-body: "IBM Plex Sans", system-ui, sans-serif;--f-mono: "JetBrains Mono", ui-monospace, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg-deep);color:var(--ink);font:15px/1.5 var(--f-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--gold)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.grid-bg{background-color:var(--bg);background-image:radial-gradient(ellipse at 50% -10%,rgba(var(--crim-a),.09),transparent 55%),linear-gradient(rgba(var(--gold-a),.025) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--gold-a),.025) 1px,transparent 1px);background-size:auto,24px 24px,24px 24px}.shell{min-height:100%;display:flex}.main{flex:1;min-width:0;display:flex;flex-direction:column}.page{width:100%;max-width:820px;margin:0 auto;padding:calc(14px + env(safe-area-inset-top)) 16px 100px;display:flex;flex-direction:column;gap:12px}.page.wide{max-width:1180px}.sidebar{display:none}.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:20;height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line-soft);background:#0b0a0cf2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:space-around;align-items:center}.navlink{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:58px;padding:8px 0;color:var(--ink-3);text-decoration:none;font:600 9.5px/1 var(--f-mono);letter-spacing:.06em}.navlink.active{color:var(--gold)}@media (min-width: 1000px){.bottomnav{display:none}.sidebar{display:flex;flex-direction:column;gap:2px;width:232px;flex-shrink:0;padding:20px 12px;border-right:1px solid var(--line-soft);background:#0c0b0eeb;position:sticky;top:0;height:100vh;overflow-y:auto}.side-link{display:flex;align-items:center;gap:11px;height:38px;padding:0 12px;border-radius:10px;color:var(--ink-2);text-decoration:none;font-size:14px}.side-link.active{background:rgba(var(--gold-a),.1);color:var(--gold);font-weight:600}.page{padding-bottom:40px}}.side-group{font:600 9.5px/1 var(--f-mono);letter-spacing:.18em;color:var(--ink-3);padding:14px 12px 5px}.brand{font:700 14px/1 var(--f-rom);letter-spacing:.28em;color:var(--gold)}.eyebrow{font:600 10.5px/1.2 var(--f-mono);letter-spacing:.14em;color:var(--ink-3);text-transform:uppercase}.h1{font:700 26px/1.1 var(--f-disp);margin:0}.h2{font:600 18px/1.2 var(--f-disp);margin:0}.rom{font-family:var(--f-rom);letter-spacing:.04em}.mono{font-family:var(--f-mono)}.muted{color:var(--ink-2)}.dim{color:var(--ink-3)}.small{font-size:12.5px}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;overflow-wrap:anywhere}.card.hl{border-color:rgba(var(--gold-a),.45);box-shadow:0 0 24px rgba(var(--gold-a),.08)}.card.crim{border-color:rgba(var(--crim-a),.45);box-shadow:0 0 24px rgba(var(--crim-a),.08)}.card.flat{background:var(--panel-3)}.row{display:flex;align-items:center;gap:10px}.col{display:flex;flex-direction:column;gap:8px}.wrap{flex-wrap:wrap}.spacer{flex:1}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.grid-home{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}@media (min-width: 1000px){.grid-home{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}}.btn{height:44px;padding:0 16px;border-radius:12px;border:1px solid var(--line-2);background:var(--panel);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 12.5px/1 var(--f-mono);letter-spacing:.05em;text-decoration:none;white-space:nowrap}.btn.primary{background:var(--gold);border-color:var(--gold);color:var(--gold-ink);font:700 14px/1 var(--f-disp);box-shadow:0 0 18px rgba(var(--gold-a),.22)}.btn.crim{background:rgba(var(--crim-a),.12);border-color:rgba(var(--crim-a),.55);color:var(--crim)}.btn.ghost{background:transparent}.btn.sm{height:34px;padding:0 11px;font-size:11px;border-radius:10px}.btn:disabled{opacity:.45;cursor:default}.btn.block{width:100%}.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;padding:0;text-decoration:none;flex-shrink:0}.chip{display:inline-flex;align-items:center;gap:5px;font:600 10.5px/1 var(--f-mono);padding:5px 7px;border-radius:6px;background:var(--panel-2);color:var(--ink-2);border:1px solid var(--line-2);letter-spacing:.02em;white-space:nowrap}.chip.gold{color:var(--gold);background:rgba(var(--gold-a),.08);border-color:rgba(var(--gold-a),.35)}.chip.crim{color:var(--crim);background:rgba(var(--crim-a),.08);border-color:rgba(var(--crim-a),.35)}.chip.ok{color:var(--green);background:rgba(var(--green-a),.1);border-color:rgba(var(--green-a),.3)}.chip.xp{color:var(--xp);background:rgba(var(--xp-a),.1);border-color:rgba(var(--xp-a),.35)}.pill{height:34px;padding:0 12px;border-radius:17px;border:1px solid var(--line-2);background:var(--panel);color:var(--ink-2);font:600 11.5px/1 var(--f-mono);white-space:nowrap;flex-shrink:0}.pill.on{border-color:var(--gold);background:rgba(var(--gold-a),.12);color:var(--gold)}.input{width:100%;height:44px;border-radius:12px;border:1px solid var(--line-2);background:var(--panel-3);padding:0 12px;color:var(--ink);outline:none}.input:focus{border-color:var(--gold)}textarea.input{height:auto;min-height:84px;padding:10px 12px;resize:vertical}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 17px) 19px,calc(100% - 12px) 19px;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px}.label{font:600 10.5px/1.2 var(--f-mono);letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase}.bar{height:7px;border-radius:4px;background:var(--panel-2);overflow:hidden}.bar>i{display:block;height:100%;background:var(--gold);border-radius:4px;transition:width .4s}.scroll-x{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.scroll-x::-webkit-scrollbar{display:none}.check{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--line-2);display:grid;place-items:center;flex-shrink:0;color:var(--gold-ink);background:transparent;padding:0}.check.on{border-color:var(--gold);background:var(--gold)}.htiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}@media (max-width: 520px){.htiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.htile{position:relative;display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;min-height:104px;transition:transform .12s,border-color .12s}.htile:hover{transform:translateY(-1px);border-color:var(--line-2)}.htile.done{border-color:rgba(var(--green-a),.4);background:linear-gradient(180deg,rgba(var(--green-a),.06),var(--panel))}.htile .ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center}.flame{display:inline-flex;align-items:center;gap:3px;font:700 12px/1 var(--f-mono);color:var(--flame)}.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl th{background:var(--panel-2);font:600 10px/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:9px 10px;white-space:nowrap}.tbl td{padding:9px 10px;border-top:1px solid var(--line-soft);vertical-align:middle;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tbl tbody tr{cursor:pointer}.tbl tbody tr:hover{background:var(--panel-2)}.tbl td.num{font-family:var(--f-mono);text-align:right}.toast-wrap{position:fixed;left:50%;top:calc(12px + env(safe-area-inset-top));transform:translate(-50%);z-index:70;display:flex;flex-direction:column;gap:8px;pointer-events:none;width:max-content;max-width:calc(100% - 24px)}.toast{background:var(--panel-2);border:1px solid rgba(var(--xp-a),.5);color:var(--ink);padding:10px 14px;border-radius:12px;font:600 12.5px/1.25 var(--f-mono);box-shadow:0 8px 30px #00000080;animation:pop .35s ease both}.toast.gold{border-color:rgba(var(--gold-a),.7);color:var(--gold-soft)}.toast.warn{border-color:rgba(var(--amber-a),.6);color:var(--amber)}@keyframes pop{0%{transform:translateY(-8px) scale(.96);opacity:0}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#050406d6;display:grid;place-items:center;padding:16px;animation:fade .25s ease both}@keyframes fade{0%{opacity:0}}.sheet{width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:var(--panel);border:1px solid var(--line-2);border-radius:20px;padding:18px;animation:pop .3s ease both}.celebrate{width:min(400px,100%);background:radial-gradient(ellipse at 50% 0%,rgba(var(--gold-a),.18),transparent 60%),var(--panel);border:1px solid rgba(var(--gold-a),.6);border-radius:22px;padding:26px 20px 20px;text-align:center;animation:pop .45s ease both;box-shadow:0 0 60px rgba(var(--gold-a),.15)}.rays{animation:spin 18s linear infinite;transform-origin:center}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.toast,.celebrate,.sheet,.overlay,.rays{animation:none}}.desk-only{display:none}@media (min-width: 1000px){.mobile-only{display:none}.desk-only{display:block}}.rank-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--panel)}.rank-row.cur{border-color:rgba(var(--gold-a),.6);box-shadow:0 0 24px rgba(var(--gold-a),.1)}.rank-row.locked{opacity:.78}.rank-n{font:700 16px/1 var(--f-rom);color:var(--gold);width:44px;height:44px;border-radius:12px;border:1px solid rgba(var(--gold-a),.4);display:grid;place-items:center}.kv{display:grid;grid-template-columns:92px minmax(0,1fr);gap:4px 10px;font-size:13px}.kv>span:nth-child(odd){font:600 10px/1.9 var(--f-mono);letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase}.tree-node{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:9px}.tree-node:hover{background:var(--panel-2)}.tree-kids{margin-left:14px;padding-left:10px;border-left:1px dashed var(--line-2)}.timer{font:700 64px/1 var(--f-disp);letter-spacing:.02em;font-variant-numeric:tabular-nums}.md{font-size:14.5px;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md h1,.md h2,.md h3,.md h4{font-family:var(--f-disp);line-height:1.25;margin:1.1em 0 .45em;color:var(--gold-soft)}.md h1{font-size:20px}.md h2{font-size:18px}.md h3{font-size:16px}.md h4{font-size:15px}.md p{margin:.55em 0}.md ul,.md ol{padding-left:1.3em;margin:.45em 0}.md li{margin:.2em 0}.md a{color:var(--gold)}.md strong{color:#fff}.md code{font-family:var(--f-mono);font-size:.9em;background:var(--panel-2);padding:1px 4px;border-radius:4px}.md blockquote{margin:.6em 0;padding:4px 12px;border-left:3px solid var(--line-2);color:var(--ink-2)}.md table{border-collapse:collapse;display:block;overflow-x:auto;max-width:100%;font-size:13.5px;margin:.6em 0}.md th,.md td{border:1px solid var(--line);padding:5px 8px;text-align:left;vertical-align:top}.md th{background:var(--panel-2)}.md hr{border:0;border-top:1px solid var(--line);margin:1em 0}.md img{max-width:100%}.md input[type=checkbox]{width:16px;height:16px;vertical-align:-3px;margin-right:6px;accent-color:var(--gold)}.md li:has(>input[type=checkbox]){list-style:none;margin-left:-1.1em}.md pre{background:var(--panel-2);padding:10px;border-radius:8px;overflow-x:auto}
