:root { --navy:#092346; --blue:#176b9f; --aqua:#00a6a6; --ink:#1c2938; --muted:#627181; --line:#dbe4ea; --surface:#fff; --page:#f3f7f9; }
* { box-sizing:border-box; }
body { margin:0; background:var(--page); color:var(--ink); font:16px/1.55 Arial,Helvetica,sans-serif; }
.site-shell { width:min(100% - 32px,980px); margin:32px auto 48px; }
.event-banner { min-height:210px; display:flex; justify-content:space-between; position:relative; padding:34px 42px; color:#fff; background-size:cover; background-position:center; border-radius:20px 20px 0 0; overflow:hidden; }
.event-banner--text { background:linear-gradient(120deg,var(--navy),#155b83); }.event-banner--text:after { content:""; position:absolute; width:340px; height:340px; right:-120px; top:-170px; border:48px solid rgba(255,255,255,.12); border-radius:50%; }.event-banner--image { padding:0; min-height:0; display:block; background:var(--navy); }.event-banner__image { display:block; width:100%; height:auto; max-height:320px; object-fit:cover; }.event-banner--image .event-banner__content { position:absolute; z-index:1; left:42px; bottom:34px; text-shadow:0 2px 10px rgba(0,0,0,.65); }.event-banner--image:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.58),transparent 62%); pointer-events:none; }
.event-banner__content { position:relative; z-index:1; align-self:flex-end; }.event-banner__eyebrow { display:block; margin-bottom:8px; color:#bdeaf0; font-size:.78rem; font-weight:bold; letter-spacing:.12em; text-transform:uppercase; }.event-banner h1 { margin:0; font-size:clamp(2rem,5vw,3.25rem); line-height:1.1; }
.language-switch { z-index:1; display:flex; gap:4px; align-self:flex-start; }.language-switch a { padding:6px 9px; color:white; border-radius:6px; font-size:.78rem; font-weight:bold; text-decoration:none; }.language-switch a[aria-current="page"] { background:rgba(255,255,255,.22); }
.portal-card { background:var(--surface); padding:34px 42px; border:1px solid #e5edf1; }.portal-intro { border-top:0; }.form-card { margin-top:20px; border-radius:16px; box-shadow:0 8px 28px rgba(18,53,74,.08); }
h2 { margin:0 0 10px; color:var(--navy); font-size:1.55rem; }h3 { margin:0 0 12px; color:var(--navy); font-size:1rem; }.lead { margin:0 0 25px; color:var(--muted); font-size:1.08rem; }
.submission-info { display:grid; grid-template-columns:1fr 220px; gap:28px; padding-top:24px; border-top:1px solid var(--line); }.submission-info ul { margin:0; padding-left:20px; }.submission-info li + li { margin-top:7px; }.format-note { margin:18px 0 0; color:var(--muted); font-style:italic; }
.deadline { align-self:start; padding:20px; background:#e8f6f5; border-left:4px solid var(--aqua); border-radius:8px; }.deadline span { display:block; margin-bottom:8px; color:#35646a; font-size:.8rem; font-weight:bold; text-transform:uppercase; }.deadline strong { color:#075e65; font-size:1.1rem; line-height:1.25; }
.alert { margin-top:26px; padding:13px 16px; color:#8a2831; background:#fff1f1; border-left:4px solid #c84955; border-radius:6px; }
.form-card form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; margin-top:24px; }.form-field { min-width:0; }.form-field--wide,.form-field:has(input[type="file"]) { grid-column:1 / -1; }label { display:block; margin-bottom:6px; color:#31485d; font-size:.9rem; font-weight:bold; }.optional { color:var(--muted); font-size:.82rem; font-weight:normal; }.field-help { margin:6px 0 0; color:var(--muted); font-size:.82rem; line-height:1.35; }input,select { width:100%; min-height:43px; padding:9px 11px; color:var(--ink); border:1px solid #becbd4; border-radius:7px; background:#fff; font:inherit; }select { appearance:none; cursor:pointer; padding-right:42px; background-color:#fff; background-image:linear-gradient(45deg,transparent 50%,#176b9f 50%),linear-gradient(135deg,#176b9f 50%,transparent 50%); background-position:calc(100% - 18px) 18px,calc(100% - 12px) 18px; background-size:6px 6px,6px 6px; background-repeat:no-repeat; }select:invalid { color:#6c7b89; }select option { color:var(--ink); }input:focus,select:focus { outline:3px solid rgba(0,166,166,.18); border-color:var(--aqua); box-shadow:0 1px 2px rgba(9,35,70,.05); }input[type="file"] { padding:8px; background:#f8fafb; }
.submit-button { grid-column:1 / -1; justify-self:center; min-width:190px; margin-top:8px; padding:13px 20px; color:#fff; background:var(--blue); border:0; border-radius:7px; cursor:pointer; font:inherit; font-weight:bold; }.submit-button:hover { background:#0f5785; }.closed-state { padding:46px 10px; text-align:center; }.closed-state__icon { width:44px; height:44px; margin:0 auto 15px; color:#fff; background:#677786; border-radius:50%; font-size:2rem; line-height:38px; }.closed-state p { margin:0; color:var(--muted); }
@media (max-width:640px) { .site-shell { width:100%; margin:0; }.event-banner { min-height:180px; padding:26px 22px; border-radius:0; }.portal-card { padding:28px 22px; }.submission-info,.form-card form { grid-template-columns:1fr; }.deadline { max-width:none; } }
