:root{--bg:#070a12;--bg-2:#0c1120;--surface:#ffffff0b;--surface-2:#ffffff13;--surface-3:#ffffff1c;--line:#ffffff17;--line-soft:#ffffff0d;--text:#e9eef8;--dim:#9dabc4;--faint:#6d7a92;--accent:#8ab4ff;--accent-soft:#5a7fd6;--gold:#ffd479;--good:#5fd6a3;--warm:#ff9a62;--r-sm:10px;--r:16px;--r-lg:22px;--shadow:0 18px 50px -20px #000000d9;--ease:cubic-bezier(.22, 1, .36, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:15px;line-height:1.5;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(1100px 700px at 12% -10%, color-mix(in oklab, var(--accent) 22%, transparent), transparent 60%), radial-gradient(900px 600px at 96% 8%, color-mix(in oklab, var(--gold) 12%, transparent), transparent 55%), radial-gradient(1000px 800px at 50% 110%, color-mix(in oklab, var(--accent-soft) 18%, transparent), transparent 60%), linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 55%, var(--bg) 100%);opacity:.9;position:fixed;inset:0}h1,h2,h3,h4{letter-spacing:-.018em;margin:0;font-weight:620;line-height:1.2}p{margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,select,textarea{font:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:99px}::-webkit-scrollbar-track{background:0 0}.app{z-index:1;min-height:100%;display:flex;position:relative}.rail{border-right:1px solid var(--line-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);flex-direction:column;flex:0 0 232px;gap:4px;width:232px;height:100vh;padding:26px 16px 20px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;padding:0 10px 22px;display:flex}.brand-mark{background:linear-gradient(150deg, color-mix(in oklab, var(--accent) 55%, transparent), transparent);border:1px solid var(--line);width:34px;height:34px;box-shadow:0 0 24px -6px var(--accent);border-radius:11px;place-items:center;font-size:17px;display:grid}.brand-name{letter-spacing:-.02em;font-size:16px;font-weight:640}.brand-sub{color:var(--faint);letter-spacing:.06em;text-transform:uppercase;font-size:11px}.navlink{color:var(--dim);text-align:left;border-radius:11px;align-items:center;gap:11px;width:100%;padding:9px 12px;font-size:14px;font-weight:500;transition:background .18s,color .18s;display:flex;position:relative}.navlink:hover{background:var(--surface);color:var(--text)}.navlink.active{background:var(--surface-2);color:var(--text)}.navlink.active:before{content:"";background:var(--accent);width:3px;height:20px;box-shadow:0 0 12px var(--accent);border-radius:0 3px 3px 0;position:absolute;top:50%;left:-16px;transform:translateY(-50%)}.navlink .glyph{text-align:center;width:20px;font-size:16px}.navlink .badge{font-variant-numeric:tabular-nums;background:var(--surface-3);color:var(--dim);border-radius:99px;margin-left:auto;padding:1px 7px;font-size:11px}.navlink .badge.hot{background:color-mix(in oklab, var(--gold) 26%, transparent);color:var(--gold)}.rail-foot{border-top:1px solid var(--line-soft);flex-direction:column;gap:8px;margin-top:auto;padding:14px 12px 0;display:flex}.main{flex:1;min-width:0;max-width:1180px;padding:30px 32px 120px}.page-head{margin-bottom:22px}.page-head h1{font-size:clamp(23px,3vw,30px)}.page-head .sub{color:var(--dim);max-width:62ch;margin-top:6px;font-size:14px}.grid{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-hero{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.stack{flex-direction:column;gap:16px;display:flex}.row{align-items:center;gap:10px;display:flex}.row-wrap{flex-wrap:wrap;gap:10px;display:flex}.spacer{flex:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);padding:20px;position:relative}.card.tight{padding:15px}.card.flush{padding:0;overflow:hidden}.card-title{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);align-items:center;gap:8px;margin-bottom:14px;font-size:12px;font-weight:600;display:flex}.card-title .spacer{flex:1}.hint{color:var(--faint);font-size:12.5px;line-height:1.45}.dim{color:var(--dim)}.faint{color:var(--faint)}.tiny{font-size:11.5px}.small{font-size:13px}.num{font-variant-numeric:tabular-nums}.strong{font-weight:620}.btn{background:var(--surface-2);border:1px solid var(--line);color:var(--text);transition:transform .14s var(--ease), background .18s, border-color .18s;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:9px 15px;font-size:13.5px;font-weight:550;display:inline-flex}.btn:hover{background:var(--surface-3)}.btn:active{transform:scale(.975)}.btn.primary{background:linear-gradient(160deg, color-mix(in oklab, var(--accent) 90%, white 6%), var(--accent-soft));color:#07101f;box-shadow:0 10px 28px -12px var(--accent);border-color:#0000;font-weight:640}.btn.ghost{background:0 0}.btn.ghost:hover{background:var(--surface)}.btn.sm{border-radius:9px;padding:6px 11px;font-size:12.5px}.btn.danger{color:#ff9b9b;border-color:#ff787840}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.wide{width:100%}.chip{background:var(--surface-2);border:1px solid var(--line);color:var(--dim);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.chip.on{background:color-mix(in oklab, var(--accent) 22%, transparent);border-color:color-mix(in oklab, var(--accent) 40%, transparent);color:var(--text)}.chip.gold{color:var(--gold);border-color:color-mix(in oklab, var(--gold) 30%, transparent)}.meter{background:#ffffff13;border-radius:99px;height:7px;position:relative;overflow:hidden}.meter>i{background:var(--accent);height:100%;transition:width .7s var(--ease);border-radius:99px;display:block}.meter.thin{height:5px}.meter.thick{height:10px}.meter-row{align-items:center;gap:10px;font-size:13px;display:flex}.meter-row .label{width:96px;color:var(--dim);flex:none}.meter-row .meter{flex:1}.meter-row .val{text-align:right;width:54px;color:var(--faint);font-size:12px}.hero{align-items:center;gap:26px;display:flex}.hero-copy{flex:1;min-width:0}.hero-name{letter-spacing:-.025em;font-size:clamp(22px,2.6vw,28px);font-weight:650}.hero-title{color:var(--gold);margin-top:2px;font-size:14px}.hero-stats{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.ringwrap{flex:none;place-items:center;display:grid;position:relative}.ringwrap .inner{text-align:center;place-items:center;line-height:1.1;display:grid;position:absolute}.ringwrap .big{letter-spacing:-.03em;font-size:27px;font-weight:680}.ringwrap .cap{letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-top:3px;font-size:10px}.vital{border-radius:var(--r);background:var(--surface);border:1px solid var(--line-soft);flex-direction:column;gap:7px;padding:13px 14px;display:flex}.vital .top{align-items:baseline;gap:7px;display:flex}.vital .name{color:var(--dim);font-size:12.5px}.vital .value{font-variant-numeric:tabular-nums;margin-left:auto;font-size:16px;font-weight:640}.quest{border-radius:var(--r);background:var(--surface);border:1px solid var(--line-soft);transition:border-color .2s, background .2s, transform .2s var(--ease);gap:13px;padding:14px 15px;display:flex}.quest:hover{border-color:var(--line)}.quest.done{background:color-mix(in oklab, var(--good) 9%, transparent);border-color:color-mix(in oklab, var(--good) 26%, transparent)}.quest .icon{flex:none;font-size:20px;line-height:1.3}.quest .body{flex:1;min-width:0}.quest .name{align-items:center;gap:7px;font-size:14.5px;font-weight:570;display:flex}.quest .desc{color:var(--dim);margin-top:2px;font-size:12.5px}.quest .why{color:var(--faint);margin-top:5px;font-size:11.5px;font-style:italic}.quest .footer{align-items:center;gap:10px;margin-top:9px;display:flex}.quest .footer .meter{flex:1}.quest .prog{color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11.5px}.quest .reward{color:var(--gold);white-space:nowrap;font-size:11.5px}.tick{background:var(--good);color:#06210f;border-radius:99px;flex:none;place-items:center;width:19px;height:19px;font-size:11px;font-weight:800;display:grid}.action-tile{border-radius:var(--r);background:var(--surface);border:1px solid var(--line-soft);text-align:left;width:100%;transition:transform .16s var(--ease), background .18s, border-color .18s;align-items:center;gap:11px;padding:11px 13px;display:flex}.action-tile:hover{background:var(--surface-2);border-color:var(--line);transform:translateY(-1px)}.action-tile .emoji{flex:none;font-size:19px}.action-tile .t{flex:1;min-width:0;display:block}.action-tile .n{font-size:13.5px;font-weight:550;display:block}.action-tile .d{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:11.5px;display:block;overflow:hidden}.action-tile .mast{color:var(--gold);font-size:11px}.scrim{z-index:60;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);animation:fade .22s var(--ease);background:#03050bb8;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=760px){.scrim{align-items:center;padding:24px}}.sheet{border:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0;width:min(680px,100%);max-height:min(86vh,820px);animation:rise .3s var(--ease);background:linear-gradient(#121a2c,#0b1120);padding:22px;overflow:auto;box-shadow:0 -20px 80px -30px #000}@media (width>=760px){.sheet{border-radius:var(--r-lg);animation:pop .28s var(--ease)}}.sheet-head{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.sheet-head h2{font-size:19px}.sheet-head .sub{color:var(--dim);margin-top:3px;font-size:13px}.close-x{background:var(--surface-2);width:30px;height:30px;color:var(--dim);border-radius:9px;place-items:center;margin-left:auto;font-size:15px;display:grid}.close-x:hover{background:var(--surface-3);color:var(--text)}.search{border:1px solid var(--line);background:#00000040;border-radius:11px;outline:none;width:100%;padding:10px 13px;font-size:14px}.search:focus{border-color:color-mix(in oklab, var(--accent) 50%, transparent)}.stepper{border-radius:var(--r);border:1px solid var(--line);background:#00000038;align-items:center;gap:12px;padding:14px;display:flex}.stepper button{background:var(--surface-2);border-radius:11px;place-items:center;width:38px;height:38px;font-size:18px;display:grid}.stepper button:hover{background:var(--surface-3)}.stepper .amount{text-align:center;flex:1}.stepper .amount .v{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:660}.stepper .amount .u{color:var(--faint);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.preview{border-radius:var(--r);background:color-mix(in oklab, var(--accent) 9%, transparent);border:1px solid color-mix(in oklab, var(--accent) 22%, transparent);flex-wrap:wrap;gap:7px;padding:13px 14px;display:flex}.toasts{z-index:90;pointer-events:none;flex-direction:column-reverse;gap:9px;max-width:min(360px,100vw - 40px);display:flex;position:fixed;bottom:20px;right:20px}.toast{pointer-events:auto;border:1px solid var(--line);animation:slide .34s var(--ease);background:linear-gradient(160deg,#16203a,#0d1424);border-radius:14px;align-items:flex-start;gap:11px;padding:11px 14px;display:flex;box-shadow:0 16px 44px -18px #000}.toast .e{font-size:17px;line-height:1.25}.toast .t{font-size:13.5px;font-weight:570}.toast .d{color:var(--dim);margin-top:2px;font-size:11.5px}.toast.w2{border-color:color-mix(in oklab, var(--accent) 40%, transparent)}.toast.w3{border-color:color-mix(in oklab, var(--gold) 55%, transparent);box-shadow:0 16px 50px -16px color-mix(in oklab, var(--gold) 45%, transparent);background:linear-gradient(160deg,#2a2416,#131020)}.heat{grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px;padding-bottom:4px;display:grid;overflow-x:auto}.heat i{background:#ffffff0e;border-radius:3px;width:12px;height:12px;display:block}.heat i[data-l="1"]{background:color-mix(in oklab, var(--accent) 26%, transparent)}.heat i[data-l="2"]{background:color-mix(in oklab, var(--accent) 46%, transparent)}.heat i[data-l="3"]{background:color-mix(in oklab, var(--accent) 70%, transparent)}.heat i[data-l="4"]{background:var(--accent);box-shadow:0 0 8px -1px var(--accent)}.heat i[data-today="1"]{outline:1.5px solid var(--gold);outline-offset:1px}.tile{border-radius:var(--r);background:var(--surface);border:1px solid var(--line-soft);text-align:center;transition:transform .18s var(--ease), border-color .2s;padding:15px 14px;position:relative;overflow:hidden}.tile.locked{opacity:.42}.tile.got{border-color:color-mix(in oklab, var(--tier,var(--gold)) 42%, transparent)}.tile.got:after{content:"";background:radial-gradient(120px 80px at 50% -20%, color-mix(in oklab, var(--tier,var(--gold)) 20%, transparent), transparent 70%);pointer-events:none;position:absolute;inset:0}.tile:hover{transform:translateY(-2px)}.tile .g{font-size:25px}.tile .n{margin-top:7px;font-size:13px;font-weight:570}.tile .b{color:var(--faint);margin-top:4px;font-size:11.5px;line-height:1.35}.divider{background:var(--line-soft);height:1px;margin:4px 0}.stat{border-radius:var(--r);background:var(--surface);border:1px solid var(--line-soft);padding:14px 15px}.stat .k{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-size:11px}.stat .v{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:5px;font-size:22px;font-weight:650}.stat .s{color:var(--dim);margin-top:2px;font-size:11.5px}.entry{border-bottom:1px solid var(--line-soft);align-items:center;gap:11px;padding:9px 4px;display:flex}.entry:last-child{border-bottom:none}.entry .e{font-size:16px}.entry .n{font-size:13.5px}.entry .m{color:var(--faint);font-size:11.5px}.entry .x{color:var(--accent);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12.5px}.entry .undo{opacity:0;color:var(--faint);font-size:11px;transition:opacity .15s}.entry:hover .undo{opacity:1}.entry .undo:hover{color:#ff9b9b}.empty{text-align:center;color:var(--faint);padding:34px 18px;font-size:13.5px}.empty .g{opacity:.75;margin-bottom:10px;font-size:30px;display:block}.fab{z-index:50;background:linear-gradient(160deg, color-mix(in oklab, var(--accent) 92%, white 8%), var(--accent-soft));color:#07101f;height:54px;box-shadow:0 16px 40px -12px var(--accent), 0 0 0 1px #ffffff1f inset;transition:transform .18s var(--ease);border-radius:99px;align-items:center;gap:9px;padding:0 22px;font-size:15px;font-weight:660;display:flex;position:fixed;bottom:22px;right:22px}.fab:hover{transform:translateY(-2px)scale(1.02)}.fab:active{transform:scale(.97)}.tabbar{display:none}@media (width<=900px){.rail{display:none}.main{padding:calc(20px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(130px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.g-hero,.g3,.g4,.g2{grid-template-columns:minmax(0,1fr)}.hero{flex-direction:column-reverse;align-items:flex-start;gap:18px}.tabbar{z-index:55;padding:8px 6px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--line);background:#090d18eb;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--faint);border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:5px 2px;font-size:10px;display:flex}.tabbar button .glyph{font-size:18px}.tabbar button.active{color:var(--accent)}.fab{bottom:calc(82px + env(safe-area-inset-bottom));right:calc(16px + env(safe-area-inset-right));height:50px;padding:0 18px}.toasts{max-width:none;bottom:148px;left:16px;right:16px}}@media (width>=901px) and (width<=1150px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(26px)}}@keyframes pop{0%{opacity:0;transform:scale(.96)}}@keyframes slide{0%{opacity:0;transform:translate(22px)}}@keyframes glow{0%,to{opacity:.55}50%{opacity:1}}.pulse{animation:3.4s ease-in-out infinite glow}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}body.reduced-motion *,body.reduced-motion :before,body.reduced-motion :after{transition-duration:.001ms!important;animation-duration:.001ms!important}
