.passport{margin-top:24px}.passport h2{margin:8px 0}.passport-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:24px 0}.passport-grid>div{min-width:0}.passport-balance{display:grid;color:var(--brand,#dc82ff);white-space:nowrap}.passport-balance strong{font-size:36px;line-height:1.2}.passport-balance span{font-size:12px}.passport-code{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.passport-code code{font-size:18px;letter-spacing:1px;overflow-wrap:anywhere}.passport-opt{margin-top:18px;align-items:flex-start!important}.passport-opt input{flex-shrink:0}.passport form{display:grid;gap:12px;margin:16px 0;max-width:340px}.passport form .button{justify-self:start}.passport-rewards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:20px;margin:20px 0}.passport-reward{border-top:2px solid var(--brand,#dc82ff);padding:16px 0;display:flex;flex-direction:column;gap:12px;min-width:0}.passport-reward h4,.passport-reward p{margin:0;overflow-wrap:anywhere}.passport-reward .button{align-self:start;margin-top:auto}.passport-history summary{font-weight:800;margin:18px 0;cursor:pointer}.passport-history small{display:block;color:var(--muted,#a5a5c5)}.passport-history h3{margin-top:20px}.passport-invite{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:16px;padding:16px 0;border-top:1px solid var(--stroke,#2d2e50)}.passport-invite p{margin:0;font-size:13px}.passport-invite a{font-weight:900;color:var(--brand,#dc82ff)}@media(max-width:650px){.passport-grid{grid-template-columns:1fr;gap:24px}.passport .page-heading{flex-wrap:wrap}.passport-code code{font-size:16px}}


/* Listener appearances stay on the edges, below menus and the persistent player. */
.listener-ghosts{position:fixed;inset:0;z-index:12;pointer-events:none}
.listener-ghost{position:absolute;display:block;width:68px;height:116px;margin:0;padding:3px;border:0;border-radius:12px;background:none;color:var(--cream,var(--text,#fff1ff));cursor:pointer;pointer-events:auto;outline-offset:3px;touch-action:manipulation}
.listener-ghost[data-side=left]{left:max(6px,env(safe-area-inset-left))}
.listener-ghost[data-side=right]{right:max(6px,env(safe-area-inset-right))}
.listener-ghost-portrait{display:block;width:64px;height:110px;object-fit:contain;image-rendering:pixelated;opacity:.32;filter:drop-shadow(0 0 8px var(--brand,var(--accent,#dc82ff)));transition:opacity .2s ease-out,filter .2s ease-out;pointer-events:none}
.listener-ghost[data-slot="0"] .listener-ghost-portrait,.listener-ghost[data-slot="1"] .listener-ghost-portrait{animation:listener-ghost-float 5s ease-in-out infinite alternate}
.listener-ghost[data-slot="1"] .listener-ghost-portrait{animation-delay:-2.5s}
.listener-ghost-message{position:absolute;display:grid;gap:5px;width:230px;max-width:calc(100vw - 64px);padding:12px 14px;text-align:left;white-space:normal;overflow-wrap:anywhere;border:1px solid var(--brand,var(--accent,#dc82ff));border-radius:12px;background:var(--surface,#14152e);color:var(--cream,var(--text,#fff1ff));box-shadow:0 10px 32px #0005;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease-out;max-height:calc(100dvh - 140px);overflow:auto}
.listener-ghost[data-side=left] .listener-ghost-message{left:calc(100% - 12px)}
.listener-ghost[data-side=right] .listener-ghost-message{right:calc(100% - 12px)}
.listener-ghost-name{font-size:14px;line-height:1.3;color:var(--brand,var(--accent,#dc82ff))}
.listener-ghost-text{font-size:13px;line-height:1.5}
.listener-ghost.is-open .listener-ghost-portrait,.listener-ghost:focus-visible .listener-ghost-portrait{opacity:1;filter:drop-shadow(0 0 12px var(--brand,var(--accent,#dc82ff)));animation-play-state:paused}
.listener-ghost.is-open .listener-ghost-message,.listener-ghost:focus-visible .listener-ghost-message{opacity:1;visibility:visible;pointer-events:auto}
.listener-ghost:focus-visible{outline:2px solid var(--brand,var(--accent,#dc82ff))}
.listener-ghost.is-open{z-index:1}
@media(hover:hover){.listener-ghost:hover .listener-ghost-portrait{opacity:1;animation-play-state:paused}.listener-ghost:hover .listener-ghost-message{opacity:1;visibility:visible;pointer-events:auto}.listener-ghost:hover{z-index:1}}
.listener-ghost.is-dismissed:not(.is-open) .listener-ghost-message{opacity:0;visibility:hidden;pointer-events:none}
@keyframes listener-ghost-float{from{transform:translateY(0)}to{transform:translateY(-5px)}}
@media(max-width:1439px){.listener-ghost{width:44px;height:90px;padding:0}.listener-ghost-portrait{width:40px;height:88px}.listener-ghost[data-side=left]{left:2px}.listener-ghost[data-side=right]{right:2px}}
@media(max-width:1319px){.listener-ghost[data-slot="2"],.listener-ghost[data-slot="3"]{display:none}.listener-ghost{height:80px}.listener-ghost-portrait{width:34px;height:78px}.listener-ghost[data-side=left] .listener-ghost-portrait{margin-right:auto}.listener-ghost[data-side=right] .listener-ghost-portrait{margin-left:auto}}
@media(max-height:550px){.listener-ghost[data-slot="2"],.listener-ghost[data-slot="3"]{display:none}}
@media(prefers-reduced-motion:reduce){.listener-ghost-portrait{animation:none!important;transition:none}.listener-ghost-message{transition:none}}
.verify-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr);gap:28px;align-items:center;margin:20px 0 4px;padding:22px 24px;border:1px solid var(--stroke,#2d2e50);border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--raised,#24264a) 88%,#16b3ae) 0%,var(--raised,#24264a) 60%);position:relative;overflow:hidden}
.verify-card:not(.is-pending){grid-template-columns:1fr}.verify-card h3{margin:6px 0 8px;font-size:22px;line-height:1.2;overflow-wrap:anywhere}.verify-card p{margin:0 0 10px}
.verify-intro,.verify-card.is-done{display:flex;gap:20px;align-items:flex-start}.verify-intro .button{margin-top:6px}
.verify-badge-art{flex:none;image-rendering:pixelated;filter:drop-shadow(0 6px 0 rgb(0 0 0 / .22))}
.verify-card.is-done{border-color:color-mix(in srgb,#16b3ae 60%,var(--stroke,#2d2e50))}
.verify-card.is-done.is-new .verify-badge-art{animation:verify-pop .7s cubic-bezier(.34,1.56,.64,1) both}
.verify-steps ol{list-style:none;counter-reset:step;margin:14px 0;padding:0;display:grid;gap:14px}
.verify-steps li{counter-increment:step;display:grid;grid-template-columns:30px 1fr;column-gap:12px;row-gap:6px;align-items:start}
.verify-steps li::before{content:counter(step);grid-row:1 / span 3;width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--brand,#dc82ff);color:#14112b;font-weight:900;box-shadow:inset 0 -3px 0 rgb(0 0 0 / .22)}
.verify-steps li>*{grid-column:2;margin:0}.verify-steps li p{margin:0}
.verify-code{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.verify-code code{font-size:24px;font-weight:900;letter-spacing:2px;padding:6px 12px;border-radius:8px;border:2px dashed color-mix(in srgb,var(--brand,#dc82ff) 70%,transparent);background:rgb(0 0 0 / .22);user-select:all}
.verify-status{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted,#a5a5c5)}.verify-status.is-error{color:#ff9a9a;font-weight:700}
.verify-pulse{width:9px;height:9px;flex:none;border-radius:50%;background:#16b3ae;box-shadow:0 0 0 0 rgb(22 179 174 / .6);animation:verify-pulse 2s ease-out infinite}
.verify-actions{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 10px}
.verify-mock{margin:0;display:grid;gap:8px;justify-items:center;transform:rotate(1.5deg)}
.verify-mock figcaption{font-size:12px;color:var(--muted,#a5a5c5);transform:rotate(-1.5deg)}
.verify-mock-bar{width:100%;display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#1e7f9c;color:#fff;font-weight:800;font-size:13px;border:2px solid #0d1f2b;border-bottom:0;border-radius:8px 8px 0 0}
.verify-mock-bar i{width:14px;height:14px;border-radius:3px;background:#d8473f;box-shadow:inset 0 -2px 0 rgb(0 0 0 / .25)}
.verify-mock-body{width:100%;display:grid;gap:6px;padding:12px;background:#ecebe4;color:#1d1d1d;border:2px solid #0d1f2b;border-radius:0 0 8px 8px;box-shadow:0 8px 0 rgb(0 0 0 / .25)}
.verify-mock-body small{font-size:11px;font-weight:800;color:#555}
.verify-mock-input,.verify-mock-select{padding:6px 8px;background:#fff;border:2px solid #9a9a92;border-radius:4px;font-size:14px}
.verify-mock-input{display:flex;align-items:center;border-color:#1e7f9c}.verify-mock-input b{letter-spacing:1px}
.verify-caret{width:2px;height:16px;margin-left:2px;background:#1d1d1d;animation:verify-caret 1s steps(1) infinite}
.verify-mock-ok{justify-self:end;margin-top:4px;padding:5px 14px;border-radius:4px;background:#3f9e3f;color:#fff;font-weight:900;font-size:13px;border:2px solid #0d1f2b;box-shadow:inset 0 -3px 0 rgb(0 0 0 / .25)}
.public-profile-badges{margin:24px 0}.public-profile-badges h2{margin:0 0 14px}.profile-badge-list{display:flex;flex-wrap:wrap;gap:18px}.profile-badge{margin:0;display:grid;justify-items:center;gap:6px;font-size:12px;font-weight:800}.profile-badge img{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.profile-badge:hover img{transform:translateY(-3px) rotate(-4deg)}
@keyframes verify-pulse{70%{box-shadow:0 0 0 8px rgb(22 179 174 / 0)}100%{box-shadow:0 0 0 0 rgb(22 179 174 / 0)}}
@keyframes verify-caret{50%{opacity:0}}
@keyframes verify-pop{0%{transform:scale(.3) rotate(-25deg);opacity:0}60%{transform:scale(1.12) rotate(5deg);opacity:1}100%{transform:none}}
@media(max-width:760px){.verify-card,.verify-card:not(.is-pending){grid-template-columns:1fr;padding:18px 16px}.verify-mock{max-width:260px;justify-self:center}.verify-intro,.verify-card.is-done{flex-direction:column}}
@media(prefers-reduced-motion:reduce){.verify-pulse,.verify-caret,.verify-card.is-done.is-new .verify-badge-art{animation:none}.verify-mock,.verify-mock figcaption{transform:none}.profile-badge img{transition:none}}
.discord-link{margin-top:24px;border-color:#4b4fb0;background:linear-gradient(135deg,#1b1d4a,#14162f 60%)}.discord-link h2{margin:8px 0}.discord-link h2 span{color:#a8b0ff}.discord-link p{max-width:640px;line-height:1.6}.discord-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
.discord-role{display:inline-block;padding:1px 8px;border-radius:999px;background:#5865f22e;color:#c9ceff;font-size:13px;font-weight:800;white-space:nowrap}
