/* login.css - loginページ専用（style.cssを壊さない） */

.login-body {
  margin: 0;
  min-height: 100vh;
  background: #0b0b0f;
  color: #ffffff; /*#111;*/
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans JP", sans-serif;
}

.login-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 420px 1fr;
}

/* ---- Left panel ---- */
.login-panel {
  /*background:#003399;*/
  background:#f97316; /* #f97316;*/
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
  border-right: 1px solid rgba(0,0,0,0.06);
}

.login-brand {
  margin-bottom: 10px;
}

.login-brand__link {
  display: inline-block;
  text-decoration: none;
  color: inherit;
}

.login-brand__name {
  font-size: 40px;
  letter-spacing: 0.06em;
  font-weight: 750;
}

.login-brand__tag {
  margin-top: 4px;
  font-size: 16px;
  font-weight: 550;
  font-style: italic;
  opacity: 0.7;
}

.login-copy {
  margin-top: 8px;
}

.login-title {
  margin: 0;
  font-size: 28px;
  letter-spacing: 0.02em;
  font-weight: bold;
}

.login-subtitle {
  margin: 10px 0 0 0;
  font-size: 13px;
  line-height: 1.7;
  opacity: 0.75;
}

.login-error {
  margin: 0;
  font-size: 13px;
  color: #b00020;
  background: rgba(176, 0, 32, 0.08);
  border: 1px solid rgba(176, 0, 32, 0.25);
  padding: 10px 12px;
  border-radius: 12px;
}

/* ---- form ---- */
.login-form {
  display: grid;
  gap: 12px;
  margin-top: 6px;
}

.login-label {
  display: grid;
  gap: 6px;
}

.login-label__text {
  font-size: 12px;
  opacity: 0.7;
}

.login-input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(0,0,0,0.14);
  border-radius: 14px;
  padding: 12px 12px;
  font-size: 14px;
  outline: none;
  background: #fff;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

.login-input:focus {
  border-color: rgba(60, 90, 255, 0.55);
  box-shadow: 0 0 0 4px rgba(60, 90, 255, 0.12);
}

.login-btn {
  margin-top: 6px;
  border: 0;
  border-radius: 14px;
  padding: 12px 12px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background: #111;
  cursor: pointer;
  transition: transform 120ms ease, opacity 120ms ease;
}

.login-btn:hover {
  opacity: 0.92;
}

.login-btn:active {
  transform: translateY(1px);
}

.login-muted {
  margin: 0;
  font-size: 15px;
  opacity: 0.75;
}

.login-link {
  color: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---- Right hero ---- */
.login-hero {
  position: relative;
  overflow: hidden;
  background: #ffffff; /*
    radial-gradient(900px 500px at 30% 40%, rgba(255,255,255,0.10), transparent 60%),
    radial-gradient(700px 450px at 70% 60%, rgba(255,255,255,0.07), transparent 65%),
    linear-gradient(180deg, #0b0b0f, #121225); */
}

.login-hero__fade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(11,11,15,0.00) 0%, rgba(11,11,15,0.20) 20%, rgba(11,11,15,0.55) 45%, rgba(11,11,15,0.85) 70%, rgba(11,11,15,1.00) 100%);
  pointer-events: none;
}

/* Marquee */
.marquee {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
}

.marquee__track {
  display: flex;
  align-items: center;
  gap: 18px;
  padding-left: 20px;
  animation: marquee-scroll 42s linear infinite;
  will-change: transform;
}

/* images */
.marquee__img {
  height: 220px;
  width: 150px;
  object-fit: cover;
  border-radius: 14px;
  box-shadow:
    0 10px 30px rgba(0,0,0,0.35),
    0 1px 0 rgba(255,255,255,0.08) inset;
  opacity: 0.92;
}

/* fallback text cards */
.marquee__card {
  height: 220px;
  width: 150px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  color: rgba(255,255,255,0.85);
  font-weight: 800;
  letter-spacing: 0.06em;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 10px 30px rgba(0,0,0,0.25);
  user-select: none;
}

@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/*スマホでは本の流れは上側に*/
/* ---- Responsive ---- */
@media (max-width: 980px) {
  .login-shell {
    grid-template-columns: 1fr;
    /* 2段にする：上=hero / 下=panel */
    grid-template-rows: 180px 1fr;
  }
  .login-hero {
    display: block;     /* ★消さない */
    height: 180px;      /* ★これがないと見えにくい */
    overflow: hidden;
    border-bottom: 1px solid rgba(0,0,0,.08);
  }
  .login-panel {
    min-height: auto;   /* 100vh固定を外す（2段構成なので） */
    border-right: none;
  }
  /* heroを上に */
  .login-hero { grid-row: 1; }
  .login-panel { grid-row: 2; }

  .marquee__img{
    height: 120px;          /* ← 表紙の“縦”を基準にする */
    width: auto;            /* ← 横は自動で縦長比率を保つ */
    object-fit: cover;      /* 念のため（効かないケースもあるけど害なし） */
    display: block;
    border-radius: 10px;
    box-shadow: 0 8px 18px rgba(0,0,0,.08);
  }
}

/* accessibility: reduce motion */
@media (prefers-reduced-motion: reduce) {
  .marquee__track {
    animation: none;
  }
}
