@font-face{font-family:Doto;src:url('./assets/doto.ttf') format('truetype');font-weight:900;font-display:swap}
@font-face{font-family:Space;src:url('/assets/projects/axiom/space-grotesk.woff2') format('woff2');font-weight:300 700;font-display:swap}
:root{color-scheme:light;--ink:#20211f;--muted:#73766e;--line:#dedfd9;--paper:#fff;--lime:#c9ff4a;--purple:#e9e2ff;--body:Space,'Arial','Microsoft YaHei',sans-serif;--dot:Doto,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #7856ee;outline-offset:5px}button{border-radius:0}h1,h2,p{margin:0}::selection{background:var(--lime)}.page{width:min(1260px,calc(100% - 96px));margin:auto}.skip{position:absolute;top:-60px;padding:10px;background:var(--lime);z-index:5}.skip:focus{top:10px}.topbar{height:99px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:700;white-space:nowrap}.brand-symbol{font-size:24px;letter-spacing:-3px;margin-right:3px}.slash{font-weight:400;color:#b5b8ae;margin:0 5px}.lab-label{font-size:11px;letter-spacing:1.4px;font-weight:500}.top-actions{display:flex;gap:27px;align-items:center;font-size:14px}.top-actions>a:hover{border-bottom:1px solid}.top-actions button{background:transparent;border:1px solid var(--line);padding:7px 11px;font-size:13px;font-weight:600}.intro{padding:64px 0 53px;display:flex;align-items:center;justify-content:space-between;gap:30px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:1.3px;line-height:1.5}.intro .eyebrow{display:flex;align-items:center;gap:11px;margin-bottom:19px}.mini-grid{font-size:28px;line-height:1}.intro h1{font:900 clamp(64px,7.5vw,108px)/.98 var(--dot);letter-spacing:-5px}.intro h1 br{display:none}.intro h1 span:not(.question){white-space:nowrap}.question{color:#7760b6}.intro-copy{font-size:20px;margin-top:22px;color:#65685f;letter-spacing:-.5px}.intro-stamp{border:1px solid var(--line);background:#fafbf7;padding:15px 23px 18px;display:flex;flex-direction:column;min-width:147px;position:relative;transform:rotate(7deg);text-align:center;margin-right:10px;box-shadow:5px 5px 0 #f2f3ed}.stamp-top{font-size:11px;letter-spacing:3px;font-weight:700}.intro-stamp strong{font:900 56px/1.15 var(--dot);margin:2px 0 5px}.intro-stamp strong>span{font-size:28px}.intro-stamp>span:not(.stamp-top):not(.stamp-spark){font-size:12px;line-height:1.5}.stamp-spark{position:absolute;right:-18px;top:-18px;font-size:47px;color:#b3de47;line-height:1}.monitor-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding:17px 0}.monitor-bar>p{display:flex;align-items:center;gap:9px;font-size:13px}.status-dot{width:7px;height:7px;border-radius:50%;background:#96998d;display:inline-block}.status-dot.connected{background:#63a10c;box-shadow:0 0 0 4px #eef5e3}.status-dot.partial{background:#c0832b}.monitor-tools{display:flex;align-items:center;gap:10px;font-size:12px}.monitor-tools label{color:var(--muted)}select{background:white;border:0;max-width:200px;font-size:13px;cursor:pointer;padding:5px}.refresh{width:30px;height:30px;border:1px solid var(--line);background:white;font-size:23px;line-height:1}.refresh:disabled{opacity:.5;cursor:wait}.refresh.busy{animation:rotate 1s infinite linear}.forecast-grid{display:grid;grid-template-columns:1.14fr 1fr;gap:18px}.odds-card{padding:27px 30px;position:relative;overflow:hidden}.today{background:var(--lime);min-height:447px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.chip{border:1px solid #20211f25;padding:4px 8px;font-size:12px;white-space:nowrap}.probability{display:flex;align-items:baseline;gap:9px;line-height:1}.probability strong{font:900 156px/1.25 var(--dot);letter-spacing:-10px}.probability>span{font:900 51px/1 var(--dot);letter-spacing:-3px}.today .probability{margin:10px 0 9px}.dot-meter{display:grid;grid-template-columns:repeat(25,1fr);gap:6px;max-width:465px;margin:0 0 28px}.dot-meter i{aspect-ratio:1;border-radius:50%;background:#22291a24;max-width:11px;transition:background .4s}.dot-meter i.on{background:#262d1c}.odds-bottom h2{font-size:25px;letter-spacing:-1px;font-weight:700;margin-bottom:6px}.odds-bottom p{font-size:14px;line-height:1.65;max-width:380px;color:#414c2d}.card-corner{position:absolute;bottom:20px;right:29px;font-size:38px}.right-stack{display:flex;flex-direction:column;gap:18px;min-width:0}.tomorrow{background:#f3f4ef;min-height:206px;flex:1}.tomorrow-body{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:12px}.tomorrow .probability strong{font-size:88px;letter-spacing:-5px}.tomorrow .probability>span{font-size:31px}.tomorrow-body>p{font-size:14px;color:#77796f;line-height:1.7;padding-right:10px}.button-card{background:var(--purple);min-height:224px;padding:24px 30px;display:flex;align-items:center;justify-content:space-between;gap:15px;position:relative}.button-copy{max-width:265px;position:relative;z-index:1}.button-copy .eyebrow{font-size:11px;letter-spacing:1px}.button-copy h2{font-size:24px;line-height:1.2;font-weight:700;letter-spacing:-.9px;margin:10px 0}.button-copy p{font-size:12px;line-height:1.55;color:#766593;max-width:218px;min-height:38px}#reset-button{width:114px;height:114px;flex:0 0 114px;background:#fff;border:2px solid #262326;border-radius:50%;box-shadow:0 7px 0 #262326;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;transition:transform .12s,box-shadow .12s;transform:rotate(-9deg);position:relative;z-index:2}#reset-button:hover{transform:rotate(3deg) translateY(-2px);box-shadow:0 9px 0 #262326}#reset-button:active,#reset-button.pressed{transform:rotate(0) translateY(6px);box-shadow:0 1px 0 #262326}.button-icon{font-size:43px;line-height:1}#reset-button>span:last-child{font-size:13px;font-weight:700;letter-spacing:1px}.press-counter{position:absolute;bottom:11px;right:26px;font-size:9px;letter-spacing:.6px;color:#74658b}.forecast-foot{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:16px 0 0;color:#777b70;font-size:12px}.forecast-foot p{display:flex;gap:6px;align-items:center}.asterisk{color:#363a31;font-size:18px}#checked-at{white-space:nowrap;font-size:11px}.source-warning{margin-top:16px;padding:14px 18px;background:#fff8e9;border:1px solid #edddb9;color:#815616;font-size:14px}.evidence-section{margin-top:62px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.section-head .eyebrow{font-size:11px;color:#7a7c74;letter-spacing:1px}.section-head h2{font-size:33px;letter-spacing:-1.4px;margin-top:8px}.section-head h2 span{color:#977ace}.filters{display:flex;border:1px solid var(--line);padding:3px;gap:3px}.filters button{border:0;background:transparent;padding:7px 14px;font-size:12px}.filters button[aria-pressed=true]{background:var(--ink);color:white}.evidence-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:32px;align-items:start}.signal{border-top:1px solid var(--line);padding:21px 0;display:grid;grid-template-columns:35px 1fr;gap:13px}.signal-icon{width:32px;height:32px;background:#f3f4ef;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:600;border-radius:50%;margin-top:2px}.signal.promise .signal-icon{background:#e7f7c7}.signal.negative .signal-icon{background:#ffe4df}.signal.incident .signal-icon{background:#ffedd9}.signal-head{display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:12px;margin-bottom:9px}.signal-author{font-weight:700;font-size:14px}.signal-head time{color:#777b70;font-size:11px;text-align:right}.signal-text{font-size:15px;line-height:1.75;overflow-wrap:anywhere;color:#494d43}.signal-bottom{margin-top:13px;display:flex;align-items:center;justify-content:space-between;gap:10px}.signal-tag{font-size:11px;color:#666c5e;background:#f1f3ed;padding:4px 8px}.signal.promise .signal-tag{color:#4a6922;background:#eef8dd}.signal-weight{font-family:var(--body);font-weight:700;margin-left:5px;color:#4d6927}.signal-bottom a{font-size:12px;border-bottom:1px solid #cacdc1}.signal-bottom a:hover{color:#695594}.reading-room{border:1px solid var(--line);padding:25px 25px 0;background:white}.room-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:21px}.room-top>span:last-child{font-size:33px;line-height:1}.source-person{display:flex;align-items:center;gap:12px;margin-bottom:23px}.source-person .avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;width:43px;height:43px;background:#efede6;font:900 27px var(--dot)}.source-person strong{display:block;font-size:17px}.source-person small{display:block;font-size:12px;color:var(--muted)}.source-person>span:last-child{margin-left:auto;font-size:21px}.source-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:#71756a}.source-row>span:last-child{font-size:11px;color:#5a772b}.source-status{display:flex;justify-content:space-between;align-items:center;font-size:15px;font-weight:600;border-top:1px solid var(--line);padding-top:18px;margin-top:19px;margin-bottom:8px}.source-description{font-size:12px;line-height:1.75;color:#777b70;border-top:1px solid var(--line);margin-top:19px;padding-top:17px}.radar-note{font-size:16px;line-height:1.6;margin:26px 0 24px;letter-spacing:-.3px}.room-footer{display:flex;justify-content:space-between;font:600 11px var(--body);letter-spacing:.5px;background:#f5f6f1;margin:0 -25px;padding:13px 25px}.blinking{animation:blink 2.5s infinite}.empty{border-top:1px solid var(--line);padding:32px 0;color:var(--muted);font-size:15px}.show-more{border:1px solid var(--line);background:white;width:100%;padding:12px;font-size:14px}.method-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:48px}.method-section summary{padding:25px 0;display:flex;align-items:center;justify-content:space-between;gap:22px;cursor:pointer;list-style:none}.method-section summary::-webkit-details-marker{display:none}.method-section summary .eyebrow{display:block;font-size:10px;color:#8b8e82;margin-bottom:5px}.method-section summary strong{font-size:20px;font-weight:600;letter-spacing:-.5px}.expand-icon{font-size:30px}.method-section details[open] .expand-icon{transform:rotate(45deg)}.method-body{padding:0 0 30px;max-width:900px}.method-body p{font-size:15px;color:#686d61;line-height:1.85;margin:0 0 20px}.method-body code{display:block;background:#f4f6ee;padding:18px;margin-bottom:20px;font-size:14px;overflow-wrap:anywhere}.method-body a{font-size:14px;border-bottom:1px solid}.method-weights{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:25px 0}.method-weights>div{background:#f5f6f1;padding:17px 14px}.method-weights b{display:block;font:900 30px var(--dot);margin-bottom:5px}.method-weights span{display:block;font-size:12px}footer{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:12px;padding:28px 0 37px;color:#7b8071}footer strong{color:#262b1e}footer>a:last-child{color:#3c4331}#particles{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:10}.particle{position:absolute;width:8px;height:8px;border-radius:1px;animation:pop .8s ease-out forwards}.source-row .bad{color:#a9732e}body[lang=zh] h2{letter-spacing:0}body[lang=zh] .button-copy h2{font-size:23px;line-height:1.5}body[lang=zh] .intro-copy{letter-spacing:1px}body[lang=zh] .odds-bottom h2{font-size:24px}@keyframes pop{to{transform:translate(var(--x),var(--y)) rotate(220deg);opacity:0}}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes blink{0%,75%,100%{opacity:1}85%{opacity:.35}}
@media(min-width:1350px){.intro h1{font-size:104px}}
@media(max-width:1150px){.page{width:calc(100% - 64px)}.intro h1{font-size:82px}.intro h1 br{display:block}.intro{padding:43px 0}.lab-label{font-size:10px;letter-spacing:.8px}.forecast-grid{grid-template-columns:1.05fr 1fr}.odds-card{padding:25px}.probability strong{font-size:136px}.button-card{padding:22px}.button-copy h2{font-size:21px}#reset-button{width:96px;height:96px;flex-basis:96px}.dot-meter{gap:5px}.evidence-grid{gap:25px;grid-template-columns:1.5fr 1fr}.tomorrow-body{gap:10px}.tomorrow-body>p{font-size:12px}.tomorrow .probability strong{font-size:78px}.odds-bottom p{padding-right:25px}}
@media(max-width:820px){.page{width:calc(100% - 44px)}.topbar{height:78px}.lab-label,.slash{display:none}.intro h1{font-size:74px}.intro-stamp{min-width:127px;padding:13px 18px}.intro-stamp strong{font-size:48px}.intro-copy{font-size:17px}.forecast-grid{grid-template-columns:1fr}.right-stack{display:grid;grid-template-columns:1fr 1.15fr;gap:15px}.today{min-height:auto;padding:25px 28px}.today .probability strong{font-size:152px}.dot-meter{max-width:100%;margin-bottom:24px;grid-template-columns:repeat(50,1fr);gap:5px}.today .probability{margin:6px 0}.odds-bottom{margin-bottom:5px}.tomorrow{min-height:240px;padding:22px}.tomorrow .card-heading{align-items:flex-start;flex-direction:column;gap:8px}.tomorrow-body{margin-top:13px;display:block}.tomorrow .probability strong{font-size:80px}.tomorrow-body p{margin-top:12px}.tomorrow-body p br{display:none}.button-card{padding:22px 17px;align-items:flex-start;flex-direction:column}.button-copy{max-width:none}.button-copy h2{font-size:20px}.button-copy h2 br{display:none}.button-copy p{max-width:155px;margin-bottom:50px}#reset-button{position:absolute;right:17px;bottom:29px;width:80px;height:80px;flex-basis:80px}.button-icon{font-size:31px}.press-counter{right:auto;left:17px;font-size:8px}.evidence-grid{grid-template-columns:1.45fr 1fr;gap:23px}.reading-room{padding:20px 18px 0}.room-footer{margin:0 -18px;padding:13px 18px}.forecast-foot{align-items:flex-start}.monitor-tools label{display:none}.section-head h2{font-size:28px}.section-head .eyebrow{font-size:10px}.source-row{flex-wrap:wrap}.signal-head{align-items:flex-start}.signal-head time{max-width:105px}.radar-note{font-size:14px}.method-weights{grid-template-columns:repeat(2,1fr)}}
@media(max-width:580px){.page{width:calc(100% - 36px)}.topbar{height:74px}.brand{font-size:17px;gap:8px}.brand-symbol{font-size:22px}.top-actions{gap:15px;font-size:12px}.top-actions button{font-size:12px}.intro{padding:35px 0 31px;gap:12px}.intro .eyebrow{font-size:9px;letter-spacing:.6px;gap:7px;margin-bottom:15px}.mini-grid{font-size:22px}.intro h1{font-size:clamp(48px,12.4vw,71px);letter-spacing:-3px;line-height:1}.intro-copy{font-size:14px;margin-top:17px;max-width:215px;line-height:1.7;letter-spacing:0}.intro-stamp{min-width:90px;width:90px;padding:11px 8px;margin:20px 3px 0 0;transform:rotate(6deg)}.stamp-top{font-size:9px;letter-spacing:2px}.intro-stamp strong{font-size:42px}.intro-stamp strong>span{font-size:21px}.intro-stamp>span:not(.stamp-top):not(.stamp-spark){font-size:9px}.stamp-spark{font-size:30px;right:-10px;top:-11px}.monitor-bar{flex-wrap:wrap;gap:8px;padding:13px 0}.monitor-bar>p{font-size:11px;gap:7px;flex:1;min-width:150px}.monitor-tools{gap:4px}.monitor-tools select{font-size:10px;max-width:134px;padding:4px 0}.refresh{width:27px;height:27px;font-size:20px}.forecast-grid{gap:13px}.today{padding:21px 22px 23px}.card-heading .eyebrow{font-size:10px;letter-spacing:.8px}.chip{font-size:10px;padding:3px 6px}.today .probability strong{font-size:132px;letter-spacing:-8px}.today .probability>span{font-size:42px}.dot-meter{grid-template-columns:repeat(25,1fr);gap:5px;margin:0 0 22px}.dot-meter i{max-width:9px}.odds-bottom h2{font-size:22px;letter-spacing:-.5px}.odds-bottom p{font-size:13px;max-width:290px;line-height:1.65;padding-right:25px}.card-corner{font-size:29px;right:20px;bottom:18px}.right-stack{gap:13px;grid-template-columns:.86fr 1.14fr}.tomorrow{padding:17px 15px;min-height:236px}.tomorrow .eyebrow{font-size:10px}.tomorrow-body{margin-top:13px}.tomorrow .probability{gap:5px}.tomorrow .probability strong{font-size:60px;letter-spacing:-4px}.tomorrow .probability>span{font-size:21px;letter-spacing:-1px}.tomorrow-body p{font-size:12px;line-height:1.6;margin-top:13px}.button-card{padding:16px 15px;min-height:236px}.button-copy .eyebrow{font-size:8px;letter-spacing:.6px}.button-copy h2{font-size:18px;line-height:1.3;margin:8px 0}.button-copy p{font-size:10px;max-width:140px}.button-copy{max-width:160px}#reset-button{width:65px;height:65px;right:15px;bottom:29px;border-width:1.5px;box-shadow:0 5px 0 #262326}.button-icon{font-size:27px}#reset-button>span:last-child{font-size:10px}.press-counter{font-size:7px;left:15px;bottom:11px}.forecast-foot{display:block;margin-top:12px;font-size:10px;line-height:1.6}.forecast-foot p{align-items:flex-start;gap:7px}#checked-at{display:block;padding-left:23px;font-size:10px;margin-top:4px}.asterisk{line-height:1}.evidence-section{margin-top:39px}.section-head{display:block;margin-bottom:16px}.section-head h2{font-size:28px;margin-top:7px}.section-head .eyebrow{font-size:9px}.filters{display:inline-flex;margin-top:15px}.filters button{font-size:11px;padding:6px 12px}.evidence-grid{grid-template-columns:1fr;gap:25px}.signal{padding:18px 0;gap:11px;grid-template-columns:30px 1fr}.signal-icon{width:28px;height:28px;font-size:14px}.signal-head{gap:10px;margin-bottom:8px}.signal-author{font-size:13px}.signal-head time{font-size:10px;max-width:none}.signal-text{font-size:14px;line-height:1.75}.signal-tag,.signal-bottom a{font-size:10px}.signal-bottom{margin-top:11px}.reading-room{padding:22px 22px 0}.room-footer{margin:0 -22px;padding:13px 22px}.room-top{padding-bottom:17px}.source-row{font-size:13px}.source-description{font-size:13px}.radar-note{font-size:16px;margin:20px 0}.method-section{margin-top:32px}.method-section summary{padding:23px 0}.method-section summary strong{font-size:17px;line-height:1.6;display:block}.method-section summary .eyebrow{font-size:9px}.method-body p{font-size:14px}.method-body code{font-size:12px}.method-weights{gap:10px}.method-weights b{font-size:28px}.method-weights span{font-size:11px}footer{font-size:11px;flex-wrap:wrap;gap:14px;padding:25px 0 30px}footer>span{order:3;width:100%;font-size:10px}body[lang=zh] .button-copy h2{font-size:17px}body[lang=zh] .button-copy p{font-size:11px}body[lang=zh] .odds-bottom h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.particle{display:none}}

@keyframes arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){.intro{animation:arrive .5s ease-out both}.forecast-grid{animation:arrive .65s .08s ease-out both}.evidence-section{animation:arrive .65s .16s ease-out both}}
.signal.banked .signal-icon,.signal.banked .signal-tag{background:#e9e2ff;color:#5b438a}
.signal.fresh{background:#f7ffe8;box-shadow:0 0 0 10px #f7ffe8}.signal.fresh .signal-author::after{content:'NEW';display:inline-block;margin-left:9px;padding:2px 5px;background:#c9ff4a;color:#283414;font-size:9px;letter-spacing:.7px;vertical-align:middle}
.archive-entry{display:flex;align-items:center;gap:23px;margin:46px 0 0;padding:20px 24px;border:1px solid var(--line);background:#f8f9f5;transition:transform .2s,box-shadow .2s}.archive-entry:hover{transform:translateY(-3px);box-shadow:5px 5px 0 #e9e2ff}.archive-entry-art{width:88px;height:88px;flex:0 0 88px;display:grid;place-items:center;position:relative;border-radius:50%;border:2px solid var(--ink);background:var(--purple);font:900 60px/1 var(--dot);transform:rotate(-12deg)}.archive-entry-art i{position:absolute;bottom:10px;font:900 15px/1 var(--dot);font-style:normal;letter-spacing:2px}.archive-entry-copy{display:flex;flex-direction:column;align-items:flex-start}.archive-entry-copy .eyebrow{font-size:10px;letter-spacing:1px;color:#777b70}.archive-entry-copy strong{font-size:25px;line-height:1.2;letter-spacing:-.7px;margin:5px 0}.archive-entry-copy small{font-size:13px;color:#777b70;line-height:1.5}.archive-entry-arrow{font-size:35px;line-height:1;margin-left:auto;align-self:flex-start}
@media(max-width:580px){.archive-entry{gap:12px;padding:15px;margin-top:30px}.archive-entry-art{width:56px;height:56px;flex-basis:56px;font-size:38px}.archive-entry-art i{font-size:10px;bottom:7px}.archive-entry-copy .eyebrow{font-size:8px;letter-spacing:.6px}.archive-entry-copy strong{font-size:17px;margin:3px 0}.archive-entry-copy small{font-size:10px}.archive-entry-arrow{font-size:21px}}
