.ire-acct {
    --text:     #f7f7f7;
    --muted:    #b8b8b8;
    --surface:  #282a2e;
    --field:    #0c0a0a;
    --line:     #4c4f57;
    --floor:    #070707;
    --accent:   #f7b91a;
    --btn-text: #070707;
    --link:     var(--accent);
    --voice:    #f7d9ad;
    --bad:      #ff5c5c;
    padding: 0 16px;
    color: var(--text);
}

.ire-acct[data-game="aetolia"] {
    --text:     #ffffff;
    --muted:    #c4c4c4;
    --surface:  #262626;
    --field:    #0d0d0d;
    --line:     #515151;
    --floor:    #000000;
    --accent:   #cd2119;
    --btn-text: #f7f7f7;
    --link:     #ef4444;
    --voice:    #f0a79f;
}

.ire-acct[data-game="imperian"] {
    --text:     #e6e6e6;
    --muted:    #b3b3b3;
    --surface:  #303030;
    --field:    #121212;
    --line:     #515151;
    --floor:    #262626;
    --accent:   #2d6ca2;
    --btn-text: #ffffff;
    --link:     #5a9bd5;
}

.ire-acct[data-game="lusternia"] {
    --text:     #ffffff;
    --muted:    #e6e6e6;
    --surface:  #24140b;
    --field:    #0a0300;
    --line:     #5c4426;
    --floor:    #110500;
    --accent:   #face1b;
    --btn-text: #110500;
    --voice:    #f7e3a1;
}

.ire-acct[data-game="starmourn"] {
    --text:     #eef3f9;
    --muted:    #cbd6e6;
    --surface:  #1b2740;
    --field:    #060b16;
    --line:     #3c4c6a;
    --floor:    #121b2a;
    --accent:   #22c9d4;
    --btn-text: #060b16;
    --voice:    #9eeaf0;
}

.ire-acct[data-game="ironrealms"] {
    --text:     #f2e8d8;
    --muted:    #d4c5ac;
    --surface:  #2a1f15;
    --field:    #0e0a07;
    --line:     #5a4632;
    --floor:    #060402;
    --accent:   #dfa04a;
    --btn-text: #19120b;
}

.ire-acct [hidden] { display: none !important; }

.ire-acct p { margin: 0; }

.ire-acct a { color: var(--link); }

.ire-acct strong { color: var(--text); }

.ire-acct .acct {
    max-width: 560px;
    margin: 0 auto;
    padding: 48px 0 84px;
    text-align: center;
}

.ire-acct h1 {
    margin: 0 0 22px;
    font-size: 42px;
    line-height: 1.1;
}

.ire-acct .acct-medal {
    position: relative;
    width: 112px;
    height: 112px;
    margin: 0 auto 26px;
}

.ire-acct .acct-medal img {
    display: block;
    border-radius: 50%;
    box-shadow: 0 0 0 3px var(--floor), 0 0 0 5px var(--accent);
}

.ire-acct .badge {
    width: 56px;
    height: 56px;
    margin: 0 auto 26px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
    background: var(--accent);
    color: var(--btn-text);
}

.ire-acct .badge.bad {
    background: var(--bad);
    color: #070707;
}

.ire-acct .acct-medal .badge {
    position: absolute;
    right: -4px;
    bottom: -2px;
    width: 38px;
    height: 38px;
    margin: 0;
    border: 3px solid var(--floor);
    font-size: 24px;
}

.ire-acct .acct-voice {
    max-width: 500px;
    margin: 0 auto;
    font-size: 20px;
    font-style: italic;
    line-height: 1.55;
    color: var(--voice);
}

.ire-acct .acct-attr {
    margin: 8px 0 0;
    font-size: 16px;
    color: var(--muted);
}

.ire-acct .acct-lede {
    max-width: 500px;
    margin: 26px auto 0;
    font-size: 18px;
    line-height: 1.6;
    color: var(--muted);
}

.ire-acct ul {
    display: inline-block;
    margin: 6px 0;
    padding-left: 20px;
    text-align: left;
}

.ire-acct .acct-cta {
    margin: 32px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 14px 22px;
    align-items: center;
    justify-content: center;
}

.ire-acct .acct-btn {
    display: inline-block;
    padding: 15px 34px;
    border: 0;
    border-radius: 3px;
    font-family: inherit;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    background: var(--accent);
    color: var(--btn-text);
    cursor: pointer;
}

.ire-acct .acct-btn:hover,
.ire-acct .acct-btn:focus {
    filter: brightness(1.08);
    color: var(--btn-text);
}

.ire-acct .acct-alt {
    font-size: 17px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ire-acct .acct-help {
    margin: 30px 0 0;
    font-size: 16px;
    line-height: 1.6;
    color: var(--muted);
}

.ire-acct form {
    margin: 32px 0 0;
    padding: 28px 28px 26px;
    border: 1px solid var(--line);
    border-radius: 4px;
    background: var(--surface);
    text-align: left;
}

.ire-acct .field { margin: 0 0 22px; }

.ire-acct label {
    display: block;
    margin: 0 0 8px;
    font-size: 17px;
    font-weight: 700;
    color: var(--text);
}

.ire-acct input {
    display: block;
    width: 100%;
    margin: 0;
    padding: 13px 14px;
    border: 1px solid var(--line);
    border-radius: 3px;
    font-family: inherit;
    font-size: 18px;
    line-height: 1.3;
    background: var(--field);
    color: var(--text);
}

.ire-acct input[aria-invalid="true"] { border: 2px solid var(--bad); }

.ire-acct .hint {
    margin: 8px 0 0;
    font-size: 16px;
    line-height: 1.5;
    color: var(--muted);
}

.ire-acct form .acct-btn {
    width: 100%;
    margin-top: 6px;
}

.ire-acct .acct-error {
    margin: 0 0 24px;
    padding: 13px 16px;
    border: 1px solid var(--bad);
    border-radius: 3px;
    font-size: 17px;
    line-height: 1.5;
    background: rgba(255, 92, 92, 0.1);
}

@media (max-width: 600px) {
    .ire-acct .acct { padding: 32px 0 60px; }
    .ire-acct h1 { font-size: 32px; }
    .ire-acct form { padding: 22px 18px 20px; }

    .ire-acct .acct-cta {
        flex-direction: column;
        align-items: stretch;
    }
}
