/* « Pull moche » contest (contest.js): home card + entry sheet + rules. */
.act .c-hub-ic { flex: none; color: #111; width: 54px; height: 54px; display: grid; place-items: center; font-size: 1.9rem; background: var(--cream); border: 3px solid #111; border-radius: 14px; transform: rotate(-4deg); }

.c-sheet { color: #111; }
.c-form { display: flex; flex-direction: column; gap: 11px; margin-top: 30px; }
.c-form h3 { margin: 4px 0 2px !important; }
.c-form .d { margin: 0; }
.c-form label { display: grid; gap: 4px; font-weight: 700; font-size: .85rem; }
.c-form input:not([type]) { font: 500 1.05rem "Libre Franklin", sans-serif; color: #111; background: #fff; border: 3px solid #111; border-radius: 12px; padding: 10px; min-width: 0; width: 100%; }
.c-at { display: flex; align-items: center; background: #fff; border: 3px solid #111; border-radius: 12px; overflow: hidden; }
.c-at i { font: 700 1.1rem "Libre Franklin", sans-serif; font-style: normal; padding: 0 2px 0 12px; color: var(--mut); }
.c-form .c-at input:not([type]) { border: 0; border-radius: 0; padding-left: 2px; outline: none; }
.c-at:focus-within, .c-form input:not([type]):focus-visible { outline: 3px solid var(--red); outline-offset: 2px; }
.c-form .c-at input:not([type]):focus-visible { outline: none; }

/* The photo picker is one big tap target; the real file input covers it. */
.c-photo { position: relative; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 120px; padding: 14px; background: #fff; border: 3px dashed #111; border-radius: 16px; text-align: center; font: 400 1.15rem/1.1 Bangers, cursive !important; letter-spacing: .05em; text-transform: uppercase; }
.c-photo::before { content: "📸"; font-size: 2rem; }
.c-photo.has { border-style: solid; }
.c-photo.has::before { content: none; }
.c-photo img { width: 100%; max-height: 260px; object-fit: contain; border-radius: 10px; }
.c-photo input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.c-photo:focus-within { outline: 3px solid var(--red); outline-offset: 3px; }

.c-check { display: flex !important; align-items: flex-start; gap: 10px !important; font-weight: 600 !important; font-size: .95rem !important; line-height: 1.3; }
.c-check input { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--red); }
.c-link { align-self: flex-start; margin: -4px 0 0 34px; padding: 0; background: none; border: 0; font: 700 .9rem "Libre Franklin", sans-serif; color: var(--red); text-decoration: underline; }
.c-err { margin: 0; padding: 8px 10px; border-radius: 10px; background: #fde1df; border: 2px solid #111; font-weight: 600; }
.c-foot { margin: 2px 0 0; font-size: .78rem; color: var(--mut); text-align: center; }

.c-rules { margin-top: 30px; font-size: .9rem; line-height: 1.45; }
.c-rules p { margin: 0 0 9px; }
.c-done { margin-top: 30px; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.c-done .bdb { margin-top: 8px; }

@media (prefers-reduced-motion: reduce) { .act .c-hub-ic { transform: none; } }
