/* L2 Empires home: the approved landscape and the existing imperial design system. */
html, body { width: 100%; height: 100%; overflow: hidden; }
body { background: var(--void); }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
[hidden] { display: none !important; }
#__nuxt { position: fixed; inset: 0; z-index: 0; pointer-events: none; }
#__nuxt * { visibility: hidden !important; }
#__nuxt canvas { visibility: visible !important; pointer-events: auto; transition: opacity 1.4s var(--ease); }
body:not([data-scene="live"]) #__nuxt canvas { opacity: 0; pointer-events: none; }
.world-poster { position: fixed; inset: 0; z-index: 0; background: linear-gradient(0deg, var(--void), transparent 80%), url('/assets/empires/images/aden-city.webp') center/cover; opacity: 0; pointer-events: none; transition: opacity 1.4s var(--ease); }
body[data-scene="loading"] .world-poster, body[data-scene="fallback"] .world-poster { opacity: .68; }
/* seção aberta sem o 3D (carregando ou sem placa de vídeo): a arte recua para o texto ser lido */
body[data-view="page"]:not([data-scene="live"]) .world-poster { opacity: .14; }
body[data-scene="fallback"] #__nuxt { display: none; }
.world-chrome { position: fixed; z-index: 10; pointer-events: none; opacity: 0; transition: opacity 1.6s var(--ease); }
.world-chrome button, .world-chrome a { pointer-events: auto; }
body[data-world="world"] .world-chrome { opacity: 1; }
.world-header { inset: 0 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 1.8rem 2.8rem; gap: 2rem; }
.world-header .brand { flex-shrink: 0; gap: .65rem; }
.world-header .brand__sigil { width: 2.5rem; height: 2.65rem; object-fit: contain; }
.world-header .brand__wordmark { width: 8.4rem; height: auto; }
.world-nav, .world-controls { display: flex; align-items: center; gap: 1.8rem; }
.world-nav { margin-left: auto; }
.world-nav button, .world-nav a, .world-menu { border: 0; padding: .65rem 0; color: var(--ivory); font-size: .62rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; text-decoration: none; background: none; }
.world-nav button:hover, .world-nav a:hover { color: var(--gold-bright); }
.world-controls { gap: 1.2rem; }
.world-controls .server-status { gap: .35rem; white-space: nowrap; font-size: .65rem; }
.world-controls .server-status__dot { width: .3rem; height: .3rem; margin-right: .25rem; }
.world-controls .audio-toggle { width: 2.6rem; height: 2.6rem; padding: .65rem; }
.world-controls .audio-toggle svg { width: 100%; height: 100%; }
.world-menu { display: none; border: 1px solid var(--line); padding: .8rem 1rem; }
.world-overview { inset: 0; }
.world-story { position: absolute; top: 23%; left: 10.8%; max-width: 29rem; }
.world-eyebrow { display: block; color: var(--gold-bright); font-size: .57rem; font-weight: 600; letter-spacing: .19em; text-transform: uppercase; }
.world-story h2 { font: 400 clamp(2.8rem, 4.2vw, 4.6rem)/.94 var(--font-display); letter-spacing: -.035em; color: var(--ivory); margin: 1rem 0 1.2rem; }
.world-story p { color: var(--ivory); opacity: .78; font-size: .73rem; line-height: 1.8; }
.world-story__link { border: 0; border-bottom: 1px solid var(--line-strong); color: var(--gold-bright); padding: .85rem 0; background: none; font-size: .65rem; margin-top: .6rem; }
.world-story__link span { padding-left: 1.8rem; }
.world-bottom { position: absolute; inset: auto 2.8rem 2.6rem; display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.world-bottom .button { height: 3rem; padding: 0 1.3rem; font-size: .57rem; letter-spacing: .12em; gap: 1.2rem; }
.world-quick { display: flex; gap: 1.6rem; margin-bottom: .8rem; }
.world-quick a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--ivory); font-size: .63rem; text-decoration: none; }
.world-quick a:hover { color: var(--gold-bright); }
.world-hint { color: var(--mist); margin: 0 0 .35rem; font-size: .58rem; line-height: 1.5; text-align: right; }
.world-marker-card { position: absolute; bottom: 8.5rem; left: 10.8%; }
.world-marker-card h2 { font: 400 3rem/1.05 var(--font-display); color: var(--ivory); margin: .6rem 0; }
.world-marker-card button { background: none; border: 0; border-bottom: 1px solid var(--line-strong); color: var(--gold-bright); font-size: .7rem; padding: .7rem 0; margin-right: 2rem; }
.world-marker-card .world-marker-back { border: 0; color: var(--mist); }
body[data-territory] .world-story { opacity: 0; visibility: hidden; }
.world-index { width: 100%; height: auto; margin: 0 auto; }
.world-index h2 { font: 400 3.2rem/1 var(--font-display); margin: 2.5rem 2.5rem 1.7rem; color: var(--ivory); }
.world-index__list { padding: 0 2.5rem; }
.world-index__list > * { display: flex; width: 100%; align-items: center; border: 0; border-bottom: 1px solid var(--line); background: none; text-decoration: none; color: var(--ivory); padding: 1.35rem 0; font: 400 1.75rem/1.2 var(--font-display); text-align: left; }
.world-index__list span { color: var(--gold); font: 500 .6rem/1 var(--font-ui); margin-right: 1.8rem; }
.world-index__list i { margin-left: auto; color: var(--gold); font: 400 1rem/1 var(--font-ui); }
.world-index__list > *:hover { color: var(--gold-bright); }
.world-index__foot { display: flex; gap: 1.5rem; padding: 2.5rem; }
.world-index__foot > * { font-size: .63rem; color: var(--mist); background: none; border: 0; }
.world-page { position: fixed; inset: 6rem 0 0; z-index: 9; color: var(--ivory); overflow-y: auto; overscroll-behavior: contain; padding: 0 max(1.2rem, 7vw) 7rem; background: transparent; }
.world-page:focus { outline: none; }
.world-page [data-world-content] { max-width: 60rem; margin-inline: auto; }
.world-page__bar { max-width: 60rem; margin: .5rem auto 0; padding: 0 2.5rem; display: flex; justify-content: flex-end; }
.world-page__bar button, #page-back { min-height: 44px; background: none; border: 0; color: var(--ivory); font-size: .7rem; }
#page-back { position: fixed; bottom: 2.6rem; left: 2.8rem; z-index: 12; border: 1px solid var(--line-strong); background: rgba(7,13,21,.72); padding: 0 1.3rem; letter-spacing: .08em; }
body[data-view="world"] #page-back { display: none; }
body[data-view="page"] .world-overview { opacity: 0; visibility: hidden; }
.world-page .section, .world-page .section--ivory, .world-page .site-footer { background: transparent; }
.world-page .section--how { background: transparent; }
.world-page .section { padding: 3.5rem 2.5rem; margin: 0; }
.world-page .section + .section { border-top: 1px solid var(--line); }
.world-page .reveal { opacity: 1; transform: none; }
.world-page h2 { font-size: 2.7rem; }
.world-page h3 { font-size: 1.7rem; }
.world-page .interlude__sigil, .world-page .world-band__image { opacity: .08; }
.world-page .world-band::after, .world-page .pattern--hero::after { content: none; }
.world-page .world-band__grid { border: 0; background: transparent; }
.world-page .interlude__inner { position: relative; text-align: left; }
.world-page .interlude__inner > p { font-size: .87rem; }
.world-page .section-head { margin-bottom: 2rem; text-align: left; display: block; }
.world-page .section-head p { font-size: .8rem; margin-top: 1.3rem; }
.world-page .explica-grid { margin-top: 2.7rem; grid-template-columns: 1fr; }
.world-page .status-board { grid-template-columns: repeat(2, minmax(0,1fr)); }
.world-page .info-ledger, .world-page .world-band__grid { grid-template-columns: 1fr; }
.world-page .competition-grid { grid-template-columns: 1fr; }
.world-page .world-panel { position: static; height: auto; width: auto; overflow: visible; padding: 1.7rem 0; border-inline: 0; }
.world-page .section--ivory { background: transparent; color: var(--ivory); }
.world-page .section-head--light h2, .world-page .section-head--light p { color: var(--ivory); }
.world-page .pattern { min-height: 0; background: transparent; }
.world-page .apoio-card, .world-page .apoio-grid .empty-state { background: rgba(9, 10, 12, .62); }
.world-page .pattern--hero > img { position: static; display: block; height: auto; max-height: 26rem; opacity: .75; mask-image: linear-gradient(180deg, transparent, #000 12%, #000 78%, transparent); }
.world-page .pattern__content { position: relative; inset: auto; width: auto; padding: 2rem 2.5rem 4rem; }
.world-page .site-footer { padding: 3rem 2.5rem; }
.world-page .site-footer__grid { grid-template-columns: 1fr 1fr; }
.world-nojs { position: fixed; inset: 0; z-index: 99; padding: 15vh 8vw; background: var(--void); }
.world-nojs a { display: block; padding: 1rem 0; }

/* Report #528: conta no cabeçalho, página atual marcada e o império agora na tela inicial */
.world-nav [aria-current="page"] { color: var(--gold-bright); }
.world-controls .world-account { min-height: 2.6rem; padding: 0 1.15rem; gap: 0; font-size: .57rem; }
.world-controls .world-account span { max-width: 11rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.world-ledger { position: absolute; top: 21%; right: 2.8rem; width: 19.5rem; border: 1px solid var(--line); background: rgba(7, 9, 12, .62); backdrop-filter: blur(6px); }
.world-ledger__row { display: grid; min-height: 3.6rem; padding: .7rem 1.1rem .7rem 1rem; grid-template-columns: .45rem minmax(0, 1fr) auto; align-items: center; column-gap: .85rem; border-bottom: 1px solid var(--line-cold); color: var(--ivory); text-decoration: none; transition: background-color .25s var(--ease); }
.world-ledger__row:last-child { border-bottom: 0; }
.world-ledger__row i { grid-row: 1 / span 3; width: .45rem; height: .45rem; border-radius: 50%; background: var(--smoke); }
.world-ledger__row span { color: var(--mist); font-size: .54rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.world-ledger__row strong { overflow: hidden; color: var(--white); font: 500 1.02rem/1.25 var(--font-display); font-variant-numeric: lining-nums; text-overflow: ellipsis; white-space: nowrap; }
.world-ledger__row small { overflow: hidden; color: var(--smoke); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.world-ledger__row span, .world-ledger__row strong, .world-ledger__row small { grid-column: 2; }
.world-ledger__row::after { grid-column: 3; grid-row: 1 / span 3; color: var(--gold); content: "→"; opacity: .45; transition: opacity .25s var(--ease), transform .25s var(--ease); }
.world-ledger__row:hover, .world-ledger__row:focus-visible { background: rgba(184, 160, 108, .08); }
.world-ledger__row:hover::after, .world-ledger__row:focus-visible::after { opacity: 1; transform: translateX(.2rem); }
.world-ledger__row[data-state="online"] i { background: var(--success); box-shadow: 0 0 .6rem rgba(126, 154, 119, .5); }
.world-ledger__row[data-state="offline"] i { background: var(--danger); }
.world-ledger__row[data-state="siege"] i { background: var(--ember-bright); box-shadow: 0 0 .6rem rgba(204, 98, 72, .4); }
.world-ledger__row[data-state="gold"] i { background: var(--gold); box-shadow: 0 0 .6rem rgba(184, 160, 108, .38); }
.world-ledger__row[data-state="loading"] i { background: var(--gold); animation: live-pulse 1.4s ease infinite; }
@media (max-width: 1100px) {
  .world-ledger { right: 1.5rem; width: 17.5rem; }
}
@media (max-width: 900px) {
  .world-ledger { top: auto; right: 0; bottom: 7.2rem; left: 0; display: flex; width: auto; gap: 1px; overflow-x: auto; padding: 0 1.5rem; border: 0; background: none; backdrop-filter: none; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .world-ledger::-webkit-scrollbar { display: none; }
  .world-ledger__row { flex: 0 0 15rem; border: 1px solid var(--line); background: rgba(7, 9, 12, .7); scroll-snap-align: start; }
  .world-ledger__row:last-child { border-bottom: 1px solid var(--line); }
  body[data-territory] .world-ledger { opacity: 0; visibility: hidden; }
}
@media (max-width: 600px) {
  .world-controls .world-account { display: none; }
  .world-ledger { bottom: calc(max(1.5rem, env(safe-area-inset-bottom)) + 7.8rem); padding: 0 1.2rem; }
  .world-ledger__row { flex-basis: 13.5rem; min-height: 3.9rem; }
}
@media (min-width: 1600px) { .world-story { top: 24%; } }
@media (max-width: 1100px) {
  .world-header { padding: 1.2rem 1.5rem; }
  .world-nav { display: none; }
  .world-menu { display: block; }
  .world-story { left: 7%; }
  .world-bottom { left: 1.5rem; right: 1.5rem; }
  .world-hint { display: none; }
}
@media (max-width: 600px) {
  .world-page { inset: 6.5rem 0 6rem; padding: 0 0 2rem; }
  .world-page__bar { padding: 0 1.5rem; }
  #page-back { left: 1.5rem; bottom: 1.5rem; }
  .world-page .section, .world-page .section--ivory { background: transparent; }
  .world-header { padding: 1.1rem 1.2rem; gap: .5rem; }
  .world-header .brand__sigil { width: 1.6rem; height: 2rem; }
  .world-header .brand__wordmark { width: 5.6rem; }
  .world-controls { gap: .55rem; }
  .world-controls .server-status { position: absolute; top: 4.7rem; left: 1.3rem; font-size: .57rem; }
  .world-controls .audio-toggle { width: 2.75rem; height: 2.75rem; }
  .world-menu { padding: .75rem; font-size: .58rem; }
  .world-story { top: 21%; left: 1.5rem; max-width: 90%; }
  .world-story h2 { font-size: 2.8rem; margin: .75rem 0 1rem; }
  .world-story p { font-size: .66rem; }
  .world-story__link { margin-top: 0; padding: .65rem 0; }
  .world-bottom { inset: auto 1.2rem max(1.5rem, env(safe-area-inset-bottom)); display: block; }
  .world-bottom .button { width: 100%; justify-content: space-between; }
  .world-quick { justify-content: space-between; gap: .75rem; margin: 1.3rem 0 0; }
  .world-quick a { font-size: .65rem; }
  .world-marker-card { bottom: 9rem; left: 1.5rem; }
  .world-marker-card h2 { font-size: 2.6rem; }
  .world-index h2 { font-size: 2.7rem; margin: 2rem 1.5rem; }
  .world-index__foot { padding: 1rem 1.5rem; }
  .world-index__list { padding: 0 1.5rem; }
  .world-index__list > * { padding: 1.15rem 0; font-size: 1.55rem; }
  .world-page .section, .world-page .site-footer { padding: 2.5rem 1.5rem; }
  .world-page .site-footer__grid { grid-template-columns: 1fr; }
  .world-page .status-board { grid-template-columns: 1fr 1fr; }
  .world-page .hero__actions { flex-direction: column; align-items: stretch; }
  .world-page .table-wrap { margin-inline: 0; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; } }
