/* Landing page (/): its own top bar and marketing layout; same tokens, fonts and account controls as the app pages. */
:root{--bg:#f2f5f9;--surface:#fff;--raised:#f6f8fb;--ink:#0f2238;--muted:#5b6b7f;--line:#dde4ee;--blue:#1b4d89;--tint:#e8f0fa;--gold:#c9971f;--up:#16805f;--down:#c0434e;--hold:#696e76;--hike:#b7861b;--cut:#1b4d89;--chart:#2f6db3;--shadow:0 1px 2px rgba(15,34,56,.05),0 22px 44px -26px rgba(15,34,56,.38);--ease:cubic-bezier(.2,.7,.2,1);color-scheme:light;
 --lock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2.5'/%3E%3Cpath d='M8 11V7.5a4 4 0 0 1 8 0V11'/%3E%3C/svg%3E");
 --moon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 14.3A8.5 8.5 0 1 1 9.7 3.5a6.8 6.8 0 0 0 10.8 10.8z'/%3E%3C/svg%3E");
 --sun:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4.2'/%3E%3Cpath d='M12 2.5v2M12 19.5v2M2.5 12h2M19.5 12h2M5.3 5.3l1.4 1.4M17.3 17.3l1.4 1.4M5.3 18.7l1.4-1.4M17.3 6.7l1.4-1.4'/%3E%3C/svg%3E")}
:root[data-theme=dark]{--bg:#0a1322;--surface:#101c2e;--raised:#14233a;--ink:#e6edf6;--muted:#92a3b9;--line:#213149;--blue:#8ab8ec;--tint:#1a2b45;--gold:#f0c05a;--up:#4fd1a5;--down:#f0848e;--hold:#4b4f56;--hike:#b8871d;--cut:#2f6db3;--chart:#8ab8ec;--shadow:0 1px 0 rgba(255,255,255,.03) inset,0 26px 50px -28px rgba(0,0,0,.85);color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 'IBM Plex Sans',system-ui,-apple-system,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}
img,svg{display:block;max-width:100%}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
.skip-link{position:absolute;left:16px;top:-80px;z-index:100;padding:10px 14px;border-radius:8px;background:var(--gold);color:#0b1729;font-weight:600;text-decoration:none}
.skip-link:focus{top:14px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
.wrap{width:min(1200px,100% - 48px);margin-inline:auto}
.wrap.narrow{width:min(820px,100% - 48px)}

/* Top bar: transparent over the hero, frosted navy once the page scrolls under it. */
.home-header{position:fixed;inset:0 0 auto;z-index:40;height:72px;display:flex;align-items:center;gap:10px;padding:0 max(24px,calc((100% - 1200px) / 2));color:#e6edf6;transition:background .25s,box-shadow .25s}
.home-header.solid{background:rgba(6,14,27,.84);-webkit-backdrop-filter:saturate(1.5) blur(16px);backdrop-filter:saturate(1.5) blur(16px);box-shadow:0 1px 0 rgba(255,255,255,.07)}
.home-brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:700;font-size:17.5px;letter-spacing:-.01em;white-space:nowrap}
.home-brand img{border-radius:9px;flex:none}
.home-nav{display:flex;gap:2px;margin:0 auto 0 30px}
.home-nav a{padding:8px 12px;border-radius:9px;text-decoration:none;font-size:15.5px;font-weight:500;color:rgba(230,237,246,.76);transition:color .18s,background .18s}
.home-nav a:hover{color:#fff;background:rgba(255,255,255,.07)}
.page-home .language-switch{display:flex;padding:3px;border-radius:11px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.page-home .language-switch button{font-size:0;height:30px;padding:0 11px;border:0;border-radius:8px;background:none;color:rgba(230,237,246,.72);cursor:pointer;transition:background .18s,color .18s}
.page-home .language-switch button::after{font:500 14px/1 'IBM Plex Sans','PingFang SC','Microsoft YaHei',sans-serif}
.page-home .language-switch [data-language=en]::after{content:'EN'}
.page-home .language-switch [data-language=zh]::after{content:'中文'}
.page-home .language-switch [aria-pressed=true]{background:rgba(255,255,255,.15);color:#fff}
.page-home .theme-toggle{position:relative;display:grid;place-items:center;width:38px;height:38px;padding:0;border-radius:11px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#e6edf6;cursor:pointer;transition:background .18s}
.page-home .theme-toggle:hover,.page-home .language-switch button:hover{background:rgba(255,255,255,.11)}
.page-home .theme-toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.page-home .theme-toggle::before{content:'';width:18px;height:18px;background:currentColor;-webkit-mask:var(--moon) center/contain no-repeat;mask:var(--moon) center/contain no-repeat}
:root[data-theme=dark] .page-home .theme-toggle::before{-webkit-mask-image:var(--sun);mask-image:var(--sun)}
.page-home .auth-control{order:5;margin-left:0}
.page-home .auth-signin{padding:8px 16px;border-color:rgba(255,255,255,.22);border-radius:11px;color:#fff!important;font-size:15px;transition:background .18s}
.page-home .auth-signin:hover{background:rgba(255,255,255,.09)}
.page-home .auth-menu p{margin:0 0 6px}
.page-home .auth-menu button,.page-home .auth-dialog button{font:inherit;font-size:15px;padding:10px 12px;border-radius:9px;border:1px solid var(--line);background:var(--raised);color:var(--ink);cursor:pointer}
.home-start{order:6;display:inline-flex;align-items:center;height:40px;padding:0 16px;border-radius:11px;background:linear-gradient(180deg,#f7d27a,#e8b142);color:#0b1729;font-weight:600;font-size:15px;text-decoration:none;white-space:nowrap;transition:filter .18s,transform .18s var(--ease)}
.home-start:hover{filter:brightness(1.05);transform:translateY(-1px)}

/* Hero: the navy stage stops partway down the live window so it floats over the page. */
.hero{position:relative;isolation:isolate;padding:164px 0 0;color:#e6edf6}
.hero::before,.hero::after{content:'';position:absolute;inset:0 0 240px;z-index:-1}
.hero::before{background:radial-gradient(900px 480px at 50% -6%,rgba(240,192,90,.2),transparent 62%),radial-gradient(760px 540px at 90% 14%,rgba(63,127,208,.3),transparent 64%),radial-gradient(620px 420px at 4% 34%,rgba(79,209,165,.1),transparent 62%),linear-gradient(180deg,#050c18 0%,#0b1a30 100%)}
:root[data-theme=dark] .hero::before{background:radial-gradient(900px 480px at 50% -6%,rgba(240,192,90,.18),transparent 62%),radial-gradient(760px 540px at 90% 14%,rgba(63,127,208,.26),transparent 64%),radial-gradient(620px 420px at 4% 34%,rgba(79,209,165,.08),transparent 62%),linear-gradient(180deg,#050c18 0%,#0a1322 100%)}
.hero::after{background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 72% 62% at 50% 26%,#000 25%,transparent 74%);mask-image:radial-gradient(ellipse 72% 62% at 50% 26%,#000 25%,transparent 74%)}
.hero-copy{text-align:center;max-width:1000px}
.hero h1{margin:0;font-size:clamp(42px,6.3vw,80px);line-height:1.04;letter-spacing:-.035em;font-weight:700}
.hero h1 span,.hero h1 em{display:block}
.hero h1 em{font-style:normal;padding-bottom:.06em;background:linear-gradient(92deg,#ffe8a8 0%,#f4c55a 48%,#e3a03a 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-lead{margin:26px auto 0;max-width:700px;font-size:clamp(18px,1.55vw,21px);line-height:1.6;color:#b3c2d5}
.actions{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:38px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:54px;padding:0 28px;border-radius:13px;font-weight:600;font-size:17px;text-decoration:none;white-space:nowrap;transition:transform .2s var(--ease),box-shadow .2s,background .2s,border-color .2s}
.btn-gold{background:linear-gradient(180deg,#f7d27a,#e8b142);color:#0b1729;box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 16px 36px -16px rgba(240,180,69,.8)}
.btn-gold::after{content:'→';transition:transform .2s var(--ease)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 22px 44px -16px rgba(240,180,69,.9)}
.btn-gold:hover::after{transform:translateX(3px)}
.btn-ghost{color:#eef3fa;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.04)}
.btn-ghost:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.4)}

/* Live market window */
.live{max-width:1120px;margin:76px auto 0;padding:0 26px 24px;border-radius:22px;background:var(--surface);color:var(--ink);border:1px solid rgba(15,34,56,.08);box-shadow:0 60px 110px -50px rgba(3,10,22,.75),0 30px 60px -36px rgba(3,10,22,.55)}
:root[data-theme=dark] .live{border-color:#22344e;box-shadow:0 60px 110px -50px rgba(0,0,0,.95),0 0 90px -30px rgba(63,127,208,.35)}
.live-chrome{display:flex;gap:7px;padding-top:16px}
.live-chrome i{width:11px;height:11px;border-radius:50%;background:var(--line)}
.live-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:12px 2px 16px}
.live-head h2{margin:0;font-size:22px;font-weight:700;letter-spacing:-.015em}
.live-time{margin:0;color:var(--muted);font:500 14px/1.4 'IBM Plex Mono',monospace;text-align:right}
.live-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.tile{display:flex;flex-direction:column;min-width:0;min-height:136px;padding:14px 14px 10px;border-radius:15px;background:var(--raised);border:1px solid var(--line);color:var(--ink);text-decoration:none;transition:transform .22s var(--ease),border-color .22s,box-shadow .22s}
a.tile:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--gold) 55%,var(--line));box-shadow:var(--shadow)}
.tile-name{font-size:14.5px;font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile-price{margin-top:6px;font:600 21px/1.25 'IBM Plex Mono',monospace;letter-spacing:-.02em;white-space:nowrap}
.tile-chg{font:500 14.5px/1.4 'IBM Plex Mono',monospace;white-space:nowrap}
.tile-note{margin-top:8px;font-size:14.5px;color:var(--muted)}
.tile svg{width:100%;height:40px;margin-top:auto;overflow:visible}
.spark-area{fill:currentColor;opacity:.12}
.spark-line{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.spark-base{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 3;opacity:.55;vector-effect:non-scaling-stroke}
.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--muted)}
.skeleton{position:relative;overflow:hidden;background:var(--raised)}
.skeleton::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(127,148,175,.16),transparent);transform:translateX(-100%);animation:shimmer 1.5s infinite}
@keyframes shimmer{to{transform:translateX(100%)}}
.live-fed{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;margin-top:14px;padding:16px 18px;border-radius:15px;background:var(--raised);border:1px solid var(--line)}
.live-fed h3{margin:0;font-size:15.5px;font-weight:600;white-space:nowrap}
.live-fed p{margin:2px 0 0;color:var(--muted);font:500 14px/1.4 'IBM Plex Mono',monospace;white-space:nowrap}
.fed-bar{display:flex;gap:3px;height:42px;border-radius:11px;overflow:hidden}
.fed-seg{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:0 14px;color:#fff;font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden}
.fed-seg b{font:600 15.5px 'IBM Plex Mono',monospace}
.cut-bg{background:var(--cut)}.hold-bg{background:var(--hold)}.hike-bg{background:var(--hike)}
.fed-seg.thin span{display:none}
.text-link{display:inline-flex;align-items:center;gap:7px;color:var(--blue);font-weight:600;text-decoration:none;white-space:nowrap}
.text-link span{transition:transform .2s var(--ease)}
.text-link:hover span{transform:translateX(4px)}
.live-fed[hidden]{display:none}
.live-unavailable{grid-column:1/-1;margin:0;padding:22px;border-radius:15px;background:var(--raised);color:var(--muted);text-align:center}

/* Tools */
.tools{padding:128px 0 36px}
.section-head{max-width:740px;margin:0 auto 60px;text-align:center}
.section-head h2,.faq h2,.closing h2{margin:0;font-size:clamp(32px,3.8vw,48px);line-height:1.1;letter-spacing:-.03em;font-weight:700}
.section-head p{margin:18px 0 0;font-size:19px;color:var(--muted)}
.tool-row{display:grid;gap:28px}
.tool-row+.tool-row{margin-top:40px}
.tool-row-split{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}
.tool-group{display:flex;flex-direction:column}
.tool-group h3{margin:0 0 14px 2px;font-size:16px;font-weight:600;color:var(--muted)}
.tool-cards{flex:1;display:grid;gap:14px;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
.tool{position:relative;display:flex;flex-direction:column;gap:8px;height:100%;padding:22px 20px 24px;border-radius:17px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;box-shadow:0 1px 2px rgba(15,34,56,.04);transition:transform .25s var(--ease),box-shadow .25s,border-color .25s}
.tool:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}
.tool-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:8px;border-radius:13px;background:var(--tint);transition:background .25s}
.tool-icon::before{content:'';width:21px;height:21px;background:var(--blue);-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat;transition:background .25s}
.tool:hover .tool-icon{background:color-mix(in srgb,var(--gold) 16%,var(--tint))}
.tool:hover .tool-icon::before{background:var(--gold)}
.tool b{font-size:18px;font-weight:600;letter-spacing:-.01em}
.tool>span:not(.tool-icon){font-size:15.5px;line-height:1.55;color:var(--muted)}
.tool-lock{position:absolute;top:22px;right:20px;width:17px;height:17px;background:var(--gold);-webkit-mask:var(--lock) center/contain no-repeat;mask:var(--lock) center/contain no-repeat;opacity:.9}
.tool-lock[hidden]{display:none}

/* Feature stories */
.story{padding:72px 0 24px}
.feature{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:80px;align-items:center;padding:60px 0}
.feature.flip .feature-copy{order:2}
.feature h2{margin:0;font-size:clamp(28px,3vw,40px);line-height:1.12;letter-spacing:-.028em;font-weight:700}
.feature p{margin:18px 0 0;font-size:18px;line-height:1.65;color:var(--muted)}
.checks{display:grid;gap:13px;margin:26px 0 32px;padding:0;list-style:none}
.checks li{position:relative;padding-left:34px;font-size:17px;line-height:1.5}
.checks li::before{content:'';position:absolute;left:0;top:2px;width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,var(--gold) 20%,transparent)}
.checks li::after{content:'';position:absolute;left:7px;top:8px;width:9px;height:5px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.viz{padding:26px 26px 22px;border-radius:22px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.viz-dark{background:#0b1626;border-color:#1d2e46}
.viz-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;margin-bottom:20px}
.viz-head h3{margin:0;font-size:17px;font-weight:600}
.viz-legend{display:flex;gap:16px;margin:0;font-size:14.5px;color:var(--muted)}
.key{display:inline-flex;align-items:center;gap:7px}
.key::before{content:'';width:11px;height:11px;border-radius:3px;background:var(--hold)}
.key.cut::before{background:var(--cut)}.key.hike::before{background:var(--hike)}
.viz-svg{width:100%;height:auto;overflow:visible}
.vz-grid line{stroke:var(--line)}
.vz-label{fill:var(--muted);font:500 14.5px 'IBM Plex Sans','PingFang SC','Microsoft YaHei',sans-serif}
.stop-bear-a{stop-color:#8fa3ba;stop-opacity:.22}.stop-bear-b{stop-color:#8fa3ba}
.stop-base-a{stop-color:#3f7fd0;stop-opacity:.22}.stop-base-b{stop-color:#3f7fd0}
.stop-bull-a{stop-color:#e9b445;stop-opacity:.22}.stop-bull-b{stop-color:#e9b445}
.vz-cap{stroke:var(--surface);stroke-width:2.5}.vz-cap-bear{fill:#8fa3ba}.vz-cap-base{fill:#3f7fd0}.vz-cap-bull{fill:#e9b445}
.vz-price{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:5 6;opacity:.65}
.vz-tag{fill:var(--ink)}
.vz-tag-text{fill:var(--surface);font:600 14px 'IBM Plex Sans','PingFang SC','Microsoft YaHei',sans-serif}
.vz-band-hi{fill:color-mix(in srgb,var(--down) 11%,transparent)}.vz-band-lo{fill:color-mix(in srgb,var(--up) 11%,transparent)}
.vz-band-text{font:600 14px 'IBM Plex Sans','PingFang SC','Microsoft YaHei',sans-serif}.vz-hi{fill:var(--down)}.vz-lo{fill:var(--up)}
.stop-area-a{stop-color:var(--chart);stop-opacity:.24}.stop-area-b{stop-color:var(--chart);stop-opacity:0}
.vz-area{fill:url(#vz-area)}
.vz-line{fill:none;stroke:var(--chart);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.vz-dot{fill:var(--gold);stroke:var(--surface);stroke-width:2.5}
.vz-halo{fill:var(--gold);transform-box:fill-box;transform-origin:center;animation:halo 2.4s var(--ease) infinite}
@keyframes halo{from{transform:scale(.6);opacity:.5}to{transform:scale(1.9);opacity:0}}
.vz-heat.h1{fill:#2f9e7a}.vz-heat.h2{fill:#86c9ab}.vz-heat.h3{fill:#c7d1dd}.vz-heat.h4{fill:#eba892}.vz-heat.h5{fill:#d6605f}
:root[data-theme=dark] .vz-heat.h3{fill:#3a4a60}
.vz-gridd line{stroke:rgba(255,255,255,.06)}
.vz-up{fill:#3fbf95;stroke:#3fbf95}.vz-dn{fill:#e5646f;stroke:#e5646f}
line.vz-up,line.vz-dn{stroke-width:1.2}
.vz-vol{opacity:.32}
.vz-prof{fill:rgba(143,170,204,.24)}.vz-poc-bar{fill:rgba(240,192,90,.6)}
.vz-poc{stroke:#f0c05a;stroke-width:1.2;stroke-dasharray:4 5;opacity:.8}
.vz-ema{fill:none;stroke:#f0c05a;stroke-width:1.8}.vz-sma{fill:none;stroke:#7fb0ea;stroke-width:1.6;opacity:.85}
.vz-poc-tag{fill:#f0c05a}.vz-poc-text{fill:#0b1626;font:700 13px 'IBM Plex Mono',monospace}
.fed-ladder{display:grid;gap:12px}
.ladder-head,.ladder-row{display:grid;grid-template-columns:92px minmax(0,1fr) 104px;align-items:center;gap:14px}
.ladder-head span{white-space:nowrap}
.ladder-head{font-size:14px;color:var(--muted)}
.ladder-head span:last-child,.ladder-rate{text-align:right}
.ladder-row{min-height:34px}
.ladder-row.skeleton{display:block;height:34px;border-radius:9px}
.ladder-date{font-weight:600;font-size:15.5px;white-space:nowrap}
.ladder-bar{display:flex;gap:2px;height:32px;border-radius:9px;overflow:hidden}
.ladder-bar span{display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden;color:#fff;font:600 13.5px 'IBM Plex Mono',monospace;white-space:nowrap}
.ladder-rate{font:600 15.5px 'IBM Plex Mono',monospace}

/* FAQ */
.faq{padding:104px 0 112px}
.faq h2{text-align:center;margin-bottom:44px}
.faq-list{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 4px;font-size:19px;font-weight:600;list-style:none;cursor:pointer;transition:color .18s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--blue)}
.faq summary::after{content:'';flex:none;width:15px;height:15px;color:var(--muted);background:linear-gradient(currentColor,currentColor) center/15px 2px no-repeat,linear-gradient(currentColor,currentColor) center/2px 15px no-repeat;transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0;padding:0 40px 26px 4px;font-size:17px;line-height:1.7;color:var(--muted)}

/* Closing band and footer */
.closing{position:relative;padding:120px 0;text-align:center;color:#e6edf6;background:radial-gradient(760px 380px at 50% 0%,rgba(240,192,90,.17),transparent 66%),radial-gradient(700px 400px at 100% 100%,rgba(63,127,208,.2),transparent 62%),linear-gradient(180deg,#0b1a30,#060e1b)}
.hero-lead,.section-head p,.closing p{text-wrap:balance}
/* Chinese headings: no negative tracking (CJK glyphs would touch) and a little more leading. */
html:lang(zh) h1,html:lang(zh) h2{letter-spacing:0}
html:lang(zh) .hero h1{line-height:1.14}
.closing p{margin:18px auto 0;max-width:620px;font-size:19px;color:#b3c2d5}
.closing [hidden]{display:none}
.home-footer{padding:64px 0 36px;background:#060e1b;color:#a3b3c8;border-top:1px solid rgba(255,255,255,.06)}
.home-footer .home-brand{color:#e6edf6}
.foot-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);gap:48px}
.foot-brand p{margin:16px 0 0;font-size:16px;color:#8ea0b8}
.foot-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.foot-cols h2{margin:0 0 12px;font-size:15.5px;font-weight:600;color:#e6edf6}
.foot-cols a{display:block;width:fit-content;padding:5px 0;font-size:15.5px;color:#9fb0c6;text-decoration:none;transition:color .18s}
.foot-cols a:hover{color:#fff}
.foot-bottom{display:grid;gap:6px;margin-top:52px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);font-size:14.5px;color:#7d90a9}
.foot-bottom p{margin:0}
.foot-bottom .author-credit{color:#a3b3c8;font-weight:500}

/* Scroll reveal (only when JavaScript can observe; reduced motion turns every animation off). */
.reveal-ready [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-ready [data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready [data-reveal]{opacity:1;transform:none}}

@media (max-width:1180px){
 .home-nav{display:none}.home-brand{margin-right:auto}
 .live-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
 .tool-row-split{grid-template-columns:minmax(0,1fr)}
 .tool-cards.cards-5,.tool-cards.cards-6{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr))}
 .feature{gap:56px}
}
@media (max-width:900px){
 .tool-cards.cards-4{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}
 .feature{grid-template-columns:minmax(0,1fr);gap:36px;padding:44px 0}
 .feature.flip .feature-copy{order:0}
 .live-fed{grid-template-columns:minmax(0,1fr);gap:12px}
 .live-fed .text-link{justify-self:start}
 .foot-top{grid-template-columns:minmax(0,1fr);gap:36px}
}
@media (max-width:760px){
 .tool-cards,.tool-cards.cards-5,.tool-cards.cards-6{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
 body{font-size:16px}
 .wrap,.wrap.narrow{width:calc(100% - 32px)}
 .home-header{height:64px;padding:0 16px}
 .home-start{display:none}
 .hero{padding-top:118px}
 .hero h1{font-size:clamp(38px,11vw,48px)}
 .hero-lead{font-size:17.5px}
 .actions{flex-direction:column;align-items:stretch;margin-top:30px}
 .btn{width:100%}
 .live{margin-top:52px;padding:0 14px 16px;border-radius:18px}
 .live-head h2{font-size:19px}
 .live-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .tile{min-height:122px;padding:12px 12px 8px}
 .tile-price{font-size:18.5px}
 .live-fed{padding:14px}
 .fed-seg{padding:0 10px}
 .tools{padding-top:96px}
 .section-head{margin-bottom:40px}
 .section-head p,.closing p{font-size:17.5px}
 .feature p{font-size:17px}
 .viz{padding:20px 16px 16px;border-radius:18px}
 .vz-label,.vz-band-text,.vz-tag-text{font-size:19px}
 .ladder-head,.ladder-row{grid-template-columns:64px minmax(0,1fr) 62px;gap:10px}
 .ladder-head span:last-child{white-space:normal}
 .faq{padding:80px 0}
 .faq summary{font-size:17.5px;padding:20px 2px}
 .faq details p{padding-right:4px}
 .closing{padding:88px 0}
 .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
 .tool-cards,.tool-cards.cards-4,.tool-cards.cards-5,.tool-cards.cards-6{grid-template-columns:minmax(0,1fr)}
 /* Phones: each group is one grouped list (icon left, name and line right) instead of fifteen stacked cards. */
 .tool-cards{gap:0;border:1px solid var(--line);border-radius:17px;overflow:hidden;background:var(--surface);box-shadow:0 1px 2px rgba(15,34,56,.04)}
 .tool{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:14px;row-gap:3px;align-content:start;padding:15px 16px;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}
 .tool:last-child{border-bottom:0}
 .tool:hover{transform:none;box-shadow:none;border-color:var(--line)}
 .tool-icon{grid-row:1/3;width:40px;height:40px;margin:2px 0 0;border-radius:11px}
 .tool b{font-size:16.5px;padding-right:24px}
 .tool>span:not(.tool-icon){font-size:14.5px;line-height:1.45}
 .tool-lock{top:17px;right:16px;width:15px;height:15px}
 .page-home .language-switch [aria-pressed=true]{display:none}
}
@media (max-width:420px){
 .page-home .theme-toggle{display:none}
 .home-brand{font-size:16px;gap:9px}
}
.tool[data-icon=markets]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17l6-6 4 4 8-8'/%3E%3Cpath d='M15 7h6v6'/%3E%3C/svg%3E")}
.tool[data-icon=earnings]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2.5'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4M8 14h2M14 14h2M8 17.5h2'/%3E%3C/svg%3E")}
[data-icon=dashboard]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='8' height='8' rx='1.5'/%3E%3Crect x='13' y='3' width='8' height='5' rx='1.5'/%3E%3Crect x='13' y='10' width='8' height='11' rx='1.5'/%3E%3Crect x='3' y='13' width='8' height='8' rx='1.5'/%3E%3C/svg%3E")}
.tool[data-icon=macro]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='2 12 6 12 9 5 14 19 17 12 22 12'/%3E%3C/svg%3E")}
.tool[data-icon=dcf]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Cpath d='M8 7h8M8 12h2M14 12h2M8 16h2M14 16h2'/%3E%3C/svg%3E")}
.tool[data-icon=analyzer]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 20V11M12 20V4M19 20v-6M3 20h18'/%3E%3C/svg%3E")}
.tool[data-icon=eps]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3C/svg%3E")}
.tool[data-icon=insights]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4M12 3a6 6 0 0 0-3.6 10.8c.6.5 1.1 1.3 1.1 2.2h5c0-.9.5-1.7 1.1-2.2A6 6 0 0 0 12 3z'/%3E%3C/svg%3E")}
.tool[data-icon=picks]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z'/%3E%3Cpath d='M19 16l.8 2.2L22 19l-2.2.8L19 22l-.8-2.2L16 19l2.2-.8z'/%3E%3C/svg%3E")}
.tool[data-icon=growth]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20c4-1 7-4 9-8l3-7 3 3-7 3c-4 2-7 5-8 9z'/%3E%3Cpath d='M14 4h6v6'/%3E%3C/svg%3E")}
.tool[data-icon=sectors]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.07-2.14-.22-4.05 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.15.43-2.29 1-3a2.5 2.5 0 0 0 2.5 2.5z'/%3E%3C/svg%3E")}
.tool[data-icon=superinvestors]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6'/%3E%3Ccircle cx='17' cy='9' r='2.6'/%3E%3Cpath d='M16.5 14.2c2.6.4 4.5 2.7 4.5 5.8'/%3E%3C/svg%3E")}
.tool[data-icon=options]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20h18'/%3E%3Cpath d='M3 15h7l9-10'/%3E%3Cpath d='M15 5h4v4'/%3E%3C/svg%3E")}
.tool[data-icon=portfolio]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M3 13h18'/%3E%3C/svg%3E")}
.tool[data-icon=stock]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='10' cy='10' r='6'/%3E%3Cpath d='m15 15 6 6'/%3E%3C/svg%3E")}
.tool[data-icon=pro]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3v4M7 15v6M17 3v6M17 17v4'/%3E%3Crect x='4.5' y='7' width='5' height='8' rx='1'/%3E%3Crect x='14.5' y='9' width='5' height='8' rx='1'/%3E%3C/svg%3E")}
/* Phones: brand, language switch and Sign in share one 64px header row (the fixed header never wraps). */
@media(max-width:400px){.home-header{gap:6px;padding:0 12px}.home-header .auth-signin{padding:8px 9px}}
@media(max-width:359px){.home-brand span{display:none}}
