:root {
    color-scheme:light;
    --ink:#192a39;
    --muted:#4c5e68;
    --accent:#b53347;
    --paper:#faf9f6;
    --line:#dadfdc;
}
* {
    box-sizing:border-box;
}
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font:1rem/1.7 system-ui,-apple-system,sans-serif;
}
a {
    color:var(--accent);
    text-underline-offset:4px;
    overflow-wrap:anywhere;
}
a:focus-visible {
    outline:3px solid var(--accent);
    outline-offset:5px;
}
header,main,footer {
    max-width:1180px;
    margin:auto;
    padding:0 40px;
}
header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding-top:26px;
    padding-bottom:26px;
    border-bottom:1px solid var(--line);
}
.brand {
    font-size:1.3rem;
    font-weight:750;
    text-decoration:none;
    color:var(--ink);
}
.brand span {
    display:block;
    font-size:.875rem;
    font-weight:400;
    color:var(--muted);
}
nav {
    display:flex;
    gap:24px;
    flex-wrap:wrap;
}
nav a {
    font-size:.9375rem;
}
.hero {
    display:grid;
    grid-template-columns:1.5fr 1fr;
    gap:70px;
    align-items:center;
    padding:76px 0;
}
.eyebrow,.number {
    font-size:.875rem;
    font-weight:650;
    letter-spacing:.1em;
    color:var(--muted);
}
h1 {
    font:500 clamp(2.5rem,5vw,4.6rem)/1.1 Georgia,serif;
    letter-spacing:-.04em;
    margin:20px 0 26px;
    overflow-wrap:anywhere;
}
h1 em {
    color:var(--accent);
    font-weight:400;
}
.intro {
    font-size:1.125rem;
    max-width:600px;
}
.actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:30px;
}
.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:25px;
    background:var(--ink);
    border:1px solid var(--ink);
    color:white;
    text-decoration:none;
    font-weight:650;
    padding:12px 22px;
    border-radius:6px;
}
.button:hover {
    background:#30495c;
}
.secondary {
    background:transparent;
    color:var(--ink);
}
.secondary:hover {
    background:#e9eceb;
}
.note {
    font-size:.875rem;
    color:var(--muted);
}
.study {
    background:#fff;
    border:1px solid var(--line);
    border-top:5px solid var(--accent);
    padding:36px;
    text-align:center;
    box-shadow:12px 14px 0 #e9ece9;
    border-radius:5px;
}
.study img {
    border-radius:16px;
}
.japanese {
    font:clamp(3rem,8vw,5.5rem)/1.2 serif;
    margin:28px 0 8px;
}
.reading {
    color:var(--muted);
    margin:0;
}
.meaning {
    font:2rem Georgia,serif;
    margin:14px 0 32px;
}
.study-foot {
    border-top:1px solid var(--line);
    padding-top:18px;
    font-size:.875rem;
    color:var(--muted);
}
.features {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:40px;
    padding:36px 0 60px;
    border-top:1px solid var(--line);
}
h2 {
    font-size:1.45rem;
    line-height:1.35;
    letter-spacing:-.02em;
}
.features p,.account p {
    color:var(--muted);
}
.account {
    display:grid;
    grid-template-columns:1fr 1.5fr;
    gap:70px;
    border-top:1px solid var(--line);
    padding:40px 0 60px;
}
.account h2 {
    font:2.3rem/1.2 Georgia,serif;
}
.account p:first-child {
    margin-top:0;
}
footer {
    border-top:1px solid var(--line);
    padding-top:24px;
    padding-bottom:32px;
    display:flex;
    justify-content:space-between;
    gap:25px;
    flex-wrap:wrap;
    font-size:.875rem;
    color:var(--muted);
}
.legal {
    max-width:800px;
    margin:56px auto 80px;
}
.legal h1 {
    font-size:3rem;
}
.legal h2 {
    margin-top:36px;
}
.legal h3 {
    margin-top:24px;
}
.legal p {
    overflow-wrap:anywhere;
}
@media(max-width:760px) {
    header,main,footer {
        padding-left:22px;
        padding-right:22px;
    }
    header {
        align-items:flex-start;
        gap:16px;
    }
    header nav {
        gap:8px 16px;
        justify-content:flex-end;
    }
    .hero {
        grid-template-columns:1fr;
        gap:36px;
        padding:42px 0;
    }
    .study {
        max-width:440px;
        width:100%;
        margin:auto;
    }
    .features,.account {
        grid-template-columns:1fr;
        gap:20px;
        padding:30px 0;
    }
    .features h2 {
        margin-top:8px;
    }
    .legal {
        margin-top:36px;
    }
    .legal h1 {
        font-size:2.5rem;
    }
}
@media(prefers-reduced-motion:no-preference) {
    a {
        transition:background-color .15s;
    }
}
