/* ⚜ Exis v2 — Clean PWA Styles */
:root {
    --bg: #08080a; --bg-light: #0f1014; --bg-lighter: #1a1c22;
    --text: #b8c0cc; --text-dim: #5a6070;
    --accent-red: #6b1a1a; --accent-gold: #7a8a9a; --accent-navi: #3a5068;
    --error: #994444; --bg-player: #0f1418;
    --font: 'Georgia', 'Times New Roman', serif;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;width:100%;overflow:hidden;font-family:var(--font);background:var(--bg);color:var(--text)}
body{display:flex;flex-direction:column;align-items:center;justify-content:center;
  background-image:radial-gradient(ellipse at center,#1a1a1a 0%,#0d0d0d 70%)}

.screen{display:none;width:100%;max-width:780px;height:100vh;overflow:hidden}
.screen.center{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}
.screen.col{display:flex;flex-direction:column}
.screen:not(.hidden){display:flex}.hidden{display:none!important}

.box{max-width:600px;width:100%;text-align:center}
h1{font-size:36px;color:var(--accent-gold);margin-bottom:8px}
h2{font-size:24px;color:var(--accent-gold);margin-bottom:16px}
.sub{font-size:16px;color:var(--text-dim);margin-bottom:24px;font-style:italic}
.master-text{text-align:left;font-style:italic;color:var(--text);line-height:1.6;margin-bottom:20px;padding:12px 16px;
  border-left:2px solid var(--accent-red);background:var(--bg-light);border-radius:0 8px 8px 0}

/* Buttons */
.gold{background:var(--bg-lighter);color:var(--accent-gold);border:1px solid var(--accent-gold);
  padding:10px 24px;font-family:var(--font);font-size:16px;border-radius:8px;cursor:pointer;transition:all .2s}
.gold:hover{background:var(--accent-gold);color:var(--bg);box-shadow:0 0 12px rgba(122,138,154,.2)}
.gold:disabled{opacity:.4;cursor:not-allowed}
.dark{background:var(--bg);color:var(--text-dim);border:1px solid var(--accent-navi);
  padding:10px 24px;font-family:var(--font);font-size:16px;border-radius:8px;cursor:pointer}
.dark:hover{border-color:var(--accent-gold);color:var(--text)}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:16px}
.card{background:var(--bg-light);border:1px solid var(--accent-navi);border-radius:8px;padding:12px;
  cursor:pointer;transition:border-color .2s;text-align:center}
.card:hover{border-color:var(--accent-gold)}
.card h3{font-size:16px;margin-bottom:4px;color:var(--accent-gold)}
.card p{font-size:12px;color:var(--text-dim)}

/* Inputs */
input,textarea{background:var(--bg-light);border:1px solid var(--accent-red);color:var(--text);
  font-family:var(--font);font-size:15px;padding:10px 14px;border-radius:6px;outline:none;width:100%;transition:border-color .2s}
input:focus,textarea:focus{border-color:var(--accent-gold);box-shadow:0 0 8px rgba(122,138,154,.15)}
textarea{resize:vertical}
.err{color:var(--error);font-size:13px;margin-top:8px}

/* Loading */
.loader{font-size:64px;animation:pulse 2s infinite}
.loader p{font-size:18px;color:var(--text-dim);font-style:italic}
@keyframes pulse{0%,100%{opacity:.5}50%{opacity:1}}

/* Chat */
#chat-head{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--bg-light);
  border-bottom:1px solid var(--accent-red);font-size:14px;flex-shrink:0}
#chat-name{color:var(--accent-gold)}
#chat-restart{background:none;border:none;color:var(--text-dim);font-size:18px;cursor:pointer}
#chat-status.on{color:#4a9}#chat-status.off{color:#c44}
#chat-msgs{flex:1;overflow-y:auto;padding:16px}

/* Messages */
.msg{padding:10px 14px;margin-bottom:8px;border-radius:8px;max-width:85%;line-height:1.5;font-size:15px;animation:fadeIn .3s}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.msg.master,.msg.do{margin-right:auto;background:var(--bg-light);border-left:2px solid var(--accent-red)}
.msg.player,.msg.say{margin-left:auto;background:var(--bg-player);border-right:2px solid var(--accent-gold);text-align:right}
.msg.system{text-align:center;color:var(--text-dim);font-style:italic;font-size:13px;background:none;border:none;max-width:100%}
.msg.error{margin:auto;background:#331111;border:1px solid var(--error);color:#c44;text-align:center}

/* Dice / Options / Pulse / Chronicle */
.dice{display:block;margin-top:6px;font-size:13px;color:var(--accent-gold)}
.opts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.opt{background:var(--bg-lighter);border:1px solid var(--accent-red);color:var(--text);
  font-family:var(--font);font-size:13px;padding:4px 12px;border-radius:6px;cursor:pointer}
.opt:hover{border-color:var(--accent-gold)}
.pulse{display:block;margin-top:6px;font-size:13px;color:var(--accent-navi);font-style:italic}
.chronicle{display:block;margin-top:6px;font-size:13px;color:var(--accent-gold)}

/* Thinking */
#chat-think{text-align:center;color:var(--accent-navi);font-style:italic;font-size:14px;padding:8px;display:none}
#chat-think.show{display:block;animation:pulse 1.5s infinite}

/* Chat footer */
#chat-foot{padding:8px 12px;background:var(--bg-light);border-top:1px solid var(--accent-navi);flex-shrink:0}
#chat-foot input{margin-bottom:6px}
#turn-bar{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.icon{background:var(--bg-light);border:1px solid var(--accent-navi);color:var(--text);
  font-size:18px;width:40px;height:40px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}
.icon:hover{border-color:var(--accent-gold)}
.icon.anima:hover{border-color:#7b5ea7;box-shadow:0 0 8px rgba(123,94,167,.3)}
.icon.rec{border-color:#c33;background:#311;animation:pulse .8s infinite}

/* Players bar */
#players-bar{display:flex;gap:6px;padding:4px 12px;min-height:28px;align-items:center}

/* Connection banner */
#conn-banner{display:none;background:#331111;color:#c44;text-align:center;padding:8px;font-size:13px}
#conn-banner.show{display:block}

/* Install bar */
#install-bar{position:fixed;bottom:0;left:0;right:0;background:var(--bg-lighter);
  border-top:2px solid var(--accent-gold);padding:12px 20px;display:flex;align-items:center;justify-content:center;gap:12px;z-index:1000;font-size:14px}

/* Toast */
#toast{position:fixed;top:16px;left:50%;transform:translateX(-50%);padding:10px 20px;border-radius:8px;font-size:14px;z-index:2000;opacity:0;transition:opacity .3s;pointer-events:none}
#toast.show{opacity:1}
#toast.info{background:var(--bg-lighter);border:1px solid var(--accent-gold);color:var(--accent-gold)}
#toast.err{background:#311;border:1px solid var(--error);color:#c44}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important}}
