:root {
    --navy: #13294b;
    --navy-soft: #1d3c68;
    --pink: #f65b86;
    --pink-deep: #d93f6e;
    --pink-soft: #ffe8ef;
    --blush: #fff5f8;
    --white: #ffffff;
    --gray: #f6f8fb;
    --gray-line: #dce5ef;
    --text: #25364d;
    --muted: #6b7c93;
    --shadow: 0 18px 50px rgba(19, 41, 75, 0.12);
    --shadow-soft: 0 12px 32px rgba(19, 41, 75, 0.08);
    --shadow-strong: 0 30px 90px rgba(19, 41, 75, 0.2);
}

html {
    scroll-behavior: smooth;
}

body {
    color: var(--text);
    background: var(--gray);
    font-family: Arial, Helvetica, sans-serif;
}

.site-header {
    align-items: center;
    gap: 28px;
    padding: 12px 6vw;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid rgba(220, 229, 239, 0.86);
}

.brand {
    display: inline-flex;
    align-items: center;
    min-height: 78px;
    flex: 0 0 auto;
}

.brand-logo {
    display: block;
    width: auto;
    height: 78px;
    max-width: 340px;
    object-fit: contain;
}

.site-nav {
    align-items: center;
    gap: 18px;
    color: var(--muted);
    font-size: 14px;
    font-weight: 700;
}

.site-nav a {
    position: relative;
    color: inherit;
}

.site-nav a:hover {
    color: var(--pink);
}

.site-nav a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -7px;
    left: 0;
    height: 2px;
    background: var(--pink);
    border-radius: 999px;
    opacity: 0;
    transform: scaleX(0.5);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.site-nav a:hover::after {
    opacity: 1;
    transform: scaleX(1);
}

.nav-actions {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-left: 8px;
}

.nav-login {
    color: var(--navy) !important;
}

.hero,
.section,
.feature-strip,
.testimonial-band,
.email-cta {
    padding-right: 6vw;
    padding-left: 6vw;
}

.landing-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(390px, 0.92fr);
    gap: 56px;
    align-items: center;
    min-height: 700px;
    padding-top: 76px;
    padding-bottom: 82px;
    overflow: hidden;
    background:
        radial-gradient(circle at 76% 18%, rgba(246, 91, 134, 0.22), transparent 28%),
        radial-gradient(circle at 10% 84%, rgba(19, 41, 75, 0.08), transparent 30%),
        linear-gradient(135deg, #ffffff 0%, #fff4f8 46%, #edf6ff 100%);
}

.landing-hero::after {
    content: "";
    position: absolute;
    right: 3vw;
    bottom: 26px;
    width: min(280px, 34vw);
    height: min(280px, 34vw);
    border: 36px solid rgba(246, 91, 134, 0.12);
    border-radius: 50%;
    pointer-events: none;
}

.hero-copy,
.hero-visual {
    position: relative;
    z-index: 1;
}

.eyebrow {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 16px;
    padding: 7px 12px;
    color: var(--pink-deep);
    background: var(--pink-soft);
    border: 1px solid rgba(246, 91, 134, 0.18);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 900;
}

.hero h1,
.page-title h1 {
    color: var(--navy);
    font-size: clamp(40px, 5.25vw, 66px);
    line-height: 1.04;
}

.hero-copy p {
    max-width: 660px;
    color: var(--muted);
    font-size: 20px;
    line-height: 1.75;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 30px 0 20px;
}

.trust-row {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    padding: 10px 14px;
    color: var(--muted);
    background: rgba(255, 255, 255, 0.76);
    border: 1px solid rgba(220, 229, 239, 0.9);
    border-radius: 999px;
    box-shadow: var(--shadow-soft);
}

.trust-row strong {
    color: var(--navy);
}

.learner-stack {
    display: inline-flex;
    align-items: center;
    padding-left: 8px;
}

.learner-stack i {
    display: block;
    width: 28px;
    height: 28px;
    margin-left: -8px;
    background:
        radial-gradient(circle at 50% 36%, rgba(255, 255, 255, 0.95) 0 7px, transparent 8px),
        radial-gradient(circle at 50% 90%, rgba(255, 255, 255, 0.9) 0 14px, transparent 15px),
        linear-gradient(135deg, var(--pink), #ffb4c8);
    border: 2px solid var(--white);
    border-radius: 50%;
    box-shadow: var(--shadow-soft);
}

.learner-stack i:nth-child(2) {
    background:
        radial-gradient(circle at 50% 36%, rgba(255, 255, 255, 0.95) 0 7px, transparent 8px),
        radial-gradient(circle at 50% 90%, rgba(255, 255, 255, 0.9) 0 14px, transparent 15px),
        linear-gradient(135deg, var(--navy-soft), #8da9cf);
}

.learner-stack i:nth-child(3) {
    background:
        radial-gradient(circle at 50% 36%, rgba(255, 255, 255, 0.95) 0 7px, transparent 8px),
        radial-gradient(circle at 50% 90%, rgba(255, 255, 255, 0.9) 0 14px, transparent 15px),
        linear-gradient(135deg, #ff9ab5, #ffd6e1);
}

.stars {
    color: #f7b731;
    letter-spacing: 0;
}

.button,
button,
input[type="submit"] {
    box-shadow: 0 10px 24px rgba(19, 41, 75, 0.18);
    font-weight: 800;
}

.button-pink {
    color: var(--white);
    background: linear-gradient(135deg, var(--pink), var(--pink-deep));
    box-shadow: 0 12px 28px rgba(246, 91, 134, 0.3);
}

.button-pink:hover {
    background: linear-gradient(135deg, #ff7098, var(--pink-deep));
}

.button-secondary {
    color: var(--navy);
    background: var(--white);
    border: 1px solid var(--gray-line);
}

.hero-panel,
.card,
.form-card,
.table-card,
.sensei-stage,
.speech-card,
.lesson-widget,
.feature-strip article,
.step-card,
.testimonial-card {
    border: 1px solid rgba(220, 229, 239, 0.9);
    box-shadow: var(--shadow);
}

.hero-visual {
    display: grid;
    gap: 18px;
    padding: 24px;
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.84), rgba(255, 255, 255, 0.48)),
        radial-gradient(circle at 50% 18%, rgba(246, 91, 134, 0.22), transparent 42%),
        radial-gradient(circle at 15% 88%, rgba(19, 41, 75, 0.1), transparent 34%);
    border: 1px solid rgba(255, 255, 255, 0.8);
    box-shadow: var(--shadow-strong);
}

.sensei-stage {
    position: relative;
    min-height: 340px;
    padding: 22px;
    overflow: hidden;
    background:
        linear-gradient(155deg, rgba(19, 41, 75, 0.98), rgba(29, 60, 104, 0.88)),
        radial-gradient(circle at 74% 22%, rgba(246, 91, 134, 0.42), transparent 34%);
    border-color: rgba(255, 255, 255, 0.26);
}

.sensei-portrait {
    position: absolute;
    right: 28px;
    bottom: 24px;
    display: grid;
    place-items: center;
    width: min(58%, 270px);
    aspect-ratio: 0.78;
    color: var(--white);
    background:
        radial-gradient(circle at 50% 16%, rgba(255, 255, 255, 0.92), transparent 15%),
        radial-gradient(circle at 50% 30%, #ffd4df 0 21%, transparent 22%),
        linear-gradient(145deg, var(--pink), #ff9ab5 48%, #6a7faa);
    border: 8px solid rgba(255, 255, 255, 0.28);
    border-radius: 28px 28px 8px 8px;
    box-shadow: 0 24px 70px rgba(5, 14, 28, 0.32);
    font-size: clamp(28px, 4vw, 48px);
    font-weight: 900;
}

.sensei-portrait::before,
.sensei-portrait::after {
    content: "";
    position: absolute;
    background: rgba(255, 255, 255, 0.36);
    border-radius: 999px;
}

.sensei-portrait::before {
    top: 19%;
    width: 44%;
    height: 13%;
}

.sensei-portrait::after {
    bottom: 13%;
    width: 66%;
    height: 28%;
    background: rgba(255, 255, 255, 0.2);
}

.speech-card,
.lesson-widget {
    padding: 20px;
}

.speech-card {
    position: relative;
    z-index: 2;
    width: min(78%, 360px);
    margin: 8px 0 0;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(12px);
}

.speech-card strong,
.speech-card span {
    display: block;
}

.speech-card strong {
    color: var(--navy);
    font-size: 18px;
}

.speech-card span {
    color: var(--muted);
}

.lesson-widget {
    width: min(94%, 430px);
    margin-top: -48px;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(10px);
    z-index: 3;
}

.lesson-widget-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}

.lesson-widget-header strong {
    color: var(--pink);
    font-size: 24px;
}

.lesson-widget .progress {
    margin: 12px 0 16px;
}

.quick-tiles {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.quick-tiles span,
.quick-tiles a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    min-height: 74px;
    padding: 13px;
    color: var(--navy);
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(220, 229, 239, 0.9);
    border-radius: 8px;
    font-size: 13px;
    font-weight: 900;
    box-shadow: var(--shadow-soft);
}

.quick-tiles a:hover {
    transform: translateY(-2px);
    color: var(--navy);
    box-shadow: 0 18px 46px rgba(19, 41, 75, 0.12);
}

.quick-tiles strong {
    color: var(--pink);
    font-size: 12px;
}

.section {
    padding-top: 64px;
    padding-bottom: 64px;
}

.section-header.centered {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.section-header h2,
.positioning-panel h2,
.email-cta h2 {
    margin: 0 0 12px;
    color: var(--navy);
    font-size: clamp(28px, 3.4vw, 44px);
    line-height: 1.1;
}

.section-header p {
    color: var(--muted);
    font-size: 18px;
}

.grid-four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.course-card {
    display: grid;
    gap: 12px;
    position: relative;
    min-height: 340px;
    padding: 18px;
    overflow: hidden;
}

.course-card:hover,
.feature-strip article:hover,
.step-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 22px 62px rgba(19, 41, 75, 0.14);
}

.course-card::after {
    content: "";
    position: absolute;
    right: -30px;
    bottom: -32px;
    width: 108px;
    height: 108px;
    background: var(--pink-soft);
    border-radius: 50%;
}

.course-card h3,
.course-card p,
.course-card .badge,
.course-card a,
.course-visual {
    position: relative;
    z-index: 1;
}

.course-card h3 {
    margin: 0;
}

.course-card p {
    margin: 0;
    color: var(--muted);
}

.course-card a {
    align-self: end;
    color: var(--pink-deep);
    font-weight: 900;
}

.course-visual {
    min-height: 128px;
    margin: -2px -2px 4px;
    overflow: hidden;
    background:
        radial-gradient(circle at 20% 25%, rgba(255, 255, 255, 0.5), transparent 18%),
        linear-gradient(135deg, var(--navy), var(--pink));
    border-radius: 8px;
}

.course-visual::before,
.course-visual::after {
    content: "";
    position: absolute;
    border-radius: 999px;
}

.course-visual::before {
    top: 24px;
    right: 28px;
    width: 58px;
    height: 58px;
    background: rgba(255, 255, 255, 0.82);
}

.course-visual::after {
    right: 52px;
    bottom: 20px;
    width: 132px;
    height: 56px;
    background: rgba(255, 255, 255, 0.2);
}

.jlpt-visual {
    background:
        radial-gradient(circle at 72% 28%, rgba(255, 255, 255, 0.54), transparent 18%),
        linear-gradient(135deg, #1d3c68, #7aa6d9);
}

.travel-visual {
    background:
        radial-gradient(circle at 18% 78%, rgba(255, 255, 255, 0.5), transparent 20%),
        linear-gradient(135deg, #f65b86, #ffc0d1);
}

.caregiver-visual {
    background:
        radial-gradient(circle at 72% 76%, rgba(255, 255, 255, 0.5), transparent 20%),
        linear-gradient(135deg, #13294b, #f65b86 72%);
}

.section-cta {
    margin-top: 28px;
    text-align: center;
}

.feature-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
    width: min(1180px, calc(100% - 12vw));
    margin: -38px auto 0;
    padding: 18px;
    background: var(--white);
    border: 1px solid rgba(220, 229, 239, 0.9);
    border-radius: 8px;
    box-shadow: var(--shadow);
    position: relative;
    z-index: 4;
}

.feature-strip article {
    padding: 18px;
    border-color: rgba(220, 229, 239, 0.7);
    box-shadow: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.feature-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 14px;
    color: var(--white);
    background: var(--pink);
    border-radius: 8px;
    font-weight: 900;
}

.steps-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.step-card {
    padding: 22px;
    background: var(--white);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.step-card span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 14px;
    color: var(--white);
    background: var(--navy);
    border-radius: 50%;
    font-weight: 900;
}

.positioning-section {
    background:
        linear-gradient(90deg, rgba(19, 41, 75, 0.04), rgba(246, 91, 134, 0.08)),
        var(--gray);
}

.positioning-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
    gap: 28px;
    align-items: center;
    max-width: 1180px;
    margin: 0 auto;
    padding: 34px;
    background: var(--white);
    border: 1px solid var(--gray-line);
    border-radius: 8px;
    box-shadow: var(--shadow);
}

.positioning-panel p {
    margin: 0;
    color: var(--muted);
    font-size: 18px;
}

.readiness-list {
    display: grid;
    gap: 10px;
}

.readiness-list span {
    padding: 13px 14px;
    color: var(--navy);
    background: var(--blush);
    border: 1px solid rgba(246, 91, 134, 0.16);
    border-radius: 8px;
    font-weight: 800;
}

.sensei-promo-section {
    background:
        radial-gradient(circle at 8% 20%, rgba(246, 91, 134, 0.12), transparent 24%),
        linear-gradient(135deg, #ffffff, #fff5f8 52%, #eef5fb);
}

.sensei-promo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    max-width: 1180px;
    margin: 0 auto;
}

.sensei-promo-card {
    display: grid;
    gap: 14px;
    align-content: start;
    min-height: 390px;
    padding: 26px;
    overflow: hidden;
    position: relative;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(220, 229, 239, 0.9);
    border-radius: 8px;
    box-shadow: var(--shadow);
}

.sensei-promo-card::after {
    content: "";
    position: absolute;
    right: -42px;
    bottom: -48px;
    width: 160px;
    height: 160px;
    background: rgba(246, 91, 134, 0.12);
    border-radius: 50%;
}

.goto-promo::after {
    background: rgba(19, 41, 75, 0.12);
}

.sensei-mini-portrait {
    display: grid;
    place-items: center;
    width: 96px;
    height: 112px;
    color: var(--white);
    background:
        radial-gradient(circle at 50% 22%, rgba(255, 255, 255, 0.92), transparent 16%),
        linear-gradient(145deg, var(--pink), #ff9ab5 55%, var(--navy-soft));
    border: 6px solid rgba(255, 255, 255, 0.8);
    border-radius: 26px 26px 8px 8px;
    box-shadow: var(--shadow-soft);
    font-size: 38px;
    font-weight: 900;
}

.goto-promo .sensei-mini-portrait {
    background:
        radial-gradient(circle at 50% 22%, rgba(255, 255, 255, 0.9), transparent 16%),
        linear-gradient(145deg, var(--navy), var(--navy-soft));
}

.sensei-promo-card h3,
.sensei-promo-card p,
.sensei-promo-card a,
.sensei-promo-card .badge,
.sensei-mini-portrait,
.readiness-mini-map {
    position: relative;
    z-index: 1;
}

.sensei-promo-card h3 {
    margin: 0;
    color: var(--navy);
    font-size: 24px;
}

.sensei-promo-card p {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

.readiness-mini-map {
    display: grid;
    gap: 10px;
    padding: 18px;
    background:
        radial-gradient(circle at 92% 18%, rgba(246, 91, 134, 0.22), transparent 28%),
        linear-gradient(145deg, var(--navy), var(--navy-soft));
    border-radius: 8px;
}

.readiness-mini-map span {
    padding: 10px 12px;
    color: var(--white);
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    font-weight: 900;
}

.testimonial-band {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr);
    gap: 24px;
    align-items: center;
    padding-top: 62px;
    padding-bottom: 62px;
    color: var(--white);
    background:
        radial-gradient(circle at 14% 18%, rgba(246, 91, 134, 0.24), transparent 28%),
        linear-gradient(135deg, #0d203b, var(--navy));
}

.testimonial-card {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 18px;
    align-items: center;
    padding: 24px;
    color: var(--text);
}

.testimonial-card blockquote {
    margin: 0;
    color: var(--navy);
    font-size: 20px;
    font-weight: 800;
    line-height: 1.35;
}

.photo-placeholder {
    width: 96px;
    height: 96px;
    background:
        radial-gradient(circle at 50% 34%, #ffffff 0 17px, transparent 18px),
        radial-gradient(circle at 50% 92%, #ffffff 0 42px, transparent 43px),
        linear-gradient(135deg, var(--pink), #ffb0c5);
    border-radius: 50%;
}

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

.stats-grid div {
    padding: 20px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
}

.stats-grid strong,
.stats-grid span {
    display: block;
}

.stats-grid strong {
    font-size: 28px;
}

.stats-grid span {
    color: rgba(255, 255, 255, 0.76);
}

.email-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.8fr);
    gap: 24px;
    align-items: center;
    padding-top: 42px;
    padding-bottom: 42px;
    color: var(--white);
    background:
        radial-gradient(circle at 12% 22%, rgba(255, 255, 255, 0.26), transparent 20%),
        linear-gradient(135deg, var(--pink), var(--pink-deep));
}

.email-cta h2,
.email-cta p {
    color: var(--white);
}

.email-cta p {
    margin: 0;
}

.email-cta form {
    display: flex;
    gap: 10px;
    padding: 8px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 8px;
}

.email-cta input {
    border: 0;
}

.email-cta button {
    white-space: nowrap;
    background: var(--navy);
}

.progress span {
    background: linear-gradient(90deg, var(--pink), #ff97b2);
}

.badge {
    color: var(--pink-deep);
    background: var(--pink-soft);
    font-weight: 900;
}

.site-footer {
    padding: 40px 6vw;
    color: rgba(255, 255, 255, 0.78);
    background: #0d203b;
}

.footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(160px, 0.4fr) minmax(180px, 0.4fr);
    gap: 28px;
}

.footer-brand {
    display: inline-flex !important;
    padding: 8px 10px;
    margin-bottom: 12px;
    background: var(--white);
    border-radius: 8px;
    min-height: auto;
}

.footer-logo {
    height: 64px;
    max-width: 300px;
}

.site-footer h3 {
    color: var(--white);
}

.site-footer a {
    display: block;
    margin-bottom: 8px;
    color: rgba(255, 255, 255, 0.78);
}

.footer-note {
    color: var(--pink-soft);
    font-weight: 800;
}

@media (max-width: 1120px) {
    .site-header {
        align-items: center;
    }

    .nav-toggle {
        display: inline-flex;
    }

    .site-nav {
        display: none;
        position: absolute;
        top: calc(100% + 8px);
        right: 6vw;
        left: 6vw;
        flex-direction: column;
        align-items: stretch;
        padding: 16px;
        background: var(--white);
        border: 1px solid var(--gray-line);
        border-radius: 8px;
        box-shadow: var(--shadow);
    }

    .site-nav.is-open {
        display: flex;
    }

    .nav-actions {
        display: grid;
        gap: 10px;
        margin-left: 0;
    }

    .landing-hero,
    .positioning-panel,
    .testimonial-band,
    .email-cta,
    .footer-grid {
        grid-template-columns: 1fr;
    }

    .feature-strip,
    .grid-four {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sensei-promo-grid {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 720px) {
    .brand-logo {
        height: 52px;
        max-width: 226px;
    }

    .brand {
        min-height: 56px;
    }

    .landing-hero {
        min-height: auto;
        padding-top: 48px;
        padding-bottom: 52px;
    }

    .hero,
    .grid,
    .grid-two,
    .grid-four,
    .feature-strip,
    .steps-grid,
    .stats-grid,
    .quick-tiles,
    .sensei-promo-grid,
    .sensei-card,
    .testimonial-card {
        grid-template-columns: 1fr;
    }

    .feature-strip {
        width: calc(100% - 10vw);
        margin-top: 0;
    }

    .hero h1,
    .page-title h1 {
        font-size: 36px;
    }

    .hero-copy p,
    .section-header p,
    .positioning-panel p {
        font-size: 16px;
    }

    .hero-actions,
    .email-cta form {
        flex-direction: column;
    }

    .hero-actions .button,
    .email-cta button {
        width: 100%;
    }

    .hero-visual,
    .positioning-panel {
        padding: 16px;
    }

    .sensei-stage {
        min-height: 360px;
        padding: 16px;
    }

    .sensei-portrait {
        right: 18px;
        bottom: 18px;
        width: min(70%, 230px);
    }

    .speech-card,
    .lesson-widget {
        width: 100%;
        margin-top: 0;
    }

    .photo-placeholder {
        width: 82px;
        height: 82px;
    }
}

/* Launch homepage polish */
.launch-homepage {
    background:
        linear-gradient(180deg, #ffffff 0%, #f7f9fd 38%, #fff7fa 100%);
}

.launch-homepage .site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    backdrop-filter: blur(18px);
    box-shadow: 0 12px 36px rgba(19, 41, 75, 0.06);
}

.button-navy {
    color: #ffffff;
    background: var(--navy);
}

.button-light {
    color: var(--navy);
    background: rgba(255, 255, 255, 0.92);
}

.launch-hero {
    isolation: isolate;
    grid-template-columns: minmax(0, 0.96fr) minmax(430px, 0.94fr);
    gap: clamp(34px, 5vw, 72px);
    padding-top: clamp(58px, 6vw, 92px);
    padding-bottom: clamp(62px, 7vw, 104px);
}

.launch-hero .hero-copy {
    max-width: 720px;
}

.launch-hero h1 {
    max-width: 760px;
    letter-spacing: 0;
}

.launch-hero .hero-copy p {
    max-width: 680px;
}

.sakura-field span {
    position: absolute;
    z-index: 0;
    display: block;
    width: 14px;
    height: 14px;
    background: rgba(246, 91, 134, 0.28);
    border-radius: 65% 35% 65% 35%;
    transform: rotate(28deg);
    animation: sakuraFloat 9s ease-in-out infinite;
}

.sakura-field span:nth-child(1) {
    top: 14%;
    left: 8%;
}

.sakura-field span:nth-child(2) {
    top: 22%;
    right: 34%;
    animation-delay: 1.6s;
}

.sakura-field span:nth-child(3) {
    right: 7%;
    bottom: 24%;
    animation-delay: 3s;
}

.sakura-field span:nth-child(4) {
    bottom: 14%;
    left: 42%;
    animation-delay: 4.4s;
}

@keyframes sakuraFloat {
    0%, 100% {
        transform: translateY(0) rotate(28deg);
    }

    50% {
        transform: translateY(-18px) rotate(42deg);
    }
}

.launch-pill-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.launch-pill-row span {
    padding: 9px 13px;
    color: var(--navy);
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(220, 229, 239, 0.92);
    border-radius: 999px;
    box-shadow: 0 10px 24px rgba(19, 41, 75, 0.07);
    font-size: 13px;
    font-weight: 900;
}

.launch-visual {
    min-height: 620px;
    padding: 22px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.76), rgba(255, 245, 248, 0.68)),
        radial-gradient(circle at 80% 10%, rgba(246, 91, 134, 0.16), transparent 34%);
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 32px;
    box-shadow: var(--shadow-strong);
    overflow: hidden;
}

.japan-scene {
    position: absolute;
    inset: 20px 20px auto 20px;
    height: 230px;
    overflow: hidden;
    background:
        linear-gradient(180deg, #dff0ff 0%, #fff8fb 62%, #ffffff 100%);
    border-radius: 26px;
    box-shadow: inset 0 -24px 54px rgba(19, 41, 75, 0.07);
}

.japan-scene .sun {
    position: absolute;
    top: 26px;
    right: 62px;
    width: 78px;
    height: 78px;
    background: linear-gradient(135deg, #ffb4c8, var(--pink));
    border-radius: 50%;
    box-shadow: 0 0 0 22px rgba(246, 91, 134, 0.12);
}

.japan-scene .fuji {
    position: absolute;
    right: 70px;
    bottom: -18px;
    width: 230px;
    height: 170px;
    background: linear-gradient(140deg, #ffffff 0 22%, #9eb6d3 23% 54%, #27456e 55%);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    opacity: 0.92;
}

.japan-scene .ridge {
    position: absolute;
    right: -24px;
    bottom: -30px;
    left: -24px;
    height: 92px;
    background: linear-gradient(135deg, rgba(19, 41, 75, 0.9), rgba(29, 60, 104, 0.86));
    clip-path: polygon(0 55%, 20% 32%, 38% 56%, 56% 24%, 74% 58%, 100% 28%, 100% 100%, 0 100%);
}

.launch-sensei-stage {
    position: absolute;
    top: 108px;
    right: 32px;
    left: 32px;
    min-height: 320px;
    background: transparent;
    box-shadow: none;
}

.launch-sensei-stage .speech-card {
    position: absolute;
    top: 34px;
    left: 0;
    z-index: 2;
    width: min(78%, 355px);
    border: 1px solid rgba(220, 229, 239, 0.88);
    box-shadow: 0 20px 42px rgba(19, 41, 75, 0.14);
}

.hana-portrait {
    right: 12px;
    bottom: 0;
    width: min(54%, 280px);
    height: 330px;
    background:
        radial-gradient(circle at 50% 26%, #fff4f8 0 46px, transparent 47px),
        radial-gradient(circle at 50% 23%, #273c60 0 72px, transparent 73px),
        linear-gradient(180deg, #ffd8e3 0 28%, var(--pink) 29% 54%, var(--navy) 55%);
    border: 8px solid rgba(255, 255, 255, 0.86);
    border-radius: 42% 42% 12px 12px;
    box-shadow: 0 28px 70px rgba(19, 41, 75, 0.24);
}

.hana-portrait span {
    position: absolute;
    right: 16px;
    bottom: 16px;
    color: #ffffff;
    font-weight: 900;
}

.launch-lesson-widget {
    position: absolute;
    right: 28px;
    bottom: 112px;
    z-index: 3;
    width: min(88%, 380px);
    padding: 22px;
    border: 1px solid rgba(220, 229, 239, 0.9);
    box-shadow: 0 24px 60px rgba(19, 41, 75, 0.16);
}

.launch-lesson-widget p:not(.meta) {
    margin: 6px 0 14px;
    color: var(--muted);
    font-size: 14px;
}

.launch-quick-tiles {
    position: absolute;
    right: 28px;
    bottom: 28px;
    left: 28px;
    z-index: 4;
}

.launch-quick-tiles a {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.launch-quick-tiles a:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 34px rgba(19, 41, 75, 0.14);
}

.launch-feature-strip {
    position: relative;
    z-index: 2;
    width: min(1180px, calc(100% - 12vw));
    margin: -34px auto 0;
    padding: 18px;
    background: #ffffff;
    border: 1px solid rgba(220, 229, 239, 0.88);
    border-radius: 28px;
    box-shadow: var(--shadow);
}

.launch-feature-strip article {
    min-height: 230px;
    background: linear-gradient(180deg, #ffffff, #fff8fb);
}

.launch-feature-strip small {
    display: block;
    margin-top: 10px;
    color: var(--pink-deep);
    font-weight: 900;
}

.launch-programs,
.filipino-section,
.ai-demo-section,
.founder-section {
    max-width: 1260px;
    margin: 0 auto;
}

.launch-course-card {
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.launch-course-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow);
}

.launch-course-card .course-visual {
    position: relative;
    display: grid;
    place-items: center;
    height: 152px;
    margin: -4px -4px 18px;
    color: #ffffff;
    background:
        radial-gradient(circle at 80% 18%, rgba(255, 255, 255, 0.34), transparent 24%),
        linear-gradient(135deg, var(--navy), var(--pink));
    border-radius: 18px;
    font-size: 24px;
    font-weight: 900;
}

.launch-course-card .course-visual span {
    padding: 8px 14px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
}

.jlpt-visual {
    background:
        radial-gradient(circle at 80% 18%, rgba(255, 255, 255, 0.34), transparent 24%),
        linear-gradient(135deg, #13294b, #6a92cb) !important;
}

.travel-visual {
    background:
        radial-gradient(circle at 80% 18%, rgba(255, 255, 255, 0.34), transparent 24%),
        linear-gradient(135deg, #365f8e, #f65b86) !important;
}

.caregiver-visual {
    background:
        radial-gradient(circle at 80% 18%, rgba(255, 255, 255, 0.34), transparent 24%),
        linear-gradient(135deg, #133f4b, #ff8dac) !important;
}

.connected-steps {
    position: relative;
}

.connected-steps .step-card {
    border: 1px solid rgba(220, 229, 239, 0.9);
    box-shadow: var(--shadow-soft);
}

.launch-positioning-panel {
    background:
        radial-gradient(circle at 86% 16%, rgba(246, 91, 134, 0.2), transparent 28%),
        linear-gradient(135deg, #ffffff, #fff2f6);
    border: 1px solid rgba(220, 229, 239, 0.88);
    box-shadow: var(--shadow);
}

.launch-positioning-panel .button {
    margin-top: 20px;
}

.launch-readiness-list {
    display: grid;
    gap: 12px;
}

.launch-readiness-list span {
    padding: 16px 18px;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(220, 229, 239, 0.86);
    box-shadow: 0 12px 24px rgba(19, 41, 75, 0.06);
}

.dual-sensei-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.launch-sensei-card {
    min-height: 100%;
}

.sensei-focus-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 0;
    margin: 22px 0;
    list-style: none;
}

.sensei-focus-list li {
    padding: 10px 12px;
    color: var(--navy);
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(220, 229, 239, 0.88);
    border-radius: 12px;
    font-size: 14px;
    font-weight: 900;
}

.jp-phrase {
    margin-bottom: 18px;
    padding: 14px 16px;
    color: var(--pink-deep);
    background: rgba(255, 232, 239, 0.74);
    border-radius: 16px;
    font-weight: 900;
}

.ai-demo-panel,
.founder-panel {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(320px, 0.68fr);
    gap: 34px;
    align-items: center;
    padding: clamp(26px, 4vw, 46px);
    background: #ffffff;
    border: 1px solid rgba(220, 229, 239, 0.88);
    border-radius: 28px;
    box-shadow: var(--shadow);
}

.prompt-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.prompt-chips a {
    padding: 10px 13px;
    color: var(--navy);
    background: var(--pink-soft);
    border-radius: 999px;
    font-weight: 900;
}

.ai-chat-preview {
    display: grid;
    gap: 12px;
    padding: 18px;
    background:
        radial-gradient(circle at 90% 0%, rgba(246, 91, 134, 0.16), transparent 28%),
        #f7f9fd;
    border-radius: 22px;
}

.chat-line {
    max-width: 92%;
    padding: 12px 14px;
    border-radius: 16px;
    font-size: 14px;
    line-height: 1.55;
}

.user-line {
    justify-self: end;
    color: #ffffff;
    background: var(--navy);
}

.sensei-line {
    justify-self: start;
    color: var(--navy);
    background: #ffffff;
    border: 1px solid rgba(220, 229, 239, 0.88);
}

.trust-band {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    padding: clamp(38px, 5vw, 58px) 6vw;
    color: #ffffff;
    background:
        radial-gradient(circle at 18% 22%, rgba(246, 91, 134, 0.34), transparent 24%),
        linear-gradient(135deg, #0d203b, #16375f);
}

.trust-band div {
    padding: 24px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 22px;
}

.trust-band span,
.trust-band strong {
    display: block;
}

.trust-band span {
    margin-bottom: 12px;
    color: var(--pink-soft);
    font-size: 24px;
    font-weight: 900;
}

.trust-band strong {
    margin-bottom: 8px;
    font-size: 20px;
}

.trust-band p {
    margin: 0;
    color: rgba(255, 255, 255, 0.76);
}

.founder-panel {
    grid-template-columns: 190px minmax(0, 1fr);
    background:
        linear-gradient(135deg, #ffffff, #fff8fb);
}

.founder-mark {
    display: grid;
    place-items: center;
    width: 160px;
    height: 160px;
    color: #ffffff;
    background:
        radial-gradient(circle at 70% 16%, rgba(255, 255, 255, 0.3), transparent 26%),
        linear-gradient(135deg, var(--navy), var(--pink));
    border-radius: 36px;
    box-shadow: var(--shadow);
    font-size: 64px;
    font-weight: 900;
}

.launch-cta {
    grid-template-columns: minmax(0, 1fr) auto;
}

.cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: flex-end;
}

.launch-homepage .site-footer {
    border-top: 6px solid rgba(246, 91, 134, 0.42);
}

@media (max-width: 1120px) {
    .launch-hero,
    .dual-sensei-grid,
    .ai-demo-panel,
    .founder-panel,
    .launch-cta {
        grid-template-columns: 1fr;
    }

    .launch-visual {
        min-height: 660px;
    }

    .founder-mark {
        width: 128px;
        height: 128px;
        font-size: 52px;
    }

    .cta-actions {
        justify-content: flex-start;
    }

    .trust-band {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .site-header {
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .launch-hero {
        gap: 28px;
    }

    .launch-pill-row span {
        width: 100%;
        text-align: center;
    }

    .launch-visual {
        min-height: 720px;
        padding: 14px;
        border-radius: 24px;
    }

    .japan-scene {
        inset: 14px 14px auto 14px;
        height: 190px;
    }

    .launch-sensei-stage {
        top: 90px;
        right: 18px;
        left: 18px;
    }

    .launch-sensei-stage .speech-card {
        width: 100%;
    }

    .hana-portrait {
        right: 8px;
        width: min(76%, 240px);
        height: 300px;
    }

    .launch-lesson-widget {
        right: 16px;
        bottom: 156px;
        left: 16px;
        width: auto;
    }

    .launch-quick-tiles {
        right: 16px;
        bottom: 16px;
        left: 16px;
    }

    .launch-feature-strip {
        width: calc(100% - 8vw);
        padding: 12px;
        border-radius: 22px;
    }

    .sensei-focus-list,
    .ai-demo-panel,
    .founder-panel {
        grid-template-columns: 1fr;
    }

    .founder-mark {
        width: 100px;
        height: 100px;
        border-radius: 24px;
        font-size: 42px;
    }

    .cta-actions,
    .cta-actions .button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sakura-field span,
    .launch-quick-tiles a,
    .launch-course-card {
        animation: none;
        transition: none;
    }
}
