.registration-page { --register-coral: #ff536c; }
.registration-page .content-shell { max-width: 1280px; }
.registration-page .primary.is-current { color: #fff; background: linear-gradient(135deg, var(--purple), #6d00f9); }
.registration-header-link { justify-self: start; padding: 12px 17px; color: #5c5e6e; background: #f2f2f6; border-radius: 99px; font-size: 12px; font-weight: 850; }
.rail-register { display: none; }

.registration-hero { position: relative; display: grid; grid-template-columns: 1.04fr .96fr; min-height: 545px; overflow: hidden; color: #fff; background: radial-gradient(circle at 82% 16%, rgb(255 150 158 / 45%), transparent 30%), linear-gradient(135deg, #37175b, #7526b9 57%, #ec4d73); border-radius: 27px; box-shadow: 0 20px 50px rgb(66 21 91 / 19%); }
.registration-copy { position: relative; z-index: 2; align-self: center; padding: 48px 0 48px 48px; }
.registration-copy h1 { max-width: 700px; margin: 18px 0 19px; font-size: clamp(45px, 5.2vw, 70px); line-height: .96; letter-spacing: -3.5px; }
.registration-copy > p { max-width: 600px; margin: 0; color: rgb(255 255 255 / 75%); line-height: 1.7; }
.register-button { display: inline-flex; gap: 13px; align-items: center; min-height: 64px; margin-top: 29px; padding: 0 22px; color: #2d2738; background: #fff; border-radius: 18px; box-shadow: 0 14px 35px rgb(13 10 33 / 25%); }
.register-button > span { display: grid; place-items: center; width: 36px; height: 36px; color: #fff; background: var(--register-coral); border-radius: 12px; font-size: 21px; font-weight: 900; }
.register-button b { display: grid; gap: 2px; font-size: 14px; }.register-button small { color: #858492; font-size: 9px; }
.registration-copy .age-note { display: flex; gap: 8px; align-items: center; margin-top: 18px; color: rgb(255 255 255 / 62%); font-size: 10px; }.age-note span { display: grid; place-items: center; min-width: 32px; height: 24px; color: #64224d; background: #fff; border-radius: 99px; font-weight: 950; }

.welcome-visual { position: relative; min-height: 545px; }.welcome-ring { position: absolute; border: 1px solid rgb(255 255 255 / 15%); border-radius: 50%; }.ring-large { width: 430px; height: 430px; top: 55px; right: 0; }.ring-small { width: 285px; height: 285px; top: 128px; right: 72px; }
.welcome-ticket { position: absolute; z-index: 2; top: 76px; right: 9%; width: 330px; min-height: 385px; padding: 31px; color: #272437; background: #fff; border-radius: 29px; box-shadow: 0 30px 80px rgb(42 9 57 / 35%); transform: rotate(4deg); }
.welcome-ticket::before, .welcome-ticket::after { content: ""; position: absolute; top: 69%; width: 30px; height: 30px; background: #b73e93; border-radius: 50%; }.welcome-ticket::before { left: -15px; }.welcome-ticket::after { right: -15px; }
.welcome-ticket > span { display: inline-flex; padding: 7px 10px; color: #fff; background: #222134; border-radius: 99px; font-size: 9px; font-weight: 900; text-transform: uppercase; }.welcome-ticket strong { display: block; margin-top: 34px; color: var(--purple); font-size: 78px; line-height: .9; letter-spacing: -5px; }.welcome-ticket b { display: block; margin-top: 12px; font-size: 25px; }.welcome-ticket small { display: block; margin-top: 9px; color: var(--muted); font-size: 10px; }.welcome-ticket i { position: absolute; right: 26px; bottom: 24px; left: 26px; padding-top: 18px; color: #5a566a; border-top: 2px dashed #dedbe6; font-size: 10px; font-style: normal; font-weight: 850; text-transform: uppercase; }
.welcome-chip { position: absolute; z-index: 3; right: 2%; bottom: 62px; display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; padding: 14px 17px; color: #fff; background: #251d3c; border-radius: 17px; box-shadow: 0 18px 38px rgb(37 13 60 / 35%); transform: rotate(-5deg); }.welcome-chip > small { max-width: 65px; color: rgb(255 255 255 / 68%); font-size: 8px; font-weight: 850; text-transform: uppercase; }

.registration-steps, .preparation, .account-rules, .registration-faq { margin-top: 22px; padding: 40px; background: #fff; border: 1px solid var(--line); border-radius: 25px; box-shadow: 0 8px 32px rgb(26 28 39 / 4%); }
.registration-steps > header { display: grid; grid-template-columns: .82fr 1.18fr; gap: 12px 60px; align-items: end; margin-bottom: 27px; }.registration-steps > header .eyebrow { grid-column: 1 / -1; width: max-content; }
.registration-steps h2, .preparation h2, .account-rules h2 { margin: 0; font-size: 32px; line-height: 1.08; letter-spacing: -1.5px; }.registration-steps header p, .preparation-copy > p { margin: 0; color: var(--muted); line-height: 1.7; }
.registration-steps ol { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; }.registration-steps li { min-height: 210px; padding: 22px; background: #f8f6fb; border-radius: 18px; }.registration-steps li > span { display: grid; place-items: center; width: 43px; height: 43px; color: #fff; background: linear-gradient(135deg, var(--purple), #8b3df0); border-radius: 13px; font-size: 11px; font-weight: 900; }.registration-steps h3 { margin: 25px 0 9px; font-size: 17px; }.registration-steps li p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }

.preparation { display: grid; grid-template-columns: .78fr 1.22fr; gap: 45px; }.preparation-copy h2 { margin: 15px 0 13px; }.preparation-copy > a { display: inline-flex; margin-top: 20px; color: var(--purple); font-size: 12px; font-weight: 850; }.preparation ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 0; list-style: none; }.preparation li { display: grid; grid-template-columns: auto 1fr; gap: 11px; padding: 17px; background: #f7f5fc; border-radius: 15px; }.preparation li > span { display: grid; place-items: center; width: 31px; height: 31px; color: #fff; background: #6c3de1; border-radius: 10px; font-size: 10px; font-weight: 900; }.preparation li p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }.preparation li b { display: block; margin-bottom: 3px; color: var(--ink); font-size: 12px; }

.welcome-offer { display: grid; grid-template-columns: .78fr 1.22fr; gap: 48px; align-items: center; min-height: 390px; margin-top: 22px; padding: 40px; overflow: hidden; color: #fff; background: linear-gradient(135deg, #ec5066, #822fd8); border-radius: 25px; }.offer-number { position: relative; display: grid; place-items: center; width: 270px; height: 270px; margin: auto; background: rgb(255 255 255 / 11%); border: 1px solid rgb(255 255 255 / 22%); border-radius: 50%; }.offer-number::before { content: ""; position: absolute; inset: 30px; background: #fff; border-radius: 40%; transform: rotate(-7deg); }.offer-number span, .offer-number small { position: relative; z-index: 2; }.offer-number span { align-self: end; color: #622469; font-size: 53px; font-weight: 950; letter-spacing: -3px; }.offer-number small { align-self: start; color: #8e4d8b; font-size: 10px; font-weight: 850; }.welcome-offer h2 { margin: 15px 0 12px; font-size: 36px; line-height: 1.04; letter-spacing: -1.8px; }.welcome-offer p { color: rgb(255 255 255 / 75%); line-height: 1.68; }.offer-actions { display: flex; gap: 18px; align-items: center; margin-top: 22px; }.offer-actions .primary { color: #34273b; background: #fff; box-shadow: none; }.offer-actions > a:last-child { padding: 11px 0; border-bottom: 1px solid rgb(255 255 255 / 44%); font-size: 11px; font-weight: 850; }

.account-rules > header { display: flex; justify-content: space-between; gap: 25px; align-items: end; margin-bottom: 27px; }.rule-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }.rule-grid article { min-height: 180px; padding: 22px; background: #f7f6fb; border-radius: 18px; }.rule-grid article > span { display: grid; place-items: center; width: 41px; height: 41px; color: #fff; background: var(--register-coral); border-radius: 50%; font-size: 13px; font-weight: 950; }.rule-grid h3 { margin: 22px 0 8px; }.rule-grid p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }.registration-faq h2 { margin: 15px 0 19px; }
.registration-final { display: grid; grid-template-columns: 1fr auto; gap: 34px; align-items: center; margin-top: 22px; padding: 38px; color: #fff; background: linear-gradient(135deg, #2b183f, #6d28bf); border-radius: 25px; }.registration-final span { display: inline-flex; padding: 6px 9px; color: #672744; background: #fff; border-radius: 99px; font-size: 10px; font-weight: 900; }.registration-final h2 { margin: 12px 0 7px; font-size: 30px; }.registration-final p { margin: 0; color: rgb(255 255 255 / 67%); }.registration-final .primary { min-width: 250px; color: #2f2838; background: #fff; box-shadow: none; }

@media (max-width: 1080px) {
  .registration-header-link { display: none; }.registration-hero { grid-template-columns: 1fr; }.registration-copy { padding-right: 48px; }.welcome-visual { min-height: 465px; }.welcome-ticket { right: 24%; }.welcome-chip { right: 17%; }.ring-large { right: 14%; }.ring-small { right: 28%; }
  .registration-steps ol { grid-template-columns: 1fr 1fr; }.preparation { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .registration-page .brand { min-height: 44px; }.registration-page .mode-switch a { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; }
  .rail-register { display: grid; place-items: center; min-height: 60px; color: #fff; background: linear-gradient(135deg, #d93369, #8b2ed5); border-radius: 16px; font-size: 26px; font-weight: 900; }
  .registration-hero { min-height: 0; border-radius: 19px; }.registration-copy { padding: 27px 20px 15px; }.registration-copy h1 { font-size: 37px; letter-spacing: -2px; }.registration-copy > p { font-size: 12px; }.register-button { width: 100%; min-height: 62px; }
  .welcome-visual { min-height: 390px; }.welcome-ticket { top: 38px; right: 8%; width: 245px; min-height: 315px; padding: 22px; }.welcome-ticket strong { margin-top: 27px; font-size: 59px; }.welcome-ticket b { font-size: 19px; }.welcome-ticket i { right: 20px; bottom: 20px; left: 20px; }.welcome-chip { right: 1%; bottom: 42px; }.ring-large { width: 330px; height: 330px; right: -22%; top: 17px; }.ring-small { width: 220px; height: 220px; right: 2%; top: 75px; }
  .registration-steps, .preparation, .account-rules, .registration-faq { margin-top: 14px; padding: 24px 20px; border-radius: 19px; }.registration-steps > header { grid-template-columns: 1fr; gap: 13px; }.registration-steps > header .eyebrow { grid-column: auto; }.registration-steps h2, .preparation h2, .account-rules h2 { font-size: 26px; }.registration-steps ol { grid-template-columns: 1fr; }.registration-steps li { min-height: 0; }.registration-steps h3 { margin-top: 20px; }
  .preparation { gap: 26px; }.preparation ul { grid-template-columns: 1fr; }.welcome-offer { grid-template-columns: 1fr; gap: 22px; min-height: 0; margin-top: 14px; padding: 24px 20px; border-radius: 19px; }.offer-number { width: 210px; height: 210px; }.offer-number span { font-size: 41px; }.welcome-offer h2 { font-size: 29px; }.offer-actions { align-items: flex-start; flex-direction: column; }.offer-actions .primary { width: 100%; }
  .account-rules > header { align-items: flex-start; flex-direction: column; }.rule-grid { grid-template-columns: 1fr; }.rule-grid article { min-height: 0; }.registration-final { grid-template-columns: 1fr; gap: 22px; margin-top: 14px; padding: 24px 20px; border-radius: 19px; }.registration-final h2 { font-size: 26px; }.registration-final .primary { width: 100%; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) { .welcome-ticket, .welcome-chip, .offer-number::before { transform: none; } }
