Spaces:
Running
Running
| /* ββ Complide Enterprise Β· scroll-world landing βββββββββββββββββββββββββββ */ | |
| :root { | |
| --bg: #04070f; | |
| --bg-soft: #0a1120; | |
| --ink: #eaf2ff; | |
| --ink-dim: #93a3bd; | |
| --green: #2fe58c; | |
| --green-deep: #0f7a4a; | |
| --amber: #ffc24b; | |
| --red: #ff5d5d; | |
| --line: rgba(147, 163, 189, 0.18); | |
| --card-bg: rgba(6, 11, 22, 0.72); | |
| --radius: 18px; | |
| --font: "Inter", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |
| } | |
| * { margin: 0; padding: 0; box-sizing: border-box; } | |
| html { scroll-behavior: auto; } | |
| body { | |
| background: var(--bg); | |
| color: var(--ink); | |
| font-family: var(--font); | |
| -webkit-font-smoothing: antialiased; | |
| overflow-x: hidden; | |
| } | |
| img { user-select: none; } | |
| /* ββ Nav βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .nav { | |
| position: fixed; | |
| inset: 0 0 auto 0; | |
| z-index: 60; | |
| display: flex; | |
| align-items: center; | |
| gap: 32px; | |
| padding: 18px 32px; | |
| background: linear-gradient(180deg, rgba(4, 7, 15, 0.85), rgba(4, 7, 15, 0)); | |
| } | |
| .nav__brand { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| color: var(--ink); | |
| text-decoration: none; | |
| font-weight: 700; | |
| font-size: 17px; | |
| letter-spacing: 0.01em; | |
| } | |
| .nav__glyph { width: 22px; height: 22px; color: var(--green); } | |
| .nav__tag { | |
| font-size: 11px; | |
| font-weight: 600; | |
| letter-spacing: 0.12em; | |
| text-transform: uppercase; | |
| color: var(--green); | |
| border: 1px solid rgba(47, 229, 140, 0.4); | |
| border-radius: 99px; | |
| padding: 3px 9px; | |
| } | |
| .nav__links { | |
| display: flex; | |
| gap: 26px; | |
| margin-left: auto; | |
| } | |
| .nav__links a { | |
| color: var(--ink-dim); | |
| text-decoration: none; | |
| font-size: 14px; | |
| transition: color 0.2s; | |
| } | |
| .nav__links a:hover { color: var(--ink); } | |
| /* ββ Buttons βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: 99px; | |
| padding: 11px 22px; | |
| font-size: 14px; | |
| font-weight: 600; | |
| text-decoration: none; | |
| transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease; | |
| } | |
| .btn--primary { | |
| background: var(--green); | |
| color: #03130b; | |
| box-shadow: 0 0 24px rgba(47, 229, 140, 0.35); | |
| } | |
| .btn--primary:hover { transform: translateY(-1px); box-shadow: 0 0 36px rgba(47, 229, 140, 0.5); } | |
| .btn--ghost { | |
| color: var(--ink); | |
| border: 1px solid var(--line); | |
| background: rgba(10, 17, 32, 0.5); | |
| } | |
| .btn--ghost:hover { border-color: rgba(147, 163, 189, 0.45); } | |
| .btn--lg { padding: 15px 30px; font-size: 16px; } | |
| /* ββ Progress rail βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .rail { | |
| position: fixed; | |
| left: 28px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| z-index: 55; | |
| display: flex; | |
| align-items: center; | |
| gap: 14px; | |
| opacity: 0; | |
| transition: opacity 0.4s; | |
| pointer-events: none; | |
| } | |
| .rail.is-visible { opacity: 1; } | |
| .rail__track { | |
| width: 2px; | |
| height: 220px; | |
| background: rgba(147, 163, 189, 0.2); | |
| border-radius: 2px; | |
| overflow: hidden; | |
| } | |
| .rail__fill { | |
| width: 100%; | |
| height: 0%; | |
| background: linear-gradient(180deg, var(--green), var(--green-deep)); | |
| } | |
| .rail__dots { | |
| list-style: none; | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: space-between; | |
| height: 220px; | |
| } | |
| .rail__dots li { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: 10px; | |
| letter-spacing: 0.14em; | |
| text-transform: uppercase; | |
| color: var(--ink-dim); | |
| } | |
| .rail__dots i { | |
| width: 6px; | |
| height: 6px; | |
| border-radius: 50%; | |
| background: rgba(147, 163, 189, 0.4); | |
| transition: background 0.3s, box-shadow 0.3s; | |
| } | |
| .rail__dots li.is-active i { | |
| background: var(--green); | |
| box-shadow: 0 0 10px rgba(47, 229, 140, 0.8); | |
| } | |
| .rail__dots li.is-active { color: var(--ink); } | |
| .rail__dots span { opacity: 0; transform: translateX(-4px); transition: opacity 0.3s, transform 0.3s; } | |
| .rail__dots li.is-active span { opacity: 1; transform: translateX(0); } | |
| /* ββ Auto-play toggle ββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .autoplay-toggle { | |
| position: fixed; | |
| left: 28px; | |
| bottom: 28px; | |
| z-index: 55; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| padding: 8px 14px 8px 10px; | |
| border: 1px solid var(--line); | |
| border-radius: 99px; | |
| background: rgba(6, 11, 22, 0.6); | |
| backdrop-filter: blur(6px); | |
| color: var(--ink-dim); | |
| font-family: inherit; | |
| font-size: 11px; | |
| font-weight: 600; | |
| letter-spacing: 0.08em; | |
| text-transform: uppercase; | |
| cursor: pointer; | |
| opacity: 0; | |
| transform: translateY(4px); | |
| transition: opacity 0.4s, transform 0.4s, color 0.2s, border-color 0.2s; | |
| } | |
| .autoplay-toggle.is-ready { opacity: 1; transform: translateY(0); } | |
| .autoplay-toggle:hover { color: var(--ink); border-color: rgba(147, 163, 189, 0.4); } | |
| .autoplay-toggle__icon { width: 13px; height: 13px; flex-shrink: 0; } | |
| .autoplay-toggle__icon--play { display: none; } | |
| .autoplay-toggle.is-playing .autoplay-toggle__icon--pause { display: block; color: var(--green); } | |
| .autoplay-toggle.is-playing .autoplay-toggle__icon--play { display: none; } | |
| .autoplay-toggle:not(.is-playing) .autoplay-toggle__icon--pause { display: none; } | |
| .autoplay-toggle:not(.is-playing) .autoplay-toggle__icon--play { display: block; } | |
| /* ββ World stage βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .world { | |
| position: fixed; | |
| inset: 0; | |
| z-index: 1; | |
| overflow: hidden; | |
| } | |
| .world__stage { position: absolute; inset: 0; } | |
| .world__anchors span { position: absolute; } | |
| .world-spacer { | |
| /* height set by JS: scenes Γ per-scene scroll length */ | |
| height: 1100vh; | |
| pointer-events: none; | |
| } | |
| .flight { | |
| position: absolute; | |
| inset: 0; | |
| z-index: 12; | |
| display: none; | |
| } | |
| .flight video { | |
| position: absolute; | |
| inset: 0; | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| } | |
| .world--video .flight { display: block; } | |
| .world--video .scene { display: none; } | |
| .scene { | |
| position: absolute; | |
| inset: 0; | |
| opacity: 0; | |
| will-change: transform, opacity, filter; | |
| } | |
| .scene img { | |
| position: absolute; | |
| inset: 0; | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| transform-origin: var(--fx, 50%) var(--fy, 50%); | |
| will-change: transform; | |
| } | |
| .scene__vignette { | |
| position: absolute; | |
| inset: 0; | |
| background: | |
| radial-gradient(ellipse at 50% 45%, transparent 45%, rgba(4, 7, 15, 0.55) 100%), | |
| linear-gradient(180deg, rgba(4, 7, 15, 0.35) 0%, transparent 22%, transparent 72%, rgba(4, 7, 15, 0.5) 100%); | |
| pointer-events: none; | |
| } | |
| /* ββ Copy cards ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .cards { position: absolute; inset: 0; z-index: 20; pointer-events: none; } | |
| .card { | |
| position: absolute; | |
| max-width: 480px; | |
| padding: 34px 38px; | |
| border-radius: var(--radius); | |
| background: var(--card-bg); | |
| border: 1px solid var(--line); | |
| backdrop-filter: blur(14px); | |
| -webkit-backdrop-filter: blur(14px); | |
| opacity: 0; | |
| will-change: transform, opacity; | |
| pointer-events: none; | |
| } | |
| .card.is-live { pointer-events: auto; } | |
| /* All four cards sit on the right: the rail (fixed at left:28px, ~100px | |
| wide with its labels) collides with any left-aligned card at this | |
| viewport width, which the original alternating left/right layout β built | |
| for 5 scenes, not this page's 4 β didn't clear. */ | |
| .card[data-card="0"] { left: 7vw; top: 50%; } | |
| .card[data-card="1"] { right: 6vw; top: 50%; left: auto; } | |
| .card[data-card="2"] { right: 6vw; top: 50%; left: auto; } | |
| .card[data-card="3"] { right: 6vw; top: 50%; left: auto; } | |
| .card__kicker { | |
| font-size: 12px; | |
| font-weight: 700; | |
| letter-spacing: 0.18em; | |
| text-transform: uppercase; | |
| color: var(--green); | |
| margin-bottom: 14px; | |
| } | |
| .card h1 { | |
| font-size: clamp(38px, 4.6vw, 60px); | |
| line-height: 1.04; | |
| letter-spacing: -0.02em; | |
| margin-bottom: 18px; | |
| } | |
| .card h2 { | |
| font-size: clamp(30px, 3.4vw, 44px); | |
| line-height: 1.08; | |
| letter-spacing: -0.02em; | |
| margin-bottom: 16px; | |
| } | |
| .card__body { | |
| color: var(--ink-dim); | |
| font-size: 16px; | |
| line-height: 1.6; | |
| margin-bottom: 22px; | |
| } | |
| .card__actions { display: flex; gap: 12px; flex-wrap: wrap; } | |
| .card--hero { background: rgba(6, 11, 22, 0.6); } | |
| /* ββ Chips βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .chips { display: flex; gap: 8px; flex-wrap: wrap; } | |
| .chip { | |
| font-size: 12px; | |
| font-weight: 600; | |
| letter-spacing: 0.04em; | |
| padding: 6px 12px; | |
| border-radius: 99px; | |
| border: 1px solid var(--line); | |
| color: var(--ink-dim); | |
| background: rgba(10, 17, 32, 0.55); | |
| } | |
| .chip--green { color: var(--green); border-color: rgba(47, 229, 140, 0.45); } | |
| .chip--yellow { color: var(--amber); border-color: rgba(255, 194, 75, 0.45); } | |
| .chip--red { color: var(--red); border-color: rgba(255, 93, 93, 0.45); } | |
| /* ββ Scroll hint βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .scroll-hint { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| margin-top: 26px; | |
| color: var(--ink-dim); | |
| font-size: 12px; | |
| letter-spacing: 0.1em; | |
| text-transform: uppercase; | |
| } | |
| .scroll-hint__mouse { | |
| width: 20px; | |
| height: 32px; | |
| border: 1.5px solid var(--ink-dim); | |
| border-radius: 12px; | |
| display: flex; | |
| justify-content: center; | |
| padding-top: 6px; | |
| } | |
| .scroll-hint__mouse span { | |
| width: 3px; | |
| height: 7px; | |
| border-radius: 2px; | |
| background: var(--green); | |
| animation: wheel 1.6s ease-in-out infinite; | |
| } | |
| @keyframes wheel { | |
| 0% { transform: translateY(0); opacity: 1; } | |
| 70% { transform: translateY(9px); opacity: 0; } | |
| 100% { transform: translateY(0); opacity: 0; } | |
| } | |
| /* ββ Ground content ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .ground { | |
| position: relative; | |
| z-index: 10; | |
| background: linear-gradient(180deg, transparent, var(--bg) 6%, var(--bg)); | |
| padding: 120px 8vw 0; | |
| } | |
| .ground__title { | |
| font-size: clamp(30px, 3.6vw, 48px); | |
| line-height: 1.1; | |
| letter-spacing: -0.02em; | |
| text-align: center; | |
| margin-bottom: 56px; | |
| } | |
| .stats { | |
| display: grid; | |
| grid-template-columns: repeat(4, 1fr); | |
| gap: 18px; | |
| max-width: 1080px; | |
| margin: 0 auto 130px; | |
| } | |
| .stat { | |
| border: 1px solid var(--line); | |
| border-radius: var(--radius); | |
| background: var(--bg-soft); | |
| padding: 28px 24px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .stat strong { font-size: 34px; letter-spacing: -0.02em; color: var(--green); } | |
| .stat span { color: var(--ink-dim); font-size: 14px; } | |
| .features { max-width: 1080px; margin: 0 auto 140px; } | |
| .features__grid { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 18px; | |
| } | |
| .feature { | |
| border: 1px solid var(--line); | |
| border-radius: var(--radius); | |
| background: var(--bg-soft); | |
| padding: 28px 26px; | |
| transition: border-color 0.2s, transform 0.2s; | |
| } | |
| .feature:hover { border-color: rgba(47, 229, 140, 0.4); transform: translateY(-2px); } | |
| .feature h3 { font-size: 17px; margin-bottom: 10px; } | |
| .feature p { color: var(--ink-dim); font-size: 14px; line-height: 1.6; } | |
| .cta { | |
| text-align: center; | |
| padding: 90px 0 110px; | |
| border-top: 1px solid var(--line); | |
| } | |
| .cta h2 { | |
| font-size: clamp(32px, 4vw, 54px); | |
| letter-spacing: -0.02em; | |
| margin-bottom: 16px; | |
| } | |
| .cta p { color: var(--ink-dim); font-size: 17px; margin-bottom: 34px; } | |
| .cta__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; } | |
| .footer { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 16px; | |
| flex-wrap: wrap; | |
| padding: 26px 0 34px; | |
| border-top: 1px solid var(--line); | |
| color: var(--ink-dim); | |
| font-size: 13px; | |
| } | |
| /* ββ Responsive ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| @media (max-width: 900px) { | |
| .nav__links { display: none; } | |
| .rail { display: none; } | |
| .autoplay-toggle { display: none; } | |
| .card { max-width: min(88vw, 440px); padding: 26px 26px; } | |
| .card[data-card] { left: 6vw; right: auto; } | |
| .stats { grid-template-columns: repeat(2, 1fr); } | |
| .features__grid { grid-template-columns: 1fr; } | |
| } | |
| /* ββ Reduced motion: static stacked fallback βββββββββββββββββββββββββββββββ */ | |
| @media (prefers-reduced-motion: reduce) { | |
| .scroll-hint__mouse span { animation: none; } | |
| .autoplay-toggle { display: none; } | |
| } | |