*{box-sizing:border-box}
body{margin:0;background:#f7f8fa;color:#222b36;font-family:Arial,"Microsoft YaHei",sans-serif;font-size:14px}
input,button{font:inherit}
.registration-shell{width:min(100% - 32px,860px);margin:0 auto;padding:44px 0 64px}
.registration-heading{margin:0 0 22px}
.registration-heading h1{font-size:26px;line-height:1.4;font-weight:600;margin:0 0 7px}
.registration-heading p,.block-heading p{color:#687482;line-height:1.7;margin:0;font-size:13px}
.form-card{background:#fff;border:1px solid #e2e6eb;border-radius:8px;padding:30px 34px}
.registration-fields{border:0;padding:0;margin:0;min-width:0}
.registration-fields:disabled{opacity:.62}
.form-block{padding:0 0 24px;margin:0 0 24px;border-bottom:1px solid #e8ebef}
.block-heading{margin:0 0 18px}
.block-heading h2{font-size:16px;font-weight:600;margin:0 0 5px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.field{min-width:0}
.field label,.field-label{display:block;margin:0 0 8px;font-size:13px;font-weight:500;color:#303a46}
.field label span,.field-label span{color:#cf4c4c}
.field input:not([type=radio]){display:block;width:100%;height:42px;padding:0 12px;border:1px solid #d7dce2;border-radius:5px;background:white;color:#222b36;outline:none;transition:border-color .15s,box-shadow .15s}
.field input::placeholder{color:#a1aab4}
.field input:focus{border-color:#75879a;box-shadow:0 0 0 3px #75879a1c}
.radio-group{display:flex;gap:8px}
.radio-option{position:relative;flex:1;margin:0!important;cursor:pointer}
.radio-option input{position:absolute;opacity:0}
.radio-option span{display:grid;place-items:center;height:42px;border:1px solid #d7dce2;border-radius:5px;color:#56616e;font-size:13px}
.radio-option input:checked+span{border-color:#536171;background:#f2f4f6;color:#25313e}
.radio-option input:focus-visible+span{outline:3px solid #75879a40}
.song-list{display:grid;gap:12px}
.song-card{min-width:0;margin:0;padding:15px 16px 14px;border:1px solid #e1e5e9;border-radius:6px;background:#fcfcfd}
.song-card legend{padding:0 5px;font-size:13px;font-weight:600;color:#303a46}
.song-grid{display:grid;grid-template-columns:1.5fr 1.5fr 1fr 1fr;gap:12px}
.song-grid .field label{font-size:12px}
.song-grid .field input:not([type=radio]){height:40px;padding:0 10px;font-size:13px}
.field-error{display:block;margin-top:5px;color:#b23b3b;font-size:12px;line-height:1.5}
.field-error:empty{display:none}
.song-card>.field-error{margin-top:8px}
.contact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.submit-button{display:block;width:100%;height:46px;border:0;border-radius:5px;background:#273442;color:#fff;font-weight:600;cursor:pointer;transition:background .15s}
.submit-button:hover{background:#3a4a5b}
.submit-button:focus-visible{outline:3px solid #75879a66;outline-offset:2px}
.success-panel,.error-summary{padding:12px 14px;margin:0 0 18px;border-radius:5px;font-size:13px;line-height:1.6}
.success-panel{border:1px solid #cfe2d2;background:#f1f8f2;color:#356344}
.error-summary{border:1px solid #efd3d3;background:#fdf5f5;color:#9c3838}
.registration-notice{margin:0 0 18px;padding:12px 14px;border:1px solid #d8e0e8;border-radius:5px;background:#f4f7fa;color:#536171;font-size:13px;line-height:1.6;text-align:center}
.face-form-error{margin:14px 0 0;padding:11px 12px;border:1px solid #efd3d3;border-radius:5px;background:#fdf5f5;color:#9c3838;font-size:12px;line-height:1.6}
.face-verify-screen{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(17,25,34,.72)}
.face-verify-screen[hidden]{display:none}
.face-verify-container{width:min(100%,370px);padding:24px 22px 26px;border-radius:10px;background:#fff;color:#263340;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.face-verify-header{position:relative;margin:0 0 22px}
.face-verify-header h2{margin:0;font-size:20px;font-weight:600}
.face-verify-close{position:absolute;top:-9px;right:-8px;width:32px;height:32px;border:0;border-radius:50%;background:#f0f2f4;color:#687482;font-size:22px;line-height:1;cursor:pointer}
.face-verify-viewport{position:relative;width:min(66vw,250px);aspect-ratio:1;margin:0 auto 16px;overflow:hidden;border-radius:50%;background:#eef2f5}
.face-verify-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scaleX(-1)}
.face-verify-container[data-phase="submit"] .face-verify-video{filter:blur(12px);transform:scaleX(-1) scale(1.04)}
.face-verify-loading{position:absolute;z-index:5;top:50%;left:50%;width:42px;height:42px;margin:-21px 0 0 -21px;border:3px solid #dce2e7;border-top-color:#536171;border-radius:50%;animation:face-spin .8s linear infinite;pointer-events:none}
.face-verify-container:not([data-phase="submit"]) .face-verify-loading{display:none}
.face-verify-progress{position:absolute;z-index:4;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);pointer-events:none}
.face-verify-progress-bg{fill:none;stroke:#e1e6eb;stroke-width:5}
.face-verify-progress-bar{fill:none;stroke:#536171;stroke-width:5;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .16s linear}
.face-verify-progress[hidden]{display:none}
.face-verify-success{position:absolute;z-index:5;top:calc(50% - 34px);left:calc(50% - 34px);display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:#536171;color:#fff;font-size:40px;line-height:1}
.face-verify-success[hidden]{display:none}
.face-verify-status{min-height:24px;margin:12px 0 0;color:#394653;font-size:13px;line-height:1.6}
@keyframes face-spin{to{transform:rotate(360deg)}}
@media(max-width:680px){.registration-shell{padding-top:28px}.form-card{padding:23px 20px}.song-grid{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr 1fr}.contact-grid .field:last-child{grid-column:1/-1}}
@media(max-width:440px){.registration-heading h1{font-size:23px}.registration-heading p{font-size:12px}.form-card{padding:20px 15px}.form-grid,.contact-grid{grid-template-columns:1fr}.contact-grid .field:last-child{grid-column:auto}.song-grid{grid-template-columns:1fr 1fr}.song-grid .field:nth-child(-n+2){grid-column:1/-1}.song-card{padding:13px 12px}.face-verify-screen{padding:14px}.face-verify-container{padding:21px 16px 23px}.face-verify-viewport{width:min(68vw,220px)}}
