.site_footer_inner { display:none!important; }
.site_footer { display:none!important; margin:0!important; }
.kmclub-sidebar { display:none!important; }
.kmclub-mobile-topbar { display:none!important; }
.kmclub-main-area { width:100%!important; min-height:100vh!important; margin:0!important; padding:0!important; }
* { box-sizing:border-box; }
html,body { min-height:100%; margin:0; }
body { color:#20212a; background:#f7f6fb; font-family:"Pretendard","Noto Sans KR",Arial,sans-serif; }
body.is-signup-modal-open { overflow:hidden; }
.signup-page { display:flex; width:100%; min-height:100vh; padding:32px; align-items:center; justify-content:center; background:#f7f6fb; }
.signup-shell { display:grid; width:100%; max-width:1160px; min-height:720px; grid-template-columns:44% 56%; overflow:hidden; background:#fff; border:1px solid #e6e2eb; border-radius:18px; }
.signup-intro { position:relative; display:flex; min-width:0; padding:58px 52px; flex-direction:column; justify-content:center; overflow:hidden; background:#f0edff; }
.signup-intro-copy { position:relative; z-index:2; }
.signup-intro-label { display:flex; margin:0 0 17px; align-items:center; gap:8px; color:#ee4d2d; font-size:15px; font-weight:850; letter-spacing:.08em; }
.signup-intro h2 { margin:0; color:#20212a; font-size:36px; font-weight:850; line-height:1.3; letter-spacing:-.05em; }
.signup-intro h2 strong { color:#7766ee; font-weight:850; }
.signup-intro-desc { max-width:390px; margin:17px 0 0; color:#686b78; font-size:14px; line-height:1.75; letter-spacing:-.02em; }
.signup-flow { position:relative; z-index:2; display:flex; width:calc(100% + 32px); min-height:270px; margin-top:32px; margin-left:-16px; padding:32px 30px; flex-direction:column; justify-content:center; background:rgba(255,255,255,.72); border:1px solid rgba(119,102,238,.16); border-radius:18px; }
.signup-flow-title { margin:0 0 25px; color:#292c35; font-size:16px; font-weight:850; }
.signup-flow-row { position:relative; display:flex; min-height:55px; padding-bottom:20px; align-items:flex-start; gap:15px; }
.signup-flow-row:last-child { min-height:auto; padding-bottom:0; }
.signup-flow-row:not(:last-child)::before { content:""; position:absolute; top:33px; left:16px; width:1px; height:31px; background:#c9c1ef; }
.signup-flow-number { display:inline-flex; width:33px; height:33px; flex:0 0 33px; align-items:center; justify-content:center; color:#fff; background:#7766ee; border-radius:9px; font-size:13px; font-weight:850; }
.signup-flow-copy { padding-top:1px; }
.signup-flow-copy strong { display:block; color:#292c35; font-size:16px; font-weight:800; line-height:1.4; }
.signup-flow-copy span { display:block; margin-top:5px; color:#737684; font-size:12px; line-height:1.55; }
.signup-content { display:flex; min-width:0; padding:44px 58px; align-items:center; justify-content:center; background:#fff; }
.signup-box { width:100%; max-width:500px; }
.signup-head { margin-bottom:27px; }
.signup-head h1 { margin:0; color:#20212a; font-size:30px; font-weight:850; line-height:1.25; letter-spacing:-.05em; }
.signup-head p { margin:9px 0 0; color:#8d909e; font-size:14px; line-height:1.55; }
.signup-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 12px; }
.signup-field { min-width:0; }
.signup-field.is-wide { grid-column:1/-1; }
.signup-field label {  margin-bottom:7px; color:#4f5260; font-size:13px; font-weight:750; display: flex}
.signup-input-wrap { position:relative; }
.signup-input-icon { position:absolute; top:23px; left:14px; color:#9b9ca5; font-size:14px; transform:translateY(-50%); pointer-events:none; }
.signup-input { width:100%; height:46px; padding:0 13px 0 40px; color:#20212a; background:#fff; border:1px solid #ddd9e4; border-radius:8px; outline:none; font-size:14px; }
.signup-input-no-icon { padding-left:13px; }
.signup-input::placeholder { color:#b1b2b9; }
.signup-input:focus { border-color:#7766ee; box-shadow:0 0 0 3px rgba(119,102,238,.09); }
.signup-help { display:block; min-height:16px; margin-top:5px; color:#989aa5; font-size:13px; line-height:1.45; }
.signup-error { display:none; margin-top:5px; color:#e5484d; font-size:11px; }
.signup-error.is-visible { display:block; }
#signUpUserIdMessage.is-success { color:#2e9b61; }
#signUpUserIdMessage.is-error { color:#e5484d; }
.signup-terms { margin-top:22px; padding:14px 15px; background:#faf9fc; border:1px solid #ebe8f0; border-radius:10px; }
.signup-term-row { display:flex; min-height:34px; align-items:center; justify-content:space-between; gap:14px; }
.signup-check { display:inline-flex; align-items:center; gap:8px; color:#565966; font-size:13px; cursor:pointer; }
.signup-check input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.signup-check-box { position:relative; display:inline-flex; width:18px; height:18px; flex:0 0 18px; align-items:center; justify-content:center; background:#fff; border:1px solid #d4d1dc; border-radius:5px; }
.signup-check input:checked+.signup-check-box { background:#7766ee; border-color:#7766ee; }
.signup-check input:checked+.signup-check-box::after { content:""; width:5px; height:9px; margin-top:-2px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(45deg); }
.signup-required { color:#7766ee; font-size:11px; font-weight:800; }
.signup-view-link { color:#777986; font-size:11px; font-weight:650; text-decoration:none; }
.signup-view-link:hover { color:#7766ee; }
.signup-submit { width:100%; height:48px; margin-top:20px; color:#fff; background:#7766ee; border:1px solid #7766ee; border-radius:8px; font-size:14px; font-weight:800; cursor:pointer; }
.signup-submit:hover { background:#6554df; border-color:#6554df; }
.signup-submit:disabled { color:#aaa8b4; background:#ecebf0; border-color:#ecebf0; cursor:not-allowed; }
.signup-login-link { margin:18px 0 0; color:#8d909e; font-size:12px; text-align:center; }
.signup-login-link a { margin-left:5px; color:#7766ee; font-weight:750; text-decoration:none; }
.signup-footer { margin-top:20px; color:#aaa8b2; font-size:12px; text-align:center; }
.signup-result-modal { position:fixed; z-index:9999; inset:0; display:flex; padding:24px; align-items:center; justify-content:center; background:rgba(32,33,42,.56); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .2s ease,visibility .2s ease; }
.signup-result-modal.is-visible { opacity:1; visibility:visible; pointer-events:auto; }
.signup-result-card { position:relative; width:100%; max-width:430px; padding:38px 34px 32px; overflow:hidden; background:#fff; border:1px solid #ebe8f0; border-radius:18px; box-shadow:0 24px 70px rgba(32,33,42,.2); text-align:center; transform:translateY(12px) scale(.96); transition:transform .25s cubic-bezier(.2,.8,.2,1); }
.signup-result-modal.is-visible .signup-result-card { transform:translateY(0) scale(1); }
.signup-result-icon { position:relative; z-index:2; display:flex; width:68px; height:68px; margin:0 auto 20px; align-items:center; justify-content:center; color:#7766ee; background:#f2efff; border:1px solid #ddd7ff; border-radius:50%; font-size:27px; }
.signup-result-modal.is-success .signup-result-icon { animation:signupSuccessPop .55s cubic-bezier(.2,.9,.3,1.35); }
.signup-result-modal.is-error .signup-result-icon { color:#ef4661; background:#fff1f3; border-color:#ffd6dc; }
.signup-result-card h2 { position:relative; z-index:2; margin:0; color:#20212a; font-size:22px; font-weight:800; line-height:1.4; letter-spacing:-.04em; }
.signup-result-card p { position:relative; z-index:2; margin:10px auto 0; color:#777a87; font-size:14px; line-height:1.65; word-break:keep-all; }
.signup-result-button { position:relative; z-index:2; width:100%; height:46px; margin-top:26px; color:#fff; background:#7766ee; border:1px solid #7766ee; border-radius:8px; font-size:14px; font-weight:750; cursor:pointer; }
.signup-result-button:hover { background:#6554df; border-color:#6554df; }
.signup-result-button:focus-visible { outline:3px solid rgba(119,102,238,.2); outline-offset:2px; }
.signup-result-modal.is-error .signup-result-button { color:#555a66; background:#fff; border-color:#dedfe5; }
.signup-result-modal.is-error .signup-result-button:hover { color:#3f434d; background:#f8f7fb; border-color:#c9c6d0; }
.signup-confetti { position:absolute; z-index:1; inset:0; overflow:hidden; pointer-events:none; }
.signup-confetti-piece { position:absolute; top:65px; left:50%; width:7px; height:13px; background:var(--confetti-color); border-radius:2px; opacity:0; animation:signupConfettiBurst 1.45s cubic-bezier(.16,.75,.3,1) var(--confetti-delay) forwards; }
@keyframes signupSuccessPop { 0% { opacity:0; transform:scale(.55) rotate(-12deg); } 65% { opacity:1; transform:scale(1.12) rotate(3deg); } 100% { opacity:1; transform:scale(1) rotate(0); } }
@keyframes signupConfettiBurst { 0% { opacity:0; transform:translate(-50%,0) scale(.4) rotate(0); } 12% { opacity:1; } 45% { opacity:1; transform:translate(calc(-50% + var(--confetti-mid-x)),var(--confetti-mid-y)) scale(1) rotate(var(--confetti-mid-rotate)); } 100% { opacity:0; transform:translate(calc(-50% + var(--confetti-x)),var(--confetti-y)) scale(.85) rotate(var(--confetti-rotate)); } }
@media(max-width:940px) { .signup-page { padding:20px; } .signup-shell { max-width:620px; grid-template-columns:1fr; } .signup-intro { display:none; } .signup-content { min-height:720px; padding:42px; } }
@media(max-width:620px) { .signup-page { padding:0; background:#fff; } .signup-shell { min-height:100vh; border:0; border-radius:0; } .signup-content { min-height:100vh; padding:38px 20px 58px; align-items:flex-start; } .signup-form-grid { grid-template-columns:1fr; } .signup-field.is-wide { grid-column:auto; } .signup-box { margin-top:18px; } .signup-result-modal { padding:20px; } .signup-result-card { max-width:380px; padding:34px 24px 26px; border-radius:16px; } .signup-result-card h2 { font-size:20px; } }
@media(prefers-reduced-motion:reduce) { .signup-result-modal,.signup-result-card { transition:none; } .signup-result-modal.is-success .signup-result-icon,.signup-confetti-piece { animation:none; } }
