/* Landing E: "The best Variational Dashboard." over a pixel chart of the real treasury.
   Loaded after the older landing layers and scoped to .le-landing, so it overrides the
   bento rules without touching the dashboard. Dark in both themes on purpose. */
body.v2-landing{padding:0!important;background:#01040b!important}
body.v2-landing .srv2-landing.lb-landing.le-landing{
  display:block!important;height:auto!important;min-height:100dvh!important;overflow:hidden!important;padding:0!important;
  color:#eef4ff!important;font-family:"Geist",system-ui,sans-serif;
  background:radial-gradient(70% 55% at 78% 8%,rgba(40,90,200,.22),transparent 70%),
             radial-gradient(90% 60% at 50% 100%,rgba(29,111,242,.20),transparent 70%),
             linear-gradient(180deg,#040a18 0%,#01040b 55%,#02060f 100%)!important;
}
.le-landing{--le-ink:#eef4ff;--le-sub:#aebbd0;--le-mute:#8291a8;--le-blue:#4c9af8;--le-blue2:#1d6ff2;--le-ice:#bfe0ff;
  --le-mono:"Geist Mono",ui-monospace,monospace;--le-sans:"Geist",system-ui,sans-serif;--le-pad:clamp(16px,5.4vw,88px)}
.le-landing a{color:inherit;text-decoration:none}
/* The landing is dark in both themes, so its text is pinned light even when the light theme recolours the shell. */
.le-landing .le-brand,.le-landing .le-btn{color:var(--le-ink)}
.le-landing .le-btn-hot{color:#fff}
.le-sq{position:absolute;width:30px;height:30px;background:var(--le-blue);z-index:5}
.le-sq.tl{top:0;left:0}.le-sq.tr{top:0;right:0}.le-sq.bl{bottom:0;left:0}.le-sq.br{bottom:0;right:0}
.le-wrap{position:relative;z-index:1;min-height:100dvh;padding:clamp(40px,8vh,86px) var(--le-pad) 0;display:flex;flex-direction:column}

.le-brand{display:flex;align-items:center;gap:12px;font:600 13px/1 var(--le-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--le-ink)}
.le-brand canvas{width:34px;image-rendering:pixelated}
.le-eyebrow{display:flex;align-items:center;gap:10px;margin:clamp(28px,6vh,56px) 0 0;font:400 11.5px/1 var(--le-mono);letter-spacing:.22em;text-transform:uppercase;color:#c6cfdb}
.le-eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--le-blue);box-shadow:0 0 10px var(--le-blue);animation:le-blink 1.6s ease-in-out infinite}
@keyframes le-blink{50%{opacity:.25}}

.le-landing h1.le-title{margin:22px 0 0;font:500 clamp(52px,7.4vw,124px)/.96 var(--le-sans);letter-spacing:-.05em;max-width:10.5em;color:var(--le-ink)}
.le-title .w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .02em .14em;margin-bottom:-.14em}
.le-title .w>span{display:inline-block;transform:translateY(105%);animation:le-rise .9s cubic-bezier(.2,.75,.15,1) forwards;animation-delay:calc(var(--i) * 90ms + 150ms);
  background:linear-gradient(180deg,#f7f9fd 30%,#c3cbd8 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.le-title .w>span.em{background:linear-gradient(100deg,#a9d4ff 0%,var(--le-blue) 30%,#2f5df2 60%,#a9d4ff 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;
  animation:le-rise .9s cubic-bezier(.2,.75,.15,1) forwards,le-flow 5s linear infinite;animation-delay:calc(var(--i) * 90ms + 150ms),0s}
@keyframes le-rise{to{transform:none}}
@keyframes le-flow{to{background-position:-220% 0}}
.le-up{opacity:0;transform:translateY(14px);animation:le-up .8s cubic-bezier(.2,.75,.15,1) forwards;animation-delay:var(--d,0ms)}
@keyframes le-up{to{opacity:1;transform:none}}

.le-meta{display:flex;flex-wrap:wrap;gap:12px 34px;margin-top:26px;align-items:center}
.le-meta p{margin:0;max-width:470px;font:400 clamp(14.5px,1.1vw,16px)/1.6 var(--le-sans);letter-spacing:-.005em;color:var(--le-sub)}
.le-btn{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 20px;border-radius:4px;font:500 15px/1 var(--le-sans);letter-spacing:-.015em;
  color:var(--le-ink);border:1px solid #33405a;background:rgba(10,16,30,.55);cursor:pointer;transition:background .2s,box-shadow .2s,border-color .2s}
.le-btn:hover{border-color:var(--le-blue)}
.le-btn-hot{background:var(--le-blue2);border-color:var(--le-blue2);color:#fff}
.le-btn-hot:hover{background:var(--le-blue);box-shadow:0 10px 40px -10px var(--le-blue)}
.le-btn:focus-visible{outline:2px solid var(--le-blue);outline-offset:3px}

.le-stats{position:absolute;right:var(--le-pad);top:clamp(40px,8vh,86px);display:grid;gap:16px;text-align:right;margin:0}
.le-stats small{display:block;font:400 10.5px/1 var(--le-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--le-mute)}
.le-stats strong{display:block;margin-top:7px;font:500 28px/1 var(--le-sans);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--le-ink)}
.le-stats strong.hot{font-size:46px;background:linear-gradient(180deg,#bfe0ff,var(--le-blue));-webkit-background-clip:text;background-clip:text;color:transparent}

.le-tree{position:relative;flex:1;min-height:440px;margin:0 calc(-1 * var(--le-pad));cursor:pointer}
.le-tree canvas{position:absolute;inset:0;width:100%;height:100%}
.le-tip{position:absolute;pointer-events:none;padding:7px 9px;background:#01040b;border:1px solid var(--le-ice);color:var(--le-ink);font:400 11px/1.5 var(--le-mono);white-space:nowrap;display:none}

@media(max-width:820px){
  .le-stats{position:static;grid-template-columns:repeat(3,1fr);text-align:left;margin-top:26px}
  .le-stats strong{font-size:19px}.le-stats strong.hot{font-size:22px}
  .le-tree{min-height:380px}
}
/* phones: one-line stat labels, buttons on one row, and the paragraph steps aside so the
   chart gets the rest of the first screen instead of starting below the fold */
@media(max-width:600px){
  .le-wrap{padding-top:28px}
  .le-stats{margin-top:22px;gap:10px}
  .le-stats small{font-size:9.5px;letter-spacing:.1em;white-space:nowrap}
  .le-stats .le-wide{display:none}
  .le-eyebrow{margin-top:26px;font-size:10px;letter-spacing:.14em}
  .le-landing h1.le-title{margin-top:14px;font-size:clamp(44px,13.5vw,60px)}
  .le-meta{margin-top:20px;gap:10px;flex-wrap:nowrap}
  .le-meta p{display:none}
  .le-btn{height:44px;padding:0 14px;font-size:14px;white-space:nowrap}
  .le-tree{min-height:300px}
}

/* Annotations belong to the chart: typography, hairlines and small anchor points. */
.le-markers{position:absolute;inset:0;pointer-events:none;z-index:2}
.le-marker{position:absolute;box-sizing:border-box;width:110px;padding:0;text-align:center;color:#e8f4ff;text-shadow:0 2px 12px #01040b,0 0 20px #01040b}
.le-marker strong{display:block;margin:0 0 7px;font:500 clamp(27px,2.8vw,40px)/1 var(--le-sans);letter-spacing:-.055em;color:#e3f2ff}
.le-marker time{display:block;font:400 10px/1.4 var(--le-mono);letter-spacing:.025em;color:#d6e4f5;white-space:nowrap}
.le-marker-launch{width:150px;pointer-events:auto}
.le-marker-launch strong{font:500 14px/1.2 var(--le-sans);letter-spacing:-.01em;color:#e4bf79;margin-bottom:5px}
.le-marker-launch strong:before{content:'✧';margin-right:6px;font-size:12px;color:#e4bf79}
.le-marker-launch time{color:#e9d6ad;font-size:9px}
.le-marker-launch:hover strong{color:#ffe0a4}
.le-marker-launch:focus-visible{outline:1px solid #e4bf79;outline-offset:6px}
.le-tip{z-index:3}
@media(max-width:699px){
  .le-tree{min-height:380px;margin-top:22px}
  .le-marker{width:78px}
  .le-marker strong{font-size:27px;margin-bottom:5px}
  .le-marker time{font-size:8px;letter-spacing:0}
  .le-marker-launch{width:112px}
  .le-marker-launch strong{font-size:12px}
  .le-marker-launch time{font-size:8px}
}

/* Markers follow the animated history, including on replay. */
.le-marker{opacity:0;transform:translateY(8px);transition:opacity .28s ease,transform .28s ease;pointer-events:none!important}
.le-marker.is-reached{opacity:1;transform:translateY(0)}
.le-marker-launch.is-reached{pointer-events:auto!important}
@media(prefers-reduced-motion:reduce){.le-marker{transition:none;transform:none}}

/* Quiet surface texture sits below all text; the glow belongs to the chart. */
body.v2-landing .srv2-landing.lb-landing.le-landing{isolation:isolate}
body.v2-landing .le-landing::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:url("assets/landing-grain.png") repeat;background-size:192px 192px;opacity:.035}
.le-landing .le-tree::before{content:"";position:absolute;inset:-12% -8% -4%;pointer-events:none;background:radial-gradient(ellipse at 68% 72%,rgba(51,109,245,.13),transparent 56%),radial-gradient(ellipse at 35% 100%,rgba(40,87,210,.08),transparent 68%)}
@media(max-width:600px){body.v2-landing .le-landing::after{opacity:.028}.le-landing .le-tree::before{background:radial-gradient(ellipse at 65% 78%,rgba(51,109,245,.11),transparent 62%)}}


/* Give the treasury wave the space previously occupied by the metric panel. */
@media(min-width:821px){
.le-wrap{min-height:max(900px,100dvh)}
.le-wrap>.le-brand,.le-wrap>.le-eyebrow,.le-wrap>.le-title,.le-wrap>.le-meta{position:relative;z-index:2;align-self:flex-start}
.le-tree{position:absolute;left:0;right:0;bottom:0;height:76%;min-height:620px;margin:0;z-index:1}
}
@media(max-width:820px){.le-tree{min-height:55dvh;margin-top:24px}}
