/* Homepage only (linked from index.html after styles.css). Every class is hm-; styles.css stays untouched. */
html{scroll-padding-top:76px}
.hm-home{overflow-x:clip;--hm-g:linear-gradient(100deg,#b3a8ff,#7c5cff 45%,#4f7cff)}
.hm-home .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hm-home a:focus-visible,.hm-home button:focus-visible{outline:2px solid #b3a8ff;outline-offset:3px}
.hm-home #events .event-past__link:focus-visible{outline-offset:-3px}
/* the outline lands on the violet gradient here (band, download), so it goes white */
.hm-home .hm-dl a:focus-visible,.hm-home .hm-band__btn:focus-visible{outline-color:#fff}
.hm-home .nav::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,#6d5cff,#4f7cff);opacity:0;transition:opacity .3s}
.hm-home .nav.hm-nav--scrolled{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.hm-home .nav.hm-nav--scrolled::after{opacity:.4}
.hm-paused *,.hm-paused *::before,.hm-paused *::after,.hm-hidden *,.hm-hidden *::before,.hm-hidden *::after{animation-play-state:paused!important}
.hm-eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#b9aeff}
.hm-eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:#7c5cff;box-shadow:0 0 12px #7c5cff}
.hm-live{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(34,197,94,.14);color:#4ade80;font-size:12px;font-weight:700;letter-spacing:.04em}
.hm-live i,.hm-pill i{position:relative;width:7px;height:7px;border-radius:50%;background:#22c55e}
.hm-live i::after,.hm-pill i::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:hm-ping 1.8s ease-out infinite}
@keyframes hm-ping{from{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(3)}}
@keyframes hm-fade{from{opacity:0}}
@keyframes hm-draw{from{stroke-dashoffset:1}}

/* ---- Hero: centred wordmark over a faded live city map ---- */
.hm-t{fill:#fff;font-size:13.5px;font-weight:700}
/* one screen tall: copy on top, the bottom strip is the stage where people meet at the beacon */
.hx-hero{position:relative;overflow:hidden;isolation:isolate;min-height:max(640px,calc(100svh - 72px));display:flex;align-items:flex-start;justify-content:center;padding:clamp(26px,5vh,56px) 0 clamp(165px,24vh,230px);text-align:center;background:var(--bg)}
.hx-hero__bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hx-city{position:absolute;inset:0;width:100%;height:100%;font-family:Inter,system-ui,sans-serif}
.hx-city__img{opacity:.5}
.hx-base{fill:none;stroke:rgba(255,255,255,.07);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.hx-trail{fill:none;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1}
.hx-ring{fill:none;stroke:rgba(139,123,255,.75);stroke-width:2}
.hx-chip{fill:#0b0e1c;fill-opacity:.92;stroke:rgba(255,255,255,.16)}
.hx-chip-t{fill:#e9e7ff;font-size:11.5px;font-weight:600}
/* text stays readable: dark centre column, fade into the page top and bottom, a violet glow */
.hx-veil{position:absolute;inset:0;background:
  radial-gradient(ellipse 48% 46% at 50% 38%,rgba(5,6,10,.9) 0%,rgba(5,6,10,.7) 50%,rgba(5,6,10,0) 100%),
  linear-gradient(180deg,var(--bg) 0%,rgba(5,6,10,.35) 14%,rgba(5,6,10,0) 36%,rgba(5,6,10,0) 92%,var(--bg) 100%),
  radial-gradient(ellipse 70% 55% at 50% 22%,rgba(109,92,255,.2),transparent 70%)}
.hx-hero__c{position:relative;display:flex;flex-direction:column;align-items:center}
.hx-pill{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px}
.hx-pill i{width:8px;height:8px;border-radius:50%;background:#34d399;box-shadow:0 0 0 4px rgba(52,211,153,.18)}
.hx-mark{width:clamp(56px,6vw,68px);height:auto;border-radius:22%;margin-bottom:12px;box-shadow:0 18px 50px rgba(109,92,255,.45),0 0 0 1px rgba(255,255,255,.08)}
.hx-title{margin:0;line-height:.9}
.hx-word{display:inline-block;font-size:clamp(72px,13vw,150px);font-weight:800;letter-spacing:-.045em;padding:0 .04em .06em;color:#fff}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
.hx-word{background:linear-gradient(110deg,#fff 0%,#fff 38%,#d9d3ff 47%,#fff 56%,#fff 70%,#c3b9ff 100%);background-size:260% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent}
html.js .hx-word{animation:hx-rise .7s cubic-bezier(.2,.8,.2,1) .05s both,hx-shine 1.6s ease-in-out 1s both}}
.hx-slogan{margin:6px 0 16px;font-size:clamp(22px,3.4vw,38px);font-weight:700;letter-spacing:-.02em;color:#f1f0ff}
.hx-slogan span{display:inline-block}
.hx-go{color:#9d8cff}
@supports ((-webkit-background-clip:text) or (background-clip:text)){.hx-go{background:var(--gradient-cta);-webkit-background-clip:text;background-clip:text;color:transparent}}
html.js .hx-slogan span{animation:hx-rise .55s cubic-bezier(.2,.8,.2,1) .35s both}
html.js .hx-slogan span:nth-child(2){animation-delay:.5s}
html.js .hx-slogan span:nth-child(3){animation-delay:.65s}
html.js .hx-mark,html.js .hx-pill{animation:hx-rise .6s cubic-bezier(.2,.8,.2,1) both}
html.js .hx-desc,html.js .hx-actions{animation:hx-rise .6s cubic-bezier(.2,.8,.2,1) .8s both}
@keyframes hx-rise{from{opacity:0;transform:translateY(24px)}}
@keyframes hx-shine{from{background-position:100% 0}to{background-position:0 0}}
.hx-desc{margin:0 0 24px;max-width:560px;color:#c3c8d6;font-size:clamp(16px,1.6vw,18px)}
.hx-actions{display:flex;flex-direction:column;align-items:center;gap:14px}
.hx-actions .store-badges{justify-content:center}
.hx-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:12px;color:#d9d6ff;font-weight:600;font-size:15px;transition:color .2s}
.hx-link:hover{color:#fff}
.hx-link svg{width:18px;height:18px;transition:transform .2s}
.hx-link:hover svg{transform:translateX(3px)}
.hx-attr{position:absolute;right:14px;bottom:8px;margin:0;font-size:10.5px;color:rgba(255,255,255,.38)}
.hx-attr a{color:inherit;margin-left:6px}
.hx-attr a:hover{color:rgba(255,255,255,.7)}
@media (min-width:960px){.hx-actions{flex-direction:row;flex-wrap:wrap;justify-content:center}.hx-actions .store-badge{min-width:180px}}
@media (prefers-reduced-motion:reduce){html.js .hx-word,html.js .hx-slogan span,html.js .hx-mark,html.js .hx-pill,html.js .hx-desc,html.js .hx-actions{animation:none}.hx-word{background-position:0 0}}

/* ---- Activity row: calm and static ---- */
.hx-acts{padding:34px 0 30px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.015),rgba(255,255,255,0))}
.hx-acts__k{margin:0 0 18px;text-align:center;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8a91a5}
.hx-acts__list{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 30px;margin:0;padding:0;list-style:none}
.hx-acts__list li{display:inline-flex;align-items:center;gap:9px;color:#aab2c5;font-size:15px;font-weight:500}
.hx-acts__list svg{width:20px;height:20px;color:#8f84ff;flex-shrink:0}
@media (max-width:520px){.hx-acts__list{gap:12px 22px}.hx-acts__list li{font-size:14px}}

/* ---- Features bento ---- */
.hm-home .section__title{line-height:1.15}
.hm-feat{padding-top:110px}
.hm-bento{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.hm-card{position:relative;display:flex;flex-direction:column;min-width:0;padding:18px 18px 24px;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);overflow:hidden;transition:transform .25s,border-color .25s}
.hm-card--w{grid-column:span 2}
.hm-card h3{margin:18px 6px 6px;font-size:19px;font-weight:700;letter-spacing:-.01em}
.hm-card>p{margin:0 6px;color:var(--text-dim);font-size:15px;line-height:1.55}
@media (hover:hover) and (pointer:fine){.hm-card:hover{transform:translateY(-4px);border-color:rgba(109,92,255,.38)}}
html.js .hm-rv{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1),border-color .25s}
html.js .hm-rv.hm-in{opacity:1;transform:none}
.hm-art{position:relative;height:170px;border-radius:14px;overflow:hidden;background:radial-gradient(ellipse 70% 90% at 50% 0%,rgba(109,92,255,.16),transparent 70%),#0b0f1d;border:1px solid rgba(255,255,255,.05)}
.hm-art>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hm-grid{fill:none;stroke:rgba(255,255,255,.06);stroke-width:6}
.hm-trk__gh{fill:none;stroke:rgba(255,255,255,.08);stroke-width:4;stroke-dasharray:2 8;stroke-linecap:round}
.hm-trk__r{fill:none;stroke:#8f7dff;stroke-width:4.5;stroke-linecap:round;stroke-dasharray:1 2}
.hm-trk__d1{fill:#fff;transform:translate(392px,34px)}
.hm-trk__d2{fill:#34d399;transform:translate(375px,73px)}
.hm-trk__d3{fill:#fbbf24;transform:translate(333px,68px)}
.hm-in .hm-trk__r{animation:hm-trk 7s linear infinite}
.hm-in .hm-trk__d{animation:hm-tkd 7s linear infinite both}
.hm-in .hm-trk__d2{animation-delay:.35s}
.hm-in .hm-trk__d3{animation-delay:.7s}
@keyframes hm-trk{0%{stroke-dashoffset:1;opacity:1}70%{stroke-dashoffset:0}88%{opacity:1}96%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes hm-tkd{0%{opacity:0;transform:translate(20px,128px)}3%{opacity:1}7%{transform:translate(61px,113px)}14%{transform:translate(100px,93px)}21%{transform:translate(143px,100px)}28%{transform:translate(182px,119px)}35%{transform:translate(224px,110px)}42%{transform:translate(254px,77px)}49%{transform:translate(291px,56px)}56%{transform:translate(333px,68px)}63%{transform:translate(375px,73px)}70%{transform:translate(392px,34px)}88%{opacity:1}96%,100%{opacity:0;transform:translate(392px,34px)}}
.hm-trk__st{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hm-trk__st>span:not(.hm-live){padding:4px 10px;border-radius:999px;background:rgba(5,6,10,.7);border:1px solid var(--border);color:#c9cfdd;font-size:12.5px;font-weight:600}
.hm-tick{color:#fff;font-weight:800;font-variant-numeric:tabular-nums}
.hm-ntf__ph{position:absolute;left:50%;top:14px;width:236px;height:200px;margin-left:-118px;border-radius:30px;border:2px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#151a33,#0b0f1d)}
.hm-ntf__bar{display:flex;justify-content:space-between;align-items:center;padding:10px 22px;color:#c9cfdd;font-size:11px}
.hm-ntf__bar i{width:62px;height:16px;border-radius:10px;background:#000;margin-right:52px}
.hm-ntf__n{display:flex;gap:9px;align-items:flex-start;margin:6px 8px 0;padding:9px 10px;border-radius:16px;background:rgba(40,46,72,.92);border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 26px rgba(0,0,0,.4);font-size:11.5px;line-height:1.35}
.hm-ntf__n img{width:28px;height:28px;border-radius:7px;flex:none}
.hm-ntf__n div{flex:1;min-width:0}
.hm-ntf__n b{display:block;color:#fff;font-size:12px}
.hm-ntf__n span{color:#c9cfdd}
.hm-ntf__n small{color:#c9cfdd;font-size:10.5px}
.hm-in .hm-ntf__n{animation:hm-ntf 6s cubic-bezier(.2,.8,.2,1) infinite both}
@keyframes hm-ntf{0%,8%{opacity:0;transform:translateY(-130%)}18%,82%{opacity:1;transform:none}92%,100%{opacity:0;transform:translateY(-130%)}}
.hm-sco__b{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:10px}
.hm-sco__r{display:flex;align-items:center;gap:12px;font-weight:800}
.hm-sco__t{color:#c9cfdd;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.hm-sco__n{display:block;height:1em;overflow:hidden;font-size:52px;line-height:1;font-variant-numeric:tabular-nums}
.hm-sco__c{font-size:40px;color:#8f7dff}
.hm-roll{display:block;transform:translateY(-1em)}
.hm-roll i{display:block;font-style:normal;height:1em}
.hm-sco__b>.hm-live,.hm-trk__st{position:absolute;left:12px;top:12px}
.hm-sco__p{position:absolute;left:calc(50% - 52px);top:38px;padding:2px 8px;border-radius:999px;background:#7c5cff;color:#fff;font-size:12px;font-weight:800;opacity:0}
.hm-in .hm-roll{animation:hm-roll 5s cubic-bezier(.6,0,.2,1) infinite}
.hm-in .hm-sco__p{animation:hm-pop 5s ease-out infinite}
@keyframes hm-roll{0%,40%{transform:none;opacity:1}48%,92%{transform:translateY(-1em);opacity:1}100%{transform:translateY(-1em);opacity:0}}
@keyframes hm-pop{0%,44%{opacity:0;transform:translateY(8px)}50%{opacity:1;transform:none}70%,100%{opacity:0;transform:translateY(-14px)}}
.hm-omw{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:12px 16px}
.hm-omw ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.hm-omw li{position:relative;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:6px 10px;border-radius:12px;background:rgba(255,255,255,.04);font-size:13.5px;font-weight:600;overflow:hidden}
.hm-omw li i,.hm-chat i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--c);color:#0b0e1c;font-style:normal;font-size:12px;font-weight:800}
.hm-omw em{font-style:normal;color:#c9cfdd;font-size:12.5px;white-space:nowrap}
.hm-pg{position:absolute;left:0;bottom:0;height:2px;width:100%;background:linear-gradient(90deg,#7c5cff,#4f7cff);transform-origin:left;transform:scaleX(var(--w))}
.hm-in .hm-pg{animation:hm-omw 6s linear infinite}
@keyframes hm-omw{0%{transform:scaleX(calc(var(--w) - .35))}70%,100%{transform:scaleX(var(--w))}}
.hm-ptt{display:grid;justify-items:center;gap:12px}
.hm-bars{display:flex;align-items:center;gap:4px;height:34px}
.hm-bars i{width:5px;height:100%;border-radius:3px;background:#8f7dff;transform:scaleY(.5)}
.hm-in .hm-bars i{animation:hm-bar 1s ease-in-out infinite alternate}
.hm-bars i:nth-child(2){animation-delay:-.4s}.hm-bars i:nth-child(3){animation-delay:-.7s}.hm-bars i:nth-child(4){animation-delay:-.2s}.hm-bars i:nth-child(5){animation-delay:-.55s}
@keyframes hm-bar{from{transform:scaleY(.2)}to{transform:scaleY(1)}}
.hm-ptt b{position:relative;display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:999px;background:var(--gradient-cta);color:#fff;font-size:13px;white-space:nowrap}
.hm-ptt b::before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 2px rgba(143,125,255,.7),0 0 24px rgba(124,92,255,.7);opacity:.4}
.hm-in .hm-ptt b::before{animation:hm-glow 1.6s ease-in-out infinite alternate}
@keyframes hm-glow{to{opacity:1}}
.hm-ptt svg{width:15px;height:15px}
.hm-spc__r{fill:none;stroke:rgba(143,125,255,.5);stroke-width:3;stroke-dasharray:3 7;stroke-linecap:round}
.hm-spc__d{transform:translate(160px,80px)}
.hm-in .hm-spc__d{animation:hm-spd 6s linear infinite}
@keyframes hm-spd{0%{opacity:0;transform:translate(30px,120px)}5%{opacity:1}9%{transform:translate(30px,84px)}18%{transform:translate(40px,52px)}27%{transform:translate(75px,50px)}36%{transform:translate(110px,50px)}45%{transform:translate(146px,51px)}54%{transform:translate(160px,80px)}63%{transform:translate(165px,114px)}72%{transform:translate(199px,120px)}81%{transform:translate(234px,120px)}90%{transform:translate(270px,120px)}92%{opacity:1}100%{opacity:0;transform:translate(270px,120px)}}
.hm-watch{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;background:rgba(5,6,10,.75);border:1px solid rgba(255,255,255,.14);color:#fff;font-size:12px;font-weight:700}
.hm-watch svg{width:15px;height:15px;color:#b3a8ff}
.hm-brk rect{fill:rgba(255,255,255,.05);stroke:rgba(255,255,255,.12)}
.hm-brk .hm-w{fill:rgba(124,92,255,.22);stroke:rgba(143,125,255,.6)}
.hm-brk circle{fill:#5d6680}.hm-brk .hm-w+circle{fill:#b3a8ff}
.hm-bl{fill:none;stroke:#8f7dff;stroke-width:2;stroke-dasharray:1 2}
.hm-tro{transform:translate(274px,75px)}
.hm-tro circle{fill:#fbbf24}
.hm-tro .hm-tro__g{fill:#fbbf24;opacity:.25}
.hm-in .hm-bl{animation:hm-bl1 6s linear infinite}
.hm-in .hm-bl2{animation-name:hm-bl2}.hm-in .hm-bl3{animation-name:hm-bl3}
.hm-in .hm-s2{animation:hm-s2 6s infinite}.hm-in .hm-s3{animation:hm-s3 6s infinite}
.hm-in .hm-tro__g{animation:hm-tro 6s ease-out infinite}
@keyframes hm-bl1{0%{stroke-dashoffset:1}15%,90%{stroke-dashoffset:0;opacity:1}100%{opacity:0}}
@keyframes hm-bl2{0%,22%{stroke-dashoffset:1}37%,90%{stroke-dashoffset:0;opacity:1}100%{opacity:0}}
@keyframes hm-bl3{0%,44%{stroke-dashoffset:1}52%,90%{stroke-dashoffset:0;opacity:1}100%{opacity:0}}
@keyframes hm-s2{0%,15%{opacity:0}20%,90%{opacity:1}100%{opacity:0}}
@keyframes hm-s3{0%,37%{opacity:0}42%,90%{opacity:1}100%{opacity:0}}
@keyframes hm-tro{0%,52%{opacity:0;transform:scale(.6)}58%{opacity:.6;transform:scale(1.25)}90%{opacity:.3;transform:none}100%{opacity:0}}
.hm-chat{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:8px 14px}
.hm-chat__b{display:flex;align-items:center;gap:8px;font-size:12px}
.hm-chat__b span{padding:5px 11px;border-radius:14px 14px 14px 4px;background:rgba(255,255,255,.07);color:#e6e8f2}
.hm-chat i{width:22px;height:22px;font-size:10px}
.hm-chat__me{justify-content:flex-end}
.hm-chat__me span{border-radius:14px 14px 4px 14px;background:#6d5cff;color:#fff}
.hm-tog{display:flex;justify-content:space-between;align-items:center;margin-top:2px;padding:5px 10px;border-radius:12px;background:rgba(109,92,255,.12);color:#fff;font-size:12.5px;font-weight:700}
.hm-tog b{position:relative;width:34px;height:20px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden}
.hm-tog b::before{content:"";position:absolute;inset:0;background:#22c55e}
.hm-tog i{position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;transform:translateX(14px)}
.hm-in .hm-chat__b{animation:hm-msg 7s ease-out infinite both}
.hm-in .hm-chat__b:nth-child(2){animation-name:hm-msg2}.hm-in .hm-chat__b:nth-child(3){animation-name:hm-msg3}
.hm-in .hm-tog b::before{animation:hm-ton 7s infinite both}.hm-in .hm-tog i{animation:hm-knob 7s cubic-bezier(.3,1.4,.5,1) infinite both}
@keyframes hm-msg{0%{opacity:0;transform:translateY(10px)}6%,90%{opacity:1;transform:none}100%{opacity:0}}
@keyframes hm-msg2{0%,14%{opacity:0;transform:translateY(10px)}20%,90%{opacity:1;transform:none}100%{opacity:0}}
@keyframes hm-msg3{0%,28%{opacity:0;transform:translateY(10px)}34%,90%{opacity:1;transform:none}100%{opacity:0}}
@keyframes hm-ton{0%,50%{opacity:0}56%,100%{opacity:1}}
@keyframes hm-knob{0%,50%{transform:none}56%,100%{transform:translateX(14px)}}
.hm-chips{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:28px 0 0;padding:0}
.hm-chips li{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid var(--border);color:#c9cfdd;font-size:14px;font-weight:600}
.hm-chips svg{width:17px;height:17px;color:#a99cff}
@media (max-width:959px){.hm-bento{grid-template-columns:repeat(2,minmax(0,1fr))}.hm-card:last-child{grid-column:span 2}}
@media (max-width:639px){.hm-bento{grid-template-columns:1fr}.hm-card--w,.hm-card:last-child{grid-column:auto}.hm-art{height:150px}.hm-feat{padding-top:88px}.hm-omw{gap:10px;padding:10px}.hm-omw li{grid-template-columns:24px 1fr auto;gap:8px;padding:5px 8px}.hm-omw li i{width:24px;height:24px}.hm-ptt b{padding:9px 12px;font-size:12px}.hm-ntf__ph{top:10px}}
@media (max-width:420px){.hm-ptt .hm-bars{display:none}.hm-ptt b{width:44px;height:44px;padding:0;justify-content:center;font-size:0;gap:0}.hm-ptt svg{width:18px;height:18px}}

/* ---- Beacon rules + radar ---- */
.hm-rules{background:var(--bg-elev)}
.hm-rules__in{display:grid;gap:36px 72px;grid-template-columns:1fr auto;grid-template-areas:"head viz" "bul viz";align-items:start}
.hm-rules__head{grid-area:head;align-self:end}
.hm-rules h2{margin:0;font-size:clamp(32px,4.4vw,52px);font-weight:800;letter-spacing:-.03em;line-height:1.05}
.hm-viz{grid-area:viz;display:grid;justify-items:center;gap:18px}
.hm-bul{grid-area:bul;list-style:none;margin:0;padding:0;display:grid;gap:26px}
.hm-bul li{display:flex;gap:16px}
.hm-bul svg{flex:none;width:44px;height:44px;padding:11px;border-radius:13px;background:rgba(109,92,255,.15);color:#a99cff;border:1px solid rgba(109,92,255,.25)}
.hm-bul h3{margin:2px 0 6px;font-size:18px;font-weight:700}
.hm-bul p{margin:0;color:var(--text-dim);font-size:15.5px}
.hm-radar{--sz:420px;position:relative;width:var(--sz);height:var(--sz);border-radius:50%;background:radial-gradient(circle,#161c36 0%,#0b0f1a 70%);border:1px solid rgba(109,92,255,.25);overflow:hidden}
.hm-radar>b{position:absolute;inset:var(--i);border-radius:50%;border:1px solid rgba(124,92,255,.28)}
.hm-sw{position:absolute;inset:0;border-radius:50%;background:conic-gradient(rgba(124,92,255,0) 0 250deg,rgba(124,92,255,.12) 300deg,rgba(143,125,255,.5) 359deg,rgba(124,92,255,0) 360deg);animation:hm-spin 6s linear infinite}
@keyframes hm-spin{to{transform:rotate(1turn)}}
.hm-me{position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px;border-radius:50%;background:#7c5cff;box-shadow:0 0 24px 6px rgba(109,92,255,.7)}
.hm-bp{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px;transform:rotate(var(--a)) translateY(calc(var(--sz) * -1 * var(--r))) rotate(calc(-1 * var(--a)))}
.hm-bp i{display:block;width:100%;height:100%;border-radius:50%;background:#c4bbff;box-shadow:0 0 14px rgba(179,168,255,.9);opacity:.35;animation:hm-blip 6s linear infinite;animation-delay:var(--d);transition:opacity .3s}
@keyframes hm-blip{0%{opacity:1;transform:scale(1.4)}10%{opacity:1;transform:none}70%,100%{opacity:.35;transform:none}}
.hm-radar[data-vis=tribe] .hm-bp:not(.hm-t) i,.hm-radar[data-vis=invite] .hm-bp:not(.hm-iv) i{animation:none;opacity:.08;transform:scale(.7)}
.hm-seg{display:flex;padding:4px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--border)}
.hm-seg[hidden],.hm-note[hidden]{display:none}
.hm-seg button{min-height:40px;padding:0 16px;border:0;border-radius:10px;background:none;color:#c9cfdd;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.hm-seg button[aria-pressed=true]{background:var(--violet);color:#fff;box-shadow:0 6px 18px rgba(109,92,255,.4)}
.hm-note{margin:0;min-height:1.6em;color:#c9cfdd;font-size:14px;text-align:center}
@media (max-width:959px){.hm-rules__in{grid-template-columns:1fr;grid-template-areas:"head" "viz" "bul"}.hm-radar{--sz:280px}.hm-seg{width:100%;max-width:420px}.hm-seg button{flex:1;min-height:44px;padding:0 8px}}

/* ---- How it works ---- */
.hm-steps{--p:1;position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;text-align:center}
html.js .hm-steps{--p:0}
.hm-steps::before,.hm-steps::after{content:"";position:absolute;left:12.5%;right:12.5%;top:38px;height:2px;border-radius:2px;background:rgba(255,255,255,.08)}
.hm-steps::after{background:linear-gradient(90deg,#b3a8ff,#6d5cff 50%,#4f7cff);transform-origin:left;transform:scaleX(var(--p))}
.hm-step{position:relative;z-index:1}
.hm-n{display:inline-block;padding:0 14px;background:var(--bg);font-size:72px;font-weight:800;line-height:1.05;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px #8f7dff}
.hm-step h3{margin:14px 0 6px;font-size:20px;font-weight:700}
.hm-step p{margin:0 auto;max-width:240px;color:var(--text-dim);font-size:15px}
.hm-sa{position:relative;height:110px;margin-top:14px;display:grid;place-items:center}
.hm-sa svg{width:120px;height:110px;overflow:visible}
.hm-rp{fill:none;stroke:#8f7dff;stroke-width:2;transform-box:fill-box;transform-origin:center;opacity:0}
.hm-in .hm-rp{animation:hm-rip 2.4s ease-out infinite}
.hm-in .hm-rp+.hm-rp{animation-delay:1.2s}
@keyframes hm-rip{from{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.6)}}
.hm-in .hm-pin{animation:hm-bob 2.4s ease-in-out infinite}
@keyframes hm-bob{50%{transform:translateY(-6px)}}
.hm-av{display:flex}
.hm-av i{width:36px;height:36px;margin-left:-10px;border-radius:50%;border:3px solid var(--bg);background:var(--c)}
.hm-av i:first-child{margin-left:0}
.hm-in .hm-av i{animation:hm-av 6s ease-out infinite both}
.hm-av i:nth-child(2){animation-delay:.5s}.hm-av i:nth-child(3){animation-delay:1s}.hm-av i:nth-child(4){animation-delay:1.5s}
@keyframes hm-av{0%{opacity:0;transform:scale(0)}6%,88%{opacity:1;transform:none}96%,100%{opacity:0}}
.hm-sa small{display:block;margin-top:10px;color:#c9cfdd;font-size:13px;font-weight:600}
.hm-sa .hm-tick{font-size:24px}
.hm-trk2{display:block;position:relative;width:150px;height:6px;margin:14px auto 0;border-radius:3px;background:rgba(255,255,255,.08)}
.hm-trk2 i{position:absolute;left:0;top:-5px;width:16px;height:16px;border-radius:50%;background:#f472b6;border:3px solid var(--bg);transform:translateX(118px)}
.hm-in .hm-trk2 i{animation:hm-go 5s cubic-bezier(.4,0,.2,1) infinite}
@keyframes hm-go{0%{transform:none}80%,100%{transform:translateX(118px)}}
.hm-rt2{fill:none;stroke:#8f7dff;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:1 2}
.hm-sa .hm-l4{display:block;width:120px;height:62px;margin:0 auto 8px}
.hm-sa .hm-bars{justify-content:center;height:28px}
.hm-km{color:#c9cfdd;font-size:15px;font-weight:600}
.hm-in .hm-rt2{animation:hm-trk 5s linear infinite}
@media (max-width:959px){
.hm-steps{grid-template-columns:1fr;gap:34px;padding-left:64px;text-align:left}
.hm-steps::before,.hm-steps::after{left:23px;right:auto;top:10px;bottom:10px;width:2px;height:auto}
.hm-steps::after{background:linear-gradient(180deg,#b3a8ff,#6d5cff 50%,#4f7cff);transform-origin:top;transform:scaleY(var(--p))}
.hm-n{position:absolute;left:-64px;top:0;width:48px;padding:6px 0;font-size:30px;text-align:center;-webkit-text-stroke-width:1.2px}
.hm-sa{place-items:start;height:auto;margin:0 0 4px}
.hm-step h3{margin-top:10px}
.hm-step p{margin:0}
.hm-sa .hm-l4{margin:0 0 8px}
.hm-sa .hm-bars{justify-content:flex-start}
.hm-sa svg{margin-left:-14px}
}

/* ---- Events (restyle only) ---- */
.hm-home #events .event-next{isolation:isolate;border:0;background:none}
.hm-home #events .event-next::before{content:"";position:absolute;z-index:-2;left:50%;top:50%;width:250%;aspect-ratio:1;margin:-125% 0 0 -125%;background:conic-gradient(#6d5cff,#4f7cff,rgba(79,124,255,.15),rgba(109,92,255,.15),#b3a8ff,#6d5cff);animation:hm-spin 4s linear infinite}
.hm-home #events .event-next::after{content:"";position:absolute;z-index:-1;inset:1.5px;border-radius:18.5px;background:radial-gradient(circle at 100% 0%,rgba(109,92,255,.2),transparent 55%),#10152a}
.hm-home #events .event-past__media::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.22) 50%,transparent 62%);pointer-events:none;transform:translateX(-100%);animation:hm-shine 6s ease-in-out 1s infinite}
@keyframes hm-shine{0%{transform:translateX(-100%)}30%,100%{transform:translateX(100%)}}
.hm-cnt{position:relative;display:inline-block}
.hm-cnt__g{visibility:hidden}
.hm-cnt .hm-tick{position:absolute;left:0;top:0}

/* ---- Download ---- */
.hm-dl{position:relative;overflow:hidden}
.hm-dl .hm-eyebrow{color:#fff}
.hm-dl .hm-eyebrow::before{background:#fff;box-shadow:0 0 12px #fff}
.hm-dl h2{font-size:clamp(48px,8vw,96px);letter-spacing:-.04em;line-height:1;margin-bottom:18px}
.hm-qrw{position:relative;display:grid;place-items:center;padding:18px}
.hm-qrw>i{position:absolute;left:50%;top:50%;width:200px;height:200px;margin:-100px;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);opacity:0;animation:hm-ring 3s ease-out infinite}
.hm-qrw>i:nth-child(2){animation-delay:-1s}.hm-qrw>i:nth-child(3){animation-delay:-2s}
.hm-home .hm-qr{position:relative;overflow:hidden}
.hm-qr::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#7c5cff;box-shadow:0 0 14px 3px rgba(124,92,255,.8);opacity:0}
.hm-in .hm-qr::after{animation:hm-scan 1.6s ease-in-out .3s both}
@keyframes hm-scan{0%{opacity:0;transform:translateY(8px)}10%,85%{opacity:1}100%{opacity:0;transform:translateY(190px)}}
@media (max-width:479px){.hm-dl .download-grid{display:flex;width:100%}.hm-qrw{padding:14px}}


@media (prefers-reduced-motion:reduce){
.hm-home *,.hm-home *::before,.hm-home *::after{animation:none!important;transition:none!important}
html.js .hm-rv{opacity:1;transform:none}
html.js .hm-steps{--p:1}
.hm-rings,.hm-sw,.hm-band__btn,.hm-band__set+.hm-band__set,.hm-sco__p{display:none}
.hm-band__track{width:auto}
.hm-band__set{padding-left:60px}
.hm-band__set li:last-child::after{display:none}
.hm-bp i{opacity:1}
}
