﻿/* ========================================
   XPASS - ��ǿ��Ӧʽϵͳ
   ======================================== */

/* ========================================
   ����ϵͳ
   ======================================== */

.container {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 var(--spacing-md);
}

.container--narrow {
  max-width: 1200px;
}

.container--wide {
  max-width: 1600px;
}

/* ========================================
   ����Ļ (> 1600px)
   ======================================== */

@media (min-width: 1600px) {
  :root {
    --spacing-2xl: 160px;
  }

  .hero__title {
    font-size: 120px;
  }

  .presale__grid,
  .about__grid,
  .utility__grid {
    max-width: 1600px;
  }
}

/* ========================================
   ���� (1200px - 1600px)
   ======================================== */

@media (max-width: 1600px) and (min-width: 1200px) {
  :root {
    --spacing-2xl: 120px;
  }
}

/* ========================================
   С���� / ƽ����� (968px - 1200px)
   ======================================== */

@media (max-width: 1200px) {
  :root {
    --spacing-xl: 64px;
    --spacing-2xl: 96px;
  }

  /* ������ */
  .nav {
    padding: 18px 32px;
  }

  /* ����sectionͨ�� */
  section {
    padding: var(--spacing-xl) var(--spacing-md);
  }

  /* ���񲼾ֵ��� */
  .about__grid,
  .utility__grid,
  .mars__grid,
  .tesla__grid,
  .x-vision__grid,
  .ai-vision__grid,
  .spacex-vision__grid {
    gap: 48px;
  }

  /* �Ŷ����� */
  .team__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  /* ����������� */
  .partners__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* ========================================
   ƽ�� (768px - 968px)
   ======================================== */

@media (max-width: 968px) {
  :root {
    --spacing-lg: 40px;
    --spacing-xl: 56px;
    --spacing-2xl: 80px;
  }

  html {
    font-size: 15px;
  }

  /* ������ */
  .nav {
    padding: 16px 24px;
  }

  .nav__brand {
    font-size: 22px;
  }

  .nav__logo {
    height: 28px;
    width: 28px;
  }

  /* ����˫�����ָ�Ϊ���� */
  .presale__grid,
  .about__grid,
  .utility__grid,
  .mars__grid,
  .tesla__grid,
  .x-vision__grid,
  .ai-vision__grid,
  .spacex-vision__grid,
  .monument__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  /* ͼƬ���ı�˳���Ż� */
  .mars__image,
  .x-vision__image,
  .spacex-vision__image {
    order: -1;
  }

  /* �Ŷ����� */
  .team__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
  }

  /* ����������� */
  .partners__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  /* Tokenomics */
  .tokenomics__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .tokenomics__chart {
    max-width: 400px;
    margin: 0 auto;
  }

  /* ·��ͼ */
  .roadmap__node {
    padding-left: 60px;
  }

  /* FAQ */
  .faq__item {
    padding: 20px;
  }

  .faq__question {
    font-size: 16px;
  }
}

/* ========================================
   �ֻ� (480px - 768px)
   ======================================== */

@media (max-width: 768px) {
  :root {
    --spacing-sm: 12px;
    --spacing-md: 20px;
    --spacing-lg: 32px;
    --spacing-xl: 48px;
    --spacing-2xl: 64px;
  }

  html {
    font-size: 14px;
  }

  /* ������ */
  .nav {
    padding: 14px 20px;
  }

  .nav__brand {
    font-size: 20px;
    gap: 8px;
  }

  .nav__logo {
    height: 24px;
    width: 24px;
  }

  .nav__links {
    gap: 12px;
    font-size: 13px;
  }

  /* ��ť */
  .btn {
    padding: 14px 28px;
    font-size: 13px;
  }

  /* Section���� */
  h2,
  h3 {
    font-size: clamp(24px, 6vw, 32px);
  }

  /* Hero���� */
  .hero__title {
    font-size: clamp(40px, 10vw, 64px);
  }

  .hero__subtitle {
    font-size: clamp(18px, 4vw, 24px);
  }

  .hero__support {
    font-size: clamp(13px, 3vw, 16px);
  }

  /* About */
  .about__title,
  .utility__title,
  .mars__title,
  .tesla__title,
  .x-vision__title,
  .ai-vision__title,
  .spacex-vision__title {
    font-size: 28px;
  }

  .about__desc,
  .utility__description,
  .mars__description,
  .tesla__description,
  .x-vision__description,
  .ai-vision__description,
  .spacex-vision__description {
    font-size: 15px;
  }

  /* Passportϵͳ */
  .passport__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .passport__card {
    padding: 24px;
  }

  /* �Ŷ� */
  .team__grid {
    grid-template-columns: 1fr;
    gap: 24px;
    max-width: 400px;
    margin: 0 auto;
  }

  /* ������� */
  .partners__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }

  /* Featured */
  .featured__logos {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  /* Tokenomicsͼ�� */
  .tokenomics__chart canvas {
    max-width: 100%;
    height: auto !important;
  }

  /* ·��ͼ */
  .roadmap__timeline {
    padding-left: 30px;
  }

  .roadmap__node {
    padding-left: 40px;
  }

  .roadmap__node-dot {
    left: -30px;
    width: 12px;
    height: 12px;
  }

  .roadmap__line {
    left: -24px;
    width: 2px;
  }

  /* ��� */
  .monument__structure {
    padding: 32px 20px;
  }

  .monument__address {
    font-size: 12px;
  }

  /* Modal */
  .modal__dialog {
    width: calc(100% - 32px);
    margin: 16px;
    padding: 24px;
  }

  .modal__dialog h4 {
    font-size: 20px;
  }
}

/* ========================================
   С���ֻ� (< 480px)
   ======================================== */

@media (max-width: 480px) {
  :root {
    --spacing-xs: 6px;
    --spacing-sm: 10px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 40px;
    --spacing-2xl: 56px;
  }

  html {
    font-size: 14px;
  }

  /* ������ */
  .nav {
    padding: 12px 16px;
  }

  .nav__brand {
    font-size: 18px;
  }

  .nav__logo {
    height: 20px;
    width: 20px;
  }

  .nav__links {
    display: none;
    /* ��С�����ص������� */
  }

  /* ��ť */
  .btn {
    padding: 12px 24px;
    font-size: 12px;
    letter-spacing: 0.5px;
  }

  /* Hero */
  .hero__title {
    font-size: clamp(32px, 12vw, 48px);
  }

  .hero__subtitle {
    font-size: clamp(16px, 5vw, 20px);
  }

  .hero__support {
    font-size: 12px;
  }

  /* Section���� */
  h2,
  h3 {
    font-size: clamp(20px, 7vw, 28px);
  }

  /* Presale */
  .presale__lead {
    padding: 20px;
  }

  .presale__eyebrow {
    font-size: 10px;
  }

  .presale__tagline {
    font-size: 14px;
  }

  .presale__right {
    padding: 24px 16px;
  }

  .presale__title {
    font-size: 22px;
  }

  /* Countdown */
  .countdown {
    padding: 16px;
  }

  .countdown__grid {
    gap: 8px;
  }

  .cd-box {
    padding: 12px 6px;
  }

  .cd-box span {
    font-size: 20px;
  }

  .cd-box small {
    font-size: 9px;
  }

  /* Token�л� */
  .token__switch {
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
    padding: 6px;
  }

  .token__btn {
    padding: 8px 6px;
    font-size: 11px;
  }

  /* Featured */
  .featured__logos {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .featured__logo {
    max-width: 200px;
    margin: 0 auto;
  }

  /* Passport */
  .passport__card {
    padding: 20px;
  }

  .passport__card-title {
    font-size: 18px;
  }

  .passport__threshold {
    font-size: 12px;
  }

  .passport__benefits {
    font-size: 13px;
  }

  /* ������� */
  .partners__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .partners__logo {
    max-width: 200px;
    margin: 0 auto;
  }

  /* FAQ */
  .faq__item {
    padding: 16px;
  }

  .faq__question {
    font-size: 14px;
    padding-right: 32px;
  }

  .faq__answer {
    font-size: 13px;
  }

  /* Modal */
  .modal__dialog {
    width: calc(100% - 24px);
    margin: 12px;
    padding: 20px;
    max-height: calc(100vh - 24px);
    overflow-y: auto;
  }

  /* Footer */
  .footer__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .footer__col {
    text-align: center;
  }
}

/* ========================================
   ��С�� (< 360px)
   ======================================== */

@media (max-width: 360px) {
  html {
    font-size: 13px;
  }

  .hero__title {
    font-size: clamp(28px, 14vw, 40px);
  }

  .btn {
    padding: 10px 20px;
    font-size: 11px;
  }

  .nav__brand {
    font-size: 16px;
  }

  .presale__right {
    padding: 20px 12px;
  }
}

/* ========================================
   �����Ż�
   ======================================== */

@media (max-height: 600px) and (orientation: landscape) {
  .hero {
    min-height: auto;
    padding: 80px 24px 40px;
  }

  .hero__title {
    font-size: clamp(32px, 8vw, 64px);
  }

  .hero__subtitle {
    font-size: clamp(16px, 3vw, 24px);
  }

  .hero__scroll-hint {
    display: none;
  }
}

/* ========================================
   �����豸�Ż�
   ======================================== */

@media (hover: none) and (pointer: coarse) {

  /* ����ɵ������ */
  .btn {
    min-height: 48px;
  }

  .token__btn {
    min-height: 44px;
  }

  .faq__question {
    min-height: 56px;
  }

  /* �Ƴ���ͣЧ�� */
  .btn:hover,
  .token__btn:hover,
  .nav__links a:hover {
    transform: none;
  }

  /* ��Ӽ���״̬ */
  .btn:active {
    transform: scale(0.98);
  }
}

/* ========================================
   ��ӡ��ʽ
   ======================================== */

@media print {

  .nav,
  .hero__video,
  #particles,
  .hero__overlay,
  .hero__actions,
  .presale__actions,
  .modal,
  .toast {
    display: none !important;
  }

  body {
    background: white;
    color: black;
  }

  section {
    page-break-inside: avoid;
  }
}

/* ========================================
   ���ٶ������ɷ����ԣ�
   ======================================== */

@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ========================================
   �߶Աȶ�ģʽ
   ======================================== */

@media (prefers-contrast: high) {
  :root {
    --border: rgba(212, 175, 55, 0.5);
    --border-light: rgba(255, 255, 255, 0.3);
  }

  .btn--outline {
    border-width: 2px;
  }

  .input {
    border-width: 2px;
  }
}