.activities-page {
    max-width: 1120px;
    margin: 0 auto;
    padding: clamp(1.25rem, 3vw, 2.25rem) clamp(1rem, 3vw, 2rem);
}

.activities-shell {
    display: grid;
    gap: clamp(1rem, 2.2vw, 1.75rem);
}

.activities-hero {
    max-width: 760px;
}

.activities-hero h1 {
    margin: 0;
    color: var(--text-primary);
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.12;
    letter-spacing: -0.025em;
}

.activities-lead {
    max-width: 660px;
    margin: 1rem 0 0;
    color: var(--text-muted);
    font-size: clamp(1rem, 2vw, 1.2rem);
    line-height: 1.75;
}

.activities-breadcrumb {
    color: var(--text-muted);
    font-size: .9rem;
}

.activities-rules {
    display: grid;
    gap: .75rem;
    padding: clamp(.9rem, 2vw, 1.2rem);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-standard);
    background: var(--surface-subtle);
}

.activities-rules h2 {
    margin: 0;
    color: var(--text-primary);
    font-size: 1rem;
}

.activities-rules ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .45rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.activities-rules li {
    position: relative;
    min-width: 0;
    padding-left: 1rem;
    color: var(--text-muted);
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.activities-rules li::before {
    position: absolute;
    top: .65em;
    left: 0;
    width: .35rem;
    height: .35rem;
    content: "";
    background: var(--brand-accent);
    border-radius: 50%;
}

.activities-empty {
    padding: clamp(1.35rem, 4vw, 2.5rem);
    background: var(--surface-bg);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-standard);
    box-shadow: var(--shadow-card);
}

.activities-empty-heading {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.activities-empty-icon {
    display: grid;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    color: var(--brand-accent);
    background: var(--brand-accent-soft);
    border: 1px solid var(--surface-border);
    border-radius: 50%;
}

.activities-empty h2,
.activities-planned h3,
.activities-planned-card h4 {
    color: var(--text-primary);
}

.activities-empty h2 {
    margin: 0 0 0.5rem;
    font-size: clamp(1.35rem, 3vw, 1.75rem);
}

.activities-empty-heading p,
.activities-planned-card p {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.7;
}

.activities-planned {
    margin-top: 2rem;
    padding-top: 1.75rem;
    border-top: 1px solid var(--surface-border);
}

.activities-planned h3 {
    margin: 0 0 1rem;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.activities-planned-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.activities-planned-card {
    padding: 1.25rem;
    background: var(--surface-subtle);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-standard);
}

.activities-planned-card > i {
    margin-bottom: 0.85rem;
    color: var(--brand-accent);
    font-size: 1.2rem;
}

.activities-planned-card h4 {
    margin: 0 0 0.4rem;
    font-size: 1rem;
}

.activities-framework-note {
    display: flex;
    gap: 0.55rem;
    align-items: flex-start;
    margin: 1.25rem 0 0;
    color: var(--text-muted);
    font-size: 0.88rem;
    line-height: 1.55;
}

.activities-framework-note i {
    margin-top: 0.2rem;
    color: var(--semantic-info);
}

.activities-hub-list { display:grid; gap:1.25rem; }
.activities-hub-card { display:grid; grid-template-columns:minmax(0, 1fr) minmax(260px, 40%); gap:clamp(1rem, 3vw, 2.5rem); min-height:260px; overflow:hidden; border:1px solid var(--surface-border); border-radius:var(--radius-standard); background:var(--surface-bg); min-width:0; box-shadow:var(--shadow-card); }
.activities-hub-copy { display:grid; align-content:center; justify-items:start; gap:1rem; padding:clamp(1.5rem, 4vw, 3rem); min-width:0; }
.activities-hub-thumbnail { width:100%; height:100%; min-height:260px; object-fit:cover; background:var(--surface-subtle); }
.activities-hub-card h2,.activities-hub-card p { margin:0; overflow-wrap:anywhere; }
.activities-status { font-weight:700; color:var(--text-muted); }
#activities-status.activities-status--pagination { padding:.25rem 0; margin:0; border:0; color:var(--text-muted); background:transparent; font-size:.875rem; font-weight:500; }
.activities-promotion, .activities-work { padding:1rem; background:var(--surface-bg); border:1px solid var(--surface-border); border-radius:var(--radius-standard); }
.activities-works-section { display:grid; gap:clamp(1rem,2vw,1.5rem); padding-top:clamp(.5rem,1.5vw,1rem); }
.activities-groups { display:grid; gap:clamp(1.25rem,3vw,2rem); min-width:0; }
.activities-category { display:grid; gap:.75rem; min-width:0; }
.activities-category + .activities-category { margin-top:clamp(.25rem,1vw,.5rem); padding-top:clamp(1.25rem,3vw,1.75rem); border-top:1px solid var(--surface-border); }
.activities-category > h3 { min-width:0; margin:0; color:var(--brand-accent); font-size:clamp(1.1rem,2vw,1.25rem); font-weight:800; line-height:1.45; letter-spacing:.01em; overflow-wrap:anywhere; }
.activities-category-status { min-height:1.35rem; margin:0; color:var(--text-muted); font-size:.875rem; }
.activities-category-empty { margin:0; color:var(--text-muted); }
.activities-category-pagination { display:flex; flex-wrap:wrap; gap:.45rem; }
.activities-category-pagination .btn { padding:.35rem .65rem; }
.activities-category-pagination a[aria-disabled="true"] { pointer-events:none; opacity:.65; }
.activities-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; min-width:0; align-items:stretch; }
.activities-work { display:grid; grid-template-rows:auto minmax(2.65rem,auto) minmax(0,1fr) auto auto; gap:.55rem; min-width:0; height:100%; }
.activities-work-image { display:block; width:100%; min-width:0; aspect-ratio:4/3; padding:0; overflow:hidden; border:0; border-radius:calc(var(--radius-standard) - 2px); background:var(--surface-subtle); cursor:zoom-in; }
.activities-work img { display:block; width:100%; height:100%; object-fit:cover; border-radius:inherit; }
.activities-work-image img, .activities-full-image-fallback, .activities-full-image-viewport img { -webkit-user-drag:none; user-select:none; }
.activities-work h3, .activities-work p { min-width:0; margin:0; color:var(--text-primary); overflow-wrap:anywhere; }
.activities-work-title { display:block; margin:0; font-size:.98rem; line-height:1.35; font-weight:700; }
.activities-work-details-region { display:grid; align-content:start; gap:.35rem; min-width:0; min-height:0; }
.activities-work-rank { font-size:.8rem; line-height:1.35; font-weight:700; }
.activities-work-medal { display:inline-block; margin-inline-start:.2rem; font-size:1.15em; line-height:1; vertical-align:-.08em; }
.activities-work .activities-work-meta { color:var(--text-muted); font-size:.78rem; line-height:1.4; }
.activities-work-position-details { display:grid; gap:.3rem; min-width:0; font-size:.78rem; line-height:1.4; }
.activities-work-position-details .activities-work-meta { margin:0; }
.activities-work-stats { display:grid; gap:.35rem; margin:0; }
.activities-work-stat { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.75rem; align-items:center; min-height:2.2rem; padding:.35rem .55rem; border:1px solid var(--surface-border); border-radius:calc(var(--radius-standard) - 4px); background:var(--surface-subtle); }
.activities-work-stat dt { min-width:0; color:var(--text-muted); font-size:.72rem; line-height:1.3; font-weight:600; overflow-wrap:anywhere; }
.activities-work-stat dd { min-width:0; margin:0; color:var(--text-primary); font-size:.88rem; line-height:1.3; font-variant-numeric:tabular-nums; font-weight:700; overflow-wrap:anywhere; text-align:right; }
.activities-work > .btn { width:100%; min-height:2.4rem; max-width:100%; padding:.45rem .65rem; font-size:.82rem; line-height:1.3; white-space:normal; overflow-wrap:anywhere; }
.activities-work-details { margin:0; color:var(--text-muted); font-family:inherit; font-size:.78rem; line-height:1.45; white-space:pre-wrap; overflow-wrap:anywhere; }
.activities-full-image-dialog { box-sizing:border-box; width:min(calc(100vw - 2rem),1800px); height:min(calc(100vh - 2rem),1100px); height:min(calc(100dvh - 2rem),1100px); max-width:none; max-height:none; padding:1rem; border:1px solid var(--surface-border); border-radius:var(--radius-standard); color:var(--text-primary); background:var(--surface-bg); overflow:hidden; grid-template-rows:auto minmax(0,1fr) auto; gap:.75rem; }
.activities-full-image-dialog[open] { display:grid; }
.activities-full-image-dialog::backdrop { background:rgb(0 0 0 / .72); }
.activities-full-image-header { display:flex; min-width:0; align-items:center; justify-content:space-between; gap:.75rem; }
.activities-full-image-header .activities-work-position-details { flex:1 1 16rem; }
.activities-full-image-toolbar { display:flex; flex:0 1 auto; flex-wrap:wrap; justify-content:flex-end; gap:.5rem; }
.activities-full-image-viewport { position:relative; width:100%; height:100%; min-width:0; min-height:0; overflow:hidden; border:1px solid var(--surface-border); border-radius:calc(var(--radius-standard) - 4px); background:#080b10; cursor:grab; touch-action:none; user-select:none; }
.activities-full-image-viewport:active { cursor:grabbing; }
.activities-full-image-fallback { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:.55; pointer-events:none; }
.activities-full-image-viewport .openseadragon-canvas { touch-action:none; }
.activities-full-image-viewport > [role="status"] { position:absolute; inset:50% auto auto 50%; z-index:1; margin:0; transform:translate(-50%,-50%); }
.activities-full-image-dialog > .activities-work-stats { grid-template-columns:repeat(2,minmax(0,1fr)); min-width:0; max-height:8rem; overflow:auto; }
#activities-submit-dialog { width:min(36rem,calc(100% - 2rem)); border:1px solid var(--surface-border); border-radius:var(--radius-standard); color:var(--text-primary); background:var(--surface-bg); }
.activities-vote-error { position:fixed; z-index:1060; right:1rem; bottom:1rem; display:flex; box-sizing:border-box; align-items:center; gap:.75rem; width:min(28rem,calc(100vw - 2rem)); max-width:calc(100vw - 2rem); margin:0; padding:1rem; color:var(--text-primary); background:var(--surface-bg); border-color:var(--danger, #dc3545); box-shadow:0 .75rem 2rem rgb(0 0 0 / .25); }
.activities-vote-error[hidden] { display:none; }
.activities-vote-error p { flex:1 1 16rem; min-width:0; margin:0; overflow-wrap:anywhere; }
.activities-vote-error .btn { flex:0 0 auto; margin-left:auto; }
#activities-submit-form { display:grid; gap:.65rem; }
#activities-category-input { min-width:0; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.activities-upload-progress { display:grid; gap:.45rem; padding:.75rem; border:1px solid var(--surface-border); border-radius:calc(var(--radius-standard) - 4px); background:var(--surface-subtle); }
.activities-upload-progress[hidden] { display:none; }
.activities-upload-progress-stage, .activities-upload-progress-detail { margin:0; overflow-wrap:anywhere; }
.activities-upload-progress-stage { font-weight:700; color:var(--text-primary); }
.activities-upload-progress-detail { min-height:1.35em; color:var(--text-muted); font-size:.9rem; }
.activities-upload-progressbar { position:relative; height:.75rem; overflow:hidden; border-radius:999px; background:color-mix(in srgb,var(--text-muted) 22%,transparent); }
.activities-upload-progressbar > span { display:block; width:0; height:100%; border-radius:inherit; background:var(--brand-accent); transition:width .15s ease-out; }
.activities-upload-progressbar:not([aria-valuenow]) > span { width:38%; animation:activities-upload-indeterminate 1.15s ease-in-out infinite; }
@keyframes activities-upload-indeterminate { from { transform:translateX(-110%); } to { transform:translateX(275%); } }
.activities-dialog-actions { display:flex; gap:.75rem; justify-content:flex-end; }
.activities-section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.activities-section-heading h2, .activities-section-heading p { margin:0; }
.activities-section-heading p { margin-top:.45rem; color:var(--text-muted); }
.activities-archives { display:grid; gap:1rem; }
.activities-works-section + .activities-archives { margin-top:clamp(2.5rem,6vw,4rem); padding-top:clamp(2rem,5vw,3rem); border-top:2px solid var(--surface-border); }
.activities-archive-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:.75rem; padding:0; margin:0; list-style:none; }
.activities-archive-list a { display:flex; justify-content:space-between; gap:1rem; padding:1rem; color:var(--text-primary); background:var(--surface-bg); border:1px solid var(--surface-border); border-radius:var(--radius-standard); text-decoration:none; }
.activities-archive-list a:hover, .activities-archive-list a:focus-visible, .activities-archive-list .is-current a { border-color:var(--brand-accent); background:var(--brand-accent-soft); }
.activities-archive-list a span:last-child { color:var(--text-muted); font-size:.9rem; }
.activities-read-only-label { color:var(--text-muted); }

/* Retains a visible keyboard focus treatment for future page actions. */
.activities-page :focus-visible {
    outline: 3px solid var(--brand-accent);
    outline-offset: 3px;
}

html[data-theme="light"] .activities-page {
    color: var(--text-primary);
}

@media (min-width: 1200px) {
    .activities-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .activities-full-image-dialog { width:100vw; height:100vh; height:100dvh; max-width:none; max-height:none; margin:0; padding:.65rem; border:0; border-radius:0; gap:.5rem; }
    .activities-full-image-header { align-items:stretch; flex-wrap:wrap; }
    .activities-full-image-header .activities-work-position-details { flex-basis:100%; }
    .activities-full-image-toolbar { flex:1 1 100%; }
    .activities-full-image-toolbar .btn { flex:1 1 auto; min-width:0; white-space:normal; }
    .activities-full-image-dialog > .activities-work-stats { grid-template-columns:1fr; max-height:10rem; }
    #activities-submit-dialog { width:calc(100% - 1rem); max-height:calc(100dvh - 1rem); padding:.75rem; }
    #activities-submit-form { min-width:0; }
    .activities-dialog-actions { flex-direction:column; }
    .activities-dialog-actions .btn { width:100%; }
    .activities-vote-error { flex-direction:column; align-items:stretch; }
    .activities-vote-error .btn { align-self:flex-end; }
    .activities-page {
        padding-top: 1rem;
    }

    .activities-planned-grid {
        grid-template-columns: 1fr;
    }

    .activities-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .activities-work { grid-template-rows:auto auto auto auto auto; height:auto; }
    .activities-work-title { min-height:0; }

    .activities-category + .activities-category {
        margin-top: 0;
        padding-top: 1rem;
    }

    .activities-works-section + .activities-archives {
        margin-top: 1.75rem;
        padding-top: 1.75rem;
    }

    .activities-hub-card { grid-template-columns:1fr; gap:0; }
    .activities-hub-thumbnail { order:-1; min-height:0; aspect-ratio:16 / 9; }

    .activities-empty-heading {
        display: grid;
    }
}

@media (prefers-reduced-motion: reduce) {
    .activities-upload-progressbar > span { transition:none; }
    .activities-upload-progressbar:not([aria-valuenow]) > span { width:100%; animation:none; opacity:.65; }
}
