@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=Playfair+Display:wght@700;800&display=swap');
:root{color-scheme:dark;--hp-bg:#0c1010;--hp-panel:rgba(30,31,32,.94);--hp-gold:#e5c158;--hp-red:#9f2a1f;--hp-text:#f1eee6;--hp-muted:#aaa9a2;--hp-line:rgba(229,193,88,.22)}
.hp-site{min-height:100vh;background:var(--hp-bg);color:var(--hp-text);font-family:'Be Vietnam Pro',sans-serif;position:relative;isolation:isolate;overflow-x:hidden}
.hp-site:before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(7,10,10,.78),rgba(7,10,10,.88)),url('/1background.jpeg') center/cover no-repeat}
.hp-wrap{width:min(1160px,calc(100% - 40px));margin:0 auto}
.hp-header{position:sticky;top:0;z-index:20;background:rgba(13,15,15,.91);border-bottom:1px solid rgba(255,255,255,.07);backdrop-filter:blur(14px)}
.hp-nav{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.hp-brand{font:800 20px 'Playfair Display',serif;color:var(--hp-gold);text-decoration:none;white-space:nowrap}
.hp-navlinks{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hp-navlinks a{color:#d1d0ca;text-decoration:none;font-size:14px;padding:10px 12px;border-radius:7px;transition:.2s}
.hp-navlinks a:hover,.hp-navlinks a[aria-current=page]{color:#fff;background:rgba(159,42,31,.72)}
.hp-hero{padding:58px 0 52px;display:grid;grid-template-columns:1fr 1.05fr;gap:42px;align-items:center;min-height:calc(100vh - 70px)}
.hp-kicker{color:var(--hp-gold);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.hp-title{font:800 clamp(38px,6vw,70px)/1.05 'Playfair Display',serif;color:var(--hp-gold);margin:14px 0 18px}
.hp-lead{color:#ddd9ce;font-size:17px;line-height:1.75;max-width:540px}
.hp-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 20px;border:1px solid var(--hp-line);border-radius:8px;color:var(--hp-text);font-weight:700;text-decoration:none;transition:.2s;background:rgba(255,255,255,.04)}
.hp-btn:hover{transform:translateY(-2px);border-color:var(--hp-gold)}
.hp-btn-primary{border-color:#c94b3a;background:linear-gradient(180deg,#b93b2b,#7a1810);box-shadow:0 8px 22px rgba(130,24,16,.25)}
.hp-video-frame{padding:8px;border-radius:16px;background:linear-gradient(145deg,rgba(229,193,88,.55),rgba(159,42,31,.55));box-shadow:0 26px 70px rgba(0,0,0,.48)}
.hp-video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#080a0a;border-radius:10px}
.hp-video-note{color:#c4c0b4;font-size:12px;margin:10px 4px 2px}
.hp-section{padding:50px 0}
.hp-section h2{font:700 clamp(25px,4vw,38px) 'Playfair Display',serif;color:var(--hp-gold);margin:0 0 12px}
.hp-section-lead{color:var(--hp-muted);line-height:1.7;max-width:720px}
.hp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}
.hp-card{background:var(--hp-panel);border:1px solid var(--hp-line);border-radius:13px;padding:22px;box-shadow:0 14px 35px rgba(0,0,0,.18)}
.hp-card h3{margin:0 0 10px;color:#f0d989;font-size:18px}
.hp-card p{margin:0;color:var(--hp-muted);font-size:14px;line-height:1.7}
.hp-card .hp-btn{margin-top:18px}
.hp-main{padding:54px 0 70px;min-height:calc(100vh - 140px)}
.hp-page-title{font:800 clamp(34px,5vw,54px)/1.1 'Playfair Display',serif;color:var(--hp-gold);margin:8px 0 14px}
.hp-download-card{display:flex;justify-content:space-between;align-items:center;gap:24px}
.hp-download-card .hp-btn{flex:none}
.hp-btn[aria-disabled=true]{opacity:.46;pointer-events:none}
.hp-note{margin-top:18px;padding:14px 16px;background:rgba(229,193,88,.08);border:1px solid var(--hp-line);border-radius:9px;color:#d5cda9;line-height:1.65;font-size:13px}
.hp-footer{border-top:1px solid rgba(255,255,255,.08);padding:24px 0;color:#8f9089;font-size:13px;line-height:1.7}
.hp-footer a{color:var(--hp-gold);text-decoration:none;margin-right:14px}
.hp-redirect{min-height:100vh;display:grid;place-items:center;text-align:center;padding:24px}
.hp-redirect .hp-card{max-width:500px}
@media(max-width:850px){.hp-hero{grid-template-columns:1fr;gap:28px;min-height:auto;padding:42px 0}.hp-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.hp-wrap{width:min(100% - 28px,1160px)}.hp-nav{align-items:flex-start;flex-direction:column;padding:14px 0}.hp-navlinks{width:100%;gap:2px}.hp-navlinks a{padding:9px;font-size:12px}.hp-grid{grid-template-columns:1fr}.hp-main{padding:38px 0}.hp-download-card{align-items:flex-start;flex-direction:column}.hp-download-card .hp-btn{width:100%}.hp-title{font-size:44px}}
/* Existing account app, restyled to match the Hỏa Phụng site. */
html:has(.auth-wrap),body:has(.auth-wrap){min-height:100%;background:#0c1010;color:#f1eee6;font-family:'Be Vietnam Pro',sans-serif}
.auth-wrap{background-image:linear-gradient(180deg,rgba(10,15,15,.76),rgba(10,15,15,.86)),url('/1background.jpeg');background-position:center;background-size:cover}
.auth-links{width:min(1120px,calc(100% - 40px));justify-content:flex-end;gap:8px}
.auth-link-card{min-width:unset;height:42px;padding:9px 14px;background:rgba(20,22,22,.86);border:1px solid rgba(229,193,88,.2);border-radius:7px;color:#dedbd2;font:600 13px 'Be Vietnam Pro',sans-serif;text-transform:none}
.auth-link-card:hover{background:#7a1810;border-color:#c94b3a;color:#fff}
.auth-content{max-width:500px}
.auth-card.ant-card{background:rgba(31,32,33,.96);border:1px solid rgba(229,193,88,.24);box-shadow:0 24px 60px rgba(0,0,0,.58);color:#f1eee6}
.auth-card .ant-card-body{padding:30px}
.auth-card .ant-tabs-tab,.auth-card .ant-form-item-label>label{color:#e6e3db}
.auth-card .ant-tabs-tab:hover,.auth-card .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--hp-gold)}
.auth-card .ant-tabs-ink-bar{background:var(--hp-gold)}
.auth-card .ant-input,.auth-card .ant-input-affix-wrapper{background:#191b1c;border-color:#454746;color:#fff}
.auth-card .ant-input::placeholder,.auth-card input::placeholder{color:#777a76}
.auth-card .ant-input-affix-wrapper .ant-input{background:transparent}
.auth-card .ant-form-item-extra{color:#c4b88e;font-size:12px}
.auth-card .ant-btn-primary{background:linear-gradient(180deg,#b93b2b,#821811);border-color:#d0503f}
.page-wrap{background:#f5f5f5;color:#202124}
@media(max-width:640px){.auth-links{width:calc(100% - 20px);gap:5px}.auth-link-card{height:38px;padding:7px 9px;font-size:11px}.auth-card .ant-card-body{padding:22px 18px}}
.hp-account-main{max-width:1130px;padding:36px 0 64px}
.hp-account-page:before{background-image:linear-gradient(180deg,rgba(7,10,10,.48),rgba(7,10,10,.68)),url('/1background.jpeg')}
.hp-account-titlebar{min-height:120px;display:grid;place-items:center;margin-bottom:16px;padding:20px;background:rgba(38,39,40,.95);border:1px solid rgba(229,193,88,.2);border-radius:20px;box-shadow:0 18px 45px rgba(0,0,0,.2)}
.hp-account-titlebar h1{margin:0;color:#f1c55d;text-align:center;font:800 clamp(30px,4vw,40px)/1.15 'Playfair Display',serif}
.hp-account-welcome{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:12px 18px;background:rgba(38,39,40,.95);border:1px solid rgba(255,255,255,.08);border-radius:15px;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.hp-account-welcome p{margin:0;color:#bebdc1;font-size:14px}
.hp-account-welcome strong{color:#e8e5de}
.hp-btn-logout{min-height:44px;border-color:rgba(198,73,58,.42);border-radius:24px;color:#ffaaa0;background:rgba(159,42,31,.16)}
.hp-btn-logout:hover{border-color:#d85c4c;background:rgba(159,42,31,.34);color:#fff}
.hp-account-layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:280px;overflow:hidden;background:rgba(38,39,40,.96);border:1px solid rgba(255,255,255,.08);border-radius:18px;box-shadow:0 18px 45px rgba(0,0,0,.22)}
.hp-account-sidebar{padding:18px;border-right:1px solid rgba(229,193,88,.15);background:rgba(22,23,24,.2)}
.hp-account-sidebar nav{display:grid;gap:9px}
.hp-account-sidebar a{display:flex;align-items:center;min-height:56px;padding:12px 16px;border:1px solid transparent;border-radius:11px;background:rgba(255,255,255,.035);color:#c0bec2;font-weight:700;text-decoration:none;transition:background .18s,border-color .18s,color .18s}
.hp-account-sidebar a:hover,.hp-account-sidebar a.is-active{border-color:rgba(229,193,88,.22);background:rgba(229,193,88,.12);color:#f1c55d}
.hp-account-content{min-width:0;padding:28px 26px}
.hp-account-card{max-width:none;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.hp-account-card h2{margin:0 0 10px;color:#f1c55d;font:700 clamp(24px,3vw,30px)/1.2 'Playfair Display',serif}
.hp-account-card>p{color:#aaa9b0;line-height:1.7}
.hp-account-intro{margin:0 0 18px}
.hp-form{display:grid;gap:14px;margin-top:0}
.hp-form-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hp-field{min-width:0;display:grid;align-content:start;gap:8px}
.hp-form label{color:#b8b6bc;font-size:13px;font-weight:700}
.hp-form input{width:100%;min-width:0;box-sizing:border-box;padding:12px 13px;border:1px solid #343536;border-radius:9px;background:#1a1b1c;color:#fff;font:inherit;font-size:13px;transition:border-color .18s,box-shadow .18s}
.hp-form input::placeholder{color:#77787b}
.hp-form input:focus{outline:0;border-color:rgba(229,193,88,.7);box-shadow:0 0 0 3px rgba(229,193,88,.11)}
.hp-form button{justify-self:start;margin-top:2px;cursor:pointer;font:700 14px 'Be Vietnam Pro',sans-serif}
.hp-form button:disabled{opacity:.55;cursor:not-allowed}
.hp-form-message{margin:0;color:#d8c982;font-size:14px;line-height:1.6}
.hp-form-message.is-error{color:#ff978d}
.hp-account-note{margin:16px 0 0!important;font-size:12px}
.hp-note a{color:var(--hp-gold)}.hp-note code,.hp-account-note code{color:#f0d989}

/* Shared account access styling: login and registration use the same header and palette. */
.auth-wrap{justify-content:flex-start;padding:110px 24px 32px;background-image:linear-gradient(180deg,rgba(8,12,12,.48),rgba(8,12,12,.7)),url('/1background.jpeg')}
.auth-wrap::before{content:'Hỏa Phụng';position:fixed;z-index:22;top:0;left:max(20px,calc((100vw - 1160px)/2));height:70px;display:flex;align-items:center;color:var(--hp-gold);font:800 20px 'Playfair Display',serif;pointer-events:none}
.auth-links{position:fixed;top:0;left:0;transform:none;box-sizing:border-box;width:100%;height:70px;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:0 max(20px,calc((100vw - 1160px)/2));background:rgba(13,15,15,.93);border-bottom:1px solid rgba(255,255,255,.07);backdrop-filter:blur(14px);z-index:20}
.auth-link-card{min-width:unset;height:auto;padding:10px 13px;border:1px solid transparent;border-radius:8px;background:transparent;color:#d1d0ca;font:600 13px 'Be Vietnam Pro',sans-serif;text-transform:none;transition:.2s}
.auth-link-card:hover{background:rgba(229,193,88,.1);border-color:rgba(229,193,88,.16);box-shadow:none;color:#fff}
.auth-content{margin:auto;max-width:520px}
.auth-logo{display:none}
.auth-card.ant-card{overflow:hidden;border:1px solid rgba(229,193,88,.2);border-radius:17px;background:rgba(38,39,40,.96);box-shadow:0 24px 60px rgba(0,0,0,.5);color:var(--hp-text);backdrop-filter:blur(12px)}
.auth-card.ant-card::before{content:'Tài Khoản Hỏa Phụng';display:block;margin:2px 0 20px;color:#f1c55d;text-align:center;font:800 29px/1.2 'Playfair Display',serif}
.auth-card .ant-card-body{padding:30px}
.auth-card .ant-tabs-tab,.auth-card .ant-form-item-label>label{color:#d0ced0;font-family:'Be Vietnam Pro',sans-serif;font-weight:600}
.auth-card .ant-tabs-tab:hover,.auth-card .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--hp-gold)}
.auth-card .ant-tabs-ink-bar{background:var(--hp-gold)}
.auth-card .ant-tabs-nav::before{border-color:rgba(255,255,255,.1)}
.auth-card .ant-input,.auth-card .ant-input-affix-wrapper{border-color:#37393a;border-radius:8px;background:#1a1b1c;color:#fff}
.auth-card .ant-input:hover,.auth-card .ant-input-affix-wrapper:hover{border-color:#8c783e}
.auth-card .ant-input:focus,.auth-card .ant-input-affix-wrapper-focused{border-color:var(--hp-gold);box-shadow:0 0 0 2px rgba(229,193,88,.12)}
.auth-card .ant-input::placeholder,.auth-card input::placeholder{color:#777a76}
.auth-card .ant-input-affix-wrapper .ant-input{background:transparent}
.auth-card .ant-form-item-extra{color:#b9ad83;font-size:12px}
.auth-card .ant-btn-primary{height:44px;border-color:#c94b3a;border-radius:8px;background:linear-gradient(180deg,#b93b2b,#821811);font-weight:700}
.auth-card .ant-alert-error{border-color:rgba(224,104,91,.3);background:rgba(135,35,27,.2)}
@media(max-width:850px){.hp-account-layout{grid-template-columns:180px minmax(0,1fr)}.hp-account-content{padding:24px 20px}.hp-form-fields{grid-template-columns:1fr}}
@media(max-width:640px){.hp-account-main{padding:24px 0 42px}.hp-account-titlebar{min-height:92px;border-radius:15px}.hp-account-welcome{min-height:66px;padding:10px 12px}.hp-account-layout{grid-template-columns:1fr}.hp-account-sidebar{padding:10px;border-right:0;border-bottom:1px solid rgba(229,193,88,.15)}.hp-account-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.hp-account-sidebar a{min-height:46px;justify-content:center;padding:9px;font-size:13px}.hp-account-content{padding:22px 17px}.auth-wrap{padding:96px 14px 24px}.auth-wrap::before{left:14px;height:62px;font-size:17px}.auth-links{height:62px;gap:2px;padding:0 10px 0 108px;overflow-x:auto;scrollbar-width:none}.auth-links::-webkit-scrollbar{display:none}.auth-link-card{height:auto;min-width:max-content;padding:8px 8px;font-size:11px}.auth-card.ant-card::before{font-size:25px}.auth-card .ant-card-body{padding:23px 18px}}

/* Character management shares the account page header, background and dark panels. */
html:has(.page-wrap),body:has(.page-wrap){min-height:100%;background:#0c1010;color:var(--hp-text);font-family:'Be Vietnam Pro',sans-serif}
body:has(.page-wrap){position:relative;isolation:isolate;overflow-x:hidden}
body:has(.page-wrap)::before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(7,10,10,.48),rgba(7,10,10,.68)),url('/1background.jpeg') center/cover no-repeat}
body:has(.page-wrap) #root{min-height:100vh}
.page-wrap{width:min(1130px,calc(100% - 40px));max-width:none;margin:0 auto;padding:36px 0 64px;background:transparent;color:var(--hp-text)}
.page-wrap>.ant-card{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--hp-text)}
.page-wrap>.ant-card>.ant-card-body{padding:0}
.characters-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 16px;padding:22px 24px;border:1px solid rgba(229,193,88,.2);border-radius:18px;background:rgba(38,39,40,.95);box-shadow:0 16px 38px rgba(0,0,0,.2)}
.characters-header-info{min-width:0}
.characters-header-info .ant-typography{color:#aaa9b0}
.characters-header-info h4.ant-typography{margin:0 0 5px!important;color:#f1c55d;font:700 clamp(25px,3vw,31px)/1.2 'Playfair Display',serif}
.characters-header-info .ant-typography-secondary{color:#b7b5bb}
.characters-header-info b{color:#f0e8d4}
.characters-header-actions{display:flex;gap:9px;flex-wrap:wrap}
.characters-header-actions .ant-btn{min-height:42px;border-color:rgba(229,193,88,.28);border-radius:8px;background:rgba(255,255,255,.04);color:#ece8dd;font-weight:700}
.characters-header-actions .ant-btn:hover{border-color:var(--hp-gold);background:rgba(229,193,88,.1);color:#fff}
.characters-header-actions .ant-btn-dangerous{border-color:rgba(198,73,58,.42);background:rgba(159,42,31,.18);color:#ffaaa0}
.characters-header-actions .ant-btn-dangerous:hover{border-color:#d85c4c;background:rgba(159,42,31,.34);color:#fff}
.table-responsive{padding:16px;border:1px solid rgba(255,255,255,.09);border-radius:17px;background:rgba(38,39,40,.96);box-shadow:0 18px 45px rgba(0,0,0,.22)}
.table-responsive .ant-table{background:transparent;color:#e9e6de}
.table-responsive .ant-table-container{border-color:rgba(255,255,255,.1)!important}
.table-responsive .ant-table-thead>tr>th{border-color:rgba(255,255,255,.1);background:rgba(22,23,24,.96);color:#e7c86e;font-weight:700}
.table-responsive .ant-table-tbody>tr>td{border-color:rgba(255,255,255,.08);background:rgba(34,35,36,.94);color:#e4e1da}
.table-responsive .ant-table-tbody>tr:hover>td{background:rgba(229,193,88,.09)!important}
.table-responsive .ant-table-summary{background:rgba(22,23,24,.96);color:#f0d989}
.table-responsive .ant-pagination .ant-pagination-item{border-color:rgba(229,193,88,.2);background:rgba(22,23,24,.8)}
.table-responsive .ant-pagination .ant-pagination-item a{color:#dedbd2}
.table-responsive .ant-pagination .ant-pagination-item-active{border-color:var(--hp-gold)}
.table-responsive .ant-pagination .ant-pagination-item-active a{color:var(--hp-gold)}
.table-responsive .ant-pagination .ant-pagination-prev button,.table-responsive .ant-pagination .ant-pagination-next button{color:#ddd;border-color:rgba(255,255,255,.15);background:rgba(22,23,24,.8)}
.table-responsive .ant-select-selector{border-color:rgba(229,193,88,.2)!important;background:rgba(22,23,24,.8)!important;color:#eee!important}
body:has(.page-wrap) .ant-dropdown .ant-dropdown-menu{border:1px solid rgba(229,193,88,.2);background:#262728;box-shadow:0 14px 32px rgba(0,0,0,.38)}
body:has(.page-wrap) .ant-dropdown .ant-dropdown-menu-item{color:#eee}
body:has(.page-wrap) .ant-dropdown .ant-dropdown-menu-item:hover{background:rgba(229,193,88,.1);color:#f1c55d}
body:has(.page-wrap) .ant-modal .ant-modal-content{border:1px solid rgba(229,193,88,.2);border-radius:15px;background:#262728;color:#eee;box-shadow:0 22px 55px rgba(0,0,0,.5)}
body:has(.page-wrap) .ant-modal .ant-modal-title{color:#f1c55d;background:transparent;font:700 22px 'Playfair Display',serif}
body:has(.page-wrap) .ant-modal .ant-modal-close{color:#bbb}
body:has(.page-wrap) .ant-modal .ant-typography{color:#ddd}
@media(max-width:640px){.page-wrap{width:calc(100% - 28px);padding:24px 0 42px}.characters-header{align-items:stretch;flex-direction:column;padding:19px 16px}.characters-header-actions{width:100%}.characters-header-actions>.ant-btn{flex:1}.table-responsive{padding:8px;border-radius:13px}}

/* Character manager uses the same account shell as the password page. */
.hp-characters-page #root{min-height:0}
.hp-characters-page #root>.hp-header{display:none}
.hp-characters-content{min-width:0;padding:20px 22px}
.hp-characters-page .page-wrap{width:auto;max-width:none;margin:0;padding:0;background:transparent}
.hp-characters-page .page-wrap>.ant-card{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.hp-characters-page .page-wrap>.ant-card>.ant-card-body{padding:0}
.hp-characters-page .characters-header{justify-content:flex-end;margin:0 0 14px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.hp-characters-page .characters-header-info,.hp-characters-page .characters-header-actions .ant-btn-dangerous{display:none}
.hp-characters-page .characters-header-actions .ant-btn{min-height:42px;border-color:rgba(229,193,88,.28);border-radius:8px;background:rgba(255,255,255,.04);color:#ece8dd;font-weight:700}
.hp-characters-page .characters-header-actions .ant-btn:hover{border-color:var(--hp-gold);background:rgba(229,193,88,.1);color:#fff}
.hp-characters-page .table-responsive{margin:0}
.hp-characters-page .hp-account-layout{background:rgba(48,50,52,.97);border-color:rgba(255,255,255,.12)}
.hp-characters-page .hp-account-sidebar{background:rgba(31,33,35,.28)}
.hp-characters-page .hp-characters-content{background:rgba(48,50,52,.72)}
.hp-characters-page .table-responsive{border-color:rgba(255,255,255,.14);background:rgba(49,51,53,.98)}
.hp-characters-page .table-responsive .ant-table-thead>tr>th{background:rgba(43,45,47,.98);color:#f3d77d}
.hp-characters-page .table-responsive .ant-table-tbody>tr>td{background:rgba(58,60,62,.96);color:#f0eee8}
.hp-characters-page .table-responsive .ant-table-tbody>tr:nth-child(even)>td{background:rgba(53,55,57,.96)}
.hp-characters-page .table-responsive .ant-table-tbody>tr:hover>td{background:rgba(229,193,88,.14)!important}
.hp-characters-page .table-responsive .ant-table-summary{background:rgba(43,45,47,.98);color:#f5df91}
.hp-characters-page .table-responsive .ant-table-tbody>tr>td:last-child .ant-btn{min-width:36px;height:34px;border:1px solid rgba(241,197,93,.58);border-radius:8px;background:rgba(229,193,88,.2);color:#ffe08a;box-shadow:0 3px 10px rgba(0,0,0,.18);transition:background .18s,border-color .18s,color .18s,transform .18s}
.hp-characters-page .table-responsive .ant-table-tbody>tr>td:last-child .ant-btn:hover,.hp-characters-page .table-responsive .ant-table-tbody>tr>td:last-child .ant-btn:focus-visible{border-color:#ffe08a;background:#e5c158;color:#29200a;transform:translateY(-1px)}
body.hp-characters-page .ant-dropdown .ant-dropdown-menu-item{border-radius:7px;color:#f0eee8}
body.hp-characters-page .ant-dropdown .ant-dropdown-menu-item:hover{background:rgba(229,193,88,.18);color:#ffe08a}
@media(max-width:640px){.hp-characters-content{padding:18px 12px}.hp-characters-page .characters-header{align-items:flex-end;padding:0}.hp-characters-page .characters-header-actions{width:auto}.hp-characters-page .characters-header-actions>.ant-btn{flex:0 0 auto}}

/* Prominent Zalo group shortcut on the home page. */
.hp-zalo-float{position:fixed;top:48%;right:18px;z-index:40;isolation:isolate;transform:translateY(-50%)}
.hp-zalo-float a{position:relative;display:flex;width:112px;min-height:126px;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:13px 10px;border:1px solid rgba(255,255,255,.8);border-radius:18px;background:linear-gradient(150deg,#1493ff 0%,#0872ed 52%,#0753ba 100%);box-shadow:0 12px 32px rgba(0,85,200,.42),0 0 0 1px rgba(71,166,255,.32);color:#fff;text-align:center;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}
.hp-zalo-float a::before{position:absolute;inset:-6px;z-index:-1;border:1px solid rgba(59,157,255,.52);border-radius:23px;content:"";animation:hp-zalo-pulse 2.3s ease-out infinite}
.hp-zalo-float a:hover,.hp-zalo-float a:focus-visible{transform:translateY(-3px) scale(1.045);filter:brightness(1.12);box-shadow:0 16px 38px rgba(0,85,200,.55),0 0 22px rgba(74,168,255,.4);outline:2px solid #fff;outline-offset:3px}
.hp-zalo-icon{display:grid;width:52px;height:52px;place-items:center;border-radius:50%;background:rgba(255,255,255,.18);box-shadow:0 4px 12px rgba(0,39,105,.22)}
.hp-zalo-icon svg{display:block;width:48px;height:48px}
.hp-zalo-copy{display:grid;gap:2px;text-shadow:0 1px 3px rgba(0,38,104,.4)}
.hp-zalo-copy strong{font-size:12px;font-weight:800;letter-spacing:.07em}
.hp-zalo-copy span{font-size:11px;font-weight:700;letter-spacing:.1em}
.hp-zalo-arrow{position:absolute;top:8px;right:11px;font-size:15px;font-weight:800;opacity:.86}
@keyframes hp-zalo-pulse{0%{transform:scale(.94);opacity:.8}75%,100%{transform:scale(1.13);opacity:0}}
@media(max-width:600px){.hp-zalo-float{top:50%;right:8px;bottom:auto;transform:translateY(-50%)}.hp-zalo-float a{width:78px;min-height:112px;flex-direction:column;gap:6px;padding:9px 6px;border-radius:16px}.hp-zalo-float a:hover,.hp-zalo-float a:focus-visible{transform:translateY(-2px) scale(1.025)}.hp-zalo-icon{width:42px;height:42px}.hp-zalo-icon svg{width:40px;height:40px}.hp-zalo-copy{gap:1px;text-align:center}.hp-zalo-copy strong,.hp-zalo-copy span{font-size:9px;letter-spacing:.045em}.hp-zalo-arrow{position:absolute;top:6px;right:9px;margin:0;font-size:13px}}
@media(prefers-reduced-motion:reduce){.hp-zalo-float a,.hp-zalo-float a::before{animation:none;transition:none}}

/* Shared falling petals and mouse parallax for every site interface. */
.hp-site>main,.hp-site>footer{position:relative;z-index:2}
.hp-global-petals{position:fixed;inset:0;z-index:1;overflow:hidden;pointer-events:none;contain:strict}
#hp-login-root .petal-layer,#hp-register-root .petal-layer{position:fixed;inset:64px 0 0;z-index:1;overflow:hidden;pointer-events:none;contain:strict}
#hp-login-root .petal,#hp-register-root .petal,.hp-global-petals .petal{position:absolute;top:0;left:var(--petal-x);width:var(--petal-size);height:calc(var(--petal-size)*1.55);border-radius:100% 0 100% 0;background:linear-gradient(145deg,rgba(255,224,218,.94),rgba(220,93,91,.82) 62%,rgba(243,197,103,.66));box-shadow:0 0 9px rgba(255,145,135,.2);opacity:var(--petal-opacity);transform:rotate(var(--petal-rotation));animation:hp-petal-fall var(--petal-duration) linear var(--petal-delay) infinite;will-change:transform}
@keyframes hp-petal-fall{from{transform:translate3d(0,-12vh,0) rotate(var(--petal-rotation))}to{transform:translate3d(var(--petal-drift),112vh,0) rotate(calc(var(--petal-rotation) + 600deg))}}
#hp-register-root .auth-card{position:relative;z-index:2}
.hp-site::before,body:has(.page-wrap)::before{background-position:center,calc(50% + var(--hp-parallax-x,0px)) calc(50% + var(--hp-parallax-y,0px));background-size:auto,calc(100% + 40px) calc(100% + 40px);transition:background-position .22s ease-out}
.auth-wrap,#hp-login-root,#hp-register-root{background-position:center,calc(50% + var(--hp-parallax-x,0px)) calc(50% + var(--hp-parallax-y,0px));background-size:auto,calc(100% + 40px) calc(100% + 40px);transition:background-position .22s ease-out}
@media(max-width:600px){#hp-register-root .petal-layer{top:100px}}
@media(prefers-reduced-motion:reduce){.hp-global-petals .petal,#hp-register-root .petal{display:none;animation:none}.hp-site::before,body:has(.page-wrap)::before,.auth-wrap,#hp-login-root,#hp-register-root{transition:none}}

/* Login and registration follow the separate account forms from the reference pages. */
.auth-card.ant-card::before{content:'Quản Lý Tài Khoản';margin-bottom:13px}
.auth-card.ant-card:has(.ant-tabs-tabpane-active input[id="referralCode"])::before{content:'Đăng Ký Tài Khoản'}
.auth-card .ant-tabs-tabpane-active form::before{display:block;margin:0 0 18px;color:#aaa9b0;font:400 14px/1.7 'Be Vietnam Pro',sans-serif;content:'Trở lại giang hồ Hỏa Phụng, đăng nhập để tiếp tục hành trình và quản lý tài khoản.'}
.auth-card .ant-tabs-tabpane-active form:has(input[id="referralCode"])::before{content:'Gia nhập giang hồ Hỏa Phụng bằng tài khoản mới của bạn.'}
.auth-card form:has(input[id="referralCode"]){display:flex;flex-direction:column}
.auth-card form:has(input[id="referralCode"])>.ant-form-item:nth-child(1){order:1}
.auth-card form:has(input[id="referralCode"])>.ant-form-item:nth-child(2){order:5}
.auth-card form:has(input[id="referralCode"])>.ant-form-item:nth-child(3){order:4}
.auth-card form:has(input[id="referralCode"])>.ant-form-item:nth-child(4){order:6}
.auth-card form:has(input[id="referralCode"])>.ant-form-item:nth-child(5){order:2}
.auth-card form:has(input[id="referralCode"])>.ant-form-item:nth-child(6){order:3}
.auth-card form:has(input[id="referralCode"])>.ant-btn{order:7;text-transform:uppercase}

/* Sword pointer from the user-provided Tian Long launcher reference. */
@media (hover:hover) and (pointer:fine){
  html,body,body *{cursor:url("/assets/cursors/hp-sword.png") 3 2,auto!important}
  a,button,[role="button"],label,select,summary,input[type="button"],input[type="submit"],input[type="reset"],input[type="checkbox"],input[type="radio"]{cursor:url("/assets/cursors/hp-sword.png") 3 2,pointer!important}
  a:active,button:active,[role="button"]:active,input[type="button"]:active,input[type="submit"]:active,input[type="reset"]:active{cursor:url("/assets/cursors/hp-sword-pressed.png") 3 2,pointer!important}
  html.hp-cursor-pressed,html.hp-cursor-pressed body,html.hp-cursor-pressed body *{cursor:url("/assets/cursors/hp-sword-pressed.png") 3 2,auto!important}
  html.hp-cursor-pressed a,html.hp-cursor-pressed button,html.hp-cursor-pressed [role="button"],html.hp-cursor-pressed label,html.hp-cursor-pressed select,html.hp-cursor-pressed summary,html.hp-cursor-pressed input[type="button"],html.hp-cursor-pressed input[type="submit"],html.hp-cursor-pressed input[type="reset"],html.hp-cursor-pressed input[type="checkbox"],html.hp-cursor-pressed input[type="radio"]{cursor:url("/assets/cursors/hp-sword-pressed.png") 3 2,pointer!important}
}

/* Consistent phone layouts across every Hỏa Phụng page. */
@media(max-width:640px){
  .hp-wrap{width:calc(100% - 32px)}
  .hp-nav{align-items:stretch;flex-direction:column;gap:7px;padding:11px 0 9px}
  .hp-brand{align-self:center;font-size:19px}
  .hp-navlinks{display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:3px;width:100%;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 0 2px}
  .hp-navlinks::-webkit-scrollbar{display:none}
  .hp-navlinks a{flex:0 0 auto;padding:8px 10px;font-size:12px;white-space:nowrap}
  .hp-hero{min-height:0;padding:30px 0 34px;gap:22px}
  .hp-title{font-size:clamp(34px,10vw,44px);line-height:1.08;overflow-wrap:anywhere}
  .hp-lead{font-size:15px;line-height:1.65}
  .hp-actions{display:grid;grid-template-columns:1fr;gap:9px;margin-top:20px}
  .hp-actions .hp-btn{width:100%}
  .hp-video-frame{padding:5px;border-radius:12px}
  .hp-video{border-radius:8px}
  .hp-section{padding:34px 0}
  .hp-section h2{font-size:clamp(25px,7vw,32px)}
  .hp-section-lead{font-size:14px;line-height:1.65}
  .hp-grid{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:18px}
  .hp-card{min-width:0;padding:18px}
  .hp-card h3{font-size:17px}
  .hp-card p{overflow-wrap:anywhere}
  .hp-main{min-height:0;padding:30px 0 42px}
  .hp-page-title{font-size:clamp(30px,8vw,40px);overflow-wrap:anywhere}
  .hp-download-card{align-items:stretch;gap:13px}
  .hp-download-card .hp-btn{width:100%;min-height:44px}
  .hp-note{overflow-wrap:anywhere}
  .hp-footer{padding:19px 0;font-size:12px}
  .hp-footer .hp-wrap{overflow-wrap:anywhere}

  .hp-account-main{padding:20px 0 36px}
  .hp-account-titlebar{min-height:82px;margin-bottom:11px;padding:15px 12px}
  .hp-account-titlebar h1{font-size:clamp(25px,7.5vw,32px);overflow-wrap:anywhere}
  .hp-account-welcome{align-items:stretch;flex-direction:column;gap:9px;margin-bottom:11px;padding:12px}
  .hp-account-welcome p{min-width:0;overflow-wrap:anywhere;line-height:1.55}
  .hp-account-welcome strong{overflow-wrap:anywhere}
  .hp-btn-logout{align-self:flex-start;min-height:40px;padding:9px 15px}
  .hp-account-layout{grid-template-columns:minmax(0,1fr);min-width:0;border-radius:14px}
  .hp-account-sidebar{min-width:0;padding:9px;border-right:0;border-bottom:1px solid rgba(229,193,88,.15)}
  .hp-account-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .hp-account-sidebar a{min-width:0;min-height:44px;justify-content:center;padding:8px 5px;text-align:center;font-size:12px;overflow-wrap:anywhere}
  .hp-account-content{min-width:0;padding:17px 13px}
  .hp-account-card h2{font-size:clamp(22px,6.5vw,27px);overflow-wrap:anywhere}
  .hp-account-intro{font-size:14px;line-height:1.65}
  .hp-form{min-width:0;gap:12px}
  .hp-form-fields{grid-template-columns:minmax(0,1fr);gap:12px}
  .hp-field{min-width:0}
  .hp-form input{min-height:46px;font-size:16px}
  .hp-form button{width:100%;justify-self:stretch;min-height:46px;padding:11px 12px;text-align:center}
  .hp-account-note{overflow-wrap:anywhere;line-height:1.6}

  .page-wrap{width:calc(100% - 28px);padding:20px 0 36px}
  .characters-header{gap:12px;padding:16px 13px}
  .characters-header-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .characters-header-actions>.ant-btn{min-width:0;white-space:normal;height:auto;min-height:42px;padding:7px 8px;font-size:12px}
  .table-responsive{width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;padding:7px}
  .table-responsive .ant-table{min-width:680px}
  .hp-characters-content{min-width:0;padding:12px 9px}
  .hp-characters-page .characters-header-actions{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}
  .hp-characters-page .characters-header-actions>.ant-btn{flex:initial}
  .hp-characters-page .table-responsive{margin:0}

  /* Keep the Zalo shortcut at the screen edge without covering page content. */
  .hp-zalo-float{top:auto;right:10px;bottom:12px;transform:none}
  .hp-zalo-float a{width:58px;min-height:58px;flex-direction:row;gap:0;padding:6px;border-radius:50%}
  .hp-zalo-float a::before{inset:-4px;border-radius:50%}
  .hp-zalo-icon{width:44px;height:44px}
  .hp-zalo-icon svg{width:40px;height:40px}
  .hp-zalo-copy{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}
  .hp-zalo-arrow{top:0;right:1px;font-size:12px}
  body.hp-site:has(.hp-zalo-float) .hp-footer{padding-bottom:82px}
}

/* Phone layout for the custom login and registration screens. */
@media(max-width:640px){
  .hp-navbar{height:94px!important;min-height:94px;padding:7px 0!important}
  .hp-navbar-inner{height:80px;min-height:80px;gap:2px!important;padding:0 8px!important;justify-content:center!important}
  .hp-nav-links,.hp-nav-auth{justify-content:center;gap:2px;max-width:100%;min-width:0}
  .hp-nav-link,.hp-nav-register{padding:6px 8px;font-size:12px;white-space:nowrap}
  .hp-nav-register{margin-left:0;padding:6px 10px}
  #hp-login-root,#hp-register-root{top:94px!important;right:0;bottom:0;left:0;width:auto;height:auto;min-height:0;padding:16px 12px 24px;align-items:flex-start;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background-attachment:scroll}
  body:has(#hp-login-root),body:has(#hp-register-root){overflow:hidden}
  #hp-login-root .auth-card,#hp-register-root .auth-card{width:100%;max-width:520px;margin:0 auto;border-radius:14px}
  #hp-login-root .auth-shell,#hp-register-root .auth-shell{grid-template-columns:minmax(0,1fr);min-height:0}
  #hp-login-root .auth-side,#hp-register-root .auth-side{min-width:0;padding:16px 13px;border-right:0;border-bottom:1px solid rgba(243,197,103,.1)}
  #hp-login-root .auth-main,#hp-register-root .auth-main{min-width:0;padding:18px 14px}
  #hp-login-root .auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:14px}
  #hp-login-root .auth-tab{min-width:0;justify-content:center;gap:6px;padding:9px 6px;text-align:center;font-size:12px;overflow-wrap:anywhere}
  #hp-login-root .tab-icon{flex:0 0 30px;width:30px;height:30px}
  #hp-login-root .auth-pane .auth-head,#hp-register-root .auth-main .auth-head{margin-bottom:17px}
  #hp-login-root .auth-pane .auth-title,#hp-register-root .auth-main .auth-title{font-size:clamp(23px,7vw,27px);line-height:1.2;overflow-wrap:anywhere}
  #hp-login-root .auth-pane .auth-sub,#hp-register-root .auth-main .auth-sub{font-size:13px;line-height:1.55}
  #hp-login-root .form,#hp-register-root .form{gap:13px}
  #hp-login-root .field input,#hp-login-root .field select,#hp-register-root .field input{min-height:46px;font-size:16px}
  #hp-login-root .btn,#hp-register-root .btn{min-height:46px;padding:11px 14px}
  #hp-login-root .flash,#hp-register-root .flash{padding:11px 12px;font-size:13px;overflow-wrap:anywhere}
  #hp-login-root .auth-foot,#hp-register-root .auth-foot{font-size:13px;line-height:1.6}
  #hp-register-root .checkbox-field{align-items:flex-start;line-height:1.5;overflow-wrap:anywhere}
  #hp-register-root .checkbox-field input[type=checkbox]{flex:0 0 auto;margin-top:4px}
}
@media(max-width:380px){
  .hp-wrap{width:calc(100% - 24px)}
  .hp-navlinks a{padding:7px 8px;font-size:11px}
  .hp-account-content{padding:15px 10px}
  .hp-account-sidebar a{font-size:11px}
  .hp-navbar-inner{padding:0 4px!important}
  .hp-nav-link,.hp-nav-register{padding:5px 6px;font-size:11px}
  #hp-login-root,#hp-register-root{padding-right:9px;padding-left:9px}
  #hp-login-root .auth-main,#hp-register-root .auth-main{padding:16px 11px}
  #hp-login-root .auth-side,#hp-register-root .auth-side{padding:14px 10px}
}