/* CURRENT_LIVE_LOSSLESS_PNG_V1 refinements: these intentionally come after
   the recovered historical stylesheet so normal homepage behaviour remains
   in the real DOM while the fixture can pin the observed marquee phase. */
.home-ticker .home-market-card{display:block;width:320px;height:70px;padding:10px 0 12px;box-sizing:border-box;text-align:center}
.home-ticker{box-sizing:border-box;background:#000;border:0;border-top:1px solid #2c2c3e}
html[data-xm-visual-fixture="home-current"] .home-ticker>div{transform:translateX(-2236.667px)}
.home-ticker .home-market-card b{display:block;height:27px;color:#fff;font:400 20px/normal Avenir,Helvetica,Arial,sans-serif}
.home-market-price{height:22px;display:flex;align-items:center;justify-content:center;white-space:nowrap}
.home-ticker .home-market-card .home-market-price span{padding-right:5px;font:400 16px/normal Avenir,Helvetica,Arial,sans-serif}
.home-ticker .home-market-card .home-market-price small{font:400 14px/normal Avenir,Helvetica,Arial,sans-serif}
.home-market-price i{display:inline-block;width:14px;height:14px;margin-left:4px;position:relative}
.home-market-price i:before{content:"";position:absolute;left:3px;top:2px;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:6px solid currentColor}
.home-ticker .home-market-card.positive .home-market-price{color:var(--brand-accent,#00F0FF)}.home-ticker .home-market-card.negative .home-market-price{color:#e95463}
.home-ticker .home-market-card.positive span,.home-ticker .home-market-card.positive small{color:var(--brand-accent,#00F0FF)}.home-ticker .home-market-card.negative span,.home-ticker .home-market-card.negative small{color:#e95463}
.desktop-home{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
/* Homepage is document-scrolled in CURRENT LIVE.  Keep this scoped to the
   public home route so a fixed-height business workspace cannot accidentally
   make the long recovered continuation unreachable. */
html:has(.desktop-home),body:has(.desktop-home){height:auto;min-height:100%;overflow-x:hidden!important;overflow-y:auto!important}
.desktop-home{min-height:100vh;overflow:visible}

/* Batch 3 P1-015: the desktop entry must remain a usable responsive portal
   below its reference capture width.  Keep the dense desktop composition at
   wide sizes, but remove the historic 1200px floor for the home route and
   reflow its navigation, hero and news cards before they can create document
   overflow.  Trading-specific fixed grids are intentionally not changed here. */
@media (max-width:1100px){
  html:has(.desktop-home),body:has(.desktop-home){min-width:0!important}
  .desktop-home{min-width:0!important}
  .desktop-home .home-header{height:auto;min-height:60px;flex-wrap:wrap;gap:10px;padding:10px 16px;white-space:normal}
  .desktop-home .home-brand{flex:none}.desktop-home .home-nav{order:3;width:100%;margin:0;gap:8px;overflow-x:auto;padding:4px 0 2px;font-size:13px;scrollbar-width:thin}
  .desktop-home .home-nav>*{flex:none}.desktop-home .home-nav-popover-wrap:nth-child(2) .home-nav-menu{margin-inline:0}
  .desktop-home .home-session{min-width:0;margin-left:auto}.desktop-home .home-session>[data-home-login]{margin-right:12px}.desktop-home .home-session .home-register{margin-right:10px}
  .desktop-home .home-hero{height:auto;min-height:640px;padding:112px 20px 56px}.desktop-home .home-hero-copy{position:relative;top:auto;left:auto;width:min(100%,650px);transform:none;margin:0 auto}
  .desktop-home .home-hero-auth{width:min(100%,529px);height:auto;flex-wrap:wrap;gap:12px;justify-content:center}.desktop-home .home-hero-auth input{flex:1 1 240px;max-width:100%}.desktop-home .home-hero-auth button{flex:1 1 170px;max-width:100%}
  .desktop-home .home-stats{width:min(100%,520px);gap:18px}.desktop-home .home-float{opacity:.42}.desktop-home .home-float-xrp,.desktop-home .home-float-litecoin{display:none}
  .desktop-home .home-home-news{height:auto;min-height:0;padding:24px 16px}.desktop-home .home-home-news>div{display:grid;width:100%;height:auto;margin:0;padding:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.desktop-home .home-home-news a{width:auto;min-width:0;height:230px}
}
@media (max-width:560px){
  .desktop-home .home-header{padding-inline:12px}.desktop-home .home-brand,.desktop-home .home-brand img{width:104px;height:42px}.desktop-home .home-session{font-size:12px}.desktop-home .home-session>[data-home-login]{margin-right:7px}.desktop-home .home-session .home-register{width:auto;margin-right:7px;padding-inline:9px}.desktop-home .home-session .terminal-select{width:104px;min-height:38px;padding-inline:9px}
  .desktop-home .home-hero{min-height:600px;padding:86px 14px 38px}.desktop-home .home-hero-copy>p{font-size:14px}.desktop-home .home-hero-auth{margin-top:28px}.desktop-home .home-hero-auth input,.desktop-home .home-hero-auth button{height:48px}.desktop-home .home-stats{grid-template-columns:1fr;gap:16px;margin-top:34px}.desktop-home .home-stats article{border:0}.desktop-home .home-home-news>div{grid-template-columns:1fr}.desktop-home .home-home-news a{height:190px}.desktop-home .home-news-thumb{display:none}
}
/* Runtime safety: Safari and privacy-focused desktop browsers can hold an
   autoplay video at its initial black decode frame.  Keep the source-derived
   0.8s frame visible until the hero video is proven to advance.  This is
   intentionally excluded from the immutable visual-fixture document. */
html:not([data-xm-visual-fixture]) .home-hero{background:#000 url("/assets/brand/bitda/home-hero-fallback.png") center center/cover no-repeat}
html:not([data-xm-visual-fixture]) .home-hero video{opacity:0;transition:opacity .2s ease}
html:not([data-xm-visual-fixture]) .home-hero[data-hero-video-state="playing"] video{opacity:1}
/* The recovered module uses ordinary .big DIVs.  The semantic <b> used by
   the local component otherwise introduces a 700-weight raster mismatch. */
.home-stats b{font-weight:400}
.home-stats article:nth-child(2){transform:translateX(-5px)}
.home-hero-copy{top:285px}
.home-hero-auth input{padding:0 15px;border-color:#7d7d7d;border-radius:4px;background:#3a3a3a;color:#aaa;font:14px/40px Arial,sans-serif}
.home-hero-auth button{border:1px solid #31323f;border-radius:99px;padding:0 20px;font:18px/55px Avenir,Helvetica,Arial,sans-serif}
.home-hero-auth{transform:translateY(-1px)}
/* The source .float wrapper has a 12px line box.  Leaving the browser's
   inherited normal line-height here makes every 80/160/90px glyph wrapper
   two pixels too tall and shifts the observed animation origins. */
.home-float-inner{line-height:12px}

/* The current-live homepage exposes a wide news carousel: 430px cards at a
   fixed 24px rhythm, with its live snapshot already two items into the list. */
.home-home-news{height:450px;padding:0;border-top:1px solid #2c2c3e}
.home-home-news>div{width:max-content;height:300px;margin:60px 0 90px;padding-left:0;gap:23.333333px;animation:home-marquee 90s linear infinite}
.home-home-news:hover>div{animation-play-state:paused}
.home-home-news a{text-align:center}
.home-home-news[data-home-news-rich="true"] a>*{text-align:center}
@media (prefers-reduced-motion:reduce){.home-ticker>div,.home-home-news>div{animation:none}}
.home-home-news a{width:430px;min-width:430px;height:300px;padding:17px 20px 15px;border-radius:18px;background:#0d0e0f}
.home-home-news time{font-size:12px;margin-bottom:28px}
.home-home-news b{font-size:14px}
.home-home-news[data-home-news-rich="true"] a{display:grid;grid-template-columns:minmax(0,1fr) 132px;grid-template-rows:auto auto 1fr;column-gap:18px;overflow:hidden}
.home-home-news[data-home-news-rich="true"] time,.home-home-news[data-home-news-rich="true"] b{grid-column:1}
.home-home-news[data-home-news-rich="true"] time{margin-bottom:12px}
.home-home-news[data-home-news-rich="true"] b{font-size:16px;line-height:1.4}
.home-news-copy{grid-column:1;display:flex;min-width:0;flex-direction:column;justify-content:space-between;padding-top:18px}
.home-news-copy em{display:-webkit-box;overflow:hidden;color:#aab0b8;font-size:13px;font-style:normal;line-height:1.7;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.home-news-copy i{color:#00e3f2;font-size:12px;font-style:normal}
.home-news-thumb{grid-column:2;grid-row:1/4;overflow:hidden;border-radius:12px;background:#070b10}
.home-news-thumb img{width:100%;height:100%;object-fit:cover;opacity:.8}
html[data-xm-visual-fixture="home-current"] .home-home-news>div{animation:none!important;transform:none}

/* Live header measured at 1920: base navigation rhythm is 60px from the logo
   and 25px between controls; the anonymous login occupies its native slot. */
.home-nav{margin-left:60px;gap:25px}
@media (min-width:1600px){.home-nav{gap:28px;transform:translateY(-1px)}}
.home-session>[data-home-login]{margin-right:28px}
.home-nav-menu:after{width:0;height:0;margin-left:10px;background:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #eee;vertical-align:middle}
.home-nav-popover-wrap{position:relative;display:inline-flex;align-items:center;flex:none;height:100%}
.home-nav-popover-wrap .home-nav-menu{display:inline-flex;align-items:center;padding:0;border:0;background:transparent;color:#fff;font:inherit;line-height:inherit;white-space:nowrap;cursor:pointer}
.home-nav-popover-wrap:nth-child(2) .home-nav-menu{margin-left:-25px;margin-right:-25px}
.home-nav-popover{position:absolute;z-index:30;top:41px;left:-13px;display:grid;min-width:150px;padding:6px 0;border:1px solid rgba(93,115,132,.72);border-radius:3px;background:#0c1018;box-shadow:0 12px 28px rgba(0,0,0,.48)}
.home-nav-popover[hidden]{display:none}
.home-nav-popover a{display:flex!important;align-items:center;min-height:37px;padding:0 15px;color:#e7eef5!important;font-size:13px;line-height:1;text-decoration:none;white-space:nowrap}
.home-nav-popover a:hover,.home-nav-popover a:focus-visible{background:#182333;color:var(--brand-accent,#00F0FF)!important;outline:0}
.home-nav a[aria-current="page"],.home-nav button[aria-current="page"]{color:var(--brand-accent,#00F0FF)!important}
.home-nav button:focus-visible{outline:1px solid var(--brand-accent,#00F0FF);outline-offset:4px}
@media (max-width:1599px){
  .home-nav{transform:translateY(-1px)}
  .home-ticker .home-market-card{width:calc((100vw - 2px) / 6);padding:10px 0 12px}
  html[data-xm-visual-fixture="home-current"] .home-ticker>div{transform:translateX(-1674.333px)}
  .home-session>[data-home-login]{margin-right:56px}
  .home-nav-menu:after{width:0;height:0;margin-left:10px;background:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #eee;vertical-align:middle}
}

@media (min-width:1600px){
  /* CURRENT LIVE V1 desktop navbar and news-card metrics, read from the
     frozen page's actual 1920px DOM rather than inferred from the bitmap. */
  .home-header{background:#060609}
  .home-nav{gap:25px}
  .home-nav a{color:#fff}
  .home-nav .home-nav-menu{width:73px;box-sizing:border-box}
  .home-nav .home-nav-menu:nth-child(2){margin-left:-25px;margin-right:-25px}
  .home-session>[data-home-login]{width:64px;height:26px;box-sizing:border-box;margin-right:10px;padding:0 20px;color:#fff!important;font:12px/26px Avenir,Helvetica,Arial,sans-serif}
  .home-session .home-register{width:64px;margin-right:29px;font:12px/26px Avenir,Helvetica,Arial,sans-serif}
  .home-home-news a{padding:16px 20px 15px;color:#fff}
  .home-home-news time{color:#878c90;font:12px/16px Avenir,Helvetica,Arial,sans-serif}
  .home-home-news b{display:block;color:#fff;font:400 14px/20px Avenir,Helvetica,Arial,sans-serif}
}

/* CURRENT LIVE desktop public/auth shell.  These rules intentionally target
   the healthy DOM as well as screenshot runs; visual fixtures may pin data,
   but do not substitute a different page tree. */
/* The main desktop stylesheet has a 1200px floor for reference-style market
   pages. Public authentication is a real form, so it must explicitly opt out
   of that document floor on a laptop or tablet window instead of clipping the
   form to the right. */
html:has(.desktop-source-auth),body.desktop-auth-page{margin:0;min-width:0;overflow-x:hidden;overflow-y:auto;background:#000}
.desktop-source-auth{display:block;min-width:0;min-height:908px;overflow-x:clip;background:#000;color:#fff;font-family:Avenir,Helvetica,Arial,sans-serif}
.desktop-source-auth:before{content:"";position:absolute;z-index:0;top:60px;left:0;width:100%;height:848px;background:url("/assets/stage11d-current-live-v1/www.xmtradexc.com/static/img/cm-bg.14fb47b.png") center/100% 100% no-repeat;pointer-events:none}
.desktop-source-auth .desktop-auth-header{position:relative;z-index:4;gap:0;padding:0 30px;border:0;backdrop-filter:none}
.desktop-source-auth .desktop-auth-header .home-session{margin-right:-10px;gap:0}
.desktop-source-auth .desktop-auth-header .home-session>[href="#/login"]{box-sizing:border-box;width:64px;height:26px;margin-right:10px;padding:0;color:#fff!important;text-align:center;font:12px/26px Avenir,Helvetica,Arial,sans-serif}
.desktop-source-auth .desktop-auth-header .home-session .home-register{box-sizing:border-box;width:64px;height:26px;margin-right:29px;padding:0;border-radius:0;color:#fff!important;font:12px/26px Avenir,Helvetica,Arial,sans-serif;text-align:center}
.desktop-source-auth .desktop-auth-stage{position:relative;z-index:2;width:1500px;margin:85px auto 0;padding:0;display:flex;align-items:flex-start;justify-content:flex-start;gap:253px}
.desktop-source-auth .desktop-auth-art{position:relative;flex:0 0 544px;width:544px;height:576px}
.desktop-source-auth .desktop-auth-art .left_bg{display:none}
.desktop-source-auth .desktop-auth-art .login_bg,.desktop-source-auth .desktop-auth-art img{position:relative;display:block;width:544px;height:576px;object-fit:contain}
.desktop-source-auth .desktop-auth-card{flex:0 0 700px;width:700px;min-width:0;max-width:700px;margin:0;padding:8px 0 0;border:0;border-radius:0;background:transparent;box-shadow:none}
.desktop-source-auth .desktop-auth-card h1{margin:0 0 38px;color:var(--brand-accent,#00F0FF);font-size:40px;line-height:52px;font-weight:500}
.desktop-source-auth .desktop-auth-tab{display:inline-block;margin-bottom:7px;padding-bottom:9px;border-bottom:2px solid var(--brand-accent,#00F0FF);color:var(--brand-accent,#00F0FF);font-size:14px}
.desktop-source-auth .desktop-auth-card form{display:block}
.desktop-source-auth .desktop-auth-field{box-sizing:border-box;display:block;height:50px;margin:0 0 20px;border:1px solid #2c2c3e;background:#000;color:#fff}
.desktop-source-auth .desktop-auth-field input{box-sizing:border-box;display:block;width:100%;height:48px;padding:0 17px;border:0;border-radius:0;background:transparent;color:#fff;font:14px/48px Avenir,Helvetica,Arial,sans-serif;outline:0}
.desktop-source-auth .desktop-auth-field input::placeholder{color:#7e838c}
.desktop-source-auth .desktop-auth-field input:focus{border-color:var(--brand-accent,#00F0FF);box-shadow:0 0 0 1px rgba(0,240,255,.2)}
.desktop-source-auth .desktop-auth-field:nth-of-type(2){margin-bottom:10px}.desktop-source-auth .desktop-auth-options{height:40px;display:flex;align-items:flex-start;justify-content:space-between;color:var(--brand-accent,#00F0FF);font-size:13px}
.desktop-source-auth .desktop-remember{display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;color:var(--brand-accent,#00F0FF);font:inherit;cursor:pointer}
.desktop-source-auth .desktop-remember i{box-sizing:border-box;width:14px;height:14px;border:1px solid var(--brand-accent,#00F0FF);color:#000;background:var(--brand-accent,#00F0FF);font:700 11px/12px Arial,sans-serif;text-align:center}
.desktop-source-auth .desktop-auth-submit,.desktop-source-auth .desktop-auth-demo{box-sizing:border-box;display:block;width:100%;height:49px;border:0;border-radius:5px;text-align:center;font:18px/49px Avenir,Helvetica,Arial,sans-serif}
.desktop-source-auth .desktop-auth-submit{margin-top:20px;background:var(--brand-accent,#00F0FF);color:#fff;cursor:pointer}
.desktop-source-auth .desktop-auth-demo{margin-top:40px;border:1px solid #fff;background:transparent;color:#fff}
.desktop-source-auth #status,.desktop-source-auth [data-state]{min-height:22px;margin:12px 0 0;color:#ff7b86;font-size:13px}
.desktop-source-auth .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.desktop-forgot-page .desktop-auth-card h1{margin-bottom:34px;color:var(--brand-accent,#00F0FF)}
.desktop-forgot-page .desktop-auth-field{margin-bottom:22px}
.desktop-forgot-page .desktop-auth-code{display:flex}
.desktop-forgot-page .desktop-auth-code input{flex:1;min-width:0}
.desktop-forgot-page .desktop-auth-code button{flex:0 0 140px;border:1px solid #303442;border-left:0;background:#10141b;color:#cbd3df;cursor:pointer}
.desktop-forgot-page .desktop-auth-submit{margin-top:40px}
.desktop-reset-page .desktop-auth-submit{margin-top:20px}
.desktop-reset-page .desktop-auth-back{display:block;width:max-content;margin:18px auto 0;color:var(--brand-accent,#00F0FF);font-size:13px;text-decoration:none}
.desktop-reset-page .desktop-auth-back:hover,.desktop-reset-page .desktop-auth-back:focus-visible{text-decoration:underline}
@media (min-width:1600px){
  .desktop-source-auth .desktop-auth-stage{width:1500px;gap:253px}
}
@media (max-width:1599px){
  /* The live page has a 1500px composition, but the healthy portal must not
     crop an interactive field when a real desktop window is narrower. Keep
     the same art/form hierarchy and let only their free space contract. */
  .desktop-source-auth .desktop-auth-stage{width:calc(100% - 60px);max-width:1500px;margin:85px auto 0;gap:clamp(52px,12vw,223px)}
  .desktop-source-auth .desktop-auth-art{flex:0 1 clamp(390px,36vw,544px);width:clamp(390px,36vw,544px);height:auto;aspect-ratio:544 / 576;transform:none}
  .desktop-source-auth .desktop-auth-art .login_bg,.desktop-source-auth .desktop-auth-art img{width:100%;height:100%}
  .desktop-source-auth .desktop-auth-card{flex:1 1 0;width:auto;min-width:0;max-width:700px}
}
@media (max-width:1199px){
  .desktop-source-auth .desktop-auth-header{padding-inline:18px}.desktop-source-auth .desktop-auth-header nav{gap:14px;font-size:12px}
  .desktop-source-auth .desktop-auth-stage{width:calc(100% - 40px);gap:clamp(32px,8vw,96px)}
  .desktop-source-auth .desktop-auth-art{flex-basis:clamp(330px,36vw,432px);width:clamp(330px,36vw,432px)}
  .desktop-source-auth .desktop-auth-card{max-width:none}
}

/* Recovered CURRENT LIVE homepage continuation below the frozen hero, ticker
   and news carousel.  It is deliberately long and normally scrollable. */
.home-introduce{box-sizing:border-box;width:1360px;max-width:calc(100vw - 80px);height:544px;margin:50px auto 120px;background:url("/assets/live-home-current-v1/7cf9c20daeb0a14f.png") center/100% 100% no-repeat;position:relative}
.home-introduce .liquid-metal{position:absolute;z-index:1;bottom:125px;left:48px;width:100px;height:100px}
.home-introduce .p1{position:absolute;z-index:2;top:73px;left:50px;width:788px;margin:0;color:#fff;font-size:50px;line-height:60px;font-weight:400}
.home-introduce .p1 span{display:block;color:var(--brand-accent,#00F0FF);text-align:center}
.home-introduce>div{position:absolute;bottom:120px;height:100px;display:flex;flex-direction:column;align-items:flex-start}
.home-introduce .d1{left:263px}.home-introduce .d2{left:600px}.home-introduce .d3{right:60px}
.home-introduce>div span{font-size:78px;line-height:80px;background-clip:text!important;-webkit-background-clip:text!important;color:transparent}
.home-introduce .d1 span{background:linear-gradient(90deg,#c979dc 49.79%,#3b0086)}
.home-introduce .d2 span{background:linear-gradient(90deg,#10e28e 49.79%,#073427)}
.home-introduce .d3 span{background:linear-gradient(90deg,var(--brand-accent,#00F0FF) 49.79%,#19007d)}
.home-introduce>div i{color:#fff;font-size:20px;line-height:35px;font-style:italic}
.home-source-mission{width:1360px;max-width:calc(100vw - 80px);margin:0 auto;text-align:center}
.home-source-mission>.topic{margin:0 0 38px;color:#fff;font-size:48px;font-weight:400}
.home-source-mission>p{width:1000px;max-width:100%;margin:0 auto;color:#cbd9da;font-size:22px;line-height:1.45}
.home-charity-section,.home-source-partner-strip{width:100%}
.charity-bg{box-sizing:border-box;width:1260px;max-width:calc(100vw - 120px);height:500px;margin:60px auto 40px;padding:60px;display:flex;flex-direction:column;position:relative;overflow:hidden;border-radius:18px;background:url("/assets/live-home-current-v1/ba0643126a54e327.png") center/cover no-repeat}
.charity-bg .video-bg{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover}
.charity-bg .group{position:relative;z-index:2;display:flex;justify-content:space-between;padding:0 80px;margin-bottom:70px}
.charity-bg .group span{display:inline-flex;padding:13px 22px;border:1px solid #fff;border-radius:99px;color:#fff;font-size:17px;white-space:nowrap}
.charity-bg .row{position:relative;z-index:2;display:flex;justify-content:space-between;padding:0 80px;text-align:left}
.charity-bg .row article{display:flex;flex-direction:column;min-width:200px}
.charity-bg .row b{font-size:40px;line-height:50px;text-shadow:0 2px 5px #000}
.charity-bg .row article:nth-child(1) b{color:#ff9f38}.charity-bg .row article:nth-child(2) b{color:#ff4f84}.charity-bg .row article:nth-child(3) b{color:#00e8ff}
.charity-bg .row span{color:#fff;font-size:16px}
.partner-list{display:block;width:1260px;max-width:calc(100vw - 120px);height:auto;margin:0 auto 120px;opacity:.55}
.partners{width:1360px;max-width:calc(100vw - 80px);margin:0 auto;text-align:center}
.partners .big{margin:0 0 38px;color:#fff;font-size:48px;font-weight:400}
.partners .desc{width:1000px;max-width:100%;margin:0 auto;color:#cbd9da;font-size:22px;line-height:1.45}
.safe-title-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;width:100%;margin:90px auto 110px;text-align:left}
.safe-title-list article{min-height:260px;padding:34px;border:1px solid rgba(0,240,255,.2);border-radius:16px;background:linear-gradient(145deg,rgba(12,31,40,.88),rgba(5,8,13,.94))}
.safe-title-list img{width:72px;height:72px;object-fit:contain}.safe-title-list h3{margin:22px 0 12px;font-size:22px}.safe-title-list p{margin:0;color:#9fb0ba;font-size:15px;line-height:1.7}
.home-source-cta{width:1360px;max-width:calc(100vw - 80px);margin:0 auto 100px;padding:70px;box-sizing:border-box;border-radius:20px;background:radial-gradient(circle at 15% 50%,rgba(0,240,255,.17),transparent 38%),linear-gradient(110deg,#09131b,#07080c);text-align:center}
.home-source-cta h2{margin:0;font-size:46px}.home-source-cta>p{color:#91a3b0;font-size:19px}
.home-source-cta>div{display:flex;justify-content:center;gap:120px;margin:48px 0}.home-source-cta article{display:flex;flex-direction:column}.home-source-cta article b{color:var(--brand-accent,#00F0FF);font-size:42px}.home-source-cta article span{color:#c7d0d7}
.home-source-cta nav{display:flex;justify-content:center;gap:18px}.home-source-cta nav a{min-width:170px;padding:14px 26px;border:1px solid var(--brand-accent,#00F0FF);border-radius:28px}.home-source-cta nav a:first-child{background:var(--brand-accent,#00F0FF);color:#000}
@media(max-width:1500px){
  .home-introduce .p1{font-size:44px}.home-introduce .d1{left:230px}.home-introduce .d2{left:565px}
  .charity-bg .group,.charity-bg .row{padding-left:40px;padding-right:40px}
  .home-source-mission>p,.partners .desc{font-size:19px}
}
.desktop-source-auth button.desktop-auth-demo{cursor:pointer}
.home-demo-badge{margin-inline-start:7px;padding:2px 6px;border:1px solid rgba(110,236,252,.48);border-radius:999px;color:var(--brand-accent,#00F0FF);font-size:10px;font-style:normal}
.home-demo-reset-status{max-width:240px;margin:6px 12px 10px;color:#9ba1a9;font-size:12px;line-height:1.45;white-space:normal}.home-demo-reset-status:empty{display:none}.home-demo-reset-status[data-result="success"]{color:var(--brand-accent,#00F0FF)}.home-demo-reset-status[data-result="failed"],.home-demo-reset-status[data-result="unknown"]{color:#e95463}
.demo-account-page{min-height:100vh;background:#070b13;color:#eaf2ff}
.demo-account-layout{box-sizing:border-box;width:min(1180px,calc(100% - 48px));margin:48px auto 96px}
.demo-account-layout>header{display:flex;align-items:flex-end;justify-content:space-between;padding:30px 32px;border:1px solid #1e3448;border-radius:12px;background:linear-gradient(135deg,#0d1e2c,#0a131f)}
.demo-account-layout>header span{color:#63dfed;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.demo-account-layout>header h1{margin:8px 0 0;font-size:30px}
.demo-account-layout>header>strong{font-size:34px;color:#fff}
.demo-account-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}
.demo-account-tabs a,.demo-restricted-card a{padding:10px 14px;border:1px solid #24445c;border-radius:7px;background:#0d1927;color:#c8d8e8;text-decoration:none}
.demo-account-tabs a:hover,.demo-account-tabs a:focus-visible,.demo-restricted-card a:hover,.demo-restricted-card a:focus-visible{border-color:#5fe4f2;color:#5fe4f2}
.demo-balance-card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;overflow:hidden;margin:0 0 24px;border:1px solid #1e3448;border-radius:10px;background:#1e3448}
.demo-balance-card>div{min-width:0;padding:22px;background:#0c1724}
.demo-balance-card span{display:block;margin-bottom:9px;color:#7f94a8}
.demo-balance-card strong{display:block;overflow-wrap:anywhere;font-size:18px}
.demo-assets-table{overflow:auto;border:1px solid #1e3448;border-radius:10px;background:#0c1724}
.demo-assets-table table{width:100%;border-collapse:collapse}
.demo-assets-table th,.demo-assets-table td{padding:14px 16px;border-bottom:1px solid #172a3a;text-align:start}
.demo-assets-table th{color:#7f94a8;font-weight:500}
.demo-assets-table tr:last-child td{border-bottom:0}
.demo-transfer-form{display:grid;gap:18px;padding:28px;border:1px solid #1e3448;border-radius:10px;background:#0c1724}
.demo-transfer-form label{display:grid;gap:8px;color:#9db0c2}
.demo-transfer-form input,.demo-transfer-form select,.demo-transfer-form textarea{box-sizing:border-box;width:100%;min-height:46px;padding:11px 13px;border:1px solid #2a4155;border-radius:6px;background:#09121d;color:#fff}
.demo-transfer-form textarea{min-height:140px;resize:vertical}
.demo-transfer-form button{min-height:46px;border:0;border-radius:6px;background:#5fe4f2;color:#06111b;font-weight:700;cursor:pointer}
.demo-derivative-market{display:grid;grid-template-columns:minmax(180px,.28fr) 1fr;gap:1px;overflow:hidden;margin:24px 0;border:1px solid #1e3448;border-radius:10px;background:#1e3448}.demo-derivative-market>div{min-width:0;padding:20px;background:#0c1724}.demo-derivative-market>div:first-child{display:grid;align-content:center;gap:12px}.demo-derivative-market b{color:#9db0c2}.demo-derivative-market strong{font-size:28px}.demo-derivative-market .kline-head{margin:0}.demo-derivative-grid{display:grid;grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);gap:24px}.demo-order-sides{display:grid;grid-template-columns:1fr 1fr;gap:10px}.demo-order-sides button{background:#102236;color:#c8d8e8;border:1px solid #31506a}.demo-order-sides button.active{background:#0d5962;color:#e9ffff;border-color:#5fe4f2}.demo-assets-table button{min-height:32px;padding:5px 10px;border:1px solid #406078;border-radius:5px;background:#102236;color:#d9f4ff;cursor:pointer}
.demo-restricted-card{display:grid;gap:18px;justify-items:start;padding:32px;border:1px solid #1e3448;border-radius:10px;background:#0c1724}
.demo-restricted-card strong{font-size:22px}
.demo-safety-note{margin:22px 0 0;color:#91a5b8}
@media(max-width:900px){.demo-account-layout{width:min(100% - 24px,1180px);margin-top:24px}.demo-account-layout>header{align-items:flex-start;flex-direction:column;gap:16px}.demo-balance-card{grid-template-columns:1fr}.demo-derivative-market,.demo-derivative-grid{grid-template-columns:1fr}}

/* ============================================================
   F0 认证页构图修正
   问题一（负责人反馈“像把一张图片贴在左侧”）：插画用 object-fit:contain
   放进 544x576 容器，而原图 740x850 比例不同，四周留白形成明显的矩形硬边，
   看起来就是一张贴上去的照片。改为 cover 填满 + 边缘渐隐遮罩，让插画融进
   整页背景，而不是一个独立图块。
   问题二（表单被裁切）：卡片在窄屏仍是 flex:0 0 700px 固定宽，
   art + gap + 700 会超出视口。改为可收缩，并在更窄时回退单列。
   ============================================================ */
.desktop-source-auth .desktop-auth-art .login_bg,
.desktop-source-auth .desktop-auth-art img{
  object-fit:cover;object-position:center;
  -webkit-mask-image:radial-gradient(120% 105% at 50% 45%,#000 58%,rgba(0,0,0,.55) 80%,transparent 100%);
  mask-image:radial-gradient(120% 105% at 50% 45%,#000 58%,rgba(0,0,0,.55) 80%,transparent 100%);
}
@media (max-width:1599px){
  /* 让卡片跟随视口收缩，不再固定 700px 溢出 */
  .desktop-source-auth .desktop-auth-card{flex:1 1 auto;min-width:0;max-width:700px}
}
@media (max-width:1199px){
  .desktop-source-auth .desktop-auth-card{flex:1 1 auto;min-width:0;max-width:none}
}
@media (max-width:980px){
  /* 单列回退：插画退为顶部装饰，表单占满可用宽度，杜绝横向裁切 */
  .desktop-source-auth .desktop-auth-stage{width:calc(100% - 32px);margin-top:48px;flex-direction:column;align-items:stretch;gap:24px}
  .desktop-source-auth .desktop-auth-art{flex:0 0 auto;width:100%;height:min(38vh,260px)}
  .desktop-source-auth .desktop-auth-art .login_bg,
  .desktop-source-auth .desktop-auth-art img{width:100%;height:100%}
  .desktop-source-auth .desktop-auth-card{width:100%;max-width:none;padding-top:0}
  .desktop-source-auth .desktop-auth-card h1{font-size:30px;line-height:40px;margin-bottom:26px}
}
/* A1: 首页跑马灯的内容性质标签。承载的是平台公告而非持续新闻源，
   显式标注避免被读成新闻流。
   注：这里原来给 .home-home-news 设了 display:flex，本意只是让标签和轨道
   并排，实际后果是把整个轮播容器改成了 flex 横排 —— 标签被挤在最左、
   轨道被当成单个 flex 项。标签改为绝对定位，容器恢复原样。 */
.home-home-news{position:relative}
.home-news-kind{position:absolute;top:14px;left:max(16px,7.5%);z-index:2;padding:2px 10px;border-radius:3px;background:rgba(0,240,255,.14);color:var(--brand-accent,#00F0FF);font-size:11px;font-weight:500;letter-spacing:.5px;white-space:nowrap}

/* A close is an explicit, price-backed simulated settlement.  Keep its input
   compact inside the order row without breaking the shared dark terminal. */
.demo-close-price{display:grid;gap:4px;min-width:118px;color:#7f94a8;font-size:11px}.demo-close-price input{box-sizing:border-box;width:100%;min-height:32px;padding:5px 7px;border:1px solid #2a4155;border-radius:5px;background:#09121d;color:#fff}

/* ============================================================
   F2 桌面认证页：≤980 单列回退的贴图感
   ≥980 双列布局实测健康（无裁切、无横向溢出、边缘渐隐遮罩生效）。
   问题只在单列回退：插画原图是 740×850 竖版，被塞进 928×260 的横条里，
   cover 只能裁出中间一条，两侧渐隐边界反而变成两道可见接缝——正是
   "把一张图贴上去" 的观感来源。
   这是纯装饰元素，窄屏下直接不渲染：表单成为唯一焦点，没有接缝，也不
   需要为了填版面而引入任何新图形或 Logo。
   ============================================================ */
@media (max-width:980px){
  .desktop-source-auth .desktop-auth-art{display:none}
  .desktop-source-auth .desktop-auth-stage{margin-top:32px}
}


/* ============================================================
   首页新闻轮播与行情跑马灯的收尾修正
   ------------------------------------------------------------
   新闻卡此前是 430×300，但右侧 132px 的缩略图列早已 display:none，
   实际内容只占顶部约 100px —— 一张卡有三分之二是空的，文字贴在顶边，
   看起来既没居中也不像轮播。这里把卡高收到内容实际需要的尺寸，并让
   文案在卡内垂直居中；容器高度同步收窄，不再压住下方版块。

   跑马灯节奏：原 60 秒跑完 5760px（96 px/秒）偏快，读不完一屏就滑走了。
   放慢到 150 秒（约 38 px/秒）；新闻轨道同步放慢到 120 秒。
   两者都保留 hover 暂停。
   ============================================================ */
.home-home-news{height:auto;padding:44px 0 40px}
.home-home-news>div{height:auto;margin:0;padding:0 max(16px,7.5%);animation-duration:120s}
.home-home-news a{height:auto;min-height:132px;align-content:center}
.home-home-news[data-home-news-rich="true"] a{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;align-content:center}
.home-home-news .home-news-copy{padding-top:10px}
.home-ticker>div{animation-duration:150s}
.home-ticker:hover>div,.home-home-news:hover>div{animation-play-state:paused}

/* ------------------------------------------------------------
   跑马灯与新闻轮播的节奏与居中（第二轮）
   150 秒仍偏快，再放慢到 260 秒（约 22 px/秒，一个币种停留 14 秒左右）。
   新闻轨道 27390px / 120 秒 ≈ 114 px/秒，比跑马灯快三倍，改成 300 秒。

   居中：卡片右侧那列 132px 的缩略图早已 display:none，网格却仍留着两列，
   文案被挤在左上角。缩略图隐藏时收成单列，并让内容在卡内水平垂直都居中。
   ------------------------------------------------------------ */
.home-ticker>div{animation-duration:260s}
.home-home-news>div{animation-duration:300s}
.home-home-news[data-home-news-rich="true"] a{
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto auto auto;
  align-content:center;justify-items:center;text-align:center}
.home-home-news[data-home-news-rich="true"] time,
.home-home-news[data-home-news-rich="true"] b{justify-self:center;text-align:center}
.home-home-news .home-news-copy{align-items:center;padding-top:6px;text-align:center}
.home-home-news .home-news-copy em{text-align:center}

/* ------------------------------------------------------------
   新闻卡片栅格：按有没有配图自适应列数
   之前这里踩过一次：栅格模板被后来的规则收成单列，缩略图却仍被
   .home-news-thumb{grid-column:2} 钉在第二列，于是长出一个隐式列吃掉
   372px，文案列被压到 0 宽 —— 卡片里只剩一张图，看不到任何内容。
   现在改成由 :has() 判断：真有配图才开两列，没有就保持单列居中。
   这样以后无论渲染层给不给图，两边都不会再打架。
   ------------------------------------------------------------ */
.home-home-news[data-home-news-rich="true"] a:has(.home-news-thumb){
  grid-template-columns:minmax(0,1fr) 132px;
  grid-template-rows:auto auto 1fr;
  justify-items:start;text-align:left}
.home-home-news[data-home-news-rich="true"] a:has(.home-news-thumb) time,
.home-home-news[data-home-news-rich="true"] a:has(.home-news-thumb) b{justify-self:start;text-align:left}
.home-home-news[data-home-news-rich="true"] a:has(.home-news-thumb) .home-news-copy{align-items:flex-start;text-align:left}
