/* Self-hosted OFL fonts with complete Vietnamese glyph coverage. */
@font-face{font-family:'Be Vietnam Pro';src:url('/font/BeVietnamPro-Regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Be Vietnam Pro';src:url('/font/BeVietnamPro-SemiBold.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:'Be Vietnam Pro';src:url('/font/BeVietnamPro-Bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
:root{--ui-font:'Be Vietnam Pro','Segoe UI',Arial,sans-serif;--serif:var(--ui-font)}
body{font-family:var(--ui-font);font-synthesis:none;line-height:1.65;-webkit-font-smoothing:auto;text-rendering:auto}
input,select,textarea,button{font-family:var(--ui-font)}
h1,h2,h3,p,label,button,a,summary{word-break:normal;overflow-wrap:break-word}
h1,h2,h3{font-weight:600;line-height:1.35}
.brand>span{font-weight:700;letter-spacing:1.7px}.brand small{font-weight:600;letter-spacing:5.7px}
.header-caption{font-size:11px;letter-spacing:1.2px}.header-link{font-size:12px}
.world-copy h1{font-family:var(--serif);font-weight:600;line-height:1.3;letter-spacing:-.035em;text-wrap:balance}
.world-copy>p{font-size:15px;line-height:1.85;max-width:380px;color:#d4dbdd}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:1.25px}
.world-tags{font-size:11px;letter-spacing:.65px}.art-caption{font-size:10px;letter-spacing:1.3px}
.auth-tabs a{font-size:14px;line-height:1.6}.form-heading h2{font-family:var(--serif);font-size:34px;font-weight:600;line-height:1.4;letter-spacing:-.025em;text-wrap:balance}
.form-heading>p{font-size:14px;line-height:1.85;color:#b5c0c8}
.auth-form label,.password-form label{font-size:14px;font-weight:600;line-height:1.65;margin-top:21px}
.field{min-height:56px}.field input{font-size:16px;line-height:1.5;min-height:54px;height:54px}
.field input::placeholder{font-size:14px;color:#9aa8b3;opacity:1}.password-toggle{font-size:12px;min-width:36px;min-height:44px}
.field-hint{font-size:12px;line-height:1.8;color:#a9b6c0}
.button{font-size:14px;font-weight:600;line-height:1.55;min-height:53px}.form-divider{font-size:10px;letter-spacing:.7px}
.auth-switch{font-size:13px;line-height:1.9}.save-note{font-size:12px;line-height:1.8;color:#a0aeb7}
.notice{font-size:14px;line-height:1.8}.notice>span{margin-top:3px}
.page-intro h1{font-family:var(--serif);font-weight:600;line-height:1.4;letter-spacing:-.03em}
.page-intro p{font-size:14px;line-height:1.85}.journey-content h2{font-family:var(--serif);font-weight:600;font-size:34px;line-height:1.4;letter-spacing:-.025em;text-wrap:balance}
.journey-content p{font-size:14px;line-height:1.85;max-width:280px}.player-name{font-weight:600;line-height:1.6;font-size:22px}
.role-badge{font-size:10px;letter-spacing:.5px}.profile-status{font-size:12px}
.profile-actions>a,.logout-button{font-size:14px;line-height:1.8}.admin-links>span{font-size:11px;letter-spacing:.8px}.admin-links>a{font-size:14px}
.security-intro h2{font-size:16px;line-height:1.6}.security-intro p{font-size:13px;line-height:1.8}
.security-card summary{font-size:14px;line-height:1.8}.account-footnote{font-size:12px;line-height:1.9}
.site-footer{font-size:12px;line-height:1.8}.site-footer>span:first-child{font-size:10px;letter-spacing:1.2px}
@media(max-width:1000px){.world-copy h1{font-size:36px}.world-tags{font-size:10px;letter-spacing:.2px;gap:10px}}
@media(max-width:740px){.world-copy h1{font-size:30px;line-height:1.4;letter-spacing:-.025em}.world-copy>.eyebrow{font-size:10px;letter-spacing:.65px}.world-panel{min-height:250px}.form-heading h2{font-size:29px;line-height:1.45}.journey-content h2{font-size:30px;line-height:1.45}.header-link{font-size:11px}.brand>span{font-size:14px;letter-spacing:1.1px}.brand small{font-size:9px;letter-spacing:5px}.page-intro h1{font-size:30px}.security-intro p{font-size:12px}.site-footer{font-size:11px}.auth-panel{padding-top:30px}.role-badge{font-size:9px}.profile-top{gap:8px}.admin-links{gap:16px}}
@media(max-width:360px){.world-copy h1{font-size:26px}.form-heading h2{font-size:27px}.world-copy>.eyebrow{font-size:9px;letter-spacing:.4px}.brand>span{font-size:12px;letter-spacing:1px}.brand small{font-size:8px}.header-link.muted{font-size:10px}.form-divider{font-size:9px;letter-spacing:.2px}.save-note{font-size:11px}.journey-content h2{font-size:27px}.page-intro h1{font-size:29px}.player-name{font-size:20px}}
/* Plain text, consistent weight and readable contrast. */
body{color:#f0f2f4;font-weight:400}
.world-copy h1{font-family:var(--ui-font);font-size:clamp(40px,4vw,64px);font-weight:700;line-height:1.18;letter-spacing:-.025em;text-shadow:none}
.world-copy{bottom:100px}.world-copy>p{font-size:16px;line-height:1.75;max-width:350px;color:#e0e5e9}
.form-heading h2,.page-intro h1{font-family:var(--ui-font);font-size:32px;line-height:1.35;font-weight:700;letter-spacing:-.02em}
.form-heading>p,.page-intro p{font-size:15px;color:#bac5cd;line-height:1.75}
.auth-tabs a{font-weight:600}.auth-form label,.password-form label{color:#edf0f3;font-weight:600}
.field input{font-weight:400;color:#f7f9fa}.field input::placeholder{color:#a5b1bc}
.button{font-weight:600}.form-divider{margin:24px 0 18px}.save-note{color:#adb8c2}
.journey-content h2{font-family:var(--ui-font);font-size:32px;line-height:1.35;font-weight:700;letter-spacing:-.02em}
.player-name{font-weight:600}.profile-actions>a,.logout-button{font-weight:400}.site-footer{color:#a5b0b9}
.avatar{font-family:var(--ui-font);font-weight:600}.security-intro p{color:#b6c2cb}
@media(max-width:740px){.world-panel{min-height:230px}.world-copy{bottom:28px}.world-copy h1{font-size:36px;line-height:1.15}.form-heading h2,.page-intro h1{font-size:28px}.journey-content h2{font-size:27px}.world-copy>p{display:none}}
@media(max-width:360px){.world-copy h1{font-size:32px}.form-heading h2,.page-intro h1{font-size:26px}.journey-content h2{font-size:25px}}

.form-divider{height:1px;background:var(--line)}.form-divider:before,.form-divider:after{display:none}
