@import url('gallery-cover-polish.css');

:root {
    --theme-primary: #355d50;
    --theme-primary-dark: #203e35;
    --theme-accent: #c49a5f;
    --theme-background: #fbfaf5;
    --theme-surface: #fff;
    --theme-header: var(--theme-surface);
    --theme-header-text: var(--theme-text);
    --theme-text: #25342f;
    --theme-muted: #6a756f;
    --theme-border: #e5e9e5;
    --theme-button-text: #fff;
    --theme-heading-font: 'Fraunces', Georgia, serif;
    --theme-body-font: 'DM Sans', system-ui, sans-serif;
}
body.event-page { color: var(--theme-text); background: var(--theme-background-paint,var(--theme-background)); font-family: var(--theme-body-font); }
.event-topbar { padding: 15px 0; background: var(--theme-header-paint,var(--theme-header,var(--theme-surface))); border-bottom: 0; }
.event-topbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.event-topbar .brand-mark { background: transparent; }
.event-topbar .brand-name { color: var(--theme-header-text,var(--theme-text)); }
.event-topbar .brand-name span { color: inherit; }
.event-nav { display: flex; gap: 10px; }
.event-nav a { min-height: 40px; padding: 8px 15px; border-radius: 999px; text-decoration: none; font-size: .9rem; font-weight: 700; }
.event-nav a:first-child { color: var(--theme-button-text,#fff); background: var(--theme-primary-paint,var(--theme-primary)); }
.event-nav a:last-child { color: var(--theme-primary-readable,var(--theme-primary)); border: 1px solid var(--theme-border); background:var(--theme-surface-paint,var(--theme-surface)); }
.event-nav button { min-height: 40px; padding: 8px 15px; border: 1px solid var(--theme-border); border-radius: 999px; color: var(--theme-primary-readable,var(--theme-primary)); background:var(--theme-surface-paint,var(--theme-surface)); font: inherit; font-size: .9rem; font-weight: 700; cursor: pointer; }

.event-hero { position: relative; min-height: 430px; display: grid; place-items: center; overflow: hidden; color: #fff; background: var(--theme-primary-dark); }
.event-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .62; image-orientation: from-image; }
.event-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,20,17,.16), rgba(9,20,17,.68)); }
.event-hero-content { position: relative; z-index: 1; width: min(900px, calc(100% - 34px)); padding: 72px 0; text-align: center; text-shadow: 0 2px 20px rgba(0,0,0,.28); }
.event-icon { display: grid; place-items: center; width: 62px; height: 62px; margin: 0 auto 17px; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; background: rgba(255,255,255,.16); backdrop-filter: blur(8px); font-size: 1.7rem; }
.event-hero .eyebrow { color: rgba(255,255,255,.82); }
.event-hero h1 { margin: 0; font-family: var(--theme-heading-font); font-size: clamp(3rem, 8vw, 6rem); line-height: 1; letter-spacing: -.045em; }
.event-date { margin: 15px 0 0; font-size: 1.04rem; letter-spacing: .08em; text-transform: uppercase; }

.event-main { width: min(760px, calc(100% - 28px)); margin: -54px auto 70px; position: relative; z-index: 2; }
.upload-panel { padding: clamp(24px, 5vw, 48px); border: 1px solid var(--theme-border); border-radius: 30px; background: var(--theme-surface-paint,var(--theme-surface)); box-shadow: 0 24px 70px rgba(20,45,37,.16); }
.upload-panel h2 { margin: 0 0 10px; text-align: center; font-family: var(--theme-heading-font); font-size: clamp(2rem, 5vw, 3rem); line-height: 1.1; }
.welcome-copy { max-width: 620px; margin: 0 auto 26px; text-align: center; color: var(--theme-muted); }
.demo-message { margin: 0 0 24px; padding: 15px 17px; border-radius: 16px; color: var(--theme-primary-dark); background: color-mix(in srgb, var(--theme-accent) 16%, white); font-size: .93rem; }
.upload-form { display: grid; gap: 18px; }
.field { display: grid; gap: 7px; }
.field label { font-weight: 700; font-size: .92rem; }
.field input[type=text], .field input[type=password], .field input[type=email], .field textarea, .field select { width: 100%; padding: 13px 14px; border: 1px solid var(--theme-border); border-radius: 13px; color: var(--theme-control-text,var(--theme-text)); background: var(--theme-control-background,var(--theme-surface)); }
.field select option { color:var(--theme-option-text,var(--theme-text)); background:var(--theme-option-background,var(--theme-surface)); }
.field textarea { min-height: 84px; resize: vertical; }
.dropzone { position: relative; min-height: 190px; display: grid; place-items: center; padding: 28px; text-align: center; border: 2px dashed color-mix(in srgb, var(--theme-primary) 45%, var(--theme-border)); border-radius: 22px; background: color-mix(in srgb, var(--theme-primary) 7%, var(--theme-surface)); transition: border .2s, background .2s; }
.dropzone.dragover { border-color: var(--theme-primary); background: color-mix(in srgb, var(--theme-primary) 14%, var(--theme-surface)); }
.dropzone input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.dropzone-icon { display: grid; place-items: center; width: 62px; height: 62px; margin: 0 auto 14px; border-radius: 19px; color: var(--theme-button-text,#fff); background: var(--theme-primary-paint,var(--theme-primary)); box-shadow:0 10px 24px color-mix(in srgb,var(--theme-primary) 25%,transparent); }
.dropzone .dropzone-icon { color: var(--theme-button-text,#fff); }
.dropzone-icon svg { width:38px; height:38px; }
.dropzone strong { display: block; margin-bottom: 4px; font-size: 1.05rem; }
.dropzone span { color: var(--theme-muted); font-size: .87rem; }
.upload-form,.file-list { width:100%; min-width:0; max-width:100%; }
.file-list { display: grid; gap: 8px; overflow:hidden; }
.file-item { min-width:0; max-width:100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; box-sizing:border-box; overflow:hidden; border-radius: 11px; background: color-mix(in srgb, var(--theme-primary) 8%, var(--theme-surface)); font-size: .86rem; }
.file-list-summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 13px; border: 1px solid var(--theme-border); border-radius: 12px; color: var(--theme-text); background:var(--theme-surface-paint,var(--theme-surface)); font-size: .88rem; }
.file-list-summary span,.file-item small { flex: 0 0 auto; max-width:45%; overflow:hidden; color: var(--theme-muted); text-overflow:ellipsis; white-space:nowrap; }
.file-item>span { flex:1 1 auto; min-width: 0; max-width:100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-list-more { padding: 6px 10px; color: var(--theme-primary); font-size: .84rem; font-weight: 800; }
.upload-submit { width: 100%; color:var(--theme-button-text,#fff); background: var(--theme-primary-paint,var(--theme-primary)); border-color:var(--theme-primary); }
.upload-submit:disabled { opacity: .6; cursor: wait; }
.gallery-cta { margin-top: 18px; text-align: center; }
.gallery-cta a { color: var(--theme-primary-readable,var(--theme-primary)); font-weight: 800; }
.upload-closed { padding: 18px; text-align: center; border-radius: 16px; color: var(--theme-muted); background: color-mix(in srgb, var(--theme-primary) 5%, white); }
.upload-progress { display: grid; gap: 10px; padding: 15px 16px; border: 1px solid color-mix(in srgb, var(--theme-primary) 22%, var(--theme-border)); border-radius: 16px; color: var(--theme-control-text,var(--theme-text)); background: color-mix(in srgb, var(--theme-primary) 5%, var(--theme-control-background,var(--theme-surface))); }
.upload-progress[hidden] { display: none; }
.upload-progress-heading { display: grid; gap: 4px; font-size: .92rem; }
.upload-status { display: block; color: inherit; font-weight: 800; }
.upload-percentage { display: block; color: color-mix(in srgb, var(--theme-control-text,var(--theme-text)) 76%, transparent); font-size: .86rem; font-weight: 400; overflow-wrap: anywhere; }
.progress-wrap { height: 11px; overflow: hidden; border-radius: 999px; background: color-mix(in srgb, var(--theme-primary) 13%, #e8ece9); }
.progress-bar { height: 100%; width: 0; border-radius: inherit; background:var(--theme-primary-paint,var(--theme-primary)); transition: width .18s ease; }
.upload-warning { margin: 0; color: var(--theme-control-text,var(--theme-primary-dark)); font-size: .83rem; font-weight: 700; line-height: 1.45; }
.event-page .upload-consent { color: var(--theme-muted); }
.event-page .upload-consent a { color: var(--theme-primary); }
.event-page .upload-consent input { accent-color: var(--theme-primary); }
.upload-form.is-uploading .dropzone, .upload-form.is-uploading input, .upload-form.is-uploading textarea { pointer-events: none; opacity: .7; }

@media (max-width: 600px) {
    .event-topbar .brand-name { display: inline; max-width:calc(100vw - 205px); font-size:.86rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .event-nav a, .event-nav button { padding-inline: 12px; }
    .event-hero { min-height: 360px; }
    .event-main { margin-top: -34px; }
    .upload-panel { border-radius: 24px; }
}
.event-brand-logo{width:auto;height:46px;max-width:120px;flex:0 1 auto;object-fit:contain;border-radius:10px}.event-topbar .brand-logo-only .event-brand-logo{max-width:min(190px,42vw)}.event-topbar .brand-name{max-width:min(48vw,420px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}



/* Gallery cover presentation controls */
.event-hero.hero-no-icon{min-height:330px}
.event-hero.hero-no-icon .event-hero-content{padding-block:52px}
.event-hero h1.hero-title-size-medium{font-size:clamp(2.35rem,6.2vw,4.7rem);letter-spacing:-.035em}
.hero-accent-line{display:block;width:72px;height:3px;margin:18px auto 0;border-radius:999px;background:var(--theme-accent-paint,var(--theme-accent));box-shadow:0 1px 7px color-mix(in srgb,var(--theme-accent) 35%,transparent)}
.event-hero .hero-accent-line + .event-date{margin-top:16px}
.field-label-with-tip{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
@media(max-width:600px){.event-hero.hero-no-icon{min-height:285px}.event-hero.hero-no-icon .event-hero-content{padding-block:38px}.event-hero h1.hero-title-size-medium{font-size:clamp(2rem,11vw,3rem)}.event-topbar-inner{gap:9px}.event-topbar .brand{min-width:0}.event-topbar .brand-mark{width:42px;height:42px;flex:0 0 auto}.event-topbar .event-brand-logo{width:auto;height:42px;max-width:86px;flex:0 1 auto}.event-topbar .brand-logo-only .event-brand-logo{max-width:min(150px,40vw)}}


/* Clear visual difference between title sizes */
.event-hero h1.hero-title-size-large{font-size:clamp(3.6rem,8.4vw,6.25rem)}
.event-hero h1.hero-title-size-medium{font-size:clamp(2.35rem,5.3vw,4.15rem);line-height:1.04;letter-spacing:-.025em}
@media(max-width:600px){.event-hero h1.hero-title-size-large{font-size:clamp(3rem,13vw,4rem)}.event-hero h1.hero-title-size-medium{font-size:clamp(2.05rem,9vw,2.75rem);line-height:1.06}}


/* Rolling demo gallery timeline. */
.demo-window-timeline{margin:18px 0;padding:0;border:1px solid var(--line,#dce5e0);border-radius:16px;background:#f8faf8;overflow:hidden}
.demo-window-timeline summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;cursor:pointer;font-weight:850;list-style:none}
.demo-window-timeline summary::-webkit-details-marker{display:none}.demo-window-timeline summary::after{content:'+';color:var(--brand,#1d6150);font-size:1.2rem}
.demo-window-timeline[open] summary::after{content:'−'}.demo-window-timeline summary small{margin-left:auto;color:#6a756f;font-size:.75rem;font-weight:600}
.demo-window-timeline>div{display:grid;gap:3px;padding:13px 17px;border-top:1px solid var(--line,#dce5e0)}
.demo-window-timeline>div span{color:#6a756f;font-size:.83rem;line-height:1.4}
@media(max-width:560px){.demo-window-timeline summary small{display:none}.demo-window-timeline{margin-block:14px}.demo-window-timeline summary,.demo-window-timeline>div{padding:12px 14px}}


/* Complete upload-page title scale */
.event-hero h1.hero-title-size-small{font-size:clamp(1.8rem,4vw,3rem);line-height:1.1}
@media(max-width:600px){
 .event-hero h1.hero-title-size-small{font-size:clamp(1.6rem,7.4vw,2.2rem)}
 .event-hero h1.hero-title-size-medium{font-size:clamp(1.9rem,8.8vw,2.7rem)}
 .event-hero h1.hero-title-size-large{font-size:clamp(2.35rem,11vw,3.45rem);overflow-wrap:anywhere}
}

.upload-recovery-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:2px}
.upload-recovery-actions[hidden]{display:none}
.upload-recovery-actions .button{width:100%;min-height:44px;margin:0;font-size:.82rem}
.upload-recovery-skip{color:var(--theme-primary-readable,var(--theme-primary));background:var(--theme-control-background,var(--theme-surface));border:1px solid color-mix(in srgb,var(--theme-primary) 48%,var(--theme-border))}
@media(max-width:520px){.upload-recovery-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.upload-recovery-actions .button{min-width:0;min-height:44px;padding:9px 7px;font-size:.74rem;line-height:1.2;white-space:normal}}
