:root {
  --navy-950: #061326;
  --navy-900: #07182d;
  --navy-800: #0d2543;
  --navy-700: #143b63;
  --blue: #2b8be4;
  --blue-bright: #61d9ff;
  --gold: #f7bf24;
  --gold-deep: #d99314;
  --cream: #fff7df;
  --ink: #07182d;
  --muted: #7e94ac;
  --line: rgba(255, 255, 255, 0.14);
  --shadow-xl: 0 32px 80px rgba(0, 12, 31, 0.38);
  --radius-lg: 28px;
  --radius-md: 16px;
  --ease: cubic-bezier(.2,.75,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--navy-900); color: #fff; font-family: "Lato", system-ui, sans-serif; font-size: 16px; line-height: 1.6; overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--blue-bright); outline-offset: 4px; }
.container { width: min(1200px, calc(100% - 48px)); margin: 0 auto; }

.scroll-progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 100; background: rgba(0,0,0,.18); }
.scroll-progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--gold), var(--blue-bright)); transition: width 100ms linear; }

.site-header { position: fixed; top: 3px; left: 0; width: 100%; z-index: 80; transition: background 220ms ease, box-shadow 220ms ease; }
.site-header.is-scrolled { background: rgba(6, 19, 38, .84); box-shadow: 0 12px 40px rgba(0,0,0,.14); backdrop-filter: blur(18px); }
.header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 82px; gap: 32px; }
.brand-label { display: inline-block; color: #fff; font-size: 11px; font-weight: 900; letter-spacing: .16em; line-height: 1.2; }
.site-nav { display: flex; align-items: center; gap: 30px; color: #d7e7f5; font-size: 13px; font-weight: 700; letter-spacing: .03em; }
.site-nav a:not(.nav-cta) { position: relative; padding: 10px 0; transition: color 180ms ease; }
.site-nav a:not(.nav-cta)::after { position: absolute; bottom: 2px; left: 0; width: 0; height: 2px; background: var(--gold); content: ""; transition: width 180ms ease; }
.site-nav a:not(.nav-cta):hover { color: #fff; }
.site-nav a:not(.nav-cta):hover::after { width: 100%; }
.nav-cta { display: inline-flex; align-items: center; gap: 10px; padding: 12px 17px; border: 1px solid rgba(247, 191, 36, .58); border-radius: 999px; color: var(--cream); background: rgba(247, 191, 36, .13); transition: background 180ms ease, border-color 180ms ease, transform 180ms ease; }
.nav-cta:hover { background: rgba(247, 191, 36, .24); border-color: var(--gold); transform: translateY(-1px); }
svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 12px; color: #fff; background: rgba(255,255,255,.05); cursor: pointer; }
.menu-toggle span { display: block; width: 20px; height: 2px; margin: 4px auto; background: currentColor; transition: transform 180ms ease, opacity 180ms ease; }

.hero { position: relative; min-height: 800px; overflow: hidden; background: radial-gradient(circle at 77% 36%, rgba(31, 129, 194, .33), transparent 29%), linear-gradient(132deg, var(--navy-950), var(--navy-900) 58%, #092b4a); }
.hero::before { position: absolute; inset: 0; opacity: .24; background-image: linear-gradient(rgba(92, 185, 235, .16) 1px, transparent 1px), linear-gradient(90deg, rgba(92, 185, 235, .16) 1px, transparent 1px); background-size: 82px 82px; mask-image: linear-gradient(90deg, transparent, black 48%, transparent); content: ""; }
.hero-layout { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); align-items: center; gap: clamp(32px, 7vw, 110px); min-height: 800px; padding-top: 88px; }
.hero-copy { position: relative; z-index: 3; max-width: 565px; }
.signal-line, .section-kicker { display: inline-flex; align-items: center; gap: 10px; color: var(--blue-bright); font-size: 11px; font-weight: 900; letter-spacing: .16em; line-height: 1.2; text-transform: uppercase; }
.signal-line span { width: 26px; height: 1px; background: var(--gold); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: "EB Garamond", Georgia, serif; font-weight: 600; letter-spacing: -.045em; line-height: .93; }
h1 { max-width: 650px; margin: 24px 0 28px; font-size: clamp(64px, 8vw, 108px); }
h1 em, h2 em { color: var(--gold); font-style: normal; }
.hero-lede { max-width: 490px; margin-bottom: 34px; color: #b6cee2; font-size: clamp(17px, 1.7vw, 20px); line-height: 1.55; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; gap: 12px; padding: 14px 22px; border-radius: 999px; font-size: 13px; font-weight: 900; letter-spacing: .015em; cursor: pointer; transition: transform 200ms var(--ease), box-shadow 200ms var(--ease), background 200ms ease, border-color 200ms ease; }
.button:hover { transform: translateY(-3px); }
.button svg { width: 18px; height: 18px; }
.button-primary { color: var(--navy-950); background: var(--gold); box-shadow: 0 12px 32px rgba(247, 191, 36, .22); }
.button-primary:hover { background: #ffd95b; box-shadow: 0 18px 42px rgba(247, 191, 36, .3); }
.button-outline { border: 1px solid rgba(97, 217, 255, .52); color: #dff7ff; background: transparent; }
.button-outline:hover { border-color: var(--blue-bright); background: rgba(97, 217, 255, .1); }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: #d7e7f5; font-size: 14px; font-weight: 700; transition: color 180ms ease; }
.text-link:hover { color: var(--gold); }
.text-link span { color: var(--gold); font-size: 20px; }
.hero-note { display: flex; align-items: center; gap: 9px; margin-top: 42px; color: #7fabc9; font-size: 12px; font-weight: 700; letter-spacing: .04em; }
.note-dot, .status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 5px rgba(247, 191, 36, .12); }
.hero-visual { position: relative; min-height: 600px; display: grid; place-items: center; }
.visual-backdrop { position: absolute; width: min(590px, 90%); aspect-ratio: 1; border: 1px solid rgba(97, 217, 255, .2); border-radius: 50%; box-shadow: inset 0 0 70px rgba(40, 158, 220, .14), 0 0 90px rgba(40, 158, 220, .13); }
.visual-backdrop::after { position: absolute; inset: 10%; border: 1px dashed rgba(247, 191, 36, .26); border-radius: 50%; content: ""; }
.hero-card { position: relative; z-index: 2; width: min(477px, 76vw); margin: 0; padding: 13px; border: 1px solid rgba(255, 255, 255, .24); border-radius: var(--radius-lg); background: rgba(255,255,255,.08); box-shadow: var(--shadow-xl); backdrop-filter: blur(12px); transform: rotate(2.2deg); transition: transform 360ms var(--ease); }
.hero-card:hover { transform: rotate(0deg) translateY(-7px); }
.hero-card img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 18px; }
.card-label { display: flex; align-items: center; gap: 9px; padding: 5px 10px 12px; color: #b9d6e6; font-size: 10px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.card-label .status-dot { width: 6px; height: 6px; box-shadow: none; background: #54e1aa; }
.hero-card figcaption { display: flex; justify-content: space-between; gap: 8px; padding: 13px 4px 2px; color: #b4d6e7; font-size: 10px; font-weight: 900; letter-spacing: .14em; }
.hero-card figcaption strong { color: var(--gold); }
.orbit { position: absolute; z-index: 1; border: 1px solid rgba(97,217,255,.22); border-radius: 50%; transform: rotate(-22deg); }
.orbit-one { width: 620px; height: 225px; }
.orbit-two { width: 670px; height: 310px; transform: rotate(54deg); border-color: rgba(247,191,36,.18); }
.visual-stamp { position: absolute; right: 0; bottom: 92px; z-index: 4; display: flex; align-items: center; gap: 9px; padding: 10px 13px; border: 1px solid rgba(247,191,36,.34); border-radius: 12px; color: var(--gold); background: rgba(7,24,45,.88); box-shadow: 0 14px 28px rgba(0,0,0,.22); transform: rotate(-7deg); }
.visual-stamp span { font-family: Georgia, serif; font-size: 28px; font-weight: 700; line-height: 1; }
.visual-stamp small { color: #d8e6ef; font-size: 8px; font-weight: 900; line-height: 1.1; letter-spacing: .1em; text-transform: uppercase; }
.palm { position: absolute; pointer-events: none; user-select: none; }
.palm-hero { right: 2%; bottom: -13%; width: 310px; opacity: .09; filter: drop-shadow(0 0 18px rgba(247,191,36,.4)); transform: rotate(-12deg); }
.hero-glow { position: absolute; width: 500px; height: 500px; border-radius: 50%; filter: blur(3px); pointer-events: none; }
.hero-glow-one { top: -300px; right: -80px; background: rgba(43,139,228,.2); }
.hero-glow-two { bottom: -420px; left: 15%; background: rgba(247,191,36,.08); }

.section-light { color: var(--ink); background: var(--cream); }
.intro { padding: 122px 0 128px; }
.intro-layout { display: grid; grid-template-columns: 1fr .8fr; gap: 80px; align-items: end; }
.section-heading h2, .feature-copy h2, .final-inner h2 { margin: 19px 0 0; font-size: clamp(52px, 6vw, 82px); }
.intro-copy { max-width: 430px; padding-bottom: 6px; }
.intro-copy p { margin-bottom: 24px; color: #50657a; font-size: 18px; line-height: 1.65; }
.arrow-link { display: inline-flex; align-items: center; gap: 10px; color: var(--navy-700); font-size: 14px; font-weight: 900; border-bottom: 1px solid rgba(20,59,99,.35); transition: color 180ms ease, border-color 180ms ease; }
.arrow-link span { color: var(--gold-deep); font-size: 19px; }
.arrow-link:hover { color: var(--gold-deep); border-color: var(--gold-deep); }
.value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 100px; border-top: 1px solid rgba(7,24,45,.16); }
.value-item { position: relative; padding: 31px 30px 0 0; border-right: 1px solid rgba(7,24,45,.16); }
.value-item + .value-item { padding-left: 30px; }
.value-item:last-child { border-right: 0; }
.value-number { display: block; margin-bottom: 23px; color: #8093a1; font-size: 11px; font-weight: 900; letter-spacing: .15em; }
.value-icon { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 19px; border-radius: 50%; color: var(--navy-700); background: rgba(43,139,228,.1); }
.value-icon svg { width: 21px; height: 21px; }
.value-item h3 { margin-bottom: 8px; font-family: "EB Garamond", Georgia, serif; color: var(--navy-900); font-size: 28px; line-height: 1; }
.value-item p { max-width: 260px; margin: 0; color: #607286; font-size: 14px; line-height: 1.65; }

.section-dark { position: relative; overflow: hidden; background: var(--navy-900); }
.feature { padding: 126px 0 136px; }
.feature-lines { position: absolute; inset: 0; opacity: .22; background: repeating-linear-gradient(122deg, transparent 0 90px, rgba(97,217,255,.2) 90px 91px, transparent 91px 190px); mask-image: linear-gradient(90deg, black, transparent 75%); }
.feature-layout { position: relative; z-index: 1; display: grid; grid-template-columns: 1.08fr .72fr; align-items: center; gap: clamp(44px, 8vw, 116px); }
.image-frame { position: relative; padding: 10px; border: 1px solid rgba(97,217,255,.26); border-radius: 20px; background: rgba(255,255,255,.06); box-shadow: var(--shadow-xl); }
.image-frame img { width: 100%; height: auto; border-radius: 12px; }
.image-corner { position: absolute; width: 42px; height: 42px; border-color: var(--gold); border-style: solid; }
.image-corner-tl { top: -7px; left: -7px; border-width: 2px 0 0 2px; border-radius: 10px 0 0 0; }
.image-corner-br { right: -7px; bottom: -7px; border-width: 0 2px 2px 0; border-radius: 0 0 10px 0; }
.media-caption { display: flex; align-items: center; gap: 9px; margin-top: 16px; color: #7899b6; font-size: 10px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.media-caption span { width: 26px; height: 1px; background: var(--gold); }
.feature-copy { max-width: 450px; }
.feature-copy h2 { color: #fff; }
.feature-copy p { margin: 28px 0 32px; color: #a4bfd4; font-size: 17px; line-height: 1.7; }

.support { position: relative; overflow: hidden; padding: 120px 0 130px; background: #081a31; }
.support::before { position: absolute; inset: 0; opacity: .22; background: radial-gradient(circle at 82% 48%, rgba(247,191,36,.25), transparent 28%), radial-gradient(circle at 12% 52%, rgba(43,139,228,.22), transparent 35%); content: ""; }
.support-layout { position: relative; z-index: 1; display: grid; grid-template-columns: .72fr 1.1fr; align-items: center; gap: clamp(40px, 8vw, 118px); }
.support-copy { max-width: 430px; }
.support-copy h2 { margin: 20px 0 24px; color: #fff; font-size: clamp(54px, 6vw, 82px); }
.support-copy p { margin-bottom: 30px; color: #a6c0d5; font-size: 17px; line-height: 1.7; }
.support-visual { position: relative; margin: 0; padding: 9px; border: 1px solid rgba(97,217,255,.24); border-radius: 22px; background: rgba(255,255,255,.06); box-shadow: var(--shadow-xl); }
.support-media { width: 100%; overflow: hidden; border-radius: 14px; }
.support-media img { display: block; width: 100%; height: auto !important; max-width: 100%; aspect-ratio: auto !important; object-fit: initial; object-position: initial; }
.support-visual figcaption { position: absolute; right: 28px; bottom: 24px; padding: 8px 12px; border: 1px solid rgba(247,191,36,.45); border-radius: 999px; color: #fff4c9; background: rgba(7,24,45,.78); font-size: 11px; font-weight: 900; letter-spacing: .06em; }

.prepaid { position: relative; overflow: hidden; padding: 116px 0 124px; background: #07182d; }
.prepaid::before { position: absolute; inset: 0; opacity: .2; background: radial-gradient(circle at 78% 50%, rgba(97,217,255,.26), transparent 29%), linear-gradient(110deg, rgba(247,191,36,.05), transparent 38%); content: ""; }
.prepaid-layout { position: relative; z-index: 1; display: grid; grid-template-columns: .72fr 1.18fr; align-items: center; gap: clamp(42px, 8vw, 118px); }
.prepaid-copy { max-width: 450px; }
.prepaid-copy h2 { margin: 20px 0 24px; color: #fff; font-size: clamp(54px, 6vw, 82px); }
.prepaid-copy p { margin-bottom: 30px; color: #a6c0d5; font-size: 17px; line-height: 1.7; }
.prepaid-visual { display: block; color: inherit; text-decoration: none; }
.prepaid-visual figure { position: relative; margin: 0; overflow: hidden; padding: 9px; border: 1px solid rgba(97,217,255,.3); border-radius: 22px; background: rgba(255,255,255,.05); box-shadow: var(--shadow-xl); }
.prepaid-visual img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; border-radius: 14px; }
.prepaid-visual figcaption { position: absolute; right: 28px; bottom: 24px; padding: 9px 13px; border: 1px solid rgba(97,217,255,.45); border-radius: 999px; color: #e1f8ff; background: rgba(7,24,45,.8); font-size: 11px; font-weight: 900; letter-spacing: .08em; }
.prepaid-visual figcaption span { margin-left: 5px; color: var(--gold); font-size: 15px; }

.final-cta { position: relative; overflow: hidden; padding: 118px 0 126px; color: var(--ink); text-align: center; background: linear-gradient(135deg, #fff8e4, #fff1b9); }
.final-inner { position: relative; z-index: 2; }
.final-inner .section-kicker { color: var(--gold-deep); }
.final-inner h2 { margin-bottom: 19px; }
.final-inner p { margin-bottom: 28px; color: #607286; font-size: 18px; }
.button-large { min-width: 250px; }
.palm-cta { top: -72px; right: 5%; width: 200px; opacity: .13; transform: rotate(9deg); }
.final-spark { position: absolute; width: 14px; height: 14px; border: 2px solid var(--gold); transform: rotate(45deg); }
.spark-one { top: 34%; left: 13%; }
.spark-two { top: 26%; right: 20%; width: 9px; height: 9px; border-color: var(--blue); }

.site-footer { padding: 26px 0; background: var(--navy-950); }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; color: #7f9bb2; font-size: 12px; }
.footer-inner p { margin: 0; }
.footer-inner > a:last-child { color: #b8d4e4; font-weight: 700; transition: color 180ms ease; }
.footer-inner > a:last-child:hover { color: var(--gold); }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity 700ms var(--ease), transform 700ms var(--ease); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal-delay { transition-delay: 120ms; }
.reveal-delay-2 { transition-delay: 220ms; }

@media (max-width: 920px) {
  .hero-layout { grid-template-columns: 1fr; gap: 28px; padding-top: 130px; }
  .hero-copy { max-width: 650px; }
  .hero-visual { min-height: 520px; margin-top: -8px; }
  .visual-stamp { right: 8%; bottom: 60px; }
  .intro-layout, .feature-layout { grid-template-columns: 1fr; gap: 40px; }
  .intro-copy { max-width: 620px; }
  .feature-copy { max-width: 620px; }
  .feature-copy h2 { font-size: clamp(52px, 9vw, 74px); }
}

@media (max-width: 680px) {
  .container { width: min(100% - 32px, 1200px); }
  .header-inner { min-height: 70px; }
  .brand-label { font-size: 10px; }
  .menu-toggle { display: block; }
  .site-nav { position: absolute; top: calc(100% + 8px); right: 16px; left: 16px; display: grid; gap: 4px; padding: 12px; border: 1px solid rgba(255,255,255,.15); border-radius: 17px; background: rgba(6,19,38,.96); box-shadow: var(--shadow-xl); opacity: 0; pointer-events: none; transform: translateY(-8px); transition: opacity 180ms ease, transform 180ms ease; }
  .site-nav.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
  .site-nav a:not(.nav-cta) { padding: 14px 12px; }
  .nav-cta { justify-content: center; margin-top: 5px; }
  .hero { min-height: 0; }
  .hero-layout { min-height: 0; padding-top: 130px; }
  h1 { margin: 21px 0 24px; font-size: clamp(56px, 16vw, 84px); }
  .hero-lede { font-size: 17px; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 16px; }
  .button { width: 100%; }
  .text-link { align-self: center; }
  .hero-note { margin-top: 30px; }
  .hero-visual { min-height: 380px; margin-top: 10px; }
  .visual-backdrop { width: 100%; }
  .hero-card { width: min(420px, 88vw); }
  .orbit-one { width: 430px; height: 160px; }
  .orbit-two { width: 450px; height: 210px; }
  .visual-stamp { right: 0; bottom: 20px; transform: scale(.88) rotate(-7deg); transform-origin: right bottom; }
  .palm-hero { right: -16%; bottom: -5%; width: 220px; }
  .intro, .feature { padding: 82px 0 88px; }
  .section-heading h2, .feature-copy h2, .final-inner h2 { font-size: clamp(50px, 15vw, 72px); }
  .value-grid { grid-template-columns: 1fr; margin-top: 66px; }
  .value-item, .value-item + .value-item { padding: 28px 0; border-right: 0; border-bottom: 1px solid rgba(7,24,45,.16); }
  .value-item:last-child { border-bottom: 0; }
  .value-item p { max-width: 100%; }
  .feature-layout { gap: 52px; }
  .feature-copy p { margin: 22px 0 28px; font-size: 16px; }
  .support { padding: 82px 0 90px; }
  .support-layout { grid-template-columns: 1fr; gap: 46px; }
  .support-copy { max-width: 620px; }
  .support-copy h2 { font-size: clamp(50px, 15vw, 72px); }
  .support-copy p { font-size: 16px; }
  .support-visual figcaption { right: 18px; bottom: 18px; font-size: 10px; }
  .prepaid { padding: 82px 0 90px; }
  .prepaid-layout { grid-template-columns: 1fr; gap: 46px; }
  .prepaid-copy { max-width: 620px; }
  .prepaid-copy h2 { font-size: clamp(50px, 15vw, 72px); }
  .prepaid-copy p { font-size: 16px; }
  .prepaid-visual figcaption { right: 18px; bottom: 18px; font-size: 10px; }
  .final-cta { padding: 88px 0 94px; }
  .palm-cta { top: -55px; right: -7%; width: 150px; }
  .footer-inner { align-items: flex-start; flex-direction: column; gap: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal { opacity: 1; transform: none; }
}
