/* Home page v3 (js/home.js), from the canvas "Website" page, board Home. */
.v3 .home {
  .hhero { position: relative; height: 75vh; height: 75svh; min-height: 640px; overflow: hidden; }
  .hhero > .hbg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
  .hhero .s1 { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 42%, rgba(13, 11, 8, .2) 0%, rgba(13, 11, 8, .55) 55%, rgba(13, 11, 8, .85) 100%); }
  .hhero .s2 { position: absolute; inset: 0; background: linear-gradient(0deg, #0f0d0a 0%, rgba(15, 13, 10, 0) 38%); }
  .hhero .in { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 16px; padding: 0 var(--pad) 130px; }
  .hlogo { width: 470px; max-width: 80vw; height: auto; filter: drop-shadow(0 8px 30px rgba(0, 0, 0, .7)); }
  .tag { font-size: 22px; font-weight: 500; letter-spacing: -.3px; color: #f6eedd; text-shadow: 0 2px 18px rgba(0, 0, 0, .8); }
  .hsub { font-size: 18px; color: #e2d5b8; max-width: 620px; margin: 0; text-shadow: 0 2px 12px rgba(0, 0, 0, .9); }
  .hcta { gap: 14px; margin-top: 8px; flex-wrap: wrap; justify-content: center; }
  .trust { display: flex; gap: 18px; font-size: 14px; color: #d8c9a8; flex-wrap: wrap; justify-content: center; }
  .trust span { display: flex; align-items: center; gap: 7px; }
  .trust svg { color: var(--gold); }
  .ribbon { position: absolute; left: 0; top: 0; width: 300px; height: 300px; overflow: hidden; z-index: 6; pointer-events: none; }
  .ribbon span { position: absolute; left: -92px; top: 62px; width: 400px; transform: rotate(-45deg); display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 12px 0 11px; background: linear-gradient(180deg, #f3dda6, #c9a24f 60%, #a8823c); color: #1b140b; box-shadow: 0 10px 26px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .45), inset 0 -1px 0 rgba(0, 0, 0, .25); border-top: 1px dashed rgba(27, 20, 11, .35); border-bottom: 1px dashed rgba(27, 20, 11, .35); }
  .ribbon b { font-size: 24px; font-weight: 700; letter-spacing: 1.5px; line-height: 1; }
  .ribbon i { font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; }

  .board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: -96px; position: relative; z-index: 3; }
  .board .card { padding: 18px 20px; background: rgba(22, 18, 13, .94); backdrop-filter: blur(6px); display: flex; flex-direction: column; }
  .bl { font-size: 12px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gold); display: flex; align-items: center; gap: 8px; }
  .bl .dot { width: 8px; height: 8px; border-radius: 50%; background: #8fbf7c; }
  .bl .dot.off { background: #9d8d6f; }
  .bignum { font-size: 34px; font-weight: 600; letter-spacing: -.5px; line-height: 1.1; }

  .l150 { display: grid; grid-template-columns: auto 1fr; gap: 56px; align-items: center; padding: 30px 44px; border-radius: 20px; border: 1px solid #8a6d3b; background: linear-gradient(100deg, #2c2318 0%, #16120d 60%); }
  .l150a { display: flex; align-items: center; gap: 22px; }
  .l150n { font-size: 92px; font-weight: 700; letter-spacing: -4px; line-height: .9; background: linear-gradient(180deg, #f6e3b4, #c4a160 70%, #8a6d3b); -webkit-background-clip: text; background-clip: text; color: transparent; }
  .l150r { position: relative; height: 90px; }
  /* One even line from 110 to 150 that warms up towards Tianlu; no glowing piece (owner, 2026-10-29) */
  .l150r .ln { display: none; }
  .l150r .lnon { position: absolute; left: 8%; right: 7%; top: 30px; height: 3px; border-radius: 2px; background: linear-gradient(90deg, #3a2f22, #6b5636 55%, #c4a160); }
  .ms { position: absolute; top: 0; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; white-space: nowrap; }
  .ms .dt { width: 14px; height: 14px; border-radius: 50%; background: #16120d; border: 2px solid #6b5636; margin-top: 24px; }
  .ms b { font-size: 17px; font-weight: 600; color: var(--tx3); }
  .ms span { font-size: 12.5px; color: var(--tx3); }
  .ms.us .dt { width: 22px; height: 22px; margin-top: 20px; background: #e6cb92; border-color: #f6e3b4; box-shadow: 0 0 0 5px rgba(230, 203, 146, .2); }
  .ms.us b { font-size: 22px; color: #e6cb92; }
  .ms.us span { color: #f1e9d8; font-weight: 600; }

  .stepc { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
  .stepc .pic { height: 200px; position: relative; }
  .stepc .pic img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
  .stepc .pic::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #16120d 0%, rgba(22, 18, 13, 0) 60%); }
  .stepc .num { position: absolute; left: 20px; bottom: -16px; z-index: 2; width: 42px; height: 42px; font-size: 17px; }
  .stepc .b { padding: 28px 22px 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }

  /* No frame; the picture runs the full width of the screen (owner, 2026-10-29) */
  .nums { position: relative; padding: 64px 0; }
  .nums .nbg, .nums .nshd { position: absolute; top: 0; bottom: 0; left: 50%; width: 100vw; height: 100%; transform: translateX(-50%); }
  .nums .nbg { object-fit: cover; opacity: .6; }
  .nums .nshd { background: linear-gradient(180deg, rgba(15, 13, 10, 1), rgba(15, 13, 10, .35) 20%, rgba(15, 13, 10, .55) 75%, rgba(15, 13, 10, 1)); }
  .nums .nhead, .nums .ngrid { position: relative; }
  .nhead { position: relative; display: flex; align-items: flex-end; gap: 20px; margin-bottom: 28px; }
  .nhead .btn { margin-left: auto; }
  .ngrid { position: relative; display: grid; grid-template-columns: 1.25fr repeat(5, minmax(0, 1fr)); gap: 12px; }
  .nt { display: flex; flex-direction: column; gap: 8px; padding: 24px 18px; border-radius: 16px; background: rgba(18, 15, 11, .82); border: 1px solid #4a3b29; backdrop-filter: blur(4px); }
  .nt .nk { white-space: nowrap; font-size: 12px; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gold); }
  .nt .nv { font-size: 52px; font-weight: 700; letter-spacing: -2px; line-height: 1; color: #f1e9d8; }
  .nt .nx { font-size: 14px; color: var(--tx2); }
  .nt.hero { background: linear-gradient(180deg, #3a2d17, #1d1811); border-color: #c9a96a; box-shadow: 0 0 0 4px rgba(201, 169, 106, .12); }
  .nt.hero .nv { font-size: 72px; background: linear-gradient(180deg, #f6e3b4, #c4a160); -webkit-background-clip: text; background-clip: text; color: transparent; }

  .now3 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr) minmax(0, .93fr); gap: 20px; }
  .ulist .u { display: flex; align-items: center; gap: 14px; padding: 11px 0; border-top: 1px solid var(--line); }
  .ulist .u:first-child { border-top: 0; }
  .tabsm { display: flex; gap: 2px; margin-bottom: 6px; overflow-x: auto; scrollbar-width: none; }
  .tabsm button { font-size: 12.5px; font-weight: 600; padding: 6px 9px; border-radius: 999px; color: var(--tx3); background: none; border: 0; white-space: nowrap; }
  .tabsm button:hover { color: var(--tx2); }
  .tabsm .on { background: var(--bg4); color: var(--gold2); }
  .trow { display: flex; align-items: center; gap: 14px; padding: 10px 0; border-top: 1px solid #2a2218; }
  .trow:hover .grow > span:first-child { color: var(--gold2); }
  .medal { width: 28px; height: 28px; flex: none; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; }
  .newsi { display: flex; gap: 14px; padding: 12px 0; border-top: 1px solid var(--line); }
  .newsi:first-child { border-top: 0; }
  .newsi:hover .col > span:last-child { color: var(--gold2); }

  .cityrow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 0 calc((100% - 100vw) / 2); border-top: 1px solid #4a3b29; border-bottom: 1px solid #4a3b29; }
  .cp { position: relative; height: 520px; overflow: hidden; border-right: 3px solid #c9a96a; box-shadow: inset -1px 0 0 #0a0806; }
  .cp:last-child { border-right: 0; }
  .cp > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
  .cp:hover > img { transform: scale(1.04); }
  .cp .shd { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10, 8, 6, .96) 0%, rgba(10, 8, 6, .6) 35%, rgba(10, 8, 6, 0) 62%); }
  .cp .t { position: absolute; left: 22px; right: 22px; bottom: 24px; display: flex; flex-direction: column; gap: 6px; }

  .race { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-radius: 18px; overflow: hidden; border: 1px solid #4a3b29; }
  .side2 { position: relative; min-height: 470px; padding: 30px; display: flex; flex-direction: column; gap: 14px; }
  .side2 > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .42; }
  .side2 .shd { position: absolute; inset: 0; }
  .side2.cn .shd { background: linear-gradient(90deg, rgba(15, 13, 10, .96) 0%, rgba(15, 13, 10, .75) 60%, rgba(15, 13, 10, .55) 100%); }
  .side2.eu .shd { background: linear-gradient(270deg, rgba(15, 13, 10, .96) 0%, rgba(15, 13, 10, .75) 60%, rgba(15, 13, 10, .55) 100%); }
  .side2 > *:not(img):not(.shd) { position: relative; }
  .side2.eu { border-left: 1px solid #4a3b29; padding-left: 62px; }
  .side2.cn { padding-right: 62px; }
  .wpns { margin-top: 6px; max-width: 520px; }
  .wpn { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding: 10px 0; border-top: 1px solid rgba(74, 59, 41, .7); font-size: 14.5px; }
  .wpn b { font-weight: 600; color: #f1e9d8; }
  .wpn span { color: var(--tx2); }
  .orb { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 64px; height: 64px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; color: #1b140b; background: linear-gradient(#e6cb92, #c4a160); box-shadow: 0 0 0 6px #0f0d0a; z-index: 3; font-size: 15px; line-height: 1; letter-spacing: 1px; padding-left: 1px; }

  .ways { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0 calc((100% - 100vw) / 2); border-top: 1px solid #4a3b29; border-bottom: 1px solid #4a3b29; }
  .way { position: relative; height: 600px; overflow: hidden; border-right: 1px solid #4a3b29; }
  .way:last-child { border-right: 0; }
  .way > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .way .shd { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10, 8, 6, .97) 0%, rgba(10, 8, 6, .75) 32%, rgba(10, 8, 6, 0) 60%); }
  .way .t { position: absolute; left: 28px; right: 28px; bottom: 30px; display: flex; flex-direction: column; gap: 10px; }
  .way .who { display: flex; gap: 8px; flex-wrap: wrap; }

  .faqg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .fq { display: flex; gap: 14px; align-items: flex-start; padding: 20px 22px; }
  .fq .qi { width: 30px; height: 30px; flex: none; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #2a2117; color: #e6cb92; font-weight: 700; font-size: 14px; box-shadow: 0 0 0 1px #6b5636; }

  .disc { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 30px; align-items: center; padding: 36px 40px; border-radius: 18px; background: #5865F2; color: #fff; }
  .disc .p, .disc .kick, .disc .h2 { color: #fff; }
  .disc .ico { display: flex; align-items: center; justify-content: center; background: #fff; color: #5865F2; }
  .disc .dbtn { background: #fff; color: #5865F2; border-color: #fff; }
  .btn.hdisc { background: #5865F2; border-color: #5865F2; color: #fff; }
  .btn.hdisc:hover { background: #4752C4; border-color: #4752C4; color: #fff; }
  .chan { display: flex; flex-direction: column; gap: 8px; }
  .msg { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: #313338; border: 1px solid #3f4147; }
  .msg .p { color: #dbdee1; }
  .msg .rd { background: #5865F2; color: #fff; box-shadow: none; }

  .close { position: relative; height: 360px; margin-top: 64px; overflow: hidden; border-top: 1px solid var(--line2); border-bottom: 1px solid var(--line2); }
  .close > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .close .shd { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13, 11, 8, .95) 0%, rgba(13, 11, 8, .7) 40%, rgba(13, 11, 8, .1) 80%); }
  .close .in { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: center; gap: 18px; }
  .close .h1 { font-size: 46px; }
}
/* the closing picture of the home page touches the footer */
body:has(.v3 .home) .v3 .foot { margin-top: 0; }

@media (max-width: 1200px) {
  .v3 .home {
    .board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ngrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .now3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .now3 > :first-child { grid-column: 1 / -1; }
    .cityrow { grid-template-columns: repeat(5, minmax(240px, 1fr)); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
    .cp { scroll-snap-align: start; }
    .ways { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .way { height: 480px; }
    .way:nth-child(2) { border-right: 0; }
    .way:nth-child(-n+2) { border-bottom: 1px solid #4a3b29; }
    .l150 { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  }
}
@media (max-width: 860px) {
  .v3 .home {
    .race { grid-template-columns: minmax(0, 1fr); }
    .side2.eu { border-left: 0; border-top: 1px solid #4a3b29; padding-left: 30px; }
    .side2.cn { padding-right: 30px; }
    .orb { display: none; }
    .faqg, .disc { grid-template-columns: minmax(0, 1fr); }
    .now3 { grid-template-columns: minmax(0, 1fr); }
  }
}
@media (max-width: 720px) {
  .v3 .home {
    .hhero { min-height: 600px; }
    .hhero .in { padding-bottom: 110px; gap: 12px; }
    .tag { font-size: 18px; }
    .hsub { font-size: 15.5px; }
    .hcta { flex-direction: column; width: 100%; max-width: 360px; }
    .hcta .btn.big { height: 52px; padding: 0 22px; font-size: 15.5px; width: 100%; }
    .trust { gap: 8px 14px; font-size: 12.5px; }
    .ribbon { transform: scale(.62); transform-origin: 0 0; }
    .board { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: -70px; }
    .board .card { padding: 14px; }
    .bignum { font-size: 26px; }
    .board .h3 { font-size: 15px; }
    .l150 { padding: 22px; }
    .l150n { font-size: 64px; }
    .ms b { font-size: 14px; }
    .ms span { font-size: 10.5px; }
    .ms.us b { font-size: 18px; }
    .nums { padding: 40px 0; }
    .nhead { flex-direction: column; align-items: flex-start; }
    .nhead .btn { margin-left: 0; }
    .ngrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nt { padding: 16px 14px; }
    .nt .nk { white-space: normal; }
    .nt .nv { font-size: 38px; }
    .nt.hero .nv { font-size: 48px; }
    .nt.hero { grid-column: 1 / -1; }
    .cp { height: 420px; }
    .ways { grid-template-columns: minmax(0, 1fr); }
    .way { height: 420px; border-right: 0; border-bottom: 1px solid #4a3b29; }
    .side2 { padding: 22px; min-height: 0; }
    .side2.eu { padding-left: 22px; }
    .side2.cn { padding-right: 22px; }
    .wpn { grid-template-columns: 120px 1fr; font-size: 13.5px; }
    .disc { padding: 24px; }
    .close { height: auto; padding: 48px 0; }
    .close .h1 { font-size: 32px; }
  }
}
@media (max-width: 420px) {
  .v3 .home .board { grid-template-columns: minmax(0, 1fr); }
}

/* Home before the closed beta (phase alpha): countdown, the three phases, get ready, sleeping cities. */
.v3 .home {
  .sm.one { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .sh0 { position: relative; height: 75vh; height: 75svh; min-height: 860px; overflow: hidden; }
  .sh0 > .hbg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
  .sh0 .fog { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 46%, rgba(13, 11, 8, .25) 0%, rgba(13, 11, 8, .75) 55%, #0f0d0a 100%); }
  .sh0 .in { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 18px; padding: 0 var(--pad) 30px; }
  .cdn { display: flex; gap: 14px; align-items: flex-start; }
  .cdn .u { width: 132px; padding: 18px 0 14px; border-radius: 18px; background: rgba(18, 15, 11, .88); border: 1px solid #6b5636; display: flex; flex-direction: column; align-items: center; gap: 4px; box-shadow: 0 20px 50px rgba(0, 0, 0, .5); }
  .cdn .u b { font-size: 64px; font-weight: 600; letter-spacing: -2px; line-height: 1; color: #f1e9d8; font-variant-numeric: tabular-nums; }
  .cdn .u span { font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--tx3); }
  .cdn .col2 { font-size: 52px; font-weight: 300; color: #6b5636; padding-top: 18px; }
  .ilink { font-size: 14px; color: var(--tx2); }
  .ilink b { color: var(--gold2); font-weight: 600; }
  /* The road ahead: three phase cards, the current one lit (owner redesign, 2026-10-29) */
  .rmh { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; margin-bottom: 30px; }
  .rmap { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .rm { display: flex; flex-direction: column; gap: 10px; padding: 26px 26px 28px; border-radius: 16px; background: rgba(255, 255, 255, .02); box-shadow: 0 0 0 1px #2e261b; opacity: .7; }
  .rm b { font-size: 24px; font-weight: 600; letter-spacing: -.3px; color: #f1e9d8; }
  .rm .p { font-size: 15px; }
  .rm .btn { align-self: flex-start; margin-top: 6px; }
  .rmt { align-self: flex-start; font-size: 11.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; background: #1f1912; color: #9a8b72; box-shadow: 0 0 0 1px #3a2f22; white-space: nowrap; }
  .rm.on { opacity: 1; }
  .rm.on .rmt { background: #1c2919; color: #a8c99a; box-shadow: 0 0 0 1px #46633c; }
  .rm.next { opacity: 1; background: linear-gradient(180deg, #2a2117, #17130e); box-shadow: 0 0 0 1px #8a6d3b, 0 24px 50px rgba(0, 0, 0, .4); }
  .rm.next .rmt { background: #3a2d17; color: #e6cb92; box-shadow: 0 0 0 1px #8a6d3b; }
  .phases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; position: relative; }
  .phases::before { content: ""; position: absolute; left: 16.6%; right: 16.6%; top: 28px; height: 3px; background: linear-gradient(90deg, #c9a96a 0 25%, #2a2218 25%); }
  .pz { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 0 24px; position: relative; }
  .pz b { font-size: 18px; font-weight: 600; }
  .pz .p { font-size: 14.5px; }
  .pz .dot { width: 58px; height: 58px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #16120d; box-shadow: 0 0 0 3px #4a3b29; font-weight: 700; font-size: 18px; color: #6f6450; }
  .pz.on .dot { background: linear-gradient(#e6cb92, #c4a160); color: #1b140b; box-shadow: 0 0 0 6px rgba(230, 203, 146, .18); }
  .pz.next .dot { box-shadow: 0 0 0 3px #c9a96a; color: #e6cb92; }
  .ready { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
  .rd2 { display: flex; flex-direction: column; gap: 10px; padding: 22px; position: relative; }
  .rd2 .ck { position: absolute; right: 18px; top: 18px; width: 26px; height: 26px; border-radius: 50%; border: 2px dashed #4a3b29; }
  .cp.zz > img { filter: grayscale(.7) brightness(.55); }
  .cp .lock { position: absolute; right: 18px; top: 18px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; background: rgba(10, 8, 6, .8); border: 1px solid #4a3b29; display: flex; align-items: center; justify-content: center; color: #9d8d6f; }
}
@media (max-width: 1200px) {
  .v3 .home .ready { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .v3 .home {
    .sh0 { min-height: 760px; }
    .sh0 .in { gap: 14px; }
    .cdn { gap: 6px; }
    .cdn .u { width: 68px; padding: 12px 0 10px; border-radius: 14px; }
    .cdn .u b { font-size: 32px; letter-spacing: -1px; }
    .cdn .u span { font-size: 9.5px; letter-spacing: 1px; }
    .cdn .col2 { font-size: 26px; padding-top: 12px; }
    .phases { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .rmap { grid-template-columns: minmax(0, 1fr); }
    .phases::before { display: none; }
    .ready { grid-template-columns: minmax(0, 1fr); }
  }
}
