
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --cream:      #F6F0E5;
      --parchment:  #EDE3CF;
      --amber:      #93591C;
      --brown:      #6B4928;
      --dark:       #1E1109;
      --ink:        #3A250E;
      --warm-white: #FBF7F0;
      --muted:      #8A6A4A;
      --red:        #8B2222;
      --red-lt:     #F8EBEB;
    }

    html { scroll-behavior: smooth; }
    body {
      font-family: 'Jost', sans-serif;
      background: var(--cream);
      color: var(--ink);
      min-height: 100vh;
      display: flex;
      flex-direction: column;
    }

    body::after {
      content: '';
      position: fixed; inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.032'/%3E%3C/svg%3E");
      pointer-events: none; z-index: 9999;
    }

    nav {
      position: relative;
      display: flex; align-items: center; justify-content: space-between;
      padding: 1.1rem 3.5rem;
      background: rgba(246,240,229,.93);
      backdrop-filter: blur(16px);
      border-bottom: 1px solid rgba(147,89,28,.13);
      z-index: 500;
    }
    .nav-logo {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.35rem; font-weight: 600;
      color: var(--brown); letter-spacing: .03em; text-decoration: none;
    }
    .nav-logo span { color: var(--amber); }
    .nav-link {
      font-size: .76rem; font-weight: 400;
      letter-spacing: .1em; text-transform: uppercase;
      color: var(--muted); text-decoration: none; transition: color .2s;
    }
    .nav-link:hover { color: var(--brown); }
    .nav-links { display: flex; align-items: center; gap: 1.25rem; }
    .nav-links .nav-link.hidden { display: none !important; }

    main {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 3rem 1.5rem 4rem;
      position: relative;
      z-index: 1;
    }

    .auth-card {
      width: 100%;
      max-width: 420px;
      background: rgba(255,255,255,.72);
      border: 1.5px solid rgba(147,89,28,.28);
      border-radius: 2px;
      padding: 2.5rem 2.25rem;
      box-shadow: 0 12px 40px rgba(30,17,9,.06);
    }

    .auth-eyebrow {
      font-size: .7rem; letter-spacing: .22em; text-transform: uppercase;
      color: var(--amber); font-weight: 500; margin-bottom: .75rem;
    }
    .auth-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: 2rem; font-weight: 400; color: var(--dark);
      line-height: 1.15; margin-bottom: .5rem;
    }
    .auth-sub {
      font-size: .92rem; font-weight: 300; color: var(--muted);
      line-height: 1.6; margin-bottom: 1.75rem;
    }

    label {
      display: block;
      font-size: .72rem; font-weight: 500;
      letter-spacing: .08em; text-transform: uppercase;
      color: var(--brown); margin-bottom: .45rem;
    }
    .field { margin-bottom: 1.15rem; }
    .field input {
      width: 100%;
      padding: .88rem 1.1rem;
      border: 1.5px solid rgba(147,89,28,.28); border-radius: 2px;
      background: rgba(255,255,255,.85);
      font-family: 'Jost', sans-serif; font-size: .95rem; color: var(--ink);
      outline: none; transition: border-color .2s, box-shadow .2s;
    }
    .field input::placeholder { color: var(--muted); opacity: .6; }
    .field input:focus {
      border-color: var(--amber);
      background: rgba(255,255,255,.92);
      box-shadow: 0 0 0 3px rgba(147,89,28,.1);
    }

    .btn-submit {
      width: 100%;
      margin-top: .5rem;
      padding: .88rem 1.5rem;
      background: var(--amber); color: var(--warm-white);
      border: none; cursor: pointer;
      font-family: 'Jost', sans-serif;
      font-size: .82rem; font-weight: 500;
      letter-spacing: .12em; text-transform: uppercase;
      border-radius: 2px;
      transition: background .2s, transform .15s;
    }
    .btn-submit:hover:not(:disabled) { background: var(--brown); transform: translateY(-1px); }
    .btn-submit:disabled { opacity: .55; cursor: not-allowed; transform: none; }

    .msg-error {
      display: none;
      font-size: .88rem;
      color: var(--red);
      background: var(--red-lt);
      border: 1px solid rgba(139,34,34,.2);
      border-radius: 2px;
      padding: .65rem .85rem;
      margin-bottom: 1rem;
      line-height: 1.45;
    }
    .msg-error.visible { display: block; }

    .auth-footer {
      margin-top: 1.5rem;
      text-align: center;
      font-size: .88rem;
      color: var(--muted);
    }
    .auth-footer a {
      color: var(--amber);
      text-decoration: none;
      font-weight: 500;
    }
    .auth-footer a:hover { text-decoration: underline; }

    .auth-forgot {
      margin-top: 1rem;
      text-align: center;
      font-size: .88rem;
    }
    .auth-forgot a {
      color: var(--amber);
      text-decoration: none;
      font-weight: 500;
    }
    .auth-forgot a:hover { text-decoration: underline; }

    .nav-actions {
      display: flex;
      align-items: center;
      gap: 1rem;
    }
    .lang-toggle {
      display: flex;
      background: rgba(147,89,28,.1);
      border: 1px solid rgba(147,89,28,.22);
      border-radius: 3px;
      overflow: hidden;
    }
    .lang-btn {
      padding: .35rem .75rem;
      border: none;
      cursor: pointer;
      font-family: 'Jost', sans-serif;
      font-size: .72rem;
      font-weight: 500;
      letter-spacing: .1em;
      background: transparent;
      color: var(--muted);
      transition: all .15s;
    }
    .lang-btn.active { background: var(--amber); color: white; }
    .lang-btn:not(.active):hover { background: rgba(147,89,28,.15); color: var(--brown); }

    @media (max-width: 900px) {
      nav { padding: 1rem 1.5rem; }
    }

    .form-panel.hidden { display: none !important; }
    .success-panel.hidden { display: none !important; }

    .msg-success {
      margin-top: 2rem;
      font-size: .88rem;
      color: var(--brown);
      background: rgba(147,89,28,.1);
      border: 1px solid rgba(147,89,28,.25);
      border-radius: 2px;
      padding: .65rem .85rem;
      line-height: 1.45;
    }
  