:root{--navy:#173c51;--coral:#ef6a3a;--cream:#f8f4eb;--teal:#28a7a0;--gold:#f3b33d;--ink:#19313e;--muted:#63757d;--white:#fff;--line:#ddd8ce}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}p{line-height:1.65;color:var(--muted)}h1,h2,h3{font-family:'Fraunces',serif;margin-top:0;line-height:1.08}h1{font-size:clamp(3rem,7vw,6.2rem)}h2{font-size:clamp(2rem,4vw,3.2rem)}button,input,textarea,select{font:inherit}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);background:var(--cream);border-bottom:1px solid #e2ddd3}.brand{display:flex;align-items:center;gap:12px;font-size:18px;line-height:1}.brand-mark{width:44px;height:44px;border-radius:50% 50% 48% 52%;background:var(--coral);color:#fff;display:grid;place-items:center;font:bold 15px 'Fraunces'}.brand small{display:block;letter-spacing:2px;font-size:8px;margin-top:6px;color:var(--coral)}nav{display:flex;gap:28px;font-weight:600}.hero{min-height:670px;background:var(--navy);color:#fff;display:grid;grid-template-columns:1.25fr .75fr;align-items:center;padding:80px max(7vw,28px);overflow:hidden}.hero h1{margin:18px 0 22px}.hero h1 em{color:var(--gold);font-style:normal}.hero p{color:#c9d7dc;max-width:620px;font-size:19px}.hero-art{position:relative;display:grid;place-items:center}.state{font:bold clamp(10rem,27vw,25rem) 'Fraunces';color:#204d64;letter-spacing:-35px}.stamp{position:absolute;display:grid;place-items:center;width:120px;height:120px;border-radius:50%;background:var(--coral);text-align:center;font:bold 18px/1.1 'Fraunces';transform:rotate(10deg);box-shadow:0 0 0 8px rgba(239,106,58,.2)}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:12px;font-weight:700;color:var(--gold)}.coral{color:var(--coral)}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;border:0;border-radius:6px;background:var(--coral);color:#fff;padding:15px 22px;font-weight:700;cursor:pointer}.button.secondary{background:var(--navy)}.section{padding:85px max(7vw,28px)}.section-head{display:flex;justify-content:space-between;margin-bottom:35px}.contest-grid,.category-grid,.nominee-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.contest-card{background:#fff;padding:36px;border:1px solid var(--line);border-radius:12px}.contest-card h3{font-size:28px;margin:20px 0 10px}.phase,.pill{display:inline-block;padding:5px 10px;border-radius:99px;background:#d9f1ea;color:#1b766d;text-transform:uppercase;font-size:11px;font-weight:700}.contest-hero,.category-hero{padding:85px max(9vw,30px);background:var(--navy);color:#fff;text-align:center}.contest-hero p,.category-hero p{color:#c5d3d8;max-width:750px;margin:15px auto}.contest-hero h1,.category-hero h1{font-size:clamp(3rem,7vw,5.4rem);margin:15px 0}.stats{display:flex;justify-content:center;gap:45px;margin-top:45px}.stats span{display:flex;flex-direction:column;color:#b9c9cf}.stats b{color:#fff;font-size:25px}.category-grid{grid-template-columns:repeat(2,1fr)}.category-card{min-height:220px;padding:30px;display:flex;gap:24px;align-items:flex-start;border-radius:12px;color:#fff;position:relative}.category-card h3{font-size:30px;margin:8px 0}.category-card p{color:rgba(255,255,255,.78)}.category-card.c0{background:var(--coral)}.category-card.c1{background:var(--teal)}.category-card.c2{background:var(--navy)}.category-card.c3{background:#b77848}.number{opacity:.55;font-weight:bold}.arrow{position:absolute;right:24px;top:22px;font-size:25px}.nominee-grid{align-items:start}.nominee-card{background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:0 8px 30px rgba(23,60,81,.06)}.nominee-card.featured{outline:4px solid var(--gold)}.nominee-card img{width:100%;aspect-ratio:3/2;object-fit:cover}.nominee-body{padding:25px}.nominee-body h3{font-size:27px;margin:8px 0}.town{text-transform:uppercase;color:var(--coral);font-size:11px;letter-spacing:1.5px;font-weight:700}.vote-count{display:block;margin:20px 0;color:var(--muted)}.vote-count b{color:var(--navy);font-size:20px}.nominee-body>.button{width:100%}.share{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;font-size:12px;color:var(--muted)}.share button,.share a{border:0;background:none;padding:0;color:var(--navy);text-decoration:underline;cursor:pointer}dialog{border:0;border-radius:14px;max-width:530px;padding:40px;box-shadow:0 30px 90px #0006}dialog::backdrop{background:#102c3abf}.close{position:absolute;right:15px;top:10px;border:0;background:none;font-size:30px;cursor:pointer}label{display:grid;gap:7px;font-weight:600;margin:16px 0}input,textarea,select{width:100%;padding:12px;border:1px solid #cfc9bd;border-radius:6px;background:#fff}textarea{min-height:90px}.check{display:flex;grid-template-columns:auto 1fr;align-items:start;font-weight:400;font-size:13px}.check input,.mini-check input{width:auto}.message{text-align:center;padding:130px 25px;min-height:65vh}.message h1{font-size:50px}.message p{max-width:580px;margin:15px auto 30px}.success-mark{width:70px;height:70px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;margin:auto;font-size:35px}.results{display:grid;grid-template-columns:repeat(2,1fr);gap:25px}.result-block{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px}.result-block ol{list-style:none;padding:0}.result-block li{display:flex;align-items:center;gap:15px;padding:15px 0;border-top:1px solid var(--line)}.result-block li div{flex:1}.result-block small,td small,.admin-list small,.business-list small{display:block;color:var(--muted)}.rank{width:30px;color:var(--coral);font-weight:bold}.winner{color:#8b6210}.admin{min-height:70vh}.admin h1{font-size:45px}.admin-nav{display:flex;justify-content:space-between;align-items:center;gap:20px}.admin-nav>div:last-child{display:flex;gap:10px}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:30px 0 60px}.admin-stats span,.panel{background:#fff;border:1px solid var(--line);padding:25px;border-radius:10px}.admin-stats b{display:block;font-size:30px;color:var(--navy)}.admin-list a{display:flex;justify-content:space-between;padding:20px;background:#fff;border-bottom:1px solid var(--line)}.admin-columns{display:grid;grid-template-columns:2fr 1fr;gap:25px;margin:25px 0 55px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.notice{background:#d9f1ea;padding:14px;margin:15px 0;border-radius:6px}.category-admin{margin:15px 0}.category-admin summary{cursor:pointer;display:flex;justify-content:space-between}.add-business{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.business-list form{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.business-list form>div{flex:1}.business-list select{width:auto}.wide{padding-left:3vw;padding-right:3vw}.table-wrap{overflow:auto;background:#fff;border-radius:10px}.table-wrap table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}.muted{opacity:.45}td form{display:flex;gap:5px}td input{padding:6px;width:120px}footer{background:#102f41;color:#fff;padding:50px max(7vw,28px);display:flex;justify-content:space-between}footer p{color:#9eb1bb;font-size:13px}
@media(max-width:850px){.hero{grid-template-columns:1fr;min-height:auto}.hero-art{display:none}.contest-grid,.nominee-grid{grid-template-columns:1fr 1fr}.category-grid,.results,.admin-columns{grid-template-columns:1fr}.add-business{grid-template-columns:1fr 1fr}.admin-nav{align-items:flex-start}.admin-stats{grid-template-columns:1fr 1fr}}@media(max-width:560px){nav{gap:12px}.brand{font-size:14px}.brand-mark{width:36px;height:36px}.contest-grid,.nominee-grid{grid-template-columns:1fr}.category-card{min-height:auto}.stats{gap:15px}.stats b{font-size:18px}.section{padding:55px 20px}.admin-nav{display:block}.admin-nav>div:last-child{margin-top:15px;flex-wrap:wrap}.fields,.add-business{grid-template-columns:1fr}.business-list form{align-items:stretch;flex-direction:column}.business-list select{width:100%}footer{display:block}}
