/* Archive-only layout. Colours, typography and components come from the Siena
   hunt's original.css; do not override its edition design system here. */
.archive {height:auto;min-height:100dvh;overflow-wrap:break-word;}
.archive [hidden] {display:none!important;}
.archive a {text-underline-offset:3px;}
.archive-brand {color:var(--text);text-decoration:none;gap:12px;}
.archive-brand small {display:block;color:var(--text-muted);font-size:11px;font-weight:500;margin-top:3px;}
.archive .topbar {gap:16px;}
.archive .topbar .status-dot {font-size:9px;}
.archive-main {padding-top:32px;min-height:65vh;}
.archive-main:focus {outline:none;}
.intro {margin-bottom:28px;}
.intro .subtitle {max-width:65ch;}
.archive-footer {margin:24px auto 0;padding:24px 16px;text-align:center;color:var(--text-muted);font-size:11px;}
.archive-footer span {display:inline-block;margin-top:4px;}
.archive-nav {z-index:30;}
.archive-nav a {justify-content:center;}
.skip-link {position:fixed;left:10px;top:10px;z-index:100;transform:translateY(-180%);background:var(--bg-elev);padding:12px;border:1px solid var(--gold);}
.skip-link:focus {transform:none;}
.champion {display:flex;align-items:center;gap:18px;margin-bottom:28px;border-color:var(--gold);}
.champion-icon {font-size:32px;}
.champion-copy {min-width:0;flex:1;}
.champion .eyebrow {margin-bottom:8px;}
.champion h2 {overflow-wrap:anywhere;}
.champion-score {font:32px var(--serif);color:var(--gold);text-align:right;flex-shrink:0;}
.champion-score small {display:block;font:10px var(--font);color:var(--text-muted);margin-top:4px;}
.rank-list {list-style:none;padding:0;margin:16px 0;}
.archive .lb-name {white-space:normal;overflow-wrap:anywhere;}
.archive .lb-meta {display:block;margin-top:4px;}
.note {font-size:12px;color:var(--text-muted);line-height:1.65;}
.archive-main p {margin-top:0;}
.archive-main > .note {margin-bottom:20px;}
.category-tabs {display:flex;gap:18px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin:0 0 24px;}
.category-tabs a {display:inline-flex;align-items:center;padding:10px 0;color:var(--text-muted);border-bottom:2px solid transparent;text-decoration:none;font-size:13px;font-weight:600;}
.category-tabs a.active {color:var(--gold);border-bottom-color:var(--gold);}
.task-number {display:block;color:var(--text-muted);font-size:10px;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;}
.archive .task-title {margin:0;}
.prose {white-space:pre-wrap;overflow-wrap:anywhere;}
.prose a {overflow-wrap:anywhere;}
.scratchpad {display:block;color:var(--text-muted);font-size:11px;margin-top:20px;}
.scratchpad + textarea {margin:8px 0 16px;}
.solution {padding:18px;border-left:3px solid var(--green);background:var(--bg-elev-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-top:18px;}
.solution-title {display:block;color:var(--green);font-size:10px;text-transform:uppercase;letter-spacing:1px;font-weight:700;margin-bottom:10px;}
.solution p:last-child {margin-bottom:0;}
.archive .task-photo {height:auto;aspect-ratio:auto;max-height:480px;object-fit:contain;}
.filters {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;}
.filters > div {min-width:0;}
.filters label {display:block;color:var(--text-muted);font-size:11px;margin-bottom:7px;}
.clear-filters {display:inline-flex;margin-top:20px;}
.gallery {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.photo-card {margin:0;min-width:0;padding:0;overflow:hidden;}
.photo-open {border:0;padding:0;display:block;position:relative;width:100%;background:var(--bg-elev-2);cursor:zoom-in;}
.photo-open img {display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;}
.photo-card figcaption {padding:14px;font-size:12px;overflow-wrap:anywhere;}
.photo-card figcaption strong {display:block;margin-bottom:5px;}
.photo-card figcaption > span {color:var(--text-muted);}
.photo-card .pill {margin-top:10px;font-size:10px;}
.video-indicator {position:absolute;bottom:12px;left:12px;background:var(--bg);color:var(--text);padding:4px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12px;}
.snapshot-list {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.snapshot-list .card {min-width:0;margin:0;}
.snapshot-list h3 {font-size:16px;}
.snapshot-list .snapshot-time {margin:12px 0 4px;color:var(--gold);font-size:13px;font-variant-numeric:tabular-nums;}
.snapshot-list .gambler-total > div:first-child {gap:6px;font-size:12px;}
.snapshot-list .gambler-winner {display:block;margin:4px 0 0;}
.snapshot-list .gambler-snapshot-caption {line-height:1.7;}
.gambler-snapshots {margin:28px 0;}
.gambler-snapshots > .gambler-section-head {margin-bottom:14px;}
.photo-viewer {background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:18px;width:min(900px,95vw);max-height:94dvh;}
.photo-viewer::backdrop {background:#000d;}
.viewer-top,.viewer-actions {display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;}
.viewer-top {margin-bottom:14px;color:var(--text-muted);}
.photo-viewer img,.photo-viewer video {display:block;width:100%;max-height:64dvh;object-fit:contain;background:var(--bg);}
.photo-viewer p {font-size:12px;line-height:1.65;margin:14px 0;}
.viewer-actions a {text-align:center;}
.viewer-open {overflow:hidden;}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media(max-width:760px) {.filters {grid-template-columns:repeat(2,minmax(0,1fr));}.gallery {grid-template-columns:repeat(2,minmax(0,1fr));}.snapshot-list {grid-template-columns:1fr;}.snapshot-list .gambler-total > div:first-child {font-size:13px;}}
@media(max-width:420px) {.archive .topbar {gap:10px;}.archive-brand {font-size:13px;gap:9px;}.archive-brand small {font-size:10px;}.archive .topbar .status-dot {font-size:8px;padding:6px 8px;}.champion {flex-wrap:wrap;gap:12px;}.champion-icon {font-size:25px;}.champion-score {width:100%;text-align:left;}.gallery,.filters {grid-template-columns:1fr;}.viewer-actions {flex-wrap:wrap;}.category-tabs {gap:16px;}}
@media(prefers-reduced-motion:reduce) {.archive * {transition:none!important;animation:none!important;scroll-behavior:auto!important;}}
