:root{--bg: #0a0a0a;--fg: #e0e0e0;--fg-dim: #707070;--accent: #ff4444;--border: #252525;--card-bg: rgba(15, 15, 15, .85)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:14px;background:transparent;color:var(--fg);line-height:1.6}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg);z-index:-2}a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--fg-dim);transition:border-color .2s}a:hover{border-color:var(--accent)}::selection{background:var(--accent);color:var(--bg)}.video-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;overflow:hidden}.video-background video{min-width:100%;min-height:100%;width:auto;height:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.3}.container{max-width:900px;margin:0 auto;padding:2rem;min-height:100vh;position:relative;z-index:1}header{margin-bottom:3rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}header h1{font-size:1.5rem;font-weight:400;letter-spacing:.1em}header nav{margin-top:1rem;display:flex;gap:2rem}header nav a{font-size:.85rem;text-transform:lowercase;border:none;opacity:.6;transition:opacity .2s}header nav a:hover,header nav a.active{opacity:1}.hive{--hex-width: 260px;--hex-height: 225px;--col-offset: 195px;--row-height: 225px;display:grid;grid-template-columns:repeat(3,var(--col-offset));grid-auto-rows:var(--row-height);padding:2rem 0;padding-bottom:calc(2rem + var(--hex-height) / 2);justify-content:center;margin:0 auto}.hex{width:var(--hex-width);height:var(--hex-height);clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);background:#64646499;cursor:pointer;transition:transform .3s ease,background .3s ease;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem 2.5rem;text-align:center;position:relative;transform-origin:center center}.hex:before{content:"";position:absolute;inset:6px;background:#0000004d;clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);z-index:0}.hex>*{position:relative;z-index:1}.hex:nth-child(3n+2){transform:translateY(calc(var(--hex-height) / 2))}.hex:hover{background:#bbb;z-index:10}.hex.empty{background:#280a3c33;border:1px dashed var(--border)}.hex.empty:hover{background:#3c145066}.hex.expanded{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:95vw;max-width:900px;height:auto;max-height:90vh;clip-path:none;border-radius:8px;z-index:100;padding:3rem;overflow-y:auto;background:#0a050feb}.hex-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;z-index:99}.hex-title{font-size:.9rem;font-weight:400;margin-bottom:.5rem;line-height:1.3}.hex-date{font-size:.7rem;color:var(--fg-dim)}.hex-place{font-size:.65rem;color:var(--fg-dim);margin-top:.3rem}.hex-type{display:inline-block;padding:.15rem .5rem;font-size:.55rem;text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--fg-dim);margin-top:.8rem}.hex-type.performance{border-color:#4f8;color:#4f8}.hex-type.sound{border-color:#4af;color:#4af}.hex-description{font-size:.85rem;color:var(--fg-dim);margin-top:1rem;text-align:left;line-height:1.6}.hex-meta{margin-top:1rem;font-size:.8rem;text-align:left}.hex.expanded .hex-title{font-size:1.8rem;margin-bottom:1rem}.hex.expanded .hex-date{font-size:1.1rem}.hex.expanded .hex-place{font-size:1rem}.hex.expanded .hex-type{font-size:.8rem;padding:.3rem .8rem;margin-top:1rem}.hex.expanded .hex-description{font-size:1.1rem;line-height:1.7;margin-top:1.5rem}.hex.expanded .hex-meta{font-size:1rem;margin-top:1.5rem}.hex-close{position:absolute;top:1rem;right:1rem;background:none;border:1px solid var(--fg-dim);color:var(--fg);width:30px;height:30px;cursor:pointer;font-size:1rem}@media(max-width:600px){.hive{--hex-width: 140px;--hex-height: 121px;--col-offset: 105px;--row-height: 121px}.hex{padding:.8rem 1rem}.hex-title{font-size:.7rem}.hex-date,.hex-place{font-size:.55rem}.hex-type{font-size:.5rem;padding:.1rem .3rem}}footer{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--border);font-size:.75rem;color:var(--fg-dim)}.social-links{display:flex;gap:1.5rem;margin-top:1rem}@media(max-width:600px){.container{padding:1rem}.event-header{flex-direction:column;gap:.25rem}}
