/* Global Opportunity Radar v2 — self-hosted, Apple-inspired editorial design */
:root{--ink:#161b28;--muted:#697387;--line:#e7eaf0;--blue:#2468f4;--navy:#111d3d;--soft:#f6f8fc;--radius:28px;--shadow:0 22px 72px rgba(32,51,95,.075);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:#fff;font-synthesis:none}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:82px}body{margin:0;min-width:320px;overflow-x:hidden;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #77a6ff;outline-offset:4px}::selection{background:#c9deff;color:#10224c}.container{max-width:1260px;padding-left:32px;padding-right:32px;margin:0 auto}.skip{position:absolute;z-index:100;top:-150px;background:#fff;padding:12px}.skip:focus{top:12px}.topbar{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.84);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid rgba(17,31,63,.075)}.nav{height:70px;display:flex;align-items:center;gap:45px}.brand{display:flex;gap:9px;align-items:center;font-size:19px;font-weight:800;letter-spacing:-1.15px;white-space:nowrap}.brand-light{font-weight:400}.brand small{font-size:10px;letter-spacing:0;color:#8f9ab0;margin-left:2px;font-weight:600}.brand-icon{height:25px;width:25px;border:3px solid #162851;border-radius:50%;display:grid;place-items:center;position:relative}.brand-icon::after{content:"";width:12px;height:12px;border:2px solid #4e9dff;border-radius:50%;transform:rotate(-22deg) scaleX(.65)}.brand-icon span{position:absolute;inset:6px 10px;background:#5269e6;border-radius:99px}.nav-links{display:flex;align-items:center;gap:32px;flex:1;justify-content:center}.nav-links a{color:#687489;font-size:12px;font-weight:600;white-space:nowrap;transition:color .2s}.nav-links a:hover{color:#115ff2}.nav-github{white-space:nowrap;padding:10px 17px;border-radius:100px;background:#161d30;color:#fff;font-size:12px;font-weight:650;transition:background .2s,transform .2s}.nav-github:hover{background:#275ed6;transform:translateY(-1px)}.nav-github span{padding-left:5px}

.hero{min-height:684px;display:grid;grid-template-columns:1.04fr .96fr;align-items:center;gap:20px;position:relative;padding-top:64px;padding-bottom:78px}.hero::before{content:"";position:absolute;pointer-events:none;z-index:-1;width:620px;height:620px;right:-80px;top:12px;background:radial-gradient(circle,rgba(206,226,255,.56),rgba(255,255,255,0) 66%)}.eyebrow,.section-index{color:#527de7;font-weight:750;letter-spacing:2.3px;font-size:10.5px}.eyebrow{display:flex;align-items:center;gap:10px}.live-dot{display:inline-block;vertical-align:middle;width:7px;height:7px;flex:0 0 7px;border-radius:100%;background:#46b18a;box-shadow:0 0 0 4px rgba(69,182,141,.105)}.eyebrow-divider{color:#b5bfd1}.hero-copy{position:relative;z-index:1}.hero h1{font-size:clamp(50px,5.6vw,77px);font-weight:780;letter-spacing:-4px;line-height:1.2;margin:27px 0 24px}.hero-gradient{background:linear-gradient(105deg,#2765e5 0%,#618efa 49%,#60c6cd 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-intro{font-size:16.5px;line-height:2.05;color:#67748b;letter-spacing:.1px;max-width:540px;margin:0}.hero-actions{display:flex;align-items:center;gap:11px;margin-top:35px}.btn{display:inline-flex;gap:27px;justify-content:center;align-items:center;padding:15px 25px;border-radius:100px;font-weight:690;font-size:13px;transition:all .22s;border:1px solid transparent}.btn-primary{background:#141d36;color:#fff;box-shadow:0 12px 26px rgba(26,50,95,.19)}.btn-primary:hover{background:#2864e9;transform:translateY(-2px)}.btn-outline{background:white;border-color:#dfe5ed;color:#3d4a61}.btn-outline:hover{border-color:#91b1f5;color:#2565df}.hero-proof{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:65px;font-size:11px;color:#8c96a7}.hero-proof strong{color:#27384f;font-size:13px;margin-right:2px}.hero-proof i{height:13px;width:1px;background:#d9e0e9}.hero-planet{height:560px;position:relative;display:flex;justify-content:center;align-items:center}.planet-illustration{width:min(92%,455px);aspect-ratio:1;border-radius:100%;position:relative;overflow:hidden;background:radial-gradient(circle at 32% 25%,#d6f3fc 0%,#78b8ee 29%,#3f75c7 56%,#1e3b7c 81%,#0b1e48 100%);box-shadow:inset -38px -30px 64px rgba(2,13,48,.40),inset 15px 11px 42px rgba(239,250,255,.32),0 42px 100px rgba(34,96,192,.20),0 0 0 1px rgba(60,105,183,.09);transform:rotate(-11deg)}.planet-illustration::before{content:"";position:absolute;inset:10%;opacity:.3;background:repeating-linear-gradient(5deg,transparent 0 31px,rgba(226,248,255,.17) 32px,transparent 34px);border-radius:50%;filter:blur(2px)}.planet-illustration::after{content:"";position:absolute;inset:0;border-radius:100%;background:radial-gradient(circle at 26% 27%,rgba(255,255,255,.56),transparent 42%),linear-gradient(130deg,transparent 52%,rgba(2,10,35,.27) 99%)}.planet-lights{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 52%,rgba(189,248,251,.17),transparent 35%),radial-gradient(ellipse at 39% 55%,rgba(183,226,249,.18),transparent 24%)}.orbit{position:absolute;width:100%;height:62%;border:1px solid #cdddf4;border-radius:50%;transform:rotate(-27deg);opacity:.7}.orbit-two{width:109%;height:65%;transform:rotate(27deg);opacity:.34}.planet-note{position:absolute;background:#fff;border:1px solid #e5ebf7;border-radius:15px;padding:11px 17px;color:#6c7790;font-size:11px;box-shadow:0 15px 45px #284e9916;letter-spacing:.25px}.planet-note b{display:inline-grid;place-items:center;color:#2e70e6;background:#ecf4ff;border-radius:8px;padding:7px;margin-right:8px}.note-one{top:95px;right:-4px}.note-two{bottom:110px;left:-10px}.hero-planet-caption{position:absolute;bottom:28px;right:14px;color:#afbdd2;letter-spacing:2.5px;font-size:9px;font-weight:700}.strip{background:#f7f9fc;border-top:1px solid #f0f3f8;border-bottom:1px solid #eef2f8}.strip-inner{min-height:69px;display:flex;align-items:center;justify-content:space-between;color:#7c8ba3;letter-spacing:.5px;font-size:12px}.strip-mid{font-size:10px;letter-spacing:2.2px;color:#b4c0d2}.strip a{color:#2967d4;font-weight:650}.strip a span{padding-left:8px}

.section{padding-top:110px;padding-bottom:110px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:39px}.section-heading h2{font-size:clamp(36px,4.2vw,54px);font-weight:760;line-height:1.25;letter-spacing:-2.2px;margin:18px 0 0}.section-heading>p{max-width:340px;font-size:13px;line-height:1.9;color:#8792a6;margin:0 0 7px}.muted-title{color:#75849c}.globe-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.85fr);gap:20px;align-items:stretch}.earth-card{background:radial-gradient(ellipse at 54% 44%,#204b98 0%,#10264f 54%,#081631 100%);border-radius:var(--radius);overflow:hidden;position:relative;min-width:0;box-shadow:0 25px 70px rgba(13,36,88,.17)}.earth-top{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:24px 27px 0;position:absolute;top:0;left:0;right:0;z-index:2;color:#bacbe5;font-size:11px}.tiny-mark{letter-spacing:1.7px;font-size:10px;font-weight:730}.tiny-mark .live-dot{background:#8ed9ed;box-shadow:0 0 0 4px rgba(142,217,237,.11)}.earth-stage{height:592px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;touch-action:pan-y}.earth-stage::after{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,18,46,.22),transparent 15%)}#earth{display:block;width:min(100%,630px);height:auto;aspect-ratio:1;cursor:grab;touch-action:none;max-height:100%}#earth:active{cursor:grabbing}.earth-side-label{position:absolute;top:100px;right:25px;writing-mode:vertical-rl;letter-spacing:2.6px;color:#85a0cc;font-size:9px;pointer-events:none}.earth-side-label span{color:#4185d8}.earth-tip{position:absolute;bottom:25px;left:26px;color:#9bafd1;font-size:11px;pointer-events:none}.earth-controls{padding:19px 22px;display:flex;justify-content:space-between;gap:12px;align-items:center;background:rgba(5,18,43,.45);border-top:1px solid rgba(240,247,255,.1)}.focus-buttons{display:flex;flex-wrap:wrap;gap:7px}.focus-buttons button{border:1px solid rgba(164,199,255,.25);background:rgba(222,240,255,.07);color:#bccde8;padding:8px 12px;font-size:11px;border-radius:99px;transition:all .18s}.focus-buttons button:hover,.focus-buttons button.active{background:#dcecff;border-color:transparent;color:#14396b}.reset-earth{background:none;border:0;white-space:nowrap;color:#b9cbea;font-size:11px}.reset-earth:hover{color:white}.place-card{border:1px solid #e5ebf4;border-radius:var(--radius);padding:28px 30px 25px;background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column}.place-top{display:flex;justify-content:space-between;align-items:center}.profile-status{font-size:10px;color:#4b7cd1;background:#eef4ff;padding:6px 10px;border-radius:100px}.select-row{margin-top:26px}.select-row label{font-size:11px;font-weight:700;color:#8b96a8;display:block;margin-bottom:8px}.select-row input{width:100%;border:1px solid #e5eaf2;background:#f7f9fc;border-radius:12px;padding:12px 15px;outline:none;color:#31405b;font-size:13px}.select-row input:focus{border-color:#78a4f5;background:#fff}.place-name{margin-top:27px}.place-name>span{font-size:10px;letter-spacing:2px;color:#7890b6;font-weight:750}.place-name h3{font-size:45px;letter-spacing:-2px;margin:9px 0 2px;line-height:1.15}.place-name p{color:#96a2b5;font-size:12px;margin:0}.big-measure{padding:25px 0 18px;border-bottom:1px solid #e8edf5}.big-measure>span,.measure span{font-size:11px;color:#7c899e}.big-measure>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:7px}.big-measure strong{font-size:42px;letter-spacing:-2.2px;font-weight:750;color:#2a67db}.big-measure small,.measure small{font-size:10px;color:#a5afbd}.measure-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:19px 0 23px}.measure{display:flex;flex-direction:column;gap:6px;min-width:0}.measure strong{font-size:21px;letter-spacing:-.7px}.measure small{min-height:13px}.research-question{padding:17px;border-radius:16px;background:linear-gradient(125deg,#f1f6ff,#f7fbff);border:1px solid #e5eeff}.research-overline{font-size:10px;font-weight:750;color:#4b77d0;letter-spacing:1px}.research-question p{font-size:12px;line-height:1.85;color:#4e6080;margin:8px 0 0}.place-footer{margin-top:auto;padding-top:20px;display:flex;gap:8px;justify-content:space-between;font-size:10px}.place-footer a{color:#2468e8;font-weight:700}.place-footer span{color:#a0adbd}.data-line{margin-top:17px;display:flex;gap:18px;justify-content:space-between;color:#939eaf;font-size:11px}.data-line a{color:#3670d9}

.section-soft{background:#f7f9fc}.region-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.region-card{display:flex;flex-direction:column;align-items:flex-start;min-height:360px;text-align:left;border:1px solid #e5eaf3;background:#fff;border-radius:24px;padding:23px 23px 24px;box-shadow:0 10px 30px rgba(25,44,88,.025);transition:transform .25s,box-shadow .25s,border-color .25s}.region-card:hover{transform:translateY(-6px);box-shadow:0 25px 54px #16468c18;border-color:#c9d9f4}.region-head{width:100%;display:flex;justify-content:space-between;gap:8px;color:#a0afc6;font-size:9px;letter-spacing:1.15px;font-weight:750}.region-head span:last-child{font-size:16px;color:#6c8cbd}.region-emblem{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;font-size:24px;margin:35px 0 21px;background:#ecf3ff;color:#2a6de0}.region-vn .region-emblem{background:#e9faf4;color:#31977a}.region-cn .region-emblem{background:#fff2e8;color:#c8803c}.region-hk .region-emblem{background:#f3edff;color:#8969ce}.region-card strong{font-size:28px;letter-spacing:-1px}.region-card em{font-size:12px;font-style:normal;font-weight:650;color:#4b699e;margin-top:9px}.region-body{font-size:12px;line-height:1.85;color:#8592a8;margin-top:16px}.region-link{margin-top:auto;color:#326ee0;font-size:11px;font-weight:750;padding-top:22px}

.comparison{border:1px solid #e5eaf2;border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}.comparison-top{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:26px 28px;border-bottom:1px solid #ebeff5}.comparison-top h3{font-size:19px;letter-spacing:-.4px;margin:0 0 6px}.comparison-top p{font-size:12px;color:#99a5b5;margin:0}.comparison-top>span{font-size:9px;letter-spacing:1.2px;color:#aab6c8;font-weight:700}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}th{background:#f8fafe;font-weight:700;font-size:11px;color:#8494ae}td{font-size:12px;color:#34405a}th,td{padding:20px 26px;border-bottom:1px solid #f0f3f7}th:first-child,td:first-child{font-weight:750}tbody tr{cursor:pointer}tbody tr:hover{background:#f8fbff}.empty-cell{text-align:center;color:#98a5b7;padding:48px}.comparison-bottom{display:flex;justify-content:space-between;gap:15px;padding:19px 26px;background:#fbfcff;color:#a0abba;font-size:10px}

.section-night{color:#f5f8ff;background:radial-gradient(ellipse at 90% 14%,#17305b 0%,#10192c 47%,#0b1220 100%)}.light-heading h2 span{color:#87b4ff}.light-heading>p{color:#8395b6}.section-night .section-index{color:#6b9eff}.signal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:52px 0 22px;background:#32415b;border:1px solid #32415b;border-radius:19px;overflow:hidden}.signal-stats>div{padding:27px 30px;background:#121e34;min-width:0}.signal-stats span{font-size:11px;color:#9faecc}.signal-stats strong{font-size:37px;display:block;letter-spacing:-1.2px;margin:12px 0 4px;color:#fff}.signal-stats small{font-size:10px;color:#6d83a8}.signal-board{display:grid;grid-template-columns:1fr 1fr;gap:18px}.signal-column{border:1px solid #2c3d5b;background:rgba(17,30,52,.82);border-radius:24px;padding:27px;min-width:0}.signal-column-head>span{font-size:10px;letter-spacing:1.5px;color:#8caddd;font-weight:750}.blue-dot,.purple-dot{display:inline-block;width:7px;height:7px;background:#67b7ff;border-radius:50%;margin-right:6px}.purple-dot{background:#b49aff}.signal-column-head h3{font-size:23px;letter-spacing:-.5px;margin:13px 0 8px}.signal-column-head p{font-size:12px;color:#8ca0c0;margin:0}.feed-items{min-height:260px;margin-top:17px}.feed-item{display:flex;justify-content:space-between;gap:15px;padding:18px 0;border-bottom:1px solid #2b3850;align-items:flex-start}.feed-item strong{display:block;font-size:13px;font-weight:650;color:#e0ebff;line-height:1.6;overflow-wrap:anywhere}.feed-item:hover strong{color:#80baff}.feed-item small{display:block;margin-top:8px;color:#8093b1;font-size:10px;line-height:1.6}.feed-item>span:last-child{color:#6e95c5}.feed-empty{color:#8fa1bb;font-size:12px;padding:35px 0;line-height:1.9}.signal-source{display:block;color:#8bb7ff;font-size:11px;font-weight:700;padding-top:21px}.signal-disclaimer{margin-top:26px;color:#7188a7;font-size:11px;line-height:1.8}

.method-section{padding-bottom:120px}.method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.method-grid article{border-top:1px solid #dfe6f1;padding:27px 12px 0 0;min-height:215px}.method-number{font-size:12px;font-weight:750;color:#3572e7}.method-grid h3{font-size:23px;letter-spacing:-.8px;margin:22px 0 12px}.method-grid p{max-width:320px;color:#8190a5;font-size:12px;line-height:1.9}.method-grid article>span:last-child{font-size:10px;color:#b4c0d0;letter-spacing:1.5px;display:block;margin-top:22px;font-weight:750}.closing{background:linear-gradient(135deg,#eef5ff,#f8fbff 50%,#e9f1ff);text-align:center;padding:105px 0 114px}.closing h2{margin:20px 0 18px;font-size:clamp(33px,4.5vw,55px);letter-spacing:-1.6px}.closing p{color:#8290a6;font-size:14px;line-height:1.9}.closing-inner>div{display:flex;align-items:center;justify-content:center;gap:11px;margin-top:32px}footer{border-top:1px solid #edf1f5}.footer-inner{display:flex;justify-content:space-between;gap:30px;padding-top:36px;padding-bottom:36px}.footer-brand{font-weight:800;font-size:17px;color:#1b2f56}.footer-inner p{font-size:11px;color:#96a2b2;line-height:1.8}.footer-right{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:20px;color:#8d9aad;font-size:11px}.footer-right a:hover{color:#346dde}

@media(max-width:1120px){.nav{gap:22px}.nav-links{gap:18px}.hero h1{font-size:59px}.globe-layout{grid-template-columns:minmax(0,1.3fr) minmax(320px,1fr)}.earth-stage{height:520px}.region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.region-card{min-height:290px}.region-emblem{margin-top:28px}}
@media(max-width:860px){.nav-links{display:none}.nav{justify-content:space-between}.hero{grid-template-columns:1fr;min-height:0;padding-top:76px;padding-bottom:35px;text-align:center}.eyebrow,.hero-actions,.hero-proof{justify-content:center}.hero-intro{margin:auto;max-width:590px}.hero-proof{margin-top:38px}.hero-planet{height:390px}.planet-illustration{width:320px}.orbit{width:390px}.orbit-two{width:430px}.note-one{right:15%;top:50px}.note-two{left:10%;bottom:60px}.hero-planet-caption{bottom:0;right:7%}.globe-layout{grid-template-columns:1fr}.earth-stage{height:575px}.section{padding-top:75px;padding-bottom:75px}.section-heading h2{font-size:43px}.signal-board{grid-template-columns:1fr}.signal-stats>div{padding:22px}.footer-inner{display:block}.footer-right{justify-content:flex-start;margin-top:20px}}
@media(max-width:570px){.container{padding-left:20px;padding-right:20px}.nav{height:61px}.brand{font-size:17px}.brand small{display:none}.nav-github{font-size:11px;padding:9px 12px}.hero{padding-top:65px}.eyebrow{font-size:9px;letter-spacing:1.5px}.hero h1{font-size:47px;letter-spacing:-2.5px;margin:23px 0 20px}.hero-intro{font-size:14px;line-height:1.9}.hero-actions{gap:8px;margin-top:28px}.btn{padding:13px 19px;font-size:12px;gap:12px}.hero-proof{gap:10px;margin-top:29px;font-size:10px}.hero-proof strong{font-size:11px}.hero-planet{height:340px;margin-top:8px}.planet-illustration{width:278px}.orbit{width:330px}.orbit-two{width:340px}.planet-note{font-size:9px;padding:8px 10px}.planet-note b{padding:5px;margin-right:4px}.note-one{right:0;top:60px}.note-two{left:0;bottom:58px}.strip-inner{min-height:58px;font-size:10px}.strip-mid{display:none}.section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:35px;letter-spacing:-1.5px}.section-heading>p{margin-top:17px;max-width:400px;font-size:12px}.section{padding-top:66px;padding-bottom:70px}.earth-card,.place-card{border-radius:20px}.earth-stage{height:412px}.earth-top{padding:18px 17px 0;font-size:9px}.earth-top .tiny-mark{font-size:8px}.earth-side-label{right:9px;top:78px;font-size:8px}.earth-tip{left:14px;bottom:16px;font-size:9px}.earth-controls{padding:15px}.focus-buttons button{font-size:10px;padding:7px 10px}.reset-earth{font-size:10px}.place-card{padding:24px 20px}.place-name h3{font-size:39px}.big-measure strong{font-size:37px}.measure strong{font-size:20px}.data-line{flex-wrap:wrap;line-height:1.6}.region-grid{grid-template-columns:1fr;gap:13px}.region-card{min-height:264px;padding:23px}.region-emblem{margin:20px 0 15px}.comparison-top{display:block;padding:20px}.comparison-top>span{display:block;margin-top:15px}.comparison-bottom{display:block;padding:18px 20px}.comparison-bottom span{display:block;margin:5px 0}.signal-stats{grid-template-columns:1fr;gap:1px;margin-top:30px}.signal-stats>div{padding:20px 24px}.signal-stats strong{font-size:30px;margin-top:5px}.signal-column{padding:21px}.method-grid{grid-template-columns:1fr;gap:18px}.method-grid article{min-height:0;padding:22px 0 18px}.method-grid h3{margin:13px 0}.method-grid article>span:last-child{margin-top:12px}.closing{padding:72px 0 82px}.closing-inner>div{flex-wrap:wrap}.footer-right{gap:14px}.footer-inner{padding-top:31px;padding-bottom:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* The hero also uses the real offline globe; no decorative blank sphere. */
.hero-planet #hero-earth{position:absolute;inset:0;width:100%;height:100%;z-index:1;cursor:grab;touch-action:none;max-width:100%}
.hero-planet #hero-earth:active{cursor:grabbing}
.hero-planet .orbit{pointer-events:none}
.hero-planet .planet-note,.hero-planet .hero-planet-caption{z-index:2;pointer-events:none}

/* Keep mobile viewport at device width; prevent off-screen hero glow and orbit from forcing horizontal scroll. */
@media(max-width:860px){.hero::before{right:0;width:100%}.hero-planet{overflow:hidden}}
