:root {
    --page-bg: #0a4d1e;
    --text: #fff;
    --text-muted: #ffffffb8;
    --field-border: #ffffffe6;
    --field-bg: #ffffff0a;
    --btn-green: #1fb81b;
    --btn-green-hover: #19a116;
    --btn-text: #0a3d17;
    --accent: #1fb81b;
    --error: #ff8f8f
}

.page {
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 600px;
    display: flex
}

.card {
    background: 0 0;
    border: none;
    width: 100%;
    padding: 0
}

.step {
    margin: 0;
    padding-top: 1rem;
    padding-bottom: 1rem
}

.copyright {
    color: var(--text-muted);
    text-align: center;
    margin-top: 1.4rem;
    font-size: .7rem
}

.card__title {
    text-align: center;
    color: var(--text);
    margin-bottom: 1.5rem;
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.3
}

.card__title-asterisk {
    color: red
}

.field {
    margin-bottom: 1rem;
    position: relative
}

.field__control {
    border: 2px solid var(--field-border);
    color: #000;
    background: #fff;
    border-radius: 10px;
    outline: none;
    width: 100%;
    height: 50px;
    padding: 0 1rem;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700
}

.field__control::placeholder {
    color: gray;
    opacity: 1
}

.field__control::-webkit-input-placeholder {
    color: gray
}

.field__control::-moz-placeholder {
    color: gray;
    opacity: 1
}

select.field__control {
    cursor: pointer;
    appearance: auto
}

select.field__control option {
    color: #1a1a1a
}

.field__control:focus {
    border-color: #fff;
    box-shadow: 0 0 0 3px #ffffff40
}

.field__control--readonly,
.field__control:disabled {
    color: #4a4a4a;
    cursor: not-allowed;
    background: #e6e6e6;
    border-color: #c8c8c8
}

.field__label {
    letter-spacing: .02em;
    text-transform: none;
    color: gray;
    pointer-events: none;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .95rem;
    font-weight: 700;
    transition: opacity .12s;
    position: absolute;
    top: 25px;
    left: 1rem;
    right: 1rem;
    overflow: hidden;
    transform: translateY(-50%)
}

.field__req {
    color: gray;
    margin-left: 1px
}

input.field__control:focus~.field__label,
input.field__control:not(:placeholder-shown)~.field__label,
select.field__control:focus~.field__label,
select.field__control:valid~.field__label {
    opacity: 0
}

.field--error .field__control {
    border-color: var(--error)
}

.field__error {
    color: var(--error);
    margin-top: .25rem;
    font-size: .72rem;
    display: block
}

.recaptcha {
    justify-content: center;
    margin: 1.1rem 0 .4rem;
    display: flex
}

.form-error {
    color: var(--error);
    text-align: center;
    margin-top: 1rem;
    font-size: .82rem
}

.row {
    display: block
}

.actions {
    justify-content: center;
    margin-top: 1.8rem;
    display: flex
}

.step-note {
    color: var(--text);
    text-align: center;
    margin-top: 2rem;
    font-size: .72rem;
    line-height: 1.5
}

.step-note__link {
    color: inherit;
    text-decoration: underline
}

.btn {
    background: var(--btn-green);
    min-width: 200px;
    max-width: 100%;
    color: var(--btn-text);
    letter-spacing: .05em;
    text-transform: uppercase;
    cursor: pointer;
    border: none;
    border-radius: 6px;
    padding: .95rem 2rem;
    font-size: 1rem;
    font-weight: 800;
    transition: background .15s
}

.btn:hover {
    background: var(--btn-green-hover)
}

.btn:disabled {
    opacity: .65;
    cursor: not-allowed
}

.loading-dots {
    vertical-align: middle;
    justify-content: center;
    align-items: center;
    gap: .35em;
    height: 1em;
    display: inline-flex
}

.loading-dots__dot {
    background: currentColor;
    border-radius: 50%;
    width: .5em;
    height: .5em;
    animation: 1.2s ease-in-out infinite both loading-dots-bounce
}

.loading-dots__dot:first-child {
    animation-delay: -.32s
}

.loading-dots__dot:nth-child(2) {
    animation-delay: -.16s
}

@keyframes loading-dots-bounce {

    0%,
    80%,
    to {
        opacity: .4;
        transform: scale(.5)
    }

    40% {
        opacity: 1;
        transform: scale(1)
    }
}

@media (prefers-reduced-motion:reduce) {
    .loading-dots__dot {
        opacity: .7;
        animation: none
    }
}

.consent {
    margin-top: .6rem
}

.consent p {
    color: var(--text);
    margin-bottom: .7rem;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.6
}

.consent a,
.consent__link {
    color: var(--text);
    text-decoration: underline
}

.register-symbol {
    font-size: .6em;
    line-height: 1
}

.checkbox {
    color: var(--text);
    cursor: pointer;
    align-items: flex-start;
    gap: .5rem;
    margin-bottom: .7rem;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.6;
    display: flex
}

.checkbox input {
    width: 16px;
    height: 16px;
    accent-color: var(--btn-green);
    flex-shrink: 0;
    margin-top: 2px
}

.section-label {
    color: var(--text);
    margin-bottom: .7rem;
    font-size: .9rem;
    font-weight: 700
}

.rewards {
    flex-direction: column;
    margin-bottom: .5rem;
    display: flex
}

.rewards__options {
    flex-direction: column;
    gap: .6rem;
    min-width: 0;
    display: flex
}

.reward {
    color: var(--text);
    cursor: pointer;
    border: none;
    border-radius: 10px;
    align-items: center;
    gap: .75rem;
    padding: .6rem .8rem;
    font-weight: 700;
    transition: background .18s, transform .18s;
    display: flex
}

.reward:hover {
    background: #ffffff14;
    transform: translate(4px)
}

.reward__radio {
    border: .5px solid var(--field-border);
    background: #fff;
    border-radius: 50%;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    transition: border-color .18s, box-shadow .18s;
    position: relative
}

.reward__radio:after {
    content: "";
    background: var(--accent);
    border-radius: 50%;
    transition: transform .2s;
    position: absolute;
    inset: 3px;
    transform: scale(0)
}

.reward--selected .reward__radio {
    border-color: var(--accent)
}

.reward--selected .reward__radio:after {
    transform: scale(1)
}

.reward input:focus-visible~.reward__radio {
    box-shadow: 0 0 0 3px #ffffff73
}

.reward__label {
    font-size: 1.1rem
}

.reward__label-mark {
    vertical-align: super;
    margin-left: .05em;
    font-size: .65em;
    line-height: 0
}

.reward-preview {
    place-items: center;
    min-height: 220px;
    display: grid;
    overflow: hidden
}

.reward-preview>* {
    grid-area: 1/1
}

.reward-preview__img {
    object-fit: contain;
    opacity: 0;
    pointer-events: none;
    max-width: 100%;
    max-height: 300px;
    transition: opacity .5s cubic-bezier(.22, 1, .36, 1), transform .5s cubic-bezier(.22, 1, .36, 1);
    transform: scale(.96)
}

.reward-preview__img.is-active {
    opacity: 1;
    transform: scale(1)
}

.reward-preview__placeholder {
    color: var(--text-muted);
    text-align: center;
    font-size: .85rem
}

@media (prefers-reduced-motion:reduce) {

    .reward,
    .reward__radio,
    .reward__radio:after,
    .reward-preview__img {
        transition: none
    }

    .reward:hover {
        transform: none
    }
}

.upload {
    border: 2px solid var(--field-border);
    cursor: pointer;
    background: #fff;
    border-radius: 10px;
    justify-content: space-between;
    align-items: center;
    gap: .5rem;
    min-height: 50px;
    padding: .5rem 1rem;
    display: flex
}

.upload__text {
    color: gray;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .9rem;
    font-weight: 700;
    overflow: hidden
}

.upload--filled .upload__text {
    color: #000
}

.upload svg {
    fill: none;
    stroke: gray;
    stroke-width: 1.6px;
    flex-shrink: 0;
    width: 22px;
    height: 22px
}

.upload--filled svg {
    stroke: #000
}

.upload__hint {
    color: var(--text-muted);
    margin-top: .4rem;
    font-size: .72rem;
    line-height: 1.5
}

.upload__hint a {
    color: var(--text);
    text-decoration: underline
}

.mandatory-note {
    text-align: left;
    color: var(--text-muted);
    margin-top: .8rem;
    font-size: .68rem;
    font-style: italic
}

.thankyou {
    text-align: center;
    justify-content: center;
    align-items: center;
    min-height: 180px;
    padding: 1.5rem 1rem;
    display: flex
}

.thankyou p {
    color: var(--text);
    font-size: 2rem;
    font-style: italic;
    font-weight: 900;
    line-height: 1.6
}

@media (width>=480px) {
    .copyright {
        margin-top: 1.6rem
    }

    .card__title {
        margin-bottom: 1.6rem;
        font-size: 1.3rem
    }

    .row {
        grid-template-columns: 1fr 1fr;
        gap: .9rem;
        display: grid
    }

    .btn {
        min-width: 220px;
        padding: .95rem 2.25rem
    }

    .rewards {
        flex-direction: row;
        align-items: stretch
    }

    .rewards__options {
        flex: 0 36%
    }

    .reward-preview {
        min-height: 320px
    }

    .reward-preview__img {
        min-height: 335px
    }

    .thankyou {
        min-height: 210px;
        padding: 2rem 1rem
    }
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0
}

html {
    -webkit-text-size-adjust: 100%
}

body {
    color: #fff;
    background: #0a4d1e;
    font-family: Arial, Segoe UI, Helvetica, sans-serif
}

#root {
    justify-content: center;
    align-items: flex-start;
    padding: 1.25rem;
    display: flex
}

.sr-only {
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    position: absolute;
    overflow: hidden
}