@media (prefers-color-scheme: dark) {
    body { background-color: #0f0f0f; color: #a8a8a8; }
    .logo-light { display: none; }
    .logo-dark { display: inline; }
    a { color: #d8d8d8; }
    footer, footer a { color: #6a6a6a; }
    .legal h2, .legal h3 { color: #d8d8d8; }
    .button { background: #d8d8d8; color: #0f0f0f; }
    input:not([type=checkbox]), select, textarea { background: #161616; color: #d8d8d8; border-color: rgba(255, 255, 255, 0.08); }
    input:not([type=checkbox]):focus, select:focus, textarea:focus { border-color: rgba(255, 255, 255, 0.3); }
    .consent input { background-color: #161616; border-color: rgba(255, 255, 255, 0.08); }
    .consent input:focus-visible { border-color: rgba(255, 255, 255, 0.3); }
    .consent input:checked { background-color: #d8d8d8; border-color: #d8d8d8; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8'%3E%3Cpath d='M1 4l3 3 5-6' fill='none' stroke='%230f0f0f' stroke-width='1.5'/%3E%3C/svg%3E"); }
    select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a8a8a8' stroke-width='1.5'/%3E%3C/svg%3E"); }
}
@media (prefers-color-scheme: light) {
    body { background-color: #f7f7f7; color: #555; }
    .logo-light { display: inline; }
    .logo-dark { display: none; }
    a { color: #222; }
    footer, footer a { color: #999; }
    .legal h2, .legal h3 { color: #222; }
    .button { background: #222; color: #f7f7f7; }
    input:not([type=checkbox]), select, textarea { background: #fff; color: #222; border-color: rgba(0, 0, 0, 0.08); }
    input:not([type=checkbox]):focus, select:focus, textarea:focus { border-color: rgba(0, 0, 0, 0.3); }
    .consent input { background-color: #fff; border-color: rgba(0, 0, 0, 0.08); }
    .consent input:focus-visible { border-color: rgba(0, 0, 0, 0.3); }
    .consent input:checked { background-color: #222; border-color: #222; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8'%3E%3Cpath d='M1 4l3 3 5-6' fill='none' stroke='%23f7f7f7' stroke-width='1.5'/%3E%3C/svg%3E"); }
    select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23555' stroke-width='1.5'/%3E%3C/svg%3E"); }
}
body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}
.stack, footer {
    margin: 0 auto;
    padding: 80px 0;
    width: min(420px, calc(100vw - 48px));
}
.logo {
    height: 70px; /* 1/10 of 700px source */
}
h2 {
    margin: 32px 0 12px;
    font-size: 15px;
    font-weight: normal;
    line-height: 1.6;
}
.app-icon {
    display: block;
    width: 64px; /* 1/6 of 384px source */
}
.button {
    display: inline-block;
    margin-top: 32px;
    padding: 10px 18px;
    border: 0;
    border-radius: 999px;
    font: inherit;
    font-size: 15px;
    font-weight: 450;
    text-decoration: none;
    cursor: pointer;
}
p {
    margin: 24px 0 0;
    font-size: 15px;
    line-height: 1.6;
}
label { display: block; margin-top: 16px; font-size: 13px; }
input:not([type=checkbox]), select, textarea {
    display: block; box-sizing: border-box; width: 100%; margin-top: 6px;
    padding: 0 12px; border-width: 1px; border-style: solid; border-radius: 0; font: inherit; font-size: 15px;
    appearance: none; -webkit-appearance: none; outline: none;
}
input:not([type=checkbox]), select { height: 42px; }
select { padding-right: 32px; background-repeat: no-repeat; background-position: right 12px center; }
textarea { padding: 10px 12px; min-height: 140px; resize: vertical; }
.consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 20px; line-height: 18px; }
.consent input {
    appearance: none; -webkit-appearance: none; flex-shrink: 0;
    width: 18px; height: 18px; margin: 0; border-width: 1px; border-style: solid; border-radius: 0;
    background-repeat: no-repeat; background-position: center; outline: none; cursor: pointer;
}
footer {
    margin-top: auto; /* pins to bottom when the page is short */
    padding: 0 0 32px;
    font-size: 12px;
    line-height: 1.6;
}
footer nav { display: flex; gap: 16px; margin-top: 8px; }
footer a { text-decoration: none; }
footer a:hover { text-decoration: underline; }
.legal h2 { margin: 40px 0 0; font-size: 22px; font-weight: 600; line-height: 1.3; }
.legal h3 { margin: 32px 0 0; font-size: 15px; font-weight: 600; line-height: 1.6; }
.legal h2 + p, .legal h3 + p { margin-top: 8px; }
