@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');

:root{
  --ink:#163c4c;
  --ink-2:#244f5d;
  --sage:#e8edd8;
  --paper:#fbfaf6;
  --cream:#f3efe7;
  --line:#d9ded7;
  --gold:#e8bc4b;
  --red:#a33d36;
  --white:#fff;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--paper)}
body{margin:0;font-family:Poppins,Arial,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
button,input{font:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
.hero{background:var(--ink);color:#fff;padding:46px 0 40px;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;width:260px;height:260px;border:42px solid rgba(255,255,255,.06);border-radius:50%;right:-70px;top:-110px}
.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:800;text-transform:uppercase;color:#dbe9d1;margin:0 0 10px}
h1{font-size:clamp(34px,7vw,64px);line-height:.98;margin:0 0 16px;letter-spacing:-.04em}
.hero p{max-width:700px;font-size:16px;line-height:1.7;margin:0;color:#eef4f1}
.statusbar{background:var(--sage);border-bottom:1px solid #d9e0c8;padding:12px 0;font-size:14px;font-weight:600}
main{padding:34px 0 64px}
.intro{max-width:720px;margin-bottom:28px}
.intro h2{font-size:26px;line-height:1.2;margin:0 0 8px}
.intro p{margin:0;color:#5f6d70;line-height:1.65}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.card{background:#fff;border:2px solid transparent;border-radius:16px;overflow:hidden;box-shadow:0 8px 30px rgba(22,60,76,.08);cursor:pointer;transition:.18s ease;position:relative}
.card:hover{transform:translateY(-2px);box-shadow:0 11px 34px rgba(22,60,76,.12)}
.card.selected{border-color:var(--ink);box-shadow:0 0 0 3px rgba(22,60,76,.12)}
.card img{width:100%;height:360px;object-fit:contain;background:#f4f1eb;display:block}
.cardbody{padding:18px 18px 20px}
.num{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:#708078}
.title{font-size:21px;font-weight:700;line-height:1.25;margin:5px 0 3px}
.artist{font-size:14px;color:#667579;margin:0}
.pick{position:absolute;top:13px;right:13px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.94);border:2px solid rgba(22,60,76,.22);display:grid;place-items:center;font-size:19px;font-weight:800}
.card.selected .pick{background:var(--ink);color:#fff;border-color:var(--ink)}
.vote-panel{position:sticky;bottom:14px;margin:28px auto 0;max-width:620px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border:1px solid var(--line);box-shadow:0 12px 40px rgba(22,60,76,.16);border-radius:16px;padding:14px;display:flex;align-items:center;gap:14px}
.vote-copy{flex:1;min-width:0}
.vote-copy strong{display:block;font-size:14px}
.vote-copy span{display:block;font-size:12px;color:#6f7d80;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.btn{border:0;border-radius:10px;background:var(--ink);color:#fff;padding:13px 18px;font-weight:700;cursor:pointer;min-width:122px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.empty,.thanks{background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;text-align:center}
.thanks{background:var(--sage);border-color:#d5dfc0}
.thanks h2{margin:0 0 8px;font-size:28px}
.small{font-size:12px;color:#788486;line-height:1.6}
footer{border-top:1px solid var(--line);padding:24px 0 34px;text-align:center;color:#6b7b7e;font-size:12px}
.error{color:var(--red);font-size:13px;margin-top:10px}
.exhibition-photo{margin:0 0 32px;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 30px rgba(22,60,76,.08)}
.exhibition-photo img{display:block;width:100%;height:auto;background:var(--cream)}
.exhibition-photo figcaption{padding:12px 16px;font-size:13px;color:#667579;text-align:center}
.vote-list{grid-template-columns:1fr;gap:12px;max-width:760px}
.vote-choice{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:16px 18px;min-height:96px}
.vote-choice .pick{position:static;flex:none}
.vote-choice-copy{min-width:0}
.vote-choice .title{font-size:19px;margin:3px 0}
.vote-choice .artist{line-height:1.45}
.number-badge{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:22px;font-weight:800;flex:none}
.vote-choice.selected .number-badge{background:var(--gold);color:var(--ink)}
@media(max-width:720px){
  .hero{padding:36px 0 32px}
  .grid{grid-template-columns:1fr;gap:16px}
  .card img{height:310px}
  main{padding-top:26px}
  .vote-panel{bottom:8px}
  .btn{min-width:108px;padding:12px 14px}
}