:root{--night: #120d0b;--vellum: #f3e9d8;--vellum-dim: #c9b9a0;--gilt: #d9a54a;--gilt-deep: #8a5f1f;--glass: rgba(24, 17, 14, .72);--line: rgba(217, 165, 74, .28);--live: #e2604f;--font-display: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;--font-body: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:dark}html,body{height:100%}[hidden]{display:none!important}body{background:var(--night);color:var(--vellum);font-family:var(--font-body);font-size:15px;line-height:1.5;overflow:hidden}#stage{position:fixed;inset:0;touch-action:none;cursor:grab}#stage:active{cursor:grabbing}#stage canvas{display:block;width:100%;height:100%}.hud{position:fixed;left:0;right:0;pointer-events:none;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.hud>*{pointer-events:auto}.top{top:0;padding-top:calc(env(safe-area-inset-top,0px) + 12px);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.brand{font-family:var(--font-display);font-size:1.45rem;font-weight:600;letter-spacing:.01em;text-shadow:0 1px 12px rgba(0,0,0,.8)}.brand small{display:block;font-family:var(--font-body);font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--gilt)}.chip{background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:.8rem;color:var(--vellum-dim);backdrop-filter:blur(8px);font-variant-numeric:tabular-nums}.chip b{color:var(--vellum);font-weight:600}.bottom{bottom:0;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 14px);display:grid;gap:10px;justify-items:center}.subs{max-width:46rem;width:100%;min-height:4.2em;text-align:center;font-family:var(--font-display);font-size:clamp(1.15rem,2.6vw,1.55rem);font-weight:500;line-height:1.35;text-wrap:balance;text-shadow:0 2px 14px rgba(0,0,0,.95),0 0 2px rgba(0,0,0,.9);display:flex;align-items:flex-end;justify-content:center}.subs .reading{font-family:var(--font-body);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gilt);display:block;margin-bottom:6px}.dock{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;background:var(--glass);border:1px solid var(--line);border-radius:16px;padding:8px;backdrop-filter:blur(10px);max-width:100%}button,.btn{font:inherit;font-size:.85rem;font-weight:500;color:var(--vellum);background:transparent;border:1px solid transparent;border-radius:10px;padding:8px 12px;cursor:pointer}button:hover{background:#d9a54a1f}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gilt);outline-offset:2px}button.primary{background:var(--gilt);color:#1c130a;font-weight:600}button.primary:hover{background:#e7b65c}.note{font-size:.7rem;color:var(--vellum-dim);opacity:.8;text-align:center}.panel{position:fixed;z-index:5;right:max(16px,env(safe-area-inset-right,0px));top:calc(env(safe-area-inset-top,0px) + 72px);width:min(22rem,calc(100% - 32px));background:var(--glass);border:1px solid var(--line);border-radius:16px;padding:16px 18px;backdrop-filter:blur(12px)}.panel h2,.gate h1{font-family:var(--font-display);font-weight:600;margin:0;text-wrap:balance}.panel h2{font-size:1.35rem}.slots{list-style:none;padding:0;margin:12px 0 8px;display:grid;gap:6px}.slots li{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.slots li:last-child{border-bottom:0}.slots time{font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--vellum)}.tag{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--vellum-dim)}.tag.live{color:var(--live);font-weight:600}.muted{color:var(--vellum-dim);font-size:.82rem;margin:4px 0 0}.gate{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#120d0b59,#120d0be0);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:24px;overflow-y:auto}.gate form{width:min(26rem,100%);background:var(--glass);border:1px solid var(--line);border-radius:20px;padding:26px 24px;display:grid;gap:14px;backdrop-filter:blur(14px)}.gate .eyebrow{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gilt)}.gate h1{font-size:2.3rem;line-height:1.05}.gate p{margin:0;color:var(--vellum-dim)}label{display:grid;gap:6px;font-size:.78rem;letter-spacing:.06em;color:var(--vellum-dim)}input,select{font:inherit;font-size:.95rem;color:var(--vellum);background:#00000059;border:1px solid var(--line);border-radius:10px;padding:10px 12px;width:100%;box-sizing:border-box}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.nextmass{border-top:1px solid var(--line);padding-top:12px;font-size:.85rem;color:var(--vellum-dim)}.nextmass strong{color:var(--vellum);font-family:var(--font-display);font-size:1.15rem}.toast{position:fixed;z-index:6;left:50%;transform:translate(-50%);top:calc(env(safe-area-inset-top,0px) + 74px);background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:.85rem;transition:opacity .6s;max-width:calc(100% - 32px);text-align:center}@media(max-width:560px){.brand{font-size:1.2rem}.row{grid-template-columns:1fr}button{padding:7px 9px;font-size:.8rem}}@media(prefers-reduced-motion:reduce){.toast{transition:none}}
