.s25f-form-shell{--s25f-ink:#171717;--s25f-muted:#6f6f6f;--s25f-line:#dedbd5;--s25f-soft:#f5f1eb;--s25f-accent:#d7ff45;max-width:760px;margin:40px auto;padding:clamp(28px,5vw,58px);background:#fff;border:1px solid var(--s25f-line);border-radius:28px;box-shadow:0 24px 70px rgba(0,0,0,.08);color:var(--s25f-ink)}
.s25f-form-head{margin-bottom:32px}.s25f-eyebrow{display:inline-block;margin-bottom:10px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.s25f-form-head h2{margin:0;font-size:clamp(32px,5vw,52px);line-height:1.02;letter-spacing:-.035em}.s25f-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.s25f-field{display:flex;flex-direction:column;gap:8px}.s25f-field-full,.s25f-check{grid-column:1/-1}.s25f-field label,.s25f-field legend{font-size:14px;font-weight:750}.s25f-field input,.s25f-field select{width:100%;min-height:54px;padding:0 16px;border:1px solid var(--s25f-line);border-radius:13px;background:#fff;font:inherit;box-sizing:border-box}.s25f-field input:focus,.s25f-field select:focus{outline:3px solid rgba(215,255,69,.5);border-color:var(--s25f-ink)}.s25f-fieldset,fieldset.s25f-field{padding:0;border:0;margin:0}.s25f-options{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.s25f-choice input{position:absolute;opacity:0;pointer-events:none}.s25f-choice span{display:block;padding:12px 18px;border:1px solid var(--s25f-line);border-radius:999px;cursor:pointer;font-weight:700}.s25f-choice input:checked+span{background:var(--s25f-ink);color:#fff;border-color:var(--s25f-ink)}.s25f-check{display:flex;align-items:flex-start;gap:10px;color:var(--s25f-muted);font-size:14px;line-height:1.5}.s25f-check input{margin-top:4px}.s25f-submit{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:26px;padding:17px 20px;border:0;border-radius:14px;background:var(--s25f-ink);color:#fff;font:inherit;font-weight:800;cursor:pointer;transition:transform .2s ease,background .2s ease}.s25f-submit:hover{transform:translateY(-2px);background:#000}.s25f-message{margin:0 0 24px;padding:14px 16px;border-radius:12px;font-weight:700}.s25f-message-success{background:#eefbd4}.s25f-message-error{background:#fff0ee;color:#9b251d}.s25f-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.s25f-standalone-notice{max-width:760px;margin:30px auto;padding:20px;border:1px solid #ddd;border-radius:14px;background:#fff}.s25f-conditional[hidden]{display:none!important}@media(max-width:650px){.s25f-form-shell{margin:24px 0;border-radius:20px;padding:26px 20px}.s25f-grid{grid-template-columns:1fr}.s25f-field-full,.s25f-check{grid-column:auto}}
/* =========================================================
   FORM SUBMISSION TRANSITION
========================================================= */

.s25f-form {
    opacity: 1;
    transform: translateY(0);
    transition:
        opacity 0.35s ease,
        transform 0.35s ease,
        filter 0.35s ease;
}

.s25f-form.is-submitting {
    opacity: 0.3;
    transform: translateY(8px);
    filter: blur(2px);
    pointer-events: none;
}

.s25f-form.is-submitting .s25f-submit {
    cursor: wait;
}

.s25f-submit.is-loading [data-s25f-submit-icon] {
    width: 18px;
    height: 18px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    font-size: 0;
    animation: s25f-spinner 0.7s linear infinite;
}

@keyframes s25f-spinner {
    to {
        transform: rotate(360deg);
    }
}


/* =========================================================
   SUCCESS CELEBRATION
========================================================= */

.s25f-success-celebration {
    position: relative;
    display: flex;
    min-height: 520px;
    padding: clamp(42px, 7vw, 82px) clamp(24px, 6vw, 70px);
    overflow: hidden;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 28px;
    background:
        radial-gradient(
            circle at 50% 18%,
            rgba(255, 255, 255, 0.18),
            transparent 32%
        ),
        linear-gradient(
            145deg,
            #1a1a1a 0%,
            #292929 58%,
            #171717 100%
        );
    color: #ffffff;
    box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    isolation: isolate;
    animation: s25f-success-arrive 0.75s cubic-bezier(0.2, 0.8, 0.2, 1)
        both;
}

.s25f-success-celebration::before {
    position: absolute;
    z-index: -1;
    top: 50%;
    left: 50%;
    width: 420px;
    height: 420px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 50%;
    content: "";
    transform: translate(-50%, -50%);
    animation: s25f-success-pulse 3.5s ease-in-out infinite;
}

.s25f-success-celebration::after {
    position: absolute;
    z-index: -1;
    right: -35px;
    bottom: -115px;
    content: "25";
    color: rgba(255, 255, 255, 0.035);
    font-size: clamp(180px, 28vw, 340px);
    font-weight: 900;
    line-height: 0.8;
    letter-spacing: -0.12em;
    pointer-events: none;
}

.s25f-success-icon {
    width: 92px;
    height: 92px;
    margin-bottom: 26px;
}

.s25f-success-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.s25f-success-icon__circle {
    fill: rgba(255, 255, 255, 0.08);
    stroke: rgba(255, 255, 255, 0.94);
    stroke-width: 2;
    stroke-dasharray: 202;
    stroke-dashoffset: 202;
    animation: s25f-draw-circle 0.8s 0.2s ease forwards;
}

.s25f-success-icon__tick {
    fill: none;
    stroke: #ffffff;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 46;
    stroke-dashoffset: 46;
    animation: s25f-draw-tick 0.55s 0.85s ease forwards;
}

.s25f-success-eyebrow {
    display: inline-flex;
    margin-bottom: 15px;
    align-items: center;
    gap: 8px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    animation: s25f-content-rise 0.6s 0.55s ease both;
}

.s25f-success-celebration h3 {
    max-width: 700px;
    margin: 0 0 18px;
    color: #ffffff;
    font-size: clamp(42px, 7vw, 72px);
    font-weight: 700;
    line-height: 0.95;
    letter-spacing: -0.055em;
    animation: s25f-content-rise 0.65s 0.65s ease both;
}

.s25f-success-celebration > p {
    max-width: 570px;
    margin: 0;
    color: rgba(255, 255, 255, 0.76);
    font-size: clamp(16px, 2vw, 19px);
    line-height: 1.7;
    animation: s25f-content-rise 0.65s 0.75s ease both;
}

.s25f-success-details {
    display: flex;
    margin-top: 30px;
    padding: 13px 20px;
    align-items: center;
    gap: 12px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.07);
    color: rgba(255, 255, 255, 0.9);
    font-size: 13px;
    font-weight: 600;
    backdrop-filter: blur(14px);
    animation: s25f-content-rise 0.65s 0.85s ease both;
}

.s25f-success-note {
    margin-top: 24px !important;
    color: rgba(255, 255, 255, 0.5) !important;
    font-size: 13px !important;
    animation: s25f-content-rise 0.65s 0.95s ease both !important;
}


/* =========================================================
   CONFETTI
========================================================= */

.s25f-success-confetti {
    position: absolute;
    z-index: 2;
    top: 44%;
    left: 50%;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

.s25f-success-confetti span {
    position: absolute;
    top: 0;
    left: 0;
    width: 9px;
    height: 18px;
    border-radius: 3px;
    background: #ffffff;
    opacity: 0;
    transform: translate(0, 0) rotate(0);
    animation: s25f-confetti-burst 1.15s var(--delay) ease-out forwards;
}

.s25f-success-confetti span:nth-child(2n) {
    width: 13px;
    height: 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.7);
}

.s25f-success-confetti span:nth-child(3n) {
    background: rgba(255, 255, 255, 0.42);
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes s25f-success-arrive {
    from {
        opacity: 0;
        transform: translateY(22px) scale(0.985);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes s25f-success-pulse {
    0%,
    100% {
        opacity: 0.45;
        transform: translate(-50%, -50%) scale(0.92);
    }

    50% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.04);
    }
}

@keyframes s25f-content-rise {
    from {
        opacity: 0;
        transform: translateY(14px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes s25f-draw-circle {
    to {
        stroke-dashoffset: 0;
    }
}

@keyframes s25f-draw-tick {
    to {
        stroke-dashoffset: 0;
    }
}

@keyframes s25f-confetti-burst {
    0% {
        opacity: 0;
        transform: translate(0, 0) rotate(0deg) scale(0.5);
    }

    12% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform:
            translate(var(--x), var(--y))
            rotate(var(--r))
            scale(1);
    }
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 640px) {
    .s25f-success-celebration {
        min-height: 460px;
        padding: 50px 22px;
        border-radius: 22px;
    }

    .s25f-success-icon {
        width: 78px;
        height: 78px;
    }

    .s25f-success-details {
        flex-wrap: wrap;
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .s25f-success-celebration,
    .s25f-success-celebration *,
    .s25f-form,
    .s25f-submit [data-s25f-submit-icon] {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}