:root{--teal:#138e91;--deep:#084d51;--gold:#e0b443;--gold-hi:#f5d879;--ink:#11191c;--paper:#f6f6f2;--line:#3d6462;--mist:#b5ceca}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:radial-gradient(ellipse at 15% 0%,#0f4b4e 0%,transparent 55%),linear-gradient(155deg,#0a3437,#11191c 70%);background-attachment:fixed;color:#e8eee9;font:15px/1.5 'Segoe UI',Arial,sans-serif;min-height:100dvh}
button,input{font:inherit}
button{cursor:pointer}
a{color:var(--gold-hi)}
:focus-visible{outline:3px solid #f4cb54;outline-offset:2px}
.eyebrow{color:#d6b75e;font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase}
.btn{border:0;border-radius:9px;padding:11px 18px;font-weight:800;letter-spacing:.5px}
.btn.gold{background:linear-gradient(110deg,var(--gold-hi),#d8aa3e);color:#111;box-shadow:0 0 16px #f3c85a33}
.btn.gold:hover{box-shadow:0 0 22px #f3c85a66}
.btn.ghost{background:transparent;color:#dbe7e4;border:1px solid var(--line)}
.btn.ghost:hover{border-color:#d6b75e;color:#fff}
.btn:disabled{opacity:.6;cursor:wait}
.logo{background:#f8faf7;border-radius:12px;padding:8px;display:inline-flex}
.logo img{display:block;height:72px;width:auto}

/* Login */
.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px}
.auth-card{width:min(420px,100%);background:#0e2226e6;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 20px 60px #0008}
.auth-card header{text-align:center;margin-bottom:18px}
.auth-card h1{font-size:22px;margin:12px 0 4px;letter-spacing:1px}
.auth-card p{color:var(--mist);margin:0 0 14px;font-size:14px}
.auth-card form{display:grid;gap:12px}
.auth-card label{display:grid;gap:5px;font-size:12px;font-weight:700;letter-spacing:1px;color:#cfe0dc;text-transform:uppercase}
.auth-card input{background:#071517;border:1px solid var(--line);border-radius:8px;color:#fff;padding:10px 12px}
.auth-card input:focus{border-color:var(--gold)}
.auth-card .links{display:flex;justify-content:space-between;gap:10px;margin-top:6px;font-size:13px}
.linkbtn{background:none;border:0;color:var(--gold-hi);padding:0;text-decoration:underline}
.message{display:none;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px}
.message.error{display:block;background:#4a1a1a;border:1px solid #a24a4a;color:#ffd9d9}
.message.success{display:block;background:#123d2c;border:1px solid #3c9a6e;color:#d4f7e4}
.fine{text-align:center;color:#7f9c98;font-size:11px;letter-spacing:1.5px;margin-top:18px}

/* Mission hub */
.hub{max-width:1120px;margin:0 auto;padding:28px 24px 48px}
.hub-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.hub-top .who{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--mist)}
.hub-top .who b{color:#fff}
.hub-hero{margin:34px 0 26px}
.hub-hero h1{font-size:clamp(28px,4vw,42px);margin:6px 0 8px;letter-spacing:1px}
.hub-hero p{color:var(--mist);max-width:640px;margin:0}
.missions{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.mission{position:relative;display:flex;flex-direction:column;gap:10px;height:100%;padding:22px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(160deg,#103236,#0d1c1f);color:inherit;text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s}
.mission:hover,.mission:focus-visible{transform:translateY(-3px);border-color:var(--gold);box-shadow:0 10px 30px #0007,0 0 0 1px #e0b44355}
.mission .num{display:flex;align-items:center;justify-content:space-between;font-weight:900;color:var(--gold);letter-spacing:2px;font-size:12px}
.mission .glyph{font-size:26px;line-height:1}
.mission h2{margin:0;font-size:20px;letter-spacing:.5px}
.mission p{margin:0;color:var(--mist);font-size:14px;flex:1}
.mission .go{font-weight:800;font-size:12px;letter-spacing:1.5px;color:var(--gold-hi)}
.hub-foot{margin-top:36px;color:#7f9c98;font-size:11px;letter-spacing:1.5px;text-align:center}
@media (prefers-reduced-motion:reduce){.mission{transition:none}.mission:hover{transform:none}}
