/* ---- v19: fan signup (Laylo-style, self-hosted). Uses the page's --w/--red/--g/--disp/--mono vars. ---- */
.fan{background:#0b0b0c;border:1px solid #2a2a2a;border-left:3px solid var(--red,#ff1a1a);padding:26px 28px 24px;color:var(--w,#f2f2f2);font-family:var(--mono,"Space Mono",ui-monospace,monospace)}
.next .fan{grid-column:1/-1;border:0;border-top:1px solid #2a2a2a}
.fan h2,.fan h3{font-family:var(--disp,"Anton",Impact,sans-serif);font-weight:400;text-transform:uppercase;font-size:clamp(28px,3.2vw,40px);line-height:.95;letter-spacing:.01em;margin:0}
.fan .fan-intro{font-size:13px;color:#b9b9b9;line-height:1.55;margin:8px 0 18px;max-width:520px}
.fan-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 14px;max-width:620px}
.fan-f{display:flex;flex-direction:column;justify-content:flex-end;min-width:0}
.fan-f.full{grid-column:1/-1}
.fan label{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#a6a6a6;margin:0 0 7px}
.fan label i{font-style:normal;color:#6f6f6f}
.fan input{width:100%;background:#050505;color:var(--w,#f2f2f2);border:1px solid #2f2f33;border-radius:10px;padding:13px 14px;font:400 15px var(--mono,ui-monospace,monospace);-webkit-appearance:none;appearance:none;transition:border-color .12s}
.fan input::placeholder{color:#5e5e63}
.fan input:focus{outline:none;border-color:var(--red,#ff1a1a)}
.fan input[aria-invalid="true"]{border-color:var(--red,#ff1a1a)}
.fan-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.fan button{margin-top:18px;width:100%;max-width:620px;display:block;background:var(--red,#ff1a1a);color:#000;border:0;border-radius:10px;padding:15px 18px;font:700 14px var(--mono,ui-monospace,monospace);text-transform:uppercase;letter-spacing:.12em;cursor:pointer}
.fan button:hover{background:var(--w,#f2f2f2)}
.fan button[disabled]{opacity:.6;cursor:wait}
.fan-msg{font-size:12.5px;margin-top:12px;color:var(--red,#ff1a1a);min-height:1em}
.fan-msg:empty{display:none}
.fan-legal{font-size:10.5px;line-height:1.55;color:#6f6f6f;margin:12px 0 0;max-width:620px}
.fan-ok{display:none}
.fan.done .fan-form{display:none}
.fan.done .fan-ok{display:block}
.fan-ok b{display:block;font-family:var(--disp,"Anton",Impact,sans-serif);font-weight:400;text-transform:uppercase;font-size:clamp(40px,5vw,60px);line-height:.9;color:var(--w,#f2f2f2);text-shadow:.05em .05em 0 var(--red,#ff1a1a)}
.fan-ok p{font-size:13px;color:#b9b9b9;margin:10px 0 0}
@media(max-width:900px){.next .fan{padding:22px 20px 24px}}
@media(max-width:480px){.fan{padding:20px 16px}.fan-grid{gap:12px 10px}.fan input{font-size:16px;padding:12px}.fan label{font-size:10px;letter-spacing:.06em}}
@media(max-width:340px){.fan-grid{grid-template-columns:1fr}}
