:root{color-scheme:dark;--background:#101820;--surface:#182735;--surface-soft:#13212c;--surface-hover:#1d3040;--border:#293b48;--text:#eee;--muted:#9fb0bd;--accent:#4d7185;--danger:#ff7777}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:var(--background);color:var(--text);font-family:Arial,sans-serif}
a{color:inherit}
.portal,.centered-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 14px}
.portal-wrap{width:min(900px,100%)}
.portal-hero{margin-bottom:26px;text-align:center}.portal-hero h1{margin:4px 0 10px;font-size:clamp(32px,5vw,48px)}.portal-hero p{margin:0;color:var(--muted);font-size:17px}
.eyebrow{margin:0 0 8px;color:var(--muted);font-size:12px;font-weight:bold;letter-spacing:.12em;text-transform:uppercase}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.project-card{position:relative;min-height:190px;padding:20px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:16px;text-align:center;text-decoration:none;transition:transform .15s,border-color .15s,background .15s}
.project-card:hover,.project-card:focus-visible{background:var(--surface-hover);border-color:var(--accent);outline:none;transform:translateY(-2px)}
.project-lock{position:absolute;top:12px;right:14px;font-size:15px}.project-icon{margin-bottom:11px;font-size:48px}.project-title{margin-bottom:6px;font-size:18px;font-weight:bold}.project-description{max-width:210px;color:var(--muted);font-size:12px;line-height:1.4}.project-open{margin-top:13px;padding:7px 12px;background:#263b4a;border-radius:7px;font-size:11px;font-weight:bold}
.auth-card,.content-card{width:min(100%,470px);padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 3px 10px rgba(0,0,0,.25)}
.auth-card h1,.content-card h1{margin:4px 0 8px}.auth-card>p:not(.eyebrow),.content-card>p:not(.eyebrow){color:var(--muted)}.auth-icon{margin:20px 0 10px;font-size:54px}.back-link{color:var(--muted);font-size:13px;text-decoration:none}
form{margin:20px 0 0}label{display:block;margin-bottom:7px;color:var(--muted);font-size:13px}input[type=password]{width:100%;padding:13px;color:var(--text);background:var(--surface-soft);border:1px solid var(--border);border-radius:8px;font-size:17px}
button{width:100%;margin-top:12px;padding:12px 15px;color:#fff;background:var(--accent);border:0;border-radius:8px;cursor:pointer;font-weight:bold}
.message{margin-top:16px;padding:11px;background:var(--surface-soft);border-radius:8px;font-size:13px}.message.error{color:var(--danger)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar>a{font-size:20px;font-weight:bold;text-decoration:none}.topbar form{margin:0}.secondary-button{width:auto;margin:0;background:#263b4a;font-size:12px}
.container{width:min(100% - 24px,900px);margin:0 auto;padding:48px 0}.content-card{margin:0 auto;text-align:center}
@media(max-width:650px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-card{min-height:165px;padding:16px 8px}.project-icon{font-size:42px}.project-title{font-size:16px}.project-open{display:none}}
@media(max-width:360px){.project-grid{grid-template-columns:1fr}}
