*,:before,:after{box-sizing:border-box}body{margin:0}:root{--bg:#1a1a1a;--card-bg:#2a2a2a;--card-border:#3a3a3a;--text:#e8e0d4;--text-muted:#a09888;--accent:#c8102e;--accent-hover:#e01838;--gold:#d4a444;--gold-dim:#a07830;--green:#3a8a5a;--red:#b0302a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif}.app{flex-direction:column;max-width:640px;min-height:100vh;margin:0 auto;padding:.75rem 1rem 1.5rem;display:flex}.transitioning{justify-content:center;align-items:center;display:flex}.bass-loader{gap:.4rem;display:flex}.bass-note{font-size:1.5rem;animation:.6s ease-in-out infinite bassBounce}.bass-note.delayed{animation-delay:.15s}.bass-note.more-delayed{animation-delay:.3s}@keyframes bassBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.splash-container{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.5rem;display:flex}.splash-icon{margin-bottom:.5rem;font-size:3rem}.splash-title{color:var(--gold);letter-spacing:1px;font-family:Georgia,Times New Roman,serif;font-size:2rem}.splash-sub{color:var(--text-muted);margin-top:.25rem;font-family:Courier New,monospace;font-size:.8rem}.splash-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;max-width:420px;padding:1.5rem}.splash-desc{color:var(--text-muted);margin-bottom:1rem;font-size:.9rem;line-height:1.6}.splash-badges{flex-wrap:wrap;justify-content:center;gap:.4rem;margin-bottom:1.5rem;display:flex}.splash-badges span{color:var(--text-muted);background:#222;border-radius:6px;padding:.3rem .6rem;font-size:.75rem}.splash-btn{margin:0 auto .5rem;padding:.8rem 2rem;font-size:1.05rem;display:block}.app-header{text-align:center;border-bottom:2px solid var(--accent);margin-bottom:.75rem;padding:.75rem 0 .4rem}.title{color:var(--gold);letter-spacing:1px;font-family:Georgia,serif;font-size:1.4rem}.subtitle{color:var(--text-muted);margin-top:.15rem;font-family:Courier New,monospace;font-size:.8rem;font-style:italic}.act-badge{color:var(--gold-dim);text-transform:uppercase;letter-spacing:1.5px;border:1px solid var(--card-border);background:#222;border-radius:4px;margin-bottom:.5rem;padding:.25rem .6rem;font-family:Courier New,monospace;font-size:.65rem;display:inline-block}.luck-tag{margin-bottom:.4rem;font-size:.6rem}.luck-tag.lucky{border-color:var(--green);color:var(--green)}.luck-tag.neutral{border-color:var(--gold-dim);color:var(--gold)}.luck-tag.unlucky{border-color:var(--red);color:var(--red)}.story-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;flex-direction:column;flex:1;padding:1.25rem;animation:.3s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.scene-dialogue{margin-bottom:1rem}.dialogue-line{border-left:2px solid #0000;margin-bottom:.5rem;padding-left:.5rem;font-size:.88rem;line-height:1.55}.dialogue-line:nth-child(odd){border-left-color:#d4a44426}.choices-section{border-top:1px solid var(--card-border);margin-top:auto;padding-top:.75rem}.choices-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;margin-bottom:.6rem;font-family:Courier New,monospace;font-size:.7rem}.choices{flex-direction:column;gap:.5rem;display:flex}.btn-choice{cursor:pointer;text-align:left;color:var(--text);background:#333;border:1px solid #444;border-radius:8px;align-items:flex-start;gap:.5rem;width:100%;padding:.7rem 1rem;font-size:.85rem;line-height:1.35;transition:all .2s;display:flex}.btn-choice:hover{background:var(--accent);border-color:var(--accent);transform:translate(3px)}.choice-num{color:var(--gold);flex-shrink:0;min-width:1.1rem;font-family:Courier New,monospace;font-weight:700}.choice-text{font-weight:500}.roll-card{text-align:center;justify-content:center;align-items:center;min-height:280px}.roll-label{color:var(--gold);margin-bottom:1rem;font-family:Georgia,serif;font-size:.9rem}.die{border-radius:14px;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto .75rem;transition:all .3s;display:flex}.die.spinning{background:var(--card-bg);border:2px solid var(--gold-dim);animation:70ms infinite shake}.die.landed{border:2px solid var(--gold);background:#1e1e1e;box-shadow:0 0 16px #d4a44433}.die-face{font-size:2.5rem;line-height:1}@keyframes shake{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.luck-label{margin-bottom:.75rem;font-size:.85rem;font-weight:600}.luck-label.lucky{color:var(--green)}.luck-label.neutral{color:var(--gold)}.luck-label.unlucky{color:var(--red)}.roll-actions{margin-top:.5rem}.roll-btn{margin-bottom:.25rem}.complication-text{border-left:3px solid var(--gold-dim);background:#222;border-radius:8px;margin-bottom:.75rem;padding:.6rem .75rem;font-size:.9rem;line-height:1.5}.cameo-card{border:1px solid var(--card-border);background:#1e1e1e;border-radius:10px;gap:.75rem;margin-bottom:.75rem;padding:.75rem;display:flex}.cameo-emoji{font-size:1.8rem;line-height:1}.cameo-content{flex:1}.cameo-name{color:var(--gold);margin-bottom:.2rem;font-size:.85rem;display:block}.cameo-line{color:var(--text);font-size:.82rem;font-style:italic;line-height:1.4}.cameo-line.secondary{color:var(--text-muted);margin-top:.2rem;font-style:normal}.climax-text{border-left:3px solid var(--accent);background:#222;border-radius:8px;margin-bottom:.75rem;padding:.75rem;font-size:.95rem;line-height:1.5}.climax-intro{color:var(--text-muted);margin-bottom:.5rem;font-size:.85rem;font-style:italic}.outcome-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:1.25rem;animation:.4s fadeIn}.outcome-title{color:var(--gold);text-align:center;margin-bottom:.75rem;font-family:Georgia,serif;font-size:1.2rem}.luck-final{text-align:center;background:#222;border-radius:8px;margin-bottom:.75rem;padding:.4rem;font-size:.85rem}.luck-score{color:var(--gold-dim);margin-left:.5rem;font-family:Courier New,monospace;font-size:.75rem;display:inline-block}.epilogue-box{background:#222;border-radius:8px;margin-bottom:.75rem;padding:.75rem 1rem}.epilogue-box p{color:var(--text);margin-bottom:.3rem;font-size:.85rem;line-height:1.5}.epilogue-box p:last-child{margin-bottom:0}.cameo-epilogue{color:var(--text-muted);background:#222;border-radius:8px;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.4rem .75rem;font-size:.78rem;font-style:italic;display:flex}.jerry-bit{border:1px solid var(--card-border);background:#222;border-radius:8px;margin-bottom:.75rem;padding:.75rem 1rem}.bit-header{color:var(--gold-dim);text-transform:uppercase;letter-spacing:1px;margin-bottom:.4rem;font-family:Courier New,monospace;font-size:.65rem}.bit-setup{color:var(--text-muted);margin-bottom:.3rem;font-size:.8rem;font-style:italic}.bit-punchline{color:var(--text);font-size:.9rem;line-height:1.4}.score-box{text-align:center;border:1px solid var(--gold-dim);color:var(--gold);background:#1e1e1e;border-radius:8px;margin-bottom:.75rem;padding:.5rem;font-family:Courier New,monospace;font-size:.8rem}.btn{cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.2rem;font-family:Segoe UI,sans-serif;font-size:.85rem;font-weight:600;transition:all .2s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-secondary{color:var(--text);background:#333;border:1px solid #555}.btn-secondary:hover{border-color:var(--gold);color:var(--gold);background:#444}.btn-ghost{color:var(--text-muted);border:1px solid var(--card-border);background:0 0;margin-top:.4rem;padding:.4rem .8rem;font-size:.78rem}.btn-ghost:hover{color:var(--gold);border-color:var(--gold-dim)}.ending-actions,.gallery-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.credits-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:1rem}.ending-list{flex-direction:column;gap:.25rem;max-height:55vh;margin-bottom:.75rem;display:flex;overflow-y:auto}.ending-item{background:#222;border-radius:5px;align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.75rem;display:flex}.ending-item.visited{border-left:3px solid var(--green)}.ending-item.unvisited{opacity:.4;border-left:3px solid #444}.ending-status{flex-shrink:0;font-size:.8rem}.ending-name{font-size:.75rem}@media (width<=500px){.app{padding:.4rem}.title{font-size:1.15rem}.story-card{padding:.9rem}.splash-title{font-size:1.5rem}}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--card-border);border-radius:3px}
