:root{--page: #1c1c2b;--bar: #0f0f1e;--surface: #1e1e38;--surface-2: #26264a;--work: #339933;--education: #3366cc;--crime: #cc3333;--social: #9933cc;--investment: #ccb31a;--lifestyle: #4db3b3;--nothing: #55557a;--accent: #ffe580;--text: #e6e6f2;--text-2: #c4c4d9;--text-3: #ababc2;--success: #00ff00;--success-btn: #33804d;--danger: #ff0000;--warn: #ffcc4d;--soft-red: #ff6666;--soft-red-light: #ff8888;--soft-green: #66ff66;--soft-green-light: #88ff88;--display: "Teko", "Arial Narrow", sans-serif;--mono: "Space Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--shell: 520px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bar);color:var(--text);font:400 15px/1.45 var(--mono);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button,input{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--text-2)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}#app{position:relative;max-width:var(--shell);height:100dvh;margin:0 auto;background:var(--page);overflow:hidden}.screen{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden}.good{color:var(--soft-green)}.warn{color:var(--warn)}.bad{color:var(--soft-red)}.dim{color:var(--text-3)}.accent{color:var(--accent)}.label{color:var(--text-2)}.btn{display:block;width:100%;min-height:48px;padding:10px 16px;border:0;background:var(--surface-2);color:var(--text);font:700 16px/1.2 var(--mono);text-align:center;transition:filter .1s,transform .06s}.btn:hover{filter:brightness(1.15)}.btn:active{transform:scale(.985)}.btn.primary{background:var(--success-btn)}.btn.small{width:auto;min-height:40px;font-size:13px;padding:8px 12px}.icon-btn{border:0;background:transparent;color:var(--text-2);font:400 28px/1 var(--display);width:44px;height:44px}.icon-btn:hover{color:var(--text)}.menu{justify-content:space-between;padding:12vh 24px 20px;text-align:center}.logo{margin:0;font:700 clamp(84px,26vw,128px)/.8 var(--display);letter-spacing:.02em;color:var(--accent)}.tagline{margin:14px 0 0;color:var(--text-2)}.best{margin:22px 0 0;color:var(--text-3);font-size:13px}.rank{margin:6px 0 0;color:var(--accent);font-size:13px;white-space:pre-line}.menu-buttons{display:grid;gap:10px}.menu-footer{font-size:12px;color:var(--text-3);padding-top:14px}.status{background:var(--bar);padding:10px 14px;flex:none}.status-row{display:flex;justify-content:space-between;align-items:center}.money{font:700 44px/.9 var(--display);color:var(--accent);font-variant-numeric:tabular-nums;padding-top:4px;transition:color .2s}.money.up{color:var(--soft-green)}.money.down,.money.danger{color:var(--soft-red)}.status-right{display:flex;align-items:center;gap:4px}.turn{font:400 22px/1 var(--display);color:var(--text-2);letter-spacing:.02em}.col{font-size:13px;color:var(--text-2);margin-top:4px}.col-bar{display:flex;gap:3px;margin-top:5px}.col-bar i{flex:1;height:5px;background:var(--surface-2)}.col-bar i.on{background:var(--warn)}.effects{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.effect{font-size:12px;padding:1px 7px;background:#4a3a10;color:var(--warn)}.effect.sick,.effect.hospitalized,.effect.injured{background:#4a1616;color:var(--soft-red-light)}.effect.mentored{background:#173a24;color:var(--soft-green-light)}.hand{flex:1;overflow-y:auto;padding:12px 12px 14px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin}.card{position:relative;background:var(--surface);border-left:8px solid var(--cat, var(--nothing));padding:12px 14px 10px;cursor:pointer;transition:background .12s,transform .08s;flex:none}.card:hover{background:var(--surface-2)}.card:active{transform:scale(.99)}.card.deal{animation:deal .28s cubic-bezier(.2,.8,.3,1) both}@keyframes deal{0%{opacity:0;transform:translateY(14px)}}.card.work{--cat: var(--work)}.card.education{--cat: var(--education)}.card.social{--cat: var(--social)}.card.crime{--cat: var(--crime)}.card.investment{--cat: var(--investment)}.card.lifestyle{--cat: var(--lifestyle)}.card-name{font:600 25px/1 var(--display);padding-right:22px;letter-spacing:.01em}.card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;font-size:12px;color:var(--text-2)}.pill{font:700 12px/1 var(--mono);padding:3px 6px;color:#fff;background:var(--nothing)}.pill.work{background:var(--work)}.pill.education{background:var(--education)}.pill.social{background:var(--social)}.pill.crime{background:var(--crime)}.pill.investment{background:var(--investment);color:#1c1c2b}.pill.lifestyle{background:var(--lifestyle);color:#1c1c2b}.repeat{color:var(--soft-red)}.card-odds{font-size:14px}.card-odds .sep{color:var(--text-2)}.card-stats{font-size:14px;color:var(--text);margin-top:2px}.details-toggle{background:none;border:0;padding:6px 0 0;color:var(--text-3);font-size:12px}.card-desc{margin:4px 0 2px;font-size:13px;color:var(--text-2)}.hotkey{position:absolute;top:10px;right:10px;font:400 12px/1 var(--mono);color:var(--text-3);border:1px solid var(--surface-2);padding:2px 5px}@media(hover:none){.hotkey{display:none}}.do-nothing{flex:none;background:none;border:1px dashed var(--surface-2);color:var(--text-3);padding:12px;font-size:13px}.do-nothing:hover{color:var(--text-2);border-color:var(--text-3)}.tabs{display:grid;grid-template-columns:repeat(4,1fr);background:var(--bar);flex:none;padding-bottom:env(safe-area-inset-bottom)}.tab{border:0;background:transparent;color:var(--text-2);font:500 19px/1 var(--display);padding:14px 2px 12px;letter-spacing:.02em;border-top:3px solid transparent}.tab.active{color:var(--accent);border-top-color:var(--accent);background:var(--surface)}.sheet-host{position:absolute;inset:0 0 calc(49px + env(safe-area-inset-bottom)) 0;pointer-events:none;z-index:5}.sheet-host:empty{display:none}.scrim{position:absolute;inset:0;background:#08081299;pointer-events:auto}.sheet{position:absolute;left:0;right:0;bottom:0;max-height:78%;background:var(--surface);display:flex;flex-direction:column;pointer-events:auto;animation:sheet .2s ease-out}@keyframes sheet{0%{transform:translateY(24px);opacity:0}}.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:8px 8px 0 16px}.sheet-head h2{margin:0;font:600 30px/1 var(--display)}.sheet-body{overflow-y:auto;padding:4px 16px 18px}.sheet-body h3{font:600 22px/1 var(--display);color:var(--text-2);margin:22px 0 8px;letter-spacing:.04em}.empty{color:var(--text-3);font-style:italic;text-align:center;padding:20px 8px}.hint{color:var(--text-3);font-size:12px}.skill{padding:10px 0;border-bottom:1px solid var(--surface-2)}.skill-row{display:flex;justify-content:space-between;align-items:baseline}.skill-name{font:600 22px/1 var(--display)}.skill-level{font:500 20px/1 var(--display);color:var(--soft-green)}.xpbar{height:5px;background:var(--bar);margin:6px 0 4px}.xpbar i{display:block;height:100%;background:var(--accent)}.skill-sub{font-size:12px;color:var(--text-3)}.perks{list-style:none;margin:6px 0 0;padding:0;font-size:12px;color:var(--text-3)}.perks li.on{color:var(--soft-green-light)}.life-stats{display:grid;grid-template-columns:1fr auto;gap:6px 12px;margin:0;font-size:14px}.life-stats dt{color:var(--text-2)}.life-stats dd{margin:0;color:var(--accent);text-align:right}.venture,.job{padding:12px 0;border-bottom:1px solid var(--surface-2)}.venture-name,.job-title{font:600 24px/1 var(--display)}.tier{font:700 11px/1 var(--mono);background:var(--investment);color:#1c1c2b;padding:3px 5px;margin-left:8px;vertical-align:middle}.venture-desc{margin:6px 0;font-size:13px;color:var(--text-2)}.venture-money,.job-pay{font-size:14px;margin-top:4px}.venture-state,.venture-sub,.job-sub{font-size:12px;color:var(--text-3);margin-top:4px}.job-warn{font-size:12px;color:var(--warn);margin-top:4px}.story-chain{margin-top:12px;border-left:4px solid var(--cat, var(--nothing));background:var(--page)}.story-chain.work{--cat: var(--work)}.story-chain.education{--cat: var(--education)}.story-chain.social{--cat: var(--social)}.story-chain.crime{--cat: var(--crime)}.story-chain.investment{--cat: var(--investment)}.story-chain.lifestyle{--cat: var(--lifestyle)}.story-head{width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:8px;border:0;background:none;padding:10px 12px;text-align:left;font:600 22px/1 var(--display)}.story-progress{font:400 12px/1 var(--mono);color:var(--text-3)}.story-chain ol,.story-misc{list-style:none;margin:0;padding:0 12px 6px}.story-chain li,.story-misc li{padding:8px 0;border-top:1px solid var(--surface-2);font-size:13px}.entry-head{display:flex;gap:8px;align-items:baseline}.entry-name{flex:1;font-weight:700}li.fail .entry-name{color:var(--soft-red)}.entry-turn{color:var(--text-3);font-size:11px}.story-chain li p,.story-misc li p{margin:4px 0 0;color:var(--text-2)}.overlay-host:empty{display:none}.overlay{position:absolute;inset:0;z-index:20;background:#0a0a16c7;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease-out}.overlay.dark{background:#000000eb;align-items:center}@keyframes fade{0%{opacity:0}}.panel{width:100%;max-height:92%;overflow-y:auto;background:var(--surface);padding:20px 20px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;animation:rise .22s cubic-bezier(.2,.8,.3,1)}@keyframes rise{0%{transform:translateY(30px);opacity:0}}.panel h2{margin:0;font:600 38px/.95 var(--display)}.panel-head{border-left:6px solid var(--cat, var(--accent));padding-left:12px}.panel.work{--cat: var(--work)}.panel.education{--cat: var(--education)}.panel.social{--cat: var(--social)}.panel.crime{--cat: var(--crime)}.panel.investment{--cat: var(--investment)}.panel.lifestyle{--cat: var(--lifestyle)}.panel.nothing{--cat: var(--nothing)}.chain-name{font:500 16px/1 var(--display);letter-spacing:.12em;color:var(--text-3);margin-bottom:4px}.narrative{margin:0;font-style:italic;font-size:16px;color:var(--text);min-height:3em;white-space:pre-line}.narrative.failed{color:var(--soft-red-light)}.result-label{font:700 44px/.9 var(--display);letter-spacing:.02em}.result-label.pop{animation:pop .25s cubic-bezier(.3,1.6,.5,1)}@keyframes pop{0%{transform:scale(.7);opacity:0}}.result-label.good{color:var(--success)}.result-label.bad{color:var(--danger)}.panel.crit .result-label.good{color:var(--accent)}.result-money{font:700 56px/.9 var(--display)}.result-cost{font-size:13px;color:var(--text-3)}.result-xp{font-size:13px;color:var(--soft-green-light)}.result-status{font-size:14px;color:var(--warn)}.choices{display:grid;gap:8px}.btn.choice{text-align:left;display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:54px}.choice-meta{font:400 12px/1.2 var(--mono);color:var(--accent);white-space:nowrap}.event-panel.birthday .panel-head{--cat: var(--accent)}.transition-panel{border-top:6px solid var(--accent)}.transition-panel.complete h2{color:var(--accent)}.reward-line{font-size:15px;color:var(--soft-green)}.reward-line.accent{color:var(--accent)}.death-panel{background:transparent;text-align:center;animation:none}.death-cause{color:var(--danger);font-size:56px!important}.death-text{color:var(--text-2);text-align:left}.second-chance{background:var(--surface);text-align:center}.second-chance h2{white-space:pre-line;color:var(--accent)}.pause,.settings{gap:10px}.setting-label{font-size:13px;color:var(--text-2);margin-top:6px}.slider{display:grid;gap:4px;font-size:13px;color:var(--text-2)}.slider input{width:100%;accent-color:var(--accent)}.check{font-size:14px;color:var(--text-2)}.check input{accent-color:var(--accent)}.seg{display:flex;background:var(--bar)}.seg button{flex:1;border:0;background:transparent;color:var(--text-2);padding:10px;font-size:14px}.seg button.active{background:var(--surface-2);color:var(--accent)}.opening{justify-content:flex-end}.opening .panel{max-height:none}.gameover{overflow-y:auto;padding:32px 20px 24px;text-align:center;gap:4px}.gameover-title{margin:0;font:700 clamp(64px,19vw,96px)/.85 var(--display);white-space:nowrap;color:var(--danger)}.score{font:700 40px/1 var(--display);color:var(--text);margin-top:10px}.cause{font-size:17px;color:var(--soft-red-light)}.turns{font-size:15px;color:var(--text-2);margin-top:6px}.skills-line{font-size:13px;color:var(--soft-green)}.summary{text-align:left;background:var(--surface);padding:14px 16px;margin-top:14px;font-size:14px;color:var(--text-2)}.summary p{margin:0 0 8px}.ach-recap{text-align:left;margin-top:12px;font-size:13px}.ach-recap h3{font:600 24px/1 var(--display);margin:8px 0;text-align:center}.ach-recap em{color:var(--text-2)}.gameover-buttons{display:grid;gap:10px;margin-top:18px}.name-prompt{background:var(--surface);padding:14px;margin-top:14px;display:grid;gap:8px;text-align:left}.name-prompt p{margin:0}.name-row{display:flex;gap:8px}.name-input{flex:1;min-width:0;background:var(--bar);border:1px solid var(--surface-2);padding:10px;color:var(--text)}.error{color:var(--soft-red);font-size:13px;margin:0;min-height:1em}.scores-screen,.ach-screen{padding:8px 12px 16px}.screen-head{display:flex;align-items:center;gap:4px}.screen-head h2{margin:0;font:600 34px/1 var(--display)}.scores{list-style:none;margin:10px 0 0;padding:0;overflow-y:auto}.scores li{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--surface)}.scores li.me{background:var(--surface)}.scores .pos{color:var(--text-3);font:500 20px/1 var(--display)}.scores .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scores .who small{display:block;color:var(--text-3);font-size:11px}.scores .amt{font:600 22px/1 var(--display);color:var(--accent)}.ach-list{list-style:none;margin:10px 0 0;padding:0;overflow-y:auto;display:grid;gap:6px}.ach-list li{background:var(--surface);padding:10px 12px;opacity:.55}.ach-list li.on{opacity:1;border-left:4px solid var(--accent)}.ach-name{font:600 21px/1 var(--display)}.ach-desc{font-size:12px;color:var(--text-2);margin-top:3px}.toasts{position:absolute;top:96px;left:12px;right:12px;z-index:40;display:grid;gap:6px;pointer-events:none}.toast{background:var(--bar);border-left:4px solid var(--text-3);padding:8px 12px;font-size:13px;display:grid;gap:2px;animation:toast .25s ease-out;box-shadow:0 0 0 1px var(--surface-2)}.toast.out{opacity:0;transform:translateY(-6px);transition:.3s}@keyframes toast{0%{opacity:0;transform:translateY(-8px)}}.toast strong{font:600 19px/1 var(--display);letter-spacing:.02em}.toast span{color:var(--text-2)}.toast.achievement{border-color:var(--accent)}.toast.achievement strong{color:var(--accent)}.toast.levelup,.toast.perk{border-color:var(--soft-green)}.toast.fired,.toast.col{border-color:var(--soft-red)}.toast.promoted,.toast.job,.toast.payday{border-color:var(--work)}.toast.venture{border-color:var(--investment)}.toast.chain{border-color:var(--social)}@media(min-width:560px){body{padding:0}#app{box-shadow:0 0 0 1px #2a2a48}.overlay{align-items:center}.panel{width:calc(100% - 32px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0s!important;transition-duration:0s!important}}.card{border-left:0;padding:0 14px 10px}.card-name{margin:0 -14px;padding:11px 44px 9px 14px;background:color-mix(in srgb,var(--cat, var(--nothing)) 85%,transparent);color:#fff}.card.investment .card-name,.card.lifestyle .card-name,.card.investment .card-tag,.card.lifestyle .card-tag{color:#14142a}.card-tag{display:block;margin:0 -14px;padding:7px 14px 0;background:color-mix(in srgb,var(--cat, var(--nothing)) 85%,transparent);font:700 11px/1 var(--mono);letter-spacing:.14em;color:#fffc}.card-meta{margin-top:9px}.card .hotkey{top:9px;border-color:#ffffff59;color:#ffffffbf}.card:has(.card-tag) .hotkey{top:22px}.card.investment .hotkey,.card.lifestyle .hotkey{border-color:#14142a66;color:#14142a}.card:hover .card-name{filter:brightness(1.08)}.card.risky{box-shadow:inset 0 0 0 2px var(--soft-red)}.card-odds span:nth-child(-n+2){font-weight:700}.money-wrap{position:relative}.floater{position:absolute;left:100%;top:2px;margin-left:8px;white-space:nowrap;font:700 24px/1 var(--display);pointer-events:none;animation:floatUp 1.3s ease-out forwards}.floater.up{color:var(--soft-green)}.floater.down{color:var(--soft-red)}@keyframes floatUp{0%{opacity:0;transform:translateY(8px)}15%{opacity:1;transform:none}to{opacity:0;transform:translateY(-18px)}}.money.shake{animation:shake .4s cubic-bezier(.36,.07,.19,.97)}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(3px)}30%,50%,70%{transform:translate(-5px)}40%,60%{transform:translate(5px)}}.money.danger{animation:danger 1.2s ease-in-out infinite}@keyframes danger{50%{color:#ff9a9a}}.col{display:flex;flex-wrap:wrap;align-items:center;column-gap:10px}.col-bar{flex-basis:100%}.rent-warn{font:700 11px/1 var(--mono);letter-spacing:.08em;padding:3px 6px;background:var(--danger);color:#fff;animation:danger-bg 1s steps(2) infinite}@keyframes danger-bg{50%{background:#8a0000}}.origin-tag{font:500 14px/1 var(--mono);color:var(--accent);margin-right:8px;letter-spacing:0}.origin-tag:empty{display:none}.turn{display:flex;align-items:center}.flash{position:absolute;inset:0;z-index:60;pointer-events:none;animation:flash .45s ease-out forwards}.flash.gold{background:var(--accent)}.flash.red{background:var(--danger)}@keyframes flash{0%{opacity:.45}to{opacity:0}}.result-label{transform-origin:left center}.result-label.pop{animation:stamp .3s cubic-bezier(.3,1.6,.5,1)}@keyframes stamp{0%{transform:scale(1.8) rotate(-4deg);opacity:0}}.btn.daily{display:grid;gap:3px;background:var(--social)}.btn.daily small{font:400 11px/1.3 var(--mono);color:#ffffffd9}.btn.daily.done{background:var(--surface-2)}.btn.daily.done small{color:var(--accent)}.ticker{overflow:hidden;white-space:nowrap;margin:0 -24px;padding:8px 0;background:var(--bar);font-size:12px;color:var(--text-3);min-height:32px}.ticker-track{display:inline-flex;animation:ticker 90s linear infinite}.ticker-track span{padding-right:60px}@keyframes ticker{to{transform:translate(-50%)}}.origins{padding:8px 14px 16px;overflow-y:auto}.origins>.hint{margin:0 0 12px 48px}.origin-list{display:grid;gap:10px}.origin{position:relative;display:grid;gap:6px;text-align:left;border:0;background:var(--surface);padding:14px 16px;border-left:6px solid var(--accent)}.origin:hover{background:var(--surface-2)}.origin.classic{border-left-color:var(--text-3)}.origin-name{font:600 28px/1 var(--display)}.origin .hotkey{top:12px}.origin-blurb{font-size:13px;color:var(--text-2);font-style:italic}.origin-effects{display:grid;gap:2px;font-size:13px;color:var(--accent)}.origin-effects span:before{content:"> ";color:var(--text-3)}.btn.reroll{margin-top:12px;background:transparent;color:var(--text-3);font-weight:400;font-size:13px}.origin-line{font-size:13px;color:var(--text-3)}.btn.share{background:var(--social)}.ticker:empty{display:none}.narrative:first-letter,.card-name:first-letter,.story-misc p:first-letter,.story-chain p:first-letter{text-transform:uppercase}
