:root{--bg:#16130f;--surface:#241f18;--ink:#f3ede3;--dim:#c9bfb0;--faint:#a69b8b;--hair:#f3ede31a;--accent:#ffc94a;--accent-press:#e8b43c;--on-accent:#16130f;--on-accent-dim:#16130fb3;--good:#5ccb7a;--danger:#ff5a5a;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--band-ink:#fbf6ec;--band-edge:#00000059;--band-scrim:#00000052;--band-weave-dark:#00000029;--band-weave-light:#fbf6ec0f;--band-stitch:#fbf6ec59;--clasp:#2a2621;--clasp-edge:#fbf6ec40;--clasp-slot:#000000b3;--band-label:#00000059;--barcode:#fbf6ecd9}html,body{overflow-x:clip}:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px;transition:none}:where(button,.cta):active{transform:translateY(1px)}.cta:active{background:var(--accent-press)}:where(button):disabled,:where(button)[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}h1,h2{text-wrap:balance;overflow-wrap:break-word;min-width:0}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:16px/1.5 -apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}main{max-width:640px;margin:0 auto;padding:48px 20px 80px}h1{letter-spacing:-.02em;margin:0 0 var(--space-xs);font-size:40px}h2{margin:32px 0 var(--space-xs);font-size:18px}p{color:var(--dim)}a{color:var(--accent)}.top{margin:0 0 var(--space-lg)}.brand{color:var(--accent);font-size:17px;font-weight:800;text-decoration:none}.foot{gap:var(--space-xs) 20px;margin:var(--space-lg) 0 0;padding:var(--space-md) 0 0;border-top:1px solid var(--hair);color:var(--dim);flex-wrap:wrap;list-style:none;display:flex}.foot li{margin:0}.card{color:var(--ink);background:var(--surface);border:1px solid var(--hair);margin:var(--space-sm) 0;border-radius:12px;padding:18px}.card>:first-child,.plan-cta>:first-child{margin-top:0}.card>:last-child,.plan-cta>:last-child{margin-bottom:0}.card p,.plan-cta p{max-width:65ch}.set{gap:var(--space-sm);border-top:1px solid var(--hair);grid-template-columns:72px 1fr auto;align-items:baseline;padding:10px 0;display:grid}.set:first-child{border-top:0}.time{font-variant-numeric:tabular-nums;font-weight:600}.stage{color:var(--faint);font-size:13px}.cta{background:var(--accent);color:var(--on-accent);padding:var(--space-sm) 20px;margin-top:var(--space-sm);white-space:nowrap;border-radius:999px;min-height:44px;font-weight:600;text-decoration:none;display:inline-block}.day{color:var(--faint);margin-top:20px;font-size:14px;font-weight:600}ul{color:var(--dim)}.wall{max-width:560px}.wall-head{align-items:center;gap:var(--space-md);margin:var(--space-xs) 0 18px;display:flex}.wall-avatar{object-fit:cover;background:var(--surface);border-radius:32px;width:64px;height:64px}.wall-avatar-blank{color:var(--ink);justify-content:center;align-items:center;font-size:24px;font-weight:800;display:flex}.wall-head h1{margin:0;font-size:30px}.wall-handle{margin:var(--space-3xs) 0 0;color:var(--faint);font-size:14px}.wall-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px;display:grid}.wall-stats div{background:var(--surface);border:1px solid var(--hair);padding:var(--space-sm) 14px;border-radius:12px;flex-direction:column;display:flex}.wall-stats b{font-variant-numeric:tabular-nums;font-size:24px;font-weight:800}.wall-stats span{color:var(--faint);font-size:12px}.wall-top{color:var(--dim);margin:0 0 18px;font-size:13px}.bands{gap:var(--space-sm);margin:0 0 var(--space-lg);flex-direction:column;display:flex}.band{height:66px;color:var(--band-ink);outline:1px solid var(--band-edge);background-position:50%;background-size:cover;border-radius:33px;position:relative;overflow:hidden}.band-scrim{background:var(--band-scrim);position:absolute;inset:0}.band-weave{background-image:repeating-linear-gradient(45deg, var(--band-weave-dark) 0 1px, transparent 1px 4px), repeating-linear-gradient(0deg, var(--band-weave-light) 0 .5px, transparent .5px 3px);position:absolute;inset:0}.band:after{content:"";border:1px dashed var(--band-stitch);pointer-events:none;border-radius:30px;position:absolute;inset:3px}.band-row{height:100%;padding:0 14px 0 var(--space-xs);align-items:center;gap:10px;display:flex;position:relative}.clasp{background:var(--clasp);border:1px solid var(--clasp-edge);border-radius:4px;flex:none;justify-content:center;align-items:center;gap:6px;width:30px;height:20px;display:flex}.clasp i{background:var(--clasp-slot);border-radius:2px;width:3px;height:12px;display:block}.band-text{background:var(--band-label);min-width:0;padding:6px var(--space-xs) 5px;border-radius:4px;flex:1}.band-title{text-transform:uppercase;letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:800;font-stretch:75%;line-height:1;overflow:hidden}.band-sub{opacity:.85;white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;min-width:0;margin-top:var(--space-3xs);font-size:11px;display:flex;overflow:hidden}.band-venue{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.band-sep{white-space:pre;flex:none}.band-date{white-space:nowrap;flex:none}.band-serial{font-variant-numeric:tabular-nums;opacity:.9;flex-direction:column;flex:none;align-items:flex-end;gap:3px;font-size:11px;display:flex}.barcode{background-image:repeating-linear-gradient(90deg, var(--barcode) 0 2px, transparent 2px 3px, var(--barcode) 3px 4px, transparent 4px 7px, var(--barcode) 7px 8px, transparent 8px 10px);width:46px;height:18px;display:block}.wall-foot{color:var(--faint);margin-top:18px;font-size:12px}@media (max-width:480px){.wall-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.band-title{font-size:15px}}.fest-list{flex-direction:column;gap:10px;margin:18px 0;display:flex}.fest{justify-content:space-between;align-items:center;gap:var(--space-sm);background:var(--surface);border:1px solid var(--hair);padding:14px var(--space-md);color:var(--ink);border-radius:12px;text-decoration:none;display:flex}.fest-name{font-size:17px;font-weight:700}.fest-meta{color:var(--faint);margin-top:var(--space-3xs);font-size:13px}.fest-tag{color:var(--dim);white-space:nowrap;font-size:12px}.plan{max-width:980px}.plan-sub{max-width:60ch}.plan-bar{margin:var(--space-xs) 0 18px;align-items:center;gap:14px;display:flex}.plan-bar .cta{font:inherit;cursor:pointer;border:0;margin:0;font-weight:600}.plan-count{color:var(--dim);font-variant-numeric:tabular-nums;font-size:14px}.days{gap:var(--space-xs) 18px;flex-wrap:wrap;margin-bottom:14px;display:flex}.day-group{align-items:center;gap:var(--space-xs);display:flex}.day-w{color:var(--faint);font-size:13px}.day-btn{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--hair);padding:var(--space-xs) var(--space-md);cursor:pointer;border-radius:999px;min-height:44px;font-size:13px;font-weight:600}.day-btn.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.day-btn:hover,.chip:hover{border-color:var(--faint)}.clashes{background:var(--surface);border:1px solid var(--danger);padding:var(--space-sm) var(--space-md);color:var(--dim);gap:var(--space-2xs);border-radius:12px;flex-direction:column;margin:0 0 14px;font-size:14px;display:flex}.clashes b{color:var(--ink)}.grid-wrap{border:1px solid var(--hair);background:var(--surface);padding:0 0 var(--space-xs);border-radius:12px;overflow-x:auto}.grid{gap:var(--space-3xs) 6px;min-width:100%;padding:0 var(--space-xs);display:grid}.g-corner{z-index:3;background:var(--surface);position:sticky;left:0}.g-stage{z-index:2;color:var(--faint);padding:var(--space-xs) 6px;background:var(--surface);border-bottom:1px solid var(--hair);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;position:sticky;top:0;overflow:hidden}.g-time{z-index:1;color:var(--faint);font-variant-numeric:tabular-nums;padding:var(--space-3xs) var(--space-2xs) 0 0;background:var(--surface);border-top:1px solid var(--hair);font-size:11px;position:sticky;left:0}.g-set{font:inherit;text-align:left;color:var(--ink);background:var(--bg);border:1px solid var(--hair);padding:6px var(--space-xs);cursor:pointer;gap:var(--space-3xs);border-radius:8px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.g-set .g-artist{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;line-height:1.15;overflow:hidden}.g-set .g-when{color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10.5px}.g-set.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.g-set.on .g-when{color:var(--on-accent-dim)}.g-set.clash{border:2px solid var(--danger)}.mine{margin-top:var(--space-lg)}.mine h2,.plan-cta h2{margin-top:0}.set-clash{color:var(--danger)}.lineup{gap:var(--space-xs);flex-wrap:wrap;margin:14px 0;display:flex}.chip{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--hair);padding:var(--space-xs) var(--space-md);cursor:pointer;border-radius:999px;min-height:44px;font-size:14px;font-weight:600}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.plan-cta{color:var(--ink);background:var(--surface);border:1px solid var(--hair);border-radius:12px;margin-top:32px;padding:18px}.ev{max-width:560px}.ev-art{aspect-ratio:16/9;object-fit:cover;background:var(--surface);border:1px solid var(--hair);width:100%;margin:var(--space-md) 0 20px;border-radius:12px;display:block}.ev-art-blank{align-items:flex-end;padding:18px;display:flex}.ev-art-blank span{text-transform:uppercase;color:var(--ink);overflow-wrap:anywhere;font-size:44px;font-weight:800;font-stretch:75%;line-height:1}.ev h1{margin-bottom:var(--space-2xs);overflow-wrap:anywhere}.ev-status{color:var(--danger);margin-bottom:6px;font-size:14px;font-weight:700;display:inline-block}.ev-where{color:var(--ink);margin:0;font-size:17px}.ev-when{margin:var(--space-3xs) 0 0}.ev-times{gap:var(--space-xs) 28px;flex-wrap:wrap;display:flex}.ev-times div{flex-direction:column;display:flex}.ev-times span{color:var(--faint);font-size:13px}.ev-times b{font-size:22px;font-weight:700}.ev-bill{color:var(--dim)}.ev-bill b{color:var(--ink)}.ev-count{color:var(--faint);font-size:14px}.ev-ctas{margin:var(--space-xs) 0 var(--space-2xs);flex-wrap:wrap;gap:10px;display:flex}.ev-ctas .cta{margin-top:0}.cta-ghost{color:var(--ink);border:1px solid var(--hair);background:0 0}
