/* World cards: the thumbnail fills the card; a black gradient from the left keeps names and ranks readable. */
.worlds{display:grid;gap:18px}
.world{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:end;min-height:300px;border-radius:14px;overflow:hidden;
  text-decoration:none;isolation:isolate;outline:1px solid var(--line);background:var(--moss) var(--img, none) right center/cover no-repeat}
.world::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0b0f0d 0%,rgba(11,15,13,.92) 38%,rgba(11,15,13,.35) 70%,rgba(11,15,13,.12) 100%)}
a.world:hover{outline-color:var(--lichen)}
.world .info{padding:30px 34px}
.world .season{font-size:13px;color:var(--amber);margin:0 0 6px}
.world h2{font-size:34px;line-height:1.2;margin:0 0 18px}
.podium{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-width:420px}
.podium li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:baseline}
.podium .no{font:700 20px var(--serif);color:var(--lichen)}
.podium .who{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.podium .lv{font:700 22px var(--serif);font-variant-numeric:tabular-nums}
.podium li:first-child .no,.podium li:first-child .lv{color:var(--amber)}
.podium .empty{color:var(--lichen);font-size:14px}
.world .reward{margin:0 22px 22px 0;background:rgba(20,29,24,.82);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.world .reward img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.world .reward p{margin:0;padding:10px 12px;font-size:13px}
.world .reward b{display:block;font:700 15px var(--serif)}
.world .reward span{color:var(--lichen)}
.world .more{position:absolute;top:22px;right:24px;font-size:13px;background:rgba(11,15,13,.6);padding:6px 12px;border-radius:999px}
.world.soon{min-height:150px;grid-template-columns:1fr;outline-style:dashed}
.world.soon::before{background:none}
.world.soon h2{color:var(--lichen);font-size:24px;margin-bottom:4px}
.world.soon p{margin:0;color:var(--lichen);font-size:14px}

/* login */
.login{max-width:640px}
.steps{list-style:none;display:flex;gap:6px;padding:0;margin:0 0 22px;flex-wrap:wrap}
.steps li{display:flex;gap:8px;align-items:center;padding:6px 12px;border-radius:999px;background:var(--night);color:var(--lichen);font-size:13px}
.steps b{font:700 14px var(--serif)}
.steps li.now{color:var(--amber-ink);background:var(--amber)} .steps li.done{color:var(--bone)}
.field{display:grid;gap:8px;margin-bottom:12px}
.field label{color:var(--lichen);font-size:14px}
.row{display:flex;gap:8px}.row input{flex:1;min-width:0}
.challenge{border-top:1px solid var(--line);padding-top:16px;margin-top:8px}
.code{display:flex;gap:10px;align-items:center;margin:10px 0}
.code span{font:700 28px var(--serif);letter-spacing:.08em;color:var(--amber)}
.msg{min-height:1.4em;color:var(--danger)}
.assure{margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:13px;color:var(--lichen)}
.assure b{display:block;color:var(--bone);font-weight:600}

/* profile */
.profile{display:grid;grid-template-columns:72px 1fr auto;gap:18px;align-items:center}
.avatar{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--moss-2);font:700 28px var(--serif);color:var(--amber)}
.who h1{margin:0}
.badges{margin:4px 0}
.link{background:none;border:0;color:var(--lichen);text-decoration:underline;cursor:pointer;padding:0}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:8px}
.stat{background:var(--night);border-radius:10px;padding:14px 16px}
.stat small{display:block;color:var(--lichen);font-size:12px}
.stat b{font:700 26px var(--serif);font-variant-numeric:tabular-nums}
.my-records{margin-top:26px}
.my-records > h2{margin:0 0 14px}
.world.mine{min-height:260px}
@media (min-width:721px){.world.mine .reward{margin-top:64px}}
.world.mine .stats{max-width:560px;margin:0}
.world.mine .stat{background:rgba(11,15,13,.72);backdrop-filter:blur(4px)}
.world.mine .reached{margin:10px 0 0;color:var(--lichen);font-size:13px}
.world.mine .empty{margin:0;color:var(--lichen)}
.world .reward.st-ready span,.world .reward.st-approved span{color:var(--amber)}
.world .reward.st-delivered span{color:var(--ok)}

@media (max-width:720px){
  .world{grid-template-columns:1fr;min-height:0;background-position:center top}
  .world:not(.soon)::before{background:linear-gradient(180deg,rgba(11,15,13,.15) 0,rgba(11,15,13,.85) 45%,#0b0f0d 100%)}
  .world .info{padding:120px 20px 16px}
  .world.soon .info{padding:22px 20px}
  .world h2{font-size:26px}
  .world .reward{margin:0 20px 20px;display:grid;grid-template-columns:96px 1fr;align-items:center}
  .world .reward img{height:100%}
  .profile{grid-template-columns:56px 1fr}.profile .actions{grid-column:1/-1}
  .avatar{width:56px;height:56px;font-size:22px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .row{flex-direction:column}
}
