:root{--bg: #0b0e0c;--surface: #11150f;--surface-raised: #161c14;--surface-overlay: #1b221a;--border: #1f2620;--border-strong: #2c352e;--text: #e8ebe9;--text-secondary: #8a948b;--text-muted: #5a645c;--brand: #0a5d3c;--brand-strong: #0e7a4f;--brand-soft: rgba(10, 93, 60, .18);--brand-line: rgba(10, 93, 60, .45);--success: #1f9d61;--warn: #c08a1e;--danger: #c85a6e;--info: #4a7faa;--rarity-common: #6b7280;--rarity-uncommon: #4a8a5f;--rarity-rare: #4a7faa;--rarity-epic: #8b6bb0;--rarity-legendary: #b08840;--rarity-mythic: #a04060;--fs-11: 11px;--fs-13: 13px;--fs-15: 15px;--fs-17: 17px;--fs-20: 20px;--fs-28: 28px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--r-1: 4px;--r-2: 8px;--r-3: 12px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .5);--shadow-2: 0 12px 28px rgba(0, 0, 0, .55);--easing: cubic-bezier(.2, .7, .2, 1);--font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg)}body{color:var(--text);font-family:var(--font-sans);font-size:var(--fs-15);line-height:1.4;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11"}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}a{color:inherit;text-decoration:none}input,textarea{font:inherit;color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2);padding:10px 12px;outline:none;transition:border-color .12s var(--easing)}input:focus,textarea:focus{border-color:var(--brand-strong)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--text-muted)}.dim{color:var(--text-secondary)}.app-shell{position:relative;width:100%;height:100dvh;overflow:hidden;color:var(--text);background:var(--bg);display:flex;flex-direction:column}.app-main{flex:1 1 auto;overflow-y:auto;padding:var(--sp-4) var(--sp-4) calc(var(--sp-4) + 88px);scrollbar-width:none}.app-main::-webkit-scrollbar{display:none}.topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0 var(--sp-3);margin-bottom:var(--sp-3);background:var(--bg);border-bottom:1px solid var(--border)}.topbar .avatar{width:36px;height:36px;border-radius:var(--r-2);background:var(--brand);color:#fff;display:grid;place-items:center;font-family:var(--font-mono);font-weight:600;font-size:var(--fs-15);letter-spacing:.5px}.topbar .who{min-width:0;line-height:1.2}.topbar .who .name{font-size:var(--fs-15);font-weight:600;letter-spacing:-.1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .who .status{font-size:var(--fs-11);color:var(--text-secondary);margin-top:2px;font-family:var(--font-mono);letter-spacing:.2px}.topbar .tokens{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--r-2);background:var(--surface);border:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-13);font-weight:600;font-variant-numeric:tabular-nums}.topbar .tokens svg{color:var(--brand-strong)}.boost-strip{display:inline-flex;align-items:center;gap:var(--sp-2);padding:6px 10px;margin-bottom:var(--sp-3);border-radius:var(--r-2);background:var(--brand-soft);border:1px solid var(--brand-line);font-size:var(--fs-11);font-family:var(--font-mono);letter-spacing:.2px;color:var(--text)}.boost-strip svg{width:12px;height:12px;color:var(--brand-strong);flex:0 0 auto}.boost-strip>span{display:inline-flex}.topbar .tokens svg{width:14px;height:14px;color:var(--brand-strong)}.page-header{position:sticky;top:0;z-index:5;display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-3);margin:calc(-1 * var(--sp-4)) calc(-1 * var(--sp-4)) var(--sp-4);padding:var(--sp-4) var(--sp-4) var(--sp-3);background:var(--bg);border-bottom:1px solid var(--border)}.page-header h1{margin:0;font-size:var(--fs-28);font-weight:600;letter-spacing:-.5px;line-height:1.05}.page-header .meta{font-size:var(--fs-11);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.3px;text-transform:uppercase;white-space:nowrap}.page-header .sub{font-size:var(--fs-13);color:var(--text-secondary);margin-top:4px}.quest-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);margin-bottom:var(--sp-3);cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative}.quest-row .marker{width:6px;height:6px;border-radius:50%;background:var(--brand-strong);box-shadow:0 0 0 3px var(--brand-soft)}.quest-row .body{min-width:0}.quest-row .label{font-size:var(--fs-11);color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}.quest-row .title{font-size:var(--fs-13);color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quest-row .count{font-family:var(--font-mono);font-size:var(--fs-13);color:var(--text-secondary);font-variant-numeric:tabular-nums}.quest-row .bar{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand);border-radius:0 0 var(--r-2) var(--r-2);transition:width .24s var(--easing)}.coins-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-2);margin-bottom:var(--sp-3)}.coin{position:relative;aspect-ratio:1 / 1.15;display:grid;grid-template-rows:1fr auto;align-items:center;justify-items:center;padding:6px 4px 8px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);color:var(--text);-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:border-color .12s var(--easing),transform 80ms var(--easing),background .12s var(--easing)}.coin:active:not(:disabled){transform:scale(.92)}.coin .glyph{width:26px;height:26px;color:var(--text-secondary);display:grid;place-items:center}.coin .glyph svg{width:100%;height:100%}.coin .name{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);letter-spacing:.4px;text-transform:uppercase;text-align:center;line-height:1}.coin .lvl{position:absolute;top:4px;right:4px;font-family:var(--font-mono);font-size:10px;font-variant-numeric:tabular-nums;color:var(--text-muted)}.coin.active{background:var(--brand);border-color:var(--brand-strong)}.coin.active .glyph{color:#fff}.coin.active .name{color:#ffffffd9}.coin.active .lvl{color:#ffffffbf}.coin.next{border-color:var(--brand-strong);border-style:dashed}.coin.next .glyph{color:var(--brand-strong)}.coin.locked{opacity:.38;cursor:not-allowed}.ticker{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-bottom:var(--sp-4);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.3px;color:var(--text-secondary)}.ticker .pair{display:inline-flex;gap:6px;align-items:baseline}.ticker .pair .k{color:var(--text-muted);text-transform:uppercase}.ticker .pair .v{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.delta{position:absolute;right:0;top:100%;margin-top:2px;padding:2px 6px;border-radius:var(--r-1);background:var(--brand-soft);color:var(--brand-strong);font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.3px;animation:delta-pop 1.2s var(--easing) forwards;pointer-events:none}@keyframes delta-pop{0%{opacity:0;transform:translateY(-4px)}15%{opacity:1;transform:translateY(0)}80%{opacity:1}to{opacity:0;transform:translateY(2px)}}.list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);overflow:hidden}.list-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);background:var(--surface);-webkit-tap-highlight-color:transparent;transition:background .1s var(--easing)}.list-row:last-child{border-bottom:0}.list-row.interactive{cursor:pointer}.list-row.interactive:active{background:var(--surface-raised)}.list-row .lead{width:28px;height:28px;display:grid;place-items:center;color:var(--text-secondary)}.list-row .lead svg{width:22px;height:22px}.list-row .lead.brand{color:var(--brand-strong)}.list-row .body{min-width:0}.list-row .title{font-size:var(--fs-15);font-weight:500;letter-spacing:-.1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row .sub{font-size:var(--fs-13);color:var(--text-secondary);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row .trail{font-family:var(--font-mono);font-size:var(--fs-13);color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.list-row.locked{opacity:.45;cursor:not-allowed}.card{border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);padding:var(--sp-4);margin-bottom:var(--sp-3)}.card .card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border)}.card .card-title{font-size:var(--fs-11);color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.4px}.kv{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:var(--sp-2);padding:8px 0;font-size:var(--fs-13);border-bottom:1px solid var(--border)}.kv:last-child{border-bottom:0}.kv .k{color:var(--text-secondary)}.kv .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text)}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:var(--r-1);background:var(--surface-raised);color:var(--text-secondary);font-family:var(--font-mono);font-size:10px;letter-spacing:.3px;font-variant-numeric:tabular-nums;text-transform:uppercase;white-space:nowrap}.chip.brand{background:var(--brand-soft);color:var(--brand-strong)}.chip.success{background:#1f9d6124;color:var(--success)}.chip.warn{background:#c08a1e24;color:var(--warn)}.chip.danger{background:#c85a6e24;color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:44px;padding:0 var(--sp-4);border-radius:var(--r-2);font-weight:500;font-size:var(--fs-15);letter-spacing:-.1px;border:1px solid transparent;transition:background .12s var(--easing),border-color .12s var(--easing),color .12s var(--easing),transform 80ms var(--easing);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.block{width:100%}.btn.sm{height:32px;font-size:var(--fs-13);padding:0 var(--sp-3)}.btn.lg{height:52px;font-size:var(--fs-17)}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand-strong)}.btn.primary:hover{background:var(--brand-strong)}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn.ghost{background:transparent;color:var(--text-secondary)}.btn.ghost:hover{color:var(--text);background:var(--surface)}.btn.danger{background:transparent;color:var(--danger);border-color:#c85a6e66}.bottom-nav{position:absolute;left:0;right:0;bottom:0;z-index:10;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav .grid{display:grid;grid-template-columns:repeat(5,1fr)}.nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 0;color:var(--text-muted);position:relative;-webkit-tap-highlight-color:transparent;transition:color .12s var(--easing)}.nav-btn svg{width:22px;height:22px}.nav-btn .lbl{font-size:10px;font-family:var(--font-mono);letter-spacing:.3px;text-transform:uppercase}.nav-btn.active{color:var(--text)}.nav-btn.active:before{content:"";position:absolute;top:0;left:25%;right:25%;height:2px;background:var(--brand-strong)}.nav-btn.locked{opacity:.35;pointer-events:none}.nav-btn .dot{position:absolute;top:8px;right:50%;margin-right:-16px;width:5px;height:5px;border-radius:50%;background:var(--brand-strong)}.back-fab{position:absolute;right:var(--sp-4);bottom:calc(80px + env(safe-area-inset-bottom));width:40px;height:40px;border-radius:var(--r-2);background:var(--surface-raised);border:1px solid var(--border-strong);display:grid;place-items:center;color:var(--text-secondary);z-index:15;transition:color .12s var(--easing),background .12s var(--easing)}.back-fab:hover{color:var(--text);background:var(--surface-overlay)}.back-fab svg{width:18px;height:18px}.app-shell:has(.snackbar) .back-fab{display:none}.sheet-scrim{position:absolute;inset:0;z-index:40;background:#0000;pointer-events:none;transition:background .18s var(--easing)}.sheet-scrim.open{background:#00000080;pointer-events:auto}.sheet{position:absolute;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--border);border-radius:var(--r-3) var(--r-3) 0 0;padding:var(--sp-3) var(--sp-4) calc(96px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .24s var(--easing)}.sheet-scrim.open .sheet{transform:translateY(0)}.sheet .handle{width:32px;height:3px;border-radius:2px;background:var(--border-strong);margin:4px auto var(--sp-3)}.sheet .sheet-title{font-size:var(--fs-11);color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.4px;margin:0 0 var(--sp-2)}.snackbar{position:absolute;left:var(--sp-4);right:var(--sp-4);bottom:calc(80px + env(safe-area-inset-bottom));z-index:30;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-2);background:var(--surface-overlay);border:1px solid var(--border-strong);font-size:var(--fs-13);box-shadow:var(--shadow-2);animation:snack-in .18s var(--easing)}.snackbar svg{width:18px;height:18px}.snackbar.error{border-color:#c85a6e66}.snackbar.error svg{color:var(--danger)}.snackbar.success{border-color:#1f9d6166}.snackbar.success svg{color:var(--success)}.snackbar .x{color:var(--text-muted);padding:6px;margin:-6px}@keyframes snack-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.sk{background:linear-gradient(90deg,var(--surface) 0%,var(--surface-raised) 50%,var(--surface) 100%);background-size:200% 100%;animation:sk-pulse 1.5s ease-in-out infinite;border-radius:var(--r-1)}@keyframes sk-pulse{0%{background-position:100% 0}to{background-position:-100% 0}}.empty{text-align:center;padding:var(--sp-6) var(--sp-4);color:var(--text-secondary)}.empty .icon{display:inline-grid;place-items:center;width:48px;height:48px;margin-bottom:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-3);color:var(--text-muted)}.empty .icon svg{width:22px;height:22px}.empty .title{color:var(--text);font-size:var(--fs-15);font-weight:500}.empty .sub{font-size:var(--fs-13);margin-top:4px}.section-label{font-size:var(--fs-11);color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.4px;margin:var(--sp-4) 0 var(--sp-2)}.progress{height:4px;background:var(--surface-raised);border-radius:2px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--brand-strong);transition:width .24s var(--easing)}.effects-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3)}.effects-grid>.cell{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-13);min-width:0;padding:4px 0}.effects-grid>.cell .k{color:var(--text-secondary);min-width:0}.effects-grid>.cell .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;flex-shrink:0}.rarity-row{display:grid;grid-template-columns:10px 1fr auto auto;align-items:center;gap:var(--sp-3);padding:10px var(--sp-3);border-bottom:1px solid var(--border);font-size:var(--fs-13)}.rarity-row:last-child{border-bottom:0}.rarity-row .dot{width:8px;height:8px;border-radius:2px}.rarity-row .pct{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-muted);font-variant-numeric:tabular-nums}.rarity-row .count{font-family:var(--font-mono);font-size:var(--fs-13);color:var(--text);font-variant-numeric:tabular-nums;min-width:32px;text-align:right}.r-common .dot{background:var(--rarity-common)}.r-uncommon .dot{background:var(--rarity-uncommon)}.r-rare .dot{background:var(--rarity-rare)}.r-epic .dot{background:var(--rarity-epic)}.r-legendary .dot{background:var(--rarity-legendary)}.r-mythic .dot{background:var(--rarity-mythic);box-shadow:0 0 0 1.5px var(--rarity-mythic),inset 0 0 0 1px #fff3}.rune-display{display:grid;place-items:center;height:160px;margin-bottom:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);position:relative;overflow:hidden}.rune-display .mark{width:56px;height:56px;color:var(--brand-strong)}.rune-display .label{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-size:var(--fs-11);color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.4px}.row-gap-2>*+*{margin-top:var(--sp-2)}.row-gap-3>*+*{margin-top:var(--sp-3)}.hidden{display:none!important}
