:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e0c0a;--panel:#171310;--panel-2:#221b16;--ink:#ece4d6;--ink-dim:#a89a82;--accent:#c89b5a;--accent-dim:#7a5f3a;--border:#352b22;--danger:#c86b5a}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);min-height:100vh;margin:0;padding:0;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif}#app{max-width:48rem;margin:0 auto;padding:2rem 1.25rem 4rem}#app.centered{flex-direction:column;justify-content:center;max-width:28rem;min-height:100vh;padding:2rem 1.25rem;display:flex}header.brand{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;margin-bottom:1.5rem;padding-bottom:.75rem;display:flex}header.brand.brand-centered{text-align:center;border-bottom:0;flex-direction:column;align-items:center;gap:.4rem;margin-bottom:1.5rem;padding-bottom:0}header.brand h1{letter-spacing:.05em;margin:0;font-size:1.5rem}header.brand.brand-centered h1{letter-spacing:.1em;font-size:2rem}header.brand .sub{color:var(--ink-dim);font-size:.875rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:1rem;padding:1.25rem}label{color:var(--ink-dim);margin-bottom:.75rem;font-size:.875rem;display:block}input[type=text],input[type=email],input[type=password],input[type=file],textarea{background:var(--panel-2);width:100%;color:var(--ink);border:1px solid var(--border);font:inherit;border-radius:4px;padding:.55rem .75rem;font-size:1rem;transition:border-color .12s,box-shadow .12s}input::placeholder,textarea::placeholder{color:var(--ink-dim);opacity:.6}input:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #c89b5a26}textarea{resize:vertical;min-height:4rem}button{background:var(--accent);color:#1a130c;font:inherit;cursor:pointer;border:0;border-radius:4px;padding:.55rem 1rem;font-weight:600}button[disabled]{background:var(--accent-dim);color:var(--ink-dim);cursor:progress}button.secondary{color:var(--ink-dim);border:1px solid var(--border);background:0 0}.campaign-list{margin:.5rem 0 0;padding:0;list-style:none}.campaign-list li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.campaign-list li:first-child{border-top:0}.campaign-list button{padding:.25rem .6rem;font-size:.875rem}.log{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.entry{border:1px solid var(--border);white-space:pre-wrap;border-radius:8px;padding:.75rem 1rem;line-height:1.5}.entry.gm{background:var(--panel)}.entry.player{background:var(--panel-2);border-color:var(--accent-dim)}.entry .who{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:.35rem;font-size:.75rem;display:block}.composer{align-items:flex-end;gap:.5rem;display:flex}.composer textarea{flex:1}.error{color:var(--danger);margin-top:.5rem;font-size:.875rem}.status{color:var(--ink-dim);font-size:.875rem}.auth-card{padding:0;overflow:hidden}.auth-tabs{border-bottom:1px solid var(--border);display:flex}.auth-tabs button{color:var(--ink-dim);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:.85rem 0;font-weight:500;transition:color .12s,border-color .12s,background .12s}.auth-tabs button:hover{color:var(--ink);background:#c89b5a0a}.auth-tabs button.active{color:var(--ink);border-bottom-color:var(--accent)}.auth-card form{padding:1.25rem}.auth-card label{margin-bottom:1rem}button.primary-wide{width:100%;margin-top:.25rem;padding:.7rem 1rem}
