.demo-panel{background:white;padding:18px;border:1px solid #e5deeb;border-radius:18px;max-width:350px}.demo-panel label{display:block;color:#8b7797;font-size:12px;margin-bottom:8px}select{font:inherit;border:1px solid #e0d5e7;border-radius:10px;background:white;color:#624f70;padding:10px}.demo-panel select{width:100%;margin-bottom:8px}.demo-panel button{border:0;border-radius:10px;background:#f0e9f5;color:#785e8b;padding:10px}.demo-panel p{font-size:11px;margin-bottom:0}#own-profile{border:0;width:36px;height:36px;font-size:14px}.screen{min-height:540px}.session-list{display:grid;gap:12px;margin:20px 0}.list-card{border:1px solid #eee6f3;border-radius:16px;padding:14px;margin:10px 0}.back{display:block}.city-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.city-row h2{margin:0}.city-row select{max-width:145px;font-size:12px}.status{font-size:11px;color:#896b9e;background:#f5eff9;padding:5px 8px;border-radius:8px;display:inline-block;margin:6px 0}.bubble{white-space:pre-wrap}.track-bubble{border:1px solid #cab4dc;background:linear-gradient(120deg,#f7effb,#eff8f5);padding:16px;border-radius:14px;margin:8px 0;font-size:13px}.chat-head{position:sticky;top:0;background:white;padding:10px 0;border-bottom:1px solid #eee5f4;z-index:1}.chat-head button{border:0;background:none;color:#87699e;padding:5px}.chat-head h3{margin:0 0 8px}.composer{flex-wrap:wrap}.composer input{flex-basis:65%}.composer select{font-size:11px;max-width:110px}.entry-form{display:grid;gap:13px}.entry-form label{font-size:12px;color:#7c668a;display:grid;gap:6px}.entry-form input{font:inherit;width:100%;border:1px solid #e0d5e7;border-radius:10px;padding:12px}.entry-form .primary{margin-top:8px}.empty{padding:22px 12px;color:#8d7c98;line-height:1.7;text-align:center}.notice{padding:12px;background:#f7f1fa;border:0;border-radius:12px;display:block;width:100%;text-align:left;margin:8px 0;color:#725b81;font-size:12px}.sm-actions{display:flex;gap:8px;margin:10px 0}.sm-actions button{padding:8px 12px;background:#f2ecf7;border:0;border-radius:10px;color:#715389}.own-imprint{height:190px}.own-imprint img{height:185px;width:100%;object-fit:contain}#unread:not(:empty){background:#8a69a0;border-radius:10px;color:white;padding:2px 5px;font-size:9px}nav{position:sticky;bottom:0;z-index:2}#loading-error{color:#9c4768}
.person-imprint{width:90px;height:80px;object-fit:contain;margin-left:auto}.list-card{align-items:center}.list-card .badge{display:block;margin-top:7px;width:max-content}.list-card .avatar{width:48px;height:48px}.illustrated{padding:0;overflow:hidden}.session-cover{display:block;width:100%;height:155px;object-fit:cover;background:linear-gradient(120deg,#eee3f5,#e3f1ed);margin-bottom:15px}.illustrated .session-cover{margin:0}.card-body{padding:15px}.session-avatar{width:52px;height:52px;object-fit:cover;border-radius:14px;float:left;margin:0 12px 10px 0;background:#f1eaf7}.hub-filters{display:flex;gap:7px;margin:20px 0}.hub-filters button{border:1px solid #e5d9ed;border-radius:25px;background:white;color:#82698f;padding:9px 14px}.hub-filters button[aria-pressed=true]{background:linear-gradient(110deg,#f0e4f7,#e5eff4);border-color:#c6afd8;color:#69497e}fieldset{min-width:0;border:1px solid #e5daec;border-radius:16px;padding:14px}legend{font-size:12px;color:#84658e}.cover-picker{display:flex;gap:6px}.cover-picker label{flex:1;min-width:0}.cover-picker img{width:100%;height:55px;object-fit:cover;border-radius:8px}.cover-picker input{width:auto}.cover-picker label:has(:checked) img{outline:2px solid #976cab;outline-offset:2px}.location-picker label{margin-top:12px}#location-map{width:100%;border-radius:14px;cursor:crosshair;touch-action:manipulation}#location-map:focus-visible{outline:3px solid #b593cb}.chat-head:after{content:'';display:block;clear:both}
/* Personal imprints dissolve into their surroundings; preserve sharp central artwork. */
.person-imprint,.own-imprint img{
 -webkit-mask-image:radial-gradient(ellipse closest-side at center,#000 48%,rgba(0,0,0,.92) 64%,rgba(0,0,0,.4) 84%,transparent 100%);
 mask-image:radial-gradient(ellipse closest-side at center,#000 48%,rgba(0,0,0,.92) 64%,rgba(0,0,0,.4) 84%,transparent 100%);
}
.own-imprint:before{border-radius:0;-webkit-mask-image:radial-gradient(ellipse closest-side,#000 35%,transparent 100%);mask-image:radial-gradient(ellipse closest-side,#000 35%,transparent 100%)}
/* People exploration: four compact photo tiles, no imprint or card frame. */
.people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 10px;margin-top:24px;align-items:start}.person-tile{display:flex;min-width:0;flex-direction:column;align-items:center;background:none;border:0;padding:0 0 5px;color:#44354d;border-radius:14px}.person-tile .avatar{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:50%;margin:0 0 9px}.person-tile strong{font-size:13px;line-height:1.2;margin-bottom:5px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.person-distance,.person-match{display:block;font-size:10px;line-height:1.6;white-space:nowrap}.person-distance{color:#98899f}.person-match{color:#8b669e}.person-tile:hover .avatar{box-shadow:0 0 0 3px #e8def0}.avatar.photo{object-fit:cover}.person-tile:focus-visible{outline-offset:5px}@media(max-width:360px){.people-grid{gap:20px 7px}.person-tile strong{font-size:12px}.person-distance,.person-match{font-size:9px}}

.person-distance{display:flex;align-items:center;justify-content:center;gap:3px}.person-distance svg{width:11px;height:11px;flex-shrink:0}
/* Soft, irregular aura: disconnected color clouds and seeded dust, no ring. */
.avatar-aura{position:relative;display:block;width:100%;aspect-ratio:1;margin:0 0 9px;isolation:isolate}
.aura-cloud{position:absolute;inset:-9%;z-index:0;pointer-events:none;transform:rotate(var(--aura-turn));background:radial-gradient(ellipse at 22% 26%,#c98be5a3 0%,#c98be54d 17%,transparent 38%),radial-gradient(ellipse at 78% 28%,#8ebbe5a8 0%,#8ebbe54d 14%,transparent 36%),radial-gradient(ellipse at 84% 68%,#77c6b994 0%,#77c6b933 17%,transparent 35%),radial-gradient(ellipse at 38% 85%,#d8b59a91 0%,#e5c48238 14%,transparent 34%),radial-gradient(ellipse at 10% 65%,#d394c98c 0%,transparent 32%);filter:blur(3px);border-radius:42% 58% 61% 39%;opacity:.88;transition:opacity .2s ease}
.aura-dust{position:absolute;width:128%;height:128%;left:-14%;top:-14%;z-index:1;pointer-events:none;overflow:visible}
.person-tile .avatar-aura .avatar{position:relative;z-index:2;display:block;width:100%;height:100%;margin:0;-webkit-mask-image:radial-gradient(circle closest-side,#000 93%,#000c 97%,transparent 100%);mask-image:radial-gradient(circle closest-side,#000 93%,#000c 97%,transparent 100%)}
.person-tile:hover .avatar{box-shadow:none}.person-tile:hover .aura-cloud{opacity:1}
@media(prefers-reduced-motion:reduce){.aura-cloud{transition:none}}
/* Blend the photograph itself into the aura, keeping only its center opaque. */
.person-tile .avatar-aura .avatar{
 -webkit-mask-image:radial-gradient(circle closest-side,#000 62%,rgba(0,0,0,.94) 72%,rgba(0,0,0,.68) 82%,rgba(0,0,0,.28) 92%,transparent 100%);
 mask-image:radial-gradient(circle closest-side,#000 62%,rgba(0,0,0,.94) 72%,rgba(0,0,0,.68) 82%,rgba(0,0,0,.28) 92%,transparent 100%);
}
/* A/B review: identical portrait size, contained circular color treatment. */
.aura-review{display:flex;gap:7px;margin:18px 0 4px}.aura-review button{flex:1;min-width:0;border:1px solid #e7ddec;background:white;border-radius:12px;padding:9px 5px;font-size:11px;color:#907a9b}.aura-review button[aria-pressed=true]{background:#f2eaf8;border-color:#c6aed7;color:#725386}
[data-aura] .aura-dust{display:none}
[data-aura] .aura-cloud{inset:0;border-radius:50%;transform:none;background:conic-gradient(from 215deg,#dc7fbd,#ae74dd,#789be3,#65bbc8,#83c6a1,#e2cd75,#e9988e,#dc7fbd);opacity:1}
[data-aura] .person-tile .avatar-aura .avatar{position:absolute;left:4px;top:4px;width:calc(100% - 8px);height:calc(100% - 8px)}
[data-aura=soft] .aura-cloud{filter:blur(1.5px);-webkit-mask-image:radial-gradient(circle closest-side,#000 84%,#000b 93%,transparent 100%);mask-image:radial-gradient(circle closest-side,#000 84%,#000b 93%,transparent 100%)}
[data-aura=soft] .person-tile .avatar-aura .avatar{-webkit-mask-image:radial-gradient(circle closest-side,#000 84%,#000e 90%,#0006 96%,transparent 100%);mask-image:radial-gradient(circle closest-side,#000 84%,#000e 90%,#0006 96%,transparent 100%)}
[data-aura=ring] .aura-cloud{filter:none;background:conic-gradient(from 215deg,#e66bb1,#b267df,#638ee4,#38b9cd,#65c398,#eed160,#ef947c,#e66bb1);-webkit-mask-image:none;mask-image:none}
[data-aura=ring] .person-tile .avatar-aura .avatar{-webkit-mask-image:none;mask-image:none;outline:1px solid white}

/* Approved soft edge, individual stable palettes. */
[data-aura=soft] .aura-cloud{background:var(--avatar-gradient)}
/* Tagline begins at the icon's left edge, not centered beneath the lockup. */
.brand .brand-tagline{text-align:left;justify-self:start}
/* Optical alignment accounts for the SVG's internal left whitespace (24/170 × 32px). */
.brand .brand-tagline{margin-left:4.5px}
.profile-identity .avatar{width:54px;height:54px}.profile-facts{display:flex;align-items:center;gap:12px;font-size:11px;color:#8b719b}.profile-facts .person-distance{font-size:11px}.profile-imprint{margin:10px -22px 4px;aspect-ratio:16/9;position:relative}.profile-imprint img{display:block;width:100%;height:100%;object-fit:contain;-webkit-mask-image:radial-gradient(ellipse closest-side,#000 55%,#000d 76%,transparent 100%);mask-image:radial-gradient(ellipse closest-side,#000 55%,#000d 76%,transparent 100%)}.profile-plans h3{margin-bottom:10px}.profile-session-row{display:flex;align-items:center;gap:11px;width:100%;padding:11px 0;border:0;border-bottom:1px solid #f0eaf4;background:white;text-align:left;color:#493a52}.profile-session-thumb{width:54px;height:54px;border-radius:12px;object-fit:cover;background:#f1eaf6;flex-shrink:0}.profile-session-text{display:grid;gap:4px;min-width:0;flex:1}.profile-session-text strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-session-role{font-size:10px;color:#9a7aa9}.profile-session-text .muted{font-size:10px}.profile-session-arrow{font-size:21px;color:#b49fc0}.profile-session-row:hover{background:#fcf9fd}
.profile-favorites{display:grid;gap:15px;margin:8px 0 22px}.profile-favorites:empty{display:none}.profile-favorites h3{font-size:12px;font-weight:600;color:#8d7999;margin:0 0 8px}.profile-favorites ul{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.profile-favorites li{font-size:11px;line-height:1.4;padding:5px 9px;border-radius:10px;background:#f6f1f9;color:#735b83}.profile-favorites section+section li{background:#f1f6f6;color:#607e81}
.session-list{gap:0}.session-list-row{padding:13px 0}.session-list-row .profile-session-thumb{width:58px;height:58px}.session-place{font-size:10px;color:#94869b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-create-action{margin:15px 0 7px}.session-create-action .primary{display:block;width:100%;min-height:46px}
.discovery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 12px}.view-switch{display:flex;border:1px solid #e6dcec;border-radius:12px;padding:3px}.view-switch button,.discovery-types button{border:0;background:none;color:#937f9f;font-size:12px;padding:8px 13px;border-radius:9px}.view-switch button[aria-pressed=true]{background:linear-gradient(110deg,#eee1f7,#e4eef4);color:#6e4c85}.discovery-toolbar select{font-size:11px;padding:9px}.discovery-types{display:flex;gap:4px;margin:0 0 13px;flex-wrap:wrap}.discovery-types button{padding:7px 12px;font-size:11px;border:1px solid #eee5f2}.discovery-types button[aria-pressed=true]{background:#f3eaf8;border-color:#cdb6de;color:#77538f}.music-map{position:relative;aspect-ratio:400/430;border-radius:22px;border:1px solid #e9e2ef;background:#f7f4f8;isolation:isolate}.music-map>svg{position:absolute;inset:0;width:100%;height:100%;border-radius:22px}.music-point{position:absolute;width:44px;height:44px;transform:translate(-50%,-50%);display:grid;place-items:center;padding:0;border:0;background:none;z-index:2;cursor:pointer}.point-core{position:relative;width:22px;height:22px;border-radius:50%;background:var(--point-gradient);box-shadow:0 2px 8px #77538f33;border:2px solid white;color:white;font-size:10px;font-weight:bold;display:grid;place-items:center}.music-point.is-live:before{content:'';position:absolute;inset:8px;border:2px solid var(--point-color);border-radius:50%;background:var(--point-color);animation:point-pulse 1.8s ease-out infinite;opacity:.65}.music-point.is-live:nth-of-type(2n):before{animation-delay:-.9s}.music-point.selected .point-core{outline:2px solid #6f4e8b;outline-offset:3px}.music-point:hover,.music-point:focus-visible{z-index:4}.music-point:focus-visible{outline:2px solid #9c77b5;border-radius:50%}.point-tooltip{display:none;position:absolute;bottom:42px;left:50%;transform:translateX(-50%);background:white;box-shadow:0 4px 16px #76598622;border:1px solid #eee4f4;color:#71547e;max-width:150px;width:max-content;padding:7px 10px;font-size:11px;line-height:1.3;border-radius:10px;pointer-events:none}.music-point:hover .point-tooltip,.music-point:focus-visible .point-tooltip{display:block}.map-caption{position:absolute;bottom:10px;left:14px;color:#a38ead;font-size:9px;pointer-events:none}.map-selection{border:1px solid #e6d8ee;border-radius:17px;padding:10px 14px;margin-top:12px;background:#fff}.map-selection .row button{border:0;background:none;color:#9c83ac;font-size:24px}.map-selection .profile-session-row:last-child{border:0}.map-help{font-size:11px;color:#95829f;text-align:center;margin:13px 0}.genre-line{display:flex;gap:6px 10px;flex-wrap:wrap;font-size:9px;color:#96829f}.genre-line span{display:inline-flex;align-items:center;gap:4px}.genre-line i{width:6px;height:6px;display:inline-block;border-radius:50%}.map-legend{margin:16px 0;color:#9a86a5;font-size:10px}.map-legend summary{cursor:pointer}.map-legend .genre-line{margin-top:10px}.map-legend p{font-size:10px;line-height:1.5}.map-selection .profile-session-text strong{white-space:normal}.music-map:has(.music-point:focus-visible){overflow:visible}@keyframes point-pulse{0%{transform:scale(.75);opacity:.7}45%{opacity:.4}100%{transform:scale(2.5);opacity:0}}@media(prefers-reduced-motion:reduce){.music-point:before{animation:none;transform:scale(1.1);opacity:.12}}
/* Live sessions: speaker diaphragm and two outgoing sound waves. */
.music-point.is-live:before,.music-point.is-live:after{content:'';position:absolute;inset:8px;border:2px solid var(--point-color);border-radius:50%;pointer-events:none;animation:speaker-wave 1.6s ease-out infinite;background:transparent;opacity:0}
.music-point.is-live:after{animation-delay:.8s}
.music-point.is-live .point-core{animation:speaker-beat 1.6s ease-in-out infinite;box-shadow:0 0 12px var(--point-color);z-index:1}
@keyframes speaker-wave{0%{transform:scale(.75);opacity:.85}45%{opacity:.5}100%{transform:scale(2.5);opacity:0}}
@keyframes speaker-beat{0%,50%,100%{transform:scale(1)}8%,58%{transform:scale(1.2)}20%,70%{transform:scale(.97)}30%,80%{transform:scale(1.05)}}
@media(prefers-reduced-motion:reduce){.music-point.is-live:before{animation:none;transform:scale(1.35);opacity:.45}.music-point.is-live:after{animation:none;opacity:0}.music-point.is-live .point-core{animation:none}}
/* Wordmark-only app header; the icon master remains available for other uses. */
.app-header .brand{grid-template-columns:142px;gap:0;transform:translateX(4.5px)}
.app-header .brand img{width:105px;grid-column:1}
.app-header .brand .brand-tagline{grid-column:1;margin-left:0;white-space:nowrap}
.hub-filters{gap:6px;flex-wrap:wrap}.hub-filters button{border-radius:10px;padding:8px 11px;font-size:12px}
.session-distance{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#9a87a6;line-height:1.5}.session-distance svg{width:12px;height:12px;flex-shrink:0}
.app-header .brand img{transform:translateX(-6.37px)}
#own-profile{padding:0;overflow:hidden;display:grid;place-items:center}
#own-profile .avatar.photo{width:100%;height:100%;margin:0;object-fit:cover}
img[src="assets/avatar-you.jpg"]{object-position:50% 32%}
.app-header{display:grid;grid-template-columns:142px minmax(0,1fr) 36px;gap:8px}
.header-context{min-width:0;text-align:center}.header-context #city{width:auto;max-width:100%;border:0;background:transparent;padding:10px 2px;font-size:12px;color:#80668e;cursor:pointer}
.header-contact{border:0;background:none;padding:8px 0;color:#5d476b;max-width:100%;width:100%;text-align:center}.header-contact strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-contact small{display:block;font-size:9px;color:#a08baa;margin-top:4px}
.screen[data-route=people] h2,.screen[data-route=discovery] h2,.screen[data-route=sessions] h2,.screen[data-route=messages] h2{font-size:20px;letter-spacing:-.3px}
.msg-header.msg-tools{justify-content:space-between;padding:0 0 8px;border-bottom:0}.msg-tools .msg-back{display:flex;align-items:center;gap:7px}.msg-tools .msg-back span{font-size:11px}.msg-tools .msg-mute{min-height:32px}
@media(max-width:360px){.app-header{grid-template-columns:125px minmax(0,1fr) 32px;padding-left:16px;padding-right:16px;gap:4px}.app-header .brand{grid-template-columns:125px}.header-context #city{font-size:11px}.header-contact small{display:none}}
/* Equal side columns keep the city at the true center of the header. */
.app-header{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:4px}
.app-header .brand{grid-template-columns:110px;justify-self:start}
.app-header .brand img{width:88px;transform:translateX(-5.34px)}
.app-header .brand .brand-tagline{font-size:10px;margin-top:1px}
.app-header #own-profile{justify-self:end}
.header-context{width:100%;justify-self:center}
.header-context #city{font-size:13px;font-weight:500;color:#222;padding:10px 0;text-align:center}
.header-contact{color:#222}.header-contact strong{font-size:13px}
@media(max-width:360px){.app-header{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:2px}.app-header .brand{grid-template-columns:100px}.app-header .brand .brand-tagline{font-size:9px}.header-context #city{font-size:12px}}
