:root{--bg:#f4f7f2;--surface:#fff;--surface-2:#eaf0e6;--text:#13201a;--muted:#5d6d63;--line:#d7e0d2;--accent:#3f9b2f;--accent-ink:#fff;--gold:#c99412;--good:#2f8f46;--warn:#c27c0e;--bad:#c43d3d;--radius:16px;--shadow:0 1px 2px #0000000f, 0 4px 16px #0000000a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1a14;--surface:#17251d;--surface-2:#1f3127;--text:#e8f0ea;--muted:#93a79a;--line:#2a3d32;--accent:#6cc04a;--accent-ink:#0f1a14;--gold:#e8b92f;--good:#6cc04a;--warn:#e8a93a;--bad:#f06b6b;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.app{min-height:100dvh;display:flex}.main{min-width:0;max-width:980px;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 88px);flex:1;margin:0 auto}.nav{z-index:10;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 4px calc(env(safe-area-inset-bottom) + 6px);justify-content:space-around;display:flex;position:fixed;inset:auto 0 0}.nav a{color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:4px 0;font-size:11px;display:flex;position:relative}.nav a .ico{font-size:20px;line-height:1}.nav .brand{display:none}.nav .dot{background:var(--bad);color:#fff;text-align:center;border-radius:99px;min-width:16px;margin-left:6px;padding:0 5px;font-size:10px;position:absolute;top:0;left:50%}@media (width>=900px){.nav{border-top:0;border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;justify-content:flex-start;align-self:flex-start;gap:4px;width:220px;height:100dvh;padding:20px 12px;position:sticky;inset:0 auto auto;overflow-y:auto}.nav .brand{align-items:center;gap:10px;padding:0 10px 18px;font-size:18px;font-weight:700;display:flex}.nav a{border-radius:10px;flex-direction:row;flex:none;gap:12px;padding:10px 12px;font-size:15px}.nav a.active{background:var(--surface-2)}.nav .dot{margin-left:auto;position:static}.main{padding:28px 32px 40px}}h1{letter-spacing:-.01em;margin:4px 0 16px;font-size:24px}h2{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:24px 0 10px;font-size:15px;font-weight:600}.muted{color:var(--muted)}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.wrap{flex-wrap:wrap}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pos{color:var(--good)}.neg{color:var(--text)}.bad{color:var(--bad)}.warn{color:var(--warn)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card+.card{margin-top:12px}.grid>.card+.card{margin-top:0}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width>=700px){.grid.g4{grid-template-columns:repeat(4,minmax(0,1fr))}}.hero{color:#f2f7ef;background:linear-gradient(135deg,#1d3a27,#0f1a14);border:0;padding:20px}.hero .label{opacity:.75;font-size:13px}.hero .big{letter-spacing:-.02em;margin:2px 0 6px;font-size:40px;font-weight:750}.hero .sub{opacity:.9;flex-wrap:wrap;gap:16px;font-size:13px;display:flex}.hero .spend-money{background:#ffffff12;border-radius:12px;flex-wrap:wrap;align-items:baseline;gap:10px;margin:4px 0 10px;padding:10px 12px;display:flex}.hero .spend-money .small{opacity:.75;margin-left:auto}.hero details.sum{margin-top:14px;font-size:13px}.hero details.sum summary{cursor:pointer;opacity:.8;list-style:none}.hero details.sum summary:after{content:" ›"}.hero details.sum[open] summary:after{content:" ⌄"}.hero .sum-row{border-bottom:1px solid #ffffff1a;justify-content:space-between;gap:12px;padding:6px 0;display:flex}.hero .sum-row.total{border-bottom:0;font-weight:700}.hero .sum-note{opacity:.85;margin:8px 0 0;line-height:1.4}.hero .sum-note a{color:#e8b92f;font-weight:600}.stat .label{color:var(--muted);font-size:12px}.tappable{cursor:pointer;-webkit-user-select:none;user-select:none;display:block}.tappable:active{transform:scale(.98)}.stat .value{margin-top:2px;font-size:20px;font-weight:650}.bar{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.bar>span{background:var(--accent);border-radius:99px;height:100%;display:block}.pot-left{flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:8px;display:flex}.list{flex-direction:column;display:flex}.item{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}button.item{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;width:100%}.avatar{background:var(--surface-2);border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-size:20px;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 14px;font-weight:550;display:inline-flex}.btn.block{width:100%}.chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:99px;min-height:40px;padding:8px 12px;font-size:14px}.chips{flex-wrap:wrap;gap:8px;display:flex}.scroll-x{scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.input,select.input,textarea.input{border:1px solid var(--line);background:var(--surface);border-radius:12px;width:100%;min-height:44px;padding:10px 12px}label.field{margin-bottom:12px;display:block}label.field>span{color:var(--muted);margin-bottom:4px;font-size:13px;display:block}.banner{border-radius:var(--radius);background:color-mix(in srgb, var(--gold) 18%, var(--surface));border:1px solid color-mix(in srgb, var(--gold) 40%, var(--line));align-items:center;gap:12px;margin-bottom:12px;padding:14px 16px;display:flex}.error{background:color-mix(in srgb, var(--bad) 14%, var(--surface));border:1px solid var(--bad);border-radius:12px;margin:10px 0;padding:10px 12px}.sheet-back{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:560px;height:calc(100dvh - env(safe-area-inset-top) - 24px);overscroll-behavior:contain;padding:0 16px calc(env(safe-area-inset-bottom) + 24px);border-radius:20px 20px 0 0;overflow-y:auto}.sheet-head{z-index:1;background:var(--bg);justify-content:center;align-items:center;height:44px;margin:0 -16px 4px;display:flex;position:sticky;top:0}.sheet{transition:transform .2s ease-out}.sheet.dragging{transition:none}.sheet-head{touch-action:none;cursor:grab}.sheet-grip{background:var(--line);border-radius:99px;width:40px;height:5px}.sheet-close{background:var(--surface-2);width:36px;height:36px;color:var(--muted);cursor:pointer;border:0;border-radius:50%;font-size:15px;position:absolute;top:4px;right:8px}@media (width>=700px){.sheet{height:auto;max-height:88dvh}.sheet-back{align-items:center}.sheet{border-radius:20px}}pre.raw{background:var(--surface-2);white-space:pre-wrap;word-break:break-all;border-radius:12px;max-height:60vh;padding:12px;font-size:12px;overflow:auto}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 6px}table.data th{color:var(--muted);background:var(--surface);font-weight:600;position:sticky;top:0}.table-wrap{overflow-x:auto}.login{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.login .card{text-align:center;width:100%;max-width:360px}.login img{width:88px;height:88px;margin-bottom:8px}.pin{letter-spacing:.3em;text-align:center;font-size:24px}.toggle{background:var(--line);cursor:pointer;border:0;border-radius:99px;flex:none;width:48px;height:28px;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:left .15s;position:absolute;top:3px;left:3px}.toggle.on:after{left:23px}:root:not([data-theme=never]){--ink-950:#100e0a;--ink-900:#15130e;--ink-850:#191710;--ink-800:#211f18;--ink-700:#2c2920;--ink-600:#4a4434;--ink-500:#736c57;--ink-300:#a99f85;--ink-100:#eee6cf;--goblin-300:#b4e07a;--goblin-400:#96cb5e;--goblin-500:#7db34a;--goblin-600:#5e9636;--goblin-700:#3d6624;--goblin-900:#0e1709;--gold-100:#f6e9c2;--gold-200:#e3cf98;--gold-300:#f1d77e;--gold-500:#c9a227;--gold-700:#8a6417;--bronze-500:#5a3d17;--bronze-700:#3a2610;--crimson-300:#f2a08f;--crimson-400:#e0626a;--crimson-500:#c23b44;--crimson-800:#8e2028;--amber-400:#e2a643;--loot-common:#d9d2be;--loot-uncommon:#5bd36a;--loot-rare:#4da3ff;--loot-epic:#b983ff;--loot-legendary:#ff9a3c;--font-display:"Cinzel", "Trajan Pro", Georgia, serif;--font-text:"EB Garamond", Garamond, Georgia, serif;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:20px;--text-xl:28px;--text-hero:46px;--radius-sm:6px;--radius-md:10px;--radius-lg:18px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--ease-out:cubic-bezier(.2, .7, .1, 1);--dur-press:.1s;--dur-hover:.15s;--bg:var(--ink-900);--surface:var(--ink-800);--surface-2:var(--ink-700);--surface-sunken:var(--ink-850);--text:var(--ink-100);--muted:var(--ink-300);--line:var(--ink-600);--line-strong:var(--ink-500);--accent:var(--goblin-500);--accent-hover:var(--goblin-400);--accent-pressed:var(--goblin-600);--accent-text:var(--goblin-300);--accent-ink:var(--goblin-900);--good:var(--goblin-500);--warn:var(--amber-400);--bad:var(--crimson-400);--attention:var(--crimson-500);--money:var(--gold-300);--ring:var(--goblin-500);--radius:var(--radius-md);--shadow:0 1px 0 #0006, 0 6px 18px #00000040;--ebony:var(--ink-900);--parchment:var(--ink-100);--gold:var(--gold-500);--gold-hi:var(--gold-300);--gold-lo:var(--gold-700);--goblin:var(--goblin-500);--goblin-hi:var(--goblin-300);--goblin-lo:var(--goblin-700);--crimson:var(--crimson-800);--bronze:var(--bronze-500);--display:var(--font-display);--text-face:var(--font-text);--btn-bg:var(--surface-2);--btn-bg-hover:var(--ink-600);--btn-fg:var(--text);--btn-primary-bg:var(--accent);--btn-primary-bg-hover:var(--accent-hover);--btn-primary-bg-pressed:var(--accent-pressed);--btn-primary-fg:var(--accent-ink);--chip-bg:var(--surface);--chip-bg-hover:var(--surface-2);--chip-on-bg:var(--accent);--chip-on-fg:var(--accent-ink);--input-bg:var(--surface-sunken);--toggle-off:var(--ink-600);--toggle-on:var(--accent-pressed);--track-bg:var(--ink-950);--track-edge:var(--line-strong);--nav-bg:var(--ink-950);--nav-fg:var(--ink-300);--nav-fg-active:var(--accent-text);--row-hover:#eee6cf0a;--gold-metal:linear-gradient(125deg, #5e3e08 0%, #b88a2a 9%, #f6de8d 17%, #fffbe6 21%, #e3bc55 28%, #7e5a12 42%, #c99a2e 55%, #f4dc86 65%, #fff7d6 69%, #cfa03a 78%, #6e4a0e 91%, #a57a22 100%);--gold-grain:repeating-linear-gradient(98deg, #fffadc24 0 1px, #3c23001f 1px 2px, transparent 2px 3.5px);--gold-bevel:linear-gradient(180deg, #fffae180 0%, transparent 18%, transparent 78%, #140c0080 100%);--gold-leaf:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.30  0 0 0 0 0.20  0 0 0 0 0.02  0 0 0 0.55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--tex-grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='g' x='0' y='0' width='100%' height='100%'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feDiffuseLighting surfaceScale='0.9' lighting-color='%23a0a0a0'><feDistantLight azimuth='235' elevation='55'/></feDiffuseLighting></filter><rect width='100%' height='100%' filter='url(%23g)'/></svg>");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);font-family:var(--font-text);font-size:var(--text-md);font-feature-settings:"lnum", "tnum";line-height:1.5}.num{font-variant-numeric:lining-nums tabular-nums}:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:4px}a,button,.chip,.tappable{cursor:pointer}label:has(>input[type=checkbox]){cursor:pointer}h1{font-family:var(--font-display);font-weight:600;font-size:var(--text-xl);letter-spacing:.04em;text-shadow:0 2px 6px #0009}h2{font-family:var(--font-text);font-variant-caps:all-small-caps;font-weight:600;font-size:var(--text-md);letter-spacing:.08em;color:var(--muted);text-transform:none;text-shadow:0 1px 4px #000000b3;align-items:center;gap:var(--space-3);display:flex}h2:after{content:"";background:linear-gradient(90deg, var(--goblin-700), transparent);flex:1;height:1px}h2.row.between:after{display:none}h2.row.between{border-bottom:1px solid;border-image:linear-gradient(90deg, var(--goblin-700), transparent) 1;padding-bottom:var(--space-2)}.small{font-size:var(--text-sm)}.label-caps,.stat .label,.hero .label{letter-spacing:.07em;font-style:normal;font-variant-caps:all-small-caps;font-weight:600}.card{background:var(--tex-grain), var(--surface);background-blend-mode:soft-light, normal;border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow);background-size:180px 180px,auto}.item,button.item{border-bottom:1px solid color-mix(in srgb, var(--line) 75%, transparent)}.item:last-child{border-bottom:0}.stat .label{font-size:var(--text-md);color:var(--muted)}.stat .value{font-size:var(--text-xl);letter-spacing:-.01em;font-weight:600}.stat .small{line-height:1.3}.hero{isolation:isolate;color:var(--gold-100);padding:26px var(--space-6) 22px;border-radius:var(--radius-lg);background:radial-gradient(circle at 14px 14px, #fff6d2 0 1.5px, var(--gold-500) 2.5px, var(--bronze-500) 4px, transparent 4.8px) padding-box, radial-gradient(circle at calc(100% - 14px) 14px, #fff6d2 0 1.5px, var(--gold-500) 2.5px, var(--bronze-500) 4px, transparent 4.8px) padding-box, radial-gradient(circle at 14px calc(100% - 14px), #fff6d2 0 1.5px, var(--gold-500) 2.5px, var(--bronze-500) 4px, transparent 4.8px) padding-box, radial-gradient(circle at calc(100% - 14px) calc(100% - 14px), #fff6d2 0 1.5px, var(--gold-500) 2.5px, var(--bronze-500) 4px, transparent 4.8px) padding-box, var(--tex-grain) padding-box, radial-gradient(140% 120% at 25% 0%, #6b4a1c 0%, var(--bronze-700) 50%, #1a1007 100%) padding-box, var(--gold-bevel) border-box, var(--gold-leaf) border-box, var(--gold-grain) border-box, var(--gold-metal) border-box;background-blend-mode:normal, normal, normal, normal, soft-light, normal, normal, normal, normal, normal;background-position:0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0;background-size:auto,auto,auto,auto,180px 180px,auto,auto,140px 140px,auto,220% 220%;border:7px solid #0000;animation:2.2s cubic-bezier(.3,.6,.2,1) .3s both gold-catch;position:relative;overflow:hidden;box-shadow:0 0 0 1px #4a3208,inset 0 0 0 1px #281804e6,inset 0 1px 0 1px #fff0be40,inset 0 0 48px #0000008c,0 14px 36px #0000008c}@keyframes gold-catch{0%{background-position:0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,100% 100%}to{background-position:0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0}}@supports (animation-timeline:view()){.hero{animation:linear both gold-catch;animation-timeline:view();animation-range:cover}}.hero:before{content:"";z-index:-1;transform-origin:50%;background:radial-gradient(circle closest-side, transparent 0 145px, #f1d77e38 145px 148px, transparent 149.5px 181px, #f1d77e24 181px 184px, transparent 185.5px), radial-gradient(circle closest-side, #f1d77e1a 0 33px, transparent 34.5px), repeating-conic-gradient(#f1d77e12 0 .6deg, transparent .6deg 12deg);width:1600px;height:1600px;animation:vault-unlock 1.4s var(--ease-out) both;border-radius:50%;margin:-800px 0 0 -800px;position:absolute;top:100%;left:50%}.hero>*{position:relative}.hero .label{font-size:var(--text-md);color:var(--gold-200);opacity:1}.hero .big{font-family:var(--font-display);font-weight:700;font-size:var(--text-hero);letter-spacing:.01em;background:linear-gradient(100deg,#e0b444 0%,#fff4c8 45%,#e0b444 55%,#b88a2a 100%) 100% 0/250% 100%;color:#0000;filter:drop-shadow(0 2px 1px #00000080);-webkit-background-clip:text;background-clip:text;margin:2px 0 10px;animation:1.6s ease-out .5s both gold-sheen}.hero .spend-money{border-radius:var(--radius-md);background:#00000047;border:1px solid #7db34a73}.hero .spend-money strong{color:var(--accent-text);font-size:var(--text-lg)}.hero .spend-money strong.bad{color:var(--crimson-300)}.hero .sub{opacity:1;color:var(--gold-200)}.hero .gold{color:var(--money)}.hero .sum-row{border-bottom-color:#f1d77e29}.hero .sum-note a{color:var(--accent-text)}@keyframes vault-unlock{0%{opacity:0;transform:rotate(-70deg)scale(.92)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes gold-sheen{0%{background-position:100% 0}to{background-position:0 0}}.bar{background:var(--track-bg);height:6px;box-shadow:0 0 0 1px var(--track-edge);border-radius:1px}.bar>span{background:var(--accent);border-radius:1px}.bar.warn>span{background:var(--warn)}.bar.bad>span{background:var(--bad)}.bar.good>span{background:var(--good)}.btn{border-radius:var(--radius-sm);font-weight:600;font-size:var(--text-md);background:var(--btn-bg);color:var(--btn-fg);border:1px solid var(--line);transition:background-color var(--dur-hover) ease-out, border-color var(--dur-hover) ease-out}.btn.primary{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);color:var(--btn-primary-fg)}.btn.danger{color:var(--bad)}.chip{border-radius:var(--radius-pill);font-size:var(--text-md);background:var(--chip-bg);border:1px solid var(--line);min-height:44px;color:var(--text);transition:background-color var(--dur-hover) ease-out, border-color var(--dur-hover) ease-out}.chip.on{background:var(--chip-on-bg);border-color:var(--chip-on-bg);color:var(--chip-on-fg)}.chip-note{color:var(--muted);font-size:var(--text-sm);margin-left:var(--space-1)}.chip.on .chip-note{color:inherit}@media (hover:hover){.btn:hover:not(:disabled){background:var(--btn-bg-hover);border-color:var(--line-strong)}.btn.primary:hover:not(:disabled){background:var(--btn-primary-bg-hover);border-color:var(--btn-primary-bg-hover)}.chip:hover{background:var(--chip-bg-hover);border-color:var(--line-strong)}.chip.on:hover{background:var(--accent-hover)}a.item:hover,button.item:hover,.tappable:hover{background-color:var(--row-hover)}}.btn:active:not(:disabled){background:var(--surface-sunken);transition-duration:var(--dur-press)}.btn.primary:active:not(:disabled),.chip.on:active{background:var(--btn-primary-bg-pressed)}.chip:active{background:var(--surface-sunken)}.btn:disabled{opacity:.45;cursor:not-allowed}.input,select.input,textarea.input{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--input-bg)}.input:focus-visible{border-color:var(--ring)}.toggle{background:var(--toggle-off)}.toggle.on{background:var(--toggle-on)}.toggle:after{background:var(--ink-100)}.avatar{background:var(--surface-2);border:1px solid var(--line);border-radius:50%}.banner{border-radius:var(--radius-md);border:1px solid var(--line);border-left:5px solid var(--attention);background:var(--surface);box-shadow:var(--shadow)}.nav{background:var(--nav-bg);border-top:1px solid var(--ink-700)}.nav a{color:var(--nav-fg);font-size:var(--text-xs);transition:color var(--dur-hover) ease-out}.nav a.active{color:var(--nav-fg-active)}.nav a .ico{place-items:center;height:24px;display:grid}.nav .dot{background:var(--crimson-800);box-shadow:0 0 0 1.5px var(--nav-bg)}@media (hover:hover){.nav a:hover{color:var(--text)}}@media (width>=900px){.nav{border-top:0;border-right:1px solid var(--ink-700)}.nav .brand{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);letter-spacing:.06em;color:var(--money)}.nav a{font-size:var(--text-md)}.nav a.active{box-shadow:inset 2px 0 0 var(--accent);background:#7db34a1a}}.sheet{background:var(--bg);border-top:2px solid var(--goblin-700)}.sheet:focus{outline:none}.sheet-head{background:var(--bg)}.sheet-grip{background:var(--line)}.sheet-close{background:var(--surface-2);color:var(--muted)}.pot-left-total{color:var(--accent-text);font-weight:600}.login h1{font-family:var(--font-display)}.loot{font-weight:600}.loot-common{color:var(--loot-common)}.loot-uncommon{color:var(--loot-uncommon)}.loot-rare{color:var(--loot-rare)}.loot-epic{color:var(--loot-epic)}.loot-legendary{color:var(--loot-legendary);text-shadow:0 0 10px #ff9a3c59}.xp{position:absolute;top:-7px;left:0;right:0}.xp-bar{background:var(--track-bg);border-top:1px solid var(--line-strong);height:7px;position:relative;overflow:hidden}.xp-fill{background:var(--accent);height:100%;display:block;box-shadow:0 0 8px #7db34a80}.xp-bar:after{content:"";background:repeating-linear-gradient(90deg,#0000 0 calc(5% - 1px),#000000bf calc(5% - 1px) 5%);position:absolute;inset:0}.xp-label{display:none}@media (width>=900px){.xp{margin:0 10px 14px;position:static}.xp-bar{border:1px solid var(--line-strong);border-radius:1px;height:8px}.xp-label{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--muted);text-align:center;display:block}}.quest-marker{flex:none;place-items:center;width:40px;height:40px;display:grid;position:relative}.quest-bang{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);color:var(--gold-300);text-shadow:0 0 1px #000,0 2px #3a2610,0 0 2px #000;line-height:1}.quest-emoji{font-size:var(--text-sm);position:absolute;bottom:0;right:0}.quest-marker.soon .quest-bang{animation:1.8s ease-in-out infinite quest-glow}.quest-marker.overdue .quest-bang{color:var(--bad)}@keyframes quest-glow{0%,to{text-shadow:0 0 1px #000,0 2px #3a2610,0 0 6px #f1d77e66}50%{text-shadow:0 0 1px #000,0 2px #3a2610,0 0 16px #f1d77ef2}}.achievement{z-index:60;left:50%;top:calc(env(safe-area-inset-top) + 12px);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:2px solid var(--gold-500);border-radius:var(--radius-md);width:max-content;max-width:calc(100% - 32px);box-shadow:inset 0 0 0 3px var(--surface), inset 0 0 0 4px var(--gold-700), 0 12px 32px #0009, 0 0 24px #f1d77e40;animation:achievement-in .5s var(--ease-out) both;cursor:pointer;display:flex;position:fixed;transform:translate(-50%)}.achievement.leaving{animation:.45s ease-in both achievement-out}.sigil{filter:drop-shadow(0 0 6px #b4e07a73);flex:none;place-items:center;width:40px;height:44px;display:grid;position:relative}.sigil svg{position:absolute;inset:0}.sigil-icon{font-size:var(--text-lg);margin-top:-2px;line-height:1;position:relative}.sigil.dim{filter:grayscale()brightness(.55);opacity:.7}.achievement-grid{gap:var(--space-3);display:grid}@media (width>=700px){.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.achievement-grid .card+.card{margin-top:0}.achievement-card{gap:var(--space-3);align-items:flex-start;display:flex}.achievement-card.earned{border-color:var(--gold-700);box-shadow:var(--shadow), inset 0 0 0 1px #f1d77e2e}.achievement-card-title{font-family:var(--font-display);font-weight:600;font-size:var(--text-md);letter-spacing:.02em}.achievement-card.locked .achievement-card-title{color:var(--muted)}.achievement-count{color:var(--gold-300);font-weight:600}.achievement-date{color:var(--gold-200);margin-top:2px}.achievement-card.locked .achievement-date{color:var(--muted)}.achievement-kicker{letter-spacing:.08em;font-variant-caps:all-small-caps;font-weight:600;font-size:var(--text-sm);color:var(--gold-300)}.achievement-title{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);line-height:1.2}.achievement-text{font-size:var(--text-sm);color:var(--muted)}@keyframes achievement-in{0%{opacity:0;transform:translate(-50%,-24px)scale(.96)}to{opacity:1;transform:translate(-50%)}}@keyframes achievement-out{to{opacity:0;transform:translate(-50%,-16px)}}@media (prefers-reduced-motion:reduce){.quest-marker.soon .quest-bang,.achievement,.achievement.leaving,.hero,.hero:before,.hero .big{animation:none}.hero .big{background-position:0 0}.btn,.chip,.nav a{transition:none}}:root{--tex-marble:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='480' height='480'><filter id='v' x='0' y='0' width='100%' height='100%'><feTurbulence type='fractalNoise' baseFrequency='0.012' numOctaves='5' seed='4' stitchTiles='stitch' result='h'/><feDiffuseLighting in='h' surfaceScale='2.5' lighting-color='%232c3224' result='stone'><feDistantLight azimuth='225' elevation='58'/></feDiffuseLighting><feTurbulence type='turbulence' baseFrequency='0.006 0.009' numOctaves='6' seed='11' stitchTiles='stitch' result='t'/><feColorMatrix in='t' values='0 0 0 0 0.50  0 0 0 0 0.64  0 0 0 0 0.40  -6.5 0 0 0 0.58' result='veins'/><feComposite in='veins' in2='stone' operator='over'/></filter><rect width='100%' height='100%' filter='url(%23v)'/></svg>");--vignette:radial-gradient(130% 90% at 50% 40%, transparent 35%, #0009 100%)}.app{isolation:isolate;background:var(--vignette), var(--tex-marble) 0 0 / 480px 480px, var(--ebony);position:relative}.app:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(70% 45% at 50% -8%,#f1d77e29,#0000 70%);position:fixed;inset:0}.nav{border-top:1px solid #000;box-shadow:inset 0 1px #fff0c814,0 -6px 18px #00000080}.nav a{z-index:0;position:relative}.nav a.active:before{content:"";z-index:-1;background:radial-gradient(60% 70% at 50% 40%,#7db34a4d,#0000 75%);border-radius:12px;position:absolute;inset:-2px 8%}@media (width>=900px){.nav{border-top:0;border-right:1px solid #000;box-shadow:inset -1px 0 #fff0c80f,6px 0 18px #00000080}.nav a.active:before{background:radial-gradient(70% 90% at 0%,#7db34a47,#0000 75%);border-radius:10px;inset:0}}
