/* =====================================================================
   css/finale.css — the Grand Finale re-registration form.
   ===================================================================== */
  /* Warm stage palette taken from the Grand Finale poster: cream paper, walnut brown, gold */
  :root{--paper:#fbf4ea;--card:#fffdf9;--ink:#2b1d12;--muted:#7a6553;--walnut:#5a3416;--gold:#e0a42b;--goldSoft:#fbe9c4;--line:#ead9c2;--err:#a8271b;--ok:#2f6b3a;
    --display:'Oswald','Arial Narrow',Arial,sans-serif;--body:'Source Sans 3',Arial,Helvetica,sans-serif;color-scheme:light}
  *{box-sizing:border-box}
  body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5}
  .wrap{max-width:560px;margin:0 auto;padding-inline:16px;padding-block:16px 40px}
  .poster{display:block;width:100%;max-width:100%;border-radius:14px;box-shadow:0 10px 30px rgba(90,52,22,.18)}
  .steps{display:flex;gap:6px;margin:18px 0 8px}
  .steps span{flex:1;height:6px;border-radius:99px;background:var(--line)}
  .steps span.on{background:var(--gold)}
  .stepLabel{font:600 12px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin-top:10px}
  h1{font-family:var(--display);font-weight:700;font-size:26px;line-height:1.15;margin:4px 0 6px;color:var(--walnut);text-wrap:balance;letter-spacing:.01em}
  .lead{margin:0 0 14px;color:var(--muted)}
  label{display:block;font-weight:700;font-size:14px;margin:14px 0 6px}
  .hint{font-size:13px;color:var(--muted);margin-top:4px}
  input,select{width:100%;padding:12px;font:inherit;border:1px solid #d9c4a7;border-radius:10px;background:#fff;color:var(--ink)}
  input:focus,select:focus{outline:3px solid var(--goldSoft);border-color:var(--gold)}
  input[readonly]{background:#f6eee2;color:var(--walnut);font-weight:600}
  .maskBox{margin-top:12px;padding:12px;border-radius:10px;background:var(--goldSoft);font-size:15px}
  .maskBox b{font-family:var(--display);letter-spacing:.12em;font-size:18px;color:var(--walnut)}
  .btn{display:inline-block;width:100%;margin-top:18px;padding:14px;border:0;border-radius:12px;background:var(--walnut);color:#fff;font:700 17px var(--body);cursor:pointer}
  .btn:hover{background:#43260f}.btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
  .btn[disabled]{opacity:.55;cursor:wait}
  .link{background:none;border:0;color:var(--walnut);font:600 14px var(--body);text-decoration:underline;cursor:pointer;margin-top:12px;padding:0}
  .msg{margin-top:12px;padding:11px 12px;border-radius:10px;font-size:14px}
  .msg.err{background:#fdecea;color:var(--err);border:1px solid #f3c2bc}
  .notice{padding:12px 14px;border-radius:10px;background:#fff4dc;border:1px solid #f0d08a;font-size:14.5px;margin-bottom:6px}
  .notice b{color:var(--walnut)}
  .topics{display:grid;gap:8px;margin-top:10px}
  .topic{display:flex;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
  .topic:hover{border-color:var(--gold)}
  .topic input{width:auto;margin:0;accent-color:var(--walnut)}
  .topic .no{font:700 14px var(--display);color:var(--gold);min-width:24px}
  .topic.sel{border-color:var(--walnut);background:#fff8ec}
  .summary{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:15px}
  .summary dt{color:var(--muted)}.summary dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere}
  .finaleTopic{margin:14px 0;padding:14px;border-radius:12px;background:var(--walnut);color:#fff}
  .finaleTopic small{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--goldSoft)}
  .finaleTopic div{font:700 22px/1.2 var(--display);margin-top:4px}
  .event{margin-top:12px;font-size:15px;color:var(--walnut)}
  .consent{margin-top:18px;padding:14px;border-radius:12px;border:1px dashed #c9a46a;background:#fffaf0}
  .consent h2{font:700 18px var(--display);color:var(--walnut);margin:0 0 6px;letter-spacing:.02em}
  .check{display:flex;gap:10px;align-items:flex-start;font-size:15px;cursor:pointer}
  .check input{width:auto;margin-top:4px;accent-color:var(--walnut);transform:scale(1.2)}
  .sig{font-style:italic}
  .deadline{margin:12px 0 4px;padding:12px 14px;border-radius:10px;background:#fdecea;border:1px solid #f3c2bc;color:#7a1c13;font-size:14.5px}
  .deadline b{color:#a8271b}
  .congrats{background:linear-gradient(135deg,#5a3416,#8a5420 60%,#b67a2a);color:#fff;border:0}
  .congrats h1{color:#fff}
  .congrats p{margin:0 0 10px;color:#fbe9c4}
  .congrats .dua{font-style:italic;color:#fff;border-left:3px solid var(--gold);padding-left:10px}
  .video{position:relative;width:100%;aspect-ratio:16/9;max-width:100%;border-radius:12px;overflow:hidden;background:#1d130b;margin-top:12px}
  .video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
  .noVideo{margin-top:12px;padding:12px;border-radius:10px;background:rgba(255,255,255,.12);font-size:14px}
  .choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .choices.one{grid-template-columns:1fr}
  .choice{display:flex;gap:8px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-weight:600}
  .choice input{width:auto;margin:0;accent-color:var(--walnut)}
  .rehearsal{margin-top:16px;padding:14px;border-radius:12px;background:#eef5ef;border:1px solid #c5ddc9}
  .rehearsal h2{font:700 17px var(--display);color:var(--ok);margin:0 0 6px;letter-spacing:.02em}
  .hidden{display:none!important}
  @media (prefers-reduced-motion:no-preference){.card{animation:rise .35s ease-out}@keyframes rise{from{transform:translateY(6px);opacity:.6}to{transform:none;opacity:1}}}

/* Poster keeps its real shape (never stretched) and fits the screen (5 Oct 2026) */
.poster{width:auto;max-width:100%;height:auto;max-height:82vh;margin:0 auto;object-fit:contain}
@media(max-width:560px){.poster{width:100%;max-height:none}}
