/* Mobile-only launch layout. Desktop rules intentionally remain untouched. */
.mobile-waitlist-trigger,
.mobile-waitlist-close,
.mobile-waitlist-backdrop,
.mobile-how-link,
.mobile-how-backdrop,
.mobile-how-close,
.mobile-how-content,
.mobile-sample-trigger,
.mobile-sample-back,
.mobile-sample-context {
  display: none;
}

.mobile-socials {
  display: none;
}

.mobile-social-intro {
  display: none;
}

.mobile-top-fade {
  display: none;
}

.bias-copy-mobile {
  display: none;
}

@media (max-width: 600px) {
  .mobile-top-fade {
    position: fixed;
    z-index: 0;
    top: 0;
    right: 0;
    left: 0;
    height: calc(env(safe-area-inset-top) + 96px);
    display: block;
    pointer-events: none;
    background: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .96) 38%, rgba(0, 0, 0, .58) 70%, rgba(0, 0, 0, 0) 100%);
  }

  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  html {
    background-color: #10201e;
    background-image:
      radial-gradient(ellipse 125% 52% at 50% -8%, rgba(68, 139, 131, .28), transparent 68%),
      radial-gradient(ellipse 140% 42% at 8% 104%, rgba(104, 216, 205, .39), transparent 62%),
      radial-gradient(ellipse 120% 40% at 105% 102%, rgba(172, 181, 88, .28), transparent 60%),
      linear-gradient(180deg, #070909 0%, #0b0e0e 50%, #172321 84%, #657d75 122%);
    background-attachment: fixed;
  }

  body {
    background-color: transparent;
    background-image: none;
    padding-top: env(safe-area-inset-top);
    padding-right: env(safe-area-inset-right);
    padding-bottom: env(safe-area-inset-bottom);
    padding-left: env(safe-area-inset-left);
  }

  body {
    min-height: 0;
  }

  html {
    scroll-behavior: smooth;
  }

  body::before {
    width: 125vw;
    height: 125vw;
    left: -62vw;
    top: 30vh;
    bottom: auto;
    background: radial-gradient(circle, rgba(81, 210, 196, .48) 0%, rgba(42, 127, 119, .2) 43%, transparent 70%);
    animation: launch-aurora-intro-left 1.472s ease-out both, mobile-aurora-one 11.52s ease-in-out 1.472s infinite;
  }

  body::after {
    width: 118vw;
    height: 118vw;
    right: -60vw;
    top: 46vh;
    bottom: auto;
    background: radial-gradient(circle, rgba(183, 190, 86, .38) 0%, rgba(105, 125, 59, .16) 45%, transparent 70%);
    animation: launch-aurora-intro-right 1.664s ease-out both, mobile-aurora-two 14.08s ease-in-out 1.664s infinite;
  }

  .launch-glow-one {
    animation-duration: 15.36s;
  }

  .launch-glow-two {
    animation-duration: 18.56s;
  }

  .launch-nav,
  .launch-main,
  footer {
    width: calc(100% - 36px);
    max-width: none;
  }

  .launch-nav {
    height: 104px;
    padding-top: 10px;
  }

  .launch-brand {
    gap: 12px;
    font-size: 31px;
  }

  .launch-brand i {
    width: 39px;
    height: 39px;
  }

  .launch-main {
    display: block;
    min-width: 0;
    min-height: auto;
    padding: 21px 0 18px;
  }

  .launch-copy,
  .preview-column,
  .preview-card,
  .waitlist-block,
  .waitlist-form,
  .email-row,
  .consent-list {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .launch-kicker {
    display: none;
  }

  .launch-copy h1 {
    width: 100%;
    max-width: 100%;
    font-size: clamp(39px, 10.7vw, 44px);
    line-height: .99;
    letter-spacing: -.058em;
  }

  .launch-copy h1 span {
    display: block;
    width: auto;
    max-width: 100%;
    white-space: normal;
  }

  .launch-copy h1 span:hover {
    transform: none;
  }

  .launch-intro {
    max-width: 36ch;
    margin-top: 23px;
    color: #e3ebe9;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.58;
    text-shadow: 0 1px 16px rgba(0, 0, 0, .45);
  }

  .brand-message {
    margin-top: 17px;
    font-size: 14px;
  }

  .mobile-waitlist-trigger {
    width: 100%;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 30px;
    padding: 0 20px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 15px;
    background: #eef3f2;
    color: #0b1211;
    box-shadow: 0 16px 36px rgba(0, 0, 0, .22);
    font: 700 14px Inter, Arial, sans-serif;
    cursor: pointer;
  }

  .mobile-waitlist-trigger span {
    display: none;
  }

  .mobile-how-link {
    width: 100%;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
    padding: 0 20px;
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 15px;
    background: rgba(235, 246, 243, .06);
    color: #ffffff;
    text-decoration: none;
    font: 700 13px Inter, Arial, sans-serif;
    text-shadow: 0 1px 14px rgba(0, 0, 0, .5);
    text-decoration: none;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    cursor: pointer;
  }

  .mobile-how-link span {
    display: none;
  }

  #mobileHowItWorks {
    display: none;
  }

  body.mobile-how-open #mobileHowItWorks {
    display: grid;
    position: fixed;
    z-index: 911;
    top: 50%;
    left: 18px;
    right: 18px;
    width: auto;
    max-width: none;
    max-height: calc(100dvh - 36px);
    margin: 0;
    padding: 28px 18px 18px;
    overflow-y: auto;
    border: 1px solid rgba(223, 240, 236, .18);
    border-radius: 22px;
    background: rgba(4, 9, 8, .5);
    box-shadow: 0 30px 90px rgba(0, 0, 0, .55);
    backdrop-filter: blur(24px) saturate(120%);
    -webkit-backdrop-filter: blur(24px) saturate(120%);
    animation: mobile-how-in .42s cubic-bezier(.22, 1, .36, 1) both;
  }

  .mobile-how-backdrop:not([hidden]) {
    position: fixed;
    z-index: 910;
    inset: 0;
    display: block;
    background: rgba(2, 6, 6, .72);
    backdrop-filter: blur(10px);
  }

  body.mobile-how-open {
    overflow: hidden;
  }

  body.mobile-how-open footer,
  body.waitlist-popup-open footer {
    visibility: hidden;
    pointer-events: none;
  }

  .mobile-how-close {
    position: absolute;
    z-index: 2;
    top: 11px;
    right: 11px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    padding: 0 0 2px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    color: #e0e9e7;
    font: 400 24px/1 Inter, Arial, sans-serif;
  }

  .mobile-how-content {
    display: block;
  }

  .mobile-how-content + .preview-card {
    display: none;
  }

  .mobile-how-eyebrow {
    margin: 3px 44px 24px 2px;
    color: #8fa19e;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .16em;
  }

  .mobile-how-steps {
    display: grid;
    gap: 10px;
  }

  .mobile-how-steps article {
    padding: 18px 17px;
    border: 1px solid rgba(223, 240, 236, .14);
    border-radius: 16px;
    background: rgba(3, 8, 7, .34);
  }

  .mobile-how-steps article > span {
    display: block;
    margin-bottom: 18px;
    color: #81928f;
    font-size: 10px;
    font-weight: 600;
  }

  .mobile-how-steps h2 {
    margin: 0;
    color: #f3f6f5;
    font-size: 19px;
    line-height: 1.15;
    letter-spacing: -.035em;
  }

  .mobile-how-steps p {
    margin: 9px 0 0;
    color: #aebbb9;
    font-size: 13px;
    line-height: 1.55;
  }

  .mobile-sample-trigger {
    width: 100%;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 13px;
    padding: 0 17px;
    border: 1px solid rgba(126, 215, 204, .28);
    border-radius: 14px;
    background: rgba(32, 74, 69, .54);
    color: #dff0ed;
    font: 700 13px Inter, Arial, sans-serif;
  }

  .mobile-sample-trigger span {
    color: #9ce2d9;
    font-size: 17px;
  }

  body.mobile-sample-open .mobile-how-content {
    display: none;
  }

  body.mobile-sample-open .mobile-how-content + .preview-card {
    display: block;
    padding: 14px;
    border: 1px solid rgba(223, 240, 236, .15);
    border-radius: 20px;
    background: rgba(229, 243, 239, .07);
    box-shadow: none;
    animation: mobile-sample-in .35s cubic-bezier(.22, 1, .36, 1) both;
  }

  .mobile-sample-back {
    width: max-content;
    display: inline-flex;
    align-items: center;
    margin: 0 0 16px;
    padding: 7px 10px;
    border: 1px solid rgba(223, 240, 236, .14);
    border-radius: 9px;
    background: rgba(255, 255, 255, .06);
    color: #b8c7c4;
    font: 650 10px Inter, Arial, sans-serif;
  }

  body.mobile-sample-open .preview-top {
    padding-top: 0;
  }

  body.mobile-sample-open .mobile-sample-context {
    display: grid;
    gap: 20px;
    margin-top: 14px;
  }

  body.mobile-sample-open .preview-sources {
    display: none;
  }

  .mobile-sample-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
  }

  .mobile-sample-summary article,
  .mobile-macro-grid article {
    min-width: 0;
    padding: 13px 11px;
    border: 1px solid rgba(222, 239, 235, .14);
    border-radius: 12px;
    background: rgba(2, 8, 7, .36);
  }

  .mobile-sample-summary span,
  .mobile-macro-grid span {
    display: block;
    color: #8c9d9a;
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .1em;
  }

  .mobile-sample-summary strong {
    display: block;
    margin-top: 7px;
    color: #ef6676;
    font-size: 18px;
    line-height: 1;
    letter-spacing: -.035em;
  }

  .mobile-sample-summary article:last-child strong {
    color: #f1f5f4;
  }

  .mobile-sample-summary small,
  .mobile-macro-grid small {
    display: block;
    margin-top: 6px;
    color: #788986;
    font-size: 7px;
    line-height: 1.35;
  }

  .mobile-sample-macro {
    padding-top: 18px;
    border-top: 1px solid rgba(222, 239, 235, .13);
  }

  .mobile-sample-macro h3 {
    margin: 0;
    color: #f3f6f5;
    font-size: 24px;
    line-height: 1;
    letter-spacing: -.045em;
  }

  .mobile-sample-macro > p {
    margin: 11px 0 15px;
    color: #aab8b5;
    font-size: 11px;
    line-height: 1.55;
  }

  .mobile-macro-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .mobile-macro-grid article:last-child {
    grid-column: 1 / -1;
  }

  .mobile-macro-grid strong {
    display: block;
    margin-top: 7px;
    color: #eef3f2;
    font-size: 16px;
    letter-spacing: -.025em;
  }

  .mobile-macro-source {
    display: block;
    margin-top: 11px;
    color: #71817e;
    font-size: 8px;
    line-height: 1.45;
  }

  .mobile-waitlist-backdrop:not([hidden]) {
    position: fixed;
    z-index: 900;
    inset: 0;
    display: block;
    background: rgba(2, 6, 6, .72);
    backdrop-filter: blur(10px);
  }

  body.waitlist-popup-open {
    overflow: hidden;
  }

  .waitlist-block {
    display: none;
    position: fixed;
    z-index: 901;
    left: 18px;
    right: 18px;
    top: 50%;
    bottom: auto;
    width: auto;
    max-height: calc(100dvh - 36px);
    margin: 0;
    padding: 24px 18px 18px;
    overflow-y: auto;
    border: 1px solid rgba(223, 240, 236, .2);
    border-radius: 22px;
    background: rgba(4, 9, 8, .5);
    backdrop-filter: blur(24px) saturate(120%);
    -webkit-backdrop-filter: blur(24px) saturate(120%);
    box-shadow: 0 30px 90px rgba(0, 0, 0, .55);
    transform: translateY(-50%);
    animation: mobile-waitlist-in .28s cubic-bezier(.22, 1, .36, 1) both;
  }

  body.waitlist-popup-open .waitlist-block {
    display: block;
  }

  .mobile-waitlist-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    padding: 0 0 2px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    background: rgba(255, 255, 255, .07);
    color: #dce5e3;
    font: 400 24px/1 Inter, Arial, sans-serif;
    cursor: pointer;
  }

  .waitlist-invite strong {
    font-size: 29px;
    line-height: 1.05;
  }

  .waitlist-invite span {
    font-size: 11px;
    line-height: 1.5;
  }

  .waitlist-form {
    margin-top: 14px;
  }

  .email-row {
    display: flex;
    gap: 5px;
    padding: 5px;
  }

  .email-row input {
    width: auto;
    min-width: 0;
    height: 44px;
    padding: 0 12px;
  }

  .email-row button {
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
  }

  .email-row .button-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }

  .email-row .button-arrow {
    margin: 0;
  }

  .consent-list {
    gap: 10px;
    margin: 14px 0 0;
  }

  .consent-list label {
    display: grid;
    grid-template-columns: 17px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    font-size: 10px;
    line-height: 1.42;
  }

  .consent-list input {
    width: 17px;
    height: 17px;
  }

  .form-status {
    margin: 11px 1px 0;
    font-size: 10px;
    line-height: 1.4;
  }

  .preview-column {
    margin-top: 44px;
  }

  .preview-card {
    padding: 0;
  }

  .preview-top {
    padding: 0 2px 13px;
  }

  .preview-answer {
    width: 100%;
    min-width: 0;
    padding: 23px 18px;
    border-radius: 19px;
    background: rgba(5, 9, 10, .5);
    backdrop-filter: blur(18px) saturate(115%);
    -webkit-backdrop-filter: blur(18px) saturate(115%);
  }

  .preview-answer:hover {
    background: rgba(5, 9, 10, .5);
  }

  .preview-answer h2 {
    font-size: 32px;
  }

  .preview-signals {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .preview-signals p {
    min-width: 0;
    padding: 10px 7px;
  }

  .preview-signals p strong {
    overflow-wrap: anywhere;
  }

  .preview-sources {
    width: 100%;
  }

  footer {
    min-height: 0;
    margin-bottom: 0;
    padding: 18px 0 10px;
  }

  .mobile-socials {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 12px;
  }

  .mobile-social-intro {
    display: block;
    margin: 21px 2px 0;
    max-width: 34ch;
    color: #e3ebe9;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.58;
    letter-spacing: 0;
    text-shadow: 0 1px 16px rgba(0, 0, 0, .45);
  }

  .mobile-social-link {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 13px;
    border: 1px solid rgba(219, 239, 234, .15);
    border-radius: 13px;
    background: rgba(6, 13, 12, .28);
    color: #dce7e5;
    font-size: 11px;
    font-weight: 650;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  .mobile-social-link svg {
    width: 25px;
    height: 25px;
    flex: 0 0 auto;
    padding: 0;
    border-radius: 0;
    background: transparent;
    fill: none;
    stroke: #020504;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .mobile-social-link .social-fill {
    fill: #020504;
    stroke: none;
  }

  @keyframes mobile-waitlist-in {
    from { opacity: 0; transform: translateY(calc(-50% + 24px)) scale(.98); }
    to { opacity: 1; transform: translateY(-50%) scale(1); }
  }

  @keyframes mobile-aurora-one {
    0%, 100% { opacity: .64; transform: translate3d(-5%, 7%, 0) scale(1); }
    50% { opacity: .82; transform: translate3d(8%, -10%, 0) scale(1.07); }
  }

  @keyframes mobile-aurora-two {
    0%, 100% { opacity: .58; transform: translate3d(5%, 8%, 0) scale(1); }
    50% { opacity: .78; transform: translate3d(-8%, -12%, 0) scale(1.07); }
  }

  @keyframes mobile-how-in {
    from { opacity: 0; transform: translateY(calc(-50% + 20px)) scale(.98); }
    to { opacity: 1; transform: translateY(-50%) scale(1); }
  }

  @keyframes mobile-sample-in {
    from { opacity: 0; transform: translateX(16px); }
    to { opacity: 1; transform: translateX(0); }
  }
}

@media (max-width: 760px) {
  .platform-show-more {
    background: rgba(0, 0, 0, .2) !important;
  }

  .platform-show-more:hover,
  .platform-show-more:focus-visible {
    background: rgba(0, 0, 0, .28) !important;
  }

  .bias-copy-desktop {
    display: none !important;
  }

  .bias-copy-mobile {
    display: block !important;
  }

  .platform-header-side > span,
  .feature-copy li,
  .bias-value-card p,
  .plan-comparison-heading > span,
  .plan-table-row > span,
  .platform-feature p {
    color: #e3ebe9 !important;
    font-weight: 500 !important;
    text-shadow: 0 1px 16px rgba(0, 0, 0, .45) !important;
  }

  /* Keep the feature overview concise on narrow screens. */
  section.platform-section .platform-grid {
    gap: 10px;
  }

  section.platform-section .platform-feature {
    padding: 17px 16px;
  }

  section.platform-section .platform-feature h3 {
    margin-top: 14px;
    font-size: 24px;
  }

  section.platform-section .feature-copy ul {
    gap: 5px;
    margin-top: 11px;
  }

  section.platform-section .feature-copy li {
    padding-left: 13px;
    font-size: 12px;
    line-height: 1.35;
  }

  section.platform-section .feature-copy li::before {
    width: 4px;
    height: 4px;
  }

  section.platform-section .platform-visual {
    margin-top: 16px;
    border-radius: 13px;
  }

  section.platform-section .bias-visual {
    padding: 14px;
  }

  section.platform-section .bias-visual > strong {
    margin: 10px 0 8px;
    font-size: 28px;
  }

  section.platform-section .bias-visual footer {
    margin-top: 7px;
  }

  section.platform-section .community-visual {
    padding: 4px 12px;
  }

  section.platform-section .community-visual article {
    padding: 9px 0;
  }

  section.platform-section .community-visual article:last-child {
    display: none;
  }

  section.platform-section .knowledge-visual {
    padding: 14px;
  }

  section.platform-section .knowledge-visual > strong {
    margin: 10px 0;
    font-size: 16px;
  }

  section.platform-section .knowledge-visual small {
    margin-top: 10px;
  }

  section.platform-section .journal-visual {
    padding: 11px;
  }

  section.platform-section .journal-visual > header div {
    padding: 7px;
  }

  section.platform-section .journal-visual > header strong {
    margin-top: 4px;
    font-size: 12px;
  }

  section.platform-section .journal-visual section > div {
    padding: 7px 3px;
  }

  section.platform-section .journal-visual footer {
    margin-top: 8px;
  }
}

@media (max-width: 600px) and (prefers-reduced-motion: reduce) {
  body::before,
  body::after,
  .launch-glow-one,
  .launch-glow-two {
    animation: none;
  }

  .waitlist-block {
    animation: none;
  }

  body.mobile-how-open #mobileHowItWorks {
    animation: none;
    transform: translateY(-50%);
  }
}

@media (max-width: 370px) {
  .launch-copy h1 {
    font-size: 37px;
  }

  .waitlist-invite strong {
    font-size: 27px;
  }
}
