/* v2.2.5: start at the hero, then let visitors scroll freely. */
html[data-start-top]{scroll-behavior:auto;overflow-anchor:none}
.stat-value{font-variant-numeric:tabular-nums}
.hero-copy>h1>span{transform-origin:50% 100%}
.faq-panel-inner p{white-space:pre-wrap;overflow-wrap:anywhere}

/* Compact, interactive voice scene inspired by the supplied reference. */
.afk-section{gap:64px;padding-top:35px;padding-bottom:100px}
.afk-copy{max-width:470px}
.afk-copy h2{max-width:420px;text-wrap:balance}
.afk-copy>p{margin-bottom:25px}
.afk-availability{font-size:10px;color:#82969c;margin-top:17px}
.afk-demo{position:relative;isolation:isolate;width:100%;max-width:460px;justify-self:center;text-align:center;padding:35px 0 20px}
.afk-scene-glow{position:absolute;inset:-50px -25px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 45% 45%,#91f2db0b,transparent 62%)}
.afk-voice-card{position:relative;text-align:left;padding:18px 20px 17px;border:4px solid #b8cad00a;border-radius:17px;background:linear-gradient(130deg,#151a20,#11141b);background-clip:padding-box;box-shadow:0 16px 55px #0004,inset 0 1px 0 #ffffff04}
.afk-room-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:19px;min-width:0}
.afk-room-heading>span{display:flex;align-items:center;gap:9px;min-width:0}
.afk-room-heading svg{width:21px;height:21px;flex:none;color:#78dbad}
.afk-room-heading strong{font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.2px}
.afk-room-heading time{font:600 12px/1.4 var(--font);font-variant-numeric:tabular-nums;letter-spacing:.025em;color:#78dbad;flex:none}
.afk-member{display:flex;align-items:center;gap:9px;min-height:37px}
.afk-member>strong{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.afk-member-avatar{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#223b37;border:2px solid transparent;transition:border-color .24s,box-shadow .24s,filter .24s}
.afk-member-avatar img{width:25px;height:25px;object-fit:cover;border-radius:50%}
.afk-member-indicators{display:flex;align-items:center;gap:7px;margin-left:auto;padding-left:4px;flex:none;color:#dce3e9}
.afk-member-indicators>span{display:grid;place-items:center}
.afk-member-indicators svg{width:13px;height:13px}
.afk-member-indicators .afk-live-tag{background:#e63d68;color:#fff;padding:3px 6px;border-radius:5px;font-size:8px;line-height:1.3;font-weight:800;letter-spacing:.035em;box-shadow:0 0 15px #e63d6830;animation:afk-live-in .23s ease-out}
.afk-controls{display:flex;align-items:center;justify-content:center;gap:10px;margin:22px auto 0}
.afk-control{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #bcc8d021;border-radius:50%;background:linear-gradient(145deg,#22262d,#14171d);color:#a6acb7;cursor:pointer;box-shadow:0 4px 14px #0003;transition:color .2s,background .2s,border-color .2s,box-shadow .2s,scale .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.afk-control svg{width:17px;height:17px}
.afk-control.is-on{background:#d8f6ec;color:#142922;border-color:#d8f6ec;box-shadow:0 0 22px #91f2db12}
.afk-control:focus-visible{outline:2px solid var(--mint);outline-offset:5px}
.afk-control:active{scale:.92}
.afk-feedback{font-size:10px;line-height:1.6;min-height:16px;color:#a8bdb8;margin:15px 0 0}
.afk-demo-note{font-size:8px;line-height:1.7;color:#71838c;margin:7px 0 0}
.afk-demo-note span{margin:0 5px;color:#527a72}
.afk-demo [hidden]{display:none!important}
@keyframes afk-live-in{from{opacity:0;scale:.85}to{opacity:1;scale:1}}
@media(hover:hover){.afk-control:hover{border-color:#91f2db68;color:#e3f6ed;scale:1.06}.afk-control.is-on:hover{color:#142922;background:#ebfff8}}
@media(max-width:900px){.afk-section{gap:38px}.afk-member-indicators{gap:5px}.afk-voice-card{padding:17px 15px}.afk-room-heading strong{font-size:13px}}
@media(max-width:650px){.afk-section{grid-template-columns:1fr;gap:28px;padding-top:35px;padding-bottom:75px}.afk-copy{text-align:center;justify-self:center}.afk-copy .eyebrow{justify-content:center}.afk-copy h2{margin-left:auto;margin-right:auto;max-width:320px;font-size:32px;line-height:1.2}.afk-copy>p{font-size:12px;line-height:1.9;max-width:345px;margin-left:auto;margin-right:auto}.afk-copy .button{min-height:45px}.afk-availability{font-size:9px}.afk-demo{max-width:370px;padding:9px 0 15px}.afk-voice-card{padding:17px 15px 15px;border-radius:16px}.afk-room-heading{margin-bottom:17px}.afk-room-heading strong{font-size:14px}.afk-room-heading time{font-size:12px}.afk-controls{gap:10px;margin-top:20px}.afk-member>strong{font-size:12px}.afk-feedback{font-size:10px}.afk-demo-note{font-size:8px}}
@media(max-width:360px){.afk-member-indicators{gap:4px}.afk-member-indicators svg{width:11px;height:11px}.afk-member-indicators .afk-live-tag{font-size:7px;padding:3px 4px}.afk-voice-card{padding-left:11px;padding-right:11px}.afk-member>strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){.afk-member-avatar.is-speaking,.afk-live-tag{animation:none!important}.afk-demo *{transition:none!important}.afk-control:hover{scale:1}}

/* One page index feeds the section labels and every item in the menu. */
html{scroll-padding-top:calc(var(--site-header-height,76px) + 18px)}
.mobile-menu{display:grid}
#mobile-nav{max-height:calc(100vh - var(--site-header-height,76px) - 12px);max-height:calc(100dvh - var(--site-header-height,76px) - 12px);overflow-y:auto;overscroll-behavior:contain;padding:14px 24px 20px;gap:3px}
#mobile-nav a{display:flex;align-items:center;gap:14px;min-height:44px;padding:9px 12px;border-radius:9px;font-size:13px;line-height:1.5}
#mobile-nav .nav-section-number{flex:0 0 24px;color:#748991;font-size:10px;letter-spacing:.08em;font-variant-numeric:tabular-nums}
#mobile-nav a[aria-current="location"]{color:var(--mint);background:#91f2db0b}
#mobile-nav a[aria-current="location"] .nav-section-number{color:var(--mint)}
#mobile-nav a:focus-visible{outline:2px solid var(--mint);outline-offset:-2px}
.desktop-nav a[aria-current="location"]{color:var(--mint)}
@media(max-width:1050px){.desktop-nav{display:none}}

/* A pending scene keeps its height but does not play below the fold. */
.profiles-stage.intro-pending .profile-card{opacity:0;visibility:hidden;transition:none;pointer-events:none}
.profiles-stage.intro-pending+.profile-switcher{visibility:hidden}
.profiles-stage.intro-entering .profile-card{transition:none}

/* Three independent sample accounts with speech bursts and a visible ring. */
.afk-members{display:flex;flex-direction:column;gap:17px}
.afk-member{min-height:42px;gap:10px}
.afk-member-avatar{position:relative;isolation:isolate;overflow:visible}
.afk-member-avatar.violet{background:linear-gradient(135deg,#a783c4,#715d92)}
.afk-member-avatar.blue{background:linear-gradient(135deg,#76b8dc,#50769f)}
.afk-avatar-letter{font-size:14px;font-weight:600;color:#fff}
.afk-presence-dot{position:absolute;right:-2px;bottom:-1px;width:9px;height:9px;border:2px solid #151a20;border-radius:50%;background:#76dca8}
.afk-member-avatar.is-speaking{border-color:#68e6a5;box-shadow:0 0 0 2px #68e6a531,0 0 18px #68e6a52b;animation:afk-ring-light .85s ease-in-out infinite alternate}
.afk-member-avatar.is-speaking:before{content:'';position:absolute;inset:-5px;border:1px solid #68e6a5;border-radius:50%;pointer-events:none;animation:afk-ring-wave 1.25s ease-out infinite}
.afk-member-copy{display:flex;flex-direction:column;gap:1px;min-width:0;text-align:left}
.afk-member-copy>strong{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.afk-member-status{font-size:8px;line-height:1.5;color:#7f949b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.afk-member.is-speaking .afk-member-status{color:#83d8b0}
.afk-speaking-bars{display:flex;align-items:center;gap:2px;height:15px;flex:0 0 10px;visibility:hidden}
.afk-member.is-speaking .afk-speaking-bars{visibility:visible}
.afk-speaking-bars i{display:block;width:2px;height:9px;border-radius:2px;background:#68e6a5;transform-origin:center;animation:afk-audio-bar .52s ease-in-out infinite alternate}
.afk-speaking-bars i:nth-child(2){height:14px;animation-delay:-.31s}
.afk-speaking-bars i:nth-child(3){height:6px;animation-delay:-.17s}
.afk-control>span{display:grid;place-items:center}
.afk-control.is-muted{background:#40232e;color:#f0a2b8;border-color:#f0a2b83b;box-shadow:none}
.afk-demo.is-paused .afk-member-avatar,.afk-demo.is-paused .afk-member-avatar:before,.afk-demo.is-paused .afk-speaking-bars i{animation-play-state:paused}
.afk-demo.is-motionless .afk-member-avatar,.afk-demo.is-motionless .afk-member-avatar:before,.afk-demo.is-motionless .afk-speaking-bars i{animation:none}
@keyframes afk-ring-light{to{border-color:#a4ffd0;box-shadow:0 0 0 3px #68e6a54a,0 0 22px #68e6a54d}}
@keyframes afk-ring-wave{from{opacity:.7;scale:.96}to{opacity:0;scale:1.3}}
@keyframes afk-audio-bar{from{scale:1 .4}to{scale:1 1}}
@media(hover:hover){.afk-control.is-muted:hover{background:#53303e;color:#ffc0d2}}
@media(max-width:360px){.afk-member{gap:8px}.afk-member-copy>strong{font-size:11px}.afk-member-status{max-width:118px}.afk-member-indicators{gap:4px}}
@media(prefers-reduced-motion:reduce){.afk-member-avatar.is-speaking:before,.afk-speaking-bars i{animation:none!important}.profiles-stage.intro-pending .profile-card{visibility:visible;opacity:1}}

@media(max-width:650px){.afk-copy,.afk-demo{margin-inline:auto}}

/* AFK belongs to the utility group; avoid nested section gutters. */
#utilities>#afk{margin-top:64px;padding-top:0;padding-bottom:0}
.community-discord img{display:block;width:100%;height:100%;object-fit:contain;filter:none}
@media(max-width:650px){#utilities>#afk{margin-top:48px}}
.community-discord{display:grid;place-items:center;width:72px;height:72px}
@media(max-width:650px){.community-discord{width:60px;height:60px}}

/* Keep diagonal one-finger gestures on the document's vertical scroll axis.
   Admin tabs, crop canvas and dialogs sit outside main and retain their own gestures. */
html{max-width:100%;overscroll-behavior-x:none}
body{max-width:100%;overflow-x:hidden;overscroll-behavior-x:none}
main{min-width:0;max-width:100%;touch-action:pan-y pinch-zoom}
main>.section-shell{min-width:0}
@supports(overflow:clip){
 main{overflow-x:clip}
 .hero,.presence-strip,.final-section{overflow:clip}
}

/* One persistent glyph morphs between menu and close; no SVG is replaced on tap. */
#menu-toggle{transition:scale .28s cubic-bezier(.22,1,.36,1)}
#menu-toggle:active{scale:.94}
#menu-toggle .menu-glyph{position:relative;display:block;width:22px;height:18px}
#menu-toggle .menu-glyph,#menu-toggle .menu-glyph *{pointer-events:none}
#menu-toggle .menu-glyph i{position:absolute;left:0;top:8px;width:22px;height:1.6px;border-radius:3px;background:currentColor;transform-origin:center;transition:transform .44s cubic-bezier(.22,1,.36,1),opacity .25s ease}
#menu-toggle .menu-glyph i:nth-child(1){transform:translateY(-6px)}
#menu-toggle .menu-glyph i:nth-child(3){transform:translateY(6px)}
#menu-toggle[aria-expanded="true"] .menu-glyph i:nth-child(1){transform:rotate(45deg)}
#menu-toggle[aria-expanded="true"] .menu-glyph i:nth-child(2){opacity:0;transform:scaleX(.3)}
#menu-toggle[aria-expanded="true"] .menu-glyph i:nth-child(3){transform:rotate(-45deg)}
@media(prefers-reduced-motion:reduce){#menu-toggle,#menu-toggle .menu-glyph i{transition:none!important}}
