body { display:block; padding:0; min-height:100dvh; overflow:hidden; }
.bottombar { height:auto; min-height:56px; padding-top:8px; padding-bottom:8px; gap:12px; }
.bottombar-left { display:flex; align-items:center; flex-wrap:wrap; gap:8px 18px; min-width:0; }
.footer-credit { white-space:nowrap; }
.birthday { display:flex; align-items:center; color:#aac1ff; }
#birthdayToggle { display:flex; align-items:center; gap:4px; flex-shrink:0; min-height:34px; padding:4px 7px; border:1px solid #243b70; border-radius:6px; background:#070d1c; color:#aac1ff; font:inherit; cursor:pointer; }
#birthdayToggle:hover { background:#102451; }
#birthdayToggle:focus-visible { outline:2px solid #82a2ff; outline-offset:3px; }
.birthday-chevron { font-size:20px; transition:transform .25s ease; }
.birthday.collapsed .birthday-chevron { transform:rotate(180deg); }
.birthday-panel { display:grid; grid-template-columns:1fr; transition:grid-template-columns .25s ease; }
.birthday-clip { min-width:0; overflow:hidden; }
.birthday-content { width:235px; box-sizing:border-box; padding-left:10px; display:flex; flex-direction:column; gap:3px; white-space:nowrap; opacity:1; transform:translateX(0); transition:transform .25s ease, opacity .2s ease; }
.birthday:not(.collapsed) .birthday-content { animation:birthday-expand .25s ease; }
.birthday.collapsed .birthday-panel { grid-template-columns:0fr; }
.birthday.collapsed .birthday-content { transform:translateX(-20px); opacity:0; }
.birthday-label { font-size:10px; color:#7d92bd; }
.birthday-countdown { display:flex; gap:9px; font-size:11px; font-variant-numeric:tabular-nums; }
.birthday-countdown b { font-weight:400; color:#d7e4ff; font-size:13px; margin-right:2px; }
@keyframes birthday-expand { from { transform:translateX(20px); opacity:0; } to { transform:translateX(0); opacity:1; } }
@media(max-width:850px) {
  .bottombar { display:grid; grid-template-columns:minmax(0,1fr) auto; }
  .bottombar-left { display:contents; }
  .footer-credit { grid-column:1; grid-row:1; font-size:11px; }
  .bottombar-right { grid-column:2; grid-row:1; }
  .birthday { grid-column:1 / -1; grid-row:2; }
}
@media(prefers-reduced-motion:reduce) {
  .birthday-panel, .birthday-content, .birthday-chevron { transition:none; }
  .birthday:not(.collapsed) .birthday-content { animation:none; }
}
#pageHost { position:fixed; inset:var(--header-height, 54px) 0 var(--footer-height, 56px); }
#pageFrame { display:block; border:0; width:100%; height:100%; background:#000; }
.topbar-right { align-self:center; }
.language-switcher { margin:0; }
.language-switcher { position:relative; }
.language-switcher > .lang-button { width:40px; height:34px; min-width:40px; box-sizing:border-box; padding:0 5px; }
.language-flag { font-family:emoji; font-size:23px; line-height:1.2; font-weight:400; letter-spacing:0; }
.language-switcher .lang-button:focus-visible { outline:2px solid #a8c9ff; outline-offset:2px; }
#moreLanguagesToggle { display:flex; gap:4px; align-items:center; justify-content:center; min-width:34px; height:34px; padding:0 6px; border:1px solid transparent; border-radius:6px; background:transparent; color:#bcdcff; cursor:pointer; }
#moreLanguagesToggle:hover, #moreLanguagesToggle.active { background:#123780; }
.language-dots { font:26px/1 sans-serif; }
.language-panel { position:absolute; top:calc(100% + 10px); right:0; width:330px; max-width:calc(100vw - 24px); padding:12px; box-sizing:border-box; color:#dbe5ff; background:#050a17; border:1px solid #224ae5; border-radius:12px; box-shadow:0 12px 36px #000b; text-align:left; }
.language-panel[hidden], .extra-language-link[hidden], #languageSearchEmpty[hidden], #currentExtraLanguage[hidden] { display:none; }
.language-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.language-panel-heading h2 { margin:0; font-size:14px; }
#closeLanguages { width:34px; height:34px; border:1px solid #2c4574; border-radius:6px; background:#0b1427; color:#cbdcff; font-size:24px; cursor:pointer; }
#languageSearch { box-sizing:border-box; width:100%; padding:10px 12px; margin-bottom:8px; border:1px solid #2c4574; border-radius:7px; background:#020610; color:#e8efff; font:inherit; font-size:16px; }
#extraLanguageList { display:flex; flex-direction:column; gap:3px; max-height:min(440px, calc(100dvh - var(--header-height, 54px) - var(--footer-height, 56px) - 160px)); overflow-y:auto; overscroll-behavior:contain; }
.extra-language-link { display:grid; grid-template-columns:32px minmax(0,1fr) 18px; align-items:center; gap:10px; min-height:44px; flex-shrink:0; padding:4px 10px; border:1px solid transparent; border-radius:7px; box-sizing:border-box; color:#cbdcff; text-decoration:none; font-size:14px; }
.extra-language-link:hover, .extra-language-link:focus-visible { color:white; background:#12264d; }
.extra-language-link.active { background:#123780; border-color:#3c74d8; color:white; }
.language-check { visibility:hidden; color:#9fbfff; }
.extra-language-link.active .language-check { visibility:visible; }
#languageSearchEmpty { margin:12px 4px; font-size:13px; color:#9caed0; }
@media(max-width:700px) {
  .language-switcher > .lang-button, #moreLanguagesToggle { min-height:40px; min-width:44px; }
  .language-panel { position:fixed; top:calc(var(--header-height, 110px) + 8px); left:12px; right:12px; width:auto; max-width:none; }
  .extra-language-link { min-height:48px; font-size:16px; }
  .topbar-tabs { min-width:0; }
  .tab-button { white-space:normal; text-align:center; }
}
.lang-button:hover, .lang-button:focus-visible { background:#123780; color:white; }
.quick-access-popover, .quick-access-popover * { box-shadow:none !important; text-shadow:none !important; }
.quick-access-popover { right:0; width:350px; background:#080d18; border-color:#2c426b; transform:none; }
.quick-access-tail { display:none; }
.quick-access-header { background:#0d1526; padding:15px 16px; border-color:#263752; text-align:left; }
.quick-access-links { padding:6px; gap:3px; }
.quick-access-links a { min-height:66px; box-sizing:border-box; padding:11px 10px; gap:10px; text-align:left; }
.quick-access-links a:hover { background:#121f36; border-color:transparent; }
.quick-access-icon { border:0; background:#111d31; border-radius:8px; }
.quick-access-text { gap:5px; }
.quick-access-text strong { font-size:13px; }
.quick-access-text small { color:#9faec8; line-height:1.4; }
.quick-access-entry { display:grid; grid-template-columns:minmax(0,1fr) 38px; align-items:center; position:relative; border-bottom:1px solid #1c2a43; }
.shutdown-warning { display:flex; align-items:center; justify-content:center; width:34px; height:38px; padding:0; color:#ff626d; background:transparent; border:0; border-radius:6px; cursor:pointer; }
.shutdown-warning:hover, .shutdown-warning:focus-visible { background:#38131b; }
.shutdown-warning:focus-visible { outline:2px solid #ff8790; outline-offset:1px; }
.shutdown-warning svg { flex-shrink:0; }
.shutdown-tooltip { position:absolute; right:0; bottom:calc(100% - 2px); z-index:2; width:275px; max-width:calc(100vw - 48px); padding:10px 12px; box-sizing:border-box; border:1px solid #9a3b47; border-radius:7px; background:#240e15; color:#ffccd1; font-size:12px; line-height:1.5; text-align:left; visibility:hidden; opacity:0; pointer-events:none; }
.shutdown-warning:focus + .shutdown-tooltip { visibility:visible; opacity:1; }
@media(hover:hover) { .shutdown-warning:hover + .shutdown-tooltip { visibility:visible; opacity:1; } }
#quickAccessToggle { width:32px; height:32px; flex-shrink:0; border-radius:6px; color:#cfd8ff; }
#quickAccessToggle:hover, #quickAccessToggle[aria-expanded="true"] { color:#a7c5ff; background:#132342; }
#quickAccessToggle svg { display:block; width:24px; height:24px; overflow:visible; pointer-events:none; }
@media(max-width:520px) {
  .quick-access-popover { width:auto; bottom:calc(var(--footer-height, 56px) + 10px); }
  .quick-access-entry { grid-template-columns:minmax(0,1fr) 44px; }
  .shutdown-warning { width:40px; height:44px; }
}
.email-dialog { box-sizing:border-box; max-height:calc(100dvh - 24px); }
.email-dialog[open] { display:flex; flex-direction:column; }
.email-dialog > * { flex-shrink:0; }
.email-dialog .email-dialog-body { flex:1 1 auto; min-height:0; max-height:none; overflow-y:auto; overscroll-behavior:contain; text-align:left; }
.email-language[hidden] { display:none; }
.email-language + .email-language { margin-top:0; }
.email-dialog-confirmation { padding-top:12px; }
.email-notice-tabs { display:flex; gap:8px; padding:12px 18px 0; }
#noticeLanguageSelect { max-width:100%; min-height:40px; padding:7px 12px; color:#dbe5ff; background:#080f25; border:1px solid #224ae5; border-radius:6px; font:inherit; }
.email-notice-tabs button { font:inherit; padding:7px 14px; color:#bcdcff; background:#080f25; border:1px solid #224ae5; border-radius:6px; cursor:pointer; }
.email-notice-tabs button[aria-pressed="true"] { background:#224ae5; color:white; }
.email-dialog-proceed:focus-visible { outline:2px solid white; outline-offset:3px; }
.email-address-copy { user-select:text; }
.email-dialog-actions { flex-wrap:wrap; }
@media(max-width:700px) {
  .topbar { gap:4px; padding:4px 10px 8px; }
  .topbar-left { justify-content:center; gap:0; }
  .topbar-right { margin:0; justify-content:center; }
  .topbar-tabs { margin-left:3px; }
  .tab-button { padding:0 9px; min-height:46px; }
  .topbar-icon { width:36px; height:36px; }
  .bottombar { padding:0 10px; }
  .bottombar-left { font-size:11px; }
  .email-dialog-actions { flex-direction:row; gap:8px; padding:10px 14px; }
  .email-dialog-cancel, .email-dialog-proceed { width:auto; flex:1; font-size:12px; padding:0 8px; }
  .email-dialog-header { padding:10px 14px; }
  .email-dialog-header h2 { font-size:16px; }
  .email-dialog-confirmation { padding:8px 14px; }
  .email-agreement { padding:8px; }
  .email-address-fallback { padding:8px 14px; }
}


/* Shell controls and responsive layouts, migrated from the retired branding stylesheet. */
.email-address-fallback[hidden], #verificationRetry[hidden] { display:none !important; }
.verification-dialog { width:min(420px,calc(100vw - 24px)); }
.verification-body { padding:18px; font-size:13px; line-height:1.6; }
#emailTurnstile { min-height:65px; }
#emailButton, #chatToggle { color:var(--xepy-blue); }
.topbar-icon { cursor:pointer; }
.topbar-tabs .tab-button svg { width:18px; height:18px; flex-shrink:0; color:var(--xepy-blue); vertical-align:middle; }
.topbar-icon:focus-visible { outline:2px solid var(--xepy-blue); outline-offset:3px; }
.birthday-balloon { width:22px; height:22px; object-fit:contain; margin:0; }
@media(min-width:851px) {
  .birthday-panel { transition:grid-template-columns .25s linear; }
  .birthday .birthday-content { opacity:1; transition:transform .25s linear; }
  .birthday:not(.collapsed) .birthday-content { animation:none; }
  .birthday.collapsed .birthday-content { transform:translateX(-100%); opacity:1; }
  .birthday-chevron { transition:transform .25s linear; }
}
@media(max-width:850px) {
  #birthdayToggle .birthday-balloon { width:32px; height:32px; }
}
@media(prefers-reduced-motion:reduce) {
  .birthday-panel, .birthday .birthday-content, .birthday-chevron { transition:none; }
  .birthday:not(.collapsed) .birthday-content { animation:none; }
}
.birthday, .birthday-label, .birthday-countdown { color:#fff; }
.birthday-countdown b { color:#fff; }
#birthdayToggle { color:var(--xepy-blue); background:var(--xepy-black); border-color:var(--xepy-border); box-shadow:none; }
#birthdayToggle:hover { color:#fff; background:var(--xepy-hover); }
#birthdayToggle:focus-visible { outline-color:var(--xepy-blue); }
.birthday-balloon { flex-shrink:0; }
.quick-access-popover, .quick-access-header, .quick-access-icon { background:var(--xepy-black); border-color:#225afb; }

.quick-access-text strong { color:#fff; }

.quick-access-links > .quick-access-entry { border-bottom:0; }


.shutdown-tooltip.shutdown-floating { display:block; position:fixed; z-index:10000; right:auto; bottom:auto; width:275px; max-width:calc(100vw - 20px); margin:0; overflow-wrap:anywhere; pointer-events:none; }
.shutdown-tooltip.shutdown-floating[hidden] { display:none; }
.shutdown-tooltip.shutdown-floating:not([hidden]) { visibility:visible; opacity:1; }
.quick-access-links { height:auto; max-height:min(490px,calc(100dvh - var(--footer-height,56px) - 100px)); box-sizing:border-box; overflow-y:auto; overscroll-behavior:contain; scrollbar-color:#0037bf #080b12; }
.quick-access-links > * { flex-shrink:0; }
.quick-access-links a:hover { background:#14328d; border-color:var(--xepy-primary); }
.quick-access-links a:hover small { color:#fff; }
#quickAccessToggle { color:var(--xepy-blue); background:#000; }
#quickAccessToggle:hover, #quickAccessToggle[aria-expanded="true"] { background:var(--xepy-hover); color:#fff; }
.quick-access-toggle:focus-visible, .quick-access-links a:focus-visible { outline-color:var(--xepy-blue); }
.email-dialog, .email-dialog * { box-shadow:none !important; text-shadow:none !important; }
.email-dialog { color:#fff; background:var(--xepy-black); border-color:var(--xepy-primary); }
.email-dialog::backdrop { background:rgba(0,0,0,.88); backdrop-filter:none; }
.email-dialog-header, .email-dialog-body, .email-language, .email-dialog-confirmation, .email-dialog-actions, .email-address-fallback, .email-agreement, .email-dialog-warning { background:var(--xepy-black); border-color:var(--xepy-border); color:#fff; }

.email-dialog-warning { border-left-color:var(--xepy-primary); }
.email-agreement input { accent-color:var(--xepy-primary); }
#noticeLanguageSelect { background:var(--xepy-black); color:#fff; border-color:var(--xepy-primary); }
.email-dialog-cancel { background:var(--xepy-black); color:#fff; border-color:var(--xepy-primary); }
.email-dialog-cancel:hover { background:#14328d; }
.email-dialog-proceed { background:var(--xepy-primary); border-color:var(--xepy-primary); color:#fff; }
.email-dialog-proceed:hover:not(:disabled) { background:var(--xepy-hover); }
.email-dialog-proceed:disabled { background:var(--xepy-black); color:var(--xepy-primary); border-color:var(--xepy-border); opacity:1; }
.email-address-copy, .email-copy-status { color:var(--xepy-blue); }
.email-address-copy:hover { color:#fff; }
.email-dialog :focus-visible, .email-agreement:focus-within { outline-color:var(--xepy-blue); }
@media(max-width:700px) {
  .topbar { display:grid; grid-template-columns:36px minmax(0,1fr); grid-template-rows:48px 46px; gap:4px 10px; padding:6px 10px 0; height:auto; }
  .topbar-left { display:contents; }
  .topbar-left > span { display:none; }
  .topbar-icon { grid-column:1; grid-row:1; align-self:center; width:36px; height:36px; }
  .topbar-right { grid-column:2; grid-row:1; justify-self:end; margin:0; width:auto; }
  .topbar-tabs { grid-column:1 / -1; grid-row:2; display:flex; flex-wrap:nowrap; min-width:0; width:100%; height:46px; margin:0; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; scrollbar-width:none; }
  .topbar-tabs::-webkit-scrollbar { display:none; }
  .topbar-tabs .tab-button { flex:1 0 auto; min-height:46px; height:46px; box-sizing:border-box; padding:0 12px; font-size:12px; white-space:nowrap; }
  .language-switcher { box-shadow:none; }
  #quickAccessToggle, .email-button, .chat-toggle { width:44px; height:44px; flex:0 0 44px; }
  .bottombar-right { gap:2px; }
  .bottombar { row-gap:2px; padding-bottom:env(safe-area-inset-bottom, 0px); }
  #birthdayToggle { min-height:40px; min-width:40px; }
}
.sitemap-nav-icon { display:inline-block; flex:0 0 18px; margin-right:6px; vertical-align:middle; }
#birthdayClose { display:none; }
#birthdayToggle { justify-content:center; }
.birthday-balloon { display:block; pointer-events:none; }
#birthdayPanel[hidden] { display:none !important; }
@media(max-width:850px) {
  .bottombar { display:grid; grid-template-columns:minmax(max-content,1fr) 44px auto; column-gap:6px; row-gap:0; min-height:56px; padding:5px 10px calc(5px + env(safe-area-inset-bottom,0px)); }
  .footer-credit { grid-column:1; grid-row:1; display:block; font-size:10px; line-height:1.2; white-space:nowrap; }
  .footer-decoration { display:inline; }
  .footer-name, #copyrightYear { display:inline; font-size:inherit; }
  .birthday { grid-column:2; grid-row:1; position:relative; }
  .bottombar-right { grid-column:3; grid-row:1; gap:2px; }
  #birthdayToggle, #quickAccessToggle, .email-button, .chat-toggle { width:44px; height:44px; min-width:44px; flex:0 0 44px; box-sizing:border-box; }
  #birthdayToggle { padding:0; }
  .birthday-chevron { display:none; }
  .birthday-panel { display:block; position:absolute; bottom:calc(100% + 14px); right:-142px; width:min(300px,calc(100vw - 20px)); padding:18px 14px; box-sizing:border-box; background:#000; border:1px solid #224ae5; border-radius:10px; box-shadow:none; transition:none; z-index:1001; }
  .birthday-panel::after { content:''; position:absolute; right:156px; bottom:-6px; width:10px; height:10px; background:#000; border-right:1px solid #224ae5; border-bottom:1px solid #224ae5; transform:rotate(45deg); }
  .birthday.collapsed .birthday-panel { display:none; }
  .birthday-clip { overflow:visible; }
  .birthday .birthday-content { width:100%; padding:0; gap:16px; opacity:1; transform:none; transition:none; }
  .birthday:not(.collapsed) .birthday-content { animation:none; }
  .birthday-label { display:block; padding-right:30px; font-size:13px; white-space:normal; line-height:1.5; }
  .birthday-countdown { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; font-size:11px; text-align:center; }
  .birthday-countdown > span { display:flex; flex-direction:column; gap:5px; }
  .birthday-countdown b { font-size:20px; margin:0; }
  #birthdayClose { display:flex; align-items:center; justify-content:center; position:absolute; z-index:2; top:6px; right:6px; width:36px; height:36px; padding:0; background:#000; border:0; border-radius:6px; color:#0066ff; font:24px/1 sans-serif; cursor:pointer; }
  #birthdayClose:hover { background:#14328a; color:#fff; }
  #birthdayClose:focus-visible { outline:2px solid #0066ff; }
}
@media(max-width:360px) {
  .bottombar { grid-template-columns:minmax(max-content,1fr) 40px auto; column-gap:4px; }
  .bottombar-right { gap:0; }
  #birthdayToggle, #quickAccessToggle, .email-button, .chat-toggle { width:40px; min-width:40px; flex-basis:40px; }
  .birthday-panel { right:-124px; }
  .birthday-panel::after { right:138px; }
}
.discord-popover { background:#000; border:1px solid var(--xepy-primary); border-radius:10px; box-shadow:none; max-height:calc(100dvh - var(--header-height,54px) - var(--footer-height,56px) - 24px); }
.discord-popover.open { display:flex; flex-direction:column; }
.discord-popover iframe { flex:1 1 320px; min-height:0; width:100%; border-radius:9px 9px 0 0; background:#000; }
.discord-tail { display:none; }
.popover-fallback { flex:0 0 auto; box-sizing:border-box; margin:0; padding:12px 14px; background:#000; color:#fff; border-top:1px solid var(--xepy-border); font-size:12px; line-height:1.5; text-align:left; box-shadow:none; text-shadow:none; }
.popover-fallback a { display:flex; align-items:center; min-height:44px; margin-top:6px; color:var(--xepy-blue); text-decoration:underline; text-underline-offset:3px; }
.popover-fallback a:hover { color:#fff; }
.popover-fallback a:focus-visible { outline:2px solid var(--xepy-blue); outline-offset:2px; }
@media(max-width:700px) {
  .discord-popover { position:fixed; left:12px; right:12px; bottom:calc(var(--footer-height,84px) + 8px); width:auto; }
  .discord-popover iframe { width:100%; }
}

/* Clip embedded and fallback surfaces to the same rounded outline. */
.discord-popover { overflow:hidden; isolation:isolate; }
.popover-fallback { border-radius:0 0 9px 9px; }
@media(max-width:850px) { .birthday .birthday-content { padding-top:22px; } .birthday-label { padding-right:0; } }
