@charset "UTF-8";

/* Public browsing keeps the same quiet paper-and-rose palette as the studio. */
.guest-portal { min-height: 100vh; background: var(--bg, #f6f4f0); }
.guest-topbar { background: var(--paper, #fffefc); border-bottom: 1px solid var(--line, #e7e2de); }
.guest-topbar-inner { max-width: 1276px; margin: auto; min-height: 88px; padding: 17px 38px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.guest-topbar .brand { padding: 0; }
.guest-entry-actions { display: flex; align-items: center; gap: 24px; flex-shrink: 0; }
.guest-browse-badge { color: #8b7c82; font-size: 12px; letter-spacing: 1px; }
.guest-entry-actions .btn { gap: 10px; display: inline-flex; align-items: center; }
.guest-content { width: 100%; max-width: 1276px; margin: 0 auto; padding: 34px 38px 22px; }
.guest-welcome { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); border: 1px solid #e6dcd7; border-radius: 13px; overflow: hidden; margin-bottom: 30px; background: #f1e9e5; }
.guest-welcome-copy { min-height: 245px; padding: 34px 36px 31px; position: relative; isolation: isolate; }
.guest-welcome-copy .eyebrow { color: #8b6f7b; margin-bottom: 10px; font-size: 10px; letter-spacing: 2px; }
.guest-welcome h1 { font: 500 31px/1.55 var(--serif, serif); letter-spacing: 2px; color: #614750; position: relative; z-index: 1; }
.guest-welcome-copy > p { margin-top: 13px; font-size: 12px; color: #8e777d; line-height: 1.95; position: relative; z-index: 1; max-width: 250px; }
.guest-welcome-art { position: absolute; width: 265px; height: 159px; right: 2px; bottom: 12px; opacity: .72; pointer-events: none; z-index: 0; }
.guest-welcome-side { padding: 40px 32px 29px; background: #faf7f3; display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.guest-welcome-note { color: #76646c; font-size: 13px; letter-spacing: 1.2px; margin-bottom: 23px; }
.guest-statistics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.guest-statistics .stat { text-align: left; min-width: 0; padding: 0 15px; border-left: 1px solid #e2d8d4; }
.guest-statistics .stat:first-child { padding-left: 0; border-left: 0; }
.guest-statistics .stat-number { color: #805869; font: 500 34px/1.1 var(--numeral, sans-serif); letter-spacing: -.8px; overflow-wrap: anywhere; }
.guest-statistics .stat-label { color: #8f7d83; font-size: 11px; margin-top: 10px; }
.guest-access-note { color: #9a898d; font-size: 11px; margin-top: 23px; }
.guest-filters .search-row { padding: 15px 22px; gap: 28px; }
.guest-filters .gender-tabs { gap: 27px; flex-shrink: 0; }
.guest-filters .gender-tab { padding: 9px 0; }
.guest-search { margin-left: auto; display: flex; align-items: center; width: 100%; max-width: 365px; gap: 8px; }
.guest-search input { width: 100%; min-width: 0; padding-right: 0; }
.guest-search > button { color: #805767; font-size: 12px; flex-shrink: 0; padding: 8px 10px 8px 4px; }
.guest-filters .filter-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; padding: 20px 22px 15px; }
.guest-filters .filter-cell { min-width: 0; }
.guest-filters .filter-cell select { min-width: 0; width: 100%; min-height: 42px; font-size: 13px; }
.guest-filters .filter-cell select:disabled { background: #f6f4f1; color: #a2979a; cursor: default; }
.guest-active-filters { min-height: 36px; padding: 0 22px 17px; gap: 7px; display: flex; flex-wrap: wrap; align-items: center; }
.guest-filter-caption { color: #9b9094; font-size: 11px; }
.guest-result-bar { scroll-margin-top: 20px; gap: 20px; margin-bottom: 18px; }
.guest-result-bar .result-title { color: #58474f; font-size: 16px; }
.guest-result-bar .result-title span { font-size: 11px; color: #9a8b91; }
.guest-result-bar .sort-select { min-height: 38px; max-width: 158px; background: transparent; }
.guest-member-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 21px; }
.guest-member-card { min-width: 0; padding: 24px 22px 0; display: flex; flex-direction: column; overflow: hidden; }
.guest-member-card .card-head { gap: 12px; min-width: 0; margin-bottom: 22px; }
.guest-member-card .grow { min-width: 0; }
.guest-member-card .member-name { font-size: 18px; line-height: 1.55; overflow-wrap: anywhere; }
.guest-member-card .member-meta { color: #94828b; font-size: 11px; line-height: 1.9; margin-top: 4px; overflow-wrap: anywhere; }
.guest-member-card .avatar { width: 49px; height: 59px; flex-shrink: 0; font-size: 25px; }
.guest-member-card .favorite-btn { min-width: 30px; min-height: 36px; margin-left: auto; padding: 5px; flex-shrink: 0; align-self: flex-start; }
.guest-member-card .favorite-btn .icon { width: 18px; height: 18px; }
.guest-summary-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-bottom: 15px; border-bottom: 1px solid #eee7e5; gap: 15px; }
.guest-summary-facts small { display: block; color: #a18c95; font-size: 10px; margin-bottom: 5px; }
.guest-summary-facts strong { display: block; font-size: 13px; font-weight: 500; color: #6b535f; overflow-wrap: anywhere; }
.guest-member-card .card-occupation { font-size: 12px; color: #8c7581; margin: 15px 0 12px; gap: 8px; }
.guest-member-card .card-occupation span { overflow-wrap: anywhere; }
.guest-summary-tags { min-height: 42px; align-items: flex-start; align-content: flex-start; margin-bottom: 18px; }
.guest-demo-label { background: #f1eeea; color: #9b898b; }
.guest-member-card .card-footer { margin: auto -22px 0; padding: 15px 18px; flex-wrap: nowrap; gap: 12px; }
.guest-member-card .card-agency { display: flex; gap: 5px; min-width: 0; color: #9a858e; font-size: 10px; }
.guest-member-card .card-agency > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.guest-member-card .card-agency .icon { width: 13px; height: 13px; }
.guest-member-card .detail-btn { flex-shrink: 0; font-size: 12px; color: #86586c; min-height: 30px; }
.guest-member-card .detail-btn .icon { width: 14px; height: 14px; }
.guest-pagination { gap: 7px; flex-wrap: wrap; margin: 28px 0; }
.guest-pagination .page-btn { min-width: 36px; min-height: 36px; }
.guest-page-gap { color: #a4939b; padding: 0 3px; }
.guest-loading { grid-column: 1 / -1; color: #9c8a92; font-size: 12px; padding: 8px 0; }
.guest-skeleton { min-height: 280px; padding: 24px; opacity: .65; pointer-events: none; }
.guest-skeleton span { display: block; width: 49px; height: 59px; border-radius: 10px; background: #ebe5e3; margin-bottom: 23px; }
.guest-skeleton i { display: block; height: 12px; background: #eee9e6; width: 80%; margin: 16px 0; border-radius: 3px; }
.guest-skeleton i:last-child { width: 55%; }
.guest-empty { grid-column: 1 / -1; min-height: 260px; border: 1px dashed #e1d5db; background: #fffdfa; border-radius: 12px; }
.guest-empty p { max-width: 440px; margin-left: auto; margin-right: auto; overflow-wrap: anywhere; }
.guest-privacy-note { display: flex; align-items: flex-start; justify-content: center; gap: 7px; font-size: 10px; color: #aa969f; line-height: 1.9; margin: 23px 0 15px; text-align: center; }
.guest-privacy-note .icon { width: 13px; height: 13px; margin-top: 2px; }
.guest-footer { text-align: center; color: #b3a0a8; font-size: 10px; letter-spacing: 1px; padding: 12px 0; }
.guest-login-copy { text-align: center; }
.guest-login-mark { display: inline-grid; place-items: center; width: 54px; height: 54px; color: #9b6d82; background: #f2e7ee; border-radius: 50%; margin-bottom: 18px; }
.guest-login-mark .icon { width: 25px; height: 25px; }
.guest-login-copy > p { color: #6f5261; font-size: 15px; line-height: 1.9; }
.guest-login-copy > p.dim { color: #a08b98; font-size: 12px; margin-top: 7px; }
.guest-login-options { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 25px 0 18px; }
.guest-login-options .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.guest-login-copy .guest-register-line { font-size: 11px; color: #a38c9b; }
.guest-register-line .text-btn { font-size: 12px; margin-left: 6px; }

@media (min-width: 1610px) {
  .guest-member-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1050px) {
  .guest-topbar-inner, .guest-content { padding-left: 28px; padding-right: 28px; }
  .guest-welcome-copy { padding: 29px 29px 28px; }
  .guest-welcome-art { width: 218px; right: -12px; opacity: .5; }
  .guest-welcome-side { padding: 30px 25px; }
  .guest-statistics .stat { padding-left: 11px; padding-right: 7px; }
  .guest-statistics .stat-number { font-size: 31px; }
  .guest-member-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .guest-topbar { position: sticky; top: 0; z-index: 25; }
  .guest-topbar-inner { min-height: 73px; padding: 15px 20px; gap: 12px; }
  .guest-topbar .brand-symbol { width: 35px; height: 35px; }
  .guest-topbar .brand-wordmark { width: 115px; }
  .guest-topbar .brand-caption { display: none; }
  .guest-entry-actions { gap: 12px; }
  .guest-entry-actions .btn { min-height: 36px; padding: 8px 11px; font-size: 11px; gap: 5px; }
  .guest-entry-actions .icon { width: 14px; height: 14px; }
  .guest-browse-badge { font-size: 10px; letter-spacing: 0; }
  .guest-content { padding: 22px 20px 20px; }
  .guest-welcome { grid-template-columns: 1fr; margin-bottom: 23px; }
  .guest-welcome-copy { min-height: 211px; padding: 27px 27px 24px; }
  .guest-welcome h1 { font-size: 29px; letter-spacing: 1.5px; }
  .guest-welcome-copy > p { font-size: 11px; }
  .guest-welcome-art { width: 245px; bottom: 1px; right: -6px; opacity: .55; }
  .guest-welcome-side { padding: 22px 27px; }
  .guest-welcome-note { margin-bottom: 17px; font-size: 12px; }
  .guest-statistics .stat-number { font-size: 30px; }
  .guest-statistics .stat-label { margin-top: 7px; font-size: 10px; }
  .guest-access-note { margin-top: 17px; font-size: 10px; }
  .guest-filters .search-row { padding: 15px 18px; gap: 13px; }
  .guest-filters .gender-tabs { gap: 28px; width: 100%; }
  .guest-filters .gender-tab { padding: 5px 0 9px; font-size: 12px; }
  .guest-search { max-width: none; }
  .guest-search input { font-size: 12px; min-height: 38px; }
  .guest-search > button { font-size: 11px; }
  .guest-filters .filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 13px; padding: 17px 18px 16px; }
  .guest-filters .filter-cell label { font-size: 10px; }
  .guest-filters .filter-cell select { min-height: 40px; font-size: 12px; }
  .guest-active-filters { padding: 0 18px 15px; }
  .guest-filter-caption { font-size: 10px; }
  .guest-result-bar { scroll-margin-top: 90px; gap: 12px; }
  .guest-result-bar .result-title { font-size: 15px; }
  .guest-result-bar .result-title span { display: block; font-size: 10px; margin: 4px 0 0; }
  .guest-result-bar .sort-select { max-width: 139px; font-size: 11px; }
  .guest-member-grid { gap: 17px; }
  .guest-member-card { padding: 22px 20px 0; }
  .guest-member-card .member-name { font-size: 18px; }
  .guest-member-card .member-meta { font-size: 11px; }
  .guest-member-card .card-head { margin-bottom: 21px; }
  .guest-member-card .card-footer { margin-left: -20px; margin-right: -20px; padding: 13px 18px; }
  .guest-member-card .detail-btn { font-size: 12px; }
  .guest-summary-facts strong { font-size: 13px; }
  .guest-member-card .card-occupation { font-size: 12px; }
  .guest-member-card .tag { font-size: 10px; padding: 3px 7px; }
  .guest-privacy-note { font-size: 10px; text-align: left; }
  .guest-footer { font-size: 9px; letter-spacing: .5px; }
}
@media (max-width: 650px) {
  .guest-member-grid { grid-template-columns: 1fr; }
}
@media (max-width: 460px) {
  .guest-topbar-inner { padding-left: 16px; padding-right: 16px; }
  .guest-topbar .brand { gap: 7px; }
  .guest-topbar .brand-symbol { width: 30px; height: 30px; }
  .guest-topbar .brand-wordmark { width: 104px; }
  .guest-browse-badge { font-size: 9px; }
  .guest-entry-actions .btn { padding-left: 10px; padding-right: 10px; }
  .guest-entry-actions .icon { display: none; }
  .guest-content { padding-left: 16px; padding-right: 16px; }
  .guest-welcome-copy { padding-left: 23px; padding-right: 23px; }
  .guest-welcome-side { padding-left: 23px; padding-right: 23px; }
  .guest-welcome-art { width: 212px; right: -20px; }
  .guest-welcome h1 { font-size: 28px; }
  .guest-login-options { grid-template-columns: 1fr; gap: 10px; }
  .guest-login-copy .guest-register-line { line-height: 2; }
}
