:root{--bg: #f4f1ea;--surface: #ffffff;--surface-2: #faf8f3;--ink: #16241c;--ink-soft: #4b5b51;--ink-faint: #8a978e;--line: #e7e2d7;--green: #2f9466;--green-bright: #3ba776;--green-deep: #0f5536;--green-soft: #eaf6ef;--red: #c0492f;--red-soft: #fbecea;--gold: #c9a227;--shadow: 0 1px 2px rgba(20, 36, 28, .04), 0 8px 24px rgba(20, 36, 28, .06);--chrome: rgba(255, 255, 255, .82);--chrome-border: var(--line);--body-gradient-top: #eef3ec;--radius: 18px;--maxw: 480px;--display: "Fraunces", Georgia, serif;--body: "Hanken Grotesk", -apple-system, sans-serif}[data-theme=dark]{--bg: #0d1410;--surface: #16241c;--surface-2: #1a2e24;--ink: #eaf6ef;--ink-soft: #a8b8ae;--ink-faint: #6d7d73;--line: #243528;--green: #4db88a;--green-bright: #6dd3a0;--green-deep: #a7e8c4;--green-soft: #1a2e24;--red: #e87058;--red-soft: #2a1a16;--gold: #e0b84a;--shadow: 0 1px 2px rgba(0, 0, 0, .2), 0 8px 24px rgba(0, 0, 0, .35);--chrome: rgba(22, 36, 28, .9);--chrome-border: #243528;--body-gradient-top: #1a2e24}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--body);background:radial-gradient(120% 60% at 50% -10%,var(--body-gradient-top) 0%,var(--bg) 55%) fixed;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input{font-family:inherit}.shell{max-width:var(--maxw);margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;position:relative;background:var(--bg);box-shadow:0 0 60px #14241c14}.scroll{flex:1;overflow-y:auto;padding:0 18px calc(96px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.display{font-family:var(--display);font-optical-sizing:auto}.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}.num{font-variant-numeric:tabular-nums}.pos{color:var(--green-deep)}.neg{color:var(--red)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:4px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line)}.chip.up{background:var(--green-soft);color:var(--green-deep);border-color:transparent}.chip.down{background:var(--red-soft);color:var(--red);border-color:transparent}.mkt-chip{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:6px;background:var(--green-soft);color:var(--green-deep)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:600;font-size:14px;padding:11px 16px;border-radius:12px;background:var(--green-deep);color:#fff;transition:transform .12s,opacity .12s}.btn:active{transform:scale(.97)}.btn.ghost{background:var(--surface);color:var(--green-deep);border:1px solid var(--line)}.btn.block{width:100%}.page-head{padding:18px 0 14px}.page-head h1{font-family:var(--display);font-weight:600;font-size:30px;line-height:1.05;letter-spacing:-.01em}.page-head p{color:var(--ink-soft);font-size:13px;margin-top:4px}.avatar{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-weight:700;font-size:14px;color:#fff;flex:none}.tick{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-weight:700;font-size:12px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);flex:none;letter-spacing:-.02em}.row{display:flex;align-items:center;gap:12px}.spread{display:flex;align-items:center;justify-content:space-between}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--maxw);display:flex;justify-content:space-around;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--chrome);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border-top:1px solid var(--chrome-border);z-index:40}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;color:var(--ink-faint);font-size:10px;font-weight:600;border-radius:12px;transition:color .15s}.tab svg{width:23px;height:23px}.tab.active{color:var(--green-deep)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.rise{animation:rise .45s cubic-bezier(.2,.8,.2,1) both}.d1{animation-delay:.05s}.d2{animation-delay:.1s}.d3{animation-delay:.15s}.d4{animation-delay:.2s}.d5{animation-delay:.25s}.scroll::-webkit-scrollbar{width:0}
