:root {
     --pg-bg-top: #001155;
     --pg-bg-bottom: #040D33;
     --pg-navy: #101c54;
     --pg-link: #2ea8e0;
     --pg-stripe: linear-gradient(90deg, #f20505 0%, #f20505 5%, #0445c8 35%, #1fb9ff 65%, #1fb9ff 100%);
     --pg-title-gradient: linear-gradient(115deg, #f20505 0%, #f20505 15%, #0445c8 45%, #1fb9ff 65%, #1fb9ff 100%);
     --stripe-h: clamp(7px, 1.9vh, 22px);
}
 * {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
}
 body.public-body {
     height: 100vh;
     height: 100dvh;
     overflow: hidden;
     display: flex;
     flex-direction: column;
     background: linear-gradient(180deg, var(--pg-bg-top) 0%, var(--pg-bg-bottom) 100%);
     color: #fff;
     font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}
 .public-header {
     flex: 0 0 auto;
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 1.6vh;
     padding-top: 5.6vh;
     z-index: 2;
}
 .pardo-logo {
     height: 7.47vh;
}
 .public-main {
     position: relative;
     z-index: 2;
     flex: 1 1 auto;
     min-height: 0;
     display: flex;
     flex-direction: column;
     width: 100%;
}
 .bottom-stripe {
     position: fixed;
     left: 0;
     right: 0;
     bottom: 0;
     height: var(--stripe-h);
     background: var(--pg-stripe);
     z-index: 30;
}
 .brought-by {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 0.4rem;
     font-size: 3.4vw;
     font-weight: 700;
     line-height: 1.1;
}
 .swisscom-logo {
     height: 5.9vh;
}
 .brought-by-top {
     display: none;
}
 .brought-by-bottom {
     flex: 0 0 auto;
     padding-bottom: calc(var(--stripe-h) + 3vh);
     padding-top: 1vh;
}
 .page-wrong .brought-by-top, .page-correct .brought-by-top {
     display: flex;
}
 .page-wrong .brought-by-bottom, .page-correct .brought-by-bottom {
     display: none;
}
 .grow-center {
     flex: 1 1 auto;
     min-height: 0;
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     width: 100%;
     padding: 0 4vw;
}
 .hero-title {
     font-size: 19vw;
     font-weight: 800;
     text-align: center;
     line-height: 1.0;
}
 .waiting-sub {
     font-size: 6vw;
     font-weight: 600;
     text-align: center;
     line-height: 1.35;
     max-width: 88vw;
     margin-top: 4vh;
}
 .gradient-title {
     font-weight: 800;
     text-align: center;
     line-height: 1.0;
     background: var(--pg-title-gradient);
     -webkit-background-clip: text;
     background-clip: text;
     color: transparent;
}
 .page-won .gradient-title {
     font-size: 26.4vw;
}
 .page-thanks .gradient-title {
     font-size: 18vw;
}
 .page-already .gradient-title {
     font-size: 17.5vw;
}
 .result-text {
     font-size: 6.5vw;
     font-weight: 600;
     text-align: center;
     line-height: 1.25;
     max-width: 92vw;
     margin-top: 3vh;
}
 .page-already .result-text {
     max-width: 76vw;
}
 .page-won .result-text {
     font-size: 4.89vw;
     max-width: 70vw;
     margin-top: 3.01vh;
}
 .result-text a {
     color: var(--pg-link);
     text-decoration: none;
}
 .result-text + .result-text {
     margin-top: 2.3vh;
}
 .page-won .grow-center {
     justify-content: flex-start;
     padding-top: 8.63vh;
}
 .page-thanks .grow-center {
     justify-content: flex-start;
     padding-top: 9vh;
}
 .page-already .grow-center {
     justify-content: flex-start;
     padding-top: 8vh;
}
 .codes {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 2.69vh;
     margin-top: 4.72vh;
     width: 68.62vw;
}
 .code-pill {
     width: 100%;
     height: 5.09vh;
     display: flex;
     align-items: center;
     justify-content: center;
     text-align: center;
     background: #fff;
     color: var(--pg-navy);
     border-radius: 12px;
     padding: 0 1rem;
     font-size: 7vw;
     font-weight: 700;
     letter-spacing: 0.04em;
}
 .question-layout {
     flex: 1 1 auto;
     min-height: 0;
     display: flex;
     flex-direction: column;
     align-items: center;
     width: 100%;
}
 .question-content {
     flex: 0 0 auto;
     display: flex;
     flex-direction: column;
     align-items: center;
     width: 100%;
     padding: 6.5vh 4vw 0;
}
 .question-title {
     font-size: 7.4vw;
     font-weight: 700;
     text-align: center;
     line-height: 1.22;
     max-width: 86vw;
}
 .answer-form {
     display: flex;
     flex-direction: column;
     align-items: center;
     width: 100%;
}
 .answers {
     counter-reset: answer;
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 3vw;
     width: 92vw;
     margin: 4vh 0 1.5vh;
}
 .answer-option {
     counter-increment: answer;
     position: relative;
     display: flex;
     align-items: center;
     gap: 3vw;
     border: 1.5px solid rgba(255,255,255,0.85);
     border-radius: 16px;
     padding: 1.4vh 3vw;
     background: rgba(255,255,255,0.06);
     font-weight: 600;
     font-size: 4.6vw;
     line-height: 1.1;
     cursor: pointer;
}
 .answer-option input {
     position: absolute;
     opacity: 0;
     pointer-events: none;
}
 .answer-option:has(input:checked) {
     background: #fff;
     color: var(--pg-navy);
}
 .answer-letter {
     flex: 0 0 auto;
}
 .answer-letter::before {
     content: counter(answer, upper-alpha);
     font-size: 8vw;
     font-weight: 800;
}
 .question-image {
     flex: 1 1 auto;
     min-height: 0;
     width: 100%;
     margin-top: 3.3vh;
     object-fit: contain;
     object-position: center bottom;
}
 .page-wrong .grow-center, .page-correct .grow-center {
     justify-content: stretch;
     align-items: stretch;
     padding: 0;
}
 .split {
     flex: 1 1 auto;
     min-height: 0;
     display: flex;
     flex-direction: column;
     align-items: center;
     text-align: center;
}
 .split-content {
     flex: 0 0 auto;
     display: flex;
     flex-direction: column;
     align-items: center;
     width: 100%;
     padding: 2vh 4vw 0;
}
 .split-balloon {
     flex: 1 1 auto;
     min-height: 0;
     width: 100%;
     object-fit: contain;
     object-position: center bottom;
}
 .page-wrong .split-content {
     padding: 5.5vh 4vw 0;
}
 .page-wrong .split-balloon {
     position: fixed;
     left: 50%;
     transform: translateX(-50%);
     height: 48.89vh;
     width: auto;
     bottom: -4.16vh;
     margin-top: 0;
}
 .page-correct .split-content {
     padding-top: 1vh;
}
 .page-correct .split-balloon {
     position: fixed;
     left: 50%;
     transform: translateX(-50%);
     height: 35.19vh;
     width: auto;
     bottom: -2.21vh;
     margin-top: 0;
}
 .big-title {
     font-weight: 800;
     line-height: 1.0;
}
 .big-sub {
     font-weight: 600;
     line-height: 1.1;
     margin-top: 1vh;
}
 .page-wrong .big-title {
     font-size: 22vw;
}
 .page-wrong .big-sub {
     font-size: 11.24vw;
}
 .page-correct .big-title {
     font-size: 19.4vw;
}
 .page-correct .big-sub {
     font-size: 9.9vw;
     line-height: 0.98;
}
 .register-form {
     display: flex;
     flex-direction: column;
     align-items: center;
     width: 84vw;
     margin-top: 2vh;
}
 .phone-label {
     font-size: 5.8vw;
     font-weight: 700;
     margin-bottom: 1vh;
}
 .phone-input {
     width: 100%;
     border: 0;
     border-radius: 12px;
     padding: 1.4vh 1rem;
     font-size: 5vw;
     font-family: inherit;
     text-align: center;
     color: var(--pg-navy);
}
 .phone-input::placeholder {
     color: #9aa0b5;
}
 .consent {
     display: flex;
     align-items: flex-start;
     gap: 2vw;
     margin-top: 1.4vh;
     font-size: 3.3vw;
     cursor: pointer;
     text-align: left;
     line-height: 1.3;
}
 .consent input {
     flex: 0 0 auto;
     margin-top: 0.2em;
     width: 4vw;
     height: 4vw;
}
 .consent a {
     color: inherit;
     text-decoration: underline;
}
 .register-form .btn-pill {
     margin-top: 2vh;
}
 .form-error {
     color: #ffb4b4;
     font-weight: 600;
     margin-top: 1.4vh;
     font-size: 4vw;
}
 .btn-pill {
     display: inline-block;
     background: #fff;
     color: var(--pg-navy);
     border: 0;
     border-radius: 12px;
     padding: 1.4vh 8vw;
     font-size: 5vw;
     font-weight: 700;
     font-family: inherit;
     cursor: pointer;
     text-decoration: none;
}
 .modal-overlay {
     position: fixed;
     inset: 0;
     display: none;
     align-items: center;
     justify-content: center;
     background: rgba(4,8,30,0.75);
     padding: 1.5rem;
     z-index: 40;
}
 .modal-overlay:target {
     display: flex;
}
 .modal-box {
     background: #fff;
     color: var(--pg-navy);
     border-radius: 16px;
     width: 100%;
     max-width: 44rem;
     max-height: 80vh;
     overflow-y: auto;
     padding: 2rem;
     font-size: 1.05rem;
}
 .modal-box h2 {
     margin-bottom: 1rem;
}
 .modal-box .btn-pill {
     background: var(--pg-navy);
     color: #fff;
     margin-top: 1.5rem;
     font-size: 1.1rem;
}
 @media (min-width: 900px) {
     .public-header {
         padding-top: 6.2vh;
    }
     .pardo-logo {
         height: 11.8vh;
    }
     .brought-by {
         font-size: 1.17vw;
         gap: 0.5rem;
    }
     .swisscom-logo {
         height: 7.92vh;
    }
     .brought-by-bottom {
         padding-bottom: 5.93vh;
         padding-top: 1vh;
    }
     .page-wrong .brought-by-top, .page-correct .brought-by-top {
         display: none;
    }
     .page-wrong .brought-by-bottom, .page-correct .brought-by-bottom {
         display: flex;
         position: fixed;
         left: 0;
         right: 0;
         bottom: 5.93vh;
         padding: 0;
         z-index: 3;
    }
     .hero-title {
         font-size: 11.8vw;
    }
     .waiting-sub {
         font-size: 2.12vw;
         max-width: 62vw;
         margin-top: 3vh;
    }
     .page-won .gradient-title {
         font-size: 14vw;
    }
     .page-thanks .gradient-title {
         font-size: 8vw;
         max-width: 60vw;
    }
     .page-already .gradient-title {
         font-size: 8vw;
    }
     .result-text {
         font-size: 2.55vw;
         line-height: 1.3;
         max-width: 90vw;
         margin-top: 2.5vh;
    }
     .page-already .result-text {
         font-size: 2.08vw;
         max-width: 90vw;
    }
     .page-won .result-text {
         font-size: 2.55vw;
         max-width: 58vw;
    }
     .result-text + .result-text {
         margin-top: 0.6vh;
    }
     .page-won .grow-center {
         padding-top: 5.6vh;
    }
     .page-thanks .grow-center {
         padding-top: 11vh;
    }
     .page-already .grow-center {
         padding-top: 14vh;
    }
     .codes {
         flex-direction: row;
         justify-content: center;
         width: 63.2vw;
         max-width: none;
         gap: 3.39vw;
         margin-top: 4.64vh;
    }
     .code-pill {
         flex: 1 1 0;
         width: auto;
         height: 7.31vh;
         font-size: 2.8vw;
         padding: 0 2vw;
    }
     .question-layout {
         flex-direction: row;
         align-items: stretch;
    }
     .question-content {
         align-items: flex-start;
         justify-content: center;
         max-width: 54vw;
         padding: 0 0 0 6.46vw;
    }
     .question-title {
         font-size: 3.2vw;
         text-align: left;
         line-height: 1.2;
         max-width: 48vw;
    }
     .answers {
         width: 46vw;
         gap: 1.6vw;
         margin: 3vh 0;
    }
     .answer-option {
         gap: 1.4vw;
         padding: 1.9vh 1.6vw;
         border-radius: 20px;
         font-size: 2.2vw;
    }
     .answer-letter::before {
         font-size: 4.04vw;
    }
     .question-image {
         position: fixed;
         right: 8.46vw;
         bottom: 0;
         top: auto;
         margin-top: 0;
         height: 91.2vh;
         width: auto;
         max-width: 42vw;
         object-position: right bottom;
         z-index: 1;
    }
     .page-wrong .grow-center, .page-correct .grow-center {
         padding: 0;
    }
     .split {
         flex-direction: row;
         align-items: stretch;
         text-align: left;
    }
     .split-content {
         justify-content: flex-start;
         align-items: flex-start;
         max-width: 54vw;
         padding: 0 0 0 8vw;
    }
     .page-wrong .split-content {
         padding: 10.5vh 0 0 8vw;
    }
     .page-correct .split-content {
         padding: 4vh 0 0 8vw;
    }
     .split-balloon {
         position: fixed;
         top: auto;
         left: auto;
         transform: none;
         width: auto;
         object-position: right bottom;
         z-index: 1;
         margin-top: 0;
    }
     .page-wrong .split-balloon {
         right: 4.17vw;
         left: auto;
         transform: none;
         height: 86.61vh;
         bottom: -7.86vh;
    }
     .page-correct .split-balloon {
         right: 5.29vw;
         left: auto;
         transform: none;
         height: 95.22vh;
         bottom: -3.56vh;
    }
     .page-wrong .big-title {
         font-size: 7.5vw;
    }
     .page-wrong .big-sub {
         font-size: 6.6vw;
         line-height: 1.1;
    }
     .page-correct .big-title {
         font-size: 10.29vw;
    }
     .page-correct .big-sub {
         font-size: 4vw;
         line-height: 1.0;
         white-space: nowrap;
    }
     .register-form {
         align-items: flex-start;
         width: 30vw;
         margin-top: 2vh;
    }
     .phone-label {
         font-size: 1.72vw;
         margin-bottom: 0.8vh;
         white-space: nowrap;
    }
     .phone-input {
         text-align: left;
         font-size: 1.5vw;
         padding: 1vh 1vw;
         width: 21vw;
    }
     .consent {
         font-size: 0.86vw;
         gap: 0.5vw;
         margin-top: 1.4vh;
    }
     .consent input {
         width: 0.9vw;
         height: 0.9vw;
    }
     .register-form .btn-pill {
         margin-top: 2vh;
    }
     .btn-pill {
         font-size: 2.4vw;
         padding: 1.6vh 3vw;
         border-radius: 14px;
    }
}
