:root{
  --ivory:#FAF8F4; --paper:#F3EFE8; --ink:#2B2A26; --ink-soft:#6B6860;
  --sage:#7C9885; --sage-deep:#5B7A64; --coral:#E8A798; --coral-deep:#D98873;
  --taupe:#C7BCA8; --line: rgba(43,42,38,0.10); --shadow: 0 20px 40px -20px rgba(43,42,38,0.22);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--ivory); color:var(--ink); font-family:'Inter',sans-serif; line-height:1.6;}
h1,h2,h3,.display{font-family:'Fraunces',serif; font-weight:500; letter-spacing:-0.01em;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{outline:2px solid var(--sage-deep); outline-offset:3px;}

/* ---- Nav ---- */
nav.mp-nav{position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(250,248,244,0.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
nav.mp-nav .wrap{display:flex; align-items:center; justify-content:space-between; padding:18px 32px;}
.mp-logo{font-family:'Fraunces',serif; font-size:21px; font-weight:600;}
.mp-logo span{color:var(--coral-deep);}
.mp-navlinks{display:flex; align-items:center; gap:26px; font-size:13.5px; color:var(--ink-soft);}
.mp-navlinks a:hover{color:var(--ink);}
.mp-navlinks .divider{width:1px; height:18px; background:var(--line);}
.btn{display:inline-flex; align-items:center; gap:6px; padding:10px 20px; border-radius:100px; font-size:13.5px; font-weight:600; border:none; cursor:pointer; font-family:'Inter',sans-serif; transition:background 0.2s, transform 0.2s;}
.btn-primary{background:var(--ink); color:var(--ivory);}
.btn-primary:hover{background:var(--sage-deep); transform:translateY(-1px);}
.btn-coral{background:var(--coral-deep); color:#fff;}
.btn-coral:hover{background:#c37a67;}
.btn-ghost{background:#fff; border:1px solid var(--line); color:var(--ink);}
.btn-ghost:hover{border-color:var(--ink);}
.btn-lg{padding:14px 30px; font-size:14.5px;}
@media (max-width:820px){ .mp-navlinks{display:none;} }

/* ---- Generic auth card layout ---- */
.auth-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:100px 20px 40px;}
.auth-card{background:#fff; border:1px solid var(--line); border-radius:20px; padding:42px; width:100%; max-width:440px; box-shadow:var(--shadow);}
.auth-card .eyebrow{font-size:11.5px; text-transform:uppercase; letter-spacing:0.1em; color:var(--sage-deep); font-weight:700; margin-bottom:10px;}
.auth-card h1{font-size:26px; margin-bottom:8px;}
.auth-card .sub{color:var(--ink-soft); font-size:13.5px; margin-bottom:26px;}
label{font-size:13px; font-weight:500; display:block; margin-top:14px; margin-bottom:6px;}
label:first-of-type{margin-top:0;}
input, select, textarea{width:100%; padding:12px 14px; border-radius:10px; border:1px solid var(--line); background:var(--paper); font-size:13.5px; font-family:'Inter',sans-serif; color:var(--ink);}
textarea{resize:vertical; min-height:80px;}
.form-row-2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.auth-card button[type=submit]{width:100%; margin-top:22px; padding:13px; border:none; border-radius:100px; background:var(--ink); color:var(--ivory); font-weight:600; font-size:14px; cursor:pointer;}
.auth-card button[type=submit]:hover{background:var(--sage-deep);}
.auth-switch{text-align:center; font-size:13px; color:var(--ink-soft); margin-top:20px;}
.auth-switch a{color:var(--coral-deep); font-weight:600;}
.msg{padding:12px 16px; border-radius:10px; font-size:13.5px; margin-bottom:18px;}
.msg-success{background:#EAF3EC; color:var(--sage-deep);}
.msg-error{background:#FBEAE6; color:#B0533E;}
.msg-info{background:var(--paper); color:var(--ink-soft);}
