:root{--bg:#f8f7f2;--surface:#fffefa;--ink:#2c3c33;--muted:#8a9187;--green:#466a51;--border:#e7e8df;--positive:#4e8460;--negative:#a16d69;font-family:'Noto Sans KR',-apple-system,BlinkMacSystemFont,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #a6b992;outline-offset:4px}a{color:inherit;text-decoration:none}svg{display:block}button svg{width:20px;height:20px}h1,h2,p{margin:0}h2{font-size:17px;letter-spacing:-.6px}small{display:block}button{border:0} .layout{max-width:1600px;min-height:100vh;margin:auto;display:grid;grid-template-columns:244px 1fr}.sidebar{padding:42px 26px 30px 32px;border-right:1px solid var(--border);position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;font-size:22px;font-weight:800;letter-spacing:-1px}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#466a51;color:#fff;font-family:Georgia,serif;font-size:29px;padding-bottom:5px}.brand-dot{width:6px;height:6px;background:#94ae7b;border-radius:100%;align-self:flex-start;margin-top:5px}.brand-sub{font-size:11px;color:var(--muted);margin:13px 0 43px 45px;letter-spacing:.4px}.sidebar nav{display:grid;gap:8px}.nav-item{padding:15px 17px;display:flex;align-items:center;gap:14px;border-radius:12px;background:transparent;color:#8a9187;font-size:14px;text-align:left;font-weight:500}.nav-item svg{width:21px;height:21px}.nav-item.active{background:#e9eee3;color:#466a51;font-weight:700}.nav-item i{margin-left:auto;border-radius:100%;width:5px;height:5px;background:#6b8a5b}.sidebar-bottom{margin-top:auto}.game-only{font-size:12px;line-height:1.9;color:var(--muted);padding-bottom:22px}.game-only strong{color:#687a64;font-weight:500}.sidebar-bottom .fine-print{margin-top:18px}.main-shell{min-width:0}.topbar{height:93px;padding:0 54px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.chapter{font-size:10px;letter-spacing:2px;color:#9ca394}.topbar-right{display:flex;align-items:center;gap:12px}.day-pill,.cash-pill{font-size:12px;display:flex;align-items:center;gap:7px;border:1px solid var(--border);padding:9px 15px;border-radius:30px;background:#fffefa}.day-pill{font-weight:700;color:var(--green)}.day-pill i{width:6px;height:6px;background:#87a47b;border-radius:100%}.cash-pill{color:#737d6d}main{max-width:1150px;padding:36px 54px 20px;margin:auto}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#87997a}.page-heading{margin-bottom:27px}.page-heading h1{font-size:32px;line-height:1.4;letter-spacing:-1.7px;margin:10px 0 11px;font-weight:700}.page-heading p{font-size:13px;color:var(--muted);line-height:1.8}.hero-card{display:flex;align-items:center;justify-content:space-between;padding:27px 36px;background:#edf0e4;border:1px solid #e2e7d7;border-radius:20px;min-height:237px;overflow:hidden}.hero-info{width:55%;max-width:480px;z-index:1}.pill{display:inline-block;background:#fffaf0aa;border:1px solid #ffffff77;padding:5px 10px;font-size:10px;border-radius:30px;color:#6c805f;font-weight:500;letter-spacing:-.2px}.muted{color:var(--muted);font-size:12px}.hero-info>.muted{margin-top:19px}.big-money{font-size:40px;font-weight:800;letter-spacing:-1.4px;line-height:1.4}.big-money span{font-size:23px;font-weight:500;color:#718369}.growth{font-size:11px;color:#7b9070;margin:4px 0 22px}.goal{display:flex;justify-content:space-between;font-size:10px;color:#88917d;margin-bottom:8px}.progress{height:5px;border-radius:8px;background:#dce3d2;overflow:hidden}.progress i{height:100%;display:block;background:#8ba773;border-radius:8px;transition:width .25s}.character-scene{position:relative;width:220px;align-self:stretch;display:flex;align-items:flex-end;justify-content:center}.character{width:190px;height:200px}.speech{position:absolute;top:3px;right:0;font-size:10px;background:#fffef9;border-radius:10px 10px 10px 0;padding:9px 13px;color:#7f8c71;transform:rotate(5deg)}.summary-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);border-radius:15px;padding:21px 25px;background:var(--surface);margin-top:14px}.summary-grid>div{display:grid;gap:7px}.summary-grid>div+div{border-left:1px solid var(--border);padding-left:26px}.summary-grid strong{font-size:18px;letter-spacing:-.7px}.section{margin-top:30px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-title>span{font-size:10px;color:#989e92}.actions-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.action-card{text-align:left;position:relative;border-radius:15px;padding:19px 16px 24px;border:1px solid #e7e7de;transition:transform .15s,box-shadow .15s;color:var(--ink)}.action-card:hover{transform:translateY(-3px);box-shadow:0 7px 20px #33432a0b}.sage{background:#eef1e8}.sand{background:#f4eee3}.lilac{background:#f0edf4}.blue{background:#eaf0f2}.card-icon{width:35px;height:35px;border-radius:10px;background:#ffffff70;display:grid;place-items:center;margin-bottom:20px;color:#73866d}.card-icon svg{width:22px;height:22px}.sand .card-icon{color:#aa9170}.lilac .card-icon{color:#9280a7}.blue .card-icon{color:#7d9aaa}.action-card strong{display:block;font-size:14px;margin-bottom:7px}.action-card small{font-size:9px;color:#93988a;line-height:1.8;letter-spacing:-.3px}.card-arrow{position:absolute;top:24px;right:14px;color:#a4ac9b}.card-arrow svg{width:15px;height:15px}.news-strip{display:flex;align-items:center;gap:14px;margin-top:22px;border:1px solid var(--border);border-radius:12px;background:#f2f3eb;padding:14px 17px}.news-label{font-size:9px;white-space:nowrap;background:#e2e8d7;color:#7f916d;border-radius:5px;padding:5px 7px}.news-strip p{font-size:11px;color:#77826e;line-height:1.6}.history-card{border:1px solid var(--border);border-radius:15px;background:var(--surface);padding:15px 21px}.spark{width:100%;height:64px;margin:5px 0 12px}.history-row{display:flex;align-items:center;gap:13px;padding:14px 0;border-top:1px solid #eeeFE6}.day-tag{font-size:9px;white-space:nowrap;color:#9aa18f;min-width:45px}.history-row>div{flex:1;min-width:0}.history-row strong{font-size:11px;font-weight:500}.history-row small{font-size:9px;color:#8c9682;margin-top:4px}.history-row>span:last-child{font-size:11px;white-space:nowrap}.positive{color:var(--positive)}.negative{color:var(--negative)}.empty{text-align:center;font-size:12px;color:var(--muted);padding:12px}.note{padding:15px 18px;border-radius:12px;border:1px solid var(--border);background:#f0f2e9;font-size:11px;line-height:1.9;color:#7d8974;margin-bottom:24px}.job-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.job-card{padding:25px 21px;border:1px solid var(--border);background:var(--surface);border-radius:17px}.job-emoji{display:block;font-size:36px;margin:0 0 17px}.job-card h2{margin-top:15px}.job-card>p{font-size:11px;color:var(--muted);margin:8px 0 25px}.salary{display:grid;gap:7px;margin-bottom:24px}.salary span{font-size:11px;color:var(--muted)}.salary strong{font-size:22px;letter-spacing:-.5px}.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:7px;min-height:43px;border-radius:10px;padding:11px 15px;font-size:12px;font-weight:600;white-space:nowrap}.primary{background:var(--green);color:white}.primary:hover:not(:disabled){background:#34583e}.secondary{background:#edf0e6;color:var(--green);border:1px solid #e0e7d7}.job-card .primary{width:100%;margin-top:23px;font-size:11px}.job-card .primary svg{width:15px;height:15px}.reward-card{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;background:#eeefe5;border:1px dashed #d4dcc9;border-radius:15px;gap:14px}.reward-card strong{font-size:13px}.reward-card p{font-size:11px;line-height:1.9;color:var(--muted);margin-top:7px}.property-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.property-card{background:var(--surface);border:1px solid var(--border);border-radius:17px;overflow:hidden}.property-art{position:relative;height:126px;padding:8px 60px 0}.property-art svg{height:100%;width:100%}.property-art>.pill{position:absolute;right:15px;top:14px}.property-content{padding:22px}.property-content .eyebrow{letter-spacing:.5px}.property-content h2{margin:7px 0}.property-content>p{font-size:10px;color:var(--muted);line-height:1.8}.price-row{display:flex;justify-content:space-between;align-items:center;margin:20px 0 17px}.price-row strong{font-size:21px;letter-spacing:-.7px}.price-row>span{font-size:11px}.property-stats{display:grid;gap:10px;margin-bottom:13px}.property-stats>span{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.property-stats b{color:#6a7962;font-weight:500}.button-row{display:flex;gap:8px}.property-content .button-row{margin-top:20px}.property-content .primary{flex:1;font-size:11px}.quantity-control{display:flex;align-items:center;gap:12px;font-size:12px;margin-bottom:20px}.quantity-control select{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px;color:var(--ink)}.quantity-control>span{margin-left:auto;color:var(--muted);font-size:10px}.stock-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.stock-card{background:var(--surface);border:1px solid var(--border);border-radius:17px;padding:23px}.stock-top{display:flex;align-items:center;gap:12px}.stock-symbol{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-family:Georgia,serif;font-size:25px}.stock-top h2{font-size:14px}.stock-top small{font-size:10px;color:var(--muted);margin-top:5px}.stock-price{margin-left:auto;text-align:right;display:grid;gap:5px}.stock-price strong{font-size:14px}.stock-price>span{font-size:10px}.stock-card .spark{margin:25px 0;height:75px}.stock-bottom{border-top:1px solid var(--border);padding-top:17px;display:grid;gap:13px}.stock-bottom>span{font-size:10px;color:var(--muted);display:flex;justify-content:space-between}.stock-bottom b{font-weight:500;color:var(--ink)}.stock-bottom .button-row>*{flex:1}.lottery-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.lottery-card{border:1px solid var(--border);border-radius:18px;background:var(--surface);padding:25px}.lottery-title{display:flex;justify-content:space-between;align-items:center}.text-button{background:transparent;color:#88917d;font-size:11px;padding:6px 0;text-align:left}.picked-numbers{display:flex;justify-content:center;gap:10px;margin:25px 0}.ball{width:38px;height:38px;border-radius:100%;background:#f0f1e9;border:1px dashed #d9dece;display:grid;place-items:center;color:#b2b9a5;font-size:14px;font-weight:700}.ball.filled{background:#e2ebd6;color:#537046;border:1px solid #ccdab8}.number-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:7px;margin:25px 0}.number{aspect-ratio:1;border-radius:9px;background:#f3f4ed;color:#7c8871;font-size:12px;min-width:0;padding:0}.number.selected{background:#557453;color:white}.lottery-card>.primary{width:100%;font-size:11px}.fine-print{font-size:9px;color:#99a18f;line-height:1.9;margin-top:14px}.lottery-card>.fine-print{text-align:center}.lottery-aside{padding:24px 6px}.lottery-aside>h2{font-size:15px}.lottery-aside>p{font-size:11px;color:var(--muted);line-height:1.9;margin-top:12px}.prize-table{margin:20px 0}.prize-table>div{display:flex;justify-content:space-between;align-items:center;padding:17px 0;border-bottom:1px solid var(--border);gap:12px;font-size:12px}.prize-table strong{font-weight:500}.prize-table span{text-align:right;font-weight:700;color:#6e845e}.prize-table small{font-size:8px;color:#9aa48e;font-weight:400;margin-top:5px}.last-draw{margin-top:23px;padding:17px;background:#edf0e4;border-radius:12px;display:grid;gap:10px}.last-draw strong{font-size:12px}.last-draw .eyebrow{font-size:8px;letter-spacing:1px}footer{padding:25px 54px 35px;font-size:9px;color:#a9ae9f;display:flex;justify-content:space-between}.mobile-brand,.mobile-nav{display:none}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,15px);padding:14px 20px;background:#2f4238;color:#fff;border-radius:12px;font-size:12px;z-index:5;opacity:0;pointer-events:none;transition:.2s;max-width:90%;line-height:1.7}#toast.visible{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid var(--border);border-radius:22px;padding:31px;max-width:440px;width:calc(100% - 36px);background:var(--surface);color:var(--ink)}dialog::backdrop{background:#24362966;backdrop-filter:blur(4px)}dialog h2{font-size:23px;margin:14px 0 12px;letter-spacing:-1px}dialog p{font-size:12px;color:var(--muted);line-height:1.8}dialog>.primary{width:100%;margin-top:24px}.settlement{margin:23px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:8px 0}.settlement>div{display:flex;justify-content:space-between;padding:10px 0;font-size:11px;color:var(--muted)}.settlement strong{color:var(--ink);font-weight:600}.result-news{background:#f0f2e9;border-radius:9px;padding:12px;font-size:10px}.draw-result{text-align:center;margin-top:20px}.draw-result .picked-numbers{margin:13px 0}.draw-result>strong{font-size:14px}.draw-result p{margin-top:8px}
@media(min-width:1400px){main{padding-top:46px}.page-heading h1{font-size:36px}.hero-card{min-height:260px}.character{width:215px;height:223px}.action-card{padding:23px 20px 27px}.action-card small{font-size:10px}}
@media(max-width:1100px){.layout{grid-template-columns:200px 1fr}.sidebar{padding:35px 19px}.topbar{padding:0 32px}main{padding:30px 32px 20px}.actions-grid{grid-template-columns:repeat(2,1fr)}.action-card{padding:18px 20px}.card-icon{margin-bottom:14px}.job-grid{grid-template-columns:1fr}.job-card{display:grid;grid-template-columns:65px 1fr 1fr;gap:10px 15px;align-items:center}.job-emoji{grid-row:1/4;margin:0}.job-card>.pill{justify-self:start}.job-card>h2{margin:0;grid-column:2}.job-card>p{margin:0;grid-column:2}.salary{grid-column:3;grid-row:1/3;margin:0}.job-card>.goal{grid-column:2/4;margin-top:15px}.job-card>.progress{grid-column:2/4}.job-card>.primary{grid-column:2/4;margin-top:10px}.stock-list{grid-template-columns:1fr}.lottery-layout{grid-template-columns:1fr}.lottery-aside{padding:8px}.property-art{padding-inline:25px}.property-content{padding:17px}.price-row strong{font-size:17px}footer{padding-inline:32px}.hero-card{padding:25px}.character-scene{width:180px}.character{width:170px}.big-money{font-size:35px}}
@media(max-width:700px){.layout{display:block}.sidebar{display:none}.topbar{height:77px;padding:0 20px}.chapter{display:none}.mobile-brand{display:flex;font-size:18px;gap:8px}.mobile-brand .brand-mark{width:29px;height:29px;font-size:25px;border-radius:9px}.topbar-right{gap:6px}.day-pill,.cash-pill{padding:7px 9px;font-size:9px}.cash-pill{max-width:125px;overflow:hidden;white-space:nowrap}main{padding:27px 20px 20px}.page-heading h1{font-size:29px}.page-heading p{font-size:11px}.eyebrow{font-size:9px;letter-spacing:1.6px}.hero-card{min-height:228px;padding:23px 21px;position:relative}.hero-info{width:61%}.hero-info .pill{font-size:8px;padding:5px 8px}.big-money{font-size:31px}.big-money span{font-size:17px}.hero-info>.muted{font-size:10px}.growth{font-size:9px}.hero-info .goal{font-size:8px}.character-scene{width:135px;margin-right:-15px;margin-left:-10px;align-self:center;height:180px}.character{width:145px;min-width:145px;height:177px}.speech{right:2px;top:0;font-size:8px;padding:7px 8px}.summary-grid{padding:17px}.summary-grid .muted{font-size:10px}.summary-grid strong{font-size:15px}.summary-grid>div+div{padding-left:16px}.section{margin-top:27px}.section-title h2{font-size:15px}.section-title>span{font-size:9px}.actions-grid{gap:11px}.action-card{padding:18px 16px 20px}.action-card strong{font-size:13px}.action-card small{font-size:9px}.news-strip{padding:13px;gap:10px}.news-strip p{font-size:10px}.history-card{padding:12px 15px}.history-row{gap:8px}.history-row strong{font-size:10px}.history-row>span:last-child{font-size:9px}.day-tag{min-width:38px;font-size:8px}.note{font-size:10px;padding:13px 15px}.property-grid{grid-template-columns:1fr;gap:17px}.property-art{height:125px;padding-inline:60px}.property-content{padding:21px}.price-row strong{font-size:21px}.property-content>p{font-size:11px}.property-stats>span{font-size:11px}.property-content .primary{font-size:12px}.job-card{padding:21px 17px;grid-template-columns:42px 1fr 1fr;gap:10px}.job-emoji{font-size:29px}.job-card .pill{font-size:8px}.job-card h2{font-size:15px}.job-card>p{font-size:9px}.salary strong{font-size:17px}.salary span{font-size:9px}.reward-card{padding:18px;align-items:flex-start;flex-direction:column}.quantity-control{flex-wrap:wrap;font-size:11px}.quantity-control>span{font-size:9px}.stock-card{padding:20px}.stock-top{gap:10px}.stock-top h2{font-size:13px}.stock-price strong{font-size:12px}.lottery-card{padding:20px 16px}.lottery-title h2{font-size:15px}.number-grid{gap:6px}.number{font-size:11px}.picked-numbers{gap:8px}.ball{width:35px;height:35px;font-size:13px}.lottery-aside{padding:8px 3px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fffefaed;backdrop-filter:blur(16px);border-top:1px solid var(--border);z-index:3;padding:10px 10px calc(10px + env(safe-area-inset-bottom))}.mobile-nav>button{display:flex;flex:1;align-items:center;flex-direction:column;gap:5px;background:transparent;color:#9da594;font-size:9px;padding:2px}.mobile-nav svg{width:20px;height:20px}.mobile-nav .active{color:var(--green);font-weight:700}footer{padding:20px 20px calc(90px + env(safe-area-inset-bottom));font-size:8px;flex-direction:column;gap:7px}#toast{bottom:90px}dialog{padding:25px}.settlement{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.mobile-reset{display:none}@media(max-width:700px){.mobile-reset{display:block;width:fit-content;margin-bottom:9px}}

/* Shorter play screens: primary actions first, secondary information on demand. */
.topbar{height:66px}main{padding-top:20px;padding-bottom:8px}
.page-heading{margin-bottom:16px}.page-heading>.eyebrow{display:none}
.page-heading h1{font-size:25px;margin:0 0 5px;line-height:1.3;letter-spacing:-1px}
.page-heading p{font-size:12px;line-height:1.6}
.hero-card{min-height:160px;padding:17px 25px}.hero-info>.muted{margin-top:8px}
.growth{margin:2px 0 12px}.big-money{font-size:32px}
.character-scene{width:160px;height:135px;align-self:center}.character{width:140px;height:145px}
.speech{font-size:9px;padding:6px 9px}.summary-grid{padding:12px 20px;margin-top:10px}
.summary-grid>div{gap:3px}.summary-grid strong{font-size:16px}
.section{margin-top:18px}.section-title{margin-bottom:10px}
.action-card{display:grid;grid-template-columns:33px 1fr;gap:3px 10px;padding:14px 12px;align-items:center;min-height:78px}
.card-icon{grid-row:1/3;margin:0;width:32px;height:32px}.action-card strong{margin:0;font-size:13px}
.action-card small{grid-column:2;line-height:1.5;font-size:9px}.card-arrow{display:none}
.news-strip{margin-top:12px;padding:10px 13px}.foldout{border:1px solid var(--border);border-radius:12px;background:var(--surface);margin-top:12px;padding:0 14px}
.foldout summary{min-height:44px;cursor:pointer;display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600;list-style:none}
.foldout summary::-webkit-details-marker{display:none}.foldout summary::after{content:'+';margin-left:auto;font-size:18px;font-weight:400;color:#8a987c}
.foldout[open]>summary::after{content:'−'}.foldout summary>span{font-size:9px;font-weight:400;color:var(--muted)}
.foldout>p{font-size:11px;line-height:1.8;color:var(--muted);padding-bottom:14px}
.history-card{border:0;padding:0 0 8px}.history-row{padding:11px 0}
.market-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:12px}
.market-picker button{background:#efF1e9;color:#7a8771;border:1px solid transparent;border-radius:9px;min-height:42px;padding:9px 6px;font-size:12px}
.market-picker button.selected{background:#e5eddb;border-color:#91aa79;color:#42633f;font-weight:700}
.market-picker button small{font-size:9px;font-weight:400;margin-top:3px}.company-picker{grid-template-columns:repeat(4,1fr)}
.property-grid,.stock-list{grid-template-columns:1fr;max-width:660px}
.property-art{height:80px;padding-inline:80px}.property-content{padding:16px 20px}
.property-content h2{margin:4px 0;font-size:17px}.price-row{margin:12px 0}.property-stats{gap:8px;margin-bottom:10px}
.property-content .button-row{margin-top:14px}.market-caption{font-size:10px;color:var(--muted);margin:10px 2px;line-height:1.6}
.quantity-control{margin-bottom:12px}.stock-card{padding:18px}.stock-card .spark{height:55px;margin:13px 0}.stock-bottom{gap:10px;padding-top:12px}
.lottery-layout{display:block;max-width:660px}.lottery-card{padding:18px}.picked-numbers{margin:16px 0}.number-grid{margin:16px 0}
.lottery-aside{padding:0 14px}.lottery-aside>h2{margin-top:8px}.lottery-aside .last-draw{margin:12px 0}.prize-table{margin:8px 0}.prize-table>div{padding:12px 0}
footer{padding:12px 54px 22px}.job-card{padding:18px}.job-card>p{margin-bottom:16px}.salary{margin-bottom:14px}.job-card .primary{margin-top:15px}
.reward-card{padding:14px 18px}.reward-card p{margin-top:3px}.reward-section{margin-top:12px}
@media(max-width:1100px){.job-card>p,.salary{margin:0}.job-card>.goal{margin-top:6px}.job-card>.primary{margin-top:3px}}
@media(max-width:700px){
  .topbar{height:54px;padding:0 16px}.mobile-brand{font-size:16px}.mobile-brand .brand-mark{width:26px;height:26px;font-size:23px}
  main{padding:16px 16px 6px}.page-heading{margin-bottom:12px}.page-heading h1{font-size:22px}.page-heading p{font-size:11px}
  .hero-card{min-height:145px;padding:14px 17px}.hero-info{width:63%}.hero-info>.muted{margin-top:7px}.big-money{font-size:29px}
  .character-scene{height:121px;width:106px;margin-right:-10px}.character{width:116px;min-width:116px;height:128px}.speech{font-size:7px;top:-2px}
  .growth{font-size:9px;margin:2px 0 10px}.summary-grid{padding:10px 15px}.summary-grid>div{gap:3px}.summary-grid strong{font-size:14px}
  .section{margin-top:14px}.section-title{margin-bottom:9px}.actions-grid{gap:8px}.action-card{padding:12px 10px;min-height:72px;grid-template-columns:27px 1fr;gap:3px 7px}
  .card-icon{width:27px;height:29px}.card-icon svg{width:19px;height:19px}.action-card strong{font-size:12px}.action-card small{font-size:8px}
  .news-strip{margin-top:10px;padding:9px 10px}.news-strip p{font-size:10px}.news-label{padding:4px 6px}
  .foldout{margin-top:10px}.foldout summary{font-size:11px;min-height:42px}
  .job-grid{gap:9px}.job-card{padding:12px 14px;grid-template-columns:34px 1fr 1fr;gap:5px 9px}
  .job-emoji{font-size:25px}.job-card>p{display:none}.job-card>.pill{font-size:8px}.job-card h2{font-size:14px}
  .salary{grid-row:1/3}.salary strong{font-size:16px}.job-card>.goal{margin:3px 0 0;font-size:9px}
  .job-card>.progress{height:4px}.job-card>.primary{margin-top:3px;min-height:38px;padding:8px 10px}
  .reward-card{padding:11px 14px;flex-direction:row;align-items:center;gap:10px}.reward-card strong{font-size:11px}.reward-card p{font-size:9px}.reward-card .secondary{font-size:10px;padding:9px;min-height:38px}
  .market-picker{gap:6px;margin-bottom:10px}.market-picker button{font-size:11px;min-height:40px;padding:8px 5px}.company-picker{grid-template-columns:repeat(2,1fr)}
  .property-art{height:72px;padding-inline:66px}.property-art>.pill{top:9px;right:11px;font-size:9px}.property-content{padding:14px 17px}
  .property-content>p{font-size:10px}.price-row strong{font-size:20px}.property-stats>span{font-size:10px}.property-content .primary{font-size:11px}
  .stock-card{padding:15px}.stock-card .spark{height:45px;margin:11px 0}.quantity-control{gap:9px;font-size:10px}.quantity-control>span{font-size:8px}
  .lottery-card{padding:15px}.lottery-title h2{font-size:14px}.picked-numbers{margin:12px 0;gap:8px}.ball{width:33px;height:33px}
  .number-grid{gap:5px;margin:13px 0}.number{min-height:30px}.lottery-card .fine-print{font-size:8px;margin-top:9px}
  footer{padding:10px 16px calc(66px + env(safe-area-inset-bottom));gap:3px}.mobile-reset{margin:0;padding:4px 0;font-size:9px}
  .mobile-nav{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.mobile-nav svg{width:19px;height:19px}
  dialog{padding:20px;max-height:calc(100dvh - 32px);overflow-y:auto}dialog h2{font-size:21px;margin:10px 0 8px}.settlement{margin:15px 0}.settlement>div{padding:8px 0}dialog>.primary{margin-top:15px}
}
.reward-section .reward-card{margin-bottom:12px}
@media(max-width:700px){.hero-info .growth{display:none}.hero-info .goal{margin-top:10px}}
.mode-button{background:#f0eee4;color:#8a8269;border:1px solid #e5e2d4;border-radius:20px;padding:7px 10px;font-size:10px;white-space:nowrap}.mode-button.online{background:#e5eddb;color:#466a51;border-color:#ccdab8}
.market-entry{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#edf1e6;border-radius:12px;padding:12px 14px;margin-top:12px}.market-entry strong{font-size:12px;flex:1}.market-entry p{font-size:10px;color:var(--muted);width:100%}.market-entry .secondary{font-size:10px;min-height:35px;padding:8px 10px}
.market-meta{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:12px}.listing-controls{display:flex;align-items:center;gap:8px;margin:8px 0 13px}.listing-controls input{min-width:0;flex:1;background:#f6f7f0;border:1px solid #dce3d2;border-radius:8px;padding:10px;font:inherit;color:var(--ink);font-size:12px}.listing-controls>span{font-size:11px;color:var(--muted)}#listing-form label{font-size:11px;color:#71816a}.listing-controls .primary{min-height:37px;font-size:11px;padding:9px 14px}.listing-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--border)}.listing-row strong{font-size:13px}.listing-row small{font-size:10px;color:var(--muted);margin-top:4px}.listing-row button{font-size:11px;min-height:37px}.market-empty{font-size:11px;color:var(--muted);line-height:1.7;padding:10px 0}.neighbor-market>.fine-print{padding-bottom:12px}
@media(max-width:700px){.mode-button{font-size:8px;padding:6px 7px}.topbar-right{gap:4px}.cash-pill{max-width:100px}.mobile-brand{font-size:14px;gap:5px}.day-pill,.cash-pill{padding:6px 7px;font-size:8px}}
[hidden]{display:none!important}.property-mode{grid-template-columns:1fr 1fr}.property-mode button{min-height:35px;padding:7px}.neighbor-market{max-width:660px}
.price-row .text-button{font-size:10px;color:#6b8560}.price-row{gap:8px}.my-rank{display:flex;justify-content:space-between;gap:12px;background:#eaf0e0;border:1px solid #dce6d0;border-radius:15px;padding:18px 20px}.my-rank>div{display:grid;gap:7px}.my-rank>div:last-child{text-align:right}.my-rank span{font-size:11px;color:#7e8d70}.my-rank strong{font-size:21px}.my-rank small{font-size:11px;display:inline;font-weight:400;color:#849177}.rank-title{margin-top:20px}.ranking-list{list-style:none;padding:0;margin:0;background:var(--surface);border:1px solid var(--border);border-radius:15px;overflow:hidden}.ranking-list li{display:flex;align-items:center;gap:12px;padding:15px 18px;border-top:1px solid var(--border)}.ranking-list li:first-child{border-top:0}.ranking-list li.is-me{background:#edf3e6}.rank-number{width:27px;font-size:18px;color:#92a17f;font-weight:700;text-align:center}.ranking-list li>div{flex:1}.ranking-list strong{font-size:13px}.ranking-list small{font-size:10px;color:var(--muted);margin-top:4px}.ranking-list b{font-size:12px;font-weight:600}
@media(max-width:700px){.my-rank{padding:15px 17px}.my-rank strong{font-size:18px}.ranking-list li{padding:13px 14px;gap:10px}.ranking-list strong{font-size:12px}.ranking-list b{font-size:11px}.mobile-nav>button{font-size:8px}.price-row strong{font-size:18px}.price-row .text-button{font-size:9px}}
.bid-market{padding-top:14px;padding-bottom:12px}#bid-form label{font-size:11px;color:#71816a}
.order-tabs{grid-template-columns:repeat(3,1fr)}.order-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;max-width:660px}.quote-summary{display:flex;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border)}.quote-summary>div{display:grid;gap:5px}.quote-summary>div:last-child{text-align:right}.quote-summary span{font-size:10px;color:var(--muted)}.quote-summary strong{font-size:15px}.orderbook{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px 0}.orderbook h3{font-size:11px;font-weight:600;margin:0 0 7px}.orderbook h3 span{display:block;font-size:8px;font-weight:400;color:var(--muted);margin-top:3px}.quote-row{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:36px;width:100%;padding:8px 7px;background:#f2f3ec;border-radius:6px;margin-top:4px;color:var(--ink)}.quote-row strong{font-size:11px;font-weight:500}.quote-row span{font-size:9px;color:var(--muted)}.orderbook>div:first-child .quote-row{background:#f5ece7}.orderbook>div:last-child .quote-row{background:#eaf0e5}.book-empty{font-size:10px;color:var(--muted);padding:12px 0}.order-entry{border-top:1px solid var(--border);padding-top:12px}.order-card .market-caption{font-size:9px;margin:8px 0 0}.order-card .listing-row:last-child{padding-bottom:0}
/* Compact investment UI */
:root{--bg:#f5f6f8;--surface:#fff;--ink:#191f28;--muted:#8b95a1;--green:#0f9d6b;--border:#edf0f3;--positive:#f04452;--negative:#3182f6;font-family:-apple-system,BlinkMacSystemFont,'Noto Sans KR',sans-serif}
body{letter-spacing:-.3px}.sidebar{background:white}.brand-mark{background:#0f9d6b;border-radius:12px}.brand-dot{background:#0f9d6b}.nav-item.active{background:#edf8f3;color:#0f9d6b}.nav-item i{background:#0f9d6b}.primary{background:#0f9d6b;color:#fff;border-radius:12px}.secondary{background:#f2f4f6;color:#4e5968;border-radius:10px}.text-button{color:#6b7684}.page-heading .eyebrow{display:none}.page-heading h1{font-weight:750;letter-spacing:-1px}.page-heading p{color:#8b95a1}.hero-card{background:#fff;border-color:var(--border)}.pill{background:#edf8f3;color:#0f9d6b}.progress{background:#edf2f8}.progress i{background:#0f9d6b}.summary-grid{background:white;border-color:var(--border)}.action-card.sage,.action-card.sand,.action-card.lilac,.action-card.blue{background:white;border:1px solid var(--border)}.card-icon{color:#0f9d6b}.news-strip{background:#edf8f3}.news-label{color:#0f9d6b;background:#dcf2e8}.mode-button.online{background:#edf8f3;color:#0f9d6b;border-color:#d8f0e5}.day-pill i{background:#0f9d6b}.mobile-nav{background:rgba(255,255,255,.97);border-color:var(--border)}.mobile-nav>button.active{color:#0f9d6b}.market-picker button{background:#edf0f3;color:#8b95a1;border:0}.market-picker button.selected{background:#fff;color:#191f28;box-shadow:0 2px 7px #1923310b}.property-mode,.order-tabs{background:#edf0f3;padding:4px;border-radius:12px;gap:4px}.order-tabs button,.property-mode button{min-height:32px;padding:6px}.order-card{border:0;border-radius:18px;padding:16px}.market-entry{background:#edf8f3}.my-rank{background:#edf8f3;border-color:#dcf2e8}.my-rank span{color:#6b7684}.ranking-list li.is-me{background:#edf8f3}.rank-number{color:#0f9d6b}
.asset-select,.district-select{display:flex;align-items:center;gap:12px;background:#fff;border-radius:12px;padding:10px 13px;margin-bottom:12px;max-width:660px}.asset-select label,.district-select label{font-size:11px;color:#8b95a1;white-space:nowrap}.asset-select select,.district-select select{border:0;background:transparent;color:#333d4b;font:inherit;font-size:13px;font-weight:600;min-width:0;flex:1;padding:4px 0}.district-select{flex-wrap:wrap}.district-select>span{font-size:10px;color:#0f9d6b}.asset-quote{background:#fff;border-radius:18px;padding:16px;margin-bottom:12px;max-width:660px}.asset-identity{display:flex;align-items:center;gap:10px}.asset-identity h2{font-size:16px}.asset-identity span:not(.stock-symbol){font-size:10px;color:#8b95a1}.asset-identity .stock-symbol{width:34px;height:34px;font-size:18px;border-radius:12px}.asset-price{font-size:26px;font-weight:750;margin-top:12px;letter-spacing:-1px}.asset-price>span{font-size:12px;font-weight:600;margin-left:8px;letter-spacing:0}.asset-quote .spark{height:44px;margin:6px 0}.quote-foot{display:flex;justify-content:space-between;font-size:10px;color:#8b95a1}.order-tabs{max-width:660px}.book-heading{display:flex;align-items:center;justify-content:space-between}.book-heading h3{font-size:12px;margin:0}.book-heading>span{font-size:9px;color:#8b95a1}.orderbook{gap:8px;padding:10px 0 12px}.orderbook h3{font-size:10px;color:#6b7684}.orderbook h3 span{display:none}.quote-row{min-height:30px;padding:7px 9px;margin-top:3px;border-radius:7px}.orderbook>div:first-child .quote-row{background:#edf8f3;color:#0f9d6b}.orderbook>div:last-child .quote-row{background:#fff1f2;color:#f04452}.quote-row strong{font-size:11px;font-weight:600}.quote-row span{color:inherit;opacity:.7}.book-empty{min-height:48px;display:flex;align-items:center;justify-content:center;background:#f9fafb;border-radius:8px;font-size:10px}.trade-sides{display:grid;grid-template-columns:1fr 1fr;background:#f2f4f6;padding:3px;border-radius:9px;margin-bottom:12px}.trade-sides button{background:transparent;color:#8b95a1;min-height:32px;font-size:12px;border-radius:7px;font-weight:600}.trade-sides button.selected{background:white;box-shadow:0 2px 5px #1923310a}.trade-sides button.buy{color:#f04452}.trade-sides button.sell{color:#3182f6}.order-fields{display:grid;grid-template-columns:1.3fr 1fr;gap:10px}.order-fields label{font-size:10px;color:#6b7684}.input-unit{display:flex;align-items:center;background:#f2f4f6;border-radius:10px;margin-top:6px;padding:0 10px}.input-unit input{min-width:0;width:100%;border:0;background:transparent;padding:12px 0;font:inherit;font-size:16px;font-weight:600;color:#191f28}.input-unit>span{font-size:11px;color:#8b95a1}.order-available,.order-total{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:10px;color:#8b95a1}.order-available b{font-weight:500;color:#6b7684}.order-total{padding:10px 0;border-top:1px solid var(--border);margin-top:10px}.order-total strong{font-size:15px;color:#333d4b}.trade-submit{width:100%;min-height:44px;margin-top:6px;font-size:13px;font-weight:600}.trade-submit.buy{background:#f04452}.trade-submit.sell{background:#3182f6}.region-yield{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:10px;color:#6b7684;margin:10px 0 2px}.region-yield .text-button{margin-left:auto;padding:0;font-size:9px}.listing-controls input{background:#f2f4f6;border:0;font-size:20px;font-weight:600;padding:12px}.quote-summary strong{font-size:19px;letter-spacing:-.6px}.quote-summary>div:last-child strong{font-size:13px;margin-top:4px}.production-card{background:#fff;border-radius:18px;padding:20px;max-width:660px}.production-card .eyebrow{color:#0f9d6b;font-size:10px}.production-card h2{margin:10px 0 6px;font-size:19px}.production-card>p{font-size:11px;color:#8b95a1;line-height:1.7}.production-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.production-stats>div{display:grid;gap:8px}.production-stats span{font-size:10px;color:#8b95a1}.production-stats strong{font-size:23px}.production-stats small{display:inline;font-size:11px;color:#8b95a1;font-weight:400}.supply-track{background:#f9fafb;padding:12px;border-radius:12px;margin-bottom:15px;font-size:11px;color:#6b7684}.supply-track .progress{margin:8px 0}.supply-track small{font-size:9px;color:#8b95a1}.production-card>.primary{width:100%;font-size:12px;min-height:44px}.production-card>.text-button{display:block;margin:10px auto;font-size:11px}.job-link{font-size:9px;color:#0f9d6b}.job-card{border:0;background:white}.job-grid{max-width:900px}
@media(max-width:700px){main[data-page=stock],main[data-page=property]{padding-top:14px}.asset-quote{padding:14px;margin-bottom:10px}.asset-quote .spark{height:30px}.asset-price{font-size:25px;margin-top:10px}.asset-select{margin-bottom:10px;padding:8px 12px}.order-card{padding:14px}.page-heading h1{font-size:23px}.trade-submit{min-height:42px}.order-fields input{padding:10px 0}.job-link{grid-column:2;grid-row:3;font-size:8px}.job-card>.goal{grid-column:2/4}.job-card>.pill{font-size:8px}.job-card .primary{background:#0f9d6b}.job-card .job-link{display:block}.district-select>span{width:100%;padding-left:0}.quote-summary strong{font-size:18px}.order-card .market-caption{font-size:8px;line-height:1.6}footer{color:#adb5bd}.stock-symbol{flex-shrink:0}}
@media(max-width:700px){
  main[data-page=stock] .page-heading p,main[data-page=property] .page-heading p{display:none}
  main[data-page=stock] .page-heading,main[data-page=property] .page-heading{margin-bottom:10px}
  .asset-quote{padding:12px 14px}.asset-identity .stock-symbol{width:28px;height:28px;font-size:15px}.asset-identity h2{font-size:14px}.asset-price{margin-top:7px;font-size:24px}.asset-quote .spark{height:22px;margin:4px 0}.quote-foot{font-size:9px}
  .book-empty{min-height:30px;padding:7px 0}.quote-row{min-height:26px;padding:5px 8px}.orderbook{padding:7px 0 9px}.orderbook h3{margin-bottom:5px}.order-entry{padding-top:9px}.trade-sides{margin-bottom:8px}.order-available{margin-top:8px}.order-total{padding:8px 0;margin-top:8px}.order-fields input{padding:9px 0}.order-card .market-caption{margin-top:7px}
}
@media(max-width:700px){.quote-compact{display:grid;grid-template-columns:1fr auto;gap:8px}.quote-compact .spark{display:none}.quote-compact .asset-price{font-size:20px;margin:0;align-self:center;text-align:right}.quote-compact .asset-price>span{display:block;margin:3px 0 0;font-size:10px}.quote-compact .quote-foot{grid-column:1/3}.quote-compact .asset-identity{gap:8px}.quote-compact .asset-identity h2{font-size:13px}.quote-compact .asset-identity span:not(.stock-symbol){font-size:8px}.quote-compact .asset-identity .stock-symbol{width:27px;height:27px}}
@media(max-width:700px){.job-card>.goal,.job-card>.progress{display:none}.job-card .primary{min-height:34px;padding:7px 10px}.job-card{padding:12px 14px}.job-card h2{margin:0}.salary{gap:4px}.job-emoji{margin:0}.job-grid{gap:10px}}
.primary:hover:not(:disabled){background:#0b7d55}.trade-submit.buy:hover:not(:disabled){background:#e03645}.trade-submit.sell:hover:not(:disabled){background:#1b64da}input:focus-visible{outline:2px solid #0f9d6b;outline-offset:2px}.secondary{border-color:#edf0f3}
.neighborhood-picker{display:flex;align-items:center;gap:4px;background:white;border-radius:12px;padding:8px 10px;margin-bottom:10px;max-width:660px}.neighborhood-picker>button:first-child{display:flex;align-items:center;flex:1;min-width:0;gap:8px;background:none;text-align:left;padding:4px;color:#333d4b}.neighborhood-picker span{font-size:9px;color:#8b95a1;white-space:nowrap}.neighborhood-picker strong{font-size:12px}.neighborhood-picker small{font-size:8px;color:#8b95a1;margin-left:auto}.neighborhood-picker b{font-size:16px;color:#8b95a1}.favorite-toggle{background:transparent;color:#8b95a1;min-width:34px;min-height:34px;padding:5px;font-size:22px}.favorite-toggle[aria-pressed=true]{color:#ffb020}
#district-dialog{width:440px;padding:22px;border:0;border-radius:22px;color:var(--ink);background:white}#district-dialog::backdrop{background:#191f2866}.district-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.district-dialog-head h2{font-size:21px;margin:0 0 6px}.district-dialog-head p{font-size:11px;color:#8b95a1}.district-dialog-head button{width:34px;height:34px;border-radius:50%;background:#f2f4f6;color:#6b7684;font-size:22px;flex-shrink:0}.district-search{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;margin:20px 0 12px}.district-search label{font-size:11px;color:#8b95a1}.district-search select{background:#f2f4f6;border:0;border-radius:10px;padding:9px 12px;color:#333d4b;font-size:13px}.district-search input{grid-column:1/3;width:100%;background:#f2f4f6;border:0;border-radius:10px;padding:12px;font:inherit;font-size:13px}.district-filters{display:flex;gap:6px}.district-filters button{background:#f2f4f6;border-radius:20px;padding:8px 12px;color:#8b95a1;font-size:11px}.district-filters .selected{background:#e8f7f0;color:#0f9d6b;font-weight:600}.district-results-meta{display:flex;justify-content:space-between;color:#8b95a1;font-size:10px;margin:14px 0 6px}.district-row{display:flex;align-items:center;gap:3px;border-bottom:1px solid var(--border)}.district-choice{display:flex;align-items:center;flex:1;gap:10px;background:none;color:#333d4b;text-align:left;padding:12px 0;min-width:0}.district-city-mark{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#f2f4f6;color:#8b95a1;font-size:10px;flex-shrink:0}.district-choice>div{flex:1}.district-choice strong{font-size:13px}.district-choice small{font-size:9px;color:#8b95a1;margin-top:4px}.district-open{font-size:9px;color:#8b95a1}.district-open.is-open{color:#0f9d6b}.district-pagination{display:flex;justify-content:space-between;margin-top:10px}.district-pagination button{background:#f2f4f6;color:#6b7684;border-radius:8px;padding:8px 14px;font-size:11px}.district-note{color:#8b95a1;font-size:9px;line-height:1.7;margin-top:14px}.district-empty{padding:35px 10px;font-size:12px;color:#8b95a1;text-align:center;line-height:1.8}.district-coming{background:white;border-radius:18px;text-align:center;padding:20px;max-width:660px}.coming-art{max-width:220px;margin:0 auto 14px}.district-coming h2{font-size:24px;margin:14px 0 8px}.district-coming>p{font-size:12px;color:#8b95a1}.coming-message{font-size:12px;color:#6b7684;line-height:1.8;margin:24px 0}.district-coming>.primary{width:100%;margin-bottom:12px}.district-coming>.fine-print{font-size:9px}
@media(max-width:700px){#district-dialog{padding:18px;max-width:calc(100vw - 24px)}.district-dialog-head h2{font-size:20px}.neighborhood-picker small{font-size:8px}.neighborhood-picker strong{font-size:11px}.neighborhood-picker>button:first-child{gap:6px}.neighborhood-picker span{font-size:8px}.neighborhood-picker{padding:7px 9px}.district-coming{padding:18px}.coming-art{max-width:190px}.coming-message{margin:20px 0}}
.journey-card{margin-top:12px;background:#edf8f3;border-radius:14px;padding:13px 15px;max-width:900px}.journey-steps{display:flex;gap:15px;font-size:9px;color:#8b95a1}.journey-steps>span{display:flex;align-items:center;gap:5px}.journey-steps b{display:grid;place-items:center;width:15px;height:15px;background:#dfe7f2;border-radius:50%;font-size:8px;font-weight:600}.journey-steps .done{color:#0f9d6b}.journey-steps .done b{background:#0f9d6b;color:white}.journey-next{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px}.journey-next h2{font-size:13px;letter-spacing:-.4px}.journey-next p{font-size:10px;color:#6b7684;margin-top:5px;line-height:1.6}.journey-button{display:flex;align-items:center;gap:5px;background:white;border-radius:9px;padding:10px 12px;color:#0f9d6b;font-size:11px;font-weight:600;white-space:nowrap}.journey-button svg{width:14px;height:14px}.journey-done{margin-top:12px}.journey-done .journey-steps{padding:6px 0 8px}.journey-done>p{padding-bottom:10px}
@media(max-width:700px){.journey-card{padding:12px 13px;margin-top:10px}.journey-next{display:block;margin-top:8px}.journey-next h2{font-size:12px}.journey-next p{font-size:9px;margin-top:4px}.journey-button{margin-top:9px;width:100%;justify-content:space-between;padding:8px 10px;font-size:10px;min-height:33px}.journey-steps{font-size:8px;gap:13px}main[data-page=home] .hero-card{min-height:128px}main[data-page=home] .character-scene{height:102px}main[data-page=home] .character{height:110px}main[data-page=home] .actions-grid{grid-template-columns:repeat(4,1fr);gap:6px}main[data-page=home] .action-card{display:flex;flex-direction:column;padding:10px 4px;gap:7px;min-height:65px;text-align:center}main[data-page=home] .action-card small{display:none}main[data-page=home] .action-card strong{font-size:10px}main[data-page=home] .card-icon{width:22px;height:23px}main[data-page=home] .section-title>span{font-size:8px}}
.job-card.recommended-job{box-shadow:inset 0 0 0 2px #0f9d6b}.recommended-job>.pill{background:#0f9d6b;color:white}
.growth-summary{display:grid;gap:0;margin:16px 0 10px}.growth-summary>div{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);font-size:11px;color:#8b95a1}.growth-summary strong{font-size:19px;color:#191f28}.growth-summary small{font-size:10px;display:inline;color:#8b95a1;font-weight:400}.growth-card>.growth-caption{font-size:9px;line-height:1.7;margin:10px 0 15px}.growth-card>.growth-reason{font-size:10px;margin:9px 0;text-align:center}.growth-limits{border-top:1px solid var(--border);margin-top:12px;font-size:10px;color:#8b95a1}.growth-limits summary{cursor:pointer;padding:12px 0}.growth-limits p{font-size:9px;line-height:1.8;margin-bottom:12px}.activity-connection{background:#edf8f3;border-radius:12px;padding:13px;margin-top:15px}.activity-connection strong{font-size:13px;color:#0f9d6b}.activity-connection p{font-size:11px;line-height:1.7;color:#6b7684;margin-top:6px}
@media(max-width:700px){.growth-card{padding:16px}.growth-card h2{font-size:18px}.growth-summary{margin-top:12px}.growth-summary>div{padding:10px 0}.growth-summary strong{font-size:17px}.growth-card>.text-button{margin:8px auto}.growth-card>.growth-caption{margin-bottom:12px}.growth-card h2{margin-top:7px}}
.region-index{display:flex;justify-content:space-between;max-width:660px;margin:12px 0 10px}.region-index b{font-size:13px;color:#191f28}.region-index i{font-style:normal;margin-left:3px}
.landmark-list{display:grid;gap:8px;max-width:660px;margin-bottom:12px}
.landmark-item{background:var(--surface);border:1px solid transparent;border-radius:16px;overflow:hidden}
.landmark-item.open{border-color:#0f9d6b}
.landmark-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;background:none;border:0;padding:14px 16px;color:inherit;font:inherit;cursor:pointer}
.landmark-row>div:first-child{display:grid;gap:4px;min-width:0}.landmark-row strong{font-size:14px;letter-spacing:-.3px}.landmark-row small{font-size:11px;color:var(--muted)}
.landmark-price{display:grid;justify-items:end;gap:5px;flex-shrink:0}.landmark-price b{font-size:14px}
.status-chip{display:inline-block;font-size:10px;font-weight:600;border-radius:20px;padding:3px 8px;white-space:nowrap;background:#f2f4f6;color:#6b7684}
.status-chip.open{background:#e6f6ef;color:#0f9d6b}.status-chip.mine{background:#0f9d6b;color:white}.status-chip.owned{background:#f2f4f6;color:#4e5968}
.landmark-detail{padding:14px 16px 16px;border-top:1px solid var(--border)}
.landmark-detail .order-entry form{margin-top:14px}.landmark-detail .order-entry>.trade-submit{margin-top:14px}
.landmark-detail form label{font-size:11px;color:#6b7684;font-weight:500}.landmark-detail .market-caption{font-size:10px;margin-top:8px}
.landmark-detail .foldout{border:0;margin-top:10px;background:none;padding:0}
.offer-list{margin-top:12px}.offer-list h3{font-size:11px;color:#6b7684;margin-bottom:2px}
.quick-sale{margin-top:12px}.quick-sale .secondary{width:100%;margin:8px 0 4px}
@media(max-width:700px){.landmark-row{padding:12px 14px}.landmark-row strong,.landmark-price b{font-size:13px}.landmark-detail{padding:12px 14px 14px}}

/* One blue theme: retire the leftover olive accents. */
.action-card .card-icon,.sand .card-icon,.lilac .card-icon{color:#0f9d6b}
.big-money span{color:#8b95a1}
.foldout summary::after{color:#b0b8c1}
.mode-button.online{display:inline-flex;align-items:center;gap:5px}.mode-button.online::before{content:'';width:6px;height:6px;border-radius:50%;background:#20c374}
.mode-button{background:#0f9d6b;color:#fff;border-color:#0f9d6b;font-weight:600}
.mode-button.online{background:#fff;color:#4e5968;border-color:#e5e8eb}
.company-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-width:660px;margin-bottom:10px}
.company-chip{display:grid;justify-items:center;gap:4px;background:var(--surface);border:1px solid transparent;border-radius:14px;padding:10px 4px;font:inherit;color:inherit;cursor:pointer;min-width:0}
.company-chip.selected{border-color:#0f9d6b;box-shadow:0 0 0 1px #0f9d6b inset}
.company-chip .stock-symbol{width:30px;height:30px;font-size:12px}
.company-chip strong{font-size:11px;letter-spacing:-.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.company-chip small{font-size:10px}
.stock-symbol{font-family:inherit;font-weight:700;letter-spacing:-.5px}.asset-identity .stock-symbol{font-size:15px}
.morning-card{background:linear-gradient(135deg,#0f9d6b,#4f9bff);color:#fff;border-radius:20px;padding:16px 18px;margin:0 0 14px;max-width:660px}
.morning-head{display:flex;justify-content:space-between;align-items:flex-start}.morning-head .eyebrow{color:#ffffffb0}.morning-head h2{font-size:18px;margin-top:3px;letter-spacing:-.5px}
.morning-head .text-button{color:#fff;background:#ffffff26;border-radius:8px;padding:6px 10px;font-size:11px;font-weight:600}
.morning-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.morning-grid>div{background:#ffffff1f;border-radius:12px;padding:10px 12px;display:grid;gap:4px}
.morning-grid span{font-size:10px;color:#ffffffc0}.morning-grid strong{font-size:15px}.morning-grid small{font-size:10px;font-weight:400;color:#ffffffb0}
.morning-grid i{font-style:normal;font-size:11px;margin-left:2px}.morning-card .positive,.morning-card .negative{color:#fff}
.morning-card>p{font-size:11px;color:#ffffffd0;margin-top:10px}
#result .eyebrow{color:#0f9d6b}
.main-shell{padding-top:env(safe-area-inset-top)}
.solo-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.solo-actions .trade-submit{margin-top:0;font-size:13px}
#result button:focus{outline:none}#result button:focus-visible{outline:2px solid #0f9d6b;outline-offset:2px}
html,body,button,a,input,select,label{touch-action:manipulation}body{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
/* Price chart and holdings */
.stock-chart{background:var(--surface);border-radius:18px;padding:14px 16px 10px;margin-bottom:10px;max-width:660px}
.chart-head{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:8px}
.stock-chart svg{display:block;width:100%;height:120px;overflow:visible}
.holding-card{background:var(--surface);border-radius:18px;padding:14px 16px;margin-bottom:10px;max-width:660px;box-shadow:inset 0 0 0 1.5px #e6f6ef}
.landmark-detail .holding-card{padding:0;box-shadow:none;margin-bottom:4px}
.holding-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:#4e5968;font-weight:600}
.holding-head strong{font-size:17px}.holding-head small{font-size:12px;margin-left:2px}
.holding-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:12px}
.holding-grid>div{display:grid;gap:3px}.holding-grid span{font-size:10px;color:var(--muted)}.holding-grid strong{font-size:14px;color:#191f28}
/* Asset breakdown */
.asset-detail{font-size:11px;margin-left:6px;padding:0;color:#3182f6;font-weight:600}
.asset-bar{display:flex;height:10px;border-radius:6px;overflow:hidden;background:#f2f4f6;margin:12px 0 8px}.asset-bar i{display:block;height:100%}
.asset-legend{display:flex;gap:12px;font-size:10px;color:#6b7684}.asset-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}
.asset-section{display:flex;justify-content:space-between;font-size:13px;margin:18px 0 4px;padding-bottom:6px;border-bottom:1px solid var(--border)}.asset-section span{color:#4e5968}
.asset-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #f2f4f6}
.asset-row>div{display:grid;gap:3px}.asset-row>div:last-child{text-align:right}.asset-row strong{font-size:13px}.asset-row small{font-size:10px;color:var(--muted)}.asset-row small.positive{color:var(--positive)}.asset-row small.negative{color:var(--negative)}
#result{overflow:visible}#result-content{max-height:70vh;overflow-y:auto}
/* Reward payoff */
.reward-amount{font-size:30px;font-weight:800;color:#f2a33a;text-align:center;margin:-4px 0 10px;animation:reward-pop .5s cubic-bezier(.2,1.6,.4,1) both;letter-spacing:-.5px}
@keyframes reward-pop{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}
.coin-burst{position:absolute;left:50%;top:22%;pointer-events:none;z-index:5}
.coin-burst span{position:absolute;font-size:24px;animation:coin-fly 1.1s cubic-bezier(.15,.8,.3,1) both}
@keyframes coin-fly{0%{transform:translate(-50%,0) scale(.3);opacity:1}45%{transform:translate(calc(-50% + var(--x) * .6),var(--y)) scale(1.1) rotate(calc(var(--r) * .5));opacity:1}100%{transform:translate(calc(-50% + var(--x)),calc(var(--y) + 220px)) scale(.9) rotate(var(--r));opacity:0}}
@media (prefers-reduced-motion:reduce){.coin-burst{display:none}.reward-amount{animation:none}}
@media(max-width:700px){.stock-chart svg{height:84px}.holding-head strong{white-space:nowrap;font-size:16px}}
.hero-info .asset-detail{font-size:11px;padding:6px 8px;margin:-6px 0 -6px 2px}
/* Toss Securities style investing screens */
.ts-section{background:#fff;border-radius:20px;padding:20px;margin-bottom:12px;max-width:660px}
.ts-label{font-size:13px;color:#6b7684;font-weight:500}
.ts-total{font-size:26px;font-weight:700;color:#191f28;letter-spacing:-.6px;margin-top:4px}
.ts-diff{font-size:14px;font-weight:600;margin-top:2px}.ts-diff.positive{color:#f04452}.ts-diff.negative{color:#3182f6}
.ts-title{font-size:17px;font-weight:700;color:#191f28;margin-bottom:6px}
.ts-list{margin-top:10px}
.ts-row{display:flex;align-items:center;gap:12px;width:100%;padding:11px 0;background:none;border:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.ts-logo{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font-size:14px;font-weight:700;letter-spacing:-.5px}
.ts-name{flex:1;min-width:0;display:grid;gap:3px}.ts-name strong{font-size:15px;font-weight:600;color:#191f28;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ts-name small{font-size:12px;color:#8b95a1}
.ts-right{display:grid;gap:3px;text-align:right}.ts-right strong{font-size:15px;font-weight:600;color:#191f28}.ts-right small{font-size:12px;color:#8b95a1}
.ts-right small.positive{color:#f04452}.ts-right small.negative{color:#3182f6}
.ts-back{background:none;border:0;font:inherit;font-size:15px;color:#4e5968;padding:4px 0 10px;cursor:pointer}
.ts-quote{padding:0 2px 6px;max-width:660px}
.ts-co{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:#191f28}.ts-co .ts-logo{width:28px;height:28px;font-size:11px}.ts-co small{font-size:12px;font-weight:400;color:#8b95a1;margin-left:6px}
.ts-price{font-size:30px;font-weight:700;color:#191f28;letter-spacing:-.8px;margin-top:10px}
.ts-note{font-size:12px;color:#8b95a1;margin-top:8px}
.ts-chart{max-width:660px;margin:6px 0 18px}.ts-chart svg{display:block;width:100%;height:150px}
.ts-range{display:flex;justify-content:space-between;font-size:11px;color:#8b95a1;margin-top:8px}
.ts-holding{background:#fff;border-radius:20px;padding:20px;margin-bottom:12px;max-width:660px}
.landmark-detail .ts-holding{padding:2px 0 0;margin:0}
.ts-holding h3{font-size:15px;font-weight:600;color:#4e5968}
.ts-value{font-size:24px;font-weight:700;color:#191f28;letter-spacing:-.6px;margin-top:6px}
.ts-holding dl{margin-top:14px;border-top:1px solid #f2f4f6;padding-top:6px}
.ts-holding dl>div{display:flex;justify-content:space-between;padding:7px 0;font-size:14px}.ts-holding dt{color:#6b7684}.ts-holding dd{color:#191f28;font-weight:500;margin:0}
.ts-trade{background:#fff;border-radius:20px;padding:18px 20px;margin-bottom:12px;max-width:660px}
.ts-qty{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#4e5968}
.ts-stepper{display:flex;align-items:center;background:#f2f4f6;border-radius:12px;overflow:hidden}
.ts-stepper button{width:40px;height:40px;border:0;background:none;font-size:20px;color:#4e5968;cursor:pointer}
.ts-stepper input{width:64px;border:0;background:none;text-align:center;font:inherit;font-size:16px;font-weight:600;color:#191f28;-moz-appearance:textfield}
.ts-stepper input::-webkit-outer-spin-button,.ts-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ts-total-row{display:flex;justify-content:space-between;align-items:baseline;margin:14px 0;font-size:14px;color:#4e5968}.ts-total-row strong{font-size:18px;color:#191f28}
.ts-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ts-actions button{height:52px;border:0;border-radius:14px;font:inherit;font-size:16px;font-weight:600;color:#fff;cursor:pointer}
.ts-sell{background:#3182f6}.ts-buy{background:#f04452}.ts-actions button:disabled{opacity:.35;cursor:default}
/* Asset breakdown dialog */
.ts-assets .ts-total{font-size:28px}
.ts-group{margin-top:20px}.ts-group-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:4px}
.ts-group-head strong{font-size:16px;color:#191f28}.ts-group-head span{font-size:15px;font-weight:600;color:#191f28}.ts-group-head em{font-style:normal;font-size:12px;margin-left:4px}
.ts-group-head em.positive{color:#f04452}.ts-group-head em.negative{color:#3182f6}
.ts-empty{font-size:13px;color:#8b95a1;padding:8px 0}
.ts-section h3,.ts-holding h3{margin:0}.ts-section,.ts-holding{padding-top:18px}
.ts-co small{display:inline}.ts-co>span:not(.ts-logo){display:flex;align-items:baseline}
@media(max-width:700px){.ts-chart svg{height:120px}}
/* Toss style: jobs, lottery, landmarks */
.ts-compact{padding:14px 20px}.ts-select{border:0;background:#f2f4f6;border-radius:10px;padding:8px 10px;font:inherit;font-size:14px;color:#191f28}
.job-row{cursor:default}.job-row .ts-logo{font-size:20px}.job-row em{font-style:normal;font-size:11px;color:#0f9d6b;background:#e6f6ef;border-radius:6px;padding:2px 6px;margin-left:4px;vertical-align:2px}
.ts-pill{flex-shrink:0;border:0;border-radius:10px;background:#e6f6ef;color:#0f9d6b;font:inherit;font-size:14px;font-weight:600;padding:9px 12px;cursor:pointer}
.ts-pill:disabled{background:#f2f4f6;color:#b0b8c1;cursor:default}
.ts-section .ts-note{margin-top:6px}
.ts-wide{width:100%;height:54px;border:0;border-radius:14px;font:inherit;font-size:16px;font-weight:600;color:#fff;margin-top:16px;cursor:pointer}.ts-wide:disabled{opacity:.35;cursor:default}
.lotto .picked-numbers{display:flex;justify-content:center;gap:8px;margin:14px 0 16px}
.lotto .ball{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#f2f4f6;color:#b0b8c1;font-size:15px;font-weight:700;border:0}
.lotto .ball.filled{background:#0f9d6b;color:#fff}
.lotto .number-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:6px}
.lotto .number{aspect-ratio:1;border:0;border-radius:50%;background:#f9fafb;color:#4e5968;font:inherit;font-size:13px;font-weight:500;padding:0;cursor:pointer}
.lotto .number.selected{background:#0f9d6b;color:#fff;font-weight:700}.lotto .number:disabled{opacity:.35}
.ts-holding dt small{font-size:11px;color:#b0b8c1;margin-left:6px}
.map-section{padding:14px 20px 10px}
.korea-map{position:relative;height:300px;aspect-ratio:280/420;margin:0 auto}.korea-map svg{position:absolute;inset:0;width:100%;height:100%}
.map-pin{position:absolute;transform:translate(-7px,-7px);display:flex;align-items:center;gap:5px;background:none;border:0;padding:0;font:inherit;cursor:pointer}
.map-pin i{display:block;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid #0f9d6b;box-sizing:border-box;box-shadow:0 1px 3px #0002}
.map-pin span{display:flex;align-items:center;gap:3px;font-size:12px;font-weight:600;color:#4e5968;background:#fffd;border-radius:8px;padding:2px 6px}
.map-pin b{display:inline-grid;place-items:center;min-width:16px;height:16px;border-radius:8px;background:#f2a33a;color:#fff;font-size:10px}
.map-pin.selected i{background:#0f9d6b;transform:scale(1.25)}.map-pin.selected span{background:#0f9d6b;color:#fff}
.map-browse{display:block;margin:6px auto 0;font-size:13px}
.ts-group-head .positive{color:#f04452;font-size:13px}.ts-group-head .negative{color:#3182f6;font-size:13px}
.ts-item.open{background:#f9fafb;border-radius:14px;margin:0 -10px;padding:0 10px}
.ts-item .landmark-detail{border-top:1px solid #eef0f3;padding:12px 0 14px}
.status-open{color:#0f9d6b!important}.status-mine{color:#f2a33a!important;font-weight:600}
.ts-link{display:block;margin-top:8px;font-size:12px;color:#8b95a1}
.map-pin span{white-space:nowrap}.map-pin.left{flex-direction:row-reverse;transform:translate(calc(-100% + 7px),-7px)}
.korea-map{height:330px}.map-pin.up{margin-top:-9px}.map-pin.down{margin-top:9px}
.map-pin.left{flex-direction:row-reverse;transform:translate(calc(-100% + 7px),-7px)}
/* Home lobby: character in the middle, menus on both sides */
.home-assets .text-button{font-size:13px;color:#8b95a1;padding:0}
.home-trend{position:relative;margin:12px 0 4px}.home-trend svg{display:block;width:100%;height:56px}.home-trend span{position:absolute;right:0;top:-2px;font-size:11px;color:#b0b8c1}
.home-sub{display:flex;gap:16px;margin-top:10px;padding-top:12px;border-top:1px solid #f2f4f6;font-size:13px;color:#8b95a1}.home-sub b{color:#191f28;font-weight:600;margin-left:4px}
.lobby{display:grid;grid-template-columns:84px 1fr 84px;align-items:center;gap:8px;max-width:660px;background:linear-gradient(180deg,#e8f7f0 0%,#f7faff 100%);border-radius:24px;padding:18px 12px 16px;margin-bottom:8px}
.lobby-side{display:grid;gap:12px}
.lobby-btn{display:grid;justify-items:center;gap:3px;background:#fff;border:0;border-radius:18px;padding:12px 4px 10px;font:inherit;cursor:pointer;box-shadow:0 2px 0 #cfeadd}
.lobby-btn:active{transform:translateY(2px);box-shadow:none}
.lobby-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#e6f6ef;color:#0f9d6b}.lobby-icon svg{width:22px;height:22px}
.lobby-btn strong{font-size:14px;color:#191f28}.lobby-btn small{font-size:10px;color:#8b95a1;white-space:nowrap}
.lobby-stage{position:relative;display:grid;justify-items:center;padding-top:34px}
.lobby-stage .character{width:100%;max-width:170px;height:auto}
.lobby-speech{position:absolute;top:0;left:50%;transform:translateX(-50%);background:#fff;border-radius:14px;padding:7px 11px;font-size:12px;font-weight:600;color:#191f28;white-space:nowrap;box-shadow:0 2px 6px #0001}
.lobby-speech::after{content:'';position:absolute;left:50%;bottom:-5px;margin-left:-5px;border:5px solid transparent;border-bottom:0;border-top-color:#fff}
.lobby-title{font-size:12px;font-weight:700;color:#0f9d6b;background:#fff;border-radius:10px;padding:4px 10px;margin-top:2px}
.lobby-goal{width:80%;height:6px;background:#dbe7f7;border-radius:3px;overflow:hidden;margin-top:8px}.lobby-goal i{display:block;height:100%;background:#0f9d6b;border-radius:3px}
.lobby-goal-text{font-size:10px;color:#8b95a1;margin-top:4px}
.lobby-note{text-align:center;font-size:12px;color:#8b95a1;margin:0 0 12px;max-width:660px}
.lobby-stage .character{height:150px;width:auto;max-width:none}
.home-trend span{position:static;display:block;text-align:right;margin-top:4px}
main[data-page=home] .lobby-stage .character{height:165px;width:auto}
#toast{background:#191f28}
/* Game-style bottom bar: four menus around a big raised home button */
.mobile-nav.game-nav{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));border:0;border-radius:24px;background:#fff;box-shadow:0 6px 20px #191f281f,0 2px 0 #d5eadf;padding:6px 6px 8px;align-items:flex-end}
.game-nav>button{display:flex;flex:1;flex-direction:column;align-items:center;gap:3px;background:none;border:0;padding:4px 0;font:inherit;color:#8b95a1;cursor:pointer;transition:transform .15s}
.game-nav>button:active{transform:scale(.92)}
.game-nav .nav-icon{display:grid;place-items:center;width:38px;height:32px;border-radius:12px;transition:background .15s}
.game-nav .nav-icon svg{width:21px;height:21px}
.game-nav .nav-label{font-size:10px;font-weight:600}
.game-nav>button.active{color:#0f9d6b}.game-nav>button.active .nav-icon{background:#e6f6ef}
.game-nav .nav-home{flex:1.2;margin-top:-26px}
.game-nav .nav-home .nav-icon{width:60px;height:60px;border-radius:22px;background:linear-gradient(160deg,#2fbf8a,#0d8a5e);color:#fff;box-shadow:0 4px 0 #0a6b49,0 8px 16px #0f9d6b55;border:4px solid #fff}
.game-nav .nav-home .nav-icon svg{width:28px;height:28px}
.game-nav .nav-home.active .nav-icon{background:linear-gradient(160deg,#2fbf8a,#0d8a5e)}
.game-nav .nav-home:active .nav-icon{transform:translateY(3px);box-shadow:0 1px 0 #0a6b49,0 4px 10px #0f9d6b55}
.rank-button{display:none}
@media(max-width:700px){
  .rank-button{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;border:0;background:#fff8e6;color:#f2a33a;padding:0;cursor:pointer}
  .rank-button svg{width:18px;height:18px}.rank-button.active{background:#f2a33a;color:#fff}
  main{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
}
@media(max-width:700px){#toast{bottom:calc(118px + env(safe-area-inset-bottom))}}
/* Account-style asset overview */
.home-accts{display:grid;margin-top:12px;border-top:1px solid #f2f4f6;padding-top:4px}
.home-accts button{display:flex;justify-content:space-between;align-items:center;background:none;border:0;font:inherit;padding:9px 0;cursor:pointer;color:#4e5968;font-size:14px}
.home-accts span{display:flex;align-items:center;gap:8px}.home-accts i,.acct-dot{display:inline-block;width:8px;height:8px;border-radius:50%}
.home-accts b{color:#191f28;font-weight:600}
.acct-head{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px}
.acct-head strong{font-size:17px;color:#191f28}.acct-share{font-size:12px;color:#8b95a1;background:#f2f4f6;border-radius:6px;padding:2px 6px}
.acct-value{grid-column:1/-1;display:flex;align-items:baseline;gap:8px;margin-top:4px}.acct-value b{font-size:22px;color:#191f28;letter-spacing:-.5px}
.acct-value small{font-size:13px;font-weight:600}.acct-value small.positive{color:#f04452}.acct-value small.negative{color:#3182f6}
.acct-rows{margin-top:10px;border-top:1px solid #f2f4f6;padding-top:6px}.acct-rows>div{display:flex;justify-content:space-between;padding:6px 0;font-size:14px}.acct-rows dt{color:#6b7684}.acct-rows dd{margin:0;color:#191f28;font-weight:500}
.acct .ts-list{margin-top:8px;border-top:1px solid #f2f4f6}
.ts-link-btn{background:none;border:0;font:inherit;font-size:13px;color:#0f9d6b;padding:4px 0;cursor:pointer}
.acct-share{justify-self:start}.acct{padding-bottom:14px}
.donut-wrap{display:flex;align-items:center;gap:18px;margin-top:16px}
.asset-donut{position:relative;width:140px;height:140px;flex-shrink:0}.asset-donut svg{width:100%;height:100%}
.donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.donut-center small{font-size:11px;color:#8b95a1}.donut-center b{font-size:16px;color:#191f28;letter-spacing:-.4px}
.donut-legend{flex:1;display:grid;gap:10px}
.donut-legend>div{display:grid;grid-template-columns:1fr auto;row-gap:1px}
.donut-legend span{display:flex;align-items:center;gap:6px;font-size:13px;color:#4e5968}.donut-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}
.donut-legend b{font-size:14px;color:#191f28;text-align:right}.donut-legend small{grid-column:1/-1;font-size:11px;color:#8b95a1;padding-left:14px}
.dev-meter{margin-top:12px;background:#f9fafb;border-radius:12px;padding:10px 12px}
.dev-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:#6b7684}.dev-head b{font-size:16px;color:#f2a33a}.dev-head small{font-size:11px;color:#b0b8c1;font-weight:400}
.dev-bar{height:8px;background:#eceff3;border-radius:4px;overflow:hidden;margin:6px 0}.dev-bar i{display:block;height:100%;background:linear-gradient(90deg,#ffc35c,#f2a33a);border-radius:4px;transition:width .4s}
.dev-meter p{font-size:11px;color:#8b95a1}
.dev-head b{white-space:nowrap}
.dev-head small{display:inline}
.trend{font-style:normal;font-size:11px;font-weight:600;margin-left:6px}.trend.up{color:#f04452}.trend.down{color:#3182f6}.trend.flat{color:#b0b8c1}
.map-pin .trend{margin-left:0;font-size:10px}.map-pin.selected .trend{color:#fff}
.ts-slip{font-size:12px;color:#8b95a1;margin:-6px 0 12px;text-align:right}
.mm-tag{font-style:normal;font-size:10px;font-weight:600;color:#8b95a1;background:#f2f4f6;border-radius:5px;padding:1px 5px;margin-left:5px;vertical-align:1px}
/* Simplified home: the character works right in the lobby */
.lobby{grid-template-columns:1fr;justify-items:center;gap:0;padding:18px 16px 16px}
.lobby .lobby-stage{width:100%}
.job-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:100%;margin-top:14px}
.job-chip{display:grid;justify-items:center;gap:2px;background:#fff;border:1.5px solid transparent;border-radius:14px;padding:8px 2px;font:inherit;font-size:12px;font-weight:600;color:#4e5968;cursor:pointer;box-shadow:0 2px 0 #cfeadd}
.job-chip span{font-size:20px}.job-chip.selected{border-color:#0f9d6b;color:#0f9d6b;background:#f3fbf7}
.job-detail{font-size:12px;color:#6b7684;margin:10px 0 8px;text-align:center}
.work-button{width:100%;display:grid;gap:2px;justify-items:center;border:0;border-radius:18px;padding:13px 10px;background:linear-gradient(160deg,#2fbf8a,#0d8a5e);color:#fff;font:inherit;cursor:pointer;box-shadow:0 4px 0 #0a6b49}
.work-button b{font-size:17px}.work-button small{font-size:11px;color:#ffffffc8}
.work-button:active{transform:translateY(3px);box-shadow:0 1px 0 #0a6b49}.work-button:disabled{opacity:.45;cursor:default;transform:none}
.home-extras{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;max-width:660px;margin-bottom:12px}
.extra-card{display:flex;align-items:center;gap:10px;background:#fff;border:0;border-radius:16px;padding:12px 14px;font:inherit;text-align:left;cursor:pointer}
.extra-card:disabled{opacity:.5;cursor:default}.extra-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#fff4e0;color:#f2a33a;font-size:16px;flex-shrink:0}
.extra-card b{display:block;font-size:13px;color:#191f28}.extra-card small{font-size:11px;color:#8b95a1}
/* Landmark collection */
.collect-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.collect-summary>div{display:grid;gap:4px}
.collect-summary b{font-size:22px;color:#191f28;letter-spacing:-.5px}.collect-summary small{font-size:13px;color:#8b95a1;font-weight:500}
.collect-count{font-size:13px;color:#f2a33a;font-weight:700}
/* Home is one fixed screen on phones: no scrolling, the lobby stretches to fill. */
@media(max-width:700px){
  body[data-page=home]{overflow:hidden;overscroll-behavior:none}
  body[data-page=home] .main-shell{height:100dvh;display:flex;flex-direction:column;overflow:hidden}
  main[data-page=home]{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:10px 16px calc(92px + env(safe-area-inset-bottom));overflow:hidden}
  main[data-page=home]>*{margin:0;flex-shrink:0}
  main[data-page=home] .home-assets{padding:14px 18px}
  main[data-page=home] .home-assets .ts-total{font-size:26px}
  main[data-page=home] .lobby{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:space-between;padding:12px 14px 14px;margin:0}
  main[data-page=home] .lobby-stage{flex:1 1 auto;min-height:0;padding-top:0;align-content:center}
  main[data-page=home] .lobby-stage .character{height:min(190px,24dvh)}
  main[data-page=home] .job-chips{margin-top:8px}
  main[data-page=home] .home-extras{grid-template-columns:1fr 1fr}main[data-page=home] .extra-card:only-child{grid-column:1/-1}
  main[data-page=home] .extra-card{padding:10px 12px;gap:8px}
}
/* Character shop */
.lobby{position:relative}
.lobby-stage.has-bg{border-radius:18px;overflow:hidden}
.stage-deco{position:absolute;left:10px;bottom:6px;font-size:40px;opacity:.55;pointer-events:none}
.stage-character{background:none;border:0;padding:0;cursor:pointer;display:grid;justify-items:center}
.dress-button{position:absolute;top:8px;right:8px;background:#fff;border:0;border-radius:12px;padding:6px 10px;font:inherit;font-size:12px;font-weight:700;color:#191f28;box-shadow:0 2px 0 #cfeadd;cursor:pointer}
.dress-button:active{transform:translateY(2px);box-shadow:none}
.shop-stage{display:block;padding:12px;margin-bottom:12px}
.shop-stage .lobby-stage{min-height:200px;padding:12px 0;align-content:center}
.shop-stage .character{height:180px;width:auto}
.shop-slots{margin-bottom:10px}
.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:10px}
.shop-card{display:grid;justify-items:center;gap:4px;background:#fff;border:2px solid transparent;border-radius:16px;padding:12px 6px;font:inherit;cursor:pointer}
.shop-card b{font-size:13px;color:#191f28}.shop-card small{font-size:11px;color:#8b95a1}
.shop-card.trying{border-color:#0f9d6b;background:#f3fbf7}
.shop-card.worn{border-color:#0f9d6b}.shop-card.worn small{color:#0f9d6b;font-weight:700}
.shop-emoji{font-size:30px;line-height:36px}
.shop-swatch{width:32px;height:32px;border-radius:10px;margin:2px 0}
.shop-buy{width:100%;border:0;border-radius:16px;padding:14px;background:linear-gradient(160deg,#2fbf8a,#0d8a5e);color:#fff;font:inherit;font-size:15px;font-weight:700;box-shadow:0 4px 0 #0a6b49;cursor:pointer;margin-bottom:10px}
.shop-buy:disabled{background:#c9d1db;box-shadow:none}
.shop-note{text-align:center}
.stock-about{padding:14px 18px}.stock-about p{margin:6px 0 0;font-size:13px;color:#4e5968;line-height:1.5}
.kind-tag{display:inline-block;font-size:12px;font-weight:700;border-radius:8px;padding:3px 8px}
.kind-stable{background:#e6f6ec;color:#2b9a5b}.kind-growth{background:#e6f6ef;color:#0f9d6b}.kind-wild{background:#fff3db;color:#d48a00}
.market-picker.shop-slots{display:grid;grid-template-columns:repeat(4,1fr)}
/* Day recap after work */
#close-result:focus,#close-result:focus-visible{outline:none}
.day-badge{width:max-content;margin:0 auto 6px;background:#e6f6ef;color:#0f9d6b;font-size:13px;font-weight:800;border-radius:999px;padding:5px 12px;letter-spacing:.3px}
#result .reward-amount{font-size:38px;margin:4px 0 2px}
.day-sub{text-align:center;color:#6b7684;font-size:14px;margin:0 0 16px}
.earn-chips{display:flex;gap:8px;margin-bottom:10px}
.earn-chips>div{flex:1;background:#f9fafb;border-radius:14px;padding:10px 6px;text-align:center}
.earn-chips span{display:block;font-size:12px;color:#8b95a1;margin-bottom:2px}.earn-chips b{font-size:15px;color:#191f28}
.perf-pill{display:flex;align-items:center;justify-content:space-between;background:#f9fafb;border-radius:14px;padding:10px 12px;margin-bottom:10px;font-size:14px;font-weight:600;color:#333d4b}
.perf-pill>span{display:flex;align-items:center;gap:8px}.perf-pill .ts-logo,.perf-pill [class*=logo]{width:26px;height:26px;font-size:11px}
.perf-pill b.positive{color:#f04452}.perf-pill b.negative{color:#3182f6}
.day-total{display:flex;justify-content:space-between;align-items:baseline;padding:10px 4px 2px;font-size:14px;color:#8b95a1}.day-total b{font-size:17px;color:#191f28}
#close-result{font-size:16px;font-weight:700}
/* Weekly lottery event */
.lotto-banner{display:flex;align-items:center;gap:12px;border-radius:18px;padding:14px 16px;margin-bottom:12px}
.lotto-banner>span{font-size:26px}.lotto-banner b{display:block;font-size:15px;color:#191f28}.lotto-banner small{font-size:12px;color:#6b7684}
.lotto-banner.open{background:#fff4d6}.lotto-banner.closed{background:#f2f4f6}
.extra-card.lotto-open{background:#fff4d6;box-shadow:0 0 0 2px #f2c230 inset;animation:lotto-glow 1.6s ease-in-out infinite}
@keyframes lotto-glow{50%{box-shadow:0 0 0 2px #f2c23066 inset}}
@media (prefers-reduced-motion:reduce){.extra-card.lotto-open{animation:none}}
/* Real-day play: gain pop, morning and lottery results */
.gain-pop{position:fixed;transform:translate(-50%,-10px);font-size:22px;font-weight:800;color:#f2a33a;pointer-events:none;z-index:50;animation:gain-up .9s ease-out forwards;text-shadow:0 2px 0 #fff}
@keyframes gain-up{to{transform:translate(-50%,-70px);opacity:0}}
#result .morning-title{text-align:center;font-size:22px;margin:6px 0 4px}
.lotto-tickets{display:grid;gap:8px;margin:12px 0 4px}
.lotto-tickets>div{background:#f9fafb;border-radius:14px;padding:8px 10px}
.lotto-tickets small{display:block;text-align:center;font-size:12px;color:#6b7684;margin-top:4px}
.lotto-tickets .picked-numbers .ball,.ts-holding .picked-numbers .ball{width:32px;height:32px;font-size:13px}
.collect-summary{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.collect-summary b{font-size:20px}
/* The character scales to the space left on short phones instead of clipping. */
@media(max-width:700px){
  main[data-page=home] .lobby-stage{display:flex;align-items:center;justify-content:center;padding:6px 0}
  main[data-page=home] .stage-character{height:100%;max-height:190px;min-height:0;display:flex;justify-content:center}
  main[data-page=home] .lobby-stage .character{height:100%;max-height:190px;min-height:0;width:auto}
}
/* Nationwide city map */
.map-section{padding:12px 12px 8px}
.korea-map.city-map{height:auto;width:100%;max-width:420px;background:#e8f7f0;border-radius:18px}
.city-map svg path{filter:drop-shadow(0 2px 0 #d0ecdf)}
.city-map .map-pin i{width:14px;height:14px;border:3px solid #8fb6ec;background:#fff}
.city-map .map-pin.some i{border-color:#0f9d6b;background:#cfe2ff}
.city-map .map-pin.complete i{border-color:#f2a33a;background:#ffd76a}
.city-map .map-pin span{font-size:12px;font-weight:700;color:#333d4b;background:#fff;box-shadow:0 1px 3px #0001;padding:3px 7px;gap:4px}
.city-map .map-pin small{font-size:10px;font-weight:600;color:#8b95a1}
.city-map .map-pin.selected span{background:#0f9d6b;color:#fff}.city-map .map-pin.selected small{color:#dbe8ff}
.city-map .map-pin.up{margin-top:-12px}.city-map .map-pin.down{margin-top:12px}
.collect-summary small{white-space:nowrap}
.district-tabs{display:flex;overflow-x:auto;gap:6px;margin-bottom:12px;scrollbar-width:none}
.district-tabs::-webkit-scrollbar{display:none}
.district-tabs button{flex:0 0 auto}
.collect-summary b{white-space:nowrap}
.collect-summary b small{display:inline;margin-left:2px}.district-tabs button{font-size:13px;padding:7px 14px;border-radius:10px}
.stock-about p:first-child{margin-top:0;font-size:14px;color:#333d4b}.stock-link{background:#f3fbf7;border-radius:12px;padding:10px 12px;margin-top:10px!important}

/* Item tiers and value */
.tier-badge{font-size:10px;font-weight:700;border-radius:6px;padding:2px 6px;line-height:1.3}
.shop-card .shop-worth{color:#ff7a59;font-weight:600}
.shop-panel{background:#fff;border-radius:16px;padding:14px 16px;margin-bottom:10px}
.shop-panel-head{display:flex;align-items:center;gap:8px}.shop-panel-head b{font-size:15px;color:#191f28}
.shop-panel-value{margin-top:8px;font-size:13px;color:#4e5968}.shop-panel-value b{font-size:18px;color:#191f28}.shop-panel-value small{color:#8b95a1;margin-left:4px}
.shop-panel p{font-size:12px;color:#6b7684;margin:6px 0 12px;line-height:1.5}
.shop-panel .shop-buy{margin-bottom:0}
.shop-sell{width:100%;border:0;border-radius:16px;padding:13px;background:#f2f4f6;color:#4e5968;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.shop-panel-value small{display:inline-block}

/* Landmark levels and neighborhood sets */
.lv-badge{display:inline-block;font-size:10px;font-weight:700;color:#0f9d6b;background:#e6f6ef;border-radius:6px;padding:1px 5px;vertical-align:2px}
.upgrade-card{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f3fbf7;border-radius:14px;padding:12px 14px;margin-bottom:10px}
.upgrade-card b{display:block;font-size:14px;color:#191f28}.upgrade-card small{font-size:12px;color:#6b7684}.upgrade-card em{font-style:normal;color:#0f9d6b;font-weight:700}
.upgrade-card .primary{width:auto;flex:none;padding:10px 14px;font-size:13px;margin:0}
.upgrade-card.max{display:block;background:#fff8e6}
.set-bonus{font-size:12px;color:#6b7684;background:#f9fafb;border-radius:10px;padding:8px 10px;margin:0 0 8px}
.set-bonus.done{color:#a76b00;background:#fff4d6;font-weight:700}
/* Stock news */
.news-card{display:grid;gap:4px;width:100%;text-align:left;border:0;border-radius:16px;padding:14px 16px;margin-bottom:10px;background:#fff;font:inherit;cursor:pointer}
.news-card .news-kicker{font-size:11px;font-weight:700;color:#8b95a1}
.news-card b{font-size:15px;color:#191f28}
.news-card>span:not(.news-kicker){font-size:13px;color:#4e5968}
.news-card small{font-size:11px;color:#8b95a1}
.news-card em{font-style:normal;font-weight:700}
.news-card.preview.bright em{color:#e5484d}.news-card.preview.gloomy em{color:#0f9d6b}.news-card.preview.even em{color:#6b7684}
.news-card.preview{box-shadow:inset 0 0 0 2px #ffe08a;background:#fffbea}
.morning-news{font-size:13px;color:#4e5968;margin:10px 0 0;text-align:left}.morning-news.next{color:#8b95a1;font-size:12px;margin-top:4px}
.job-chip{position:relative}.rush-badge{position:absolute;top:-6px;right:-4px;font-style:normal;font-size:10px;font-weight:700;color:#fff;background:#e5484d;border-radius:8px;padding:1px 5px}

/* Stakes */
.stake-card .stake-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.stake-head strong{display:block;font-size:22px;color:#191f28;margin-top:2px}
.stake-tier{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;color:#a76b00;background:#fff4d6;border-radius:6px;padding:2px 6px}
.stake-cap{text-align:right;font-size:12px;color:#6b7684}.stake-cap span,.stake-cap small{display:block}.stake-cap b{font-size:15px;color:#191f28}
.stake-bar{position:relative;height:10px;border-radius:6px;background:#f2f4f6;margin:14px 0 4px;overflow:visible}
.stake-bar>span{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#2fbf8a,#0d8a5e)}
.stake-bar i{position:absolute;top:-3px;width:2px;height:16px;background:#c9d1db;border-radius:1px}
.stake-scale{display:flex;justify-content:space-between;font-size:11px;color:#8b95a1}
.stake-perks{list-style:none;padding:0;margin:12px 0 4px;display:grid;gap:6px}
.stake-perks li{display:flex;align-items:center;gap:10px;font-size:13px;color:#8b95a1;background:#f9fafb;border-radius:10px;padding:8px 10px}
.stake-perks li b{min-width:34px;color:#8b95a1}.stake-perks li span{flex:1}.stake-perks li em{font-style:normal;color:#0f9d6b;font-weight:700}
.stake-perks li.on{color:#191f28;background:#eefaf4}.stake-perks li.on b{color:#0f9d6b}
.qty-quick{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.qty-quick button{border:0;border-radius:10px;background:#f2f4f6;color:#4e5968;font:inherit;font-size:12px;font-weight:600;padding:6px 10px;cursor:pointer}

/* Locked neighborhoods */
.map-pin.locked i{background:#c9d1db;border-color:#e5e8eb}.map-pin.locked span{color:#8b95a1;background:#f2f4f6}
.set-bonus.locked{background:#f2f4f6;color:#6b7684}
/* Jackpot */
.jackpot-card{display:grid;gap:4px;text-align:center;background:linear-gradient(160deg,#fff4d6,#ffe7a3);border-radius:18px;padding:18px 16px;margin-bottom:12px}
.jackpot-card .eyebrow{color:#a76b00}.jackpot-card strong{font-size:30px;color:#191f28;letter-spacing:-.5px}
.jackpot-card small{font-size:12px;color:#7a5a12}.jackpot-card p{font-size:12px;color:#7a5a12;margin:6px 0 0}

/* Home and real estate */
.home-stage{overflow:hidden;border-radius:18px}
.home-scene{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.home-stage>.stage-character,.home-stage>.character{position:relative;z-index:1}
.home-stage>.dress-button{z-index:2}
.own-badge{position:absolute;left:10px;top:8px;z-index:1;font-size:11px;font-weight:700;color:#0b7d55;background:#fffffff0;border-radius:10px;padding:4px 8px}
.address-line{display:grid;gap:1px;width:100%;margin:10px 0 2px;border:0;background:none;font:inherit;font-size:13px;font-weight:700;color:#333d4b;cursor:pointer;text-align:center}
.address-line small{font-size:11px;font-weight:500;color:#8b95a1}
.my-home strong{display:block;font-size:18px;color:#191f28;margin:4px 0 10px}
.home-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.home-stats div{background:#f9fafb;border-radius:12px;padding:10px}.home-stats span{display:block;font-size:11px;color:#8b95a1}.home-stats b{font-size:15px;color:#191f28}
.home-perk{font-size:13px;color:#0b7d55;background:#eefaf4;border-radius:10px;padding:8px 10px;margin:10px 0 6px}
.set-bonus.perk{background:#eefaf4;color:#0b7d55}
.estate-option{background:#f9fafb;border-radius:14px;padding:12px 14px;margin-bottom:10px}
.estate-option-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.estate-option-head b{font-size:14px;color:#191f28}.estate-option-head small{font-size:12px;color:#6b7684;text-align:right}
.estate-option ul{list-style:none;padding:0;margin:8px 0 10px;display:grid;gap:4px;font-size:12px;color:#4e5968}.estate-option em{font-style:normal;color:#8b95a1}
.estate-option .primary{width:100%;margin:0}
.estate-home-note{font-size:13px;color:#4e5968;background:#f3fbf7;border-radius:12px;padding:10px 12px;margin:0 0 10px}
.earn-chips .cost b{color:#0f9d6b}

/* Energy */
.energy-bar{display:flex;gap:3px;justify-content:center;margin:8px 0 0}
.energy-bar i{width:14px;height:6px;border-radius:3px;background:#e5e8eb}
.energy-bar i.on{background:#ffb400}.energy-bar i.bonus{background:#ff7a59}
.ad-energy{display:block;width:100%;margin-top:10px;border:0;border-radius:14px;padding:12px;background:#fff4d6;color:#a76b00;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.ad-energy small{font-weight:500;color:#c08a2a;margin-left:4px}
.energy-note{text-align:center;font-size:12px;color:#8b95a1;margin:8px 0 0}

/* Morning ledger */
.ledger-head{display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:#8b95a1;margin-bottom:14px}
.ledger-kicker{font-size:13px;color:#8b95a1;margin:0}
.ledger-total{font-size:30px;font-weight:800;letter-spacing:-.5px;margin:2px 0 14px}
.ledger-total.positive{color:#e5484d}.ledger-total.negative{color:#3182f6}
.ledger-rows{margin:0;border-top:1px solid #f2f4f6}
.ledger-rows div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #f2f4f6;font-size:14px}
.ledger-rows dt{color:#6b7684}.ledger-rows dd{margin:0;font-weight:700;color:#191f28}.ledger-rows dd.cost{color:#0f9d6b}
.ledger-warn{font-size:12px;color:#e5484d;margin:8px 0 0}
.ledger-sec{margin-top:16px;text-align:left}
.ledger-sec h3{font-size:12px;font-weight:700;color:#8b95a1;margin:0 0 6px}
.ledger-sec p{font-size:14px;color:#333d4b;margin:0 0 4px}
.ledger-sec p.next{font-size:13px;color:#6b7684}.ledger-sec p.next span{font-size:11px;font-weight:700;color:#8b95a1;background:#f2f4f6;border-radius:6px;padding:1px 6px;margin-left:4px}
.ledger-nums{font-weight:700;letter-spacing:1px}

/* Wardrobe art */
.shop-art{width:64px;height:48px;display:block}
.shop-art.bg{width:72px;height:48px;border-radius:10px}
.shop-card.worn .shop-art,.shop-card.trying .shop-art{transform:scale(1.04)}
.twinkle path{transform-box:fill-box;transform-origin:center;animation:twinkle 2.2s ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:.15;transform:scale(.6)}50%{opacity:1;transform:scale(1.1)}}
@media (prefers-reduced-motion:reduce){.twinkle path{animation:none;opacity:.8}}

/* My room */
.room-stage{min-height:200px}
.room-item{position:absolute;z-index:1;transform:translateX(-0%);line-height:1;filter:drop-shadow(0 3px 2px rgba(0,0,0,.12));pointer-events:none}
.room-item.ghost{opacity:.5;outline:2px dashed #0f9d6b;outline-offset:3px;border-radius:8px}
.room-empty{position:absolute;left:0;right:0;bottom:12px;z-index:1;margin:0;text-align:center;font-size:12px;color:#8b95a1}
main[data-page=home] .room-stage{min-height:min(220px,28dvh)}
.shop-stage .room-stage{min-height:210px}
.room-cap{font-size:13px;color:#4e5968;margin:0 0 10px;text-align:center}.room-cap b{color:#191f28}
.shop-grid{grid-template-columns:repeat(2,1fr)}
.shop-card .shop-emoji{font-size:38px;line-height:44px}
.shop-effect{font-size:11px;color:#0b7d55;text-align:center;line-height:1.3;min-height:28px}
.shop-panel-effect{color:#0b7d55 !important;font-weight:600}
.shop-panel-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.shop-panel-actions .shop-buy,.shop-panel-actions .shop-sell{margin:0}

/* 내 방 card */
.room-card{width:100%;background:#fff;border-radius:18px;padding:14px;box-shadow:0 1px 0 #eef0f3}
.room-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}
.room-head b{font-size:15px;color:#191f28}.room-head span{font-size:12px;color:#8b95a1;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-head .text-button{font-size:12px;white-space:nowrap}
.room-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.room-tile{aspect-ratio:1;border-radius:14px;background:#f4f6f8;display:grid;place-items:center;align-content:center;gap:2px;padding:6px 4px;position:relative}
.room-tile.filled{background:linear-gradient(180deg,#f7f9fb,#eef2f6)}
.room-tile span{font-size:9px;line-height:1.2;color:#4e5968;text-align:center;font-weight:600}
.room-tile.empty{border:1.5px dashed #d1d6db;background:#fafbfc;color:#b0b8c1;font-size:22px;font-weight:300;cursor:pointer;font-family:inherit}
.room-tile.ghost{outline:2px dashed #0f9d6b;outline-offset:-2px;background:#f3fbf7}.room-tile.ghost img{opacity:.55}
.furniture-img{width:62%;height:auto;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 4px 6px rgba(0,0,0,.08))}
.furniture-img.card{width:56px;height:56px}
.lobby .room-card{margin-bottom:12px}
.room-card,.room-grid,.room-head span{min-width:0}
.room-card{max-width:100%}
.room-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.furniture-img{max-width:100%}

/* ===== Finance-app style (home, shopping, sheet) ===== */
@media(max-width:700px){
  body[data-page=home]{overflow:auto;overscroll-behavior:auto}
  body[data-page=home] .main-shell{height:auto;display:block;overflow:visible}
  main[data-page=home]{display:block;overflow:visible;padding:12px 16px calc(100px + env(safe-area-inset-bottom))}
  main[data-page=home]>*{margin:0 0 12px}
}
.fin-card{background:#fff;border-radius:22px;padding:20px;margin:0 0 12px;max-width:660px}
.fin-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.fin-card-head b{font-size:17px;color:#191f28;letter-spacing:-.2px}
.fin-card-head .text-button{font-size:14px;color:#8b95a1}
.fin-muted{font-size:13px;color:#8b95a1}
.fin-total{padding:0}
.fin-total-btn{display:grid;grid-template-columns:1fr auto;align-items:center;row-gap:2px;width:100%;border:0;background:none;font:inherit;text-align:left;padding:20px 22px;cursor:pointer}
.fin-label{grid-column:1;font-size:14px;color:#6b7684;font-weight:500}
.fin-amount{grid-column:1;font-size:28px;font-weight:700;color:#191f28;letter-spacing:-.6px}
.fin-change{grid-column:1;font-size:14px;font-weight:600}
.fin-total-btn .fin-chevron{grid-column:2;grid-row:1/4}
.fin-chevron{font-style:normal;font-size:20px;color:#c5ccd3;margin-left:6px}
.fin-energy{font-size:14px;font-weight:700;color:#191f28}.fin-energy small{font-weight:500;color:#8b95a1}
.fin-work .energy-bar{justify-content:flex-start;margin:0 0 14px}
.fin-jobs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}
.fin-job{position:relative;display:grid;justify-items:center;gap:2px;border:0;border-radius:16px;padding:12px 4px;background:#f4f6f8;font:inherit;cursor:pointer}
.fin-job span{font-size:22px}.fin-job b{font-size:13px;color:#333d4b;font-weight:600}.fin-job small{font-size:11px;color:#8b95a1}
.fin-job.selected{background:#e6f6ef;box-shadow:inset 0 0 0 1.5px #0f9d6b}.fin-job.selected b{color:#0b7d55}
.fin-primary{display:block;width:100%;border:0;border-radius:16px;padding:16px;background:#0f9d6b;color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.fin-primary:disabled{background:#d1d6db;color:#fff}
.fin-primary:active:not(:disabled){background:#0b7d55}
.fin-secondary{display:block;width:100%;margin-top:8px;border:0;border-radius:16px;padding:14px;background:#e6f6ef;color:#0b7d55;font:inherit;font-size:15px;font-weight:700;cursor:pointer}
.fin-secondary small{font-weight:500;margin-left:4px;color:#4e8ee8}
.fin-text{display:block;width:100%;margin-top:8px;border:0;background:none;color:#6b7684;font:inherit;font-size:14px;font-weight:600;padding:10px;cursor:pointer}
.fin-sub{font-size:12px;color:#8b95a1;text-align:center;margin:10px 0 0}
.fin-list{padding:8px 8px}
.fin-row{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;font:inherit;text-align:left;padding:12px;border-radius:14px;cursor:pointer}
.fin-row:active{background:#f4f6f8}
.fin-row:disabled{opacity:.45}
.fin-icon{flex:none;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-size:22px}
.fin-icon.img{background:#f4f6f8}.fin-icon.img .furniture-img{width:32px;filter:none}
.fin-row-text{flex:1;min-width:0;display:grid;gap:2px}
.fin-row-text b{font-size:15px;font-weight:600;color:#191f28;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fin-row-text small{font-size:13px;color:#8b95a1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fin-row-right{flex:none;display:flex;align-items:center;gap:2px}
.fin-row-num{display:grid;justify-items:end;gap:2px}.fin-row-num b{font-size:15px;color:#191f28}.fin-row-num small{font-size:12px}
.fin-card .fin-row{padding:12px 0}
.fin-list .fin-row{padding:12px}
.fin-stock-total{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.fin-stock-total b{font-size:22px;color:#191f28}.fin-stock-total span{font-size:14px;font-weight:600}
.fin-good{color:#2f9e63 !important;font-weight:600}
.fin-price{font-size:15px;color:#191f28}
.fin-badge{font-size:12px;font-weight:700;color:#6b7684;background:#f2f4f6;border-radius:8px;padding:4px 8px}.fin-badge.on{color:#0b7d55;background:#e6f6ef}
.fin-page-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 14px;max-width:660px}
.fin-page-head h1{font-size:24px;letter-spacing:-.5px;color:#191f28;margin:0}
.fin-pill{font-size:12px;font-weight:600;color:#4e5968;background:#fff;border-radius:999px;padding:6px 10px}
.fin-tabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 12px;max-width:660px;scrollbar-width:none}
.fin-tabs button{flex:none;border:0;border-radius:999px;padding:8px 14px;background:#fff;color:#4e5968;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.fin-tabs button.selected{background:#191f28;color:#fff}
.fin-note{font-size:12px;color:#8b95a1;line-height:1.5;margin:4px 4px 0;max-width:660px}
/* Bottom sheet */
.sheet-backdrop{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.42);display:flex;align-items:flex-end;justify-content:center;animation:fade-in .18s ease-out}
.sheet{width:100%;max-width:520px;background:#fff;border-radius:26px 26px 0 0;padding:12px 22px calc(22px + env(safe-area-inset-bottom));animation:sheet-up .24s cubic-bezier(.2,.9,.3,1)}
.sheet-grip{display:block;width:40px;height:4px;border-radius:2px;background:#e5e8eb;margin:0 auto 16px}
.sheet-item{display:grid;justify-items:center;gap:4px;margin-bottom:14px}
.furniture-img.big{width:96px;height:96px}
.sheet-title{font-size:20px;font-weight:700;color:#191f28;margin:4px 0 0;text-align:center}
.sheet-item p{margin:0;font-size:14px}
.receipt{margin:0 0 16px;border-top:1px solid #f2f4f6}
.receipt div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #f2f4f6;font-size:14px}
.receipt dt{color:#8b95a1;flex:none}.receipt dd{margin:0;color:#191f28;font-weight:600;text-align:right}.receipt dd small{color:#8b95a1;font-weight:500}
.receipt-check{width:64px;height:64px;border-radius:50%;background:#0f9d6b;color:#fff;display:grid;place-items:center;font-size:32px;font-weight:700;margin:8px auto 6px;animation:pop .35s cubic-bezier(.2,1.4,.4,1)}
.receipt-amount{text-align:center;font-size:26px;font-weight:700;color:#191f28;margin:4px 0 16px}
@keyframes sheet-up{from{transform:translateY(100%)}to{transform:none}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes pop{0%{transform:scale(.4);opacity:0}100%{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.sheet,.sheet-backdrop,.receipt-check{animation:none}}
.fin-energy{white-space:nowrap}.fin-job b{white-space:nowrap}

/* Finance style: stocks, gauge, sheet extras */
.fin-page-desc{font-size:14px;color:#6b7684;margin:-8px 0 14px;max-width:660px}
.fin-list-head{font-size:13px;font-weight:700;color:#8b95a1;padding:8px 12px 2px}
.fin-tip{font-size:12px;color:#8b95a1;line-height:1.5;margin:8px 12px 4px}
.fin-card .fin-tip{margin:8px 0 0}
.fin-quote .fin-quote-co{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.fin-quote .fin-quote-co b{display:block;font-size:16px;color:#191f28}.fin-quote .fin-quote-co small{font-size:12px;color:#8b95a1}
.fin-quote .fin-amount{font-size:30px}
.fin-reason{font-size:13px;color:#4e5968;background:#f4f6f8;border-radius:12px;padding:10px 12px;margin:12px 0 4px}.fin-reason b{color:#191f28}
.fin-about{font-size:14px;color:#333d4b;line-height:1.6;margin:0}
.val-label{font-size:13px;font-weight:700;border-radius:8px;padding:4px 10px}
.val-label.cheap,.val-text.cheap{color:#0b7d55}.val-label.cheap{background:#e6f6ef}
.val-label.fair,.val-text.fair{color:#4e5968}.val-label.fair{background:#f2f4f6}
.val-label.hot,.val-text.hot{color:#e5484d}.val-label.hot{background:#ffeef0}
.val-text{font-weight:600}
.gauge{position:relative;height:10px;border-radius:6px;background:linear-gradient(90deg,#9cc4ff 0%,#e5e8eb 35%,#e5e8eb 65%,#ffb0b6 100%);margin:6px 2px}
.gauge-mark{position:absolute;top:-5px;width:20px;height:20px;margin-left:-10px;border-radius:50%;background:#fff;border:3px solid #191f28;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.gauge-labels{display:flex;justify-content:space-between;font-size:11px;color:#8b95a1;margin-top:8px}
.limit-badge{font-size:10px;font-weight:700;color:#fff;border-radius:6px;padding:1px 5px;margin-right:4px}.limit-badge.up{background:#e5484d}.limit-badge.down{background:#3182f6}
.receipt.flat{margin:0}
.sheet{max-height:86dvh;overflow-y:auto}
.sheet-sub{text-align:center;font-size:14px;color:#6b7684;margin:4px 0 16px}
.sheet .landmark-detail{padding:0;border:0;background:none}
.sheet-backdrop{z-index:1000}

/* Settings */
.settings-button{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:transparent;color:#6b7684;padding:0}
.settings-button svg{width:21px;height:21px}
.settings-button.active{color:#0f9d6b;background:#edf8f3}
.switch{display:inline-block;width:46px;height:28px;border-radius:14px;background:#d1d6db;position:relative;transition:background .2s}
.switch i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}
.switch.on{background:#0f9d6b}.switch.on i{transform:translateX(18px)}
.privacy{padding:4px 16px 14px 62px}
.privacy h3{font-size:13px;color:#191f28;margin:12px 0 4px}
.privacy p{font-size:12.5px;line-height:1.6;color:#6b7684}
#reset-game b{color:#f04452}
@media(max-width:700px){.settings-button{width:30px;height:30px}.settings-button svg{width:19px;height:19px}}
#app-version:disabled{opacity:1;cursor:default}
/* Line icons in place of emoji */
.fin-icon svg{width:22px;height:22px;stroke-width:1.8}
.fin-job span{display:grid;place-items:center;height:28px;color:#4e5968}.fin-job span svg{width:24px;height:24px;stroke-width:1.7}
.fin-job.selected span{color:#0f9d6b}
.ico{display:inline-flex;vertical-align:-.14em}.ico svg{width:1.05em;height:1.05em;stroke-width:2}
.ico.energy{color:#f5a400;margin-right:3px}.ico.energy svg{fill:currentColor;stroke-width:1.4}
.map-pin .ico svg{width:12px;height:12px}
.ts-logo.img{background:#f4f6f8}.ts-logo.img .furniture-img{width:30px;filter:none}
.coin-burst span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:800;color:#9a6200;background:radial-gradient(circle at 35% 30%,#fff1b0,#ffc82e 55%,#e9a400);box-shadow:inset 0 0 0 1.5px #d99a00,0 2px 4px rgba(0,0,0,.15)}
.qty-quick{display:grid;grid-template-columns:repeat(5,1fr)}.qty-quick button{padding:7px 0}.qty-quick [data-qty-max]{grid-column:1/-1}
.chart-range{display:flex;gap:4px;margin:6px 0 2px}.chart-range button{border:0;border-radius:8px;background:none;color:#8b95a1;font:inherit;font-size:12px;font-weight:600;padding:4px 10px}.chart-range button.selected{background:#f2f4f6;color:#333d4b}
.ts-chart .chart-range+.ts-range{margin-top:-28px;justify-content:flex-end;pointer-events:none}
/* Shift mini games */
.mini{display:flex;align-items:center;justify-content:center;gap:18px;margin:4px 0 12px}
.pour-cup{width:84px;height:92px;overflow:visible}
.pour-glass{fill:none;stroke:#8b95a1;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.pour-coffee{fill:#8a5a3b}
.pour-band{fill:#0f9d6b26}
.pour-line{stroke:#0f9d6b;stroke-width:2;stroke-dasharray:5 4}
.pour-text b{display:block;font-size:15px;color:#191f28;line-height:1.35}.pour-text small{display:block;margin-top:4px;font-size:12px;color:#0f9d6b;font-weight:600}
.pour-button{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.pour-skip{display:block;margin:6px auto 0;font-size:12px;color:#8b95a1}
.gain-pop.perfect{color:#0f9d6b}.gain-pop.miss{color:#8b95a1}
/* Screen transitions: a short slide and fade when the screen changes. */
main.view-forward{animation:view-in-right .32s cubic-bezier(.2,.8,.2,1)}
main.view-back{animation:view-in-left .32s cubic-bezier(.2,.8,.2,1)}
main.view-fade{animation:view-fade .26s ease-out}
@keyframes view-in-right{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes view-in-left{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
@keyframes view-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
main[class^="view-"] .fin-card,main[class^="view-"] .ts-section{animation:card-in .38s cubic-bezier(.2,.8,.2,1) both}
main[class^="view-"] > :nth-child(2){animation-delay:.03s}main[class^="view-"] > :nth-child(3){animation-delay:.06s}main[class^="view-"] > :nth-child(4){animation-delay:.09s}main[class^="view-"] > :nth-child(n+5){animation-delay:.12s}
main[class^="view-"] .own-card{animation:card-in .36s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.1s + var(--i) * 22ms)}
@keyframes card-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.sheet-backdrop.still,.sheet-backdrop.still .sheet{animation:none}
.fin-card button,.own-card,.fin-row,.fin-job,.fin-primary,.fin-secondary,.ts-row,.ts-back{transition:transform .12s ease,background-color .15s ease}
.own-card:active,.fin-job:active,.fin-primary:active:not(:disabled),.fin-secondary:active,.fin-employer:active,.own-next:active{transform:scale(.97)}
@media (prefers-reduced-motion:reduce){main[class^="view-"],main[class^="view-"] *{animation:none!important}}

/* Real estate collection */
.own-hero .own-count{display:flex;align-items:baseline;gap:6px;margin:4px 0 10px}
.own-hero .own-count b{font-size:40px;font-weight:800;color:#191f28;letter-spacing:-1px;line-height:1}
.own-hero .own-count small{font-size:18px;color:#8b95a1;font-weight:600}
.own-hero p{margin:10px 0 0;font-size:14px;color:#6b7684}
.own-bar{height:8px;border-radius:4px;background:#f2f4f6;overflow:hidden}
.own-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#0f9d6b,#6aa5ff);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.own-next{display:grid;gap:10px;width:100%;text-align:left;border:0;font:inherit;cursor:pointer;color:inherit}
.own-next-row{display:flex;align-items:center;gap:12px}
.own-next-name{flex:1;min-width:0;display:grid;gap:2px}.own-next-name b{font-size:16px;color:#191f28}.own-next-name small{font-size:13px;color:#8b95a1}
.own-next-row strong{font-size:16px;color:#191f28;white-space:nowrap}
.own-next>small{font-size:13px;color:#6b7684}
.own-ready{color:#0f9d6b!important;font-weight:700}
.own-tile{position:relative;flex:none;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 18%,#fff);color:color-mix(in srgb,var(--c) 70%,#6b7684)}
.own-tile>i{position:absolute;right:-5px;bottom:-5px;width:18px;height:18px;border-radius:50%;background:#0f9d6b;color:#fff;display:grid;place-items:center;border:2px solid #fff}.own-tile>i svg{width:11px;height:11px;stroke-width:3}
.own-tile.big>i{width:26px;height:26px;right:-6px;bottom:-6px}.own-tile.big>i svg{width:15px;height:15px}
.own-tile svg{width:24px;height:24px}
.own-tile.mine{background:var(--c);color:#fff;box-shadow:inset 0 -3px 0 #0000001a}
.own-tile.big{width:76px;height:76px;border-radius:24px}.own-tile.big svg{width:40px;height:40px}
.own-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.own-card{display:grid;justify-items:start;gap:4px;padding:14px;border-radius:18px;border:1px solid #eef0f3;background:#fff;text-align:left;font:inherit;color:inherit;cursor:pointer;min-width:0}
.own-card .own-tile{margin-bottom:6px}
.own-card b{font-size:14px;color:#191f28;line-height:1.3;word-break:keep-all}
.own-card small{font-size:12px;color:#8b95a1}
.own-card em{font-style:normal;font-size:14px;font-weight:700;color:#8b95a1;margin-top:2px}
.own-card.mine{border-color:transparent;background:#f4fbf8}
.own-card em.own-mine{color:#0f9d6b}
.own-done .own-tile{animation:pop .45s cubic-bezier(.2,1.4,.4,1)}
.own-ribbon{display:inline-block;margin-top:6px;padding:4px 10px;border-radius:999px;background:#e6f6ef;color:#0f9d6b;font-size:12px;font-weight:700}
.fin-section-head{margin:18px 4px 8px}.fin-section-head b{font-size:16px;color:#191f28}
.fin-employer{display:flex;align-items:center;gap:10px;width:100%;margin-top:10px;padding:10px 12px;border:0;border-radius:14px;background:#f9fafb;font:inherit;color:inherit;text-align:left;cursor:pointer}
.fin-employer .ts-logo{flex:none;width:30px;height:30px;font-size:13px}
.fin-employer-text{flex:1;min-width:0;font-size:13px;color:#4e5968}.fin-employer b{color:#191f28}
.fin-employer strong{font-size:14px;white-space:nowrap}.fin-employer strong small{font-size:12px;font-weight:600}
.gain-pop small{display:block;font-size:13px;font-weight:700;color:#0f9d6b;text-align:center;margin-top:2px}
/* A live number flashes red when it ticks up and blue when it ticks down. */
.tick-up,.tick-down{border-radius:4px;animation:tick-flash .7s ease-out}
.tick-up{--flash:#f0445226}.tick-down{--flash:#3182f626}
@keyframes tick-flash{from{background:var(--flash)}to{background:transparent}}
@media (prefers-reduced-motion:reduce){.tick-up,.tick-down{animation:none}}
/* Spikes */
.spike-card{border:1.5px solid #ffe1e4}
.spike-bolt{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;animation:spike-pulse 1.4s ease-in-out infinite}
.spike-bolt svg{width:22px;height:22px;fill:currentColor}
.spike-bolt.up{background:#fff0f1;color:#f04452}.spike-bolt.down{background:#eaf3ff;color:#3182f6}
@keyframes spike-pulse{50%{transform:scale(1.08)}}
.limit-badge.spike{display:inline-grid;place-items:center;padding:1px 3px;background:#fff0f1;color:#f04452;vertical-align:-2px}
.limit-badge.spike svg{width:11px;height:11px;fill:currentColor}
.spike-line{display:flex;align-items:center;gap:6px}.spike-line svg{flex:none;width:15px;height:15px;fill:currentColor}
.spike-line.up{color:#f04452}.spike-line.down{color:#3182f6}.spike-line b{color:inherit}
@media (prefers-reduced-motion:reduce){.spike-bolt{animation:none}}
.spike-bolt.crowd{background:#f3efff;color:#7b61ff}.spike-bolt.crowd svg{fill:none}
.crowd-tag{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:6px;background:#f3efff;color:#7b61ff;font-size:11px;font-weight:700;vertical-align:2px}
.spike-line.crowd{color:#7b61ff}.spike-line.crowd svg{fill:none}
.mini-wide{flex-direction:column;gap:8px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none}
.mini-wide .pour-text{text-align:center}.mini-wide .pour-text br{display:none}
.mini-scene{width:100%;max-width:340px;height:auto;overflow:visible}
.mini-meter{display:flex;gap:3px;margin-top:6px}.mini-wide .mini-meter{justify-content:center}
.mini-meter i{width:8px;height:4px;border-radius:2px;background:#e5e8eb}.mini-meter i.on{background:#0f9d6b}
.mini-meter i.on:nth-child(n+5){background:#f5a524}.mini-meter i.on:nth-child(n+9){background:#f04452}
.mini-good{fill:#0f9d6b26}.mini-perfect{fill:#0f9d6b66}
.mini-box{fill:#f2f4f6;stroke:#d1d6db;stroke-width:1.5}.mini-bar{fill:#333d4b}
.mini-laser{stroke:#f04452;stroke-width:2.5;stroke-linecap:round;filter:drop-shadow(0 0 3px #f0445299)}
.mini-road{fill:#4e5968}.mini-lane{stroke:#fff;stroke-width:1.5;stroke-dasharray:8 8;opacity:.6}
.mini-house{fill:#ffe9c7;stroke:#c98a3d;stroke-width:1.5;stroke-linejoin:round}.mini-door{fill:#c98a3d}
.mini-scooter circle{fill:#333d4b}.mini-scooter path{fill:none;stroke:#0f9d6b;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.mini-scooter rect{fill:#0f9d6b}
.mini-belt{fill:#d1d6db}.mini-paper{fill:#fff;stroke:#b0b8c1;stroke-width:1.2}.mini-ink-line{stroke:#d1d6db;stroke-width:2;stroke-linecap:round}.mini-sign{fill:none;stroke:#f04452;stroke-width:1.2;stroke-dasharray:2 2}
.mini-stamp rect{fill:#8b6b4a}.mini-stamped{fill:none;stroke:#f04452;stroke-width:2.5;opacity:.85}
.mini[data-grade="perfect"] .mini-scene,.mini[data-grade="perfect"] .pour-cup{animation:mini-ok .32s ease-out}
.mini[data-grade="miss"] .mini-scene,.mini[data-grade="miss"] .pour-cup{animation:mini-no .32s ease-out}
@keyframes mini-ok{40%{transform:scale(1.04)}}
@keyframes mini-no{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
/* The tab bar tucks away on scroll; a stock page swaps it for buy and sell */
.mobile-nav.game-nav{transition:transform .25s ease,opacity .25s ease}
body.nav-tucked .mobile-nav.game-nav{transform:translateY(calc(100% + 24px));opacity:0;pointer-events:none}
.trade-bar{display:none}
@media(max-width:700px){
  body.stock-detail .mobile-nav.game-nav{display:none}
  body.stock-detail .trade-bar{display:flex;gap:8px;position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:3;padding:8px;border-radius:22px;background:#fff;box-shadow:0 6px 20px #191f281f}
  body.stock-detail main{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
}
@media(min-width:701px){.trade-bar{display:flex;gap:8px;max-width:660px;margin:12px 0}}
.trade-bar button{flex:1;min-height:50px;border-radius:14px;font-size:16px;font-weight:700}
.trade-bar .ts-buy{background:#f04452;color:#fff}.trade-bar .ts-sell{background:#3182f6;color:#fff}
.trade-sheet .ts-qty{margin-top:16px}
.trade-sheet-head{display:flex;align-items:center;gap:12px}.trade-sheet-head b{display:block;font-size:18px;color:#191f28}.trade-sheet-head small{font-size:13px;color:#6b7684;margin-top:3px}
.trade-sheet .qty-quick{margin:12px 0;display:flex;flex-wrap:nowrap;gap:6px}.trade-sheet .qty-quick button{flex:1;min-width:0}
.trade-sheet .fin-primary{width:100%;margin-top:14px;background:#f04452}.trade-sheet .fin-primary.sell{background:#3182f6}
/* My holdings: always visible, never a guess */
.held-count{color:#0f9d6b;font-weight:700}
.my-stocks .fin-stock-total{margin-bottom:6px}.fin-card-head b small{display:inline;font-size:13px;color:#8b95a1;font-weight:500;margin-left:4px}
.my-stocks-empty b{font-size:16px;color:#191f28}.my-stocks-empty p{font-size:13px;color:#8b95a1;margin-top:6px;line-height:1.5}
.my-holding{border:1.5px solid #0f9d6b33}.my-holding.empty{border-color:transparent}
.my-holding-main{display:flex;align-items:baseline;justify-content:space-between;margin:6px 0 4px}.my-holding-main b{font-size:26px;color:#191f28;letter-spacing:-.5px}.my-holding-main span{font-size:17px;font-weight:600;color:#333d4b}
.my-holding.flash{animation:holding-flash 1.2s ease-out}
@keyframes holding-flash{0%{background:#0f9d6b33}}
.trade-bar button{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2}.trade-bar small{font-size:11px;font-weight:500;opacity:.85;margin-top:2px}
.receipt-check.buy{background:#f04452}.receipt-check.sell{background:#3182f6}
.ts-total-row.after{margin-top:-4px}.ts-total-row.after span,.ts-total-row.after strong{font-size:14px;color:#6b7684;font-weight:500}
body.sheet-open .trade-bar{display:none!important}
.trade-sheet .fin-primary[data-sheet-close]{background:#3182f6}
.receipt dd.positive,.receipt dd.up{color:#f04452}.receipt dd.negative,.receipt dd.down{color:#3182f6}
/* Today's chart: the tip moves every tick and ends in a pulsing dot, like Toss */
.chart-box{position:relative}
.chart-dot{position:absolute;right:0;width:8px;height:8px;margin:-4px -4px 0 0;border-radius:50%;background:var(--c);transition:top .5s ease,background-color .3s}
.chart-dot::after{content:'';position:absolute;inset:-6px;border-radius:50%;background:var(--c);opacity:.35;animation:dot-pulse 1.6s ease-out infinite}
@keyframes dot-pulse{0%{transform:scale(.4);opacity:.45}100%{transform:scale(1.6);opacity:0}}
@media (prefers-reduced-motion:reduce){.chart-dot::after{animation:none}}

/* ===== Refresh: calmer, Apple + Toss ===== */
:root{--bg:#f2f4f6;--ink:#191f28;--ink2:#4e5968;--ink3:#8b95a1;--blue:#0f9d6b;font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Pretendard','Noto Sans KR',sans-serif}
body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;letter-spacing:-.02em}
.fin-amount,.fin-row-num,.fin-stock-total,.cash-pill,.receipt dd,.ts-total-row strong,.my-holding-main{font-variant-numeric:tabular-nums}
/* Wordmark */
.brand-word{font-size:22px;font-weight:800;letter-spacing:-.05em;color:var(--ink);line-height:1}.brand-word i{font-style:normal;color:var(--blue)}
.sidebar .brand-word{font-size:26px}
/* Top bar: translucent, quiet, only what matters */
@media(max-width:700px){
  .topbar{position:sticky;top:0;z-index:4;height:52px;padding:0 20px;border:0;background:rgba(242,244,246,.82);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}
  .main-shell{padding-top:0}.topbar{margin-top:0;padding-top:env(safe-area-inset-top);height:calc(52px + env(safe-area-inset-top))}
  .day-pill{display:none}
  .topbar-right{gap:6px}
  .cash-pill{border:0;background:#fff;color:var(--ink);font-size:14px;font-weight:700;padding:7px 12px;max-width:none;border-radius:999px}
  .mode-button{background:transparent;color:var(--blue);border:0;font-size:13px;font-weight:600;padding:6px 4px}
  .rank-button{background:transparent;color:var(--ink3);width:32px;height:32px}.rank-button.active{background:transparent;color:var(--blue)}
  .settings-button{color:var(--ink3)}.settings-button.active{background:transparent;color:var(--blue)}
  main{padding:8px 16px calc(96px + env(safe-area-inset-bottom))}
}
/* Large titles */
.fin-page-head h1{font-size:28px;font-weight:800;letter-spacing:-.04em;color:var(--ink);margin:10px 4px 16px}
/* Cards: white on gray, no lines, roomy */
.fin-card{border-radius:24px;box-shadow:none;border:0}.fin-card:not(.fin-list):not(.fin-total){padding:22px 20px}.fin-total-btn{padding:22px 20px}
.fin-card-head b{font-size:17px;font-weight:700;letter-spacing:-.03em}
.fin-row{border-radius:14px}
/* Job picker: soft tiles, selection by tint only */
.fin-job{background:#f2f4f6;border-radius:18px}
.fin-job.selected{background:#e6f6ef;box-shadow:none}
.rush-badge{background:#f04452;border:2px solid #fff}
/* Energy: thin blue segments */
.energy-bar{gap:4px}.energy-bar i{flex:1;max-width:28px;height:5px}
.energy-bar i.on{background:var(--blue)}.energy-bar i.bonus{background:#20c997}
.fin-energy svg{color:var(--blue)}
/* Buttons */
.fin-primary{min-height:56px;border-radius:16px;font-size:17px;font-weight:700;letter-spacing:-.02em}
.fin-primary:disabled{background:#e5e8eb;color:#b0b8c1;opacity:1}
/* iOS tab bar: flush, translucent, no raised button */
.mobile-nav.game-nav{left:0;right:0;bottom:0;border-radius:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 -.5px 0 rgba(0,0,0,.12);align-items:stretch}
.game-nav .nav-home{flex:1;margin-top:0}
.game-nav .nav-icon,.game-nav .nav-home .nav-icon,.game-nav .nav-home.active .nav-icon{width:auto;height:28px;border-radius:0;background:none;box-shadow:none;border:0;color:inherit}
.game-nav .nav-icon svg,.game-nav .nav-home .nav-icon svg{width:24px;height:24px}
.game-nav .nav-home:active .nav-icon{transform:none;box-shadow:none}
.game-nav>button.active .nav-icon{background:none}
.game-nav>button{color:#b0b8c1}.game-nav>button.active{color:var(--ink)}
.game-nav .nav-label{font-size:10px;font-weight:600}
@media(max-width:700px){
  body.stock-detail .trade-bar{left:0;right:0;bottom:0;border-radius:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 -.5px 0 rgba(0,0,0,.12)}
}
/* Sheets */
.sheet{border-radius:28px 28px 0 0}
.ts-back{font-size:16px;color:var(--ink2);font-weight:500}
.my-stocks .fin-card-head,.my-stocks .fin-stock-total{padding-left:12px;padding-right:12px}.my-stocks .fin-card-head{padding-top:10px}
.map-land{fill:#fff;stroke:#b5dcc9}
/* Mini game art */
.scene-bg{fill:#f2f4f6}.scene-bg.desk{fill:#f4efe8}
.mini-shadow{fill:#191f2814}
.cup-body{fill:#f3fbf7}.cup-shine{fill:none;stroke:#ffffffc0;stroke-width:3;stroke-linecap:round}
.pour-glass{stroke:#b0b8c1;stroke-width:2.2}
.coffee-top{stop-color:#a66a3f}.coffee-bottom{stop-color:#5a321c}.coffee-crema{fill:#d9a46f}
.pour-band{fill:#0f9d6b22}.pour-line{stroke:#0f9d6b;stroke-width:1.6;stroke-dasharray:4 3}
.mini-box{fill:#ffffff;stroke:none;filter:drop-shadow(0 2px 4px #191f2814)}.mini-label{fill:#fff}
.mini-bar{fill:#191f28}.mini-digits{font-size:7px;fill:#6b7684;letter-spacing:.5px;font-family:ui-monospace,Menlo,monospace}
.mini-good{fill:#0f9d6b1f}.mini-perfect{fill:#0f9d6b47}
.mini-beam{fill:#f0445222}.mini-laser{stroke:#f04452;stroke-width:2;filter:drop-shadow(0 0 3px #f04452)}
.sky-top{stop-color:#dcecff}.sky-bottom{stop-color:#f3fbf7}.mini-cloud{fill:#ffffff}
.mini-road{fill:#4e5968}.mini-curb{fill:#b0b8c1}.mini-lane{stroke:#ffffffa0;stroke-width:1.5;stroke-dasharray:8 8}
.mini-wall{fill:#fff4e2}.mini-roof{fill:#f2803a;stroke:#f2803a;stroke-width:2;stroke-linejoin:round}.mini-window{fill:#ffd66b}.mini-door{fill:#b86b2f}
.mini-scooter .body{fill:none;stroke:#0f9d6b;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.mini-scooter .box{fill:#f2a33a}.mini-scooter .wheel{fill:#191f28}.mini-scooter .hub{fill:#b0b8c1}
.mini-scooter .speed{stroke:#8b95a1;stroke-width:2;stroke-linecap:round;opacity:.5}
.mini-belt{fill:#d1d6db}
.mini-paper{fill:#ffffff;stroke:#e5e8eb;stroke-width:1;filter:drop-shadow(0 2px 3px #191f281a)}.mini-fold{fill:#f2f4f6;stroke:#e5e8eb;stroke-width:1}
.mini-ink-line{stroke:#d1d6db;stroke-width:2.2;stroke-linecap:round}
.mini-sign{fill:none;stroke:#f04452;stroke-width:1.2;stroke-dasharray:2 2}
.mini-stamp .handle{fill:#8b5a3c}.mini-stamp .neck{fill:#6b4429}.mini-stamp .base{fill:#a8714a}.mini-stamp .rubber{fill:#d63a44}
.mini-stamped circle{fill:none;stroke:#f04452;stroke-width:2.2}.mini-stamped text{fill:#f04452;font-size:6px;font-weight:800}
.mini-stamped{animation:stamp-in .25s cubic-bezier(.2,1.6,.4,1) both}
@keyframes stamp-in{from{transform:scale(1.6);opacity:0}}
.mini-meter i.on{background:#0f9d6b}.mini-meter i.on:nth-child(n+5){background:#f2a33a}.mini-meter i.on:nth-child(n+9){background:#f04452}
.mini .pour-text small{color:#0f9d6b}
.mini-stamped{transform-box:fill-box;transform-origin:center}
.mini-stamp{transition:transform .08s ease-in}.mini-stamp.press{transform:translateY(9px)}
.trade-back{flex:0 0 50px!important;display:grid!important;place-items:center;background:#f2f4f6;color:#4e5968;padding:0}
.trade-back svg{width:22px;height:22px}
@media(max-width:700px){body.stock-detail main>.ts-back{display:none}body.stock-detail main{padding-top:16px}}
/* Property art: a small drawing per kind, tinted by region */
.own-tile{overflow:visible;background:none!important;box-shadow:none!important;padding:0}
.own-tile>svg{width:100%;height:100%;border-radius:inherit;display:block}
.own-tile svg{width:100%;height:100%}
.own-tile>i svg{width:11px;height:11px}
.own-tile.big{width:200px;height:134px;border-radius:24px}.own-tile.big>i{width:30px;height:30px;right:-8px;bottom:-8px}.own-tile.big>i svg{width:16px;height:16px}
.own-tile.card{width:100%;height:auto;aspect-ratio:3/2;border-radius:14px;margin-bottom:8px}
.own-tile.card>i{display:none}
.own-tile:not(.mine)>svg{filter:grayscale(.7);opacity:.7}
.art-sky{fill:color-mix(in srgb,var(--c) 16%,#ffffff)}
.art-sun{fill:#ffd66b;opacity:.8}
.art-ground{fill:color-mix(in srgb,var(--c) 30%,#ffffff)}
.art-wall{fill:#ffffff}.art-wall2{fill:color-mix(in srgb,var(--c) 22%,#ffffff)}
.art-roof{fill:#3d4654}.art-wood{fill:#b07a4a}.art-wood-dark{fill:#7d5233}.art-stone{fill:#c9ced6}
.art-lattice{fill:#f4e3c3;stroke:#b07a4a;stroke-width:1.2}.art-lattice-line{stroke:#b07a4a;stroke-width:1}
.art-awning{fill:var(--c)}.art-awning-stripe{stroke:#ffffffb0;stroke-width:3}
.art-sign{fill:var(--c)}
.art-glass{fill:#9cc4f2}.art-glass2{fill:#b8d4f5}
.art-win{fill:#cfe0f5}.art-win-glass{fill:#e6f0fc;opacity:.75}.art-lit{fill:#ffd66b}
.art-tent{fill:var(--c)}.art-tent-side{fill:color-mix(in srgb,var(--c) 70%,#ffffff)}.art-lantern{fill:#f04452}
.art-sea{fill:#7fb4ec}.art-rail{stroke:#4e5968;stroke-width:1.5;stroke-linecap:round}
/* Collection grid: white cards straight on the page */
.own-list{max-width:660px}
.own-grid{gap:12px}
.own-card{border:0;border-radius:22px;padding:10px 10px 14px;background:#ffffff;gap:2px}
.own-card.mine{background:#ffffff;box-shadow:inset 0 0 0 2px #0f9d6b}
.own-card b,.own-card small,.own-card em{padding:0 4px}
.own-card b{font-size:15px;font-weight:700}
.own-card em.own-mine{color:#0f9d6b}
.own-next .own-tile{width:64px;height:44px;border-radius:12px}
.own-next .own-tile>i{display:none}
.sheet-item .own-tile.big{margin:4px auto 10px}
.own-tile.big>svg,.own-tile.card>svg{width:100%;height:100%}
/* News: a thin rolling ticker above the total on home, and the news page it opens. */
.news-ticker{display:flex;align-items:center;gap:10px;width:100%;max-width:660px;margin:0 0 10px;padding:12px 14px 12px 12px;border-radius:16px;background:#fff;color:#191f28;font:inherit;text-align:left}
.ticker-icon{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:8px;background:#e6f6ef;color:#0f9d6b}.ticker-icon svg{width:16px;height:16px}
.ticker-track{position:relative;flex:1;min-width:0;height:20px;overflow:hidden}
.ticker-item{position:absolute;inset:0;font-size:14px;font-weight:600;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform:translateY(110%);opacity:0;transition:transform .45s ease,opacity .45s ease}
.ticker-item.on{transform:none;opacity:1}.ticker-item.off{transform:translateY(-110%);opacity:0}
.ticker-item em{font-style:normal;font-size:12px;font-weight:700;color:#8b95a1;margin-right:6px}
.news-ticker .fin-chevron{flex:none}
.news-article{max-width:660px;background:#fff;border-radius:22px;padding:20px;margin:0 0 12px}
.news-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#8b95a1;margin-bottom:6px}
.news-meta em{font-style:normal;font-weight:700;color:#0f9d6b}.news-meta em.positive{color:var(--positive)}.news-meta em.negative{color:var(--negative)}
.news-article h2{font-size:19px;line-height:1.35;letter-spacing:-.5px;color:#191f28;margin:0 0 10px}
.news-article.lead h2{font-size:23px}
.news-article p{font-size:15px;line-height:1.6;color:#4e5968;margin:0 0 8px}
.news-article p.news-aside{font-size:13px;color:#8b95a1}
.news-odds{display:flex;gap:28px;margin:2px 0 10px}.news-odds span{display:block;font-size:12px;color:#8b95a1;margin-bottom:2px}.news-odds b{font-size:17px;color:#191f28}
.news-odds .outlook.bright{color:#f04452}.news-odds .outlook.gloomy{color:#0f9d6b}
.news-bar{height:6px;border-radius:6px;background:#f2f4f6;overflow:hidden;margin-bottom:14px}.news-bar i{display:block;height:100%;border-radius:6px;background:#f04452}
.news-stock{display:flex;align-items:center;gap:10px;width:100%;margin-top:12px;padding:12px;border-radius:14px;background:#f9fafb;font:inherit;color:#191f28}
.news-stock>span{flex:1;text-align:left;font-size:15px;font-weight:600}.news-stock>b{font-size:15px}.news-stock>small{font-size:13px}
.news-link{display:block;background:none;padding:4px 0 0;font:inherit;font-size:14px;font-weight:600;color:#0f9d6b}
/* Side pages: on phones the back button sits at the bottom, beside the page's main action. */
.page-bar{display:none}
@media(max-width:700px){
  body.side-page .mobile-nav.game-nav{display:none}
  body.side-page main>.ts-back{display:none}
  body.side-page main{padding-top:16px;padding-bottom:calc(100px + env(safe-area-inset-bottom))}
  body.side-page .page-bar{display:flex;gap:8px;position:fixed;left:16px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:3}
  .page-bar .trade-back{width:50px;height:50px;border-radius:16px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 4px 16px #191f2824,inset 0 0 0 1px rgba(0,0,0,.08)}
  body.side-page .page-bar.with-action{left:0;right:0;bottom:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 -.5px 0 rgba(0,0,0,.12)}
  .page-bar.with-action .trade-back{background:#f2f4f6;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
  .page-bar .lotto-buy{flex:1;margin:0;min-height:50px;width:auto}
  body.side-page main .lotto-buy{display:none}
  body.sheet-open .page-bar{display:none!important}
}
.news-stock>.ts-logo{flex:none;width:36px;height:36px}
/* Daily lottery: the free ticket, my tickets, and the draw coming out ball by ball. */
.lotto-steps{font-size:14px;color:#4e5968;background:#f2f4f6;border-radius:12px;padding:10px 12px;margin:0 0 14px}
.lotto-steps b{color:#0f9d6b}
.lotto-buy.free{background:#0f9d6b}
.free-nudge{color:#0f9d6b;font-weight:700}
.my-ticket{position:relative}.my-ticket em{position:absolute;right:0;top:50%;transform:translateY(-50%);font-style:normal;font-size:11px;font-weight:700;color:#0f9d6b;background:#e9f8f0;border-radius:6px;padding:2px 6px}
.my-ticket .picked-numbers{margin:8px 0}
.draw-balls .ball{animation:ball-drop .5s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(.4s + var(--i) * .45s)}
@keyframes ball-drop{from{opacity:0;transform:translateY(-36px) scale(.5)}to{opacity:1;transform:none}}
.draw-after{animation:draw-after .45s ease both;animation-delay:3.2s}
@keyframes draw-after{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* Stock and property page titles a size smaller. */
main[data-page=stock] .fin-page-head h1,main[data-page=property] .fin-page-head h1{font-size:22px;margin:6px 4px 12px}
/* Real estate: map on top, the picked city's places below. */
.estate-list .fin-list-head{display:flex;justify-content:space-between;align-items:center}
.estate-index{font-size:12px;font-weight:600;color:#8b95a1}
.estate-list .own-tile{flex:none;width:44px;height:44px;border-radius:12px}
.estate-list .own-mine{color:#0f9d6b;font-weight:700}.estate-list .own-ready{color:#0f9d6b}
.estate-mine{display:flex;justify-content:space-between;align-items:center;width:100%;font:inherit;font-size:15px;color:#333d4b;text-align:left;cursor:pointer}
.estate-mine b{font-size:16px;color:#191f28}
main[data-page=property] .korea-map.city-map{width:auto;height:min(400px,52vh);max-width:100%}
/* Morning, lottery and shift results come up from the bottom like every other sheet. */
dialog#result{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:520px;max-height:86dvh;border:0;border-radius:28px 28px 0 0;padding:12px 22px calc(22px + env(safe-area-inset-bottom));background:#fff;box-shadow:none;overflow-y:auto}
dialog#result[open]{animation:sheet-up .24s cubic-bezier(.2,.9,.3,1)}
dialog#result::before{content:"";display:block;width:40px;height:4px;border-radius:2px;background:#e5e8eb;margin:0 auto 16px}
dialog#result::backdrop{background:rgba(0,0,0,.42);backdrop-filter:none}
#result-content{max-height:none;overflow:visible}
#result .sheet-title{margin-top:0}
#result .ledger-kicker{text-align:center;margin-top:4px}
#result .ledger-total{text-align:center;font-size:32px;margin:2px 0 18px}
#result .ledger-total.positive{color:#f04452}
#result .receipt dd.positive{color:#f04452}#result .receipt dd.negative{color:#3182f6}
#close-result{display:block;width:100%;min-height:56px;margin-top:18px;border-radius:16px;background:#0f9d6b;font-size:17px;font-weight:700;letter-spacing:-.02em}
@media (prefers-reduced-motion:reduce){dialog#result[open]{animation:none}}
/* 두근코인 leverage */
.lever-card .fin-tip{margin:6px 0 12px}
.lever-seg{display:flex;gap:6px;margin-bottom:8px}
.lever-seg button{flex:1;min-width:0;border-radius:10px;background:#f2f4f6;color:#4e5968;font-size:14px;font-weight:600;padding:9px 0}
.lever-seg button.on{background:#0f9d6b;color:#fff}
.lever-amount{display:flex;justify-content:space-between;align-items:baseline;margin:12px 2px 12px;color:#6b7684;font-size:14px}
.lever-amount b{font-size:20px;color:#191f28;letter-spacing:-.02em}
.lever-actions{display:flex;gap:8px}
.lever-btn{flex:1;min-height:52px;border-radius:14px;color:#fff;font-size:17px;font-weight:700}
.lever-btn.long{background:#f04452}
.lever-btn.short{background:#3182f6}
.lever-note{margin-top:8px;font-size:12px;color:#8b95a1;text-align:center}
.lever-main{display:flex;justify-content:space-between;align-items:baseline;margin:10px 0 4px}
.lever-main b{font-size:26px;letter-spacing:-.03em;color:#191f28}
.lever-gap{font-size:13px;font-weight:600;color:#f2803a}
.lever-card.open .fin-card-head .positive{color:#f04452}
.lever-card.open .fin-card-head .negative{color:#3182f6}
.lever-card .lever-close{width:100%;margin-top:12px}
/* PC (wide screens): Toss Securities style. A live quote rail on the right,
   the stock page as chart + order panel, the stock list as one table, and
   home in two columns. Phones never see any of this. */
.rail,.order-panel,.desk-table{display:none}
@media(min-width:1180px){
  .layout{max-width:1680px;grid-template-columns:220px minmax(0,1fr) 320px}
  .sidebar{padding:36px 22px 28px 26px}
  .chapter{font-size:20px;letter-spacing:-.02em;color:#191f28;font-weight:700}
  .topbar{height:72px;padding:0 36px}
  main{max-width:none!important;padding:24px 36px 48px!important}
  .rail{display:flex;flex-direction:column;gap:12px;position:sticky;top:0;height:100vh;overflow-y:auto;padding:20px 20px 28px 0}
  .rail-card{display:block;width:100%;text-align:left;background:#fff;border-radius:18px;padding:18px 18px 16px}
  .rail-label{display:block;font-size:13px;color:#6b7684}
  .rail-card>b{display:block;font-size:24px;letter-spacing:-.03em;color:#191f28;margin:4px 0 2px}
  .rail-card>small{font-size:13px;color:#8b95a1}
  .rail-lever{border:2px solid #f2803a}
  .rail-lever small.positive{color:#f04452}.rail-lever small.negative{color:#3182f6}
  .rail-quotes{padding:14px 8px 8px}
  .rail-head{display:flex;justify-content:space-between;align-items:center;padding:2px 10px 8px}
  .rail-head b{font-size:15px;color:#191f28}
  .rail-live{font-size:11px;font-weight:700;color:#f04452;letter-spacing:.06em}
  .rail-live::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#f04452;margin-right:5px;vertical-align:1px;animation:live-blink 1.6s infinite}
  @keyframes live-blink{50%{opacity:.25}}
  .rail-row{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:12px;background:transparent;text-align:left}
  .rail-row:hover,.rail-row.on{background:#f2f4f6}
  .rail-row .ts-logo{width:32px;height:32px;font-size:13px;flex:none}
  .rail-name{flex:1;min-width:0}
  .rail-name b,.rail-q b{display:block;font-size:14px;color:#191f28;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rail-name small,.rail-q small{font-size:12px;color:#8b95a1}
  .rail-q{text-align:right}
  .rail-q small.positive{color:#f04452}.rail-q small.negative{color:#3182f6}
  .rail-keys{font-size:12px;color:#8b95a1;text-align:center;margin-top:4px}
  kbd{font:inherit;font-size:11px;background:#fff;border:1px solid #d1d6db;border-bottom-width:2px;border-radius:5px;padding:1px 5px;color:#4e5968}
  /* Home: the shift on the left, everything else on the right. */
  main[data-page=home]{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:start;grid-auto-flow:row dense}
  main[data-page=home]>*{grid-column:2;margin:0!important}
  main[data-page=home]>.fin-work{grid-column:1;grid-row:1/span 8}
  /* Stock list: the table replaces the phone list. */
  main[data-page=stock] .stock-all{display:none}
  .desk-table{display:block;padding:20px 8px 8px}
  .desk-table .fin-list-head small{font-weight:500;color:#8b95a1;margin-left:6px}
  .stock-table{width:100%;border-collapse:collapse;font-size:14px}
  .stock-table th{font-size:12px;font-weight:600;color:#8b95a1;text-align:left;padding:8px 14px;border-bottom:1px solid #f2f4f6}
  .stock-table td{padding:12px 14px;border-bottom:1px solid #f2f4f6;color:#191f28;vertical-align:middle}
  .stock-table tbody tr{cursor:pointer}
  .stock-table tbody tr:hover td{background:#f9fafb}
  .stock-table .num{text-align:right;white-space:nowrap}
  .stock-table td.num small{display:block;font-size:12px}
  .stock-table .positive{color:#f04452}.stock-table .negative{color:#3182f6}
  .tbl-co{display:flex;align-items:center;gap:12px}
  .tbl-co b{display:block}.tbl-co small{font-size:12px;color:#8b95a1}
  .spark{width:120px;height:36px}
  /* Stock detail: chart and facts on the left, the order panel on the right. */
  .desk{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
  .desk-main{display:flex;flex-direction:column;gap:12px}
  .desk-main>*{margin:0!important}
  .desk-main #lever,.desk~.trade-bar,body.stock-detail .trade-bar{display:none!important}
  .desk-main .ts-chart .chart-box{height:340px}
  .desk-main .ts-chart .chart-box svg{height:100%;width:100%}
  .order-panel{display:flex;flex-direction:column;gap:12px;position:sticky;top:88px}
  .order-tabs{display:flex;background:#fff;border-radius:16px;padding:6px;gap:6px}
  .order-tabs button{flex:1;padding:11px 0;border-radius:12px;background:transparent;color:#6b7684;font-size:15px;font-weight:700}
  .order-tabs button.on.buy{background:#f04452;color:#fff}
  .order-tabs button.on.sell{background:#3182f6;color:#fff}
  .order-body{background:#fff;border-radius:18px;padding:20px}
  .order-body .fin-primary{width:100%;margin-top:12px}
  .order-panel .lever-card{margin:0}
}
/* Buying is red, selling blue, as in Korean stock apps. */
.trade-sheet .fin-primary[data-action=stockBuy],.order-body .fin-primary[data-action=stockBuy]{background:#f04452}
@media(min-width:1180px) and (max-width:1599px){
  body.stock-detail .layout{grid-template-columns:220px minmax(0,1fr)}
  body.stock-detail .rail{display:none}
}
@media(min-width:1180px){.desk-main>.ts-back{align-self:flex-start}}
@media(min-width:1180px){.desk-main>*,.desk-main .fin-card,main[data-page=stock]>.fin-card,main[data-page=stock]>section{max-width:none!important;width:100%}}
@media(min-width:1180px){.desk-main>.ts-back{width:auto!important;text-align:left}}
/* PC tycoon screen: the city fills the window, a HUD on top, a dock at the
   bottom, pages open as windows over the city. Only drawn on wide screens. */
body.pc{overflow:hidden;height:100vh;background:#0e1530}
.pc-world{position:fixed;inset:0;overflow:hidden}
.city-scene{position:absolute;inset:0;width:100%;height:100%}
.city-scene .car{animation:car-drive 22s linear infinite}
.city-scene .car-1{animation-duration:17s;animation-delay:-6s;animation-direction:reverse}
.city-scene .car-2{animation-duration:27s;animation-delay:-14s}
.city-scene .car-3{animation-duration:19s;animation-delay:-3s;animation-direction:reverse}
@keyframes car-drive{from{translate:-120px 0}to{translate:1720px 0}}
.city-scene .cloud{animation:cloud-drift 60s ease-in-out infinite alternate}
@keyframes cloud-drift{to{translate:60px 0}}
.scene-sign{cursor:pointer;pointer-events:all}
.city-scene{pointer-events:none}
.scene-own{filter:drop-shadow(0 6px 10px rgba(0,0,0,.25))}
@media (prefers-reduced-motion:reduce){.city-scene .car,.city-scene .cloud{animation:none}}
.hud{position:absolute;top:14px;left:16px;right:16px;z-index:20;display:flex;align-items:center;gap:6px;padding:8px 10px 8px 18px;border-radius:18px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 8px 28px rgba(0,0,0,.18)}
.hud-brand{font-size:22px;margin-right:14px}
.hud-stat{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 16px;border-radius:12px;background:transparent;text-align:left;border-left:1px solid #e5e8eb}
button.hud-stat:hover{background:#f2f4f6}
.hud-stat>span{font-size:11px;color:#8b95a1;font-weight:600}
.hud-stat>b{display:flex;align-items:center;gap:3px;font-size:18px;color:#191f28;letter-spacing:-.02em;white-space:nowrap}
.hud-stat>b small{font-size:13px;color:#8b95a1;font-weight:600}
.hud-stat>small{font-size:11px}
.hud-total>b{font-size:20px}
.hud-energy svg{width:16px;height:16px;color:#ffb020;fill:#ffb020}
.hud-bar{display:block;width:96px;height:5px;border-radius:5px;background:#e5e8eb;overflow:hidden;margin-top:3px}
.hud-bar i{display:block;height:100%;background:#ffb020;border-radius:5px}
.hud-lever{border:2px solid #f2803a;border-radius:12px;margin-left:6px}
.hud-lever b.positive{color:#f04452}.hud-lever b.negative{color:#3182f6}
.hud-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.hud-time{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.hud-time small{font-size:11px;color:#8b95a1;font-weight:600}
.hud-time b{font-size:18px;color:#191f28;font-variant-numeric:tabular-nums}
.hud-icon{width:42px;height:42px;border-radius:12px;background:#f2f4f6;color:#4e5968;display:grid;place-items:center}
.hud-icon.on,.hud-icon:hover{background:#e5e8eb}
.dock{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:20;display:flex;gap:4px;padding:8px;border-radius:22px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.dock button{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;width:76px;padding:10px 0 8px;border-radius:15px;background:transparent;color:#6b7684;font-size:12px;font-weight:700;transition:transform .12s,background .12s}
.dock button svg{width:24px;height:24px}
.dock button:hover{background:#f2f4f6;transform:translateY(-3px)}
.dock button.on{background:#e8f7f0;color:#0f9d6b}
.dock kbd{position:absolute;top:4px;right:6px;font-size:9px;padding:0 4px;opacity:.7}
.pc-stage{position:absolute;top:96px;bottom:104px;left:16px;right:16px;z-index:10}
.pc-home{height:100%;display:grid;grid-template-columns:400px minmax(0,1fr) 340px;gap:16px;align-items:start}
.pc-col{max-height:100%;overflow-y:auto;scrollbar-width:none;display:flex;flex-direction:column;gap:12px;padding-bottom:4px}
.pc-col::-webkit-scrollbar{display:none}
.pc-col>.fin-card,.pc-center>*{margin:0!important;max-width:none!important;width:100%;box-shadow:0 10px 30px rgba(0,0,0,.16)}
.pc-center{display:flex;flex-direction:column;gap:10px;max-width:560px;width:100%;justify-self:center}
.pc-center:empty{display:none}
.pc-quotes{padding:14px 8px 8px!important}
.pc-quotes .rail-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:12px;background:transparent;text-align:left}
.pc-quotes .rail-row:hover{background:#f2f4f6}
.pc-quotes .rail-row .ts-logo{width:30px;height:30px;font-size:12px;flex:none}
.pc-keys{font-size:12px;color:#fff;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.pc-keys kbd{text-shadow:none}
.pc-dim{position:absolute;inset:-96px -16px -104px;background:rgba(8,12,28,.38);z-index:0}
.pc-window{position:relative;z-index:1;margin:0 auto;height:100%;width:min(1280px,100%);display:flex;flex-direction:column;background:#f2f4f6;border-radius:20px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.4)}
.pc-window.narrow{width:min(760px,100%)}
.pc-window.pop{animation:win-pop .2s cubic-bezier(.2,.9,.3,1)}
@keyframes win-pop{from{opacity:0;transform:translateY(14px) scale(.98)}}
.win-bar{display:flex;align-items:center;gap:12px;height:50px;padding:0 10px 0 22px;background:#fff;border-bottom:1px solid #e5e8eb;flex:none}
.win-bar b{font-size:16px;color:#191f28}
.win-hint{margin-left:auto;font-size:12px;color:#8b95a1}
.win-close{width:34px;height:34px;border-radius:10px;background:#f2f4f6;color:#6b7684;font-size:15px}
.win-close:hover{background:#f04452;color:#fff}
body.pc .pc-window main.win-body{flex:1;overflow-y:auto;margin:0;max-width:none!important;padding:20px 24px 32px!important}
body.pc .win-body>.fin-page-head,body.pc .win-body>.fin-page-desc{display:none}
body.pc .pc-window .order-panel{top:0}
body.pc .pc-window.narrow .win-body>*{max-width:none}
body.pc .sheet-backdrop{align-items:center}
body.pc .sheet{border-radius:24px;padding-bottom:22px;max-height:80vh}
body.pc #toast{bottom:120px}
@media (prefers-reduced-motion:reduce){.pc-window.pop{animation:none}}
body.pc .pc-window main[data-page=property]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
body.pc .pc-window main[data-page=property]>*{margin:0;max-width:none;width:100%}
body.pc .pc-window main[data-page=property]>.map-section{position:sticky;top:0}
/* Candle chart: candles in SVG, the lines, labels and B/S marks on top in HTML so text never stretches. */
.candle-chart .chart-range{margin-top:8px}
.candle-box{position:relative;height:230px;margin:8px 0 22px;cursor:crosshair}
.candle-box svg{display:block;width:100%;height:100%}
.cl-line{position:absolute;left:0;right:0;border-top:1px dashed #8b95a1;pointer-events:none}
.cl-line span{position:absolute;right:0;transform:translateY(-50%);font-size:11px;font-weight:700;color:#fff;background:#8b95a1;border-radius:5px;padding:2px 6px;white-space:nowrap}
.cl-line.now{border-top-style:solid;opacity:.9}.cl-line.now.up{border-color:#f04452}.cl-line.now.up span{background:#f04452}.cl-line.now.down{border-color:#3182f6}.cl-line.now.down span{background:#3182f6}
.cl-line.avg{border-color:#0f9d6b}.cl-line.avg span{background:#0f9d6b;right:auto;left:0}
.cl-line.entry{border-color:#f2803a}.cl-line.entry span{background:#f2803a;right:auto;left:0}
.cl-line.liq{border-color:#191f28;border-top-width:2px}.cl-line.liq span{background:#191f28;right:auto;left:0}
.cl-line.above,.cl-line.below{border-top-color:transparent}
.cl-line.below span{transform:translateY(-100%)}.cl-line.above span{transform:none}
.cl-mark{position:absolute;width:18px;height:18px;margin-left:-9px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-style:normal;font-weight:800;color:#fff;pointer-events:auto;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.cl-mark.buy{background:#f04452;transform:translateY(6px)}
.cl-mark.sell{background:#3182f6;transform:translateY(-24px)}
.cl-hi,.cl-lo{position:absolute;left:0;font-size:11px;color:#8b95a1;pointer-events:none}
.cl-hi{top:-2px}.cl-lo{bottom:-2px}
.cl-axis{position:absolute;left:0;right:0;bottom:-20px;height:16px;pointer-events:none}
.cl-axis span{position:absolute;transform:translateX(-50%);font-size:11px;color:#8b95a1;white-space:nowrap}
.cl-axis span:first-child{transform:none}.cl-axis span:last-child{transform:translateX(-100%)}
.cl-cross{position:absolute;top:0;bottom:0;pointer-events:none}
.cl-cross>i{position:absolute;top:0;bottom:0;left:0;border-left:1px dashed #4e5968}
.cl-tip{position:absolute;top:4px;left:8px;display:flex;flex-direction:column;gap:2px;min-width:132px;padding:8px 10px;border-radius:10px;background:rgba(25,31,40,.92);color:#fff;font-size:12px;white-space:nowrap}
.cl-cross.flip .cl-tip{left:auto;right:8px}
.cl-tip b{font-size:12px;margin-bottom:2px}.cl-tip em{font-style:normal}.cl-tip em.positive{color:#ff8a94}.cl-tip em.negative{color:#7fb2ff}
@media(min-width:1180px){.desk-main .candle-box{height:380px}}
@media(min-width:1180px){.desk-main .ts-chart{max-width:none}}
/* PC home: the featured live chart in the middle. */
.pc-feature{padding:16px 18px 14px!important}
.feat-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:-4px -6px 10px}
.feat-tabs button{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:56px;padding:6px 4px;border-radius:12px;background:transparent}
.feat-tabs button:hover{background:#f2f4f6}.feat-tabs button.on{background:#e8f7f0}
.feat-tabs .ts-logo{width:30px;height:30px;font-size:12px}
.feat-tabs small{font-size:11px;font-weight:700}
.feat-tabs small.positive{color:#f04452}.feat-tabs small.negative{color:#3182f6}
.feat-head{display:flex;justify-content:space-between;align-items:flex-end}
.feat-name b{display:block;font-size:18px;color:#191f28}.feat-name small{font-size:12px;color:#8b95a1}
.feat-price{text-align:right}.feat-price b{display:block;font-size:24px;color:#191f28;letter-spacing:-.02em}.feat-price small{font-size:13px;font-weight:700}
.feat-price small.positive{color:#f04452}.feat-price small.negative{color:#3182f6}
.pc-feature .ts-chart{max-width:none;margin:4px 0 6px}
.pc-feature .candle-box{height:250px}
.pc-feature .ts-chart .chart-box svg{height:200px}
.feat-actions{display:flex;gap:8px;margin-top:6px}
.feat-actions button{flex:1;padding:13px 0;border-radius:14px;font-size:16px;font-weight:800;color:#fff}
.feat-buy{background:#f04452}.feat-sell{background:#3182f6}
/* Phones: today's biggest movers on home. */
.movers-head{display:flex;justify-content:space-between;align-items:center}
.movers-head .text-button{font-size:13px;color:#8b95a1;padding:0}
.mover-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 20px;background:transparent;text-align:left}
.mover-row .ts-logo{width:34px;height:34px;flex:none}
.mover-name{flex:1;min-width:0}.mover-name b{display:block;font-size:15px;color:#191f28}.mover-name small{font-size:12px;color:#8b95a1}
.mover-spark{width:64px;height:28px;flex:none}
.mover-q{text-align:right;min-width:84px}.mover-q b{display:block;font-size:15px;color:#191f28}.mover-q small{font-size:12px;font-weight:600}
.mover-q small.positive{color:#f04452}.mover-q small.negative{color:#3182f6}
