:root{--ink:#f2f2f2;--muted:#b7bcc2;--dim:#8a9096;--bg:#0e0f11;--card:#16181b;--line:#2a2e33;--blue:#19aad1;--yellow:#ffe000}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Roboto,system-ui,sans-serif}
body{min-height:100vh;display:flex;flex-direction:column}
a{color:var(--blue)}a:hover{color:#5fcbe8}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;background:#000;padding:8px 24px;min-height:64px;border-bottom:1px solid #1f2226}
.brand{display:flex;align-items:center;gap:14px}
.logo{display:flex;align-items:center;justify-content:center;background:var(--blue);width:48px;height:48px}
.logo img{width:40px;height:40px;object-fit:contain;display:block}
.name{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:1.5px}
.right{display:flex;align-items:center;gap:16px;font-size:14px;color:#c9cdd2}
.right strong{color:#fff}
.inline{margin:0}
.ghost{color:#c9cdd2;text-decoration:none;font-size:14px}
.ghost:hover{color:#fff}
.btn{background:none;border:1px solid #3a3f45;padding:10px 14px;cursor:pointer;font:inherit;min-height:44px}
.bar{width:48px;height:4px;background:var(--yellow)}
h1{font-family:'Bebas Neue',sans-serif;font-weight:400;letter-spacing:1.5px;line-height:1;margin:16px 0 0}
.sub{margin:8px 0 0;color:var(--muted);font-size:15px;line-height:1.5}
.help{color:#9aa0a6;font-size:14px;margin:0}
.login-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 16px;background-image:linear-gradient(rgba(25,170,209,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(25,170,209,.07) 1px,transparent 1px);background-size:40px 40px}
.card{background:var(--card);border:1px solid var(--line)}
.login{width:100%;max-width:420px;padding:40px 36px;display:flex;flex-direction:column}
.login h1{font-size:48px}
.login label{font-size:13px;font-weight:500;color:#d6d9dd;margin:20px 0 8px}
.login input{height:48px;padding:0 14px;font-size:16px;background:var(--bg);color:var(--ink);border:1px solid #3a3f45;border-radius:0}
.login input:focus{outline:2px solid var(--blue);outline-offset:1px}
.err{color:#ffb4a8;font-size:14px;margin:16px 0 0}
.go{margin:24px 0 16px;height:52px;border:0;background:var(--yellow);color:#000;font-weight:700;font-size:16px;letter-spacing:.5px;cursor:pointer;font-family:inherit}
.go:hover{background:#fff176}
.go:focus-visible,.ev:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.events{flex:1;width:100%;max-width:1160px;margin:0 auto;padding:48px 24px}
.events h1{font-size:56px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin:32px 0}
.ev{display:flex;flex-direction:column;text-decoration:none;color:var(--ink)}
.ev:hover{border-color:var(--blue);color:var(--ink)}
.thumb{height:180px;display:flex;align-items:center;justify-content:center;background-color:#1c2a30;background-image:linear-gradient(rgba(25,170,209,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(25,170,209,.18) 1px,transparent 1px);background-size:24px 24px;background-position:center;color:#8fd3e6;font-size:13px;letter-spacing:1px}
.thumb[style]{background-size:cover}
.body{padding:20px;display:flex;flex-direction:column;gap:6px}
.title{font-family:'Bebas Neue',sans-serif;font-size:30px;letter-spacing:1px;line-height:1}
.venue{font-size:14px;color:var(--muted)}
.upd{font-size:12px;color:var(--dim);margin-top:4px}
.open{margin-top:12px;display:flex;align-items:center;justify-content:center;height:46px;background:var(--yellow);color:#000;font-weight:700;font-size:14px;letter-spacing:.5px}
.ev:hover .open{background:#fff176}
.foot{padding:16px 24px;font-size:12px;color:var(--dim);border-top:1px solid #1f2226;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}
@media (max-width:600px){.top{padding:8px 12px;flex-wrap:nowrap}.logo{width:40px;height:40px}.logo img{width:34px;height:34px}.brand{gap:10px;min-width:0}.name{font-size:20px}.who{display:none}.events{padding:24px 16px}.events h1{font-size:40px}.grid{grid-template-columns:1fr;gap:16px}.login{padding:32px 22px}}
