 :root {
      --bg1: #0f0c29;
      --bg2: #302b63;
      --bg3: #0f9bff;
      --glass: rgba(255, 255, 255, 0.06);
      --accent: #ff6b6b;
      --accent-2: #ffd166;
      --text: #eef2ff;
      --muted: rgba(238, 242, 255, 0.7);
    }

    html,
    body {
      height: 100%;
      margin: 0;
      font-family: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      background: radial-gradient(1200px 600px at 10% 10%, rgba(255, 107, 107, 0.08), transparent 10%),
        radial-gradient(1000px 500px at 90% 80%, rgba(45, 180, 255, 0.06), transparent 10%),
        linear-gradient(135deg, var(--bg1), var(--bg2));
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 40px;
      color: var(--text);
      overflow: hidden;
    }

    /* Subtle animated background shapes */
    .bg-shape {
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 0;
    }

    .orb {
      position: absolute;
      filter: blur(60px);
      opacity: 0.45;
      transform: translate3d(0, 0, 0);
    }

    .orb.orb-1 {
      width: 420px;
      height: 420px;
      left: 6%;
      top: 8%;
      background: linear-gradient(45deg, #ff6b6b, #ffd166);
    }

    .orb.orb-2 {
      width: 380px;
      height: 380px;
      right: 6%;
      bottom: 6%;
      background: linear-gradient(45deg, #00c6ff, #0072ff);
      opacity: 0.35;
    }

    /* Layout */
    .scene {
      position: relative;
      width: 100%;
      max-width: 980px;
      display: grid;
      grid-template-columns: 1fr 420px;
      gap: 36px;
      align-items: center;
      z-index: 2;
      perspective: 1200px;
      /* for 3D tilt */
    }

    /* Left: marketing / illustration */
    .panel {
      padding: 28px;
      border-radius: 20px;
      transform-style: preserve-3d;
      transition: transform 0.25s ease-out;
      color: var(--text);
      min-height: 360px;
      display: flex;
      flex-direction: column;
      gap: 18px;
      justify-content: center;
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.01));
      box-shadow: 0 10px 30px rgba(2, 6, 23, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.02);
      border: 1px solid rgba(255, 255, 255, 0.03);
    }

    .panel h1 {
      margin: 0;
      font-size: 28px;
      letter-spacing: -0.3px;
    }

    .panel p {
      margin: 0;
      color: var(--muted);
      line-height: 1.45;
    }

    /* Right: glass login card */
    .card {
      width: 100%;
      max-width: 350px;
      min-height: 360px;
      margin: auto;
      border-radius: 20px;
      padding: 28px;
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03));
      backdrop-filter: blur(12px) saturate(1.08);
      -webkit-backdrop-filter: blur(12px) saturate(1.08);
      border: 1px solid rgba(255, 255, 255, 0.08);
      box-shadow: 0 8px 40px rgba(2, 6, 23, 0.6);
      transform-style: preserve-3d;
      transition: transform 0.25s ease-out, box-shadow 0.25s ease;
      perspective: 1000px;
      position: relative;
      overflow: visible;
    }

    .card .heading {
      display: flex;
      align-items: center;
      gap: 15px;
      margin-bottom: 30px;
    }

    .logo {
      width: 54px;
      height: 54px;
      border-radius: 12px;
      background: linear-gradient(135deg, var(--accent), #ff9a9a);
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 6px 18px rgba(255, 107, 107, 0.14);
      transform: translateZ(40px);
    }

    .logo svg {
      width: 28px;
      height: 28px;
      filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.25));
    }

    .heading h3 {
      margin: 0;
      font-size: 20px;
    }

    .heading p {
      margin: 0;
      color: var(--muted);
      font-size: 13px;
    }

    form {
      display: flex;
      flex-direction: column;
      gap: 25px;
      transform: translateZ(40px);
    }

    /* Floating label input */
    .field {
      position: relative;
      /* bottom: 10px; */
      
    }

    input[type="text"],
    input[type="password"] {
      width: 100%;
      padding: 16px 1px 16px 10px;
      border-radius: 12px;
      border: 1px solid rgba(255, 255, 255, 0.06);
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.01));
      color: var(--text);
      font-size: 15px;
      outline: none;
      transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
      transform: translateZ(0);
    }

    input::placeholder {
      color: transparent;
    }

    /* using floating label */
    label.floating {
      position: absolute;
      left: 14px;
      top: 50%;
      transform: translateY(-70%);
      pointer-events: none;
      transition: all .18s ease;
      background: transparent;
      /* padding: 0 6px; */
      color: var(--muted);
      font-size: 13px;
    }

    .field input:focus,
    .field input:not(:placeholder-shown) {
      border-color: rgba(255, 255, 255, 0.16);
      box-shadow: 0 8px 30px rgba(2, 6, 23, 0.45), 0 0 0 6px rgba(255, 107, 107, 0.04);
    }

    .field input:focus+label.floating,
    .field input:not(:placeholder-shown)+label.floating {
      top: -15px;
      /* padding-bottom: 10px; */
      transform: translateY(0);
      font-size: 11px;
      color: var(--accent-2);
      letter-spacing: 0.2px;
    }

    /* Submit area */
    .submit-wrap {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-top: 6px;
    }

    .submit-btn {
      flex: 1;
      position: relative;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      padding: 14px 18px;
      border-radius: 999px;
      border: none;
      cursor: pointer;
      font-weight: 600;
      font-size: 15px;
      color: #06203a;
      background: linear-gradient(90deg, var(--accent), #ff9a9a);
      box-shadow: 0 8px 30px rgba(255, 107, 107, 0.12), 0 2px 8px rgba(0, 0, 0, 0.25);
      overflow: visible;
      transform: translateZ(60px);
      transition: transform .22s cubic-bezier(.2, .9, .3, 1), box-shadow .22s;
    }

    .submit-btn:active {
      transform: translateY(1px) translateZ(60px) scale(.997);
    }

    .submit-btn .plane {
      width: 40px;
      height: 40px;
      display: inline-block;
      pointer-events: none;
      position: relative;
    }

    .hint {
      font-size: 13px;
      color: var(--muted);
    }

    /* Success toast */
    .toast {
      position: absolute;
      left: 50%;
      transform: translateX(-50%) translateY(-10px);
      top: -18px;
      padding: 10px 14px;
      border-radius: 12px;
      background: linear-gradient(90deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03));
      color: var(--text);
      font-size: 13px;
      border: 1px solid rgba(255, 255, 255, 0.06);
      opacity: 0;
      pointer-events: none;
      transition: all .3s ease;
      transform-origin: center top;
    }

    .toast.show {
      opacity: 1;
      transform: translateX(-50%) translateY(-34px);
      pointer-events: auto;
    }

    /* Decorative SVG path overlay on card */
    .svg-overlay {
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 1;
    }

    /* 3D transform when card is hovered - subtle */
    .card:hover {
      box-shadow: 0 20px 60px rgba(2, 6, 23, 0.7);
      transform: translateY(-6px) rotateX(4deg) translateZ(12px);
    }

    /* Responsive */
    @media (max-width:920px) {
      .scene {
        grid-template-columns: 1fr;
        gap: 18px;
        padding: 12px;
      }

      .panel {
        order: 2;
        padding: 18px;
        border-radius: 14px;
        min-height: 140px;
      }

      .card {
        order: 1;
        max-width: 520px;
      }
    }

    @media (max-width:480px) {
      body {
        padding: 18px;
      }

      .panel h1 {
        font-size: 20px;
      }

      .logo {
        width: 46px;
        height: 46px;
      }

      input {
        padding: 14px;
        font-size: 14px;
      }

      .submit-btn {
        padding: 12px;
        font-size: 14px;
      }
    }