*{box-sizing:border-box}body{margin:0;background:#090a0d;color:#eee;font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif}header{position:sticky;top:0;z-index:5;height:48px;background:#111319cc;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #242833}header b{color:#7fffd4}a{color:#7fffd4;text-decoration:none}main{width:min(520px,100%);margin:0 auto;padding:10px 10px 80px}.card{background:#151820;border:1px solid #2a2f3b;border-radius:22px;padding:16px;box-shadow:0 10px 35px #0008}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login .card{width:min(420px,100%)}h1{font-size:24px;margin:4px 0 16px}label{display:block;margin:12px 0;color:#bbb;font-size:14px}input,select,textarea{width:100%;background:#0c0e13;border:1px solid #303746;border-radius:14px;color:#fff;padding:13px;font-size:16px;outline:none}textarea{min-height:86px;resize:vertical}button,.btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:46px;border:0;border-radius:16px;background:linear-gradient(135deg,#65ffc7,#6a7cff);color:#05070a;font-weight:800;font-size:15px;margin:8px 0;padding:11px;cursor:pointer}.check{display:flex;gap:10px;align-items:center}.check input{width:auto}.err{color:#ff6d8d}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.tile{position:relative;background:#0c0e13;border:2px solid #292e39;border-radius:18px;padding:8px;color:#fff;overflow:hidden}.tile img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:13px;background:#222}.tile.wide{grid-column:1/-1}.tile.wide img{aspect-ratio:16/9}.tile span{display:block;color:#b8beca;font-size:13px}.pick input{position:absolute;right:12px;top:12px;width:24px;height:24px;accent-color:#65ffc7}.pick:has(input:checked){border-color:#65ffc7;box-shadow:0 0 0 3px #65ffc744}.row3{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:10px}.table{position:relative}.loc{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:0 0 20px 20px;border:1px solid #2a2f3b}.people{display:flex;overflow-x:auto;gap:10px;padding:10px 0}.people div{min-width:84px;text-align:center}.people img{width:74px;height:74px;object-fit:cover;border-radius:16px;border:1px solid #333}.people small{display:block;color:#cbd0da;font-size:12px}.playzone{display:flex;align-items:flex-start;gap:14px;margin-top:4px}.deck{width:142px;background:#111;border:1px solid #363b48;color:#fff;display:block;min-height:0;padding:8px}.deck img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px}.deck span{display:block;color:#7fffd4;margin-top:6px}.open-card{animation:flip .55s ease;background:#f0eee6;color:#151515;border-radius:14px;width:160px;min-height:205px;padding:14px;box-shadow:0 10px 20px #0008}.open-card b{font-size:18px}.open-card p{font-size:14px}.chat{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(520px,100%);height:72vh;background:#11151d;z-index:8;border:1px solid #303746;border-radius:24px 24px 0 0;display:flex;flex-direction:column;padding:12px;box-shadow:0 -10px 40px #000b}.chat.closed{display:none}.x{position:absolute;right:12px;top:6px;width:40px;min-height:34px;margin:0;background:#222;color:#fff}#msgs{overflow:auto;flex:1;padding-top:28px;scroll-behavior:smooth}.msg{margin:10px 0;max-width:86%;padding:10px;border-radius:16px;background:#202633}.msg img{width:38px;height:38px;border-radius:10px;object-fit:cover;vertical-align:middle;margin-right:6px}.msg.me{margin-left:auto;background:#1d3a34}.msg.npc{margin-right:auto;background:#2a2438}.msg.act{margin-inline:auto;text-align:center;background:transparent;color:#9da6b8}.send{display:grid;grid-template-columns:1fr 72px 72px;gap:6px}.send button{min-height:44px;font-size:13px;margin:0}.loader{position:fixed;inset:0;background:#07080cef;z-index:99;display:grid;place-content:center;text-align:center}.hidden{display:none}.orb{width:150px;height:150px;border:4px solid #3b4456;border-radius:50%;overflow:hidden;margin:auto;position:relative;box-shadow:0 0 35px #65ffc733}.fill{position:absolute;left:0;bottom:0;width:100%;height:0;background:linear-gradient(#65ffc7,#6a7cff);transition:.4s}.bar{width:250px;height:12px;background:#202633;border-radius:30px;margin:20px auto 10px;overflow:hidden}.bar i{display:block;height:100%;width:0;background:#7fffd4;transition:.4s}.ptext{color:#dfe6f3;line-height:1.6}@keyframes flip{from{transform:rotateY(90deg) scale(.8);opacity:.3}to{transform:rotateY(0) scale(1);opacity:1}}@media(max-width:390px){main{padding:8px 7px 76px}.grid{gap:8px}.send{grid-template-columns:1fr 60px 60px}.open-card{width:145px}.deck{width:128px}}
.hidden-card{display:none}.diceBox{margin-top:12px;text-align:center;color:#cbd0da}.dice{width:78px;height:78px;margin:0 auto 6px;border-radius:18px;background:#f0eee6;color:#111;display:grid;place-items:center;font-size:38px;font-weight:900;box-shadow:0 10px 24px #0008;animation:dicePulse .25s infinite alternate}.typing{display:flex;gap:5px;align-items:center;width:max-content}.typing span{width:8px;height:8px;border-radius:50%;background:#cfd6e6;display:block;animation:dot 1s infinite}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}@keyframes dicePulse{from{transform:rotate(-3deg) scale(.98)}to{transform:rotate(3deg) scale(1.03)}}

.people .person{cursor:pointer;border-radius:18px;padding:4px;transition:.15s}.people .person:active{background:#263043;transform:scale(.97)}
.profileModal{position:fixed;inset:0;background:#05070add;z-index:60;display:grid;place-items:end center;padding:14px 8px 0}.profileBox{position:relative;width:min(520px,100%);max-height:92vh;background:#11151d;border:1px solid #334052;border-radius:24px 24px 0 0;padding:14px;overflow:hidden;box-shadow:0 -14px 45px #000c}.profileBox h2{margin:4px 48px 10px 0;font-size:21px}.profileBox h3{margin:12px 0 8px;color:#7fffd4;font-size:15px}.profileX{right:14px;top:12px}.profileFull{display:block;width:100%;max-height:52vh;object-fit:contain;background:#080a0f;border:1px solid #2c3442;border-radius:18px}.profileChanges{max-height:28vh;overflow:auto;padding:2px 2px 12px}.changeItem{background:#171c26;border:1px solid #2d3545;border-radius:16px;padding:11px;margin:8px 0}.changeItem small{display:block;color:#9ea7b6;margin-top:4px}.changeItem p{margin:8px 0;color:#dfe6f3}.changeItem ul{margin:8px 0 0;padding-left:18px;color:#cbd3df}.muted{color:#9ea7b6}
.actions{display:grid;grid-template-columns:1fr;gap:8px;margin:8px 0 12px}.actions form{margin:0}.actions .btn,.actions button{margin:0}
/* profile modal must stay closed until a portrait is tapped */
.profileModal.hidden-card{display:none!important}
.backBtn{position:fixed;left:50%;bottom:10px;transform:translateX(-50%);z-index:20;width:min(500px,calc(100% - 20px));background:#222a36;color:#dfe6f3;border:1px solid #3a4558}.miniForm{background:#0c0e13;border:1px solid #2b3342;border-radius:18px;padding:10px}.miniForm label{margin:8px 0}.danger{background:linear-gradient(135deg,#ff6d8d,#ffb86d)!important;color:#12070a!important}#profileActions .btn{margin:10px 0 0}.profileModal.hidden-card{display:none!important}
.centerImg{display:block!important;width:100%!important;max-width:320px!important;height:auto!important;aspect-ratio:16/9;object-fit:cover;border-radius:14px;margin:8px auto 0!important;border:1px solid #354050}.finalPage{max-height:calc(100vh - 70px);overflow:auto}.fate{background:#0c0e13;border:1px solid #2c3545;border-radius:18px;padding:12px;margin:12px 0}.fate h2{margin:0 0 8px;font-size:20px;color:#7fffd4}.fate h3{margin:12px 0 6px;font-size:15px;color:#cbd3df}.fate img{display:block;width:100%;max-height:430px;object-fit:contain;background:#080a0f;border-radius:16px;border:1px solid #2c3442}.fate p{line-height:1.45;color:#e2e7ef}

#wiroTestModal .profileFull{width:100%;max-height:60vh;object-fit:contain;border-radius:18px;margin-top:10px;background:#111}
/* full-body images are reused as square portraits by cropping the edges */
.tile img,.people img,.msg img{object-fit:cover;object-position:center 18%;}
.deckTile a{color:#fff;text-decoration:none;display:block}.smallBtn{min-height:34px;font-size:13px;margin:8px 0 0}.danger,.deleteX{background:#ff375f!important;color:#fff!important}.deleteForm{position:absolute;left:6px;top:6px;z-index:3;margin:0}.deleteX{position:absolute;left:6px;top:6px;width:30px!important;height:30px!important;min-height:30px!important;border-radius:50%!important;margin:0!important;padding:0!important;font-size:20px!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:0 4px 14px #000a}.tile.pick .deleteX{left:8px;top:8px;z-index:5}.deckPreview{width:120px;aspect-ratio:3/4;object-fit:cover;border-radius:14px;border:1px solid #333}.muted{color:#9aa3b5;font-size:13px}.tile>a:first-of-type{display:block;color:#fff}.tile form+input,.tile form+label{margin-top:0}

.descList{display:flex;flex-direction:column;gap:6px}.descLine{padding:7px 9px;border:1px solid #333;border-radius:10px;background:#151515}.descLine b{color:#f36}.descLine span{color:#eee}
