:root{--bg:#efefef;--surface:#fff;--text:#1d1b1b;--muted:#444;--berry-700:#b3074f;--berry-800:#93013f;--berry-900:#760132;--line:#d7d7d7;--shadow-soft:0 22px 52px rgba(64,14,30,.2);--shadow-card:0 14px 30px rgba(68,17,37,.22);--radius-xl:26px;--radius-pill:999px}body.modal-open{overflow:hidden}.intro{margin:clamp(56px,7vw,88px) auto 0;max-width:1194px;text-align:center}.intro p{color:#1e1c1c;font-size:clamp(1.1rem,1.4vw,2.8rem);font-weight:500;line-height:1.2;margin:0 0 20px}.contestants{margin-top:clamp(48px,7vw,76px)}.grid{display:grid;gap:clamp(32px,4vw,56px) clamp(24px,3vw,44px);grid-template-columns:repeat(3,minmax(260px,1fr));justify-items:center}.candidate-card{animation:rise-in .58s ease forwards;animation-delay:calc(var(--i)*75ms + .12s);margin-inline:auto;max-width:360px;opacity:0;text-align:center;transform:translateY(18px);width:100%}.candidate-image-button{align-items:center;-webkit-appearance:none;appearance:none;background:#fff;border:0;box-shadow:0 16px 34px rgba(33,20,26,.16);box-sizing:border-box;cursor:pointer;display:flex;height:460px;justify-content:center;margin-left:auto;margin-right:auto;margin-inline:auto;max-width:100%;padding:clamp(18px,2.2vw,28px);width:100%}.candidate-image{display:block;height:100%;margin:0 auto;object-fit:contain;object-position:center center;width:100%}.candidate-image-button img{max-width:100%}.candidate-image-button:focus-visible,.candidate-image-button:hover{box-shadow:0 20px 40px rgba(33,20,26,.2);transform:translateY(-4px)}.candidate-name{font-size:clamp(1.3rem,1.85vw,1.65rem);font-weight:500;line-height:1.12;margin:14px 0 0}.candidate-city{color:#222;font-size:clamp(1.16rem,1.45vw,1.32rem);line-height:1.12;margin:4px 0 0}.vote-link{background:transparent;border:0;color:var(--berry-700);cursor:pointer;font-family:Nunito Sans,sans-serif;font-size:clamp(1.02rem,1.3vw,1.16rem);font-weight:800;margin:8px 0 0;padding:0}.vote-link:focus-visible,.vote-link:hover{color:var(--berry-900);text-decoration:underline}.modal-backdrop{align-items:center;animation:fade-in .19s ease;background:hsla(0,0%,100%,.72);display:flex;inset:0;justify-content:center;overflow-y:auto;padding:24px;position:fixed;z-index:9999}.modal-backdrop[hidden]{display:none}.modal-card{background:#fff;border-radius:14px;box-shadow:0 26px 70px rgba(0,0,0,.24);box-sizing:border-box;max-height:calc(100dvh - 32px);min-height:auto;overflow-y:auto;padding:46px 64px 54px;width:min(680px,calc(100vw - 32px))}.modal-close{background:#fff;border:1px solid #d4d4d4;border-radius:50%;color:#444;cursor:pointer;font-size:1.3rem;height:38px;line-height:1;position:absolute;right:14px;top:12px;width:38px}.modal-step{margin:0 auto;max-width:420px;text-align:center;width:100%}.modal-step.is-active{animation:pop-in .26s ease;display:block}.modal-title{font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.25;margin:10px 0 6px}.modal-lead{color:#2f2c2c;font-size:clamp(1rem,1.3vw,1.12rem);line-height:1.35;margin:0}.form-wrap{margin:0 auto;max-width:420px}.selected-finalist{color:var(--berry-700);font-size:1rem;font-weight:800;margin:12px 0 0}.vote-form{margin-top:22px}.vote-form input[type=email],.vote-form input[type=tel],.vote-form input[type=text]{background:#fbfbfb;border:1px solid #cecece;border-radius:var(--radius-pill);font-size:1rem;height:56px;margin-bottom:12px;outline:none;padding:0 22px;width:100%}.vote-form input:focus{border-color:var(--berry-700);box-shadow:0 0 0 3px rgba(179,7,79,.16)}.vote-form .input-error{border-color:#bc1035!important;box-shadow:0 0 0 3px rgba(188,16,53,.14)}.vote-form .field-error{color:#9e0f2f;font-size:.86rem;line-height:1.35;margin:-4px 0 10px;min-height:1.15em;text-align:left}.vote-form .form-error{color:#9e0f2f;display:none;font-size:.9rem;font-weight:700;line-height:1.35;margin:10px 0 0;text-align:center}.vote-form .form-error.is-visible{display:block}.consent+.field-error{margin:8px 0 0}.consent{align-items:flex-start;color:#3e3b3b;display:flex;font-size:.96rem;gap:10px;justify-content:flex-start;margin-top:10px;text-align:left;width:100%}.consent input[type=checkbox]{flex-shrink:0;margin-top:4px}.consent span{flex:1;line-height:1.4}.consent input{margin-top:2px}.consent a{color:#2a2a2a}.consent.consent-error{color:#9e0f2f}.consent.consent-error a{color:#9e0f2f;text-decoration:underline}.consent.consent-error input{border-radius:2px;outline:2px solid rgba(158,15,47,.35);outline-offset:2px}.primary-btn{align-items:center;background:var(--berry-700);border:0;border-radius:var(--radius-pill);color:#fff;cursor:pointer;font-size:1rem;font-weight:800;height:50px;justify-content:center;margin-top:24px;min-width:142px;padding:0 26px;transition:transform .16s ease,background-color .16s ease}.primary-btn:focus-visible,.primary-btn:hover{background:var(--berry-800);transform:translateY(-2px)}.thanks-wrap{display:grid;min-height:420px;place-items:center}.thanks-wrap .modal-title{margin-bottom:10px}@keyframes float-in{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rise-in{to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@supports not (height:100dvh){.modal-card{max-height:calc(100vh - 32px)}}@media (max-width:1100px){.grid{grid-template-columns:repeat(2,minmax(240px,1fr))}}@media (max-width:980px){.grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.intro p{margin-left:auto;margin-right:auto;max-width:90%}}@media (max-width:680px){.intro{margin-top:44px}.intro p{margin-left:auto;margin-right:auto;max-width:90%}.grid{grid-template-columns:1fr}.candidate-card{width:min(100%,300px)}.candidate-image-button{height:400px;padding:18px}.modal-card{min-height:min(560px,88vh);padding:24px 16px 28px;width:min(520px,96vw)}.modal-close{right:10px;top:10px}.vote-form input[type=email],.vote-form input[type=tel],.vote-form input[type=text]{font-size:16px;height:52px}.thanks-wrap{min-height:320px}}@media (max-width:480px){.modal-backdrop{align-items:flex-start;padding:10px}.modal-card{border-radius:14px;margin-top:10px;max-height:calc(100dvh - 20px);padding:42px 18px 28px;width:100%}.modal-title{font-size:1.45rem;line-height:1.22;margin-top:0}.modal-lead{font-size:.95rem;line-height:1.3}.vote-form{margin-top:20px}.vote-form input[type=email],.vote-form input[type=tel],.vote-form input[type=text]{font-size:16px;height:50px}.primary-btn{margin-top:20px}}