*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#102d43;display:grid;place-items:center;font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#102d43}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;color:inherit}button:focus-visible,input:focus-visible{outline:7px solid #ffcd2c;outline-offset:4px}button:disabled{cursor:default;filter:grayscale(1);opacity:.6}#game{position:relative;overflow:hidden;isolation:isolate;--scale:1;background:#fff9e6;box-shadow:0 0 70px #071a2f}#world,#screen,#overlay{position:absolute;left:0;top:0;width:1080px;height:1920px;transform:scale(var(--scale));transform-origin:0 0}#world{z-index:0}#screen{z-index:2;pointer-events:none}#screen>*{pointer-events:auto}#overlay{z-index:5;pointer-events:none}#overlay>*{pointer-events:auto}.street{position:absolute;width:1080px;height:1920px;object-fit:cover;left:0;top:0}.distant-glint{position:absolute;width:390px;height:320px;top:300px;left:290px;background:linear-gradient(110deg,transparent,#fff4b71a,transparent);animation:glint 8s ease-in-out infinite;pointer-events:none}.paper{border:25px solid transparent;border-image-source:url('../assets/card.png');border-image-slice:45 fill;border-image-width:25px;border-image-repeat:stretch;background:none}.btn{border:0;display:flex;justify-content:center;align-items:center;position:relative;background:transparent url('../assets/button-yellow.png') center/100% 100% no-repeat;min-height:117px;padding:20px 44px;font-weight:900;font-size:58px;line-height:1.1;text-align:center;transition:filter .12s,transform .12s;flex:1;text-shadow:0 2px #ffffff30}.btn.coral{background-image:url('../assets/button-coral.png');color:#fff;text-shadow:0 3px #91442e}.btn.teal{background-image:url('../assets/button-teal.png');color:#fff;text-shadow:0 3px #1c6f76}.btn.cream{background-image:url('../assets/button-cream.png')}.btn:active:not(:disabled){transform:scale(.965);filter:brightness(.79) saturate(1.2)}.text-button{background:none;border:0;font-weight:bold;font-size:36px;padding:10px;color:#16364d;white-space:nowrap}.text-button:active{color:#098c86;transform:scale(.96)}.gear{padding:0;border:0;background:transparent;width:83px;height:83px}.gear img{width:100%;height:100%;object-fit:contain}.gear:active{transform:rotate(25deg) scale(.85)}.positive{color:#eb5b46}.negative{color:#08a99e}.actor{position:absolute;bottom:650px;pointer-events:none;filter:drop-shadow(0 7px 2px #1b222544)}.actor img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.hero{left:235px;width:270px;height:390px;bottom:680px;animation:hero-path 13s linear infinite}.hero .pose{position:absolute;inset:0}.hero .idle{display:none}.hero .worried{display:none}.hero .run-a{animation:frame-a .36s steps(1) infinite}.hero .run-b{animation:frame-b .36s steps(1) infinite}.clerk{left:180px;width:250px;height:300px;bottom:850px;animation:clerk-path 11s linear infinite}.clerk .pose{position:absolute;inset:0}.clerk .run-a{animation:frame-a .27s steps(1) infinite}.clerk .run-b{animation:frame-b .27s steps(1) infinite}.elder{right:20px;width:355px;height:375px;bottom:643px;animation:breathe 4s ease-in-out infinite}.cat{right:230px;width:120px;height:105px;bottom:640px;animation:breathe 3.2s ease-in-out infinite}.world-bubble{position:absolute;right:30px;bottom:1025px;max-width:360px;background:white;border:4px solid #16364d;border-radius:50%;padding:24px;font-weight:bold;font-size:30px;transform:rotate(-3deg);animation:bubble 7s ease-in-out infinite}.paper-float{position:absolute;color:#72869b;background:#fff9eb;font-size:28px;width:45px;height:60px;text-align:center;left:430px;top:1040px;animation:paper 5s linear infinite;box-shadow:0 3px 3px #102d4326}.paper-float.two{animation-delay:-2.5s;left:470px}.downturn .hero{animation:none;left:300px}.downturn .hero .run-a,.downturn .hero .run-b{display:none}.downturn .hero .worried{display:block}.downturn .world-bubble{color:#29464f}.quiet .actor,.quiet .world-bubble{display:none}.paused #world *,.reduced #world *{animation-play-state:paused!important}.reduced .hero .run-a,.reduced .hero .run-b{display:none}.reduced .hero .idle{display:block}.reduced .clerk{opacity:.85}.reduced .paper-float{display:none}.settling .world-bubble{animation:none;transform:scale(1.1)}.hud{position:absolute;left:22px;right:22px;top:24px;height:166px;display:flex;align-items:center;gap:25px;padding:0 3px;border-image-source:url('../assets/header.png');border-image-slice:45 fill;border-width:30px}.avatar{height:140px;width:115px;overflow:hidden;align-self:center}.avatar img{height:240px;width:125px;object-fit:cover;object-position:top;transform:translateY(8px)}.day{width:170px}.day strong{font-size:36px;white-space:nowrap}.dayrail{height:19px;border:3px solid #7f8b9b;background:#c6cbd0;border-radius:20px;margin-top:15px;overflow:hidden}.dayrail i{display:block;height:100%;background:#ffe13c;border-radius:10px;transition:width .5s}.metric{display:flex;flex-direction:column;border-left:2px solid #c9c2a8;padding-left:25px;min-width:220px}.metric small{font-size:30px}.metric b{font-size:43px;white-space:nowrap;letter-spacing:-1px}.hud .gear{width:65px;height:65px;flex-shrink:0}.dock{position:absolute;bottom:20px;left:20px;right:20px;padding:6px 8px 8px;display:flex;flex-direction:column;gap:10px;border-width:25px}.news-row{border:0;background:transparent;display:flex;align-items:center;gap:22px;text-align:left;width:100%;height:85px;font-size:38px;padding:0 15px}.news-row strong{font-size:37px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.news-row>span{font-size:63px}.news-row>b{font-size:58px}.company-tabs{display:flex;gap:15px;height:135px}.company-tab{border:0;background:transparent url('../assets/tab.png') center/100% 100% no-repeat;flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:16px;font-weight:900;font-size:46px;padding:15px}.company-tab.active{background-image:url('../assets/tab-active.png')}.company-tab>span{display:flex;flex-direction:column;white-space:nowrap}.company-tab small{font-size:20px;font-weight:normal;margin-top:2px}.company-icon{height:78px;width:78px;object-fit:contain;flex-shrink:0}.selected-stock{padding:1px 3px 0;border-width:16px}.stock-top{display:flex;gap:18px;align-items:center;height:75px}.stock-top .company-icon{width:55px;height:65px}.stock-top strong{font-size:37px;margin-right:auto}.stock-top b{font-size:43px;letter-spacing:-1px}.stock-top>span{font-weight:bold;font-size:32px;white-space:nowrap}.stock-bottom{display:flex;justify-content:space-between;align-items:center;border-top:2px solid #d7d0b9;font-size:30px;height:60px}.stock-bottom .text-button{font-size:30px}.trade-buttons{display:flex;gap:15px}.dock .btn{height:110px;min-height:110px;font-size:61px;padding:16px 30px;flex:none}.trade-buttons .btn{flex:1}.quote-bubble{position:absolute;left:30px;top:240px;background:#fffbefec;border:4px solid #19334b;border-radius:26px;padding:18px 28px;font-size:27px;box-shadow:0 6px #19334b44;animation:enter .5s ease both}.guide{position:absolute;left:95px;right:95px;bottom:680px;font-size:29px;padding:5px 10px;animation:enter .35s both}.guide h3{font-size:38px;margin:0 0 9px}.guide p{margin:8px 0;line-height:1.45}.guide>div{display:flex;justify-content:space-between;align-items:center}.guide small{color:#6d7d89}.home-logo{position:absolute;left:45px;right:45px;top:55px;height:470px;animation:enter .7s cubic-bezier(.2,1.5,.4,1) both}.home-logo img,.loading-title img{width:100%;height:100%;object-fit:contain}.subtitle{position:absolute;top:485px;left:175px;right:175px;text-align:center;font-size:38px;font-weight:bold;padding:5px}.home-gear{position:absolute;right:35px;top:30px}.home-buttons{position:absolute;bottom:65px;left:65px;right:65px;display:flex;flex-direction:column;gap:24px;text-align:center}.home-buttons .btn{min-height:150px;font-size:70px}.home-buttons p{font-size:30px;letter-spacing:8px;margin:10px 0 0;background:#fff8e9dc;padding:12px;border-radius:20px}.fiction{font-size:22px;color:#18384a;background:#fff9e8b0;align-self:center;padding:5px 16px;border-radius:10px}.loading-title{position:absolute;top:200px;left:50px;right:50px;height:500px}.loadbox{position:absolute;left:65px;right:65px;bottom:155px;text-align:center;padding:35px;font-size:35px}.loadbox h2{font-size:45px}.loadrail{height:40px;background:#c5ccd2;border:4px solid #17364d;border-radius:30px;overflow:hidden}.loadrail i{display:block;background:#ffe13c;height:100%;width:0;transition:width .2s}.comic-page{position:absolute;inset:0;background:#fff9e8;padding:28px 28px 25px;display:flex;flex-direction:column;gap:10px}.comic-page h1{font-size:80px;text-align:center;margin:0;color:#143146;text-shadow:3px 4px #ffce2a}.comic-page>p{text-align:center;font-size:28px;letter-spacing:5px;margin:0 0 5px}.comic-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;flex:1;min-height:0}.comic-cell{overflow:hidden;opacity:.06;filter:grayscale(1);border-radius:15px}.comic-cell.seen{opacity:1;filter:none;animation:enter .45s both}.comic-cell img{width:100%;height:100%;object-fit:fill}.comic-page>.btn{max-height:135px;min-height:135px;flex:none}.comic-page>.text-button{font-size:30px}.closing-title{position:absolute;top:35px;left:50px;right:50px;text-align:center;padding:8px 15px}.closing-title h1{font-size:80px;letter-spacing:8px;margin:0}.closing-title p{font-size:33px;margin:0 0 4px}.closing-headline{position:absolute;top:260px;left:60px;right:60px;font-size:65px;text-align:center;font-weight:900;line-height:1.3;color:#ffcc30;-webkit-text-stroke:2px #18334b;text-shadow:0 6px #17364b;animation:enter .45s both}.closing-vignette{position:absolute;top:420px;left:0;width:1080px;height:560px;overflow:hidden}.closing-vignette img{width:100%;height:100%;object-fit:cover}.results-sheet{position:absolute;left:20px;right:20px;bottom:20px;top:1000px;padding:5px 10px;display:flex;flex-direction:column;gap:18px}.result-stats{display:flex;gap:20px;text-align:center}.result-stats>div{flex:1;display:flex;flex-direction:column;padding:12px}.result-stats small{font-size:33px;font-weight:bold}.result-stats b{font-size:72px;font-weight:900;letter-spacing:-2px}.chart-link{background:none;text-align:left;padding:4px 12px;border-width:18px;position:relative;flex:none;width:100%;height:255px}.chart-link span{font-size:30px;font-weight:bold}.chart-link strong{float:right;font-size:29px}.chart-link canvas{display:block;width:100%;height:155px}.knowledge{border-top:2px solid #ddd3b7;padding:12px 20px;font-size:32px;line-height:1.5}.knowledge strong{font-size:30px;color:#886a15}.knowledge p{margin:5px 0}.results-sheet .btn{flex:1;min-height:102px;font-size:56px}.progress-days{display:flex;justify-content:space-between;padding:0 20px}.progress-days i{font-style:normal;width:50px;height:50px;border:3px solid #9dabb4;border-radius:50%;font-size:24px;text-align:center;line-height:44px;background:#cdd3d5}.progress-days i.passed{background:#ffe04a;border-color:#243d4e}.day-explain h3{margin:0;font-size:38px}.day-explain p{font-size:34px;line-height:1.5;margin:12px 0}.veil{position:absolute;inset:0;background:#061e37a8;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px)}.modalbox{width:940px;max-height:1770px;display:flex;flex-direction:column;padding:8px 18px 15px;animation:modal-in .3s cubic-bezier(.2,1.2,.3,1)}.modal-header{display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid #d9cda5;padding-bottom:15px;flex-shrink:0}.modal-header h2{font-size:52px;margin:0;line-height:1.3}.close-btn{border:0;border-radius:50%;background:transparent url('../assets/button-cream.png') center/100% 100% no-repeat;width:65px;height:65px;font-size:60px;line-height:50px;color:#38536b;flex-shrink:0}.close-btn:active{filter:brightness(.78)}.modal-content{overflow-y:auto;overscroll-behavior:contain;min-height:0;font-size:34px;line-height:1.5;padding:10px 10px;scrollbar-width:thin;scrollbar-color:#d3b64e transparent}.modal-content h3{font-size:39px;text-align:center;margin:22px 0}.modalbox>footer{display:flex;gap:18px;flex-shrink:0;padding-top:14px}.modalbox>footer .btn{font-size:44px;min-height:120px}.trade-modal .modal-content>.company-icon{display:block;margin:15px auto;width:110px;height:110px}.price-line{display:flex;justify-content:space-between;font-size:39px;padding:8px 0}.price-line b{color:#ee6249}.amount-choices{display:flex;gap:20px}.choice{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:12px;border-width:17px;background:none;font-size:42px}.choice b{font-size:52px}.choice.chosen{background:#ffdf4b;border-radius:20px;outline:5px solid #d7ad19}.choice:active{filter:brightness(.85)}.receipt{font-size:37px;margin-top:24px;padding:5px 14px;border-width:17px}.receipt p{display:flex;justify-content:space-between;margin:9px 0}.receipt-total{border-top:3px solid #cac5b3;padding-top:17px}.receipt-total b{font-size:48px;color:#ee6249}.cash-note{text-align:center;color:#596a72;font-size:33px}.risk{padding:15px;background:#fcebd5;border-radius:16px;font-size:33px;text-align:center}.risk small{display:block;font-size:27px;color:#75808b;margin-top:5px}.company-summary{text-align:center}.company-summary .company-icon{width:135px;height:145px}.company-summary h2{font-size:55px;margin:0}.company-summary p{margin:0;font-size:30px}.company-summary b{font-size:50px;color:#e76044}.chart-card{padding:4px 10px;border-width:18px;margin:18px 0}.chart-card h3{text-align:left;margin:0;font-size:33px}.chart-card canvas{width:100%;height:250px;display:block}.chart-card small{font-size:25px;color:#6d7d89}.business-note{padding:0 16px}.business-note h3{text-align:left;margin-bottom:0}.business-note p{margin:10px 0}.news-hero{text-align:center}.news-hero .company-icon{width:120px;height:120px}.news-hero h2{font-size:47px;margin:5px 0 25px}.source-card{margin:18px 0;padding:10px 16px;border-width:18px}.source-card strong{font-size:34px;color:#128e88}.source-card p{font-size:34px;margin:8px 0}.source-card.rumor strong{color:#788895}.advice{text-align:center;font-weight:bold;font-size:36px}.review-stats{display:flex;gap:20px;font-size:31px;justify-content:space-around}.review-stats b{display:block;font-size:50px;color:#ed7150}.log-list{max-height:650px;overflow-y:auto}.log{display:flex;gap:14px;border-bottom:2px solid #d8cfb6;padding:22px 0;font-size:28px}.log>.company-icon{width:65px;height:65px}.log>span{font-weight:bold;white-space:nowrap;width:95px}.log div{flex:1}.log small{display:block;color:#6c7c88;margin-top:6px}.log p{margin:6px 0;font-size:25px}.empty{text-align:center;color:#78818a;padding:35px 0}.settings-art{height:170px;text-align:center}.settings-art img{height:100%;max-width:250px;object-fit:contain}.setting{display:flex;align-items:center;justify-content:space-between;padding:30px 0;font-size:40px;border-bottom:2px solid #d5cdb6;min-height:115px}.setting input[type=range]{width:350px;accent-color:#13aa9d;height:30px}.setting input[type=checkbox]{appearance:none;width:135px;height:65px;background:#bdc7cf;border-radius:40px;border:3px solid #789;position:relative}.setting input[type=checkbox]:after{content:"";position:absolute;width:53px;height:53px;left:3px;top:3px;border-radius:50%;background:#fff}.setting input:checked{background:#13aa9d}.setting input:checked:after{left:72px}.confirm-art{height:290px;display:flex;justify-content:center;gap:30px}.confirm-art img{height:100%;max-width:270px;object-fit:contain}.confirm-art img+img{height:130px;align-self:end}.error-note{font-size:30px;color:#a74132}.error-note .btn{font-size:30px}.modal-content>p{text-align:left}.modal-content p{overflow-wrap:anywhere}#toast{position:absolute;z-index:10;left:7%;right:7%;bottom:36%;padding:14px 20px;border-radius:12px;background:#112f45f5;color:#fff;opacity:0;pointer-events:none;font-size:clamp(12px,2.1vh,23px);text-align:center;transform:translateY(10px);transition:.2s;box-shadow:0 5px 20px #04162755}#toast.show{opacity:1;transform:none}#toast.bad{background:#8d4039f5}.paused .btn,.reduced .comic-cell{animation:none}body:has(.view-comic) #world{opacity:0}@keyframes frame-a{0%,49%{opacity:1}50%,100%{opacity:0}}@keyframes frame-b{0%,49%{opacity:0}50%,100%{opacity:1}}@keyframes hero-path{0%{transform:translate(-230px,5px)}45%{transform:translate(120px,-20px)}50%{transform:translate(130px,-22px)}51%{transform:translate(130px,-22px) scaleX(-1)}95%{transform:translate(-225px,5px) scaleX(-1)}100%{transform:translate(-230px,5px)}}@keyframes clerk-path{0%{transform:translate(-320px,10px);opacity:0}5%{opacity:1}60%{transform:translate(380px,-30px);opacity:1}70%,100%{transform:translate(550px,-50px);opacity:0}}@keyframes breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes glint{0%,100%{opacity:.3;transform:translateX(-80px)}50%{opacity:.8;transform:translateX(70px)}}@keyframes paper{0%{transform:translate(0,0) rotate(5deg);opacity:0}20%{opacity:.8}100%{transform:translate(230px,-320px) rotate(135deg);opacity:0}}@keyframes bubble{0%,20%,100%{opacity:0;transform:translateY(8px)}30%,80%{opacity:1;transform:translateY(0)}}@keyframes enter{from{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:none}}@keyframes modal-in{from{opacity:0;transform:translateY(45px) scale(.94)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}}

/* Independent illustration states; controls keep explicit press feedback. */
button:active:not(:disabled){filter:brightness(.78) saturate(1.15)}
.actor .reading,.actor .rest,.actor .celebrate,.actor .think,.actor .play{display:none}
.clerk .pose,.elder .pose,.cat .pose{position:absolute;inset:0}
.reading .clerk,.relaxing .clerk{animation:none;left:215px}
.reading .clerk .run-a,.reading .clerk .run-b,.relaxing .clerk .run-a,.relaxing .clerk .run-b{display:none}
.reading .clerk .reading,.relaxing .clerk .rest{display:block}
.downturn .elder .sip{display:none}.downturn .elder .think{display:block}
.playful .cat .sleep{display:none}.playful .cat .play{display:block}
.trade-cheer .hero{animation:none;left:260px}.trade-cheer .hero .pose{display:none}.trade-cheer .hero .celebrate{display:block}
.world-bubble,.quote-bubble{background:transparent url('../assets/card.png') center/100% 100% no-repeat;border:0;border-radius:0;box-shadow:none;padding:28px 38px}
.close-btn{background:transparent url('../assets/button-cream.png') center/100% 100% no-repeat}
.risk{background:transparent url('../assets/card.png') center/100% 100% no-repeat;border-radius:0}
.dayrail,.loadrail{background:transparent url('../assets/button-cream.png') center/100% 100% no-repeat}
.progress-days i{background:transparent url('../assets/button-cream.png') center/100% 100% no-repeat}
.progress-days i.passed{background:transparent url('../assets/button-yellow.png') center/100% 100% no-repeat}

.hud{border:0;border-image:none;background:transparent url('../assets/header.png') center/100% 100% no-repeat;padding:12px 35px;gap:20px}
.avatar{width:125px;height:140px;flex-shrink:0;border-radius:70px}
.avatar img{height:400px;width:200px;object-fit:contain;object-position:top;transform:translate(-28px,-5px)}
.modalbox{border-image-source:url('../assets/panel.png')}
.report-heading{position:absolute;left:15px;right:15px;top:8px;height:270px}
.report-heading>img{width:100%;height:100%;object-fit:fill}
.report-heading>p{position:absolute;left:110px;right:280px;bottom:30px;margin:0;text-align:center;font-weight:900;font-size:30px}
.report-title{position:absolute;top:280px;left:175px;right:175px;height:250px;z-index:1;animation:enter .45s both}
.report-title img{width:100%;height:100%;object-fit:contain}
.view-result .closing-vignette{top:490px;height:500px}
.result-stats>div{position:relative;padding-left:105px}
.stat-icon{position:absolute;left:0;top:30px;width:105px;height:110px;object-fit:contain}
.result-stats b{font-size:66px}.round-caption{font-size:27px;text-align:center;margin:0;color:#6d6c5f}
.results-sheet{gap:14px}.view-result .knowledge{font-size:30px;padding-top:8px;padding-bottom:8px}.view-result .chart-link{height:230px}.view-result .chart-link canvas{height:135px}
.save-warning{position:absolute;left:220px;right:220px;top:330px;height:95px;border:0;background:transparent url('../assets/button-coral.png') center/100% 100% no-repeat;color:white;font-size:34px;font-weight:bold;z-index:3}
.report-heading>p{left:220px;right:320px;bottom:24px;padding:4px 8px;background:transparent url('../assets/card.png') center/100% 100% no-repeat}
.closing-vignette{mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 94%,transparent)}
