/* GK's illustrated world, one shared control language. Effects stay inside
   their own surface; no moving shadow, filter, or animated transform. */
:root {
  --portal-navy:#102541;
  --portal-ink:#20334e;
  --portal-muted:#52647b;
  --portal-cream:#fff9ee;
  --portal-gold:#f4c76c;
  --portal-focus:#71cfff;
  --portal-ease:cubic-bezier(.16,1,.3,1);
}
body { font-family:'Bricolage Grotesque',Arial,sans-serif; }
.nova-home { font-family:'Bricolage Grotesque',Arial,sans-serif; }
.portal-announcement small { font-size:11px; }
::selection { color:#102541; background:#f4c76c; }
input,select,textarea { caret-color:#245fa3; }
main h1,main h2,main h3 { letter-spacing:-.03em; }
main p { text-wrap:pretty; }
main [id] { scroll-margin-top:150px; }
#topbar .topnav a { min-height:44px; padding-block:12px; }
#topbar .tb-btn { top:0; transform:none; }

/* Primary actions: the highlight and depth belong to this exact button. */
body .btn,
.nova-home .button,
.nova-home .auth-submit,
.nova-home .native-auth .btn-primary,
.registration-card .native-auth .btn-primary {
  position:relative; top:0; transform:none; isolation:isolate; overflow:hidden;
  min-height:48px; padding:13px 22px; border-radius:11px;
  font:700 14px/1.35 'Bricolage Grotesque',Arial,sans-serif;
  letter-spacing:.01em; text-decoration:none; white-space:normal;
  border:1px solid #597590; color:#e7f3ff; background:#163758;
  box-shadow:inset 0 1px 0 #ffffff26;
  transition:background-color .2s,border-color .2s,color .2s;
}
body .btn:hover,body .btn:active,
.nova-home .button:hover,.nova-home .button:active,
.nova-home .auth-submit:hover,.nova-home .auth-submit:active,
.nova-home .native-auth .btn-primary:hover,
.registration-card .native-auth .btn-primary:hover {
  top:0; transform:none; box-shadow:inset 0 1px 0 #ffffff38;
}
body .btn-primary,
.nova-home .button-gold,
.nova-home .auth-submit,
.nova-home .native-auth .btn-primary,
.registration-card .native-auth .btn-primary {
  color:#382707; border-color:#eac473;
  background:linear-gradient(180deg,#ffe2a0,#efbd5b);
  box-shadow:inset 0 1px 0 #fff7d5,inset 0 -2px 0 #a46d1d40;
}
body .btn-primary:hover,
.nova-home .button-gold:hover,
.nova-home .auth-submit:hover,
.nova-home .native-auth .btn-primary:hover,
.registration-card .native-auth .btn-primary:hover {
  color:#382707; border-color:#fff1c2;
  background:linear-gradient(180deg,#ffedbe,#f7cc79);
  box-shadow:inset 0 1px 0 #fff9dd,inset 0 -2px 0 #a46d1d40;
}
.nova-home .button::before,.nova-home .auth-submit::before,
.nova-home .native-auth .btn-primary::before { content:none; }
.nova-home .button-gold::after,
.nova-home .auth-submit::after,
.nova-home .native-auth .btn-primary::after,
.registration-card .native-auth .btn-primary::after {
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(110deg,transparent 35%,#fff8dd66 49%,transparent 63%) -230% 0/220% 100% no-repeat;
}
@keyframes portal-button-light { to { background-position:230% 0; } }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .nova-home .button-gold:hover::after,
  .nova-home .auth-submit:hover::after,
  .nova-home .native-auth .btn-primary:hover::after,
  .registration-card .native-auth .btn-primary:hover::after {
    animation:portal-button-light .8s var(--portal-ease);
  }
}
body .btn:disabled,body .btn[aria-disabled=true],
.nova-home .auth-submit:disabled,.nova-home .button:disabled,
.nova-home .native-auth .btn-primary:disabled {
  top:0; opacity:.58; cursor:not-allowed; box-shadow:none;
  transition:opacity 0s linear .35s;
}
body .btn[aria-busy=true],button[aria-busy=true] { cursor:progress; }
.nova-home .button-outline { border-color:#8ca3c1; background:#152c4f99; color:#f2f6ff; }
.nova-home .button-outline:hover { background:#23466a; color:#fff; }
.nova-home .button-arrow { border:0; background:#55370b12; box-shadow:none; border-radius:6px; }
.nova-home .hero-ctas .button { min-height:52px; padding:14px 22px; font-size:13px; }
.nova-home .cta-inner .button { min-height:50px; padding:14px 24px; font-size:13px; }

/* Transparent ornamental images: hover belongs to the words, not their box. */
.nova-home .live-conquest a:hover,
.nova-home .live-conquest a:active,
.nova-home .journey-shop-link:hover,
.nova-home .journey-shop-link:active {
  outline:none; text-decoration:none; box-shadow:none;
}
.nova-home .live-conquest .conquest-art-action,
.nova-home .live-conquest .conquest-link,
.nova-home .journey-shop-link { gap:10px; text-decoration:none; }
.nova-home .conquest-art-action>span,
.nova-home .conquest-link>span:first-child {
  background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;
  padding-bottom:2px; transition:background-size .28s var(--portal-ease);
}
.nova-home .conquest-art-action:hover>span,
.nova-home .conquest-link:hover>span:first-child { background-size:100% 1px; }
.nova-home .journey-shop-link:hover { text-decoration:underline; text-underline-offset:4px; }
.nova-home .live-conquest a:focus-visible,
.nova-home .journey-shop-link:focus-visible {
  outline:2px solid var(--portal-focus); outline-offset:4px; border-radius:8px;
}
body a:focus-visible,body button:focus-visible {
  outline:2px solid var(--portal-focus); outline-offset:4px;
}
.nova-home .hero-copy>p { font-size:15px; line-height:1.75; max-width:44ch; }
.nova-home .auth-card .native-auth .field,
.registration-card .native-auth .field { font-family:'Bricolage Grotesque',Arial,sans-serif; font-size:14px; }
.nova-home .auth-card .native-auth .input,
.registration-card .native-auth .input { min-height:46px; font-size:16px; border-radius:8px; }
.nova-home .auth-card .native-auth .tabs button { min-height:40px; font:700 13px/1.3 'Bricolage Grotesque',Arial,sans-serif; }
.nova-home .auth-card .auth-subtitle { font-size:14px; color:#66573f; }
.nova-home .auth-card .form-error,.registration-card .form-error { line-height:1.5; font-size:13px; }
.registration-card .field small { color:#645438; font-size:12px; line-height:1.5; }
.registration-card .native-auth .captcha { gap:12px; }
.registration-card .native-auth .captcha button { min-height:44px; }
.nova-home .auth-topline { display:none; }
.nova-home .auth-bottom { font-size:11px; color:#65553b; }
.nova-home .journey-shop { background:linear-gradient(160deg,#0e2543,#071831); }
.nova-home .journey-shop-heading,
.nova-home .journey-shop-heading h3,
.nova-home .journey-shop-heading p,
.nova-home .journey-package-price small {
  background:transparent; box-shadow:none;
}
.nova-home .journey-package-price small { color:#f5d28a; font-size:11px; padding:0; }
.nova-home .journey-package.featured { background:#102748; }
.nova-home .cta-section { background:#10233f; border-top:1px solid #3b506f; }
.nova-home .cta-section::before { content:none; }
.nova-home .cta-inner h2,
.nova-home .cta-inner h2 em { color:#fff4dd; background:transparent; font-style:normal; }

/* Utility pages share the same navy stage and calm, readable ivory surfaces. */
body:not(.portal-home):not(.portal-registration) .page-hero {
  margin:0; padding:52px 0 26px; background:transparent; border:0;
}
body:not(.portal-home):not(.portal-registration) .page-hero .wrap { max-width:1100px; }
body:not(.portal-home):not(.portal-registration) .page-hero h1 {
  font:750 clamp(36px,5vw,60px)/1.06 'Bricolage Grotesque',Arial,sans-serif;
  color:#fff8e8; letter-spacing:-.035em; max-width:20ch; text-shadow:none;
}
body:not(.portal-home):not(.portal-registration) .page-hero .px {
  display:inline; font:inherit; color:#f4ca79; text-shadow:none;
}
body:not(.portal-home):not(.portal-registration) .page-hero p { color:#d3e2f6; max-width:58ch; font-size:17px; }
body:not(.portal-home):not(.portal-registration) .page-body { max-width:1100px; padding-bottom:64px; }
body:not(.portal-home):not(.portal-registration):not([data-route=recarga]) .card {
  background:var(--portal-cream); border:0; border-radius:16px; color:var(--portal-ink);
  box-shadow:0 12px 30px #05112626;
}
body:not(.portal-home):not(.portal-registration) .realm { padding:28px; }
body:not(.portal-home):not(.portal-registration) .realm h2 { font-size:28px; color:var(--portal-navy); }
body:not(.portal-home):not(.portal-registration) .realm-head { gap:16px; }
body:not(.portal-home):not(.portal-registration) .state {
  font:600 13px/1.5 'Bricolage Grotesque',Arial,sans-serif; color:#3b684f;
}
body .step-n { box-shadow:none; background:#18385c; color:#ffe2a0; border:0; border-radius:10px; font:700 16px/1 'Bricolage Grotesque',Arial,sans-serif; }
body .state .sq { width:8px; height:8px; border-radius:50%; animation:none; }
body .realm .char { border:0; background:#f2ebdf; border-radius:12px; padding:16px 20px; margin-top:18px; }
body .realm .char-name { color:#18314e; font:750 25px/1.2 'Bricolage Grotesque',Arial,sans-serif; }
body .realm .tags { gap:8px; }
body .realm .tags li { background:#fff9ee; color:#4c5c6e; border:0; font-size:13px; border-radius:6px; }
body .realm .tags b { color:#20334e; }
body .realm .lvl { box-shadow:none; border:0; border-radius:10px; font-family:'Bricolage Grotesque',Arial,sans-serif; }
body .realm .empty { font-size:15px; color:#546175; line-height:1.65; }
body .server-note { color:#5c6270; font-size:13px; }
body .notice { border:1px solid #b8ccdc; border-radius:10px; color:#24435d; background:#eaf2f7; font-size:14px; box-shadow:none; }
body .notice.error { border-color:#e4a8a8; color:#9b2c35; background:#fff0ec; }

/* Recharge remains one form; numbers and selected state have clear priority. */
.recharge-page { font-family:'Bricolage Grotesque',Arial,sans-serif; }
.recharge-page .step { padding:26px; }
.recharge-page .step-title { gap:12px; }
.recharge-page .step-title h2 { font-size:24px; line-height:1.15; color:#f9e3b7; }
.recharge-page .step-title p { font-size:14px; color:#c4d5eb; }
.recharge-page .input { font-size:16px; min-height:46px; border-radius:8px; }
.recharge-page .choice .face { box-shadow:none; }
.recharge-page .choice input:focus-visible+.face { outline:2px solid var(--portal-focus); outline-offset:4px; }
.recharge-page .choice input:checked+.face { border-color:#f7d38c; }
.recharge-page .summary { overflow:hidden; border:1px solid #8091a9; border-radius:16px; box-shadow:0 14px 36px #040d2440; }
.recharge-page .summary h2 { font-size:26px; letter-spacing:-.025em; }
.recharge-page .summary dl { font-size:14px; }
.recharge-page .summary .total { font-variant-numeric:tabular-nums; }
.recharge-page .coupon-entry button { min-height:44px; border:1px solid #7796b7; border-radius:8px; color:#f4f8ff; background:#1a3c60; font-weight:700; }
.recharge-page .check { gap:12px; font-size:13px; line-height:1.6; }
.recharge-page input[type=checkbox] { accent-color:#ab741b; width:18px; height:18px; flex:none; }
.recharge-page .payment-assurance { line-height:1.6; font-size:13px; }
.recharge-page #pay { min-height:52px; font-size:16px; }
.recharge-page #meus-pedidos { overflow:hidden; }
.recharge-page .orders { font-size:14px; }
.recharge-page .orders th { color:#e2c88d; font-size:12px; letter-spacing:.02em; }

/* Account and support: readable without a second visual language. */
.nova-home .player-heading h1 { font-size:clamp(32px,4vw,48px); line-height:1.12; }
.nova-home .player-profile .auth-submit { width:100%; min-height:48px; font-size:14px; }
.nova-home .player-profile .player-profile-links a { font-size:12px; line-height:1.6; }
.nova-home .player-profile { padding:26px; }
/* Small optical offset aligns the body with the illustrated pedestal. */
.nova-home .player-profile .portal-figure { margin-left:calc(var(--figure-center-shift,0px) * .8 + 14px); }
.recharge-page .char-face .portal-figure { margin-left:calc(var(--figure-center-shift,0px) * .24 + 4px); }
/* Package labels belong inside their card, without a second painted strip. */
.recharge-page .pack .face { padding-top:26px; min-height:154px; }
.recharge-page .pack .ribbon,
.recharge-page .pack:has(input[value='p10000']) .ribbon {
  top:7px; left:10px; right:auto; padding:0; border:0; border-radius:0;
  background:transparent; color:#f5d28a; font-size:11px; line-height:1.4; box-shadow:none; translate:none;
}
.nova-home .player-board summary { font:650 14px/1.5 'Bricolage Grotesque',Arial,sans-serif; min-height:40px; align-items:center; }
.nova-home .player-board details p { font:14px/1.65 'Bricolage Grotesque',Arial,sans-serif; color:#cadbf0; }
.nova-home .player-news-banner p { font-size:14px; line-height:1.6; }
.nova-home .player-news-banner a,.nova-home .player-recharge-heading a { font-size:13px; }
body[data-route=suporte] .faq { display:grid; gap:10px; }
body[data-route=suporte] .faq .card { padding:0 24px; }
body[data-route=suporte] .faq summary { font:650 17px/1.5 'Bricolage Grotesque',Arial,sans-serif; min-height:68px; padding:20px 0; cursor:pointer; color:#203b58; }
body[data-route=suporte] .faq details p { color:#526174; font:16px/1.7 'Bricolage Grotesque',Arial,sans-serif; max-width:72ch; padding-bottom:20px; }
body[data-route=suporte] .section-gap { color:#fff0cc; font-size:30px; line-height:1.2; }
body[data-route=suporte] .lead { color:#d3e2f6; font-size:16px; }
body .order-card { padding:28px; }
body .order-code,body .order-card .status { font-family:'Bricolage Grotesque',Arial,sans-serif; }
body .order-card .steps strong { font-size:16px; }
body .order-card .steps li { font-size:14px; }
.nova-footer { border-top:1px solid #3b506f; }
.nova-footer a { text-underline-offset:5px; }

/* The account inbox uses the same navy, gold and readable controls. */
.portal-message-link { display:inline-flex; align-items:center; gap:7px; font-size:13px; text-decoration:none; white-space:nowrap; }
.portal-message-link svg { width:20px; height:20px; }
.portal-message-link b { background:#f5ca77; color:#10233f; border-radius:5px; padding:1px 6px; }
.portal-message-link.has-unread { border-color:#c89d50; }
@keyframes portal-unread { 50% { box-shadow:inset 0 0 0 1px #f5ca77; background-color:#24405f; } }
@media(prefers-reduced-motion:no-preference) { .portal-message-link.has-unread { animation:portal-unread 2s 3; } }
.support-workspace { display:grid; grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr); gap:20px; align-items:start; }
.support-folders,.support-conversation { background:#0b203d; border:1px solid #496687; border-radius:14px; padding:24px; color:#f8edd9; min-width:0; }
.support-workspace h2 { color:#fff0ce; font-size:24px; margin:0 0 16px; }
.support-workspace p { color:#c9d8eb; font-size:14px; line-height:1.7; }
.support-categories { display:flex; flex-wrap:wrap; gap:6px; margin:20px 0 14px; }
.support-folder { padding:8px 10px; min-height:40px; border:1px solid #45658a; border-radius:7px; background:#112e50; color:#d9e8fb; cursor:pointer; font-family:inherit; font-size:13px; font-weight:600; line-height:1.4; }
.support-folder[aria-pressed=true] { color:#ffe4a7; border-color:#d0aa66; background:#253954; }
.support-thread-list { max-height:520px; overflow-y:auto; display:grid; gap:8px; margin-bottom:14px; }
.support-thread { display:flex; flex-direction:column; gap:7px; padding:14px; border:1px solid #365678; border-radius:8px; background:#0c2647; color:#edf3fc; text-align:left; cursor:pointer; width:100%; overflow-wrap:anywhere; font:inherit; }
.support-thread.unread,.support-thread.selected { border-color:#d7b573; }
.support-thread strong { font-size:15px; line-height:1.4; }
.support-thread-meta,.support-thread small { color:#d5ba87; font-size:12px; line-height:1.5; }
.support-preview { color:#c0d2e9; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-size:13px; }
.support-pages { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:16px 0; font-size:12px; }
.support-pages .btn { padding:8px; min-height:38px; font-size:12px; }
.support-conversation label { display:grid; gap:8px; color:#dbe8fa; font-size:14px; margin-bottom:16px; }
.support-conversation input,.support-conversation select,.support-conversation textarea { width:100%; border:1px solid #53769b; border-radius:8px; padding:12px; font:16px/1.5 'Bricolage Grotesque',Arial,sans-serif; background:#07182e; color:#f7efdf; }
.support-conversation textarea { resize:vertical; min-height:110px; }
.support-conversation :is(input,select,textarea):focus-visible { outline:2px solid #71cfff; outline-offset:3px; }
.support-history { max-height:520px; overflow:auto; display:flex; flex-direction:column; gap:14px; margin:20px 0; }
.support-message { max-width:94%; align-self:flex-start; padding:14px 16px; border-radius:10px; background:#19385c; overflow-wrap:anywhere; }
.support-message.from-user { align-self:flex-end; background:#263949; }
.support-message strong { color:#ffe0a2; font-size:13px; }
.support-message p { margin:8px 0; white-space:pre-wrap; }
.support-message time { font-size:11px; color:#bfcee1; }
.support-feedback { margin:18px 0; min-height:24px; color:#b4e8cd; }
.support-feedback.error { color:#ffd3c9; }
.account-ban-notices { max-width:1100px; width:calc(100% - 40px); margin:20px auto 0; }
.account-ban-notices:empty { display:none; }
.account-ban-notice { padding:22px; border:1px solid #b38866; border-radius:12px; background:#282c3a; color:#fff0d2; }
.account-ban-notice h2 { color:#ffdeb0; font-size:22px; }
.account-ban-notice p { white-space:pre-wrap; overflow-wrap:anywhere; font-size:15px; }
@media(max-width:1050px) { .portal-message-link>span { display:none; } }
@media(max-width:760px) {
 .support-workspace { grid-template-columns:1fr; }
 .support-folders,.support-conversation { padding:20px 16px; }
 .support-thread-list { max-height:300px; }
 .support-message { max-width:100%; }
 .portal-message-link { padding:8px; }
}

@media(max-width:960px) {
  .nova-home .hero-copy { padding-top:38px; }
  .nova-home .hero-card .auth-card { margin-top:52px; }
  body .realm .char { min-width:0; }
  body[data-route=personagem] .nova-home .player-profile { order:0; }
  body[data-route=personagem] .nova-home .player-content { order:1; }
}
@media(max-width:620px) {
  main [id] { scroll-margin-top:120px; }
  .nova-home .hero-copy h1 { font-size:clamp(34px,10.6vw,44px); line-height:1.08; }
  .nova-home .hero-copy>p { font-size:15px; }
  .nova-home .hero-ctas { gap:10px; }
  .nova-home .hero-ctas .button { width:100%; min-height:48px; }
  .nova-home .hero-card .auth-card { width:calc(100% - 28px); padding:24px 20px; }
  .nova-home .hero-footnote { font-size:11px; }
  .nova-home .hero-bottom-label { display:none; }
  .nova-home .auth-pet { top:-64px; right:0; width:88px; height:88px; }
  .nova-home .auth-card .native-auth .input,.registration-card .native-auth .input { min-height:48px; font-size:16px; }
  .registration-card { padding:24px 20px; }
  .registration-layout { width:calc(100% - 24px); }
  .nova-home .live-conquest .conquest-art-action { min-height:52px; }
  body:not(.portal-home):not(.portal-registration) .page-hero { padding:34px 0 18px; }
  body:not(.portal-home):not(.portal-registration) .page-hero p { font-size:16px; }
  body:not(.portal-home):not(.portal-registration) .realm { padding:20px; }
  body .realm .char { padding:12px; }
  body .realm-head .btn { width:100%; }
  .recharge-page .step { padding:20px 14px; }
  .recharge-page .step-title h2 { font-size:22px; }
  .recharge-page .summary .window-body { padding:22px 18px; }
  .recharge-page .summary .total { font-size:32px; }
  .recharge-page .choice .char-name { font-size:20px; }
  body[data-route=suporte] .faq .card { padding:0 20px; }
  body[data-route=suporte] .faq summary { font-size:16px; }
  .nova-home .player-heading { align-items:start; }
  .nova-home .player-layout { gap:24px; }
}
@media(prefers-reduced-motion:reduce) {
  .nova-home .button-gold::after,.nova-home .auth-submit::after,
  .nova-home .native-auth .btn-primary::after,.registration-card .native-auth .btn-primary::after { animation:none; }
  .nova-home .conquest-art-action>span,.nova-home .conquest-link>span:first-child { transition:none; }
}
