:root {
    --ocean-deep: #02131f;
    --ocean-dark: #03283a;
    --ocean: #07506a;
    --aqua: #10bad0;
    --aqua-light: #7ff4ff;
    --blue-light: #77bfff;
    --white: #ffffff;
    --text: rgba(255, 255, 255, 0.94);
    --muted: rgba(221, 247, 255, 0.72);
    --glass: rgba(255, 255, 255, 0.09);
    --glass-strong: rgba(255, 255, 255, 0.14);
    --border: rgba(255, 255, 255, 0.18);
    --shadow: 0 28px 80px rgba(0, 9, 18, 0.45);
    --radius-xl: 34px;
    --radius-lg: 26px;
    --radius-md: 20px;
    --container: 1180px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-height: 100vh;
    color: var(--text);
    background:
        radial-gradient(circle at 20% 10%, rgba(47, 211, 228, 0.22), transparent 30%),
        radial-gradient(circle at 82% 25%, rgba(54, 138, 255, 0.18), transparent 34%),
        linear-gradient(160deg, #02111c 0%, #032a3c 48%, #06465d 100%);
    font-family:
        Inter,
        -apple-system,
        BlinkMacSystemFont,
        "SF Pro Display",
        "SF Pro Text",
        "Segoe UI",
        sans-serif;
    overflow-x: hidden;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -4;
    background:
        repeating-radial-gradient(
            ellipse at 50% -20%,
            rgba(255, 255, 255, 0.055) 0,
            rgba(255, 255, 255, 0.018) 2px,
            transparent 6px,
            transparent 22px
        );
    opacity: 0.55;
    animation: caustics 18s linear infinite;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    max-width: 100%;
    display: block;
}

button,
input,
textarea {
    font: inherit;
}

.container {
    width: min(calc(100% - 32px), var(--container));
    margin-inline: auto;
}

.water-background {
    position: fixed;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: -3;
}

.light-ray {
    position: absolute;
    width: 34vw;
    height: 140vh;
    top: -30vh;
    filter: blur(22px);
    opacity: 0.16;
    transform: rotate(18deg);
    background: linear-gradient(
        to bottom,
        rgba(151, 247, 255, 0.7),
        rgba(31, 171, 216, 0.06),
        transparent
    );
    animation: rayMove 16s ease-in-out infinite alternate;
}

.light-ray.one {
    left: 4%;
}

.light-ray.two {
    right: -5%;
    animation-delay: -8s;
    transform: rotate(-17deg);
}

.bubble {
    position: absolute;
    bottom: -100px;
    border-radius: 50%;
    border: 1px solid rgba(211, 253, 255, 0.35);
    background: rgba(255, 255, 255, 0.06);
    box-shadow: inset 0 0 12px rgba(255, 255, 255, 0.12);
    animation: bubbleUp linear infinite;
}

.bubble:nth-child(3) {
    width: 18px;
    height: 18px;
    left: 8%;
    animation-duration: 14s;
}

.bubble:nth-child(4) {
    width: 9px;
    height: 9px;
    left: 28%;
    animation-duration: 10s;
    animation-delay: -4s;
}

.bubble:nth-child(5) {
    width: 24px;
    height: 24px;
    left: 62%;
    animation-duration: 18s;
    animation-delay: -9s;
}

.bubble:nth-child(6) {
    width: 13px;
    height: 13px;
    left: 83%;
    animation-duration: 12s;
    animation-delay: -2s;
}

.bubble:nth-child(7) {
    width: 7px;
    height: 7px;
    left: 46%;
    animation-duration: 9s;
    animation-delay: -6s;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 30;
    padding: 16px 0;
    transition: 0.3s ease;
}

.site-header.scrolled {
    background: rgba(1, 18, 29, 0.68);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 58px;
    gap: 24px;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-weight: 800;
    letter-spacing: -0.03em;
    font-size: 1.14rem;
}

.brand-logo {
    position: relative;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background:
        radial-gradient(circle at 30% 18%, #bbfbff 0 7%, transparent 8%),
        linear-gradient(150deg, #5ff2ff, #159bbb 55%, #0b5d9b);
    box-shadow:
        0 10px 30px rgba(30, 217, 232, 0.25),
        inset 0 1px 1px rgba(255, 255, 255, 0.6);
    overflow: hidden;
}

.brand-logo::before,
.brand-logo::after {
    content: "";
    position: absolute;
    left: -12px;
    width: 70px;
    height: 18px;
    border-radius: 50%;
    border: 3px solid rgba(255, 255, 255, 0.75);
}

.brand-logo::before {
    bottom: 4px;
    transform: rotate(-8deg);
}

.brand-logo::after {
    bottom: -4px;
    opacity: 0.55;
    transform: rotate(8deg);
}

.brand-logo span {
    position: relative;
    z-index: 2;
    font-weight: 900;
    color: white;
    text-shadow: 0 2px 8px rgba(0, 45, 75, 0.7);
}

.nav-links {
    display: flex;
    align-items: center;
    gap: 28px;
    font-size: 0.94rem;
    color: rgba(255, 255, 255, 0.76);
}

.nav-links a {
    transition: color 0.2s ease;
}

.nav-links a:hover {
    color: white;
}

.nav-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 20px;
    border-radius: 16px;
    font-weight: 700;
    color: #01222e;
    background: linear-gradient(135deg, #bdfaff, #5de9f4);
    box-shadow: 0 12px 34px rgba(64, 227, 239, 0.24);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.nav-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 38px rgba(64, 227, 239, 0.34);
}

.mobile-menu-button {
    display: none;
    width: 46px;
    height: 46px;
    border: 1px solid var(--border);
    border-radius: 15px;
    color: white;
    background: var(--glass);
}

.hero {
    position: relative;
    min-height: 850px;
    display: flex;
    align-items: center;
    padding: 80px 0 180px;
    overflow: hidden;
}

.hero-grid {
    position: relative;
    z-index: 4;
    display: grid;
    grid-template-columns: 1.02fr 0.98fr;
    align-items: center;
    gap: 74px;
}

.badge {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid rgba(133, 242, 255, 0.25);
    border-radius: 999px;
    background: rgba(78, 214, 231, 0.08);
    color: #baf9ff;
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.badge-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #8ef6ff;
    box-shadow: 0 0 16px #5befff;
}

.hero h1 {
    margin: 26px 0 22px;
    max-width: 720px;
    font-size: clamp(3.4rem, 7vw, 6.4rem);
    line-height: 0.94;
    letter-spacing: -0.07em;
}

.gradient-text {
    display: block;
    color: transparent;
    background: linear-gradient(100deg, #ffffff, #a9f8ff 44%, #68cbff);
    -webkit-background-clip: text;
    background-clip: text;
}

.hero-description {
    max-width: 650px;
    margin: 0;
    color: var(--muted);
    font-size: clamp(1.04rem, 2vw, 1.25rem);
    line-height: 1.72;
}

.hero-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 34px;
}

.primary-button,
.secondary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 0 24px;
    border-radius: 18px;
    font-weight: 800;
    transition: 0.22s ease;
}

.primary-button {
    color: #011f2a;
    background: linear-gradient(135deg, #d2fdff, #6eeaf4);
    box-shadow: 0 18px 45px rgba(66, 225, 238, 0.25);
}

.secondary-button {
    color: white;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(14px);
}

.primary-button:hover,
.secondary-button:hover {
    transform: translateY(-3px);
}

.hero-note {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 28px;
    color: rgba(221, 247, 255, 0.64);
    font-size: 0.88rem;
}

.hero-note span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.phone-stage {
    position: relative;
    min-height: 630px;
    display: grid;
    place-items: center;
}

.phone-glow {
    position: absolute;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    filter: blur(12px);
    background:
        radial-gradient(circle, rgba(86, 235, 245, 0.34), rgba(20, 140, 190, 0.06) 52%, transparent 70%);
    animation: pulseGlow 5s ease-in-out infinite;
}

.phone {
    position: relative;
    z-index: 2;
    width: min(330px, 78vw);
    aspect-ratio: 0.49;
    padding: 11px;
    border-radius: 54px;
    background: linear-gradient(145deg, #26333b, #080d11 60%, #26343c);
    box-shadow:
        0 50px 110px rgba(0, 0, 0, 0.55),
        0 0 0 1px rgba(255, 255, 255, 0.14),
        inset 0 0 0 1px rgba(255, 255, 255, 0.13);
    transform: rotate(5deg);
    animation: phoneFloat 6s ease-in-out infinite;
}

.phone-screen {
    position: relative;
    height: 100%;
    overflow: hidden;
    border-radius: 45px;
    background:
        radial-gradient(circle at 50% 8%, rgba(116, 245, 255, 0.3), transparent 26%),
        linear-gradient(180deg, #083e56 0%, #032332 46%, #02121c 100%);
}

.dynamic-island {
    position: absolute;
    z-index: 5;
    top: 14px;
    left: 50%;
    width: 104px;
    height: 29px;
    border-radius: 999px;
    background: #020405;
    transform: translateX(-50%);
}

.app-screen-content {
    padding: 64px 18px 22px;
}

.app-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.app-title {
    font-size: 1.32rem;
    font-weight: 800;
    letter-spacing: -0.04em;
}

.app-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: linear-gradient(145deg, #87f5ff, #177d9e);
}

.app-hero-card {
    position: relative;
    height: 215px;
    margin-top: 20px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0)),
        linear-gradient(145deg, #118eae, #06546f 58%, #033146);
    box-shadow: 0 22px 50px rgba(0, 11, 20, 0.35);
}

.app-hero-card::before,
.app-hero-card::after {
    content: "";
    position: absolute;
    left: -20%;
    width: 140%;
    height: 70px;
    border-radius: 50%;
    border: 4px solid rgba(213, 253, 255, 0.62);
}

.app-hero-card::before {
    bottom: 48px;
    transform: rotate(-6deg);
}

.app-hero-card::after {
    bottom: 18px;
    opacity: 0.34;
    transform: rotate(5deg);
}

.sketch-face {
    position: absolute;
    z-index: 2;
    top: 26px;
    left: 50%;
    width: 104px;
    height: 128px;
    border: 2px solid rgba(231, 254, 255, 0.88);
    border-radius: 46% 46% 44% 44%;
    transform: translateX(-50%);
    opacity: 0.86;
}

.sketch-face::before,
.sketch-face::after {
    content: "";
    position: absolute;
    top: 47px;
    width: 14px;
    height: 4px;
    border-radius: 50%;
    background: rgba(240, 254, 255, 0.84);
}

.sketch-face::before {
    left: 22px;
}

.sketch-face::after {
    right: 22px;
}

.app-card-label {
    position: absolute;
    z-index: 4;
    left: 18px;
    bottom: 15px;
    font-size: 0.9rem;
    font-weight: 800;
}

.app-section-title {
    margin: 20px 2px 11px;
    font-size: 0.85rem;
    font-weight: 700;
}

.app-style-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.app-style {
    min-height: 92px;
    padding: 11px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.075);
}

.app-style-icon {
    width: 36px;
    height: 36px;
    margin-bottom: 8px;
    border-radius: 12px;
    background: linear-gradient(145deg, #83f2fb, #147c9f);
}

.app-style strong {
    display: block;
    font-size: 0.72rem;
}

.app-style small {
    color: rgba(255, 255, 255, 0.57);
    font-size: 0.58rem;
}

.floating-card {
    position: absolute;
    z-index: 4;
    padding: 14px 16px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 20px;
    background: rgba(7, 49, 65, 0.64);
    backdrop-filter: blur(18px);
    box-shadow: 0 18px 46px rgba(0, 11, 20, 0.32);
}

.floating-card strong {
    display: block;
    font-size: 0.88rem;
}

.floating-card span {
    color: rgba(220, 249, 255, 0.66);
    font-size: 0.72rem;
}

.floating-card.one {
    top: 15%;
    right: -2%;
    animation: miniFloat 5s ease-in-out infinite;
}

.floating-card.two {
    left: -8%;
    bottom: 18%;
    animation: miniFloat 6s ease-in-out infinite reverse;
}

.hero-wave {
    position: absolute;
    left: -5%;
    bottom: -2px;
    width: 110%;
    height: 220px;
    overflow: hidden;
}

.wave-layer {
    position: absolute;
    left: -10%;
    width: 120%;
    height: 200px;
    border-radius: 44% 52% 0 0 / 38% 42% 0 0;
    transform-origin: center bottom;
}

.wave-layer.one {
    bottom: -100px;
    background: rgba(38, 190, 211, 0.14);
    animation: waveShift 10s ease-in-out infinite alternate;
}

.wave-layer.two {
    bottom: -122px;
    background: rgba(56, 210, 224, 0.13);
    animation: waveShift 14s ease-in-out infinite alternate-reverse;
}

.wave-layer.three {
    bottom: -150px;
    background: rgba(139, 242, 249, 0.09);
    animation: waveShift 18s ease-in-out infinite alternate;
}

.section {
    position: relative;
    padding: 110px 0;
}

.section-heading {
    max-width: 720px;
    margin: 0 auto 52px;
    text-align: center;
}

.eyebrow {
    margin-bottom: 14px;
    color: #92f4fc;
    font-size: 0.83rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.section-heading h2 {
    margin: 0;
    font-size: clamp(2.3rem, 5vw, 4.3rem);
    line-height: 1.02;
    letter-spacing: -0.055em;
}

.section-heading p {
    margin: 20px auto 0;
    max-width: 660px;
    color: var(--muted);
    line-height: 1.7;
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.glass-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.045));
    box-shadow: var(--shadow);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
}

.glass-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
        120deg,
        transparent 25%,
        rgba(255, 255, 255, 0.07),
        transparent 70%
    );
    transform: translateX(-100%);
    transition: transform 0.8s ease;
}

.glass-card:hover::after {
    transform: translateX(100%);
}

.feature-card {
    min-height: 315px;
    padding: 26px;
}

.feature-art {
    position: relative;
    height: 150px;
    margin-bottom: 24px;
    overflow: hidden;
    border-radius: 22px;
    background:
        radial-gradient(circle at 30% 20%, rgba(147, 248, 255, 0.38), transparent 32%),
        linear-gradient(145deg, #0d7893, #04405a);
}

.feature-art::before,
.feature-art::after {
    content: "";
    position: absolute;
    left: -15%;
    width: 130%;
    border-radius: 50%;
    border: 3px solid rgba(214, 254, 255, 0.58);
}

.feature-art::before {
    height: 68px;
    bottom: 20px;
    transform: rotate(-5deg);
}

.feature-art::after {
    height: 58px;
    bottom: -4px;
    opacity: 0.35;
    transform: rotate(7deg);
}

.feature-symbol {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    font-size: 3rem;
    transform: translate(-50%, -50%);
    filter: drop-shadow(0 10px 20px rgba(0, 30, 45, 0.35));
}

.feature-card h3 {
    margin: 0 0 10px;
    font-size: 1.3rem;
    letter-spacing: -0.03em;
}

.feature-card p {
    margin: 0;
    color: var(--muted);
    line-height: 1.62;
    font-size: 0.94rem;
}

.before-after {
    display: grid;
    grid-template-columns: 1fr 0.82fr;
    gap: 44px;
    align-items: center;
}

.comparison {
    position: relative;
    min-height: 530px;
    overflow: hidden;
}

.comparison-image {
    position: absolute;
    inset: 0;
}

.comparison-image.before {
    background:
        radial-gradient(circle at 50% 32%, #ddaf8d 0 11%, transparent 12%),
        radial-gradient(ellipse at 50% 62%, #2d6380 0 19%, transparent 20%),
        linear-gradient(150deg, #6dd4e0, #155f7a 52%, #063148);
}

.comparison-image.after {
    width: 52%;
    overflow: hidden;
    border-right: 2px solid white;
    background:
        repeating-linear-gradient(
            168deg,
            rgba(255, 255, 255, 0.92) 0 2px,
            transparent 2px 8px
        ),
        radial-gradient(circle at 50% 32%, transparent 0 11%, #e8fcff 12% 12.8%, transparent 13%),
        radial-gradient(ellipse at 50% 62%, transparent 0 19%, #e8fcff 20% 20.8%, transparent 21%),
        linear-gradient(150deg, #0a5972, #02293b);
    background-size: auto, auto, auto, cover;
}

.comparison-handle {
    position: absolute;
    z-index: 6;
    top: 50%;
    left: 52%;
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    color: #063545;
    background: white;
    box-shadow: 0 10px 36px rgba(0, 0, 0, 0.32);
    transform: translate(-50%, -50%);
    cursor: ew-resize;
    font-size: 1.2rem;
    font-weight: 900;
}

.comparison-label {
    position: absolute;
    z-index: 5;
    top: 20px;
    padding: 9px 13px;
    border-radius: 12px;
    font-size: 0.74rem;
    font-weight: 800;
    background: rgba(1, 23, 34, 0.62);
    backdrop-filter: blur(10px);
}

.comparison-label.before-label {
    right: 20px;
}

.comparison-label.after-label {
    left: 20px;
}

.comparison-content h2 {
    margin: 0 0 22px;
    font-size: clamp(2.2rem, 4.5vw, 4rem);
    line-height: 1.03;
    letter-spacing: -0.055em;
}

.comparison-content p {
    color: var(--muted);
    line-height: 1.75;
}

.check-list {
    display: grid;
    gap: 14px;
    margin-top: 28px;
}

.check-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.check-icon {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    color: #013243;
    background: linear-gradient(145deg, #c6fdff, #5be5ef);
    font-size: 0.74rem;
    font-weight: 900;
}

.steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.step-card {
    padding: 30px;
}

.step-number {
    display: inline-grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin-bottom: 28px;
    border-radius: 16px;
    color: #042838;
    background: linear-gradient(145deg, #c5fbff, #58dfea);
    font-weight: 900;
}

.step-card h3 {
    margin: 0 0 10px;
    font-size: 1.25rem;
}

.step-card p {
    margin: 0;
    color: var(--muted);
    line-height: 1.65;
}

.privacy-card {
    display: grid;
    grid-template-columns: 1fr 0.7fr;
    gap: 48px;
    align-items: center;
    padding: 54px;
}

.privacy-card h2 {
    margin: 0;
    font-size: clamp(2.2rem, 4.5vw, 4rem);
    line-height: 1.04;
    letter-spacing: -0.055em;
}

.privacy-card p {
    max-width: 650px;
    color: var(--muted);
    line-height: 1.72;
}

.shield {
    position: relative;
    width: 220px;
    height: 250px;
    margin: auto;
    clip-path: polygon(50% 0%, 91% 14%, 84% 69%, 50% 100%, 16% 69%, 9% 14%);
    background:
        radial-gradient(circle at 50% 28%, rgba(255, 255, 255, 0.65), transparent 18%),
        linear-gradient(145deg, #77f1fa, #147f9f 58%, #06435c);
    box-shadow: 0 35px 70px rgba(38, 221, 234, 0.22);
}

.shield::after {
    content: "✓";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: white;
    font-size: 5rem;
    font-weight: 900;
    text-shadow: 0 8px 20px rgba(1, 45, 65, 0.35);
}

.faq-list {
    display: grid;
    gap: 14px;
    max-width: 900px;
    margin: auto;
}

.faq-item {
    border: 1px solid var(--border);
    border-radius: 21px;
    background: rgba(255, 255, 255, 0.065);
    backdrop-filter: blur(18px);
    overflow: hidden;
}

.faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 22px 24px;
    border: 0;
    color: white;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font-weight: 750;
}

.faq-symbol {
    font-size: 1.35rem;
    transition: transform 0.25s ease;
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    color: var(--muted);
    transition: max-height 0.35s ease;
}

.faq-answer-inner {
    padding: 0 24px 23px;
    line-height: 1.7;
}

.faq-item.open .faq-answer {
    max-height: 230px;
}

.faq-item.open .faq-symbol {
    transform: rotate(45deg);
}

.cta {
    padding-top: 60px;
}

.cta-card {
    position: relative;
    overflow: hidden;
    padding: 74px 34px;
    text-align: center;
}

.cta-card::before {
    content: "";
    position: absolute;
    inset: -50%;
    background: conic-gradient(
        from 0deg,
        transparent,
        rgba(101, 234, 244, 0.18),
        transparent 28%
    );
    animation: rotateGlow 12s linear infinite;
}

.cta-content {
    position: relative;
    z-index: 2;
}

.cta h2 {
    max-width: 760px;
    margin: 0 auto;
    font-size: clamp(2.3rem, 5vw, 4.6rem);
    line-height: 1;
    letter-spacing: -0.06em;
}

.cta p {
    max-width: 620px;
    margin: 22px auto 30px;
    color: var(--muted);
    line-height: 1.65;
}

.site-footer {
    padding: 80px 0 34px;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr 0.8fr;
    gap: 50px;
    padding-bottom: 46px;
}

.footer-description {
    max-width: 470px;
    margin-top: 18px;
    color: var(--muted);
    line-height: 1.7;
}

.footer-title {
    margin-bottom: 16px;
    font-size: 0.85rem;
    color: #a8f4fb;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.footer-links {
    display: grid;
    gap: 11px;
    color: rgba(228, 249, 255, 0.72);
}

.footer-links a:hover {
    color: white;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding-top: 26px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    color: rgba(218, 246, 255, 0.55);
    font-size: 0.84rem;
}

.legal-page {
    padding: 76px 0 120px;
}

.legal-shell {
    max-width: 900px;
    margin: auto;
    padding: 48px;
}

.legal-shell h1 {
    margin: 0 0 12px;
    font-size: clamp(2.5rem, 6vw, 4.6rem);
    letter-spacing: -0.06em;
}

.legal-updated {
    margin-bottom: 38px;
    color: #9ceff7;
    font-size: 0.9rem;
}

.legal-shell h2 {
    margin-top: 36px;
    font-size: 1.45rem;
}

.legal-shell h3 {
    margin-top: 26px;
}

.legal-shell p,
.legal-shell li {
    color: var(--muted);
    line-height: 1.75;
}

.legal-shell a {
    color: #8ff6ff;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.contact-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
    margin-top: 34px;
}

.contact-card {
    padding: 26px;
}

.contact-card h3 {
    margin-top: 0;
}

.mobile-menu {
    display: none;
}

@keyframes caustics {
    from {
        transform: translate3d(-2%, -2%, 0) scale(1.05);
    }
    50% {
        transform: translate3d(2%, 1%, 0) scale(1.12);
    }
    to {
        transform: translate3d(-2%, -2%, 0) scale(1.05);
    }
}

@keyframes rayMove {
    from {
        transform: translateX(-4%) rotate(18deg);
    }
    to {
        transform: translateX(12%) rotate(13deg);
    }
}

@keyframes bubbleUp {
    from {
        transform: translateY(0) translateX(0) scale(0.8);
        opacity: 0;
    }
    12% {
        opacity: 0.8;
    }
    to {
        transform: translateY(-120vh) translateX(45px) scale(1.25);
        opacity: 0;
    }
}

@keyframes phoneFloat {
    0%,
    100% {
        transform: translateY(0) rotate(5deg);
    }
    50% {
        transform: translateY(-18px) rotate(2deg);
    }
}

@keyframes pulseGlow {
    0%,
    100% {
        transform: scale(0.92);
        opacity: 0.55;
    }
    50% {
        transform: scale(1.08);
        opacity: 0.85;
    }
}

@keyframes miniFloat {
    0%,
    100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-12px);
    }
}

@keyframes waveShift {
    from {
        transform: translateX(-2%) rotate(-1deg) scaleY(0.95);
    }
    to {
        transform: translateX(2%) rotate(1deg) scaleY(1.08);
    }
}

@keyframes rotateGlow {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 980px) {
    .nav-links,
    .nav-button {
        display: none;
    }

    .mobile-menu-button {
        display: inline-grid;
        place-items: center;
    }

    .mobile-menu {
        position: fixed;
        z-index: 50;
        top: 80px;
        left: 16px;
        right: 16px;
        display: grid;
        gap: 8px;
        padding: 18px;
        border: 1px solid var(--border);
        border-radius: 22px;
        background: rgba(2, 27, 40, 0.94);
        backdrop-filter: blur(24px);
        transform: translateY(-15px);
        opacity: 0;
        pointer-events: none;
        transition: 0.25s ease;
    }

    .mobile-menu.open {
        transform: translateY(0);
        opacity: 1;
        pointer-events: auto;
    }

    .mobile-menu a {
        padding: 13px 14px;
        border-radius: 13px;
        background: rgba(255, 255, 255, 0.05);
    }

    .hero {
        min-height: auto;
        padding-top: 60px;
    }

    .hero-grid,
    .before-after,
    .privacy-card {
        grid-template-columns: 1fr;
    }

    .hero-content {
        text-align: center;
    }

    .hero-description {
        margin-inline: auto;
    }

    .hero-actions,
    .hero-note {
        justify-content: center;
    }

    .phone-stage {
        margin-top: 35px;
    }

    .features-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .privacy-card {
        text-align: center;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .footer-brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 680px) {
    .container {
        width: min(calc(100% - 22px), var(--container));
    }

    .site-header {
        padding: 10px 0;
    }

    .hero {
        padding: 48px 0 150px;
    }

    .hero h1 {
        font-size: clamp(3.1rem, 17vw, 5rem);
    }

    .hero-description {
        font-size: 1rem;
    }

    .hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .primary-button,
    .secondary-button {
        width: 100%;
    }

    .hero-note {
        flex-direction: column;
        gap: 9px;
    }

    .phone {
        width: 280px;
    }

    .phone-stage {
        min-height: 560px;
    }

    .floating-card.one {
        right: 0;
    }

    .floating-card.two {
        left: 0;
    }

    .section {
        padding: 78px 0;
    }

    .features-grid,
    .steps-grid,
    .contact-grid,
    .footer-grid {
        grid-template-columns: 1fr;
    }

    .comparison {
        min-height: 430px;
    }

    .privacy-card,
    .legal-shell {
        padding: 28px 20px;
    }

    .shield {
        width: 160px;
        height: 185px;
    }

    .cta-card {
        padding: 54px 20px;
    }

    .footer-brand {
        grid-column: auto;
    }

    .footer-bottom {
        flex-direction: column;
    }
}

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