*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#090b16;color:#e8e6f7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}body{padding:12px}.app{width:min(100%,420px);margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.eyebrow{font-size:9px;letter-spacing:2px;color:#8e91bb}.topbar h1{font-size:18px;letter-spacing:2px;margin:4px 0 0;color:#f3c76b}.topbar h1 span{color:#a78bfa}.top-actions{display:flex;gap:6px}.icon-button,.secondary-button,.primary-button,.segmented button,.decision-actions button{font:inherit;color:inherit;border:1px solid #343658;background:#15182c;border-radius:7px;cursor:pointer}.icon-button{width:34px;height:32px;color:#f3c76b}.icon-button:hover,.secondary-button:hover{border-color:#a78bfa}.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px}.status-card{background:#111426;border:1px solid #252946;border-radius:7px;padding:7px 6px}.status-card span{display:block;font-size:8px;letter-spacing:1px;color:#777b9e}.status-card strong{display:block;margin-top:4px;color:#f3c76b;font-size:14px}.scene-card,.party-card,.camp-card,.outcome-card,.controls-card,.log-card,.decision-card{background:#101325;border:1px solid #292d4d;border-radius:9px;margin-bottom:8px;overflow:hidden}.scene-card{padding:6px}.scene-card canvas{display:block;width:100%;height:auto;image-rendering:pixelated;background:#17142a;border-radius:5px}.scene-caption{display:flex;justify-content:space-between;gap:10px;padding:7px 3px 1px;font-size:10px;color:#aeb1cc}.scene-caption span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-caption span:last-child{color:#f3c76b;white-space:nowrap}.enemy-readout{font-size:9px;color:#e77b76;letter-spacing:1px;padding:3px 3px 0}.party-card,.armory-card,.skills-card,.camp-card,.outcome-card,.controls-card,.log-card,.decision-card{padding:10px}.section-heading{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.5px;color:#8184a8;margin-bottom:8px}.section-heading span:last-child{color:#f3c76b}.party-list{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.hero{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:6px;background:#171a2e;border-radius:6px;padding:6px}.hero-icon{font-size:16px;text-align:center}.hero-name{font-size:10px;color:#e5e1f3}.hero-role{font-size:8px;color:#777b9e;margin-top:2px}.hero-hp{font-size:9px;color:#9be28f}.health-track{height:3px;background:#292d4d;border-radius:3px;margin-top:4px}.health-fill{height:100%;background:#9be28f;border-radius:3px;transition:width .3s}.skill-tree{display:grid;gap:5px}.skill-node{display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left;background:#171a2e;border:1px solid #292d4d;border-radius:6px;padding:7px;color:#c4b5fd;font:inherit;cursor:pointer}.skill-node b{display:block;font-size:9px;color:#e5e1f3}.skill-node small{display:block;font-size:8px;color:#8184a8;margin-top:2px}.skill-node span{font-size:8px;color:#f3c76b}.skill-node.active{border-color:#9be28f;background:#1b2a2a}.skill-node.locked{opacity:.45;cursor:not-allowed}.build-summary{font-size:9px;color:#c4b5fd;background:#171a2e;border-radius:6px;padding:7px;margin-bottom:6px;line-height:1.5}.inventory-list{display:flex;gap:5px;overflow-x:auto;padding-bottom:4px}.gear-chip{min-width:105px;background:#171a2e;border:1px solid #292d4d;border-radius:6px;padding:6px;font-size:8px}.gear-chip b{display:block;color:#f3c76b;font-size:9px;margin-bottom:3px}.gear-chip small{display:block;color:#8184a8;line-height:1.4}.gear-chip.rare{border-color:#b69af5}.forge-row{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:4px}.forge-row button{font-size:8px;padding:7px 3px}.camp-stats{display:flex;justify-content:space-between;color:#8184a8;font-size:9px;margin:3px 0 9px}.camp-stats strong{display:block;color:#f3c76b;font-size:13px;margin-top:3px}.upgrade-list{display:grid;gap:5px}.upgrade{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:7px 8px;background:#171a2e;border:1px solid #292d4d;color:#c4b5fd;border-radius:6px;font:inherit;cursor:pointer}.upgrade b{font-size:9px}.upgrade small{font-size:8px;color:#8184a8}.upgrade small span{color:#f3c76b}.upgrade:disabled{opacity:.4;cursor:not-allowed}.camp-note{color:#777b9e;font-size:9px;margin-top:8px}.outcome-card{border-color:#f3c76b;box-shadow:0 0 18px #f3c76b16}.outcome-card h2{font-size:15px;color:#f3c76b;margin:5px 0}.outcome-card p{font-size:10px;color:#aeb1cc;line-height:1.5;margin:0 0 9px}.outcome-card button{width:100%}.decision-card{border-color:#a78bfa;box-shadow:0 0 18px #7c5cff16}.decision-card h2{font-size:14px;color:#f3c76b;margin:5px 0}.decision-card p{font-size:10px;color:#aeb1cc;margin:0 0 9px;line-height:1.5}.decision-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.decision-actions button{padding:8px 4px;font-size:9px;color:#c4b5fd;border-color:#6552a3}.controls-card{padding-bottom:8px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:8px}.segmented button{padding:8px 2px;font-size:9px;color:#777b9e}.segmented button.selected{color:#f3c76b;border-color:#f3c76b;background:#2c2430}.control-row{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:5px}.secondary-button,.primary-button{padding:9px 4px;font-size:9px}.primary-button{color:#101325;background:#f3c76b;border-color:#f3c76b;font-weight:bold}.danger{color:#e77b76!important}.loot{color:#f3c76b!important}.heal{color:#9be28f!important}.log-card ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column-reverse;gap:5px}.log-card li{font-size:9px;line-height:1.35;color:#9297b8;border-bottom:1px solid #1d2037;padding-bottom:5px}.log-card li strong{color:#c4b5fd;font-weight:normal}.live-dot{color:#9be28f!important}.hidden{display:none!important}footer{text-align:center;color:#4f5374;font-size:9px;padding:4px 0 10px}@media(max-height:700px){body{padding:7px}.scene-card canvas{height:165px}.party-card{padding:7px}.log-card{display:none}.scene-card,.party-card,.armory-card,.skills-card,.camp-card,.outcome-card,.controls-card,.decision-card{margin-bottom:5px}}
