:root{--game-bg:#f8fafc;--game-card-bg:#fff;--game-border:#e2e8f0;--game-text-primary:#0f172a;--game-text-muted:#64748b;--game-accent:#dc2626;--game-green:#16a34a;--game-red:#dc2626;--game-blue:#2563eb;--game-font:"IBM Plex Sans KR","Archivo",sans-serif;--game-border-radius:12px}.rich-game-container{background-color:var(--game-bg);min-height:100vh;color:var(--game-text-primary);font-family:var(--game-font);box-sizing:border-box;padding:80px 16px 24px}.assets-scroll-wrapper::-webkit-scrollbar{height:4px}.assets-scroll-wrapper::-webkit-scrollbar-thumb{background:var(--game-border);border-radius:4px}.game-screen{opacity:0;max-width:640px;margin:0 auto;transition:opacity .3s;display:none}.game-screen.active{opacity:1;display:block}.start-header{text-align:center;margin:32px 0 24px}.start-kicker{color:var(--game-accent);margin-bottom:8px;font-size:.95rem;font-style:italic;font-weight:500}.start-logo{letter-spacing:-.05em;background:linear-gradient(135deg,#fef08a,var(--game-accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:12px;font-size:2.5rem;font-weight:800}.start-subtitle{color:var(--game-text-muted);font-size:.95rem;line-height:1.5}.section-title{justify-content:space-between;align-items:center;margin:24px 0;font-size:1.1rem;font-weight:700;display:flex;position:relative}.rich-game-container .section-title:after{content:"";background:var(--game-accent);width:40px;height:2.5px;position:absolute;bottom:-6px;left:0}.title-tip{color:var(--game-text-muted);font-size:.8rem;font-weight:400}.difficulty-grid{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.difficulty-card{background:var(--game-card-bg);border:2px solid var(--game-border);border-radius:var(--game-border-radius);color:var(--game-text-primary);text-align:left;cursor:pointer;align-items:center;padding:14px 16px;transition:all .2s;display:flex;position:relative}.difficulty-card:hover{border-color:#475569}.difficulty-card.active{border-color:var(--game-accent);background:#eab3080d}.diff-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;margin-right:16px;font-size:1.3rem;display:flex}.diff-easy{color:var(--game-green);background:#22c55e26}.diff-normal{color:var(--game-blue);background:#3b82f626}.diff-hard{color:var(--game-red);background:#ef444426}.diff-info h3{align-items:center;gap:8px;margin:0 0 4px;font-size:1rem;font-weight:700;display:flex}.diff-badge{background:#ffffff1a;border-radius:4px;padding:2px 6px;font-size:.75rem;font-weight:500}.diff-info p{color:var(--game-text-muted);margin:0;font-size:.8rem;line-height:1.4}.diff-check{color:var(--game-accent);opacity:0;font-size:1.4rem;transition:all .2s;position:absolute;right:16px;transform:scale(.8)}.difficulty-card.active .diff-check{opacity:1;transform:scale(1)}.challenger-list{flex-direction:column;gap:10px;max-height:280px;margin-bottom:24px;padding-right:4px;display:flex;overflow-y:auto}.challenger-card{background:var(--game-card-bg);border:1px solid var(--game-border);cursor:pointer;color:var(--game-text-primary);text-align:left;border-radius:8px;align-items:center;padding:10px 12px;transition:all .15s;display:flex}.challenger-card:hover{border-color:#475569}.challenger-card.active{border-color:var(--game-accent);background:#eab30808}.chal-avatar{width:40px;height:40px;color:var(--game-accent);background:#ffffff1a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-right:12px;font-size:1.2rem;display:flex;overflow:hidden}.chal-avatar img{object-fit:cover;width:100%;height:100%}.chal-info h4{margin:0 0 2px;font-size:.9rem;font-weight:700}.chal-desc{color:var(--game-text-muted);margin:0 0 4px;font-size:.75rem}.chal-stat{font-size:.75rem}.chal-stat strong{color:var(--game-accent)}.manual-code-box{gap:8px;margin-bottom:24px;display:flex}.manual-code-box input{background:var(--game-card-bg);border:1px solid var(--game-border);color:var(--game-text-primary);border-radius:8px;outline:none;flex:1;padding:12px;font-size:.9rem}.manual-code-box input:focus{border-color:var(--game-accent)}.challenge-status-text{text-align:center;color:var(--game-green);margin-top:-16px;margin-bottom:16px;font-size:.8rem;font-weight:500}.game-header{background:var(--game-card-bg);border:1px solid var(--game-border);border-radius:var(--game-border-radius);margin-bottom:16px;padding:14px 16px}.header-main{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.date-display{flex-direction:column;display:flex}#game-current-date{letter-spacing:.05em;font-size:1.3rem;font-weight:800}#game-current-week-label{color:var(--game-text-muted);font-size:.8rem}.total-asset-box{text-align:right}#game-total-assets{margin:0;font-size:1.3rem;font-weight:800}#game-total-yield{font-size:.85rem;font-weight:600}.header-sub{color:var(--game-text-muted);border-top:1px solid var(--game-border);justify-content:space-between;margin-bottom:12px;padding-top:10px;font-size:.8rem;display:flex}.sub-stat span{color:var(--game-text-primary);font-weight:600}.game-controls{justify-content:space-between;align-items:center;display:flex}.ctrl-btn{background:var(--game-bg);border:1px solid var(--game-border);color:var(--game-text-primary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:flex}.ctrl-btn.active{border-color:var(--game-red);color:var(--game-red);background:#ef444426}.speed-selector{background:var(--game-bg);border:1px solid var(--game-border);border-radius:6px;display:flex;overflow:hidden}.speed-btn{color:var(--game-text-muted);cursor:pointer;background:0 0;border:none;padding:6px 10px;font-size:.8rem;transition:all .15s}.speed-btn:hover{color:var(--game-text-primary)}.speed-btn.active{background:var(--game-accent);color:#000;font-weight:700}.game-tabs{gap:8px;margin-bottom:16px;display:flex}.tab-btn{background:var(--game-card-bg);border:1px solid var(--game-border);color:var(--game-text-muted);cursor:pointer;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.tab-btn.active{background:var(--game-accent);color:#fff;border-color:var(--game-accent)}.tab-content{display:none}.tab-content.active{display:block}.assets-scroll-wrapper{margin-bottom:12px;padding-bottom:4px;overflow-x:auto}.assets-pills{gap:8px;width:max-content;display:flex}.pill{background:var(--game-card-bg);border:1px solid var(--game-border);cursor:pointer;color:var(--game-text-muted);border-radius:20px;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.pill:hover{border-color:#475569}.pill.active{background:var(--game-text-primary);color:var(--game-bg);border-color:var(--game-text-primary)}.pill.locked{opacity:.4;cursor:not-allowed}.chart-section{background:var(--game-card-bg);border:1px solid var(--game-border);border-radius:var(--game-border-radius);margin-bottom:16px;padding:16px}.chart-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.chart-header h3{margin:0;font-size:1.1rem;font-weight:700}.stock-price-info{text-align:right;flex-direction:column;display:flex}#selected-stock-price{font-size:1.2rem;font-weight:800}#selected-stock-change{font-size:.8rem;font-weight:600}.canvas-container{width:100%;height:220px;position:relative}.canvas-container canvas{width:100%!important;height:100%!important}.trade-interface{background:var(--game-card-bg);border:1px solid var(--game-border);border-radius:var(--game-border-radius);padding:16px}.trade-header{justify-content:space-between;margin-bottom:10px;font-size:.85rem;display:flex}.wallet-balance{color:var(--game-text-muted)}.trade-input-row{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.trade-input-row input{background:var(--game-bg);border:1px solid var(--game-border);color:var(--game-text-primary);text-align:right;border-radius:8px;outline:none;padding:12px;font-size:1rem;font-weight:700}.percent-buttons{gap:6px;display:flex}.pct-btn{background:var(--game-bg);border:1px solid var(--game-border);color:var(--game-text-primary);cursor:pointer;border-radius:6px;flex:1;padding:8px;font-size:.8rem}.pct-btn:hover{background:var(--game-border)}.trade-actions{grid-template-columns:2fr 1fr 1fr 1.2fr;gap:8px;display:grid}.btn-buy{background:var(--game-green);color:#000;cursor:pointer;border:none;border-radius:8px;padding:14px;font-weight:700}.btn-sell-partial{background:var(--game-card-bg);border:1px solid var(--game-border);color:var(--game-text-primary);cursor:pointer;border-radius:8px;padding:14px;font-weight:600}.btn-sell-full{background:var(--game-red);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:14px;font-weight:700}.realestate-tip{color:var(--game-text-muted);align-items:center;gap:4px;margin-top:0;margin-bottom:12px;font-size:.75rem;display:flex}.realestate-grid{grid-template-columns:1fr 1fr;gap:12px;max-height:calc(100vh - 280px);display:grid;overflow-y:auto}.realestate-card{background:var(--game-card-bg);border:1px solid var(--game-border);border-radius:var(--game-border-radius);cursor:pointer;text-align:left;flex-direction:column;justify-content:space-between;padding:12px;transition:all .2s;display:flex;position:relative}.realestate-card:hover{border-color:#475569}.realestate-card.owned{border-color:var(--game-green);background:#22c55e08}.re-tag{background:var(--game-border);color:var(--game-text-muted);border-radius:4px;padding:2px 6px;font-size:.65rem;position:absolute;top:10px;right:10px}.realestate-card.owned .re-tag{background:var(--game-green);color:#000;font-weight:700}.re-name{margin-top:18px;margin-bottom:8px;font-size:.9rem;font-weight:700}.re-price-val{color:var(--game-accent);font-size:.95rem;font-weight:800}.re-owned-count{color:var(--game-text-muted);margin-top:6px;font-size:.75rem}.realestate-card.owned .re-owned-count{color:var(--game-green);font-weight:600}.comparison-chart-section{background:var(--game-card-bg);border:1px solid var(--game-border);border-radius:var(--game-border-radius);margin-bottom:16px;padding:14px}.comparison-chart-section h3{margin-top:0;margin-bottom:12px;font-size:.95rem;font-weight:700}.canvas-container-mini{width:100%;height:120px;position:relative}.canvas-container-mini canvas{width:100%!important;height:100%!important}.chart-legend{justify-content:center;gap:16px;margin-top:10px;font-size:.75rem;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-color{border-radius:2px;width:12px;height:3px;display:inline-block}.my-color{background-color:var(--game-accent)}.challenger-color{background-color:var(--game-red)}.hidden{display:none!important}.portfolio-list-section h3{margin-bottom:12px;font-size:1rem;font-weight:700}.portfolio-table{flex-direction:column;gap:10px;display:flex}.portfolio-row{background:var(--game-card-bg);border:1px solid var(--game-border);border-radius:8px;justify-content:space-between;align-items:center;padding:12px;display:flex}.port-info{flex-direction:column;display:flex}.port-title{font-size:.9rem;font-weight:700}.port-qty{color:var(--game-text-muted);font-size:.75rem}.port-values{text-align:right;flex-direction:column;display:flex}.port-price{font-size:.9rem;font-weight:700}.port-yield{font-size:.75rem;font-weight:600}.result-card{background:var(--game-card-bg);border:1px solid var(--game-border);border-radius:var(--game-border-radius);margin-top:24px;padding:24px 18px}.result-header{text-align:center;margin-bottom:24px}.result-date-range{color:var(--game-text-muted);font-size:.75rem}.result-tier{letter-spacing:-.05em;color:var(--game-accent);text-shadow:0 0 15px #eab3084d;margin:12px 0 6px;font-size:3.5rem;font-weight:900}#result-final-wealth{margin:0 0 4px;font-size:1.8rem;font-weight:800}#result-final-yield{font-size:1rem;font-weight:700}.result-details-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;display:grid}.detail-box{background:var(--game-bg);border:1px solid var(--game-border);text-align:center;border-radius:8px;padding:10px}.detail-box small{color:var(--game-text-muted);margin-bottom:4px;font-size:.7rem;display:block}.detail-box strong{font-size:1rem;font-weight:700}.billionaire-ranking{margin-bottom:24px}.billionaire-ranking h3{margin-bottom:12px;font-size:.95rem;font-weight:700}.billionaire-list{flex-direction:column;gap:12px;display:flex}.bill-row{justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.bill-name-wrap{width:90px;font-weight:600}.bill-bar-bg{background:var(--game-bg);border-radius:4px;flex:1;height:8px;margin:0 12px;position:relative;overflow:hidden}.bill-bar-fill{background:var(--game-blue);border-radius:4px;width:0;height:100%;transition:width 1s ease-out}.bill-row.self .bill-bar-fill{background:var(--game-accent)}.bill-value{text-align:right;width:95px;color:var(--game-text-muted)}.bill-row.self .bill-value{color:var(--game-accent);font-weight:700}.achievements-section{margin-bottom:24px}.achievements-section h3{margin-bottom:12px;font-size:.95rem;font-weight:700}.achievements-list{grid-template-columns:1fr 1fr;gap:8px;display:grid}.achievement-badge{background:var(--game-bg);border:1px solid var(--game-border);border-radius:6px;align-items:center;gap:8px;padding:8px;font-size:.75rem;display:flex}.badge-unlocked{border-color:var(--game-accent)}.badge-unlocked ion-icon{color:var(--game-accent);font-size:1.1rem}.badge-locked{opacity:.4}.share-box{background:var(--game-bg);border:1px solid var(--game-border);text-align:center;border-radius:8px;padding:16px}.share-box h3{margin-top:0;margin-bottom:12px;font-size:.9rem;font-weight:700}.share-code-row{background:var(--game-card-bg);border-radius:6px;justify-content:center;align-items:center;gap:12px;margin-bottom:16px;padding:10px;display:flex}.generated-code{color:var(--game-accent);letter-spacing:.05em;font-size:1.1rem;font-weight:700}.share-actions{flex-direction:column;gap:10px;display:flex}.btn-primary-large{background:var(--game-accent);color:#000;cursor:pointer;border:none;border-radius:8px;width:100%;padding:14px;font-size:1rem;font-weight:700}.btn-sub{background:var(--game-card-bg);border:1px solid var(--game-border);color:var(--game-text-primary);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:.85rem}.btn-sub-large{background:var(--game-card-bg);border:1px solid var(--game-border);width:100%;color:var(--game-text-primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:12px;font-size:.9rem;display:flex}.modal{z-index:99999;background-color:#000000bf;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.modal.active{display:flex}.modal-content{background-color:var(--game-card-bg);border:1px solid var(--game-border);border-radius:var(--game-border-radius);width:90%;max-width:420px;padding:20px;animation:.25s ease-out slideUp;position:relative}.modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-close{width:32px;height:32px;color:var(--game-text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;transition:all .2s;display:inline-flex}.modal-close:hover{color:var(--game-text-primary);background-color:#0000000d}.badge{border-radius:4px;padding:4px 8px;font-size:.75rem;font-weight:700}.badge-crisis{background:var(--game-red);color:#fff}.badge-warning{background:var(--game-accent);color:#000}.badge-info{background:var(--game-blue);color:#fff}#modal-event-title{margin-top:0;margin-bottom:10px;font-size:1.25rem;font-weight:800}#modal-event-desc{color:var(--game-text-muted);word-break:keep-all;margin-bottom:24px;font-size:.9rem;line-height:1.5}.re-modal-stats{background:var(--game-bg);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:16px;padding:12px;font-size:.85rem;display:flex}.re-modal-stats strong{color:var(--game-accent)}.re-market-info{color:var(--game-text-muted);margin-bottom:16px;font-size:.8rem}.re-trade-controls{margin-bottom:20px}.re-qty-row{justify-content:center;align-items:center;gap:14px;margin-bottom:12px;display:flex}.qty-btn{background:var(--game-bg);border:1px solid var(--game-border);width:36px;height:36px;color:var(--game-text-primary);cursor:pointer;border-radius:6px;font-size:1.2rem}.re-qty-row input{background:var(--game-bg);border:1px solid var(--game-border);width:80px;color:var(--game-text-primary);text-align:center;border-radius:6px;outline:none;padding:8px;font-size:1rem;font-weight:700}.re-quick-buttons{gap:6px;margin-bottom:12px;display:flex}.re-quick-btn{background:var(--game-bg);border:1px solid var(--game-border);color:var(--game-text-primary);cursor:pointer;border-radius:4px;flex:1;padding:6px;font-size:.75rem}.re-cost-estimate{text-align:right;color:var(--game-text-muted);font-size:.85rem}.re-cost-estimate strong{color:var(--game-accent);font-size:1rem}.re-trade-actions{grid-template-columns:1.5fr 1fr;gap:10px;display:grid}.yield-up{color:var(--game-red)!important}.yield-down{color:var(--game-blue)!important}.yield-neutral{color:var(--game-text-muted)!important}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.setup-grid{background:var(--game-card-bg);border:1px solid var(--game-border);border-radius:var(--game-border-radius);grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;padding:16px;display:grid;box-shadow:0 4px 12px #00000005}.setup-group{flex-direction:column;display:flex}.setup-group label{color:var(--game-text-primary);margin-bottom:8px;font-size:.85rem;font-weight:700}.setup-group input[type=number]{background-color:var(--game-bg);border:1px solid var(--game-border);width:100%;color:var(--game-text-primary);font-family:var(--game-font);box-sizing:border-box;border-radius:8px;outline:none;padding:10px 12px;font-size:.9rem}.cash-quick-buttons{gap:4px;margin-top:6px;display:flex}.quick-cash-btn{background:var(--game-bg);border:1px solid var(--game-border);color:var(--game-text-muted);cursor:pointer;border-radius:6px;flex:1;padding:6px 0;font-size:.75rem;font-weight:500;transition:all .2s}.quick-cash-btn:hover{background:var(--game-border);color:var(--game-text-primary)}.scenario-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px;display:grid}.scenario-card{background:var(--game-card-bg);border:2px solid var(--game-border);border-radius:var(--game-border-radius);cursor:pointer;text-align:left;font-family:var(--game-font);align-items:center;gap:10px;padding:12px 14px;transition:all .2s;display:flex}.scenario-card:hover{border-color:var(--game-accent);transform:translateY(-1px);box-shadow:0 4px 12px #dc262626}.scenario-card.active{border-color:var(--game-accent);background:#fff1f1}.scenario-icon{flex-shrink:0;font-size:1.6rem}.scenario-info{flex-direction:column;gap:2px;display:flex}.scenario-info strong{color:var(--game-text-primary);font-size:.85rem;font-weight:700;display:block}.scenario-info span{color:var(--game-text-muted);font-size:.72rem}.leverage-bar{background:var(--game-card-bg);border:1px solid var(--game-border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:10px 14px;display:flex}.leverage-label{color:var(--game-text-muted);white-space:nowrap;font-size:.8rem;font-weight:600}.leverage-btns{gap:4px;display:flex}.lev-btn{background:var(--game-bg);border:1px solid var(--game-border);color:var(--game-text-muted);cursor:pointer;font-size:.8rem;font-weight:700;font-family:var(--game-font);border-radius:6px;padding:4px 12px;transition:all .15s}.lev-btn.active{background:var(--game-accent);border-color:var(--game-accent);color:#fff}.lev-btn:disabled{opacity:.3;cursor:not-allowed}.lev-btn:not(:disabled):hover:not(.active){border-color:var(--game-accent);color:var(--game-accent)}.leverage-warning{color:#f59e0b;align-items:center;gap:4px;font-size:.75rem;font-weight:600;display:none}.ipo-modal-content{max-width:420px!important}.badge-ipo{color:#fff;background:linear-gradient(135deg,#7c3aed,#2563eb);border-radius:20px;padding:4px 12px;font-size:.85rem;font-weight:700}.ipo-price-box{color:var(--game-text-primary);background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;margin:12px 0;padding:10px 16px;font-size:.9rem;font-weight:600}.ipo-price-box strong{color:var(--game-green);margin-left:8px;font-size:1.3rem}.ipo-trade-row{align-items:center;gap:8px;margin-bottom:12px;display:flex}.ipo-trade-row input{border:1px solid var(--game-border);font-size:.9rem;font-family:var(--game-font);color:var(--game-text-primary);background:var(--game-bg);border-radius:8px;flex:1;padding:10px 14px}.ipo-units-preview{color:var(--game-text-muted);min-width:80px;font-size:.75rem}.ipo-actions{gap:8px;display:flex}.ipo-actions .btn-buy{flex:2}.ipo-actions .btn-sub{flex:1}.timeline-panel{z-index:900;background:var(--game-card-bg);border-top:2px solid var(--game-border);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #00000014}.timeline-toggle{background:var(--game-card-bg);cursor:pointer;width:100%;font-size:.82rem;font-weight:600;font-family:var(--game-font);color:var(--game-text-muted);border:none;border-bottom:1px solid var(--game-border);align-items:center;gap:8px;padding:8px 16px;display:flex}.timeline-toggle ion-icon{color:var(--game-accent);font-size:1.1rem}.timeline-toggle ion-icon:last-child{margin-left:auto}.timeline-content{max-height:0;transition:max-height .3s;overflow:hidden}.timeline-content.open{max-height:160px;overflow-y:auto}.timeline-track{flex-direction:column;gap:2px;padding:8px 16px 16px;display:flex}.tl-node{cursor:default;border-radius:8px;align-items:center;gap:10px;padding:6px 10px;transition:background .15s;display:flex}.tl-node.tl-past{opacity:.45}.tl-node.tl-current{background:#fff7ed;border:1px solid #fed7aa}.tl-node.tl-future{opacity:.25}.tl-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.tl-dot-crisis{background:var(--game-red)}.tl-dot-warning{background:#f59e0b}.tl-dot-info{background:var(--game-blue)}.tl-dot-ipo{background:#7c3aed}.tl-label{flex-direction:column;gap:1px;display:flex}.tl-year{color:var(--game-text-muted);font-size:.65rem;font-weight:700}.tl-title{color:var(--game-text-primary);font-size:.78rem;font-weight:500}.rich-game-container{padding-bottom:80px}