@font-face {
    font-family: "Koodak";
    src: url("../fonts/Digi Koodak Bold.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}


/* =========================================================
   VARIABLES
========================================================= */

:root {
    --color1: #7C1155;
    --color1-light: #a52a76;
    --color1-dark: #540b3a;

    --color2: #1a1f33;
    --color2-light: #252b45;

    --white: #ffffff;
    --text-dark: #171a29;
    --text-muted: #666b7e;

    --input-bg: #f5f4f7;

    --border: rgba(26, 31, 51, 0.12);

    --shadow-soft:
        0 15px 40px rgba(26, 31, 51, 0.12);

    --shadow-strong:
        0 25px 70px rgba(10, 10, 20, 0.25);
}


/* =========================================================
   RESET
========================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-height: 100vh;

    font-family: "Koodak", sans-serif;

    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(124, 17, 85, 0.12),
            transparent 35%
        ),
        var(--color2);

    color: var(--text-dark);
}

button,
input,
textarea {
    font-family: inherit;
}

button,
input,
textarea {
    outline: none;
}

button {
    -webkit-tap-highlight-color: transparent;
}

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


/* =========================================================
   BACKGROUND
========================================================= */

.background {
    min-height: 100vh;

    background:
        radial-gradient(
            circle at 50% 10%,
            rgba(124, 17, 85, 0.18),
            transparent 32%
        );

    overflow-x: hidden;
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes logo {
    0% {
        transform: translateY(25rem);
        opacity: 0;
    }

    99.9% {
        transform: translateY(0);
        opacity: 1;
    }

    100% {
        transform: translateY(0);
        opacity: 0;
    }
}


@keyframes appear {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}


@keyframes click {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(0.65);
    }

    100% {
        transform: scale(1);
        border: 2px dashed #fff;

        box-shadow:
            0 0 0 8px rgba(124, 17, 85, 0.12),
            0 0 35px rgba(124, 17, 85, 0.5);
    }
}


@keyframes wrapper-appear {
    0% {
        opacity: 0;

        width: 3rem;
        height: 20rem;

        border-radius: 100%;
        margin-top: 3rem;
    }

    100% {
        opacity: 1;

        width: 100%;
        height: 100%;

        border-radius: 3rem;
        margin-top: 0;
    }
}


@keyframes welcome {
    0% {
        opacity: 0;
        transform: translateY(3rem);
    }

    50% {
        opacity: 1;
        transform: translateY(0);
    }

    75% {
        opacity: 0;
    }

    100% {
        opacity: 0;
        transform: translateY(-3rem);
    }
}


@keyframes form {
    0% {
        opacity: 0;
        transform: translateY(0);
    }

    100% {
        opacity: 1;
        transform: translateY(-6rem);
    }
}


@keyframes anjoman-elmi {
    0% {
        opacity: 0;
        transform: translateY(-3rem);
    }

    100% {
        opacity: 1;
        transform: translateY(-6rem);
    }
}


/* =========================================================
   MAIN LAYOUT
========================================================= */

.container {
    position: relative;

    width: min(650px, 100%);

    margin-right: auto;
    margin-left: auto;

    margin-top: 2rem;
}

.form-frame {
    position: relative;

    display: flex;
    justify-content: center;

    min-height: 49rem;

    margin-bottom: 2rem;
}


/* =========================================================
   LOGOS
========================================================= */

.anjoman-logo,
.anjoman-logo2 {
    position: absolute;

    z-index: 5;

    width: 6rem;
    height: 6rem;

    margin-top: 3rem;

    border-radius: 50%;

    object-fit: cover;

    box-shadow:
        0 10px 25px rgba(0, 0, 0, 0.22);
}


.anjoman-logo {
    animation:
        logo 1.5s 100ms 1 both;

    animation-timing-function:
        cubic-bezier(0.4, 0, 0.15, 1);
}


.anjoman-logo2 {
    opacity: 0;

    animation:
        appear 1ms linear 1.58s 1 both,
        click 700ms cubic-bezier(0.4, 0, 0.2, 1)
        1.9s 1 both;
}


/* =========================================================
   WRAPPER
========================================================= */

.wrapper {
    position: relative;

    z-index: 0;

    width: 3rem;
    min-height: 50rem;

    margin-right: auto;
    margin-left: auto;

    margin-top: 3rem;

    padding-top: 10rem;

    border-radius: 100%;

    background:
        radial-gradient(
            circle at 50% 5%,
            rgba(255, 255, 255, 0.12),
            transparent 22%
        ),
        linear-gradient(
            160deg,
            var(--color1) 0%,
            #681044 35%,
            var(--color2) 100%
        );

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        0 30px 80px rgba(0, 0, 0, 0.25);

    opacity: 0;

    animation:
        wrapper-appear 1s ease 2s 1 forwards;

    text-align: center;

    align-content: center;
    justify-content: center;

    overflow: visible;
}


/* =========================================================
   WELCOME
========================================================= */

.welcome {
    margin-top: 2rem;

    color: var(--white);

    font-size: 2rem;
    font-weight: bold;

    text-shadow:
        0 5px 20px rgba(0, 0, 0, 0.2);

    opacity: 0;

    animation:
        welcome 4s ease 2.25s 1 forwards;
}


/* =========================================================
   ASSOCIATION TITLE
========================================================= */

.anjoman-elmi {
    color: var(--white);

    font-size: 2rem;
    font-weight: bold;

    text-shadow:
        0 5px 20px rgba(0, 0, 0, 0.25);

    opacity: 0;

    animation:
        anjoman-elmi 1s ease 5.5s 1 forwards;
}


/* =========================================================
   FORM
========================================================= */

.form {
    position: relative;

    z-index: 2;

    width: min(33rem, calc(100% - 2rem));

    min-height: 28rem;

    margin-top: 3rem;
    margin-right: auto;
    margin-left: auto;

    padding:
        1rem 0 3rem;

    border-radius: 2rem;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.98),
            rgba(249, 247, 250, 0.96)
        );

    border:
        1px solid rgba(255, 255, 255, 0.85);

    box-shadow:
        0 30px 70px rgba(0, 0, 0, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);

    opacity: 0;

    animation:
        form 1s ease 5.5s 1 forwards;
}


/* =========================================================
   USER ICON
========================================================= */

.user-icon {
    position: absolute;

    z-index: 5;

    width: 4rem;
    height: 4rem;

    left: 50%;
    top: -2rem;

    transform: translateX(-50%);

    padding: 0.75rem;

    border-radius: 50%;

    color: var(--color1);

    background:
        linear-gradient(
            145deg,
            #ffffff,
            #f0edf2
        );

    border:
        1px solid rgba(124, 17, 85, 0.1);

    box-shadow:
        0 12px 25px rgba(0, 0, 0, 0.18),
        0 0 0 7px rgba(255, 255, 255, 0.15);
}


/* =========================================================
   FORM TITLE
========================================================= */

.sign-up {
    position: relative;

    width: max-content;

    margin:
        1.8rem auto 0.4rem;

    padding:
        0.25rem 1.5rem 0.45rem;

    color: var(--text-dark);

    font-size: 1.8rem;
    font-weight: bold;

    letter-spacing: 0.02rem;
}


/* =========================================================
   UNDERLINE
========================================================= */

.under-line {
    width: min(20rem, 80%);
    height: 2px;

    margin:
        0 auto;

    background:
        linear-gradient(
            to right,
            transparent,
            var(--color1) 20%,
            var(--color1) 80%,
            transparent
        );

    opacity: 0.55;
}


/* =========================================================
   INPUTS
========================================================= */

.inputs {
    width: 100%;

    margin-top: 0.5rem;

    padding-bottom: 1rem;
}


/* =========================================================
   STEPS
========================================================= */

.step {
    display: none;

    width: 100%;

    min-height: 10rem;

    padding-top: 3rem;

    animation:
        stepIn 0.35s ease;
}


.step.active {
    display: block;
}


@keyframes stepIn {
    from {
        opacity: 0;
        transform: translateX(20px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


/* =========================================================
   FIELD
========================================================= */

.field {
    position: relative;

    width: 100%;

    margin-bottom: 1.4rem;
}


/* =========================================================
   LABEL
========================================================= */

.form-text {
    position: relative;

    display: block;

    width: calc(100% - 4rem);

    margin-right: 2rem;

    margin-bottom: 0.55rem;

    padding-right: 1rem;

    color: var(--text-dark);

    font-size: 1.12rem;
    font-weight: bold;

    line-height: 1.7;

    text-align: right;
}


.form-text::before {
    content: "";

    position: absolute;

    right: 0;
    top: 0.65rem;

    width: 0.42rem;
    height: 0.42rem;

    border-radius: 50%;

    background:
        var(--color1);

    box-shadow:
        0 0 0 4px rgba(124, 17, 85, 0.08);
}


/* =========================================================
   INPUT
========================================================= */

.form-input {
    display: block;

    width: calc(100% - 4rem);
    height: 2.8rem;

    margin-right: 2rem;
    margin-bottom: 1.3rem;

    padding:
        0.4rem 1rem;

    border:
        1px solid transparent;

    border-radius: 0.9rem;

    background:
        var(--input-bg);

    color: var(--text-dark);

    font-size: 1rem;

    box-shadow:
        inset 0 1px 3px rgba(0, 0, 0, 0.04),
        0 4px 12px rgba(26, 31, 51, 0.04);

    transition:
        0.25s ease;
}


.form-input:focus {
    border-color:
        rgba(124, 17, 85, 0.4);

    background:
        #ffffff;

    box-shadow:
        0 0 0 4px rgba(124, 17, 85, 0.08),
        0 8px 20px rgba(26, 31, 51, 0.08);

    transform:
        translateX(-2px);
}


/* =========================================================
   INVALID
========================================================= */

.form-input.invalid,
.textarea.invalid {
    border-color: #c62828;

    box-shadow:
        0 0 0 4px rgba(198, 40, 40, 0.08);
}


/* =========================================================
   SKILL BOX
========================================================= */

.skill-box {
    width: min(25rem, calc(100% - 3rem));

    margin:
        2rem auto;

    padding:
        1.1rem 1rem 1.2rem;

    border-radius: 1.3rem;

    background:
        linear-gradient(
            145deg,
            rgba(124, 17, 85, 0.06),
            rgba(26, 31, 51, 0.025)
        );

    border:
        1px solid rgba(124, 17, 85, 0.08);
}


.skill-label {
    width: 100%;

    margin-right: 0;

    margin-bottom: 0.7rem;

    text-align: center;

    padding-right: 0;
}


.skill-label::before {
    display: none;
}


.skill-description {
    display: flex;

    justify-content: space-between;

    width: min(18rem, 90%);

    margin:
        0 auto 0.5rem;

    padding:
        0 0.3rem;

    color: var(--text-muted);

    font-size: 0.85rem;
}


.rating {
    display: flex;

    justify-content: center;

    gap: 0.55rem;

    direction: ltr;
}


.rating button {
    position: relative;

    width: 3rem;
    height: 3rem;

    border:
        1px solid rgba(26, 31, 51, 0.14);

    border-radius: 0.85rem;

    background:
        #ffffff;

    color:
        var(--text-dark);

    font-size: 1.2rem;

    font-weight: bold;

    cursor: pointer;

    box-shadow:
        0 5px 15px rgba(26, 31, 51, 0.07);

    transition:
        transform 0.2s ease,
        background 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}


.rating button:hover {
    transform:
        translateY(-3px);

    border-color:
        var(--color1);

    color:
        var(--color1);

    box-shadow:
        0 8px 20px rgba(124, 17, 85, 0.16);
}


.rating button.selected {
    color:
        #ffffff;

    border-color:
        var(--color1);

    background:
        linear-gradient(
            145deg,
            var(--color1-light),
            var(--color1)
        );

    box-shadow:
        0 8px 22px rgba(124, 17, 85, 0.28);

    transform:
        translateY(-2px);
}


/* =========================================================
   LARGE INPUT
========================================================= */

.wide-input {
    width: calc(100% - 4rem);
}


/* =========================================================
   TEXTAREA
========================================================= */

.textarea {
    display: block;

    width: calc(100% - 4rem);
    min-height: 8rem;

    margin-right: 2rem;
    margin-bottom: 1.5rem;

    padding:
        0.8rem 1rem;

    resize: vertical;

    border:
        1px solid transparent;

    border-radius: 1rem;

    background:
        var(--input-bg);

    color:
        var(--text-dark);

    font-size: 1rem;

    line-height: 1.8;

    box-shadow:
        inset 0 1px 3px rgba(0, 0, 0, 0.04),
        0 4px 12px rgba(26, 31, 51, 0.04);

    transition:
        0.25s ease;
}


.textarea:focus {
    border-color:
        rgba(124, 17, 85, 0.4);

    background:
        #ffffff;

    box-shadow:
        0 0 0 4px rgba(124, 17, 85, 0.08),
        0 8px 20px rgba(26, 31, 51, 0.08);
}


/* =========================================================
   NAVIGATION
========================================================= */

.navigation {
    display: flex;

    align-items: center;
    justify-content: center;

    gap: 1rem;

    width: 100%;

    margin-top: 3rem;
}


.nav-button {
    width: 7rem;
    height: 2.8rem;

    border: none;

    border-radius: 0.9rem;

    background:
        var(--color2);

    color: #ffffff;

    font-size: 1rem;
    font-weight: bold;

    cursor: pointer;

    transition:
        0.2s ease;
}


.nav-button:hover {
    background:
        var(--color2-light);

    transform:
        translateY(-2px);
}


.nav-button:disabled {
    opacity: 0.35;

    cursor: not-allowed;

    transform: none;
}


.step-counter {
    min-width: 4rem;

    color: var(--text-muted);

    font-size: 0.95rem;

    text-align: center;
}


/* =========================================================
   SUBMIT
========================================================= */

.submit-button {
    display: none;

    width: 13rem;
    height: 3rem;

    margin:
        3rem auto 0;

    border:
        none;

    border-radius: 1rem;

    background:
        linear-gradient(
            135deg,
            var(--color1-light),
            var(--color1)
        );

    color:
        #ffffff;

    font-size: 1.2rem;
    font-weight: bold;

    cursor: pointer;

    box-shadow:
        0 10px 25px rgba(124, 17, 85, 0.25);

    transition:
        0.25s ease;
}


.submit-button:hover {
    transform:
        translateY(-3px);

    box-shadow:
        0 15px 30px rgba(124, 17, 85, 0.35);
}


.submit-button:active {
    transform:
        translateY(0) scale(0.98);
}


/* =========================================================
   SUCCESS
========================================================= */

.success-message {
    padding: 6rem 1.5rem;

    color: var(--color1);

    font-size: 1.5rem;
    font-weight: bold;

    text-align: center;

    animation:
        stepIn 0.4s ease;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 700px) {

    .container {
        width: 100%;
    }

    .form-frame {
        min-height: 55rem;
    }

    .wrapper {
        width: 100%;

        min-height: 45rem;

        border-radius: 2rem;
    }

    .form {
        width: calc(100% - 2rem);

        min-height: 25rem;

        border-radius: 1.5rem;
    }

    .under-line {
        width: 70%;
    }

    .skill-box {
        width: calc(100% - 3rem);
    }

    .form-input,
    .wide-input,
    .textarea {
        width: calc(100% - 3rem);

        margin-right: 1.5rem;
    }

    .form-text {
        width: calc(100% - 3rem);

        margin-right: 1.5rem;

        font-size: 1rem;
    }

    .rating {
        gap: 0.4rem;
    }

    .rating button {
        width: 2.7rem;
        height: 2.7rem;
    }

    .sign-up {
        padding-top: 0.5rem;
    }

    .navigation {
        gap: 0.6rem;
    }

    .nav-button {
        width: 6.5rem;
    }
}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 430px) {

    .container {
        margin-top: 2rem;
    }

    .form-frame {
        min-height: 47rem;
    }

    .wrapper {
        min-height: 45rem;

        border-radius: 1.3rem;
    }

    .anjoman-logo,
    .anjoman-logo2 {
        width: 5rem;
        height: 5rem;

        margin-top: 2.5rem;
    }

    .welcome,
    .anjoman-elmi {
        font-size: 1.6rem;
    }

    .form {
        width: calc(100% - 1rem);

        min-height: 26rem;

        padding-bottom: 2rem;

        border-radius: 1.2rem;
    }

    .user-icon {
        width: 3.5rem;
        height: 3.5rem;

        top: -1.75rem;
    }

    .sign-up {
        font-size: 1.5rem;
    }

    .step {
        min-height: 9rem;

        padding-top: 2rem;
    }

    .form-text {
        width: calc(100% - 2rem);

        margin-right: 1rem;

        font-size: 0.95rem;
    }

    .form-input,
    .wide-input,
    .textarea {
        width: calc(100% - 2rem);

        margin-right: 1rem;
    }

    .skill-box {
        width: calc(100% - 2rem);

        padding:
            1rem 0.5rem;
    }

    .rating {
        gap: 0.25rem;
    }

    .rating button {
        width: 2.5rem;
        height: 2.5rem;

        font-size: 1rem;
    }

    .navigation {
        gap: 0.4rem;
    }

    .nav-button {
        width: 6rem;
        height: 2.7rem;
    }

    .step-counter {
        min-width: 3rem;

        font-size: 0.8rem;
    }

    .submit-button {
        width: calc(100% - 4rem);
    }

    .inputs{
        margin-top: 0;
    }
}


/* =========================================================
   VERY SMALL MOBILE
========================================================= */

@media (max-width: 340px) {

    .rating button {
        width: 2.25rem;
        height: 2.25rem;
    }

    .nav-button {
        width: 5.3rem;
    }

    .step-counter {
        min-width: 2.5rem;
    }
}