:root{--coral:#ff5d8f;--coral-deep:#e33d72;--coral-soft:#ffe4ed;--sun:#ffc247;--sun-soft:#fff2d4;--sky:#4cc9f0;--sky-soft:#dff5fd;--mint:#2ec4a6;--mint-soft:#d9f7f0;--grape:#7b5cff;--grape-soft:#ebe6ff;--ink:#2a1f38;--ink-soft:#6b5f79;--ink-faint:#9d94a8;--line:#ece6f2;--surface:#fff;--page:#fff8fb;--radius:18px;--radius-lg:26px;--shadow-sm:0 2px 8px #2a1f380f;--shadow:0 10px 30px #2a1f381a;--shadow-lg:0 24px 60px #2a1f3829;--bride:var(--coral);--groom:var(--sky);--font:"Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display:"Georgia", "Times New Roman", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;font-family:var(--font);color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased}body:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(circle at 8% 4%,#ffc24747,#0000 42%),radial-gradient(circle at 92% 8%,#4cc9f042,#0000 45%),radial-gradient(circle at 50% 100%,#ff5d8f38,#0000 55%);position:fixed;inset:0}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3{letter-spacing:-.01em;margin:0;line-height:1.15}p{margin:0;line-height:1.6}a{color:var(--coral-deep);font-weight:700;text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--grape);outline-offset:3px;border-radius:6px}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px clamp(16px,5vw,48px);display:flex}.brand{font-family:var(--font-display);color:var(--ink);align-items:baseline;gap:10px;font-size:1.5rem;font-weight:700;text-decoration:none;display:inline-flex}.brand:hover{text-decoration:none}.brand em{color:var(--coral);font-style:italic}.nav{align-items:center;gap:8px;display:flex}.nav a{color:var(--ink-soft);border-radius:999px;padding:8px 16px;font-size:.95rem;font-weight:700}.nav a:hover,.nav a.is-active{background:var(--surface);color:var(--coral-deep);box-shadow:var(--shadow-sm);text-decoration:none}main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:8px clamp(16px,5vw,32px) 64px}main.wide{max-width:1080px}.app-footer{text-align:center;color:var(--ink-faint);padding:24px;font-size:.85rem}.stack{flex-direction:column;gap:20px;display:flex}.stack-sm{flex-direction:column;gap:10px;display:flex}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:clamp(20px,4vw,34px)}.card-tight{border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--coral);font-size:.72rem;font-weight:800}.muted{color:var(--ink-soft)}.tiny{font-size:.85rem}.btn{cursor:pointer;background:var(--coral);color:#fff;border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:14px 28px;font-size:1rem;font-weight:800;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex;box-shadow:0 8px 20px #ff5d8f59}.btn:hover:not(:disabled){text-decoration:none;transform:translateY(-2px);box-shadow:0 12px 26px #ff5d8f6b}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-lg{padding:17px 38px;font-size:1.1rem}.btn-block{width:100%}.btn-ghost{color:var(--ink-soft);box-shadow:none;border:2px solid var(--line);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.btn-sun{background:var(--sun);color:#4a3200;box-shadow:0 8px 20px #ffc24766}.btn-sun:hover:not(:disabled){box-shadow:0 12px 26px #ffc2477a}.field{flex-direction:column;gap:8px;display:flex}.field label{font-size:.9rem;font-weight:800}.input{border:2px solid var(--line);border-radius:var(--radius);background:#fff;width:100%;padding:15px 18px;transition:border-color .15s}.input:focus{border-color:var(--coral);outline:none}.input.has-error{border-color:var(--coral-deep)}.error-text{color:var(--coral-deep);font-size:.9rem;font-weight:700}.banner{border-radius:var(--radius);padding:14px 18px;font-size:.95rem;font-weight:700}.banner-error{background:var(--coral-soft);color:var(--coral-deep)}.banner-info{background:var(--sky-soft);color:#0d6f92}.hero{text-align:center;padding:clamp(28px,7vw,64px) clamp(20px,5vw,48px)}.hero h1{font-family:var(--font-display);margin:14px 0 16px;font-size:clamp(2.4rem,8vw,4rem)}.hero h1 em{color:var(--coral);font-style:italic}.hero p{max-width:34rem;color:var(--ink-soft);margin:0 auto;font-size:1.1rem}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;display:flex}.steps{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.step{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:22px}.step-number{background:var(--sun-soft);color:#8a5a00;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;margin-bottom:12px;font-weight:900;display:inline-flex}.step h3{margin-bottom:6px;font-size:1.05rem}.step p{color:var(--ink-soft);font-size:.92rem}.scoring-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:18px;display:grid}.scoring-card{border-radius:var(--radius);background:var(--grape-soft);padding:18px}.scoring-card strong{color:var(--grape);font-size:1.4rem;display:block}.prize-strip{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-top:18px;display:grid}.prize-chip{border-radius:var(--radius);text-align:center;padding:18px;font-weight:800}.prize-chip span{margin-bottom:4px;font-size:1.6rem;display:block}.prize-chip.bronze{background:var(--mint-soft);color:#16705d}.prize-chip.silver{background:var(--sky-soft);color:#0d6f92}.prize-chip.gold{background:var(--sun-soft);color:#8a5a00}.event-hero{text-align:center;padding:8px 0 24px}.event-hero h1{font-family:var(--font-display);font-size:clamp(1.9rem,6vw,3rem)}.event-hero h1 em{color:var(--coral);font-style:italic}.tabs{box-shadow:var(--shadow-sm);background:#ffffffb3;border-radius:999px;gap:6px;margin-bottom:20px;padding:6px;display:flex}.tab{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;padding:11px 16px;font-weight:800;transition:all .15s}.tab.is-active{background:var(--coral);color:#fff;box-shadow:0 6px 16px #ff5d8f52}.progress{align-items:center;gap:14px;margin-bottom:18px;display:flex}.progress-track{background:var(--line);border-radius:999px;flex:1;height:10px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--sun), var(--coral));border-radius:999px;height:100%;transition:width .35s}.progress-label{color:var(--ink-soft);white-space:nowrap;font-size:.85rem;font-weight:800}.question-text{font-family:var(--font-display);margin-bottom:6px;font-size:clamp(1.4rem,4.5vw,2rem)}.side-pickers{gap:12px;display:grid}.side-picker{border:2px solid var(--line);border-radius:var(--radius);background:#fff;margin:0;padding:14px 14px 16px}.side-picker.groom{border-color:var(--sky-soft);background:linear-gradient(#dff5fd8c,#fff 60%)}.side-picker.bride{border-color:var(--coral-soft);background:linear-gradient(#ffe4ed8c,#fff 60%)}.side-heading{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;font-size:.98rem;font-weight:700;display:flex}.side-heading strong{font-weight:900}.side-picker.groom .side-heading strong{color:var(--groom)}.side-picker.bride .side-heading strong{color:var(--bride)}.side-dot{border-radius:50%;flex-shrink:0;width:11px;height:11px}.side-picker.groom .side-dot{background:var(--groom)}.side-picker.bride .side-dot{background:var(--bride)}.side-count{background:var(--line);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:800}.options{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;display:grid}.option{border:2px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:14px;align-items:center;gap:10px;width:100%;padding:13px 14px;font-size:.95rem;font-weight:700;transition:all .15s;display:flex}.option:hover:not(:disabled){border-color:var(--coral);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.option.groom:hover:not(:disabled){border-color:var(--groom)}.option.is-selected{border-color:var(--coral);background:var(--coral-soft);color:var(--coral-deep)}.option.groom.is-selected{border-color:var(--groom);background:var(--sky-soft);color:#0d6f92}.option-marker{border:2px solid var(--line);color:#0000;border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:.8rem;display:grid}.option.is-selected .option-marker{border-color:var(--coral);background:var(--coral);color:#fff}.option.groom.is-selected .option-marker{border-color:var(--groom);background:var(--groom)}.question-actions{gap:12px;margin-top:24px;display:flex}.score-hero{text-align:center}.score-ring{background:conic-gradient(var(--coral) var(--pct), var(--line) 0);border-radius:50%;place-items:center;width:168px;height:168px;margin:0 auto 18px;display:grid}.score-ring-inner{background:var(--surface);border-radius:50%;align-content:center;place-items:center;width:136px;height:136px;display:grid}.score-ring-inner strong{font-size:2.5rem;line-height:1;font-family:var(--font-display)}.score-ring-inner span{color:var(--ink-soft);font-size:.82rem;font-weight:700}.review-list{gap:12px;display:grid}.review-item{border-radius:var(--radius);box-shadow:var(--shadow-sm);border-left:6px solid var(--line);background:#fff;padding:18px 20px}.review-item.full{border-left-color:var(--mint)}.review-item.partial{border-left-color:var(--sun)}.review-item.none{border-left-color:var(--coral)}.review-head{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.review-head h3{font-size:1.02rem}.review-points{background:var(--line);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:4px 12px;font-size:.85rem;font-weight:900}.review-item.full .review-points{background:var(--mint-soft);color:#16705d}.review-item.partial .review-points{background:var(--sun-soft);color:#8a5a00}.review-item.none .review-points{background:var(--coral-soft);color:var(--coral-deep)}.review-sides{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.review-side{background:var(--page);border-radius:14px;padding:12px 14px;font-size:.88rem}.review-side.groom{background:var(--sky-soft)}.review-side.bride{background:var(--coral-soft)}.review-side-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.review-row{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.review-label{min-width:5.4rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;font-size:.78rem;font-weight:700}.review-actual{font-weight:800}.review-tick{background:#fff;border-radius:999px;flex-shrink:0;padding:2px 9px;font-size:.76rem;font-weight:900}.review-tick.full{color:#16705d}.review-tick.partial{color:#8a5a00}.review-tick.none{color:var(--coral-deep)}.who{text-transform:uppercase;letter-spacing:.06em;overflow-wrap:anywhere;flex-shrink:0;font-size:.78rem;font-weight:900}.who.bride{color:var(--bride)}.who.groom{color:#0d6f92}.prize-card{text-align:center}.prize-badge{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin-bottom:14px;padding:7px 20px;font-size:.78rem;font-weight:900;display:inline-block}.prize-badge.gold{background:var(--sun-soft);color:#8a5a00}.prize-badge.silver{background:var(--sky-soft);color:#0d6f92}.prize-badge.bronze{background:var(--mint-soft);color:#16705d}.prize-image{border-radius:var(--radius);width:300px;max-width:100%;box-shadow:var(--shadow-lg);margin:20px auto;display:block}.prize-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.board{gap:8px;display:grid}.board-row{border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;grid-template-columns:46px 1fr auto;align-items:center;gap:14px;padding:14px 18px;display:grid}.board-row.is-you{background:var(--coral-soft);box-shadow:0 0 0 2px var(--coral) inset}.board-rank{background:var(--line);border-radius:50%;place-items:center;width:34px;height:34px;font-size:.9rem;font-weight:900;display:grid}.board-row:first-child .board-rank{background:var(--sun);color:#5c3d00}.board-row:nth-child(2) .board-rank{color:#4a5560;background:#dfe6ec}.board-row:nth-child(3) .board-rank{color:#7a4a1c;background:#f2d0b0}.board-name{overflow-wrap:anywhere;font-weight:800}.board-you-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--coral-deep);margin-left:8px;font-size:.7rem}.board-score{font-weight:900;font-family:var(--font-display);color:var(--coral-deep);font-size:1.15rem}.center-state{text-align:center;padding:56px 20px}.spinner{border:4px solid var(--coral-soft);border-top-color:var(--coral);border-radius:50%;width:42px;height:42px;margin:0 auto 16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--ink-soft);padding:40px 20px}.empty-state span{margin-bottom:10px;font-size:2.4rem;display:block}.fade-in{animation:.35s both fade-in}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.pop-in{animation:.45s cubic-bezier(.22,1.2,.4,1) both pop-in}@keyframes pop-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=560px){.question-actions,.prize-actions,.review-head{flex-direction:column}}
