:root{--bg-0: #0a0e1a;--bg-1: #141a33;--bg-2: #1d1240;--ink: #f3f5ff;--ink-dim: rgba(243, 245, 255, .62);--card-0: #fbfcff;--card-1: #eef0fb;--card-ink: #171a2b;--card-ink-dim: #5a607a;--accent: #7c6cff;--accent-soft: rgba(124, 108, 255, .16);--green: #1fb877;--green-soft: rgba(31, 184, 119, .16);--amber: #f1a33c;--amber-soft: rgba(241, 163, 60, .16);--red: #ff5d6c;--mint: #7cf2c0;--warm: #ffd479;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0;width:100%;max-width:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink);background:var(--bg-0);overscroll-behavior:none;-webkit-font-smoothing:antialiased}.app-shell{position:relative;height:100dvh;width:100%;max-width:480px;margin:0 auto;overflow:hidden;background:radial-gradient(1100px 600px at 80% -10%,rgba(124,108,255,.28),transparent 60%),radial-gradient(900px 500px at 10% 110%,rgba(31,184,119,.13),transparent 60%),linear-gradient(160deg,var(--bg-1),var(--bg-0) 55%,var(--bg-2))}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;padding:calc(var(--safe-t) + 14px) 18px calc(var(--safe-b) + 16px);animation:screenIn .32s cubic-bezier(.2,.8,.2,1);overflow-y:auto}@keyframes screenIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}button{font-family:inherit;cursor:pointer;border:none;color:inherit}.primary-btn{min-height:54px;border-radius:16px;font-size:17px;font-weight:700;background:linear-gradient(180deg,#8a7bff,#6a58f0);color:#fff;box-shadow:0 10px 24px #6a58f066;transition:transform .12s ease,box-shadow .12s ease;padding:0 18px}.primary-btn:disabled{opacity:.45;box-shadow:none}.primary-btn:active:not(:disabled){transform:scale(.97)}.primary-btn.share{background:linear-gradient(180deg,#2fd29a,#16a877);box-shadow:0 10px 24px #16a87757}.secondary-btn{min-height:50px;border-radius:14px;font-size:15px;font-weight:600;background:#ffffff14;color:var(--ink);border:1px solid rgba(255,255,255,.14)}.secondary-btn:active{transform:scale(.97)}.ghost-link{background:none;color:var(--ink-dim);font-size:14px;padding:10px;align-self:center}.ghost-btn{width:40px;height:40px;border-radius:50%;background:#ffffff14;color:var(--ink-dim);font-size:16px;display:grid;place-items:center;flex:0 0 auto}.sound-toggle{position:absolute;top:calc(var(--safe-t) + 12px);right:14px;z-index:30;width:42px;height:42px;border-radius:50%;background:#ffffff12;font-size:18px}.run-header{display:flex;align-items:center;gap:12px;margin-bottom:6px}.tweet-eyebrow,.role-eyebrow,.real-eyebrow{font-size:12px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;color:var(--accent)}.home-head{display:flex;align-items:center;justify-content:space-between;padding-right:52px}.brand{display:flex;align-items:center;gap:8px}.brand-mark{font-size:22px}.brand-name{font-size:22px;font-weight:800;letter-spacing:-.5px}.home-body{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:16px}.home-tagline{font-size:16px;color:var(--ink-dim);margin:0;text-align:center}.story-list{display:flex;flex-direction:column;gap:14px}.story-card{text-align:left;border-radius:22px;padding:20px;background:linear-gradient(165deg,var(--card-0),var(--card-1));color:var(--card-ink);box-shadow:0 18px 40px #0000006b;display:flex;flex-direction:column;gap:12px;animation:popIn .4s cubic-bezier(.18,.9,.24,1.2)}.story-card:active{transform:scale(.985)}.story-top{display:flex;justify-content:space-between;align-items:center}.story-tag{font-size:11px;font-weight:800;letter-spacing:1px;color:var(--accent)}.story-expiry{font-size:12px;font-weight:700;color:var(--amber)}.story-headline{font-size:clamp(19px,5.4vw,23px);font-weight:800;line-height:1.24}.story-foot{display:flex;align-items:center;justify-content:space-between}.role-pips{display:flex;gap:6px}.pip{font-size:18px;opacity:.4;filter:grayscale(1);transition:all .2s}.pip.done{opacity:1;filter:none}.story-cta{font-size:14px;font-weight:700;color:var(--accent)}.thread{flex:1;min-height:0;display:flex;flex-direction:column;gap:4px;padding:6px 0 14px}.tweet{position:relative;display:flex;gap:12px;padding:10px 4px;opacity:0;animation:tweetIn .4s cubic-bezier(.2,.8,.2,1) forwards}@keyframes tweetIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.tweet-avatar{flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:linear-gradient(145deg,#8a7bff,#6a58f0);color:#fff;font-weight:800;display:grid;place-items:center;font-size:18px;z-index:1}.tweet-body{flex:1}.tweet-meta{font-size:14px}.tweet-meta b{font-weight:700}.tweet-handle{color:var(--ink-dim)}.tweet-text{font-size:16px;line-height:1.4;margin-top:3px}.thread-line{position:absolute;left:20px;top:52px;bottom:-4px;width:2px;background:#7c6cff4d}.roll-cta{font-size:18px}.dice-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.die{font-size:80px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.5));transition:transform .1s}.die.spin{animation:dieSpin .4s linear infinite}@keyframes dieSpin{0%{transform:rotate(0) scale(1.05)}to{transform:rotate(360deg) scale(1.05)}}.role-roster{display:flex;flex-direction:column;gap:12px;width:100%}.roster-card{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:16px 18px;border-radius:18px;background:#ffffff0f;border:2px solid rgba(255,255,255,.08);position:relative;transition:all .18s ease}.roster-card.hi{background:var(--accent-soft);border-color:var(--accent);transform:scale(1.02)}.roster-card.chosen{background:linear-gradient(165deg,var(--card-0),var(--card-1));color:var(--card-ink);border-color:var(--mint);transform:scale(1.04);box-shadow:0 14px 34px #0006;animation:chosenPop .45s cubic-bezier(.18,.9,.24,1.5)}@keyframes chosenPop{0%{transform:scale(.9)}60%{transform:scale(1.08)}to{transform:scale(1.04)}}.roster-card.dim{opacity:.4}.roster-emoji{font-size:26px}.roster-title{font-size:18px;font-weight:800}.roster-tag{font-size:13px;opacity:.7}.roster-played{position:absolute;top:12px;right:14px;font-size:11px;font-weight:700;color:var(--mint)}.dice-status{color:var(--ink-dim);font-size:15px}.dice-landed{display:flex;flex-direction:column;gap:14px;align-items:center;width:100%;animation:screenIn .3s}.landed-line{font-size:19px;text-align:center}.role-intro{align-items:center;justify-content:center;text-align:center;gap:12px}.role-badge{font-size:64px;animation:popIn .45s cubic-bezier(.18,.9,.24,1.3)}.role-title{font-size:30px;font-weight:800;margin:4px 0 0;letter-spacing:-.5px}.role-tagline{font-size:16px;color:var(--ink-dim);margin:0}.role-card-block{width:100%;display:flex;flex-direction:column;gap:10px;margin:14px 0}.role-row{display:flex;flex-direction:column;gap:4px;text-align:left;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:14px 16px}.role-key{font-size:12px;font-weight:800;letter-spacing:.5px;color:var(--accent)}.role-val{font-size:15px;line-height:1.36}.play-screen{padding-top:calc(var(--safe-t) + 12px)}.play-role{display:flex;align-items:center;gap:10px;min-width:0}.play-role-emoji{font-size:22px;flex:0 0 auto}.play-role-goal{font-size:13px;color:var(--ink-dim);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.play-stage{flex:1;min-height:0;display:flex}.puzzle{flex:1;display:flex;flex-direction:column;gap:14px;min-height:0}.puzzle-prompt{font-size:16px;font-weight:600;line-height:1.34;margin:4px 0 0}.alloc-total{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;padding:12px 16px;border-radius:14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1)}.alloc-total.ready{background:var(--green-soft);border-color:var(--green)}.alloc-remaining{color:var(--ink-dim);font-weight:600}.alloc-total.ready .alloc-remaining{color:var(--mint);font-weight:700}.lever-list{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;overflow-y:auto}.lever{background:#ffffff0d;border:1.5px solid rgba(255,255,255,.1);border-radius:16px;padding:13px 15px;display:flex;flex-direction:column;gap:9px}.lever.ok{border-color:var(--green);background:var(--green-soft)}.lever-head{display:flex;justify-content:space-between;align-items:center}.lever-name{font-size:15px;font-weight:700}.lever-val{font-size:17px;font-weight:800}.lever-val.green{color:var(--mint)}.lever-val.amber{color:var(--amber)}.lever-track{position:relative;height:12px;border-radius:8px;background:#00000047;overflow:hidden}.lever-track .band{position:absolute;top:0;bottom:0;background:var(--green-soft);border-left:2px solid var(--green);border-right:2px solid var(--green)}.lever-track .mark{position:absolute;top:-3px;width:6px;height:18px;border-radius:3px;background:#fff;transform:translate(-3px);box-shadow:0 0 8px #fff9;transition:left .12s ease}.lever-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.lever-note{font-size:12px;color:var(--ink-dim);line-height:1.3;flex:1}.stepper{display:flex;gap:8px;flex:0 0 auto}.stepper button{width:40px;height:40px;border-radius:12px;background:#ffffff1a;color:#fff;font-size:22px;font-weight:700;display:grid;place-items:center}.stepper button:disabled{opacity:.3}.stepper button:active:not(:disabled){transform:scale(.92);background:var(--accent-soft)}.nego-board{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:12px}.nego-price-row{display:flex;align-items:center;justify-content:space-between}.nego-side{font-size:12px;color:var(--ink-dim);max-width:34%}.nego-side.you{color:var(--mint)}.nego-side.them{color:var(--amber);text-align:right}.nego-price{font-size:30px;font-weight:800}.tug-track{position:relative;height:16px;border-radius:10px;background:linear-gradient(90deg,var(--green-soft),rgba(255,255,255,.06) 50%,var(--amber-soft));overflow:visible}.tug-target{position:absolute;left:0;top:-2px;bottom:-2px;width:3px;background:var(--green);border-radius:2px}.tug-mark{position:absolute;top:-5px;width:26px;height:26px;border-radius:50%;background:#fff;transform:translate(-13px);box-shadow:0 2px 10px #00000080;display:grid;place-items:center;transition:left .4s cubic-bezier(.2,.8,.2,1)}.tug-mark.win{background:var(--mint)}.patience-row{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-dim)}.patience-row.low{color:var(--red);font-weight:700}.patience-track{height:10px;border-radius:6px;background:#00000047;overflow:hidden}.patience-fill{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--warm),var(--green));transition:width .4s ease}.nego-meta{font-size:13px;color:var(--ink-dim)}.nego-flash{color:var(--mint);font-weight:700}.tactic-list{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0;overflow-y:auto}.tactic{text-align:left;background:#ffffff0f;border:1.5px solid rgba(255,255,255,.12);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:3px;color:var(--ink);transition:transform .1s,background .1s}.tactic:active{transform:scale(.98);background:var(--accent-soft)}.tactic-top{font-size:16px}.tactic-desc{font-size:13px;color:var(--ink-dim);line-height:1.3}.meter-row{display:flex;flex-direction:column;gap:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:12px 14px}.meter-top{display:flex;justify-content:space-between;font-size:13px;font-weight:600}.meter-num{font-weight:800;position:relative}.meter-delta{position:absolute;right:0;top:-16px;font-size:12px;font-weight:800;animation:floatUp .7s ease forwards}.meter-delta.up{color:var(--mint)}.meter-delta.down{color:var(--red)}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.meter-track{position:relative;height:10px;border-radius:6px;background:#00000047;overflow:hidden;margin-top:4px}.meter-threshold{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--red);z-index:2}.meter-fill{display:block;height:100%;background:linear-gradient(90deg,#6a58f0,var(--mint));transition:width .5s cubic-bezier(.2,.8,.2,1)}.meter.red .meter-fill{background:linear-gradient(90deg,var(--red),var(--amber))}.incident-progress{font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--ink-dim);text-transform:uppercase}.incident-card{background:linear-gradient(165deg,var(--card-0),var(--card-1));color:var(--card-ink);border-radius:18px;padding:18px;box-shadow:0 14px 30px #0006;animation:popIn .36s cubic-bezier(.18,.9,.24,1.2)}.incident-from{font-size:12px;font-weight:800;color:var(--accent);margin-bottom:6px}.incident-text{font-size:17px;font-weight:600;line-height:1.34}.triage-options{display:flex;flex-direction:column;gap:10px}.triage-opt{display:flex;align-items:center;gap:12px;text-align:left;background:#ffffff0f;border:1.5px solid rgba(255,255,255,.12);border-radius:14px;padding:14px 15px;color:var(--ink);transition:transform .1s,background .1s}.triage-opt:active{transform:scale(.98);background:var(--accent-soft)}.opt-emoji{font-size:22px;flex:0 0 auto}.opt-label{font-size:15px;font-weight:600}.outcome-screen{justify-content:center;gap:14px;text-align:center}.outcome-stamp{align-self:center;font-size:24px;font-weight:900;letter-spacing:-.5px;padding:10px 22px;border-radius:16px;transform:scale(.4);opacity:0}.outcome-stamp.win{color:var(--mint);border:2.5px solid var(--mint)}.outcome-stamp.miss{color:var(--warm);border:2.5px solid var(--warm)}.outcome-stamp.land{animation:stampLand .5s cubic-bezier(.18,.9,.24,1.5) forwards}@keyframes stampLand{0%{transform:scale(1.8) rotate(-10deg);opacity:0}60%{transform:scale(.92) rotate(-3deg);opacity:1}to{transform:scale(1) rotate(-3deg);opacity:1}}.outcome-role{font-size:15px;font-weight:700;color:var(--ink-dim)}.outcome-line{font-size:18px;font-weight:700;line-height:1.4;margin:0;padding:0 4px}.real-reveal{background:#7c6cff1a;border:1px solid rgba(124,108,255,.25);border-radius:16px;padding:14px 16px;text-align:left}.real-text{font-size:14px;line-height:1.42;color:var(--ink);margin:6px 0 0}.collect-row{display:flex;align-items:center;justify-content:center;gap:8px}.collect-pip{font-size:22px;opacity:.35;filter:grayscale(1)}.collect-pip.done{opacity:1;filter:none}.collect-label{font-size:13px;color:var(--ink-dim);margin-left:4px}.outcome-actions{display:flex;flex-direction:column;gap:10px;margin-top:4px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#05070eb8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .22s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.share-sheet{width:100%;max-width:480px;background:linear-gradient(180deg,#1a2140,#11152a);border-radius:24px 24px 0 0;padding:18px 18px calc(var(--safe-b) + 18px);display:flex;flex-direction:column;gap:12px;box-shadow:0 -20px 50px #00000080;animation:sheetUp .34s cubic-bezier(.2,.8,.2,1)}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}.share-preview-wrap{display:flex;justify-content:center}.share-preview{width:auto;max-height:46vh;max-width:100%;border-radius:16px;box-shadow:0 14px 34px #00000080}.share-preview.placeholder{width:70%;aspect-ratio:4/5;display:grid;place-items:center;background:#ffffff0d;color:var(--ink-dim)}.share-actions{display:flex;gap:10px}.share-actions .primary-btn{flex:2}.share-actions .secondary-btn{flex:1}.share-status{text-align:center;font-size:14px;color:var(--mint)}.seq{overflow-y:auto}.seq-label{font-size:12px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px}.seq-plan-wrap{background:#ffffff0a;border:1px dashed rgba(255,255,255,.16);border-radius:16px;padding:12px}.seq-empty{font-size:14px;color:var(--ink-dim);text-align:center;padding:14px 6px}.seq-plan{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;counter-reset:step}.seq-step{display:flex;align-items:center;gap:10px;background:linear-gradient(165deg,var(--card-0),var(--card-1));color:var(--card-ink);border-radius:12px;padding:11px 13px;font-weight:600;font-size:15px;position:relative;border:2px solid transparent;animation:popIn .3s cubic-bezier(.18,.9,.24,1.2)}.seq-step.ok{border-color:var(--green)}.seq-step.broke{border-color:var(--red);animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.seq-num{flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800;font-size:14px;display:grid;place-items:center}.seq-step.ok .seq-num{background:var(--green)}.seq-step.broke .seq-num{background:var(--red)}.seq-step-label{flex:1}.seq-x{color:var(--card-ink-dim);font-size:13px}.seq-toast{background:#ff5d6c24;border:1px solid rgba(255,93,108,.4);border-radius:14px;padding:13px 15px;font-size:14px;line-height:1.4;display:flex;flex-direction:column;gap:10px;animation:popIn .3s}.seq-fix{align-self:flex-start;background:#ffffff1f;color:#fff;font-size:13px;font-weight:700;padding:8px 14px;border-radius:10px}.seq-pool-wrap{display:flex;flex-direction:column}.seq-pool{display:flex;flex-direction:column;gap:8px}.seq-tile{text-align:left;background:#ffffff0f;border:1.5px solid rgba(255,255,255,.12);border-radius:13px;padding:12px 14px;color:var(--ink);display:flex;flex-direction:column;gap:5px;transition:transform .1s,background .1s}.seq-tile:active{transform:scale(.98);background:var(--accent-soft)}.tile-main{font-size:15px;font-weight:600}.tile-needs{font-size:12px;color:var(--ink-dim);display:flex;align-items:center;gap:5px}.need-chip{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:#7c6cff33;font-size:13px}.seq-actions{display:flex;gap:10px;align-items:center;margin-top:2px}.seq-actions .primary-btn{flex:1}.seq-running{color:var(--ink-dim);font-size:14px;flex:1;text-align:center}.seq-win{color:var(--mint);font-weight:800;font-size:16px;flex:1;text-align:center}@keyframes popIn{0%{transform:scale(.9) translateY(12px);opacity:0}70%{transform:scale(1.02);opacity:1}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.05ms!important}.tweet,.outcome-stamp{opacity:1}.outcome-stamp{transform:none}}
