:root{--bg:#000;--fg:#fff;--text:#e6e6e6;--accent:#ffdb01;--accent-dark:#e6c500;--muted:#adadad;--card:#0e0e0e;--input-bg:#262626;--surface:#1f1f1f;--border:#383838;--error:#ff6b6b;--ok:#6ee7b7;--radius:14px;--fs-xs:13px;--fs-sm:14px;--fs-base:16px;--fs-h1:28px;--lh:1.55;--lh-tight:1.25}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:var(--fs-base);line-height:var(--lh);place-items:start center;min-height:100vh;padding:24px 16px;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:480px;padding:28px}.brand-header{background:var(--accent);text-align:center;border-radius:var(--radius) var(--radius) 0 0;margin:-28px -28px 24px}.brand-logo{width:auto;height:55px;margin-top:5px;display:inline-block}h1{font-size:var(--fs-h1);font-weight:800;line-height:var(--lh-tight);letter-spacing:-.01em;color:var(--fg);margin:0 0 12px}.hl{background:var(--accent);color:#000;border-radius:4px;padding:0 8px;display:inline-block}.event-meta{font-size:var(--fs-sm);color:var(--muted);margin:0 0 14px}.event-meta strong{color:var(--text);font-weight:600}.lede{font-size:var(--fs-base);color:var(--text);margin:0 0 18px}.notice{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);color:var(--muted);font-size:var(--fs-xs);border-radius:8px;padding:12px 14px;line-height:1.5}.notice p{margin:0}.notice p+p{margin-top:8px}.notice strong{color:var(--text);font-weight:600}.stack>*+*{margin-top:18px}.field{flex-direction:column;gap:6px;display:flex}.field span.label{font-size:var(--fs-sm);color:var(--text);font-weight:600}.field .hint{font-size:var(--fs-xs);color:var(--muted);line-height:1.4}.err{font-size:var(--fs-xs);color:var(--error);line-height:1.4}.field .counter{font-size:var(--fs-xs);color:var(--muted);text-align:right;white-space:nowrap}.req{color:var(--accent);font-weight:700}.optional{color:var(--muted);font-weight:400}.field.invalid input,input[aria-invalid=true],.field.invalid .upload-box{border-color:var(--error)}.field-foot{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.upload-box{border:1px dashed var(--border);background:var(--input-bg);border-radius:12px;padding:14px}.upload-box.has-photo{border-style:solid}.consents{flex-direction:column;gap:14px;display:flex}.check{font-size:var(--fs-sm);cursor:pointer;align-items:flex-start;gap:10px;line-height:1.5;display:flex}.check input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:2px 0 0}.check span{color:var(--text)}.check.invalid input[type=checkbox]{outline:2px solid var(--error);outline-offset:2px}.check-note{font-size:var(--fs-xs);color:var(--muted);margin-top:2px;display:block}.hint,.fineprint{font-size:var(--fs-xs);color:var(--muted);margin:0;line-height:1.5}.hint a,.fineprint a{color:var(--accent)}.stack>.fineprint{margin-top:28px}form.stack button[type=submit]{width:100%}.ensemble{border-radius:0 0 var(--radius) var(--radius);width:calc(100% + 56px);margin:8px -28px -28px;display:block}input[type=text],input[type=email],input[type=file],input:not([type]){border:1px solid var(--border);width:100%;font-size:var(--fs-base);line-height:var(--lh);background:var(--input-bg);color:var(--fg);border-radius:12px;padding:12px 14px}input::placeholder{color:#6b6b6b}input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}button,.btn{appearance:none;background:var(--accent);color:#000;font-weight:700;font-size:var(--fs-base);cursor:pointer;text-align:center;border:none;border-radius:12px;padding:14px 18px;line-height:1.2;text-decoration:none;display:inline-block}button:hover,.btn:hover{background:var(--accent-dark)}button:disabled{opacity:.4;cursor:not-allowed}.msg{color:var(--muted);min-height:1.2em;font-size:var(--fs-sm);margin:12px 0 0}.msg.error{color:var(--error)}.msg.ok{color:var(--ok)}.preview{border-radius:8px;max-width:100%;margin:0 0 12px;display:block}.preview-note{font-size:var(--fs-xs);color:var(--ok);margin:0 0 12px;display:block}.camera-row{gap:8px;display:flex}@media (hover:hover) and (pointer:fine){.camera-row .capture-btn{display:none}}.camera-row button{font-size:var(--fs-sm);color:var(--accent);border:1px solid var(--accent);background:0 0;flex:1;padding:10px 12px}.camera-row button:hover{background:#f9e04c1a}
