.page-wrapper{display:flex;flex-direction:column;min-height:100vh}.site-header{position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);background:var(--panel-2);border-bottom:1px solid var(--border);padding:var(--space-sm)var(--space-lg);display:flex;align-items:center;gap:var(--space-lg);backdrop-filter:blur(4px)}.site-title{font-family:var(--font-display);font-size:2rem;color:var(--accent-purple);letter-spacing:.04em;text-shadow:0 0 20px rgba(198,120,221,.4);text-decoration:none}.site-title:hover{color:var(--accent-red);text-decoration:none}.site-nav{display:flex;gap:var(--space-md);align-items:center;margin-left:auto}.site-nav a{font-family:var(--font-mono);font-size:1rem;color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;padding:var(--space-xs)var(--space-sm);transition:color var(--transition)}.site-nav a:hover,.site-nav a.active{color:var(--accent-teal);text-decoration:none}.site-main{flex:1;margin-top:56px}.site-footer{background:var(--panel-2);border-top:1px solid var(--border);padding:var(--space-lg);text-align:center;font-family:var(--font-mono);font-size:.85rem;color:var(--text-dim)}.site-footer a{color:var(--text-dim)}.site-footer a:hover{color:var(--accent-purple);text-decoration:none}.panel{background:var(--panel);border:var(--border-1);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-panel)}.container{max-width:1100px;margin:0 auto;padding:0 var(--space-lg)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}@media(max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs)var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;transition:all var(--transition);cursor:pointer}.btn-primary{background:var(--accent-purple);border-color:var(--accent-purple);color:#1e2229}.btn-primary:hover{background:#d490ee;border-color:#d490ee;color:#1e2229;text-decoration:none}.btn-danger{background:0 0;border-color:var(--accent-red);color:var(--accent-red)}.btn-danger:hover{background:var(--accent-red);color:#1e2229;text-decoration:none}.btn-ghost{background:0 0;border-color:var(--border);color:var(--text-dim)}.btn-ghost:hover{border-color:var(--text-dim);color:var(--text);text-decoration:none}.form-group{margin-bottom:var(--space-md)}.form-label{display:block;font-family:var(--font-mono);font-size:.85rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-xs)}.form-control{width:100%;padding:var(--space-sm)var(--space-md);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-mono);font-size:1rem;transition:border-color var(--transition)}.form-control:focus{border-color:var(--accent-purple)}.form-control::placeholder{color:var(--text-dim)}textarea.form-control{min-height:120px;resize:vertical}select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235c6370' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:2rem}.flash{padding:var(--space-sm)var(--space-md);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9rem;margin-bottom:var(--space-md)}.flash-error{background:rgba(224,108,117,.15);border:1px solid var(--accent-red);color:var(--accent-red)}.flash-success{background:rgba(152,195,121,.15);border:1px solid var(--accent-green);color:var(--accent-green)}.flash-info{background:rgba(97,175,239,.15);border:1px solid var(--accent-blue);color:var(--accent-blue)}.badge{display:inline-block;padding:1px 6px;border-radius:10px;font-size:.7rem;font-family:var(--font-mono);letter-spacing:.04em}.badge-club{background:rgba(198,120,221,.2);color:var(--accent-purple)}.badge-event{background:rgba(224,108,117,.2);color:var(--accent-red)}.badge-festival{background:rgba(86,182,194,.2);color:var(--accent-teal)}