
:root { font-family: system-ui, sans-serif; color: #223046; background: #f3f5f7; }
body { margin: 0; }
main { max-width: 30rem; margin: 15vh auto 3rem; padding: 2rem; background: white; border-radius: .7rem; border: 1px solid #dce2e9; }
.brand { color: #365f91; font-weight: 750; text-decoration: none; }
h1 { font-size: 1.7rem; margin: 2rem 0; }
.username { font-size: 1.25rem; }
.badge { color: #664a12; background: #fff2d5; padding: .3rem .6rem; border-radius: .3rem; width: fit-content; font-size: .85rem; }
a { color: #254e82; display: inline-block; }
.button { background: #254e82; color: white; padding: .75rem 1rem; border-radius: .3rem; text-decoration: none; margin: 0 1rem 1rem 0; }
a:focus-visible { outline: 3px solid #cf8610; outline-offset: 4px; }
@media (max-width: 36rem) { main { margin: 4rem 1rem; padding: 1.5rem; } }
.site { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.1rem max(1.5rem,calc((100vw - 72rem)/2)); background:white; border-bottom:1px solid #dce2e9; }
.brand span { margin-left:.5rem; font-weight:500; }
nav { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; font-size:.9rem; }
nav .badge { margin:0; }
.accounts { position:relative; }
.accounts[open] { background:white; padding:.5rem; border:1px solid #dce2e9; border-radius:.3rem; }
.accounts a { display:block; padding:.3rem; }
main.contest-layout { max-width:72rem; margin:2rem auto 4rem; padding:0 1.5rem; background:transparent; border:0; }
.hero,.panel { background:white; border:1px solid #dce2e9; border-radius:.6rem; padding:1.5rem; margin-bottom:1.5rem; }
.hero h1 { font-size:2.5rem; margin:.75rem 0 1rem; }
.eyebrow { color:#52627a; font-size:.85rem; text-transform:uppercase; letter-spacing:.06em; }
.meta { display:flex; flex-wrap:wrap; gap:1.5rem; color:#52627a; font-size:.95rem; }
.prose { white-space:pre-wrap; line-height:1.6; }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:1rem; }
.entry { background:white; border:1px solid #dce2e9; border-radius:.5rem; overflow:hidden; }
.entry img { width:100%; display:block; aspect-ratio:640/440; object-fit:contain; background:#edf0f4; }
.entry .info { padding:1rem; }
.entry p { margin:.6rem 0; }
h2 { font-size:1.3rem; margin:0 0 1rem; }
section { margin-bottom:2rem; }
label { display:block; font-size:.9rem; margin:.8rem 0 .35rem; }
input,textarea,select { box-sizing:border-box; font:inherit; width:100%; padding:.7rem; border:1px solid #bac5d3; border-radius:.3rem; background:white; color:inherit; }
textarea { resize:vertical; }
button { font:inherit; background:#254e82; color:white; border:0; padding:.7rem 1rem; border-radius:.3rem; cursor:pointer; margin-top:1rem; }
.entry button { background:transparent; color:#254e82; padding:0; text-decoration:underline; }
.entry form.panel { border:0; padding:0; margin:0; }
.award { display:block; width:fit-content; margin-bottom:.6rem; }
.forms { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.5rem; }
.forms>.panel { margin-bottom:0; }
.award { display:inline-block; background:#fff2d5; color:#664a12; padding:.25rem .5rem; border-radius:.25rem; }
.round-link { display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid #e2e7ed; text-decoration:none; }
.muted { color:#65748a; font-size:.9rem; }
.comment { border-top:1px solid #e2e7ed; padding:1rem 0; }
.comment .prose { overflow-wrap:anywhere; }
.comment-photo { display:block; max-width:36rem; margin:.8rem 0; white-space:normal; }
.comment-photo-link { display:block; width:fit-content; max-width:100%; }
.comment-photo img { display:block; max-width:100%; max-height:32rem; object-fit:contain; border-radius:.3rem; }
.comment-photo-source { font-size:.85rem; margin-top:.35rem; }
.comment-preview { border:1px solid #bac5d3; border-radius:.5rem; padding:1rem; margin-top:1.5rem; background:#f8fafc; }
.comment-preview h3 { margin:0; font-size:1.1rem; }
.comment-preview .prose { overflow-wrap:anywhere; }
.comment-actions { display:flex; gap:.75rem; flex-wrap:wrap; }
.comment-actions .secondary { background:white; color:#254e82; border:1px solid #bac5d3; }
details.rules { margin:1rem 0; }
details.rules li { padding:.3rem 0; line-height:1.5; }
[hidden] { display:none !important; }
.history-search>div { display:flex; align-items:baseline; gap:.7rem; }
.pagination { justify-content:space-between; margin:1.2rem 0; }
.history-round { display:flex; gap:1.5rem; align-items:center; }
.history-round .archive-photo { flex:0 0 180px; }
.history-round img { width:180px; height:120px; object-fit:contain; }
.archive-photo { margin:.7rem 0; max-width:100%; }
.archive-photo img { max-width:100%; max-height:600px; object-fit:contain; display:block; }
.archive-photo figcaption { font-size:.85rem; padding:.4rem 0; }
.photo-fallback { display:block; padding:2rem 1rem; border:1px dashed #bac5d3; color:#65748a; }
.archive-post header { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.archive-post h3 { font-size:1rem; font-weight:500; }
.archive-body { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.5; }
.archive-body blockquote { border-left:3px solid #dce2e9; padding-left:1rem; margin-left:0; color:#52627a; }
.archive-body pre { white-space:pre-wrap; }
.history-tabs { gap:1.5rem; }
.history-tabs [aria-current] { font-weight:700; }
.back-link { margin-bottom:1rem; }
@media(max-width:600px) { .history-round {display:block;} .site { display:block; padding:1rem; } nav { margin-top:1rem; } .hero h1 { font-size:2rem; } main.contest-layout { margin-top:1rem; padding:0 1rem; } }
:root { color:#233247; background:#f6f7f8; --accent:#315d81; }
html { scroll-padding-top:1.5rem; }
.site { padding-top:1rem; padding-bottom:1rem; }
.site .brand { font-size:1.15rem; }
.site .brand span { color:#233247; }
main.contest-layout { max-width:66rem; }
.hero { padding:2rem; }
.hero h1 { font-size:2.65rem; font-weight:700; letter-spacing:-.04em; }
.hero h1 a { text-decoration:none; }
.history-search { max-width:40rem; }
.history-search label { color:#65748a; }
.history-search button { margin-top:0; }
.contest-card { border:1px solid #dce2e9; background:white; border-radius:.7rem; margin-bottom:1rem; overflow:hidden; transition:border-color .15s,box-shadow .15s; }
.contest-card:hover { border-color:#8ea7bb; box-shadow:0 3px 14px #2332470c; }
.contest-card-link { display:grid; grid-template-columns:220px 1fr; align-items:stretch; color:inherit; text-decoration:none; }
.contest-cover.archive-photo { margin:0; min-height:180px; display:flex; align-items:center; justify-content:center; background:#eef1f3; padding:.75rem; box-sizing:border-box; }
.contest-cover img { width:100%; height:170px; object-fit:contain; }
.cover-empty { color:#6f7d89; font-size:.9rem; text-align:center; }
.contest-card-content { padding:1.3rem 1.5rem; }
.contest-card h2 { font-size:1.3rem; margin:.7rem 0; line-height:1.35; }
.contest-number { font-weight:500; color:#718192; margin-right:.3rem; }
.contest-card p { margin:.5rem 0; }
.card-status { display:flex; gap:.7rem; align-items:center; flex-wrap:wrap; }
.current-label { color:#315d81; font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.status { display:inline-flex; padding:.3rem .6rem; border-radius:2rem; background:#eef1f4; color:#5c6c7c; font-size:.75rem; font-weight:650; }
.status-open { color:#23604a; background:#e7f3ec; }
.status-judging { color:#865c16; background:#fbf0da; }
.status-results { color:#315d81; background:#e9f0f6; }
.card-action { color:#315d81; font-size:.9rem; font-weight:650; margin-top:.6rem; display:inline-flex; gap:1rem; align-items:center; }
.current-contest { border:2px solid #5a7f9c; margin-bottom:1.75rem; }
.current-contest .contest-card-link { grid-template-columns:280px 1fr; }
.current-contest .contest-cover { min-height:230px; background:linear-gradient(145deg,#e6edf1,#f6f7f7); }
.current-contest .contest-cover img { height:215px; }
.current-contest h2 { font-size:1.6rem; }
.contest-cover .photo-fallback { border:0; padding:1rem; font-size:.85rem; }
.contest-hero .primary-action { margin:1rem 0 0; }
.button { background:#315d81; font-size:.95rem; }
.section-heading { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin:1.5rem 0 1rem; }
.section-heading h2 { margin:0; }
.count { color:#6b7a8a; font-size:.9rem; }
.entry-compose { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:2rem; align-items:start; }
.entry-compose:has(.draft-preview[hidden]) { grid-template-columns:1fr; }
.draft-preview { margin:1rem 0 0; border-radius:.4rem; background:#f1f3f5; padding:.6rem; text-align:center; }
.draft-preview img { width:100%; height:190px; object-fit:contain; }
.draft-preview figcaption { display:grid; gap:.5rem; padding:.5rem 0; font-size:.85rem; }
.field-hint { margin:.5rem 0; }
.field-error { color:#94453b; font-size:.9rem; }
input[aria-invalid="true"] { border-color:#b64d3c; }
.photo-help { margin:.8rem 0 1rem; font-size:.9rem; line-height:1.5; }
.photo-help summary { color:#315d81; width:fit-content; }
.photo-help[open] { border:1px solid #dce2e9; border-radius:.4rem; padding:1rem; background:#f8fafb; }
.photo-help ol { padding-left:1.3rem; }
.photo-help li { margin:.5rem 0; }
.photo-help code { overflow-wrap:anywhere; }
.photo-examples { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.entry h3 { font-size:1rem; margin:0 0 .5rem; }
.entry .info { padding:1.1rem; }
.personal-entries { margin-bottom:1rem; }
.entry-edit,.entry-remove { margin-top:.8rem; font-size:.9rem; }
.entry details[open] summary { margin-bottom:.8rem; }
.entry .entry-remove button { color:#94453b; }
.entry-action textarea { font-size:.9rem; }
.entry .photo-fallback { font-size:.85rem; }
.entry a:has(.photo-fallback:not([hidden])) { display:block; }
.feedback { background:#e9f4ec; border:1px solid #b4d8bf; border-radius:.5rem; padding:.9rem 1rem; margin-bottom:1rem; font-size:.95rem; position:sticky; top:1rem; z-index:4; box-shadow:0 2px 6px #2332470a; }
.feedback-error { background:#fff1ed; border-color:#edb8a8; }
.feedback:focus { outline:0; }
.host-settings .action-form { padding:1rem 0 0; margin:0; border:0; }
.demo-controls { color:#6c7988; font-size:.85rem; margin-bottom:1.5rem; }
.demo-controls .panel { margin-top:1rem; }
summary { cursor:pointer; }
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #789dbb; outline-offset:3px; }
.contest-sections { border-bottom:1px solid #dce2e9; padding-bottom:.9rem; gap:2rem; margin:2rem 0; }
.contest-sections a { text-decoration:none; font-weight:650; }
.contest-sections span { font-size:.8rem; padding-left:.4rem; color:#718192; }
.comment time { display:inline-block; margin-left:1rem; font-size:.8rem; color:#718192; }
#discussion .action-form { padding:1rem 0 0; border:0; margin-bottom:0; }
.empty-state { padding:3rem 1rem; text-align:center; border:1px dashed #cbd4dd; border-radius:.6rem; color:#6b7a8a; }
.empty-state h3 { color:#394e63; }
.empty-state p { font-size:.9rem; }
.judging-fields { max-width:46rem; }
.award-picker { display:grid; grid-template-columns:minmax(0,1fr) 110px; align-items:center; gap:1rem; min-height:95px; }
.award-picker:has(img[hidden]) { grid-template-columns:1fr; }
.award-preview { width:110px; height:85px; object-fit:contain; background:#f1f3f5; border-radius:.3rem; }
.mentions { margin:1.5rem 0; }
dialog { max-width:40rem; width:calc(100% - 4rem); border:1px solid #ccd5df; border-radius:.7rem; padding:1.5rem; color:inherit; max-height:85vh; }
dialog::backdrop { background:#13213288; }
.review-award { display:flex; align-items:center; gap:1rem; margin:1rem 0; }
.review-award img { width:120px; height:90px; object-fit:contain; background:#f1f3f5; }
.review-award p { font-size:.9rem; }
.dialog-actions { display:flex; justify-content:flex-end; gap:1rem; }
.dialog-actions [data-review-cancel] { background:#eef1f4; color:#315d81; }
@media(max-width:600px) {
 .hero { padding:1.3rem; }
 .hero h1 { font-size:2rem; }
 .contest-card-link,.current-contest .contest-card-link { grid-template-columns:110px minmax(0,1fr); }
 .contest-cover.archive-photo { min-height:140px; padding:.4rem; }
 .contest-cover img,.current-contest .contest-cover img { height:130px; }
 .contest-card-content { padding:1rem; }
 .contest-card h2,.current-contest h2 { font-size:1.1rem; }
 .contest-card .muted { font-size:.8rem; }
 .contest-card .card-action { font-size:.8rem; }
 .current-contest .contest-cover { min-height:200px; }
 .entry-compose { display:block; }
 .draft-preview img { height:180px; }
 .meta { gap:.6rem 1rem; font-size:.85rem; }
 .site nav { gap:.8rem; font-size:.8rem; }
 .award-picker { grid-template-columns:minmax(0,1fr) 80px; }
 .award-preview { width:80px; height:70px; }
 .dialog-actions { flex-wrap:wrap; }
}
.forum-notice { padding:1rem 1.25rem; margin-bottom:1.25rem; background:#edf3fa; border:1px solid #d3dfed; border-radius:.6rem; }
.forum-notice h2 { margin:0 0 .35rem; font-size:1rem; overflow-wrap:anywhere; }
.forum-notice p { margin:0; line-height:1.55; overflow-wrap:anywhere; }
.forum-notice a { font-weight:600; }
.admin-tools { margin-bottom:1rem; }
.announcement-form { max-width:44rem; }
.announcement-toggle { display:flex; align-items:center; gap:.5rem; }
.announcement-toggle input { width:auto; }
.catalog-head { display:grid; grid-template-columns:minmax(230px,.8fr) 1.2fr; gap:0 2rem; padding:1.5rem 2rem; }
.catalog-head .eyebrow { grid-column:1; }
.catalog-head h1 { grid-column:1; margin:.5rem 0; font-size:2.3rem; }
.catalog-head>.muted { grid-column:1; margin:.5rem 0 0; }
.catalog-head .history-search { grid-column:2; grid-row:1 / 4; align-self:center; }
@media(max-width:600px) {
 .catalog-head { display:block; padding:1.25rem; }
 .catalog-head h1 { font-size:2rem; }
 .catalog-head .history-search { margin:1rem 0; }
}
#your-entries,#enter,#entries,#discussion,#judging,#next-contest { scroll-margin-top:5rem; }
.dismiss-feedback { background:transparent; color:inherit; float:right; margin:0; padding:0 .3rem; font-size:1.15rem; line-height:1; }
.auth-help { margin-left:1rem; font-size:.9rem; }
.help-hero { margin-bottom:2rem; }
.help-hero p { color:#52627a; font-size:1.1rem; line-height:1.6; }
.help-hero>a { font-size:.9rem; font-weight:650; }
.help-layout { display:grid; grid-template-columns:13rem minmax(0,1fr); gap:2rem; align-items:start; }
.help-toc { display:flex; flex-direction:column; align-items:stretch; gap:0; position:sticky; top:1.5rem; padding:.4rem 0; }
.help-toc a { padding:.65rem .8rem; border-left:2px solid #dce2e9; text-decoration:none; line-height:1.4; }
.help-toc a:hover { border-color:#315d81; background:#eaf0f4; }
.help-content { min-width:0; line-height:1.65; }
.help-section { scroll-margin-top:1.5rem; }
.help-section h2 { font-size:1.3rem; letter-spacing:-.02em; margin-bottom:1rem; line-height:1.4; }
.help-section h3 { font-size:1rem; margin:1.5rem 0 .6rem; }
.help-section p:first-of-type { margin-top:0; }
.help-section p:last-child { margin-bottom:0; }
.help-section ol,.help-section ul { padding-left:1.3rem; }
.help-section li { padding-left:.2rem; margin:.65rem 0; }
.help-formats { padding:1rem; background:#f3f6f8; border-radius:.4rem; font-size:.9rem; }
.help-formats dt { color:#52627a; margin:.8rem 0 .25rem; }
.help-formats dt:first-child { margin-top:0; }
.help-formats dd { margin:0; overflow-wrap:anywhere; }
.help-demo { padding:1rem; margin-top:1.5rem; background:#fff7e8; border:1px solid #ebd7ae; border-radius:.4rem; color:#6c5221; font-size:.9rem; }
.help-demo h3 { margin:0 0 .5rem; }
.help-demo p { margin:0; }
.help-section details { border-top:1px solid #e2e7ed; padding:1rem 0; }
.help-section details:last-child { padding-bottom:0; }
.help-section summary { font-weight:600; color:#315d81; }
.help-section details p { margin:.75rem 0 0; }
@media(max-width:760px) {
 .help-layout { grid-template-columns:1fr; gap:1.25rem; }
 .help-toc { position:static; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); font-size:.85rem; }
 .help-toc a { border-left:0; border-bottom:1px solid #dce2e9; padding:.6rem; }
}

/* Live contests: one photo gallery, with participation controls on demand. */
main.contest-layout:has(.contest-page) { max-width:78rem; margin-top:1.3rem; }
.contest-utility { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1.1rem; font-size:.8rem; }
.contest-utility a { color:#617080; text-decoration:none; }
.contest-utility a:hover { color:#315d81; text-decoration:underline; }
.contest-utility .back-link { margin:0; }
.contest-page .contest-hero { background:transparent; border:0; border-radius:0; padding:0; margin:0; }
.contest-heading { display:flex; justify-content:space-between; align-items:center; gap:1.5rem; }
.contest-page .contest-hero h1 { font-size:clamp(1.8rem,3.2vw,2.55rem); line-height:1.15; margin:.45rem 0 .6rem; }
.contest-page .eyebrow { font-size:.72rem; letter-spacing:.08em; }
.contest-page .status { padding:.23rem .55rem; }
.contest-page .contest-hero .primary-action { margin:0; white-space:nowrap; padding:.65rem .95rem; }
.contest-meta { display:flex; gap:.7rem 1.4rem; align-items:baseline; flex-wrap:wrap; color:#657180; font-size:.8rem; }
.contest-meta strong { font-weight:550; color:#3f4e5c; }
.contest-meta details.rules { margin:0; color:#526579; }
.contest-meta .rules[open] { flex-basis:100%; order:1; }
.contest-meta .rules ul { margin:.5rem 0; padding-left:1.2rem; max-width:45rem; }
.contest-meta .rules li { padding:.15rem 0; }
.contest-description { font-size:.9rem; line-height:1.5; margin:.65rem 0 0; max-width:65rem; }
.contest-page .contest-sections { margin:1.2rem 0 1rem; padding:0 0 .7rem; gap:1.5rem; font-size:.9rem; }
.your-quota { margin-left:auto; color:#73808c; font-size:.78rem; }
.your-quota strong { font-weight:550; margin-left:.3rem; }
.contest-page #entries { margin-bottom:1.4rem; }
.contest-page .grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.7rem 1.25rem; align-items:start; }
.contest-page .entry { min-width:0; background:transparent; border:0; border-radius:0; }
.contest-page .entry-photo { display:block; position:relative; background:#e9edef; border-radius:.45rem; overflow:hidden; }
.contest-page .entry img { aspect-ratio:4/3; width:100%; object-fit:contain; background:transparent; }
.contest-page .entry-photo .award { position:absolute; top:.7rem; left:.7rem; margin:0; font-size:.75rem; }
.contest-page .entry .info { padding:.65rem .15rem 0; }
.contest-page .entry h3 { font-size:.94rem; line-height:1.35; margin:0 0 .25rem; font-weight:620; overflow-wrap:anywhere; }
.contest-page .entry-byline { display:flex; gap:.35rem; flex-wrap:wrap; align-items:baseline; margin:0; font-size:.8rem; }
.entry-byline a { text-decoration:none; color:#526579; }
.entry-byline a:hover { text-decoration:underline; }
.entry-submitter { font-size:.72rem; color:#7a8590; }
.contest-page .entry-caption { margin:.4rem 0 0; font-size:.83rem; line-height:1.45; color:#52606e; overflow-wrap:anywhere; }
.entry-tools { display:flex; flex-wrap:wrap; gap:.3rem 1rem; margin-top:.55rem; padding-top:.45rem; border-top:1px solid #e1e5e8; }
.entry-tools .entry-edit,.entry-tools .entry-remove { font-size:.78rem; margin:0; color:#5f7181; }
.entry-tools summary { padding:.2rem 0; }
.entry-tools details[open] { flex-basis:100%; }
.contest-page .entry .action-form { padding:0; margin:0; background:transparent; }
.contest-page .entry-photo .photo-fallback { min-height:14rem; display:grid; place-items:center; box-sizing:border-box; }
.entry-composer { border:1px solid #dce2e9; background:white; border-radius:.5rem; margin:1.2rem 0 1.8rem; }
.entry-composer>summary { padding:.85rem 1rem; font-size:.9rem; font-weight:600; color:#315d81; }
.entry-composer>summary .count { float:right; font-weight:400; font-size:.8rem; }
.entry-composer>.action-form { border:0; margin:0; padding:0 1rem 1rem; }
.contest-page .entry-compose { gap:1.5rem; grid-template-columns:minmax(0,1fr) 20rem; }
.contest-page .entry-compose:has(.draft-preview[hidden]) { grid-template-columns:1fr; max-width:48rem; }
.contest-page .entry-fields label:first-child { margin-top:0; }
.contest-page .draft-preview { margin:0; }
.contest-page .draft-preview img { height:15rem; }
.contest-page .photo-help { margin:.6rem 0; font-size:.8rem; }
.contest-page .field-hint { font-size:.8rem; margin:.35rem 0; }
.contest-page #discussion { padding:1.1rem 1.25rem; }
.contest-page #discussion>.section-heading { margin:0 0 .65rem; }
.contest-page .comment { padding:.85rem 0; }
.contest-page .comment>strong { font-size:.85rem; }
.contest-page .comment time { font-size:.7rem; margin-left:.6rem; }
.contest-page .comment .prose { font-size:.9rem; line-height:1.5; }
.contest-page .comment-photo-source { font-size:.7rem; color:#788593; text-decoration:none; }
.comment-help { margin:.55rem 0; font-size:.8rem; color:#617487; }
.comment-help .muted { font-size:.8rem; margin:.45rem 0 0; }
.contest-page .comment-actions { align-items:center; gap:.6rem; }
.contest-page .comment-actions button { margin-top:.25rem; padding:.55rem .8rem; font-size:.85rem; }
.contest-page .host-settings,.contest-page .hosting-invitation { margin:1rem 0; padding:1rem; }
.contest-page .host-settings>summary { font-size:.85rem; color:#526579; }
.contest-page .hosting-invitation .action-form { border:0; padding:0; margin:0; }
@media(max-width:900px) {
 .contest-page .grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .contest-page .entry-compose { grid-template-columns:minmax(0,1fr) 16rem; }
}
@media(max-width:600px) {
 main.contest-layout:has(.contest-page) { padding:0 1rem; margin-top:1rem; }
 .contest-heading { align-items:start; flex-wrap:wrap; gap:.4rem; }
 .contest-page .contest-hero .primary-action { margin:.25rem 0 .5rem; font-size:.85rem; }
 .contest-meta { gap:.4rem 1rem; font-size:.75rem; }
 .contest-description { font-size:.85rem; }
 .contest-page .contest-sections { gap:1rem; flex-wrap:wrap; }
 .your-quota { font-size:.7rem; }
 .contest-page .grid { grid-template-columns:1fr; gap:1.6rem; }
 .contest-page .entry-compose { display:block; }
 .contest-page #discussion { padding:1rem; }
 .contest-page .comment time { font-size:.65rem; }
}

/* Imported contests: photographs first, original forum messages on demand. */
main.contest-layout:has(.archive-page) { max-width:78rem; margin-top:1.3rem; }
.archive-page .archive-hero { padding:0; margin:0; background:transparent; border:0; }
.archive-hero h1 { font-size:clamp(1.8rem,3.2vw,2.55rem); line-height:1.15; margin:.45rem 0 .7rem; }
.archive-hero .eyebrow { font-size:.72rem; letter-spacing:.08em; }
.archive-page .history-tabs { margin:1.2rem 0 .7rem; padding-bottom:.7rem; border-bottom:1px solid #dce2e9; gap:1.5rem; }
.archive-page .history-tabs a { text-decoration:none; color:#526579; }
.archive-page .history-tabs a:hover { text-decoration:underline; }
.archive-page .history-tabs [aria-current] { color:#315d81; }
.archive-page .history-tabs span { margin-left:.35rem; font-size:.78rem; color:#788593; }
.archive-page .pagination { font-size:.8rem; margin:1rem 0; color:#657180; }
.archive-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.7rem 1.25rem; margin:1.1rem 0 2.5rem; align-items:start; }
.archive-photo-card { min-width:0; }
.archive-photo-card .archive-photo-link { display:block; text-decoration:none; margin:0; background:#e9edef; border-radius:.45rem; overflow:hidden; }
.archive-photo-card img { width:100%; aspect-ratio:4/3; max-height:none; object-fit:contain; }
.archive-photo-card .photo-fallback { aspect-ratio:4/3; box-sizing:border-box; display:grid; place-items:center; padding:1rem; border:0; font-size:.85rem; }
.archive-photo-byline { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding:.6rem .15rem 0; font-size:.82rem; }
.archive-photo-byline strong { font-weight:550; overflow-wrap:anywhere; }
.archive-photo-byline a { font-size:.75rem; text-decoration:none; color:#71808e; }
.archive-photo-byline a:hover { text-decoration:underline; }
.archive-post { border-top:1px solid #dce2e9; padding:.8rem 0; scroll-margin-top:1.5rem; }
.history-tabs+.archive-post { border-top:0; padding-top:.5rem; }
.archive-post>summary { cursor:pointer; font-size:.84rem; color:#526579; }
.archive-post>summary strong { font-weight:600; color:#34485b; }
.archive-post>summary strong>span { font-weight:400; color:#71808e; margin-left:.5rem; }
.archive-post>summary time { font-size:.73rem; margin-left:.8rem; color:#7a8590; }
.archive-post .post-permalink { float:right; color:#8a97a3; font-size:.75rem; text-decoration:none; }
.archive-post:target { border-color:#7c9bb5; }
.archive-post[open] { padding-bottom:1.25rem; }
.archive-message { max-width:60rem; padding-top:.75rem; }
.archive-post-meta { display:flex; flex-wrap:wrap; gap:.5rem 1rem; font-size:.7rem; color:#84909b; margin-bottom:.6rem; }
.archive-body { font-size:.92rem; line-height:1.55; }
.archive-body .archive-photo { margin:1rem 0; }
.archive-body .archive-photo img { max-width:100%; max-height:42rem; border-radius:.35rem; }
.archive-body .archive-photo figcaption { padding-top:.35rem; font-size:.72rem; }
.archive-body .archive-photo figcaption a { color:#788593; text-decoration:none; }
.archive-body .archive-photo figcaption a:hover { text-decoration:underline; }
.archive-discussion { margin-top:1.8rem; }
.archive-discussion>.section-heading { margin:0 0 .8rem; }
.archive-discussion h2 { font-size:1.15rem; }
.archive-winner { display:grid; grid-template-columns:minmax(0,3fr) minmax(10rem,1fr); align-items:center; gap:2rem; margin:1.3rem 0 2.5rem; }
.archive-winner .archive-photo { margin:0; }
.archive-winner img { width:100%; height:clamp(20rem,42vw,36rem); max-height:none; background:#e9edef; border-radius:.45rem; object-fit:contain; }
.archive-winner figcaption { font-size:.75rem; }
.archive-winner figcaption a { color:#71808e; text-decoration:none; }
.archive-winner h2 { font-size:1.5rem; overflow-wrap:anywhere; }
@media(max-width:900px) {
 .archive-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 main.contest-layout:has(.archive-page) { margin-top:1rem; padding:0 1rem; }
 .archive-gallery { grid-template-columns:1fr; gap:1.5rem; }
 .archive-page .history-tabs { gap:1.2rem; font-size:.85rem; }
 .archive-post>summary { font-size:.8rem; }
 .archive-post>summary time { margin-left:.5rem; font-size:.65rem; }
 .archive-winner { grid-template-columns:1fr; gap:.7rem; }
 .archive-winner img { height:auto; max-height:32rem; }
 .archive-winner .award { margin:0 .6rem 0 0; }
 .archive-winner h2 { display:inline; font-size:1.1rem; }
}

.archive-photo-open { display:block; width:fit-content; max-width:100%; text-decoration:none; }
.archive-winner .archive-photo-open { width:100%; }
.opens-photo-viewer { cursor:zoom-in; }
html.photo-viewer-open { overflow:hidden; }
dialog.photo-viewer { box-sizing:border-box; width:calc(100vw - 2rem); max-width:100rem; height:calc(100dvh - 2rem); max-height:none; padding:0; margin:auto; border:1px solid #42515e; border-radius:.65rem; background:#111820; color:#edf2f5; box-shadow:0 1rem 5rem #0008; }
.photo-viewer::backdrop { background:#05090de8; }
.photo-viewer-content { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.photo-viewer-toolbar { display:flex; align-items:center; gap:1rem; padding:.5rem 1rem; }
.photo-viewer-toolbar h2 { flex:1; margin:0; font-size:.9rem; font-weight:550; color:#acbbc7; }
.photo-viewer-toolbar [data-viewer-count] { color:#c7d1d8; font-size:.8rem; font-variant-numeric:tabular-nums; }
.photo-viewer button { display:grid; place-items:center; margin:0; padding:0; width:2.75rem; height:2.75rem; border:1px solid #667784; border-radius:50%; background:#24313de6; color:white; font-size:1.8rem; line-height:1; }
.photo-viewer button:hover { background:#3b5062; }
.photo-viewer button:disabled { opacity:.3; cursor:default; }
.photo-viewer button:focus-visible,.photo-viewer a:focus-visible { outline:3px solid #e5ba75; outline-offset:3px; }
.photo-viewer [data-viewer-close] { border:0; background:transparent; font-size:1.8rem; }
.photo-viewer-stage { display:grid; grid-template-columns:3.5rem minmax(0,1fr) 3.5rem; align-items:center; gap:.75rem; padding:0 .75rem; min-height:0; touch-action:pan-y pinch-zoom; }
.photo-viewer-image { display:grid; min-width:0; height:100%; min-height:0; place-items:center; position:relative; }
.photo-viewer-image img { grid-area:1/1; width:100%; height:100%; min-height:0; object-fit:contain; }
.photo-viewer-image [data-viewer-status] { grid-area:1/1; text-align:center; margin:0; padding:1rem; font-size:.9rem; color:#bccbd6; z-index:1; }
.photo-viewer-footer { display:flex; justify-content:space-between; align-items:baseline; gap:1.5rem; padding:.8rem 1rem; font-size:.82rem; }
.photo-viewer-footer p { margin:0; max-height:4rem; overflow:auto; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; }
.photo-viewer-footer a { color:#c4d8e8; flex-shrink:0; }
@media(max-width:600px) {
 dialog.photo-viewer { width:100%; height:100dvh; max-height:100%; border:0; border-radius:0; }
 .photo-viewer-toolbar { gap:.5rem; padding:.35rem .5rem; }
 .photo-viewer-stage { grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) 3rem; column-gap:.5rem; row-gap:.75rem; padding:0 .5rem; }
 .photo-viewer-image { grid-row:1; grid-column:1; }
 .photo-viewer-previous { grid-row:2; grid-column:1; justify-self:start; }
 .photo-viewer-next { grid-row:2; grid-column:1; justify-self:end; }
 .photo-viewer-footer { display:block; padding:.7rem .75rem max(.75rem,env(safe-area-inset-bottom)); }
 .photo-viewer-footer a { margin-top:.4rem; font-size:.75rem; }
}

/* Historical contests: the photographs appear once, with the original discussion below. */
.archive-winner { grid-template-columns:minmax(0,2fr) minmax(12rem,1fr); gap:1.5rem; margin:1rem 0 1.7rem; }
.archive-winner img { height:clamp(16rem,32vw,27rem); }
.archive-winner h2 { margin:.6rem 0; }
.archive-winner-text { display:block; border-left:3px solid #c29b48; padding:.8rem 1.2rem; background:#faf8f2; border-radius:0 .4rem .4rem 0; }
.archive-winner-text h2 { display:inline; margin-left:.7rem; font-size:1.15rem; }
.archive-winner-text p { font-size:.8rem; margin:.65rem 0 0; }
.archive-unavailable { margin:1rem 0 2rem; font-size:.85rem; color:#657180; }
.archive-unavailable summary { cursor:pointer; padding:.65rem 0; }
.archive-unavailable p { font-size:.8rem; }
.archive-unavailable ul { list-style:none; padding:0; margin:0; }
.archive-unavailable li { display:flex; flex-wrap:wrap; align-items:baseline; gap:.4rem 1rem; border-top:1px solid #e6eaee; padding:.6rem 0; }
.archive-unavailable li strong { min-width:9rem; font-weight:500; color:#34485b; }
.archive-unavailable .archive-photo { margin:0; }
.archive-unavailable .photo-fallback { border:0; padding:0; font-size:.8rem; }
.archive-unavailable li>a:last-child { margin-left:auto; font-size:.75rem; }
.archive-body .archive-photo-reference { display:inline-block; width:auto; padding:.1rem .5rem; margin:.15rem .1rem; border:1px solid #dce3e9; border-radius:.3rem; font-size:.8rem; background:#f5f7f9; white-space:normal; overflow-wrap:anywhere; }
.archive-post-meta { display:none; }
.archive-post>summary { list-style:none; }
.archive-post>summary::-webkit-details-marker { display:none; }
.archive-post:not([open])>summary::before { content:'▸ '; }
.archive-photo-card.photo-unavailable .archive-photo-link { background:transparent; }
.archive-photo-card.photo-unavailable .photo-fallback { aspect-ratio:auto; padding:.8rem; font-size:.8rem; }
.contest-cover .photo-fallback { font-size:.78rem; border:0; padding:.5rem; }
@media(max-width:650px) {
 .archive-winner { grid-template-columns:1fr; gap:.7rem; }
 .archive-winner img { height:auto; max-height:28rem; }
 .archive-unavailable li strong { min-width:0; }
}

.error-page { max-width:38rem; margin:3rem auto; }
.error-page h1 { margin:0 0 .8rem; font-size:1.7rem; }
.error-page p { margin:0 0 1.5rem; line-height:1.5; color:#52627a; }
.error-page .button { margin:0; }

.username-link { color:var(--accent,#315d81); text-decoration:none; text-underline-offset:.16em; }
.username-link:hover { text-decoration:underline; }
.contest-card { position:relative; isolation:isolate; }
.contest-card-target { color:inherit; text-decoration:none; }
.contest-card-target::after { content:""; position:absolute; inset:0; }
.contest-card-target:focus-visible::after { outline:3px solid #cf8610; outline-offset:-3px; border-radius:.7rem; }
.contest-card .username-link { position:relative; z-index:1; }

.catalog-loader { text-align:center; padding:.5rem 0 1rem; }
.catalog-loader p { min-height:1.5em; margin:0 0 .5rem; font-size:.85rem; color:#657180; }
.catalog-loader .button { margin:0; }
.catalog-loader a[aria-disabled="true"] { opacity:.6; cursor:wait; }

.comment-moderate { margin-left:.75rem; font-size:.8rem; }
.moderation-comment { scroll-margin-top:1rem; }
.moderation-controls { margin-top:1rem; }
.moderation-controls form { margin-top:.75rem; }
