:root{--blue-950: #081738;--blue-900: #0c2d73;--blue-700: #1a56c8;--blue-500: #2a78ea;--blue-200: #d7e7ff;--ink: #102347;--ink-soft: #3d557f;--white: #ffffff;--danger: #cc2d45;font-family:Avenir Next,Segoe UI,sans-serif;line-height:1.4;font-weight:400;color:var(--ink);--page-bg: radial-gradient(circle at 5% 10%, #5f9fff 0%, #1b58c9 32%, #0b1f4a 100%)}*{box-sizing:border-box}html,body,#root{min-height:100%}html{background-color:var(--blue-950)}body{margin:0;min-height:100vh;min-height:100dvh;color:inherit;background:var(--page-bg)}.page{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:calc(4.25rem + env(safe-area-inset-top)) 1rem calc(1rem + env(safe-area-inset-bottom))}.brand-logo{position:fixed;top:calc(.5rem + env(safe-area-inset-top));left:50%;transform:translate(-50%);width:clamp(5.6rem,16vw,8.4rem);height:auto;z-index:3;filter:drop-shadow(0 6px 16px rgba(8,23,56,.28))}.panel{position:relative;z-index:1;width:min(30rem,100%);background:#fffffff2;border-radius:1.2rem;border:1px solid rgba(22,72,166,.18);padding:1rem 1rem 1.4rem;box-shadow:0 24px 60px #08173847;animation:panel-enter .42s ease}.campaign-hero{position:relative;border-radius:.95rem;overflow:hidden;aspect-ratio:16 / 9;margin-bottom:.9rem}.campaign-hero img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}.campaign-hero__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#071a431f 30%,#071a43ad)}.campaign-tagline{position:absolute;left:.75rem;right:.75rem;bottom:.65rem;margin:0;color:var(--white);font-weight:800;font-size:1.04rem;text-shadow:0 2px 8px rgba(0,0,0,.42)}.eyebrow{margin:0;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-700)}.result-badge{width:2.1rem;height:2.1rem;border-radius:50%;display:grid;place-items:center;margin-top:.75rem;font-size:1.1rem;font-weight:800}.result-badge--loading{border:3px solid #cfe0ff;border-top-color:var(--blue-500);animation:spin .9s linear infinite}.result-badge--win{background:#f0fdf4;box-shadow:0 0 #2a78ea85;animation:pulse-ring 1.35s ease-out infinite}.success-check-icon{color:#22c55e;font-size:1.45rem}.win-sticker-wrap{margin-top:1.2rem}.winner-sticker{position:relative;overflow:hidden;border-radius:1rem;border:1px solid #c7d9ff;background:linear-gradient(160deg,#fff,#eef5ff 46%,#dce9ff);box-shadow:0 18px 44px #0c2d7338;padding:1rem .95rem 1.1rem}.winner-sticker__shine{position:absolute;top:-120%;left:-35%;width:60%;height:320%;background:linear-gradient(108deg,#fff0 10%,#ffffffd9 45%,#fff0 88%);transform:rotate(15deg);animation:sticker-shine 2.4s ease-in-out infinite;pointer-events:none}.winner-sticker__subtitle{margin-top:.45rem;color:#234679;font-weight:600}.winner-sticker__meta{margin-top:.8rem;display:grid;gap:.35rem;padding:.68rem .72rem;border-radius:.72rem;background:#0c2d730f}.winner-sticker__meta p{margin:0;font-size:.92rem;color:#1a335d}.winner-sticker__meta span{color:#0c2d73;font-weight:800;margin-right:.3rem}.result-badge--lose,.result-badge--unavailable,.result-badge--error{background:#fff1f3;color:var(--danger)}h1{margin:.7rem 0 0;font-size:clamp(1.45rem,4vw,1.95rem);line-height:1.14;color:var(--blue-950)}p{margin:.6rem 0 0;color:var(--ink-soft)}.form{margin-top:1.2rem;display:grid;gap:.72rem;animation:form-enter .36s ease}label{font-size:.92rem;font-weight:700;color:var(--ink)}input{width:100%;border:1px solid #bfd3f8;border-radius:.7rem;padding:.76rem .86rem;font:inherit;transition:border-color .2s ease,box-shadow .2s ease}input:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 3px #2a78ea33}button{border:0;border-radius:.7rem;padding:.8rem 1rem;font:inherit;font-weight:700;color:var(--white);background:linear-gradient(135deg,var(--blue-700),var(--blue-500));cursor:pointer;transform:translateY(0);transition:transform .18s ease,opacity .2s ease}button:hover:enabled{transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.74}.error{margin:0;color:var(--danger);font-size:.92rem;font-weight:600}.panel--success{animation:panel-enter .42s ease,win-glow 1.65s ease-in-out infinite}.panel--maxReached,.panel--unavailable,.panel--error{animation:panel-enter .42s ease,lose-bounce .52s ease}.legal{position:fixed;bottom:calc(.8rem + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);margin:0;padding:0 .75rem;font-size:.8rem;color:#ffffffe0;letter-spacing:.02em}@keyframes panel-enter{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes form-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-ring{0%{box-shadow:0 0 #2a78ea80}80%{box-shadow:0 0 0 13px #2a78ea00}to{box-shadow:0 0 #2a78ea00}}@keyframes win-glow{0%,to{box-shadow:0 24px 60px #08173847}50%{box-shadow:0 26px 68px #1463ec57}}@keyframes sticker-shine{0%{left:-40%}to{left:120%}}@keyframes lose-bounce{0%{transform:translateY(0)}35%{transform:translateY(-2px)}to{transform:translateY(0)}}
