/* Login page — Keystone tone & manner
   토큰은 keystone.css 참조 */

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
    margin: 0;
    background: var(--ks-black);
    font-family: var(--ks-font-body);
    font-size: 16px;
    line-height: 1.15;
    color: var(--ks-fg);
    overflow-x: hidden;
}

.login { display: flex; min-height: 100vh; }

/* ---------- 좌: 브랜드 패널 ---------- */
.login__brand {
    position: relative;
    flex: 1 1 52%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 56px 60px;
    /* keystone 의 90px x 1px 반복 라인 텍스처를 CSS 로 재현 */
    background-image: repeating-linear-gradient(
        to bottom,
        rgba(255, 240, 51, 0.07) 0,
        rgba(255, 240, 51, 0.07) 1px,
        transparent 1px,
        transparent 90px
    );
}

.logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.logo__mark {
    width: 26px; height: 26px;
    background: var(--ks-yellow);
}
.logo__type {
    font-family: var(--ks-font-display);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--ks-white);
}

.headline { margin: 0; font-size: 88px; }
.headline__line { display: block; overflow: hidden; }
.headline__sub {
    margin: 34px 0 0;
    max-width: 34ch;
    font-size: 15px;
    font-weight: 300;
    line-height: 1.9;
    color: var(--ks-fg-muted);
    word-break: keep-all;   /* 한글 어절 단위 줄바꿈 */
}
.headline__rule {
    display: block;
    width: 96px; height: 3px;
    margin-top: 40px;
    background: var(--ks-yellow);
    transform-origin: left center;
    animation: rule-in 1s var(--ks-ease) 0.9s both;
}
@keyframes rule-in { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.brand__meta {
    display: flex;
    gap: 40px;
    font-family: var(--ks-font-display);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #4a4a4a;
}

/* ---------- 우: 폼 패널 ---------- */
.login__form-wrap {
    position: relative;
    flex: 1 1 48%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 56px 60px;
    background: var(--ks-black);
}
.login__form { position: relative; width: 100%; max-width: 380px; }

.form__eyebrow {
    font-family: var(--ks-font-display);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--ks-yellow);
}
.form__title {
    margin: 18px 0 54px;
    font-size: 50px;
}

.form__group + .form__group { margin-top: 37px; }
.form__group .ks-label {
    margin-bottom: 10px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.form__group .ks-input { height: 53px; font-size: 20px; line-height: 53px; }

.form__actions { margin-top: 56px; }
.ks-btn {
    height: 66px;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
}
.ks-btn .arrow {
    display: inline-block;
    margin-left: 10px;
    transition: transform 0.4s var(--ks-ease);
}
.ks-btn:hover .arrow { transform: translateX(8px); }

.form__foot {
    margin-top: 28px;
    font-family: var(--ks-font-display);
    font-size: 12px;
    letter-spacing: 1px;
    color: #6a6a95;
    word-break: keep-all;
}

/* ---------- 알림 ---------- */
.notice {
    margin-bottom: 34px;
    padding: 16px 18px;
    border-left: 2px solid var(--ks-yellow);
    background: rgba(255, 240, 51, 0.06);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.6;
    color: var(--ks-yellow);
}
.notice--error {
    border-left-color: var(--ks-danger);
    background: rgba(255, 77, 77, 0.08);
    color: var(--ks-danger);
}
.notice__key {
    display: block;
    margin-bottom: 5px;
    font-family: var(--ks-font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    opacity: 0.75;
}

/* ---------- 반응형 ---------- */
@media (max-width: 1180px) {
    .headline { font-size: 66px; }
    .login__brand, .login__form-wrap { padding: 48px 40px; }
}
@media (max-width: 900px) {
    .login { flex-direction: column; }
    .login__brand {
        flex: 0 0 auto;
        gap: 44px;
        padding: 40px 26px 52px;
    }
    .login__form-wrap { flex: 1 1 auto; padding: 52px 26px 64px; }
    .headline { font-size: 46px; }
    .headline__sub { margin-top: 24px; font-size: 14px; }
    .headline__rule { margin-top: 28px; }
    .brand__meta { display: none; }
    .form__title { margin-bottom: 40px; font-size: 34px; }
    .form__group .ks-input { height: 46px; font-size: 17px; line-height: 46px; }
    .ks-btn { height: 58px; font-size: 17px; }
}
