* { box-sizing: border-box; }
body { margin: 0; padding: 28px 16px; background: #f4f1ec; color: #29231d; font-family: -apple-system,BlinkMacSystemFont,"Malgun Gothic",sans-serif; line-height: 1.65; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .6; }
[hidden] { display: none !important; }
.card { max-width: 650px; margin: 0 auto; padding: 32px; border: 1px solid #dfd5c7; border-radius: 18px; background: #fff; box-shadow: 0 15px 50px #39260b0a; }
.back { font-size: 14px; text-decoration: none; }
.eyebrow { margin: 28px 0 8px; font-size: 11px; font-weight: 700; letter-spacing: .13em; color: #9c7050; }
h1 { font-size: clamp(24px,5vw,30px); line-height: 1.4; margin: 0 0 14px; }
h2 { font-size: 20px; }
.field { display: block; margin: 22px 0; font-weight: 700; }
.field input, .field textarea, .field select { display: block; width: 100%; margin-top: 8px; padding: 12px; border: 1px solid #c9c3bc; border-radius: 7px; background: #fff; color: #29231d; font-weight: 400; font-size: 16px; }
.required { margin-left: 4px; font-size: 11px; font-weight: 400; color: #a02768; }
fieldset { margin: 22px 0; padding: 14px; border: 1px solid #ddd5ca; border-radius: 8px; }
legend { padding: 0 5px; font-weight: 700; }
fieldset label { display: inline-flex; align-items: center; gap: 6px; margin: 5px 18px 5px 0; }
fieldset .choice { display: flex; margin-right: 0; }
input[type="radio"], input[type="checkbox"] { width: 18px; height: 18px; accent-color: #ad276d; flex-shrink: 0; }
.privacy { padding: 14px; border-radius: 8px; background: #f8f5f1; font-size: 13px; }
.privacy summary { cursor: pointer; font-weight: 700; }
.consent { display: flex; align-items: flex-start; gap: 8px; margin: 18px 0 26px; }
.primary, .secondary { display: inline-block; padding: 12px 22px; border: 1px solid transparent; border-radius: 7px; font-weight: 700; text-decoration: none; text-align: center; line-height: 1.6; }
.primary { background: #ad276d; color: #fff; }
.secondary { background: #f3eee7; border-color: #dbd2c5; color: #332a20; }
.full { width: 100%; }
.buttons { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }
.buttons > * { flex: 1; }
.alert { padding: 12px 16px; border: 1px solid #e1adaf; border-radius: 7px; background: #fff3f3; color: #8c2638; overflow-wrap: anywhere; }
.alert p { margin: 6px 0; }
.success { padding: 12px 16px; border-radius: 7px; background: #eaf5ee; color: #225b37; }
.centered { text-align: center; }
.registration-code { display: block; font-size: 42px; letter-spacing: .22em; color: #a9276f; padding-left: .22em; }
.qr-code { width: 220px; max-width: 100%; margin: 22px auto; background: #fff; }
.qr-code svg { display: block; width: 100%; height: auto; }
:focus-visible { outline: 3px solid #a9276f; outline-offset: 3px; }
@media(max-width:480px) { body { padding: 16px 10px; } .card { padding: 24px 18px; } }
