 :root {
     --ink: #07111f;
     --ink-2: #0c1a2d;
     --panel: #0f2036;
     --cream: #f7f8fb;
     --white: #fff;
     --muted: #68758a;
     --line: #e7ebf1;
     --gold: #f5b544;
     --gold-2: #ffd978;
     --cyan: #37d5e9;
     --green: #21c98a;
     --red: #ef6a6a;
     --violet: #7c3aed;
     --shadow: 0 22px 70px rgba(7, 17, 31, .12);
     --shadow-lg: 0 35px 90px rgba(7, 17, 31, .18);
     --radius: 24px;
     --container: min(1180px, calc(100% - 40px));
     --ease: cubic-bezier(.2, .75, .25, 1);
 }

 * {
     box-sizing: border-box;
     margin: 0;
     padding: 0
 }

 html {
     scroll-behavior: smooth
 }

 body {
     font-family: "DM Sans", sans-serif;
     color: var(--ink);
     background: var(--cream);
     line-height: 1.55;
     overflow-x: hidden;
     min-height: 100vh;
 }

 a {
     text-decoration: none;
     color: inherit
 }

 button {
     font: inherit;
     cursor: pointer
 }

 img,
 svg {
     max-width: 100%
 }

 button:focus-visible,
 a:focus-visible {
     outline: 3px solid rgba(245, 181, 68, .45);
     outline-offset: 2px
 }

 .container {
     width: var(--container);
     margin: auto
 }

 /* ============ NAVBAR ============ */
 .navbar {
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     z-index: 1000;
     height: 76px;
     display: flex;
     align-items: center;
     background: rgba(7, 17, 31, .82);
     backdrop-filter: blur(18px);
     border-bottom: 1px solid rgba(255, 255, 255, .07);
     transition: .35s var(--ease)
 }

 .navbar.scrolled {
     height: 68px;
     background: rgba(7, 17, 31, .96);
     box-shadow: 0 12px 35px rgba(0, 0, 0, .18)
 }

 .nav-inner {
     width: min(1240px, calc(100% - 34px));
     margin: auto;
     display: flex;
     align-items: center;
     gap: 20px
 }

 .brand {
     display: flex;
     align-items: center;
     gap: 11px;
     color: #fff;
     white-space: nowrap
 }

 .brand-mark {
     width: 38px;
     height: 38px;
     border-radius: 12px;
     display: grid;
     place-items: center;
     background: linear-gradient(145deg, var(--gold), #d88916);
     color: #07111f;
     box-shadow: 0 8px 25px rgba(245, 181, 68, .2)
 }

 .brand strong {
     font: 800 20px Manrope, sans-serif;
     letter-spacing: -.04em
 }

 .brand small {
     display: block;
     color: #a9b4c5;
     font-size: 9px;
     letter-spacing: .18em;
     text-transform: uppercase;
     margin-top: -2px
 }

 .nav-actions {
     margin-left: auto;
     display: flex;
     align-items: center;
     gap: 10px
 }

 .nav-back {
     padding: 11px 15px;
     border-radius: 12px;
     font-size: 13px;
     font-weight: 800;
     color: #cbd4df;
     background: rgba(255, 255, 255, .06);
     border: 1px solid rgba(255, 255, 255, .1);
     display: inline-flex;
     align-items: center;
     gap: 8px;
     transition: .25s var(--ease)
 }

 .nav-back:hover {
     background: rgba(255, 255, 255, .12);
     color: #fff;
     transform: translateY(-1px)
 }

 .nav-cta {
     padding: 11px 16px;
     border-radius: 12px;
     font-size: 13px;
     font-weight: 800;
     background: var(--gold);
     color: #111;
     display: inline-flex;
     align-items: center;
     gap: 8px;
     box-shadow: 0 10px 25px rgba(245, 181, 68, .18);
     transition: .25s var(--ease)
 }

 .nav-cta:hover {
     background: var(--gold-2);
     transform: translateY(-1px)
 }

 /* ============ REGISTER PAGE WRAP ============ */
 .register-wrap {
     min-height: 100vh;
     padding: 130px 20px 60px;
     background:
         radial-gradient(circle at 78% 22%, rgba(55, 213, 233, .13), transparent 30%),
         radial-gradient(circle at 18% 85%, rgba(245, 181, 68, .10), transparent 28%),
         linear-gradient(135deg, #06101d 0%, #0a1729 52%, #08111e 100%);
     position: relative;
     overflow: hidden;
 }

 .register-wrap:before {
     content: "";
     position: absolute;
     inset: 0;
     background-image: linear-gradient(rgba(255, 255, 255, .028) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .028) 1px, transparent 1px);
     background-size: 55px 55px;
     mask-image: linear-gradient(to bottom, #000, transparent 92%);
     pointer-events: none;
 }

 .orb {
     position: absolute;
     border-radius: 50%;
     filter: blur(2px);
     pointer-events: none
 }

 .orb.one {
     width: 300px;
     height: 300px;
     right: -100px;
     top: 120px;
     background: rgba(55, 213, 233, .08);
     animation: float 8s ease-in-out infinite
 }

 .orb.two {
     width: 240px;
     height: 240px;
     left: -90px;
     bottom: 40px;
     background: rgba(245, 181, 68, .07);
     animation: float 10s ease-in-out infinite reverse
 }

 @keyframes float {

     0%,
     100% {
         transform: translateY(0)
     }

     50% {
         transform: translateY(-18px)
     }
 }

 @keyframes fadeIn {
     from {
         opacity: 0;
         transform: translateY(20px)
     }

     to {
         opacity: 1;
         transform: translateY(0)
     }
 }

 @keyframes pulse {
     0% {
         box-shadow: 0 0 0 0 rgba(33, 201, 138, .35)
     }

     70% {
         box-shadow: 0 0 0 9px rgba(33, 201, 138, 0)
     }

     100% {
         box-shadow: 0 0 0 0 rgba(33, 201, 138, 0)
     }
 }

 /* ============ HEADER ============ */
 .register-header {
     position: relative;
     z-index: 2;
     text-align: center;
     max-width: 780px;
     margin: 0 auto 55px;
     color: #fff;
 }

 .register-header .eyebrow {
     display: inline-flex;
     align-items: center;
     gap: 9px;
     padding: 8px 14px;
     border-radius: 999px;
     background: rgba(245, 181, 68, .09);
     border: 1px solid rgba(245, 181, 68, .22);
     color: var(--gold-2);
     font-size: 11px;
     font-weight: 900;
     letter-spacing: .1em;
     text-transform: uppercase;
     margin-bottom: 22px;
 }

 .pulse-dot {
     width: 7px;
     height: 7px;
     border-radius: 50%;
     background: var(--green);
     box-shadow: 0 0 0 6px rgba(33, 201, 138, .1);
     animation: pulse 2s infinite;
 }

 .register-header h1 {
     font: 800 clamp(34px, 4.6vw, 54px)/1.05 Manrope, sans-serif;
     letter-spacing: -.05em;
     margin-bottom: 18px;
 }

 .register-header h1 .gradient-text {
     background: linear-gradient(100deg, #fff 15%, #ffd978 48%, #6be5f2 90%);
     -webkit-background-clip: text;
     background-clip: text;
     color: transparent;
 }

 .register-header p {
     color: #aeb9c8;
     font-size: 16px;
     line-height: 1.7;
     max-width: 620px;
     margin: 0 auto;
 }

 /* ============ ONBOARDING CARDS GRID ============ */
 .onboard-grid {
     position: relative;
     z-index: 2;
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 22px;
     max-width: 1180px;
     margin: 0 auto;
 }

 /* ============ ONBOARD CARD ============ */
 .onboard-card {
     position: relative;
     background: #fff;
     border-radius: 24px;
     padding: 34px 28px 30px;
     display: flex;
     flex-direction: column;
     overflow: hidden;
     transition: .4s var(--ease);
     border: 2px solid transparent;
     box-shadow: 0 22px 60px rgba(0, 0, 0, .25);
     animation: fadeIn .8s ease-out backwards;
 }

 .onboard-card:nth-child(1) {
     animation-delay: .1s
 }

 .onboard-card:nth-child(2) {
     animation-delay: .2s
 }

 .onboard-card:nth-child(3) {
     animation-delay: .3s
 }

 .onboard-card:before {
     content: "";
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     height: 5px;
     transition: .35s var(--ease);
 }

 .onboard-card.venue:before {
     background: linear-gradient(90deg, #7c3aed, #a78bfa)
 }

 .onboard-card.event:before {
     background: linear-gradient(90deg, var(--gold), #ffd978)
 }

 .onboard-card.catering:before {
     background: linear-gradient(90deg, #10b981, #34d399)
 }

 .onboard-card:hover {
     transform: translateY(-10px);
     box-shadow: 0 35px 80px rgba(0, 0, 0, .35);
 }

 .onboard-card.venue:hover {
     border-color: #7c3aed
 }

 .onboard-card.event:hover {
     border-color: var(--gold)
 }

 .onboard-card.catering:hover {
     border-color: #10b981
 }

 /* Card number badge */
 .card-num {
     position: absolute;
     top: 18px;
     right: 22px;
     font: 900 11px Manrope, sans-serif;
     color: #cbd5e1;
     letter-spacing: .1em;
 }

 /* Icon */
 .onboard-icon {
     width: 66px;
     height: 66px;
     border-radius: 18px;
     display: grid;
     place-items: center;
     font-size: 26px;
     margin-bottom: 22px;
     position: relative;
     transition: .35s var(--ease);
 }

 .onboard-card.venue .onboard-icon {
     background: linear-gradient(135deg, #ede9fe, #ddd6fe);
     color: #6d28d9;
 }

 .onboard-card.event .onboard-icon {
     background: linear-gradient(135deg, #fff7e8, #fde8b8);
     color: #b8860b;
 }

 .onboard-card.catering .onboard-icon {
     background: linear-gradient(135deg, #d1fae5, #a7f3d0);
     color: #047857;
 }

 .onboard-card:hover .onboard-icon {
     transform: scale(1.08) rotate(-4deg);
 }

 /* Card title & desc */
 .onboard-card h3 {
     font: 800 22px Manrope, sans-serif;
     letter-spacing: -.03em;
     color: var(--ink);
     margin-bottom: 10px;
 }

 .onboard-card>p {
     color: var(--muted);
     font-size: 13.5px;
     line-height: 1.6;
     margin-bottom: 22px;
     min-height: 44px;
 }

 /* Features list */
 .onboard-features {
     list-style: none;
     display: grid;
     gap: 10px;
     padding: 18px 0;
     border-top: 1px solid var(--line);
     border-bottom: 1px solid var(--line);
     margin-bottom: 24px;
     flex: 1;
 }

 .onboard-features li {
     display: flex;
     align-items: flex-start;
     gap: 9px;
     font-size: 12.5px;
     color: #475569;
     font-weight: 600;
     line-height: 1.45;
 }

 .onboard-features li i {
     flex: 0 0 auto;
     margin-top: 3px;
     font-size: 11px;
 }

 .onboard-card.venue .onboard-features li i {
     color: #7c3aed
 }

 .onboard-card.event .onboard-features li i {
     color: #b8860b
 }

 .onboard-card.catering .onboard-features li i {
     color: #047857
 }

 /* Card CTA button */
 .onboard-cta {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 9px;
     padding: 14px 20px;
     border-radius: 13px;
     font-size: 13.5px;
     font-weight: 900;
     letter-spacing: .02em;
     color: #fff;
     border: 0;
     cursor: pointer;
     transition: .3s var(--ease);
     width: 100%;
     margin-top: auto;
 }

 .onboard-card.venue .onboard-cta {
     background: linear-gradient(135deg, #7c3aed, #6d28d9);
     box-shadow: 0 12px 30px rgba(124, 58, 237, .3);
 }

 .onboard-card.event .onboard-cta {
     background: linear-gradient(135deg, var(--gold), #e09f1f);
     color: #111;
     box-shadow: 0 12px 30px rgba(245, 181, 68, .3);
 }

 .onboard-card.catering .onboard-cta {
     background: linear-gradient(135deg, #10b981, #059669);
     box-shadow: 0 12px 30px rgba(16, 185, 129, .3);
 }

 .onboard-cta:hover {
     transform: translateY(-3px);
 }

 .onboard-card.venue .onboard-cta:hover {
     box-shadow: 0 18px 40px rgba(124, 58, 237, .4)
 }

 .onboard-card.event .onboard-cta:hover {
     box-shadow: 0 18px 40px rgba(245, 181, 68, .4)
 }

 .onboard-card.catering .onboard-cta:hover {
     box-shadow: 0 18px 40px rgba(16, 185, 129, .4)
 }

 .onboard-cta i {
     font-size: 12px;
     transition: .3s
 }

 .onboard-cta:hover i {
     transform: translateX(4px)
 }

 /* Card hover glow */
 .onboard-card:after {
     content: "";
     position: absolute;
     width: 200px;
     height: 200px;
     border-radius: 50%;
     right: -80px;
     bottom: -100px;
     opacity: 0;
     transition: .5s var(--ease);
     pointer-events: none;
 }

 .onboard-card.venue:after {
     background: radial-gradient(circle, rgba(124, 58, 237, .18), transparent 70%)
 }

 .onboard-card.event:after {
     background: radial-gradient(circle, rgba(245, 181, 68, .18), transparent 70%)
 }

 .onboard-card.catering:after {
     background: radial-gradient(circle, rgba(16, 185, 129, .18), transparent 70%)
 }

 .onboard-card:hover:after {
     opacity: 1;
     transform: scale(1.3)
 }

 /* ============ LOGIN LINK BELOW ============ */
 .login-link-wrap {
     position: relative;
     z-index: 2;
     text-align: center;
     margin: 50px auto 0;
     padding: 24px 26px;
     max-width: 560px;
     background: rgba(255, 255, 255, .04);
     border: 1px solid rgba(255, 255, 255, .1);
     border-radius: 20px;
     backdrop-filter: blur(10px);
 }

 .login-link-wrap p {
     color: #aeb9c8;
     font-size: 13.5px;
     margin-bottom: 12px;
 }

 .login-link-wrap strong {
     color: #fff;
     font-weight: 800
 }

 .login-link-btn {
     display: inline-flex;
     align-items: center;
     gap: 9px;
     padding: 12px 22px;
     background: var(--gold);
     color: #111;
     border-radius: 12px;
     font-size: 13.5px;
     font-weight: 900;
     box-shadow: 0 12px 30px rgba(245, 181, 68, .28);
     transition: .25s var(--ease);
 }

 .login-link-btn:hover {
     background: var(--gold-2);
     transform: translateY(-2px);
     box-shadow: 0 16px 40px rgba(245, 181, 68, .36);
 }

 /* ============ FOOTER STRIP ============ */
 .register-footer {
     position: relative;
     z-index: 2;
     text-align: center;
     margin-top: 50px;
     color: #6b7a8d;
     font-size: 11px;
 }

 .register-footer a {
     color: #9aa9bc
 }

 .register-footer a:hover {
     color: #fff
 }

 /* ============ RESPONSIVE ============ */
 @media(max-width:1000px) {
     .onboard-grid {
         grid-template-columns: 1fr 1fr;
         gap: 20px;
     }

     .onboard-card:last-child {
         grid-column: 1/-1;
         max-width: 480px;
         margin: 0 auto;
         width: 100%;
     }
 }

 @media(max-width:720px) {
     .navbar {
         height: 66px
     }

     .brand small {
         display: none
     }

     .nav-back span {
         display: none
     }

     .nav-back {
         padding: 9px 11px
     }

     .nav-cta span {
         display: none
     }

     .nav-cta {
         padding: 9px 12px
     }

     .register-wrap {
         padding: 100px 16px 40px
     }

     .register-header {
         margin-bottom: 38px
     }

     .register-header h1 {
         font-size: clamp(30px, 8vw, 40px)
     }

     .register-header p {
         font-size: 14.5px
     }

     .onboard-grid {
         grid-template-columns: 1fr;
         gap: 18px;
     }

     .onboard-card:last-child {
         max-width: 100%;
     }

     .onboard-card {
         padding: 28px 22px 24px
     }

     .onboard-card h3 {
         font-size: 20px
     }

     .onboard-icon {
         width: 58px;
         height: 58px;
         font-size: 23px;
         margin-bottom: 18px
     }

     .onboard-features {
         padding: 14px 0;
         margin-bottom: 20px
     }

     .onboard-cta {
         padding: 13px 18px;
         font-size: 13px
     }
 }

 @media(max-width:420px) {
     .register-wrap {
         padding: 94px 12px 36px
     }

     .brand strong {
         font-size: 17px
     }

     .brand-mark {
         width: 34px;
         height: 34px
     }

     .onboard-card {
         padding: 24px 18px 20px;
         border-radius: 20px
     }

     .onboard-card h3 {
         font-size: 18.5px
     }

     .onboard-card>p {
         font-size: 13px
     }

     .onboard-features li {
         font-size: 12px
     }

     .login-link-wrap {
         padding: 20px 18px;
         border-radius: 16px
     }
 }

 @media(prefers-reduced-motion:reduce) {

     *,
     *:before,
     *:after {
         animation-duration: .01ms !important;
         transition-duration: .01ms !important
     }
 }