
/* TableBuddy Customer Profile V4.1 */
.join-profile-modal{width:min(94vw,560px);max-height:min(92vh,860px);padding:0!important;overflow:hidden;position:relative;background:linear-gradient(160deg,#0d0919 0%,#15102a 48%,#0a0814 100%)!important;border:1px solid rgba(181,129,255,.32)!important;box-shadow:0 28px 90px rgba(0,0,0,.62),0 0 70px rgba(126,74,255,.16)!important}
.join-scroll{position:relative;z-index:2;max-height:min(92vh,860px);overflow:auto;padding:24px 22px 20px;scrollbar-width:thin;scrollbar-color:#7653b8 transparent}.join-scroll::-webkit-scrollbar{width:5px}.join-scroll::-webkit-scrollbar-thumb{background:#7653b8;border-radius:999px}
.join-glow{position:absolute;border-radius:999px;filter:blur(55px);opacity:.28;pointer-events:none}.join-glow-a{width:220px;height:220px;background:#8b5cf6;right:-70px;top:-70px}.join-glow-b{width:190px;height:190px;background:#ec4899;left:-90px;bottom:50px}
.join-head{display:flex;gap:14px;align-items:center;padding-bottom:17px;border-bottom:1px solid rgba(255,255,255,.09)}.join-head h2{font-size:26px;margin:3px 0 3px}.join-head p{margin:0;color:#aaa0bd;font-size:13px}.join-logo{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;font-weight:1000;font-size:19px;background:linear-gradient(135deg,#a855f7,#ec4899);box-shadow:0 10px 32px rgba(168,85,247,.34)}
.join-section{margin-top:18px;padding:15px;border:1px solid rgba(255,255,255,.075);background:rgba(255,255,255,.035);border-radius:19px}.join-step{display:flex;align-items:center;gap:9px;margin-bottom:12px}.join-step>span{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:#2c1d4c;color:#cfb6ff;font-size:10px;font-weight:1000}.join-step strong{font-size:13px}.join-step small{margin-left:auto;color:#8f859e;font-size:10px}.join-name-input{font-size:16px!important;padding:14px 15px!important;background:#0e0a19!important}
.human-avatar-picker{grid-template-columns:repeat(3,1fr)!important;gap:9px!important;margin:10px 0 0!important}.human-avatar-picker .avatar-option{padding:0!important;overflow:hidden;position:relative;border-radius:16px!important;aspect-ratio:1/1.08;background:#100b1d!important;transition:.18s ease;cursor:pointer}.human-avatar-picker .avatar-option:hover{transform:translateY(-2px)}.human-avatar-picker .avatar-option.selected{border-color:#c084fc!important;box-shadow:0 0 0 2px rgba(192,132,252,.14),0 13px 30px rgba(126,34,206,.25)!important}.human-avatar-picker .avatar-option img{width:100%!important;height:100%!important;object-fit:cover;border-radius:14px!important}.human-avatar-picker .avatar-option span{position:absolute;left:7px;right:7px;bottom:7px;padding:4px 6px;border-radius:999px;background:rgba(5,4,12,.72);backdrop-filter:blur(8px);font-size:9px;font-weight:900;color:#e9ddff}
.gender-picker{margin-bottom:0!important}.gender-option{background:rgba(255,255,255,.04)!important;border-radius:12px!important}.gender-option.selected{background:linear-gradient(135deg,#6d3cc2,#8b5cf6)!important;border-color:#b991ff!important}
.relationship-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.relationship-option,.interest-picker button{border:1px solid rgba(255,255,255,.09);background:#110c20;color:#e7def5;border-radius:13px;padding:11px 8px;cursor:pointer;transition:.18s ease}.relationship-option.selected{border-color:#c084fc;background:linear-gradient(180deg,#3a265d,#25183f);box-shadow:0 0 0 2px rgba(192,132,252,.09)}.relationship-option b{font-size:11px}.interest-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.interest-picker button{font-size:11px;font-weight:800}.interest-picker button.selected{border-color:#7dd3fc;background:linear-gradient(180deg,#123149,#0e2538);box-shadow:0 0 0 2px rgba(56,189,248,.08);color:#e7f8ff}
.profile-file-hidden{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none}.photo-upload-label{display:flex;align-items:center;gap:11px;border:1px dashed rgba(192,132,252,.38);background:rgba(90,49,140,.1);border-radius:15px;padding:13px;cursor:pointer}.photo-upload-label>span{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#27173f;font-size:18px}.photo-upload-label b{font-size:12px}.photo-upload-label small{display:block;color:#8d819c;margin-top:3px;font-size:9px}
.join-submit-v41{width:100%;margin-top:19px;padding:15px!important;border-radius:16px!important;font-size:15px!important;background:linear-gradient(90deg,#ec4899,#8b5cf6)!important;box-shadow:0 14px 36px rgba(168,85,247,.24)}.join-privacy{text-align:center;color:#756b82;font-size:9px;margin:10px 0 1px}
.avatar-wrap.clickable-profile{cursor:pointer}.avatar-wrap>img:first-child{object-fit:cover;background:#191127}.profile-bubble{display:none!important}.gender-mark{box-shadow:0 3px 8px rgba(0,0,0,.38)}
.relationship-badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:900;border:1px solid rgba(255,255,255,.08);white-space:nowrap}.rel-single{background:rgba(34,197,94,.13);color:#a7f3d0;border-color:rgba(34,197,94,.28)}.rel-taken{background:rgba(244,63,94,.13);color:#fecdd3;border-color:rgba(244,63,94,.28)}.rel-unspecified{background:rgba(148,163,184,.11);color:#d7dee8;border-color:rgba(148,163,184,.2)}.interest-badge{display:inline-flex;align-items:center;padding:3px 6px;border-radius:999px;background:rgba(139,92,246,.11);border:1px solid rgba(167,139,250,.18);color:#d8c7ff;font-size:8px;font-weight:800}.member-interests{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;margin:5px 0}.member-card .relationship-badge{margin-top:6px}
.profile-preview-card{min-width:min(86vw,300px)!important;padding:18px 20px!important}.profile-preview-card img{border-radius:28px!important;object-fit:cover}.profile-preview-card #profile-preview-gender{font-size:11px}.profile-preview-interests{display:flex;justify-content:center;flex-wrap:wrap;gap:5px;max-width:270px;margin-top:3px}.muted-chip{opacity:.65}
.mini-avatar{object-fit:cover}
@media(max-width:520px){.join-profile-modal{width:96vw}.join-scroll{padding:18px 14px 16px}.join-head h2{font-size:21px}.join-logo{width:48px;height:48px;border-radius:15px}.join-section{padding:12px;margin-top:13px}.human-avatar-picker{grid-template-columns:repeat(3,1fr)!important}.relationship-picker{grid-template-columns:repeat(3,1fr)}.interest-picker{grid-template-columns:repeat(2,1fr)}.join-submit-v41{position:sticky;bottom:0;z-index:5}.member-card .member-interests{display:none}}


/* TableBuddy V5.1 targeted table effects */
.reaction-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important}
.reaction-btn{min-height:86px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;border-radius:16px!important;background:linear-gradient(180deg,#1b132c,#100b1b)!important;border:1px solid rgba(255,255,255,.09)!important;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease!important}
.reaction-btn:hover{transform:translateY(-3px) scale(1.02);border-color:rgba(192,132,252,.58)!important;box-shadow:0 14px 30px rgba(0,0,0,.3)}
.reaction-btn>span{font-size:34px;line-height:1}.reaction-btn small{font-size:9px!important;font-weight:900;color:#d8cbed}
.reaction-tomato{background:linear-gradient(180deg,#33141a,#180b10)!important}.reaction-rose{background:linear-gradient(180deg,#351527,#180b14)!important}.reaction-beer{background:linear-gradient(180deg,#322510,#171107)!important}.reaction-water{background:linear-gradient(180deg,#10283a,#08141e)!important}

.table-throw-effect{position:fixed;inset:0;z-index:9500;pointer-events:none;overflow:hidden}
.table-throw-effect .throw-object{position:absolute;top:42%;left:50%;font-size:92px;filter:drop-shadow(0 14px 20px rgba(0,0,0,.45));opacity:0;animation:tbThrowFlight 1.05s cubic-bezier(.2,.78,.28,1.08) forwards}
.table-throw-effect.from-left .throw-object{--throw-start-x:-62vw;--throw-rot:-520deg}.table-throw-effect.from-right .throw-object{--throw-start-x:62vw;--throw-rot:520deg}
.table-throw-effect .throw-splash{position:absolute;left:50%;top:42%;font-size:112px;transform:translate(-50%,-50%) scale(.15);opacity:0;animation:tbThrowSplash .7s 1s ease-out forwards}
.table-throw-effect .throw-caption{position:absolute;left:50%;top:59%;transform:translate(-50%,14px);opacity:0;display:flex;align-items:center;gap:8px;padding:10px 15px;border-radius:999px;background:rgba(9,7,16,.88);border:1px solid rgba(255,255,255,.15);box-shadow:0 15px 45px rgba(0,0,0,.45);backdrop-filter:blur(14px);animation:tbThrowCaption .45s 1.12s ease-out forwards}
.table-throw-effect .throw-caption b{font-size:12px;color:#fff}.table-throw-effect .throw-caption span{font-size:11px;color:#cfc5dc}
.effect-tomato .throw-object{font-size:104px}.effect-confetti .throw-splash{font-size:150px}.effect-heart .throw-splash{font-size:130px}
@keyframes tbThrowFlight{
  0%{opacity:0;transform:translate(calc(-50% + var(--throw-start-x)),-20vh) rotate(0deg) scale(.45)}
  15%{opacity:1}
  72%{opacity:1;transform:translate(-50%,-52%) rotate(var(--throw-rot)) scale(1.12)}
  100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--throw-rot)) scale(.7)}
}
@keyframes tbThrowSplash{0%{opacity:0;transform:translate(-50%,-50%) scale(.15)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.55)}}
@keyframes tbThrowCaption{to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:520px){.reaction-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.table-throw-effect .throw-object{font-size:76px}.table-throw-effect .throw-splash{font-size:92px}.table-throw-effect .throw-caption{top:62%;max-width:88vw;white-space:nowrap}}


/* TableBuddy V5.1.1 spatial table-to-table reactions */
.table-flight-projectile{position:fixed;left:0;top:0;z-index:9605;pointer-events:none;will-change:transform,opacity;filter:drop-shadow(0 14px 18px rgba(0,0,0,.58));font-size:58px;line-height:1;transform-origin:center center}
.table-flight-projectile span{display:block;animation:tbFlightWobble .2s ease-in-out infinite alternate}
.table-flight-projectile.effect-tomato{font-size:66px}.table-flight-projectile.effect-confetti,.table-flight-projectile.effect-heart{font-size:64px}.table-flight-projectile.effect-water{font-size:62px}
.table-flight-trail{position:fixed;z-index:9600;pointer-events:none;transform:translate(-50%,-50%);font-size:21px;font-weight:1000;opacity:.8;animation:tbTrailFade .52s ease-out forwards;text-shadow:0 3px 12px rgba(0,0,0,.5)}
.table-flight-trail.trail-tomato{color:#fb7185;font-size:30px}.table-flight-trail.trail-water{font-size:16px}.table-flight-trail.trail-heart{color:#fb7185}
.table-flight-impact{position:fixed;z-index:9610;pointer-events:none;transform:translate(-50%,-50%);width:160px;height:160px;display:grid;place-items:center}
.table-flight-impact .impact-main{position:absolute;font-size:110px;animation:tbImpactBurst .88s cubic-bezier(.16,.8,.24,1) forwards;filter:drop-shadow(0 8px 18px rgba(0,0,0,.4))}
.table-flight-impact .impact-emoji{position:absolute;font-size:52px;animation:tbImpactEmoji 1s ease-out forwards}
.table-flight-impact.impact-confetti .impact-main{font-size:145px}.table-flight-impact.impact-heart .impact-main{font-size:126px}.table-flight-impact.impact-water .impact-main{font-size:125px}
.table-flight-caption{position:fixed;z-index:9620;pointer-events:none;transform:translate(-50%,-50%);display:flex;gap:7px;align-items:center;padding:8px 13px;border-radius:999px;background:rgba(8,6,14,.9);border:1px solid rgba(255,255,255,.16);box-shadow:0 12px 38px rgba(0,0,0,.5);backdrop-filter:blur(12px);white-space:nowrap;animation:tbCaptionPop 1.8s ease-out forwards}
.table-flight-caption b{color:#fff;font-size:11px}.table-flight-caption span{color:#d7cce6;font-size:10px}
.world-table.reaction-source-launch{animation:tbSourceLaunch .55s ease-out!important;z-index:25!important}.world-table.reaction-target-hit{animation:tbTargetHit .9s cubic-bezier(.2,.8,.2,1)!important;z-index:26!important;filter:drop-shadow(0 0 18px rgba(244,114,182,.9)) drop-shadow(0 0 38px rgba(139,92,246,.65))!important}
@keyframes tbFlightWobble{from{transform:scale(.96)}to{transform:scale(1.06)}}
@keyframes tbTrailFade{0%{opacity:.85;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.2)}}
@keyframes tbImpactBurst{0%{opacity:0;transform:scale(.15) rotate(-15deg)}25%{opacity:1;transform:scale(1.15) rotate(7deg)}100%{opacity:0;transform:scale(1.62) rotate(18deg)}}
@keyframes tbImpactEmoji{0%{opacity:1;transform:scale(.65)}35%{opacity:1;transform:scale(1.15)}100%{opacity:0;transform:translateY(-48px) scale(.72)}}
@keyframes tbCaptionPop{0%{opacity:0;transform:translate(-50%,-36%) scale(.88)}12%,75%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-68%) scale(.96)}}
@keyframes tbSourceLaunch{0%{transform:translate(-50%,-50%) scale(1)}28%{transform:translate(-50%,-50%) scale(.9)}55%{transform:translate(-50%,-50%) scale(1.08)}100%{transform:translate(-50%,-50%) scale(1)}}
@keyframes tbTargetHit{0%{transform:translate(-50%,-50%) scale(1)}18%{transform:translate(-50%,-50%) scale(1.18) rotate(-2deg)}36%{transform:translate(-50%,-50%) scale(.94) rotate(2deg)}58%{transform:translate(-50%,-50%) scale(1.08) rotate(-1deg)}100%{transform:translate(-50%,-50%) scale(1) rotate(0)}}
@media(max-width:520px){.table-flight-projectile{font-size:46px}.table-flight-projectile.effect-tomato{font-size:54px}.table-flight-impact{width:120px;height:120px}.table-flight-impact .impact-main{font-size:84px}.table-flight-caption{max-width:88vw}.table-flight-caption span{overflow:hidden;text-overflow:ellipsis}}
