.stage-event-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0 34px}
.stage-event-heading h2{font-size:clamp(22px,3vw,42px);color:#f7dfab;margin:0}
.stage-event-heading p{margin:8px 0 0;color:#c9b8d9;font-size:.9rem}
.stage-mode-badge{border:1px solid #af8a53;border-radius:100px;padding:10px 18px;color:#efcd91;white-space:nowrap;font-size:.85rem}
.stage-mode-badge.is-live{border-color:#82b5a2;color:#a4e5c5;background:#15372d70}
.podium-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,36px);align-items:end;margin:0 auto;max-width:1600px;padding-top:26px}
.podium-column{text-align:center;min-width:0;position:relative;border:1px solid #85614577;border-radius:22px 22px 10px 10px;background:linear-gradient(150deg,#3c215566,#22142e77);padding:20px 16px 0;animation:podium-arrive .65s ease both}
.podium-1{border-color:#ebc47fa8;box-shadow:0 0 52px #dcaa5420;--medal:#f1cd82;--base-height:130px}
.podium-2{margin-top:70px;--medal:#d2d6ed;--base-height:85px}
.podium-3{margin-top:110px;--medal:#cd9365;--base-height:50px}
.medal{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:16px;color:var(--medal)}
.medal span{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;font:bold 30px Georgia,serif;background:radial-gradient(circle at 30% 25%,#fff5d8,var(--medal) 48%,#5d3c30);border:3px solid var(--medal);color:#241523;box-shadow:0 5px 20px #0006;position:relative}
.medal span::before{content:'';position:absolute;top:-19px;z-index:-1;width:29px;height:35px;background:linear-gradient(90deg,#4c2859 40%,#b98e5b 40% 60%,#4c2859 60%);clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%)}
.medal b{font-size:1rem;letter-spacing:.06em}
.winner-strip{display:grid;grid-template-columns:repeat(var(--tie-count),minmax(0,1fr));gap:10px;align-items:end}
.winner-card{min-width:0;text-align:center}
.winner-portrait,.portrait-placeholder{width:100%;height:clamp(130px,22vh,300px);object-fit:contain;object-position:center bottom;filter:drop-shadow(0 10px 16px #0005);display:block;margin:auto}
.portrait-placeholder{fill:#d8c3e344;max-width:200px}
.winner-card h3{margin:12px 0 8px;font-size:clamp(13px,1.25vw,24px);overflow-wrap:anywhere;line-height:1.5;color:#fff1d7}
.winner-total{font-size:clamp(22px,2.7vw,50px);font-weight:700;color:var(--medal);font-variant-numeric:tabular-nums;line-height:1.1}
.winner-total small{display:block;font-size:11px;color:#c4afce;margin:6px 0 14px;font-weight:400}
.winner-work,.work-placeholder{display:block;width:100%;height:clamp(85px,12vh,170px);object-fit:cover;border-radius:12px;border:1px solid #9a775777;background:#1a1028}
.work-placeholder{display:grid;place-items:center;font-size:.8rem;color:#bca5c9;padding:10px}
.podium-base{height:var(--base-height);margin:20px -16px 0;display:grid;place-items:center;color:var(--medal);font:bold clamp(32px,5vw,80px) Georgia,serif;border-top:1px solid #b48a5280;background:linear-gradient(120deg,#7b543633,#382142)}
.covered-winner{min-height:clamp(290px,44vh,475px);display:flex;flex-direction:column;justify-content:center;color:#ad91ba;gap:20px}
.covered-winner .portrait-placeholder{opacity:.4;height:190px}
.tie-label{color:#edd3ac;font-size:.85rem;padding-top:12px}
.list-photo{width:50px;height:64px;flex-shrink:0}.list-portrait{width:100%;height:100%;object-fit:contain}.list-photo .portrait-placeholder{height:64px}
.stage-pagination{text-align:center;color:#c4aecf;margin:18px 0;font-size:.85rem}
.stage-connection{border:1px solid #84644666;padding:8px 14px;border-radius:10px;color:#b6e8cf;min-height:1.5em}
.stage-connection[data-error=true]{color:#ffd1d5;background:#5c2435;border-color:#d08395;position:sticky;top:0;z-index:5}
.stage-only{padding:clamp(16px,3vw,50px);min-height:100vh;background:radial-gradient(ellipse at 50% 0%,#5b297743,transparent 65%),#160e22}
.stage-only:fullscreen{overflow:auto}
.stage-only-header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #b893553c;padding-bottom:16px;flex-wrap:wrap}
.stage-only-brand{color:#edca88;font:30px Georgia,serif;letter-spacing:5px}
.stage-only-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.stage-only-controls select{width:auto;max-width:300px}
.stage-display{min-height:65vh}.stage-only .score-row{background:#2b193e;max-width:1500px;margin:12px auto;border:1px solid #725b804c}
.stage-body{background:#160e22}.entry-card>h2{padding:24px 25px 0}.entry-card{margin-top:24px}
.stage-only .score-person b{font-size:clamp(16px,2vw,30px)}.stage-only .score{font-size:clamp(26px,3vw,46px)}
.stage-page-controls{display:flex;justify-content:center;gap:16px;margin-top:18px}
.criterion-editor-row{display:grid;grid-template-columns:minmax(0,1fr) 115px auto;gap:12px;align-items:end;padding:16px 0;border-bottom:1px solid #584060}
.criterion-editor-row .criterion-description{grid-column:1/-1}.criteria-help{margin:0;color:#cdb5df;line-height:1.8}
.criteria-scoring{grid-column:1/-1;display:grid;gap:16px}.criterion-score{display:grid;grid-template-columns:minmax(0,1fr) 125px;gap:18px;align-items:center;border:1px solid #604374;background:#261632;border-radius:14px;padding:18px}
.criterion-score .criterion-caption{line-height:1.6}.criterion-score small{display:block;color:#c4acd2;overflow-wrap:anywhere}.criterion-score input{font-size:24px;text-align:center;color:#f4d299}
.judge-score-total{text-align:right;color:#eed49d;font-size:1.2rem;padding:0 25px 20px}
.photo-field{grid-column:1/-1;padding:16px;border:1px dashed #90724b88;border-radius:14px;background:#24152f}
.photo-field input[type=file]{width:100%;font-size:.85rem;padding:10px}.photo-preview{display:block;max-width:100%;height:210px;object-fit:contain;margin:12px auto;background:repeating-conic-gradient(#372442 0 25%,#25172f 0 50%) 0/20px 20px;border-radius:10px}
.photo-status{font-size:.85rem;color:#e0c68f;line-height:1.7}.photo-consent{display:flex;gap:10px;align-items:flex-start;font-size:.78rem;color:#cdbbd9;line-height:1.8;margin-top:12px}.photo-consent input{width:18px;min-height:18px;flex-shrink:0;margin-top:5px;accent-color:#d4b273}
.photo-consent a{color:#eccf94;text-decoration:underline}.person-thumb{width:50px;height:64px;object-fit:contain;vertical-align:middle;margin-right:12px}.person-thumb.work-thumb{object-fit:cover;border-radius:6px}
.stage-director{display:flex;flex-wrap:wrap;gap:10px;padding:0 25px 25px}.stage-director .field{flex:1 1 210px}.stage-director .btn{align-self:end}.stage-director-note{padding:0 25px 20px;color:#d6bfdc;line-height:1.7}
@keyframes podium-arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.podium-grid{align-items:stretch}.podium-column{display:flex;flex-direction:column}.podium-2{margin-top:45px}.podium-3{margin-top:80px}
.winner-strip{flex:1;align-content:end}.winner-portrait,.portrait-placeholder{height:clamp(120px,18vh,220px)}
.winner-work,.work-placeholder{height:clamp(80px,10vh,125px)}.covered-winner{min-height:clamp(280px,35vh,390px)}
.podium-base{flex-shrink:0;line-height:1}.podium-base span{font-size:min(60px,calc(var(--base-height) - 10px));line-height:1}
.winner-work{object-fit:contain}
.photo-frame{--frame-ratio:4 / 5;--frame-width:.8;aspect-ratio:var(--frame-ratio);margin:0 auto;max-width:100%;background:#1a1028;border-radius:10px;overflow:hidden}
.photo-frame.frame-square{--frame-ratio:1;--frame-width:1}
.winner-portrait-frame{--photo-height:clamp(120px,18vh,220px);width:min(100%,calc(var(--photo-height) * var(--frame-width)));height:auto}.winner-work-frame{--photo-height:clamp(80px,10vh,125px);width:min(100%,calc(var(--photo-height) * var(--frame-width)));height:auto}
.photo-frame .winner-portrait,.photo-frame .winner-work,.photo-frame .list-portrait{width:100%;height:100%;object-fit:contain;object-position:center;border:0;border-radius:0}
.photo-preview{width:auto;height:210px;max-width:100%;object-fit:contain;object-position:center}
.photo-frame-field{max-width:210px}.person-thumb.work-thumb{object-fit:contain}
.stage-only .winner-portrait-frame{--photo-height:clamp(120px,16vh,190px)}.stage-only .winner-work-frame{--photo-height:clamp(75px,9vh,110px)}
.list-photo .photo-frame{height:100%}
.attendance-links{display:flex;gap:12px;flex-wrap:wrap;grid-column:1/-1;margin-bottom:20px}
.stage-only{padding:clamp(16px,2vw,32px)}.stage-only .stage-event-heading{margin:16px 0}.stage-only .podium-grid{padding-top:16px}
.stage-only .winner-portrait{height:clamp(120px,16vh,190px)}.stage-only .winner-work,.stage-only .work-placeholder{height:clamp(75px,9vh,110px)}
.stage-only .podium-1{--base-height:100px}.stage-only .podium-2{--base-height:70px}.stage-only .podium-3{--base-height:40px}
/* Audience presentation: controls remain in the backend, never on the stage. */
.stage-only [hidden],.stage-only #stageError:empty{display:none}
.stage-only:focus{outline:none}
.stage-only .stage-event-heading>div>p{display:none}
.stage-card:fullscreen{padding:clamp(16px,2vw,32px)}
.stage-card:fullscreen>.field,.stage-card:fullscreen>.stage-footer,
.stage-card:fullscreen .stage-heading h2,.stage-card:fullscreen .stage-heading>div>p:last-child,
.stage-card:fullscreen .stage-button,.stage-card:fullscreen #stageConnection[data-error=false],
.stage-card:fullscreen #stageMsg:empty{display:none}
.stage-card:fullscreen .stage-heading{margin-bottom:12px}
.stage-card:fullscreen .stage-brand{margin:0}
.stage-card:fullscreen .stage-event-heading{margin:16px 0}
.stage-card:fullscreen .stage-event-heading>div>p{display:none}
@media(prefers-reduced-motion:reduce){.podium-column{animation:none}}
@media(max-width:700px){.podium-grid{gap:8px;padding-top:10px}.podium-column{padding:12px 6px 0;border-radius:14px 14px 8px 8px}.medal span{width:38px;height:38px;font-size:21px}.medal b{font-size:10px}.winner-strip{grid-template-columns:1fr}.winner-portrait,.portrait-placeholder{height:120px}.winner-work,.work-placeholder{height:80px}.winner-card h3{font-size:11px}.winner-total{font-size:22px}.winner-total small{font-size:9px}.podium-base{margin-inline:-6px}.podium-1{--base-height:80px}.podium-2{--base-height:50px}.podium-3{--base-height:30px}.covered-winner{min-height:280px;font-size:10px}.stage-event-heading{align-items:flex-start;flex-direction:column;margin-bottom:20px}.stage-mode-badge{font-size:.75rem}.criterion-editor-row{grid-template-columns:minmax(0,1fr) 80px}.criterion-editor-row .btn{grid-column:1/-1;justify-self:end}.criterion-score{grid-template-columns:minmax(0,1fr) 85px;padding:14px}.stage-only-controls{width:100%}.stage-only-controls select{max-width:100%;width:100%}.stage-only-controls .field{min-width:0;flex:1 1 130px}.stage-only-brand{font-size:24px}.stage-connection{font-size:.8rem}.photo-field{padding:12px}}
