.finale-heading{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:10px}.finale-heading h1{font-size:clamp(28px,3vw,40px);letter-spacing:-1px;margin:4px 0 6px;max-width:920px}.finale-heading p{margin:0;color:var(--muted);font-size:.85rem}.finale-kicker{font-size:.8rem;font-weight:700;color:var(--pink)}.finale-controls{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0;padding-top:8px;max-width:320px}.finale-controls [hidden]{display:none}.finale-progress{display:flex;align-items:center;gap:6px;margin:10px 0 14px}.finale-progress>span[data-progress]{width:clamp(12px,2vw,27px);height:7px;border:1px solid var(--ink);background:transparent;transition:background .3s}.finale-progress>span.counted{background:var(--pink)}#finale-stage{font-weight:700;font-size:.85rem;margin-left:8px}.finale-exhibitions{display:grid;grid-template-columns:repeat(var(--exhibits),minmax(0,1fr));gap:clamp(24px,4vw,65px);max-width:1100px;margin:0 auto}.finale-exhibit{min-width:0}.exhibit-title{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:2px solid var(--ink);padding-bottom:7px;margin-bottom:10px}.exhibit-title h2{font-size:clamp(22px,2.5vw,32px);line-height:1.1;margin:3px 0 0;overflow-wrap:anywhere}.gallery-number{font-size:.7rem;color:var(--muted)}.finale-total{display:flex;gap:7px;align-items:baseline;font-weight:700;flex-shrink:0}.finale-total strong{font:900 clamp(32px,3.7vw,49px)/1 'Fraunces',Georgia;font-variant-numeric:tabular-nums}.finale-total>span{font-size:.85rem}.finale-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:560px;margin:0 auto}.finale-print{position:relative;padding:0;min-height:0;border:0;background:transparent;transform:none;opacity:.52;filter:saturate(.65);transition:opacity .4s,transform .4s,filter .4s;isolation:isolate}.finale-print:hover{background:transparent;transform:translateY(-3px);opacity:1;filter:none}.finale-print .print{box-shadow:1px 3px 4px #3f2c1920}.finale-print.print-counted{opacity:1;filter:none}.finale-print.print-in-spotlight{z-index:2;transform:translateY(-4px) rotate(-1deg);opacity:1;filter:none;outline:3px solid var(--pink);outline-offset:3px;border-radius:6px}.finale-print.print-contributes:not(.print-in-spotlight){outline:3px solid #ab8000;outline-offset:1px;border-radius:6px;opacity:1;filter:none}.finale-card-points{position:absolute;bottom:45px;right:-4px;background:var(--yellow);border:1.5px solid var(--ink);padding:4px 8px;min-width:44px;transform:rotate(-5deg);font:900 17px 'Fraunces',Georgia;box-shadow:2px 2px 0 #25222280}.finale-card-points:empty{display:none}.finale-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding-top:10px}.finale-caption>span{font-size:.83rem;line-height:1.4;max-width:80%;color:var(--muted)}.finale-caption strong{font-size:.85rem}.finale-caption .print-score-recap{font:900 25px 'Fraunces',Georgia;white-space:nowrap;color:var(--pink)}.finale-verdict{min-height:90px;display:flex;align-items:center;justify-content:center;gap:25px;padding:16px 0;flex-wrap:wrap}.winner-ribbon{padding:10px 25px;background:var(--yellow);border:2px solid var(--ink);transform:rotate(-3deg);font:900 24px 'Fraunces',Georgia;box-shadow:4px 4px 0 var(--ink);animation:print-stamp .4s ease-out}.finale-verdict p{margin:0}.winning-exhibition .exhibit-title{border-color:var(--pink)}.winning-exhibition .finale-total{color:var(--pink)}.finale-complete .finale-print{opacity:1;filter:none}.finale-complete .finale-caption strong{color:var(--pink)}@keyframes print-stamp{from{transform:scale(1.15) rotate(-8deg);opacity:0}to{transform:scale(1) rotate(-3deg);opacity:1}}@media(min-width:900px){.finale-grid{width:min(100%,max(320px,calc(100dvh - 484px)))}.finale-caption{max-width:560px;margin:auto}.finale-print .print-rule{height:35px;font-size:10px}.finale-print .print-rule b{font-size:13px}.finale-card-points{bottom:38px}}@media(max-width:899px){.finale-heading{flex-wrap:wrap}.finale-heading h1{font-size:36px}.finale-heading p{font-size:.9rem}.finale-controls{padding-top:0;max-width:none}.finale-progress{margin-bottom:18px}.finale-exhibitions{gap:18px}.finale-print .print-rule{height:33px;font-size:8px;padding:3px}.finale-print .print-rule b{font-size:11px}.finale-card-points{bottom:36px;font-size:13px;padding:3px 5px}.finale-grid{gap:5px}.finale-caption{align-items:start;min-height:90px}.finale-caption .print-score-recap{font-size:19px}.finale-caption>span{font-size:.75rem}}@media(max-width:520px){.finale-heading h1{font-size:30px}.finale-exhibitions{gap:14px}.exhibit-title{gap:7px}.exhibit-title h2{font-size:20px}.finale-total{gap:4px}.finale-total strong{font-size:32px}.finale-total span{font-size:11px}.gallery-number{font-size:10px}.finale-print .print-rule{height:26px;font-size:7px;gap:2px}.finale-print .print-rule b{font-size:10px}.finale-print .color-label{font-size:6px;padding:1px 2px;left:2px;top:2px}.finale-card-points{bottom:28px;font-size:11px;padding:2px 3px;min-width:30px}.finale-caption{display:block}.finale-caption>span{display:block;max-width:none;margin-bottom:8px}.finale-caption strong{font-size:.75rem}.finale-caption .print-score-recap{font-size:20px}.finale-verdict{gap:18px;min-height:100px;padding-top:10px}.finale-verdict p{font-size:.8rem}.winner-ribbon{font-size:20px}.finale-progress{gap:4px}#finale-stage{font-size:.75rem;margin-left:4px}.finale-print.print-in-spotlight{outline-width:2px;outline-offset:2px;transform:translateY(-3px)}.finale-print.print-contributes:not(.print-in-spotlight){outline-width:2px;outline-offset:0}}@media(prefers-reduced-motion:reduce){.finale *{animation:none!important;transition:none!important}}
.finale-print{opacity:1}.finale-print .print-rule{min-height:35px}.critic-bonus-recap small{display:block;font:600 11px/1.3 "DM Sans",Arial,sans-serif;white-space:normal;max-width:110px;margin-top:5px}.finale-caption .critic-bonus-recap{white-space:normal}@media(max-width:520px){.finale-print .print-rule{min-height:24px;height:24px;justify-content:center}.finale-print .print-rule span,.finale-print .color-label{display:none}.finale-print .print-rule b{font-size:12px}.finale-print .print-rule b::after{content:" Pop";font-size:9px}.finale-card-points{bottom:26px}.finale-progress{flex-wrap:wrap}}
