/* Approved entry presentation. Shared by Web and Desktop; call surfaces keep their own layout. */
.nexo-home.reference-home {
  position:relative; isolation:isolate; display:flex; flex-direction:column;
  width:100%; height:auto; min-height:100dvh; max-width:none;
  padding:30px clamp(24px,3.2vw,64px) 24px; overflow:hidden;
  color:var(--theme-text-primary,#f5f5f6); background:var(--theme-app,#030303);
}
.has-wallpaper .nexo-home.reference-home {background:transparent;}
.home-thread-slot {position:absolute; z-index:-1; inset:0; overflow:hidden; pointer-events:none;}
.home-thread-slot canvas {display:block; width:100%; height:100%; mask-image:radial-gradient(ellipse at 50% 36%,rgba(0,0,0,.55) 0%,rgba(0,0,0,.75) 29%,#000 66%);}
.has-wallpaper .home-thread-slot {display:none;}
.nexo-home .entry-header {display:flex; align-items:center; justify-content:space-between; min-height:54px; flex:none; padding:0 20px 18px; border-bottom:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.25);}
.nexo-home .entry-header.desktop-titlebar {padding-right:70px;}
.nexo-home .brand {font-size:26px; font-weight:850; letter-spacing:.20em;}
.nexo-home .account-chip {border-radius:999px; background:rgba(var(--theme-surface-card-rgb,14,14,16),.38); border-color:rgba(var(--theme-text-primary-rgb,244,244,246),.28);}
.nexo-home .home-account-chip strong {font-size:13px;}
.nexo-home .home-account-chip small {font-size:11px;}
.nexo-home .reference-entry-content {transform:none; width:100%; padding:0; min-height:0; margin:0; flex:1;}
.nexo-home .home-centered-content {max-width:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0; padding:clamp(32px,5vh,60px) 0 8px;}
.nexo-home .reference-entry-copy {width:100%; max-width:none; display:grid; justify-items:center; text-align:center; gap:12px; padding:0; transform:none;}
.nexo-home .entry-eyebrow {font-size:12px; font-weight:700; letter-spacing:.25em; color:var(--theme-text-secondary,#d0d0d6);}
.nexo-home .reference-entry-copy h1 {margin:0; font-size:clamp(42px,4.25vw,72px); font-weight:800; letter-spacing:-.045em; line-height:1.02; color:var(--theme-text-primary,#f5f5f6);}
.nexo-home .reference-entry-copy h1 em {font:inherit; color:inherit;}
.nexo-home .reference-entry-copy>p {margin:4px 0 0; font-size:clamp(16px,1.35vw,22px); line-height:1.4; color:var(--theme-text-secondary,#bcbcc4);}
.nexo-home .authenticated-home-card {display:flex; flex-direction:column; width:min(100%,960px); padding:0!important; gap:16px!important; margin:30px 0 0;}
.nexo-home .authenticated-welcome {margin:0 0 3px; text-align:center; font-size:16px; line-height:1.5; color:var(--theme-text-secondary,#bebec5);}
.nexo-home .authenticated-welcome strong {color:var(--theme-text-primary,#f5f5f6); font-weight:750;}
.nexo-home .home-room-actions {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:min(100%,768px); align-self:center; gap:20px;}
.nexo-home .home-room-actions form {margin:0; min-width:0;}
.nexo-home .home-action {display:grid; grid-template-columns:38px minmax(0,1fr) 24px; align-items:center; gap:22px; width:100%; min-height:82px; padding:17px 26px; border:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.32); border-radius:18px; background:rgba(var(--theme-surface-card-rgb,14,14,16),.32); color:var(--theme-text-primary,#f5f5f6); text-align:left; text-decoration:none; box-shadow:none; transition:background .22s,border-color .22s,transform .22s;}
.nexo-home .home-action>svg {width:30px; height:30px;}
.nexo-home .home-action>svg:last-child {width:22px; height:22px; transition:transform .25s;}
.nexo-home .home-action span {display:grid; gap:6px; min-width:0;}
.nexo-home .home-action strong {font-size:16px; font-weight:750; line-height:1.3;}
.nexo-home .home-action small {font-size:13px; line-height:1.3; color:inherit; opacity:.84;}
.nexo-home .home-action-primary {background:var(--theme-primary,#f6f6f7); color:var(--theme-on-primary,#101012); border-color:transparent;}
.nexo-home .home-action:hover {border-color:var(--theme-text-primary,#fafafa); background:rgba(var(--theme-surface-hover-rgb,45,45,49),.60); transform:translateY(-2px);}
.nexo-home .home-action-primary:hover {background:var(--theme-primary-hover,#fff); color:var(--theme-on-primary,#101012);}
.nexo-home .home-action:hover>svg:last-child {transform:translateX(4px);}
.nexo-home .home-action:active {transform:translateY(0) scale(.985);}
.nexo-home .home-action-desktop {min-height:66px; width:min(100%,768px); align-self:center; padding-block:12px;}
/* The friends rail uses the room sidebar's geometry, with the approved lighter glass. */
.nexo-home.mode-authenticated {--home-friends-expanded-width:360px;}
.nexo-home.mode-authenticated .home-centered-content {padding-inline-end:0; width:var(--home-content-width,100%); margin-inline:auto; translate:var(--home-content-offset,0px) 0; container-type:inline-size; container-name:home-main;}
.nexo-home .home-friends-sidebar {position:absolute; z-index:8; right:0; top:max(112px,calc(50% - 216px)); display:flex; flex-direction:column; width:64px; max-height:min(560px,calc(100dvh - 164px)); margin:0; padding:12px 8px; overflow:hidden; border:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.16); border-right:0; border-radius:20px 0 0 20px; background:rgba(var(--theme-surface-card-rgb,12,12,14),.12); backdrop-filter:blur(3px); box-shadow:0 12px 30px rgba(var(--theme-shadow-rgb,0,0,0),.12); transition:width .38s cubic-bezier(.22,1,.36,1); -webkit-app-region:no-drag;}
.nexo-home .home-friends-sidebar.is-open {width:var(--home-friends-expanded-width);}
.nexo-home .home-friends-sidebar:not(.is-open) {transition-duration:.42s; transition-timing-function:cubic-bezier(.4,0,.2,1);}
.nexo-home .home-friends-sidebar .home-friends-header {display:flex; align-items:center; justify-content:flex-start; gap:8px; min-height:44px; flex:none; padding-bottom:8px; border-bottom:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.13);}
.nexo-home .home-friends-sidebar header .home-friends-toggle {position:relative; display:grid; place-items:center; flex:none; width:40px; height:38px; padding:7px; border:1px solid transparent; border-radius:14px; color:var(--theme-text-primary,#eee); background:transparent;}
.nexo-home .home-friends-sidebar .home-friends-toggle svg {width:24px; height:24px;}
.nexo-home .home-friends-sidebar .home-friends-rail-count {position:absolute; right:-1px; top:0; display:grid; place-items:center; min-width:16px; height:16px; padding:0 3px; border-radius:6px; background:var(--theme-surface-interactive,#252528); font-size:10px;}
.nexo-home .home-friends-sidebar.is-open .home-friends-rail-count {visibility:hidden;}
.nexo-home .home-friends-toggle .social-badge {position:absolute; right:-1px; top:0; min-width:16px; height:16px; padding:0 3px; font-size:10px;}
.nexo-home .home-friends-toggle:has(.social-badge) .home-friends-rail-count {visibility:hidden;}
.nexo-home .home-friends-heading {flex:1; min-width:0; white-space:nowrap;}
.nexo-home .home-friends-heading strong {display:flex; align-items:center; gap:7px; font-size:15px; font-weight:700;}
.nexo-home .home-friends-heading strong b {display:grid; place-items:center; min-width:18px; height:18px; padding:0 4px; border-radius:5px; background:var(--theme-surface-interactive,#252528); color:var(--theme-text-secondary,#bebec5); font-size:11px; font-weight:600;}
.nexo-home .home-friends-heading small {display:block; margin-top:3px; font-size:11px; color:var(--theme-text-secondary,#bebec5);}
.nexo-home .home-friends-sidebar header .home-friends-pin {display:grid; place-items:center; flex:none; width:28px; height:28px; padding:6px; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--theme-text-secondary,#bebec5);}
.nexo-home .home-friends-pin svg {width:16px; height:16px;}
.nexo-home .home-friends-pin[aria-pressed=true] {background:rgba(var(--theme-text-primary-rgb,244,244,246),.12); color:var(--theme-text-primary,#eee);}
.nexo-home .home-friends-sidebar .home-friends-body {display:block; min-height:0; overflow-x:hidden; overflow-y:auto; scrollbar-width:thin; padding:5px 0;}
.nexo-home .home-friends-content {display:block; min-height:0; overflow:visible;}
.nexo-home .home-friend-list {display:grid; gap:0; width:calc(var(--home-friends-expanded-width) - 18px); max-height:none; margin:0; overflow:visible;}
.nexo-home .home-friend-row {display:flex; align-items:center; gap:8px; min-width:0; min-height:48px; padding:6px 4px; border:0; border-radius:14px; flex:none;}
.nexo-home .home-friend-row:hover {background:rgba(var(--theme-text-primary-rgb,244,244,246),.06);}
.nexo-home .home-friend-identity {display:flex; align-items:center; gap:9px; flex:1; min-width:0; padding:0; border:0; background:transparent; text-align:left; border-radius:10px;}
.nexo-home .home-friend-identity>.home-friend-avatar {position:relative; display:block; flex:none; width:36px; height:36px;}
.nexo-home .home-friend-avatar>.avatar {width:36px; height:36px; flex-basis:36px; font-size:13px;}
.nexo-home .home-friend-avatar .home-friend-avatar-status {position:absolute; bottom:-2px; right:-2px; width:14px; height:14px; border-radius:50%; background:transparent;}
.nexo-home .home-friend-avatar-status::before {inset:2px;}
.nexo-home .home-friend-identity>.home-friend-copy {display:grid; gap:3px; min-width:0;}
.nexo-home .home-friend-copy strong {font-size:12px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.nexo-home .home-friend-copy .social-presence,.nexo-home .home-friend-copy .social-game-context {min-width:0; margin:0; font-size:11px; line-height:1.3;}
.nexo-home .home-friend-copy .social-presence>span,.nexo-home .home-friend-copy .social-game-context>span {overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.nexo-home .home-friend-copy .presence-icon[data-activity] {width:10px; height:10px;}
.nexo-home .home-friend-actions {display:flex; align-items:center; gap:5px; flex:none;}
.nexo-home .home-friend-actions .social-room-join {width:auto; min-height:28px; margin:0; padding:5px 7px; font-size:11px; line-height:1.2;}
.nexo-home .home-friend-message {display:grid; place-items:center; flex:none; width:28px; height:28px; padding:6px; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--theme-text-secondary,#bebec5);}
.nexo-home .home-friend-message svg {width:16px; height:16px;}
.nexo-home .home-friends-footer {flex:none; padding-top:8px; border-top:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.13);}
.nexo-home .home-friends-footer button {display:flex; align-items:center; gap:8px; width:calc(var(--home-friends-expanded-width) - 18px); min-height:32px; padding:5px 10px; border:1px solid transparent; border-radius:10px; background:transparent; color:var(--theme-text-primary,#eee); text-align:left; font-size:12px;}
.nexo-home .home-friends-footer button span {flex:1;}
.nexo-home .home-friends-footer svg {width:20px; height:20px; flex:none;}
.nexo-home .home-friends-footer svg:last-child {width:16px; height:16px;}
.nexo-home .home-friends-sidebar :is(.home-friends-toggle,.home-friends-pin,.home-friend-message,.home-friends-footer button):hover {background:rgba(var(--theme-text-primary-rgb,244,244,246),.06); color:var(--theme-text-primary,#eee);}
.nexo-home .home-friends-sidebar :is(.home-friends-heading,.home-friends-pin,.home-friend-copy,.home-friend-actions,.home-friends-footer span,.home-friends-footer svg:last-child) {transition:opacity .2s .08s,translate .28s,visibility 0s;}
.nexo-home .home-friends-sidebar:not(.is-open) :is(.home-friends-heading,.home-friends-pin,.home-friend-copy,.home-friend-actions,.home-friends-footer span,.home-friends-footer svg:last-child) {opacity:0; visibility:hidden; translate:6px 0; transition:opacity .14s,translate .28s,visibility 0s .14s;}
.nexo-home .home-friend-list>p {padding:10px 6px; margin:0; font-size:12px; line-height:1.5; color:var(--theme-text-secondary,#bcbcc4);}
.nexo-home .home-friends-sidebar:not(.is-open) .home-friend-list>p {visibility:hidden; height:0; padding:0;}
@media(min-width:761px) and (max-width:1100px) {.nexo-home .home-action {gap:12px; padding-inline:18px;}.nexo-home .home-room-actions {grid-template-columns:1fr; max-width:420px; gap:14px;}.nexo-home.mode-authenticated .reference-benefits {grid-template-columns:repeat(2,minmax(0,1fr)); max-width:420px; gap:20px;}}
@media(pointer:coarse) {.nexo-home .home-friends-sidebar header .home-friends-toggle,.nexo-home .home-friends-sidebar header .home-friends-pin,.nexo-home .home-friend-message {min-width:40px; min-height:44px;}.nexo-home .home-friend-actions .social-room-join {min-height:44px;}.nexo-home .home-friends-footer button {min-height:44px;}}
.nexo-home .reference-benefits {display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:start; gap:30px; width:min(100%,620px); max-width:none; margin:48px 0 0; padding:0;}
.nexo-home .reference-benefits>span {display:grid; justify-items:center; gap:12px; text-align:center; color:var(--theme-text-primary,#eee);}
.nexo-home .reference-benefits svg {width:28px; height:28px;}
.nexo-home .reference-benefits b {font-size:12px; font-weight:500; line-height:1.4;}
.nexo-home .reference-footer {display:flex; justify-content:center; align-items:center; gap:12px; padding:0; margin:42px 0 0; color:var(--theme-text-secondary,#bcbcc4); font-size:11px; letter-spacing:.08em;}
.nexo-home .reference-footer p {margin:0; text-align:center;}
.nexo-home .reference-footer>span {width:64px; height:1px; background:rgba(var(--theme-text-primary-rgb,244,244,246),.25);}
/* Reflow by usable content width, rather than the physical window alone. */
@container home-main (max-width:560px) {
 .nexo-home .reference-entry-copy h1 {font-size:clamp(32px,7cqi,44px); max-width:100%;}
 .nexo-home .reference-entry-copy>p,.nexo-home .authenticated-welcome {font-size:14px;}
 .nexo-home .home-room-actions {grid-template-columns:1fr; max-width:420px; gap:12px;}
 .nexo-home .home-action {gap:12px; padding-inline:18px;}
 .nexo-home .reference-benefits {grid-template-columns:repeat(2,minmax(0,1fr)); width:min(100%,420px); gap:20px; margin-top:28px;}
 .nexo-home .reference-footer {flex-wrap:wrap; font-size:10px; letter-spacing:.04em;}
}
.nexo-home .home-auth-content {display:grid; grid-template-columns:minmax(360px,44%) minmax(0,1fr); align-items:stretch; gap:0; width:min(100%,1410px); flex:none; align-self:center; margin:auto 0; min-height:620px; border:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.28); border-radius:22px; overflow:hidden;}
.nexo-home:not(.mode-authenticated) {gap:40px;}
.nexo-home .reference-entry-card {border:0; border-right:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.22); border-radius:0; background:rgba(var(--theme-surface-card-rgb,14,14,16),.72); backdrop-filter:blur(8px); box-shadow:none; transform:none; max-height:none; overflow:visible; min-height:0; width:100%; display:flex; flex-direction:column; justify-content:center;}
.nexo-home .reference-entry-card .entry-card-body {padding:44px clamp(24px,4vw,96px); gap:22px; width:100%;}
.nexo-home .entry-card-intro h2 {margin:0; font-size:clamp(26px,2.4vw,38px); letter-spacing:-.03em; font-weight:780; line-height:1.2;}
.nexo-home .entry-card-intro p {margin:13px 0 0; font-size:14px; color:var(--theme-text-secondary,#bcbcc4); line-height:1.5;}
.nexo-home .reference-entry-card.mode-login .entry-card-intro {text-align:center; margin-bottom:12px;}
.nexo-home .stack-form {gap:10px;}
.nexo-home .stack-form label {font-size:13px; margin-top:8px;}
.nexo-home .entry-input-shell {width:100%; display:flex; align-items:center; gap:10px; border:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.27); border-radius:11px; background:rgba(var(--theme-input-rgb,20,20,23),.42); padding:0 14px; min-height:54px;}
.nexo-home .entry-input-shell:focus-within {border-color:var(--theme-focus,#88baff);}
.nexo-home .entry-input-shell>svg:first-child {width:19px; height:19px; flex:none;}
.nexo-home .reference-entry-card.mode-login .entry-input-shell>svg:first-child {display:none;}
.nexo-home .entry-input-shell input {flex:1; width:100%; min-width:0; min-height:52px; height:auto; border:0; outline:0; box-shadow:none; background:none; padding:0; color:var(--theme-text-primary,#f5f5f6);}
.nexo-home .password-visibility {display:grid; place-items:center; padding:6px; border:0; background:none; color:var(--theme-text-primary,#eee);}
.nexo-home .reference-entry-card .button-primary {position:relative; display:flex; align-items:center; justify-content:center; gap:16px; min-height:54px; border:0; border-radius:11px; background:var(--theme-primary,#f6f6f7); color:var(--theme-on-primary,#101012); box-shadow:none;}
.nexo-home .reference-entry-card .button-primary>svg {position:absolute; right:16px; transition:transform .22s;}
.nexo-home .reference-entry-card .button-primary:hover {background:var(--theme-primary-hover,#fff);}
.nexo-home .reference-entry-card .button-primary:hover>svg {transform:translateX(3px);}
.button.is-auth-loading:disabled {opacity:1; cursor:wait;}
.auth-loading-spinner {display:inline-block; width:18px; height:18px; flex:none; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:auth-loading-spin .75s linear infinite;}
@keyframes auth-loading-spin {to {transform:rotate(360deg);}}
@media(prefers-reduced-motion:reduce) {.auth-loading-spinner {animation:none;}}
.nexo-home .entry-signup {font-size:12px; text-align:center; margin:0; line-height:1.5; color:var(--theme-text-secondary,#ccc);}
.nexo-home .inline-action,.nexo-home .entry-signup button {font-size:inherit; color:var(--theme-text-primary,#eee); background:none; border:0; padding:0; font-weight:700; text-decoration:underline; text-underline-offset:3px;}
.nexo-home .or {display:flex; gap:16px; align-items:center; color:var(--theme-text-secondary,#ccc); font-size:12px; margin:3px 0;}
.nexo-home .or>span:not(:nth-child(2)) {height:1px; background:rgba(var(--theme-text-primary-rgb,244,244,246),.25); flex:1;}
.nexo-home .visitor-entry {display:grid; grid-template-columns:26px minmax(0,1fr); align-items:center; gap:12px; padding:14px 18px; border:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.27); border-radius:11px; min-height:54px; background:rgba(var(--theme-surface-interactive-rgb,20,20,23),.35); color:var(--theme-text-primary,#eee);}
.nexo-home .visitor-entry svg {grid-row:1; width:24px; height:24px;}
.nexo-home .visitor-entry strong {font-size:14px; text-align:left;}
.nexo-home .visitor-entry small {grid-column:1/-1; font-size:12px; line-height:1.5; text-align:center; color:var(--theme-text-secondary,#bbb);}
.nexo-home .home-auth-visual {display:flex; flex-direction:column; align-items:center; justify-content:center; padding:48px 26px 28px; background:rgba(var(--theme-surface-base-rgb,5,5,6),.10);}
.nexo-home .home-auth-visual .reference-entry-copy {margin:auto 0;}
.nexo-home .home-auth-visual h1 {font-size:clamp(32px,3vw,48px); max-width:530px;}
.nexo-home .home-auth-visual .reference-entry-copy>p {font-size:17px;}
.nexo-home .home-auth-visual .reference-benefits {margin:46px 0 0; gap:18px;}
.nexo-home .home-auth-visual .reference-benefits>span+span {border-left:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.22);}
.nexo-home .home-auth-visual .reference-footer {margin:32px 0 0; font-size:10px;}
/* Flow family: capsule silhouette, travelling arrow and a restrained fill on hover. */
.button.flow-button {position:relative; isolation:isolate; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:44px; padding:10px 22px; border:1.5px solid var(--theme-text-primary,#f4f4f6); border-radius:999px; color:var(--theme-text-primary,#f4f4f6); background:rgba(var(--theme-surface-card-rgb,14,14,16),.48); box-shadow:none; font-size:13px; font-weight:750; transition:color .25s,border-color .25s,transform .18s;}
.button.flow-button::before {content:""; position:absolute; z-index:-1; inset:-1px; border-radius:inherit; background:var(--theme-text-primary,#f4f4f6); transform:translateX(-103%); transition:transform .3s cubic-bezier(.22,1,.36,1);}
.button.flow-button svg {width:17px; height:17px; flex:none; transition:transform .28s cubic-bezier(.22,1,.36,1);}
.button.flow-button:hover,.button.flow-button:focus-visible {color:var(--theme-surface-base,#08080a); border-color:var(--theme-text-primary,#f4f4f6);}
.button.flow-button:hover::before,.button.flow-button:focus-visible::before {transform:translateX(0);}
.button.flow-button:hover svg:last-child {transform:translateX(4px);}
.button.flow-secondary {border-color:rgba(var(--theme-text-primary-rgb,244,244,246),.38); color:var(--theme-text-secondary,#c4c4cc);}
.button.flow-secondary:hover svg:first-child {transform:translateX(-3px);}
.button.flow-button:active {transform:scale(.97);}
.button.flow-button:disabled {opacity:.5; cursor:default;}
.button.flow-button:disabled::before {transform:translateX(-103%);}
.home-join-backdrop,.create-room-backdrop {background:rgba(var(--theme-backdrop-rgb,0,0,0),.60); backdrop-filter:blur(4px); animation:home-fade-in 220ms ease both;}
.home-join-dialog,.create-room-dialog {animation:home-panel-in 220ms cubic-bezier(.22,1,.36,1) both; border:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.30); border-radius:18px; background:rgba(var(--theme-surface-card-rgb,17,17,19),.93); color:var(--theme-text-primary,#f4f4f6); box-shadow:0 28px 70px rgba(var(--theme-shadow-rgb,0,0,0),.30);}
.home-join-dialog {width:min(520px,100%); padding:26px; display:grid; gap:22px;}
.home-join-dialog .panel-header {display:flex; align-items:center; justify-content:space-between; padding:0; min-height:32px; border:0;}
.home-join-dialog .entry-card-body {padding:0; display:grid; gap:22px;}
.home-join-dialog h2 {font-size:27px;}
.home-join-dialog .flow-button {width:100%; min-height:54px;}
.home-join-dialog .entry-back {padding:0; display:flex; align-items:center; gap:8px; background:none; border:0; color:var(--theme-text-secondary,#ccc); font-size:13px;}
.create-room-dialog {width:min(540px,100%); max-height:calc(100dvh - 32px); overflow:auto;}
.create-room-dialog .share-dialog-actions {display:flex; justify-content:flex-end; flex-wrap:wrap; gap:12px; margin-top:16px;}
.create-room-dialog .share-dialog-actions .flow-button {min-width:132px;}
.home-surface-closing {animation:home-fade-out 160ms ease both; pointer-events:none;}
.home-surface-closing>.share-dialog {animation:home-panel-out 160ms ease both;}
.nexo-close {display:grid; place-items:center; width:32px; height:32px; padding:7px; border:1px solid transparent; border-radius:50%; background:transparent; color:var(--theme-text-secondary,#bbb);}
:is(#app,#social-layer,.room-access-layer,.create-room-backdrop) button:has(>svg.lucide-x),.nexo-close {transition:background .2s,border-color .2s,box-shadow .2s,transform .15s;}
:is(#app,#social-layer,.room-access-layer,.create-room-backdrop) button:has(>svg.lucide-x):hover,.nexo-close:hover {border-color:rgba(var(--theme-text-primary-rgb,244,244,246),.38); background:rgba(var(--theme-surface-hover-rgb,45,45,49),.50); box-shadow:0 0 12px rgba(var(--theme-text-primary-rgb,244,244,246),.08);}
:is(#app,#social-layer,.room-access-layer,.create-room-backdrop) button:has(>svg.lucide-x):active,.nexo-close:active {transform:scale(.90);}
.home-view-enter {animation:home-panel-in 220ms ease both;}
@keyframes home-fade-in {from{opacity:0}to{opacity:1}}
@keyframes home-fade-out {from{opacity:1}to{opacity:0}}
@keyframes home-panel-in {from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes home-panel-out {from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(5px)}}
@media(max-height:800px) and (min-width:761px) {
 .nexo-home.reference-home {padding-top:20px; padding-bottom:18px;}
 .nexo-home .home-centered-content {padding-top:30px;}
 .nexo-home .reference-entry-copy h1 {font-size:clamp(40px,4.1vw,60px);}
 .nexo-home .authenticated-home-card {margin-top:22px; gap:12px!important;}
 .nexo-home .reference-benefits {margin-top:30px;}
 .nexo-home .reference-footer {margin-top:28px;}
 .nexo-home .home-auth-content {min-height:560px;}
 .nexo-home:not(.mode-authenticated) {gap:28px;}
 .nexo-home .reference-entry-card .entry-card-body {padding-block:30px; gap:16px;}
}
@media(max-width:1000px) {
 .nexo-home .home-auth-content {grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
 .nexo-home .home-auth-visual .reference-benefits {gap:12px;}
 .nexo-home .home-auth-visual .reference-benefits b {font-size:10px;}
 .nexo-home .home-auth-visual h1 {font-size:34px;}
 .nexo-home .home-auth-visual .reference-entry-copy>p {font-size:14px;}
}
@media(max-width:760px) {
 .nexo-home.reference-home {padding:20px 18px; overflow:hidden;}
 .nexo-home .entry-header {padding-inline:0; min-height:48px;}
 .nexo-home .brand {font-size:20px;}
 .nexo-home .home-centered-content {padding-top:40px;}
 .nexo-home .reference-entry-copy h1 {font-size:clamp(34px,6vw,46px);}
 .nexo-home .reference-entry-copy>p {font-size:15px;}
 .nexo-home .home-room-actions {gap:12px;}
 .nexo-home .home-action {min-height:76px; padding:14px; gap:10px; grid-template-columns:26px minmax(0,1fr) 18px;}
 .nexo-home .home-action>svg {width:25px; height:25px;}
 .nexo-home .home-action strong {font-size:13px;}
 .nexo-home .home-action small {font-size:11px;}
 .nexo-home .home-auth-content {grid-template-columns:1fr; min-height:0; margin:0;}
 .nexo-home .home-auth-visual {display:none;}
 .nexo-home .reference-entry-card {border:0;}
 .nexo-home .reference-entry-card .entry-card-body {padding:32px 24px;}
 .nexo-home .reference-benefits {gap:12px; margin-top:36px;}
 .nexo-home .reference-benefits b {font-size:10px;}
 .nexo-home .reference-footer {display:flex; font-size:9px;}
 .nexo-home.mode-authenticated .home-centered-content {padding-inline-end:0;}
 .nexo-home .home-friends-sidebar {position:static; width:min(100%,540px); max-height:none; align-self:center; margin:28px 0 0; padding:12px 10px; border-right:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.16); border-radius:20px;}
 .nexo-home .home-friends-sidebar.is-open {width:min(100%,540px);}
 .nexo-home .home-friends-sidebar .home-friend-list,.nexo-home .home-friends-footer button {width:100%;}
 .nexo-home .home-friends-sidebar .home-friends-body {max-height:360px;}
 .nexo-home .home-friends-sidebar header .home-friends-pin {display:none;}
}
@media(max-width:480px) {
 .nexo-home .home-room-actions {grid-template-columns:1fr;}
 .nexo-home .home-action {min-height:68px;}
 .home-join-dialog {padding:20px;}
 .home-join-dialog h2 {font-size:24px;}
}
@media(prefers-reduced-motion:reduce) {
 .nexo-home *, .flow-button, .flow-button::before, .home-join-backdrop, .home-join-dialog, .create-room-backdrop, .create-room-dialog, .home-surface-closing, .home-surface-closing>.share-dialog {animation:none!important; transition:none!important;}
 :is(#app,#social-layer,.room-access-layer,.create-room-backdrop) button:has(>svg.lucide-x), :is(#app,#social-layer,.room-access-layer,.create-room-backdrop) button:has(>svg.lucide-x)>svg {transition:none!important;}
}


/* Override legacy entry grid alignment without changing the call header. */
.nexo-home .entry-header {align-self:stretch; width:100%;}
.nexo-home .authenticated-welcome {display:block; gap:0;}
.nexo-home .home-centered-content {padding-top:32px;}
.nexo-home .authenticated-home-card {margin-top:24px;}
.nexo-home.reference-home:has(.home-friend-row) .authenticated-home-card {padding:0!important; gap:16px!important;}
.nexo-home .authenticated-home-card:has(.home-friend-row):not(:has(.home-friend-row:nth-child(4))) {width:min(100%,768px);}
.nexo-home .reference-benefits {margin-top:36px;}
.nexo-home .reference-footer {margin-top:32px;}
.nexo-home .home-auth-content .entry-card-intro h2 {line-height:1.2;}
@media(min-width:761px) {
 .nexo-home .home-auth-visual h1 {max-width:400px;}
}

/* Home friends: keep activity readable, with actions on their own row. */
.nexo-home .home-friends-sidebar {background:rgba(var(--theme-surface-card-rgb,12,12,14),.84);backdrop-filter:blur(8px);}
.nexo-home .home-friend-list {gap:5px;}
.nexo-home .home-friend-row {display:grid;grid-template-columns:minmax(0,1fr);gap:7px;padding:9px 5px;}
.nexo-home .home-friend-identity {width:100%;align-items:flex-start;gap:10px;}
.nexo-home .home-friend-avatar {margin-top:2px;}
.nexo-home .home-friend-copy {flex:1;gap:4px!important;}
.nexo-home .home-friend-copy strong {font-size:13px;line-height:1.35;}
.nexo-home .home-friend-copy .social-game-context {gap:6px;line-height:1.5;}
.nexo-home .home-friend-copy .social-game-context svg {width:13px;height:13px;flex:none;}
.nexo-home .home-friend-copy .social-spotify-context svg {color:#1ed760;}
.nexo-home .home-friend-actions {margin-left:46px;width:calc(100% - 46px);}
.nexo-home .home-friend-message {margin-left:auto;}
.nexo-home .home-friend-actions .social-room-join {padding:6px 9px;}
.nexo-home .home-friends-sidebar:not(.is-open) .home-friend-actions {display:none;}
.nexo-home .home-friends-sidebar:not(.is-open) .home-friend-row {min-height:48px;padding-block:6px;}

.nexo-home .home-friend-row:not(:has(.social-room-join)) {grid-template-columns:minmax(0,1fr) 28px;align-items:center;padding-block:6px;}
.nexo-home .home-friend-row:not(:has(.social-room-join)) .home-friend-actions {margin-left:0;width:auto;}
.nexo-home .home-friends-sidebar:not(.is-open) .home-friend-row {grid-template-columns:minmax(0,1fr);}
