:root {
    --color-primary: #176b5b;
    --color-primary-dark: #0f5145;
    --color-accent: #f2b84b;
    --color-bg: #f5f7f4;
    --color-surface: #ffffff;
    --color-text: #24312e;
    --color-muted: #5d6b67;
    --color-border: #d8e0dc;
    --color-error: #a52222;
    --color-error-bg: #fff1f1;
    --color-success: #176b45;
    --color-success-bg: #edf9f2;
    --shadow-card: 0 8px 24px rgb(28 54 47 / 8%);
    --radius: 16px;
    --tap-size: 48px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

[hidden] {
    display: none !important;
}

html {
    -webkit-text-size-adjust: 100%;
    background: var(--color-bg);
    font-size: 16px;
}

body {
    min-height: 100vh;
    margin: 0;
    color: var(--color-text);
    background: var(--color-bg);
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    line-height: 1.7;
}

a {
    color: var(--color-primary-dark);
}

button,
input,
textarea,
select {
    font: inherit;
}

button,
a {
    touch-action: manipulation;
}

.container {
    width: calc(100% - 32px);
    max-width: 960px;
    margin-inline: auto;
}

.skip-link {
    position: fixed;
    z-index: 100;
    top: 8px;
    left: 8px;
    padding: 10px 14px;
    color: #fff;
    background: var(--color-primary-dark);
    transform: translateY(-150%);
}

.skip-link:focus {
    transform: translateY(0);
}

.site-header {
    padding: max(12px, env(safe-area-inset-top)) 0 12px;
    color: #fff;
    background: var(--color-primary);
}

.header-inner,
.admin-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
}

.site-brand {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    color: #fff;
    font-size: .82rem;
    line-height: 1.3;
    text-decoration: none;
}

.site-brand strong {
    font-size: 1rem;
}

.site-brand__mark {
    display: grid;
    width: 44px;
    height: 44px;
    border: 2px solid rgb(255 255 255 / 70%);
    border-radius: 50%;
    place-items: center;
    font-size: 1.2rem;
    font-weight: 700;
}

.admin-name {
    display: none;
    font-size: .9rem;
}

.site-main {
    min-height: calc(100vh - 180px);
    padding: 32px 0 56px;
}

.site-footer {
    padding: 20px 0 max(20px, env(safe-area-inset-bottom));
    color: var(--color-muted);
    background: #e8eeeb;
    text-align: center;
}

h1,
h2,
p {
    overflow-wrap: anywhere;
}

h1 {
    margin: 0 0 16px;
    font-size: clamp(1.7rem, 6vw, 2.5rem);
    line-height: 1.35;
}

h2 {
    margin: 0 0 8px;
    font-size: 1.2rem;
    line-height: 1.45;
}

.eyebrow {
    margin: 0 0 6px;
    color: var(--color-primary);
    font-size: .9rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.lead {
    margin: 0 0 16px;
    font-size: 1.08rem;
}

.muted {
    color: var(--color-muted);
}

.card {
    padding: 24px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    box-shadow: var(--shadow-card);
}

.hero,
.auth-card,
.error-card {
    max-width: 640px;
    margin-inline: auto;
}

.error-card {
    text-align: center;
}

.error-code {
    margin: 0;
    color: var(--color-primary);
    font-size: 2rem;
    font-weight: 800;
}

.card-grid {
    display: grid;
    gap: 16px;
    margin-top: 24px;
}

.form-stack {
    display: grid;
    gap: 20px;
    margin-top: 28px;
}

.form-group {
    display: grid;
    gap: 8px;
}

.form-group label {
    font-weight: 700;
}

.form-group input,
.form-group textarea,
.form-group select {
    width: 100%;
    min-height: var(--tap-size);
    padding: 11px 12px;
    border: 2px solid #aebbb6;
    border-radius: 10px;
    color: var(--color-text);
    background: #fff;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus,
.button:focus-visible,
a:focus-visible {
    outline: 3px solid var(--color-accent);
    outline-offset: 3px;
}

.button {
    display: inline-flex;
    min-height: var(--tap-size);
    padding: 11px 20px;
    border: 2px solid transparent;
    border-radius: 12px;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.button--primary {
    color: #fff;
    background: var(--color-primary);
}

.button--primary:hover {
    background: var(--color-primary-dark);
}

.button--secondary {
    border-color: rgb(255 255 255 / 70%);
    color: #fff;
    background: transparent;
}

.button--outline {
    border-color: var(--color-primary);
    color: var(--color-primary-dark);
    background: #fff;
}

.button--outline:hover {
    background: #eef7f5;
}

.button--danger,
.button--danger-outline {
    border-color: var(--color-error);
}

.button--danger {
    color: #fff;
    background: var(--color-error);
}

.button--danger-outline {
    color: var(--color-error);
    background: #fff;
}

.button--photo {
    min-height: 64px;
    border-color: var(--color-primary);
    color: #fff;
    background: var(--color-primary);
    font-size: 1.1rem;
}

.button--small {
    min-height: 40px;
    padding: 8px 12px;
    font-size: .88rem;
}

.button--full {
    width: 100%;
}

.alert {
    margin: 20px 0;
    padding: 14px 16px;
    border-left: 5px solid var(--color-primary);
    border-radius: 8px;
    background: #eef7f5;
}

.alert p {
    margin-top: 0;
}

.alert ul {
    margin-bottom: 0;
    padding-left: 1.4em;
}

.alert--error {
    border-left-color: var(--color-error);
    color: #761919;
    background: var(--color-error-bg);
}

.alert--success {
    border-left-color: var(--color-success);
    background: var(--color-success-bg);
}

.page-heading,
.card-actions,
.sticky-actions,
.pager,
.status-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}

.page-heading {
    margin-bottom: 24px;
    justify-content: space-between;
}

.contest-card {
    display: grid;
    gap: 24px;
    margin-bottom: 20px;
}

.status-row {
    margin-bottom: 12px;
}

.status-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    color: #40504b;
    background: #e8eeeb;
    font-size: .86rem;
    font-weight: 700;
}

.status-badge--published {
    color: #0b5638;
    background: #dff5e8;
}

.status-badge--closed,
.status-badge--archived {
    color: #5d5544;
    background: #f2ede2;
}

.summary-list {
    display: grid;
    gap: 8px;
    margin: 16px 0 0;
}

.summary-list div {
    display: grid;
    gap: 2px;
}

.summary-list dt {
    font-size: .9rem;
    font-weight: 700;
}

.summary-list dd {
    margin: 0;
}

.empty-state {
    text-align: center;
}

.form-sections {
    display: grid;
    gap: 24px;
    margin-top: 24px;
}

.form-section {
    min-width: 0;
    margin: 0;
}

.form-section legend {
    padding: 0 8px;
    color: var(--color-primary-dark);
    font-size: 1.25rem;
    font-weight: 800;
}

.form-grid {
    display: grid;
    gap: 20px;
    margin-top: 20px;
}

.form-help,
.field-error {
    margin: 0;
    font-size: .92rem;
}

.field-error {
    color: var(--color-error);
    font-weight: 700;
}

.required {
    display: inline-block;
    margin-left: 4px;
    padding: 1px 6px;
    border-radius: 4px;
    color: #fff;
    background: var(--color-error);
    font-size: .75rem;
}

[aria-invalid="true"] {
    border-color: var(--color-error) !important;
    background: var(--color-error-bg) !important;
}

.choice-group {
    margin-top: 24px;
}

.choice {
    display: inline-flex;
    min-height: var(--tap-size);
    gap: 10px;
    margin-right: 16px;
    align-items: center;
    cursor: pointer;
}

.choice input {
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
}

.choice--block {
    display: flex;
    margin-top: 16px;
    margin-right: 0;
}

.danger-zone {
    margin-top: 24px;
    padding: 16px;
    border: 2px solid #d7b36a;
    border-radius: 12px;
    background: #fff9ec;
}

.danger-zone p {
    margin: 0;
}

.sticky-actions {
    position: sticky;
    z-index: 10;
    bottom: 0;
    margin: 24px -16px -32px;
    padding: 16px;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--color-border);
    background: rgb(245 247 244 / 96%);
    justify-content: flex-end;
}

.terms-history {
    margin-top: 32px;
}

.version-list {
    display: grid;
    gap: 12px;
    padding-left: 1.5em;
}

.version-list li span {
    display: block;
    color: var(--color-muted);
    font-size: .9rem;
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    border: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
}

.theme-label {
    color: var(--color-primary-dark);
    font-size: 1.2rem;
    font-weight: 800;
}

.period-text {
    padding: 12px;
    border-radius: 10px;
    background: #eef4f1;
}

.entry-count,
.entry-progress {
    margin: 16px 0 24px;
    padding: 16px;
    border: 2px solid var(--color-primary);
    border-radius: 12px;
    color: var(--color-primary-dark);
    background: #eef7f5;
    text-align: center;
}

.entry-count strong {
    display: block;
    font-size: 1.2rem;
}

.entry-count span {
    color: var(--color-muted);
    font-size: .9rem;
}

.entry-primary-action {
    margin-bottom: 24px;
}

.entry-list {
    display: grid;
    gap: 20px;
    margin: 24px 0;
}

.entry-card {
    display: grid;
    gap: 20px;
}

.entry-card--withdrawn {
    opacity: .72;
}

.entry-thumbnail,
.photo-preview,
.confirmation-photo {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
    object-fit: cover;
}

.entry-thumbnail {
    max-height: 360px;
}

.photo-preview {
    max-height: 520px;
    margin: 16px 0;
    background: #e8eeeb;
}

.photo-picker {
    margin-top: 12px;
}

.selected-file {
    margin: 8px 0;
    color: var(--color-muted);
    text-align: center;
}

.optional {
    color: var(--color-muted);
    font-size: .85rem;
    font-weight: 400;
}

.terms-box {
    margin-top: 16px;
    border: 2px solid var(--color-primary);
    border-radius: 16px;
    overflow: hidden;
    background: #f7fcfa;
    box-shadow: 0 8px 22px rgb(23 107 91 / 12%);
}

.terms-card__summary {
    display: grid;
    min-height: 96px;
    grid-template-columns: 52px minmax(0, 1fr) 28px;
    gap: 12px;
    padding: 16px;
    align-items: center;
    color: var(--color-primary-dark);
    cursor: pointer;
    list-style: none;
}

.terms-card__summary::-webkit-details-marker {
    display: none;
}

.terms-card__summary:focus-visible {
    outline: 3px solid var(--color-accent);
    outline-offset: -3px;
}

.terms-card__icon,
.entry-checks__icon {
    display: grid;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    color: #fff;
    background: var(--color-primary);
    place-items: center;
}

.terms-card__icon svg,
.entry-checks__icon svg,
.terms-card__arrow svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: currentcolor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.terms-card__copy,
.terms-card__title,
.terms-card__note {
    display: block;
    min-width: 0;
}

.terms-card__title {
    font-size: 1.18rem;
    font-weight: 800;
    line-height: 1.45;
}

.terms-card__note {
    margin-top: 3px;
    color: var(--color-muted);
    font-size: .95rem;
    line-height: 1.55;
}

.terms-card__arrow {
    display: grid;
    color: var(--color-primary);
    place-items: center;
    transition: transform .2s ease;
}

.terms-box[open] .terms-card__arrow {
    transform: rotate(90deg);
}

.terms-body {
    max-height: 320px;
    padding: 18px;
    border-top: 1px solid #b9d7d0;
    overflow-y: auto;
    background: #fff;
    white-space: pre-wrap;
}

.entry-checks {
    margin-top: 20px;
    padding: 18px;
    border: 1px solid #bfd8d2;
    border-radius: 16px;
    background: linear-gradient(180deg, #f4faf8 0%, #fff 100%);
    box-shadow: 0 6px 18px rgb(28 54 47 / 7%);
}

.entry-checks__header {
    display: flex;
    gap: 13px;
    align-items: center;
}

.entry-checks__icon {
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    color: var(--color-primary-dark);
    background: #dcefe9;
}

.entry-checks__header h3 {
    margin: 0;
    color: var(--color-primary-dark);
    font-size: 1.18rem;
    line-height: 1.4;
}

.entry-checks__header p {
    margin: 2px 0 0;
    color: var(--color-muted);
    font-size: .95rem;
    line-height: 1.5;
}

.entry-checks__list {
    display: grid;
    gap: 14px;
    margin: 18px 0 0;
    padding: 0;
    counter-reset: entry-check;
    list-style: none;
}

.entry-checks__list li {
    display: grid;
    min-width: 0;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    counter-increment: entry-check;
}

.entry-checks__list li::before {
    display: grid;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: #fff;
    background: var(--color-primary);
    content: counter(entry-check);
    font-size: .95rem;
    font-weight: 800;
    line-height: 1;
    place-items: center;
}

.entry-checks__list p {
    margin: 0;
    font-size: 1rem;
    line-height: 1.75;
}

.terms-agreement {
    padding: 14px;
    border: 2px solid var(--color-primary);
    border-radius: 10px;
    background: #eef7f5;
    font-weight: 800;
}

.confirmation-card {
    max-width: 680px;
    margin-inline: auto;
}

.confirmation-list {
    display: grid;
    gap: 16px;
    margin: 24px 0 0;
}

.confirmation-list dt {
    font-weight: 800;
}

.confirmation-list dd {
    margin: 4px 0 0;
    white-space: pre-wrap;
}

.confirm-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
    justify-content: center;
}

.completion-card,
.withdrawal-card {
    max-width: 640px;
    margin-inline: auto;
}

.completion-card {
    text-align: center;
}

.completion-mark {
    display: grid;
    width: 72px;
    height: 72px;
    margin: 0 auto 16px;
    border-radius: 50%;
    color: #fff;
    background: var(--color-success);
    place-items: center;
    font-size: 2.2rem;
    font-weight: 800;
}

.completion-notes {
    margin: 24px 0;
    padding-left: 1.4em;
    text-align: left;
}

.completion-card .button + .button {
    margin-top: 12px;
}

.text-link {
    display: inline-block;
    min-height: var(--tap-size);
    padding: 10px 0;
}

.home-action {
    margin-top: 12px;
}

.vote-carousel {
    margin: 24px 0 28px;
    padding: 18px;
    overflow: hidden;
    border-color: #cfe3dc;
    background: linear-gradient(145deg, #fff 0%, #f1f8f5 100%);
}

.vote-carousel__header {
    display: flex;
    gap: 16px;
    margin-bottom: 16px;
    align-items: center;
    justify-content: space-between;
}

.vote-carousel__header .eyebrow {
    margin-bottom: 2px;
}

.vote-carousel__header h2 {
    margin: 0;
    color: var(--color-primary-dark);
    font-size: clamp(1.3rem, 5vw, 1.75rem);
}

.vote-carousel__controls {
    display: flex;
    flex: 0 0 auto;
    gap: 8px;
}

.vote-carousel__controls button {
    display: grid;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 2px solid var(--color-primary);
    border-radius: 50%;
    color: var(--color-primary-dark);
    background: #fff;
    font-size: 1.35rem;
    font-weight: 800;
    cursor: pointer;
    place-items: center;
}

.vote-carousel__controls button:hover,
.vote-carousel__controls button:focus-visible {
    color: #fff;
    background: var(--color-primary);
}

.vote-carousel__viewport {
    margin-inline: -18px;
    padding-inline: 18px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    touch-action: pan-x pan-y;
    -webkit-overflow-scrolling: touch;
}

.vote-carousel__viewport::-webkit-scrollbar {
    display: none;
}

.vote-carousel__viewport:focus-visible {
    outline: 3px solid #d3a629;
    outline-offset: -3px;
}

.vote-carousel__track {
    display: flex;
    width: max-content;
    gap: 14px;
}

.vote-carousel__item {
    flex: 0 0 clamp(220px, 72vw, 300px);
    margin: 0;
    overflow: hidden;
    border-radius: 16px;
    background: var(--color-primary-dark);
    box-shadow: 0 8px 20px rgb(21 82 68 / 16%);
}

.vote-carousel__item a {
    position: relative;
    display: block;
    color: #fff;
    text-decoration: none;
}

.vote-carousel__item img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform .35s ease;
}

.vote-carousel__title {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    padding: 34px 14px 13px;
    overflow: hidden;
    background: linear-gradient(transparent, rgb(7 55 46 / 92%));
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.45;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vote-carousel__item a:hover img,
.vote-carousel__item a:focus-visible img {
    transform: scale(1.035);
}

.vote-count-badge {
    position: absolute;
    z-index: 2;
    top: 12px;
    right: 12px;
    display: inline-flex;
    max-width: calc(100% - 24px);
    min-height: 38px;
    padding: 7px 12px;
    border-radius: 999px;
    align-items: center;
    gap: 4px;
    color: var(--color-primary-dark);
    background: rgb(255 255 255 / 96%);
    box-shadow: 0 3px 10px rgb(11 54 43 / 18%);
    font-size: .84rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.vote-count-badge__heart {
    margin-right: 2px;
    color: #4d9b68;
    font-size: 1.35rem;
    line-height: .8;
}

.vote-count-badge__number {
    color: var(--color-primary-dark);
    font-size: 1.18rem;
    font-variant-numeric: tabular-nums;
}

.vote-carousel__help {
    margin: 12px 0 0;
    color: var(--color-muted);
    font-size: .92rem;
}

.vote-selection-panel {
    position: sticky;
    z-index: 20;
    top: 8px;
    margin: 20px 0;
    padding: 14px;
    border: 2px solid var(--color-primary);
    border-radius: 14px;
    background: rgb(255 255 255 / 97%);
    box-shadow: var(--shadow-card);
}

.vote-selection-panel > strong {
    display: block;
    color: var(--color-primary-dark);
    font-size: 1.1rem;
}

.selected-vote-strip {
    display: flex;
    gap: 10px;
    margin-top: 10px;
    padding-bottom: 4px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
}

.selected-vote-item {
    width: 104px;
    min-width: 104px;
    padding: 5px;
    border: 2px solid var(--color-primary);
    border-radius: 10px;
    color: var(--color-text);
    background: #eef7f5;
    cursor: pointer;
    scroll-snap-align: start;
}

.selected-vote-item img {
    display: block;
    width: 90px;
    height: 68px;
    border-radius: 7px;
    object-fit: cover;
}

.selected-vote-item span {
    display: -webkit-box;
    margin-top: 3px;
    overflow: hidden;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.vote-entry-list {
    display: grid;
    gap: 20px;
}

.vote-entry-card {
    display: grid;
    gap: 18px;
}

.vote-photo-link,
.vote-photo-frame {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 12px;
}

.vote-photo {
    display: block;
    width: 100%;
    max-height: 620px;
    border-radius: 12px;
    object-fit: contain;
    background: #e8eeeb;
}

.vote-photo--detail {
    margin: 16px 0 24px;
}

.vote-photo-frame .vote-photo--detail {
    margin: 0;
}

.vote-photo-frame {
    margin: 16px 0 24px;
}

.vote-select-button {
    display: flex;
    min-height: 58px;
    padding: 12px 16px;
    border: 3px solid var(--color-primary);
    border-radius: 12px;
    align-items: center;
    justify-content: center;
    color: var(--color-primary-dark);
    background: #fff;
    font-size: 1.05rem;
    font-weight: 800;
    text-align: center;
    cursor: pointer;
}

.vote-select-button--selected {
    color: #fff;
    background: var(--color-primary);
    box-shadow: inset 0 0 0 2px #fff;
}

.vote-select-button--limit {
    border-color: var(--color-error);
    background: var(--color-error-bg);
}

.vote-submit-area {
    position: sticky;
    z-index: 19;
    bottom: 0;
    display: grid;
    gap: 8px;
    margin: 24px -16px 0;
    padding: 14px 16px max(14px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--color-border);
    background: rgb(245 247 244 / 97%);
    text-align: center;
}

.vote-confirm-button {
    min-height: 62px;
    font-size: 1.1rem;
}

.current-vote-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 20px 0;
}

.current-vote-grid article {
    min-width: 0;
    padding: 8px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: #fff;
}

.current-vote-grid img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    object-fit: cover;
}

.current-vote-grid h2 {
    margin-top: 8px;
    font-size: .95rem;
}

.vote-detail {
    max-width: 720px;
    margin-inline: auto;
}

.result-summary-card,
.snapshot-card {
    margin-bottom: 24px;
}

.result-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 20px 0;
}

.result-stats div {
    padding: 12px 6px;
    border-radius: 10px;
    background: #eef7f5;
    text-align: center;
}

.result-stats strong,
.result-stats span {
    display: block;
}

.result-stats strong {
    color: var(--color-primary-dark);
    font-size: 1.5rem;
}

.result-stats span {
    font-size: .78rem;
}

.result-admin-list {
    margin: 20px 0;
    border-top: 1px solid var(--color-border);
}

.result-admin-list > div {
    display: flex;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--color-border);
    justify-content: space-between;
}

.award-list {
    display: grid;
    gap: 16px;
    margin: 20px 0;
}

.award-row {
    padding: 14px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
}

.result-publish-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}

.archive-year {
    margin-bottom: 36px;
}

.result-hero {
    margin-bottom: 24px;
    text-align: center;
}

.public-result-list {
    display: grid;
    gap: 24px;
}

.public-result-card {
    position: relative;
    overflow: hidden;
}

.public-result-card > img {
    display: block;
    width: 100%;
    max-height: 680px;
    margin: 14px 0;
    border-radius: 12px;
    object-fit: contain;
    background: #e8eeeb;
}

.result-rank {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.result-rank strong {
    color: var(--color-primary-dark);
    font-size: 1.6rem;
}

.result-rank span {
    padding: 5px 12px;
    border-radius: 999px;
    color: #664300;
    background: #ffe3a3;
    font-weight: 800;
}

.award-admin-section { margin-top: 1.5rem; }
.award-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0; }
.award-admin-card { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: .8rem; min-width: 0; padding: .8rem; border: 1px solid var(--border, #ddd); border-radius: .6rem; }
.award-admin-card img { width: 100px; height: 75px; object-fit: cover; border-radius: .4rem; }
.award-admin-card label { display: block; margin-top: .5rem; }
.award-admin-card input { box-sizing: border-box; width: 100%; }
.award-creator-guidance { margin: 1rem 0; padding: .9rem 1rem; border-radius: .6rem; color: #155c4a; background: #e5f5ef; }
.award-selection-summary { display: flex; gap: 1rem; margin: 1rem 0; }
.award-selection-summary span { padding: .75rem 1rem; border-radius: .6rem; background: #f4f5f5; }
.award-segments { display: flex; flex-wrap: wrap; gap: .4rem; border: 0; padding: 0; margin: .8rem 0; }
.award-segments legend { width: 100%; font-weight: 700; }
.award-segments input { position: absolute; opacity: 0; }
.award-segments span { display: inline-block; padding: .35rem .55rem; border: 1px solid #cbd2d0; border-radius: .45rem; background: #fff; cursor: pointer; }
.award-segments label { min-width: 0; }
.award-segments input:checked + span { border-color: #16825f; background: #e3f5ea; }
.award-segments input[value="grand_prize"]:checked + span { border-color: #bd870e; background: #fff4d4; }
.award-segments input:disabled + span { opacity: .45; cursor: not-allowed; }
.award-admin-card[data-award-selected="excellence"] { border-color: #79b99d; background: #f3fbf6; }
.award-admin-card[data-award-selected="grand_prize"] { border-color: #d8ae4b; background: #fffaf0; }
.creator-display-name { font-weight: 700; }
.presentation-settings { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .75rem; margin: 1rem 0; padding: 1rem; border: 1px solid #d7e7e0; border-radius: .6rem; }
.presentation-settings legend { padding: 0 .3rem; font-weight: 700; }
.presentation-actions { margin-top: 1rem; }
.award-presentation-settings { overflow: hidden; }
.award-settings-block { box-sizing: border-box; min-width: 0; margin: 1rem 0; padding: 1rem; border: 1px solid #d7e7e0; border-radius: .7rem; background: #fff; }
.award-settings-block legend { padding: 0 .35rem; color: #126b55; font-size: 1.1rem; font-weight: 800; }
.award-basic-settings { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.3fr) minmax(180px, .8fr); gap: 1rem; }
.award-basic-settings label, .award-basic-settings input, .award-basic-settings select { box-sizing: border-box; min-width: 0; width: 100%; }
.award-basic-settings input, .award-basic-settings select { min-height: 44px; }
.award-carousel-choices { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem 1rem; }
.award-carousel-choices .choice { display: flex; min-width: 0; gap: .45rem; align-items: flex-start; }
.award-carousel-choices span { overflow-wrap: anywhere; }
.award-playback-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.award-interval-label { display: flex; align-items: center; gap: .5rem; white-space: nowrap; }
.award-interval-label input { box-sizing: border-box; width: 72px; min-width: 72px; height: 40px; text-align: center; }
.award-settings-actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 1.25rem; }
.award-settings-actions > div { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (max-width: 900px) { .award-basic-settings { grid-template-columns: 1fr; } .award-carousel-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 390px) { .award-carousel-choices { grid-template-columns: 1fr; } .award-settings-actions, .award-settings-actions > div { flex-direction: column; align-items: stretch; } .award-settings-actions .button { width: 100%; } }
@media (max-width: 900px) { .award-admin-grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .award-admin-card { grid-template-columns: 1fr; } .award-admin-card img { width: 100%; height: auto; max-height: 180px; } .award-segments { gap: .25rem; } .award-segments span { padding: .3rem; font-size: .85rem; } }
.award-presentation { position: relative; }
.award-stage { display: none; min-height: 28rem; padding: 2rem 0; text-align: center; }
.award-stage.is-active { display: block; animation: award-stage-in .45s ease-out; }
.award-winners { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.award-carousel__viewport { overflow: hidden; overscroll-behavior-x: contain; scrollbar-width: none; touch-action: pan-y; }
.award-carousel__viewport::-webkit-scrollbar { display: none; }
.award-carousel__track { display: flex; gap: 1rem; padding: .25rem; will-change: transform; }
.award-carousel__item { flex: 0 0 clamp(210px, 38vw, 360px); scroll-snap-align: start; }
.award-carousel__controls { display: flex; justify-content: center; gap: .75rem; margin-top: 1rem; }
.award-carousel__item, .award-winner-card, .award-grand-prize { background: #fff; border-radius: .8rem; box-shadow: 0 4px 18px rgba(0,0,0,.12); overflow: hidden; padding-bottom: 1rem; }
.award-carousel__item img, .award-winner-card img, .award-grand-prize img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.award-grand-prize { max-width: 720px; margin: 0 auto; }
.award-announcement { font-size: clamp(2rem, 7vw, 4rem); font-weight: 700; padding-top: 7rem; }
.award-label { color: #8a1f21; font-weight: 700; margin: 1rem 0 .3rem; }
.award-presentation__controls { display: flex; justify-content: center; align-items: center; gap: 1rem; padding: 1rem 0; }
.award-confetti { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.award-confetti i { position: absolute; top: -4%; left: var(--award-confetti-x); width: var(--award-confetti-width, 8px); height: var(--award-confetti-height, 14px); background: var(--award-confetti-color, #c79b35); opacity: 0; box-shadow: 0 1px 2px rgba(78, 59, 15, .18); animation: award-confetti-fall var(--award-confetti-duration, 6.5s) var(--award-confetti-delay, 0ms) cubic-bezier(.2, .62, .38, 1) forwards; }
.award-confetti--rectangle { border-radius: 1px; }
.award-confetti--streamer { border-radius: 999px; }
.award-confetti--circle { border-radius: 50%; aspect-ratio: 1; height: auto; }
.award-ceremony .award-stage { position: relative; overflow: hidden; }
.award-ceremony > .result-hero, .award-ceremony > .award-presentation__controls { display: none; }
body:has(.award-ceremony) { overflow: hidden; }
body:has(.award-ceremony) .site-header, body:has(.award-ceremony) .site-footer { display: none; }
body:has(.award-ceremony) .alert { display: none; }
body:has(.award-ceremony) .site-main, body:has(.award-ceremony) .site-main > .container { width: auto; max-width: none; margin: 0; padding: 0; }
body:has(.award-ceremony) .site-main { min-height: 100svh; }
.award-ceremony { width: 100vw; height: 100svh; overflow: hidden; }
.award-ceremony .award-stage { box-sizing: border-box; width: 100%; height: 100%; min-height: 100svh; margin: 0; padding: clamp(1rem, 4vw, 4rem); }
.award-ceremony .award-stage:not(.is-active) { display: none !important; }
.award-ceremony .award-stage.is-active { display: grid; place-content: center; }
.award-ceremony .award-stage.is-active:has(.award-carousel) { display: block; }
.award-skip { position: absolute; right: 1rem; bottom: 1rem; z-index: 2; padding: .6rem .9rem; border: 0; border-radius: 999px; color: #fff; background: rgba(0,0,0,.65); }
.award-thanks-stage { background: linear-gradient(160deg, #073d38, #0d7461); color: #fff; }
.award-thanks-copy { max-width: 760px; margin: 0 auto; font-size: clamp(1.15rem, 3.5vw, 2rem); line-height: 1.7; animation: award-thanks-rise 10s ease-in-out both; }
.award-entry-total strong { font-size: clamp(3rem, 10vw, 6rem); color: #ffe19a; }
.award-ceremony [data-award-stage-kind="excellent-intro"] { background: radial-gradient(circle, #267d68, #063c35); color: #fffdf4; }
.award-ceremony [data-award-stage-kind="grand-intro"] { background: radial-gradient(circle, #60430c, #16130e); color: #ffe3a0; }
.award-ceremony .award-stage.is-active[data-award-stage-kind="excellent-intro"], .award-ceremony .award-stage.is-active[data-award-stage-kind="grand-intro"] { display: grid; min-height: 62vh; place-content: center; box-sizing: border-box; padding: clamp(2rem, 8vw, 8rem) clamp(1rem, 5vw, 4rem); overflow-wrap: anywhere; text-align: center; animation: award-text-slide-in 900ms ease-out both; }
.award-ceremony [data-award-stage-kind="excellent-intro"] p { margin: 0 0 clamp(2rem, 7vw, 6rem); font-size: clamp(3rem, 7vw, 7rem); line-height: 1.15; }
.award-ceremony [data-award-stage-kind="excellent-intro"] h2 { margin: 0; font-size: clamp(4rem, 9vw, 9rem); line-height: 1.1; }
.award-ceremony [data-award-stage-kind="grand-intro"] p { margin: 0 0 clamp(2rem, 7vw, 6rem); font-size: clamp(3.2rem, 7.5vw, 7.5rem); line-height: 1.15; }
.award-ceremony [data-award-stage-kind="grand-intro"] h2 { margin: 0; font-size: clamp(4.2rem, 9.5vw, 9.5rem); line-height: 1.1; }
.award-ceremony [data-award-stage-kind="excellent-display"] { background: linear-gradient(145deg, #f3fffa, #d7f2e6); }
.award-ceremony [data-award-stage-kind="excellent-display"] > h2 { font-size: clamp(2.3rem, 6vw, 4.5rem); color: #0d7558; }
.award-ceremony [data-award-stage-kind="excellent-display"] .award-winners { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1000px; margin: 0 auto; }
.award-ceremony [data-award-stage-kind="excellent-display"] .award-winner-card { border: 2px solid #73bca2; box-shadow: 0 0 25px rgba(35, 142, 104, .35); animation: award-winner-in 1s ease-out both; }
@media (max-width: 600px) { .award-ceremony [data-award-stage-kind="excellent-display"] .award-winners { grid-template-columns: 1fr; gap: .7rem; } .award-ceremony [data-award-stage-kind="excellent-display"] .award-winner-card img { max-height: 27vh; object-fit: cover; } }
.award-single-winner { max-width: 760px; margin: 0 auto; padding: 1rem; border-radius: 1rem; background: #fff; box-shadow: 0 0 32px rgba(22,130,95,.35); animation: award-winner-in 1s ease-out; }
.award-single-winner img { width: 100%; max-height: 52vh; object-fit: contain; }
.award-single-winner--grand { border: 3px solid #d6a52d; box-shadow: 0 0 42px rgba(214,165,45,.7); }
.award-podium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; align-items: end; }
.award-podium img { width: 100%; aspect-ratio: 1 / .8; object-fit: cover; }
.award-podium__grand { grid-column: 2; grid-row: 1; transform: scale(1.1); }
.award-podium__excellence:first-of-type { grid-column: 1; grid-row: 1; }
.award-podium__excellence:last-of-type { grid-column: 3; grid-row: 1; }
@keyframes award-thanks-rise { from { opacity: 0; transform: translateY(35%); } to { opacity: 1; transform: translateY(-8%); } }
@keyframes award-winner-in { from { opacity: 0; transform: scale(.9); } to { opacity: 1; transform: scale(1); } }
@keyframes award-text-slide-in { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: scale(1); } }
@media (max-width: 600px) { .award-skip { position: fixed; right: 1rem; bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px)); z-index: 10; } .award-podium { grid-template-columns: repeat(2, minmax(0, 1fr)); } .award-podium__grand { grid-column: 1 / -1; grid-row: auto; transform: none; } .award-podium__excellence:first-of-type, .award-podium__excellence:last-of-type { grid-column: auto; grid-row: auto; } }
@media (prefers-reduced-motion: reduce) { .award-thanks-copy, .award-single-winner { animation: none; } }
@keyframes award-stage-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes award-confetti-fall { 0% { opacity: 0; transform: translate3d(0, 0, 0) rotate(0deg); } 8% { opacity: .86; } 55% { transform: translate3d(var(--award-confetti-mid-drift), 52vh, 0) rotate(260deg); } 100% { transform: translate3d(var(--award-confetti-drift), 108vh, 0) rotate(620deg); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .award-stage.is-active, .award-confetti i { animation: none; } }

/* Finale: a dedicated awards-ceremony layout, independent from the other stages. */
.award-ceremony .award-stage.is-active[data-award-stage-kind="finale"] { display: block; overflow-y: auto; color: #fff9e7; background: radial-gradient(circle at 50% 15%, rgba(225, 180, 71, .35), transparent 31%), radial-gradient(circle at 20% 75%, rgba(28, 118, 91, .32), transparent 34%), linear-gradient(145deg, #052d29, #071c1b 58%, #1b2519); }
.award-finale__inner { position: relative; isolation: isolate; box-sizing: border-box; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-height: 100svh; gap: clamp(.5rem, 1.5vh, 1.25rem); padding: clamp(1.2rem, 3vw, 3rem); overflow: hidden; }
.award-finale__inner::before, .award-finale__inner::after { position: absolute; z-index: -1; content: ''; pointer-events: none; }
.award-finale__inner::before { inset: 1.25rem; border: 1px solid rgba(238, 207, 117, .42); border-radius: 1.25rem; box-shadow: inset 0 0 46px rgba(236, 194, 81, .12); }
.award-finale__inner::after { width: min(75vw, 860px); height: min(75vw, 860px); top: 12%; left: 50%; border-radius: 50%; transform: translateX(-50%); background: radial-gradient(circle, rgba(255, 225, 137, .18), transparent 66%); }
.award-finale__heading { text-align: center; text-shadow: 0 2px 14px rgba(0, 0, 0, .45); }
.award-finale__heading p { margin: .2rem 0; }
.award-finale__contest-title { color: #f4d982; font-size: clamp(1rem, 2.3vw, 1.55rem); font-weight: 700; letter-spacing: .08em; }
.award-finale__heading h2 { margin: .2rem 0; color: #fff5ce; font-size: clamp(2rem, 5vw, 4.2rem); letter-spacing: .12em; }
.award-finale__podium { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.28fr) minmax(0, 1fr); align-items: end; gap: clamp(.65rem, 2.4vw, 2.4rem); width: min(1120px, 100%); margin: 0 auto; }
.award-finale__winner { box-sizing: border-box; min-width: 0; padding: clamp(.6rem, 1.4vw, 1rem); border: 1px solid rgba(239, 222, 163, .78); border-radius: 1rem; color: #173b34; background: linear-gradient(155deg, #fffdf6, #e9f3e9); box-shadow: 0 12px 30px rgba(0, 0, 0, .34); }
.award-finale__winner img { display: block; width: 100%; aspect-ratio: 4 / 3; border-radius: .62rem; object-fit: cover; box-shadow: 0 3px 12px rgba(0, 0, 0, .2); }
.award-finale__winner h3 { margin: .55rem 0 .15rem; overflow-wrap: anywhere; font-size: clamp(1rem, 1.9vw, 1.35rem); }
.award-finale__winner .creator-display-name { margin: 0; font-size: .95rem; }
.award-finale__award-label { margin: 0 0 .45rem; font-weight: 800; }
.award-finale__winner--excellence { align-self: end; }
.award-finale__winner--excellence:first-child { grid-column: 1; grid-row: 1; }
.award-finale__winner--excellence:nth-child(2) { grid-column: 3; grid-row: 1; }
.award-finale__winner--grand { grid-column: 2; grid-row: 1; padding: clamp(.8rem, 1.8vw, 1.25rem); border: 3px solid #e5bb4d; color: #44330a; background: linear-gradient(155deg, #fffdf5, #f8e5a2); box-shadow: 0 0 0 4px rgba(255, 235, 165, .16), 0 16px 42px rgba(0, 0, 0, .44), 0 0 42px rgba(237, 190, 62, .38); }
.award-finale__winner--grand .award-finale__award-label { color: #805708; font-size: clamp(1.15rem, 2.4vw, 1.8rem); }
.award-finale__winner--grand h3 { font-size: clamp(1.18rem, 2.5vw, 1.8rem); }
.award-finale__footer { text-align: center; text-shadow: 0 2px 12px rgba(0, 0, 0, .4); }
.award-finale__footer > p { margin: .2rem 0 .7rem; }
.award-finale__actions { display: flex; justify-content: center; gap: .85rem; }
.award-finale__actions > * { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 3.1rem; padding: .75rem 1.3rem; border: 1px solid transparent; border-radius: .7rem; color: #fff; font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; }
.award-finale__restart { background: #0c7560; box-shadow: 0 4px 12px rgba(0, 0, 0, .25); }
.award-finale__exit { background: #303c3a; }
.award-finale__actions > *:hover { filter: brightness(1.12); transform: translateY(-1px); }
.award-finale__actions > *:active { transform: translateY(0); }
.award-finale__actions > *:focus-visible { outline: 3px solid #ffe18a; outline-offset: 3px; }
@media (max-width: 600px) {
    .award-finale__inner { min-height: 100svh; overflow: visible; padding: 1.1rem .85rem; }
    .award-finale__inner::before { inset: .5rem; }
    .award-finale__heading h2 { font-size: clamp(1.85rem, 10vw, 2.6rem); }
    .award-finale__podium { grid-template-columns: 1fr; gap: .65rem; }
    .award-finale__winner--grand, .award-finale__winner--excellence:first-child, .award-finale__winner--excellence:nth-child(2) { grid-column: 1; grid-row: auto; }
    .award-finale__winner--grand { order: -1; }
    .award-finale__winner { padding: .55rem; }
    .award-finale__winner img { aspect-ratio: 16 / 8; max-height: 22vh; }
    .award-finale__actions { flex-direction: column; }
    .award-finale__actions > * { width: 100%; }
}

/* Ceremony refinement: a restrained deep-green and gold presentation that gives photographs room. */
.award-heading--mobile { display: none; }
.award-ceremony { background: #062f2a; }
.award-skip { border: 1px solid rgba(255, 231, 158, .62); color: #fff9e7; background: rgba(5, 47, 42, .88); box-shadow: 0 5px 18px rgba(0, 0, 0, .25); }
.award-thanks-stage { background: radial-gradient(circle at 80% 18%, rgba(237, 197, 99, .2), transparent 25%), radial-gradient(circle at 12% 83%, rgba(75, 151, 116, .2), transparent 30%), linear-gradient(145deg, #042d29, #0b574b 58%, #10362d); }
.award-thanks-stage::before { display: none; }
.award-thanks-frame { position: absolute; inset: clamp(1rem, 3vw, 2.5rem); display: grid; place-content: center; overflow: hidden; clip-path: inset(0 round 1.25rem); contain: paint; border: 1px solid rgba(239, 208, 123, .45); border-radius: 1.25rem; }
.award-thanks-copy { position: relative; font-size: clamp(1.1rem, 2.2vw, 1.55rem); line-height: 1.8; }
.award-thanks-kicker { margin-bottom: clamp(1.5rem, 4vh, 3.5rem); color: #f1d37a; font-size: clamp(1rem, 2vw, 1.3rem); font-weight: 700; letter-spacing: .13em; }
.award-thanks-copy h2 { margin: 0 0 clamp(1.5rem, 4vh, 3rem); color: #fff8dd; font-family: Georgia, 'Hiragino Mincho ProN', serif; font-size: clamp(2.2rem, 5.5vw, 5.5rem); line-height: 1.28; letter-spacing: .08em; }
.award-thanks-copy p { margin: clamp(.65rem, 1.5vh, 1.25rem) 0; }
.award-thanks-lead { margin-top: clamp(1.7rem, 4vh, 3rem) !important; color: #f5d986; font-weight: 700; letter-spacing: .04em; }
.award-ceremony [data-award-stage-kind="carousel"] { color: #fff9e8; background: radial-gradient(circle at 50% 0, rgba(221, 184, 81, .2), transparent 42%), linear-gradient(155deg, #062f2a, #0b5447); }
.award-ceremony [data-award-stage-kind="carousel"] > h2 { margin: clamp(1.5rem, 4vh, 3rem) 0; font-family: Georgia, 'Hiragino Mincho ProN', serif; font-size: clamp(2rem, 4vw, 4rem); letter-spacing: .1em; }
.award-ceremony [data-award-stage-kind="carousel"] .award-carousel { width: min(1260px, 100%); margin: 0 auto; }
.award-ceremony [data-award-stage-kind="carousel"] .award-carousel__item { border: 1px solid rgba(239, 211, 133, .65); border-radius: 1rem; background: #fffdf7; box-shadow: 0 18px 42px rgba(0, 0, 0, .34); color: #173b34; }
.award-ceremony [data-award-stage-kind="carousel"] .award-carousel__item h3 { min-height: 2.8em; margin: .85rem .9rem .15rem; font-size: clamp(1rem, 1.6vw, 1.3rem); }
.award-ceremony [data-award-stage-kind="excellent-intro"] { background: radial-gradient(circle at 50% 50%, #287762, #063c35 68%); }
.award-ceremony [data-award-stage-kind="excellent-intro"] p { margin: 0 0 clamp(1.5rem, 5vw, 4rem); font-size: clamp(2.3rem, 5vw, 5.5rem); }
.award-ceremony [data-award-stage-kind="excellent-intro"] h2 { font-family: Georgia, 'Hiragino Mincho ProN', serif; font-size: clamp(3rem, 7vw, 7.5rem); line-height: 1.2; letter-spacing: .08em; }
.award-ceremony [data-award-stage-kind="excellent-display"] { background: radial-gradient(circle at 50% 10%, rgba(225, 190, 101, .22), transparent 35%), linear-gradient(145deg, #062f2a, #0c5145); }
.award-ceremony [data-award-stage-kind="excellent-display"] .award-winners { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 3vw, 2.5rem); width: min(1220px, 100%); margin: 0 auto; }
.award-ceremony [data-award-stage-kind="excellent-display"] .award-winner-card { box-sizing: border-box; display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto; align-content: start; min-width: 0; padding: clamp(.85rem, 2vw, 1.5rem); border: 1px solid #e8c76c; border-radius: 1.25rem; background: #fffdf6; box-shadow: 0 20px 48px rgba(0, 0, 0, .38); color: #153b33; }
.award-ceremony [data-award-stage-kind="excellent-display"] .award-winner-card__award { margin: 0 0 .7rem; color: #926b12; font-size: clamp(1.1rem, 2vw, 1.65rem); font-weight: 800; letter-spacing: .08em; }
.award-ceremony [data-award-stage-kind="excellent-display"] .award-winner-card img { width: 100%; max-height: 57vh; border-radius: .75rem; object-fit: contain; background: #eaf2e9; }
.award-ceremony [data-award-stage-kind="excellent-display"] .award-winner-card h2 { margin: .85rem 0 .2rem; font-family: Georgia, 'Hiragino Mincho ProN', serif; font-size: clamp(1.45rem, 2.8vw, 2.5rem); line-height: 1.35; overflow-wrap: anywhere; }
.award-ceremony [data-award-stage-kind="excellent-display"] .creator-display-name { margin: 0; font-size: clamp(.95rem, 1.5vw, 1.2rem); }
.award-ceremony [data-award-stage-kind="grand-display"] { background: radial-gradient(circle at 50% 12%, rgba(255, 221, 128, .38), transparent 31%), linear-gradient(150deg, #15150d, #083b33 68%, #10251d); }
.award-single-winner { max-width: min(1100px, 100%); padding: clamp(1rem, 2.5vw, 2rem); border-radius: 1.25rem; background: linear-gradient(145deg, #fffdf5, #f6e8b4); }
.award-single-winner img { max-height: 61vh; border-radius: .75rem; animation: award-grand-photo-zoom 7s ease-out both; }
.award-single-winner--grand { box-shadow: 0 0 0 5px rgba(255, 227, 141, .14), 0 0 42px rgba(214,165,45,.7); }
.award-single-winner--grand > p:first-child { margin: 0 0 .7rem; color: #80600d; font-size: clamp(1.35rem, 2.8vw, 2.3rem); font-weight: 800; letter-spacing: .1em; }
.award-single-winner--grand h2 { margin: 1rem 0 .25rem; color: #183f35; font-family: Georgia, 'Hiragino Mincho ProN', serif; font-size: clamp(2rem, 4.5vw, 4rem); }
@keyframes award-grand-photo-zoom { from { transform: scale(.96); } to { transform: scale(1.035); } }
@media (max-width: 600px) {
    .award-heading--desktop { display: none; }
    .award-heading--mobile { display: inline; }
    .award-ceremony [data-award-stage-kind="excellent-display"] .award-winners { grid-template-columns: 1fr; gap: .7rem; }
    .award-ceremony [data-award-stage-kind="excellent-display"] .award-winner-card { padding: .8rem; }
    .award-ceremony [data-award-stage-kind="excellent-display"] .award-winner-card img { max-height: 30vh; }
    .award-ceremony [data-award-stage-kind="excellent-display"] .award-winner-card__award { font-size: 1.15rem; }
    .award-ceremony [data-award-stage-kind="excellent-display"] .award-winner-card h2 { margin: .15rem 0; font-size: clamp(1.45rem, 7vw, 2rem); }
    .award-single-winner img { max-height: 53vh; }
}
@media (prefers-reduced-motion: reduce) { .award-single-winner img { animation: none; } }


.vote-count-public {
    font-weight: 800;
}

.line-auth-card {
    max-width: 620px;
    margin-inline: auto;
    text-align: center;
}

.line-auth-mark {
    display: grid;
    width: 76px;
    height: 76px;
    margin: 0 auto 18px;
    border-radius: 20px;
    color: #fff;
    background: #06c755;
    place-items: center;
    font-size: 1rem;
    font-weight: 900;
}

.line-auth-spinner {
    width: 48px;
    height: 48px;
    margin: 22px auto;
    border: 5px solid #dce7e2;
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: line-auth-spin .9s linear infinite;
}

.line-auth-note {
    margin-top: 24px;
}

@keyframes line-auth-spin {
    to { transform: rotate(360deg); }
}

.review-tabs {
    display: flex;
    gap: 8px;
    padding: 4px 0 12px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.review-tab {
    display: inline-flex;
    min-height: var(--tap-size);
    flex: 0 0 auto;
    gap: 8px;
    padding: 10px 14px;
    border: 2px solid var(--color-border);
    border-radius: 999px;
    align-items: center;
    background: #fff;
    font-weight: 700;
    text-decoration: none;
}

.review-tab span {
    min-width: 24px;
    padding: 1px 6px;
    border-radius: 999px;
    background: #e8eeeb;
    text-align: center;
}

.review-tab--active {
    border-color: var(--color-primary);
    color: #fff;
    background: var(--color-primary);
}

.review-list-card,
.review-detail-grid {
    display: grid;
    gap: 20px;
}

.review-photo {
    display: block;
    width: 100%;
    max-height: 680px;
    margin-top: 16px;
    border-radius: 12px;
    object-fit: contain;
    background: #e8eeeb;
}

.admin-note-field {
    padding: 14px;
    border: 2px solid #d7b36a;
    border-radius: 12px;
    background: #fff9ec;
}

.review-actions {
    display: grid;
    gap: 12px;
    margin-top: 24px;
}

.revision-history,
.audit-history {
    margin-top: 24px;
}

.revision-list {
    display: grid;
    gap: 12px;
    margin-top: 16px;
}

.revision-list details {
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: #fff;
}

.revision-list summary {
    min-height: var(--tap-size);
    padding: 12px 16px;
    font-weight: 800;
    cursor: pointer;
}

.revision-content {
    padding: 16px;
    border-top: 1px solid var(--color-border);
}

.revision-content img {
    width: 100%;
    max-width: 320px;
    max-height: 240px;
    border-radius: 10px;
    object-fit: contain;
}

.audit-item {
    display: grid;
    gap: 2px;
    padding: 12px 0;
    border-bottom: 1px solid var(--color-border);
}

.audit-item span {
    color: var(--color-muted);
    font-size: .9rem;
}

@media (min-width: 700px) {
    .container {
        width: calc(100% - 48px);
        max-width: 960px;
    }

    .site-main {
        padding-top: 48px;
    }

    .card {
        padding: 32px;
    }

    .admin-name {
        display: inline;
    }

    .card-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .contest-card {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }

    .card-actions {
        max-width: 250px;
        justify-content: flex-end;
    }

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

    .review-list-card {
        grid-template-columns: 260px minmax(0, 1fr);
        align-items: center;
    }

    .review-detail-grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
        align-items: start;
    }

    .vote-entry-card {
        grid-template-columns: minmax(260px, 45%) minmax(0, 1fr);
        align-items: start;
    }

    .vote-carousel {
        padding: 24px;
    }

    .vote-carousel__viewport {
        margin-inline: -24px;
        padding-inline: 24px;
    }

    .current-vote-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .form-grid--three {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .summary-list div {
        grid-template-columns: 6em minmax(0, 1fr);
    }

    .entry-card {
        grid-template-columns: minmax(220px, 38%) minmax(0, 1fr);
        align-items: start;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }

    .line-auth-spinner {
        animation: none;
    }

    .vote-carousel__item img {
        transition: none;
    }
}
