:root{--portal-gold:#c99b4b;--portal-cream:#eee9dd;--portal-ink:#070a09;--portal-panel:rgba(15,19,16,.94);--portal-line:rgba(201,155,75,.34)}
.portal-page .content{max-width:1260px;margin:auto;padding:70px 28px 110px}.portal-shell{position:relative;border:1px solid var(--portal-line);background:linear-gradient(145deg,rgba(22,27,23,.97),rgba(7,9,8,.98));box-shadow:0 28px 80px rgba(0,0,0,.42)}
.portal-shell:before,.portal-shell:after{content:"";position:absolute;width:24px;height:24px;border-color:var(--portal-gold);pointer-events:none}.portal-shell:before{left:12px;top:12px;border-left:2px solid;border-top:2px solid}.portal-shell:after{right:12px;bottom:12px;border-right:2px solid;border-bottom:2px solid}
.portal-login{width:min(620px,100%);margin:auto;padding:54px 56px}.portal-eyebrow{display:block;color:var(--portal-gold);font:700 .72rem/1 sans-serif;letter-spacing:.28em;text-transform:uppercase;margin-bottom:12px}.portal-login h2,.dashboard-heading h2{margin:0;color:var(--portal-cream);font-size:clamp(2rem,4vw,3.25rem);font-weight:500}.portal-intro{color:#aaa69d;line-height:1.7;margin:14px 0 34px}.portal-form{display:grid;gap:22px}.portal-form label{display:grid;gap:10px;color:#d9b76f;font:700 .72rem/1 sans-serif;letter-spacing:.14em;text-transform:uppercase}.portal-form input{width:100%;box-sizing:border-box;border:1px solid rgba(201,155,75,.3);background:#090c0a;color:#f4efe5;padding:17px 18px;font:500 1rem/1.2 sans-serif;outline:none;transition:.2s}.portal-form input:focus{border-color:var(--portal-gold);box-shadow:0 0 0 3px rgba(201,155,75,.09)}.portal-form button[type=submit]{margin-top:8px;min-height:62px;border:1px solid #d5ad64;background:linear-gradient(135deg,#d2a657,#a97935);color:#0a0c0b;font:800 .78rem/1 sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}.portal-form button[type=submit]:hover{filter:brightness(1.08)}
.portal-password{position:relative}.portal-password input{padding-right:76px}.portal-show{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:auto!important;min-width:0!important;height:auto!important;margin:0!important;padding:8px!important;border:0!important;background:transparent!important;color:#d7ad5b!important;font:800 .66rem/1 sans-serif!important;letter-spacing:.1em!important;box-shadow:none!important}.portal-links{display:flex;justify-content:space-between;gap:20px;margin-top:26px}.portal-links a{color:#bdb7ab;text-decoration:none;font-size:.88rem}.portal-links a:hover{color:var(--portal-gold)}.portal-message{min-height:24px;margin:18px 0 0;color:#d9b76f}
.dashboard-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:24px}.dashboard-heading p{max-width:520px;margin:0;color:#9d9a92;line-height:1.6}.account-summary.portal-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:1px;background:var(--portal-line);border:0}.portal-summary>div{min-height:126px;padding:28px;background:linear-gradient(145deg,#151a16,#0b0e0c)}.portal-summary small{display:block;color:#967c4d;font:700 .65rem/1 sans-serif;letter-spacing:.18em;margin-bottom:15px}.portal-summary strong{color:#f1ece2;font-size:clamp(1rem,2vw,1.35rem);word-break:break-word}
.portal-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0 58px}.portal-action{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border:1px solid rgba(201,155,75,.24);background:rgba(15,19,16,.82);color:#d8d2c7;text-decoration:none;font:700 .72rem/1 sans-serif;letter-spacing:.12em;text-transform:uppercase}.portal-action span{color:var(--portal-gold);font-size:1.2rem}.portal-action:hover{border-color:var(--portal-gold);background:rgba(201,155,75,.08)}
.characters-title.portal-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--portal-line);padding-bottom:18px}.portal-title h2{margin:0;color:var(--portal-cream);font-size:2rem}.portal-title span{color:#9b968d;font:700 .7rem/1 sans-serif;letter-spacing:.12em}.character-list.portal-characters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px}.portal-characters>.character-card,.portal-characters>.character-item,.portal-characters>article{position:relative;overflow:hidden;border:1px solid var(--portal-line);background:linear-gradient(135deg,#151a16,#080b09);padding:28px;min-height:190px;box-shadow:0 18px 36px rgba(0,0,0,.22)}.portal-characters>.character-card:after,.portal-characters>.character-item:after,.portal-characters>article:after{content:"PB";position:absolute;right:18px;bottom:4px;color:rgba(201,155,75,.06);font:700 5rem/1 Georgia,serif}.portal-characters .empty{grid-column:1/-1;padding:55px;text-align:center;border:1px solid var(--portal-line);color:#aaa69d}
.recovery-stack{display:grid;gap:22px;max-width:720px;margin:auto}.recovery-stack .portal-shell{padding:46px 50px}.hidden{display:none!important}
@media(max-width:850px){.account-summary.portal-summary{grid-template-columns:repeat(2,1fr)}.portal-actions{grid-template-columns:1fr}.character-list.portal-characters{grid-template-columns:1fr}.dashboard-heading{align-items:start;flex-direction:column}}@media(max-width:620px){.portal-page .content{padding:40px 16px 80px}.portal-login,.recovery-stack .portal-shell{padding:38px 24px}.portal-links{flex-direction:column}.account-summary.portal-summary{grid-template-columns:1fr}.portal-summary>div{min-height:100px}.dashboard-heading h2{font-size:2rem}}
