.profile-page {
  max-width: 950px;
  margin: 0 auto;
}

.profile-shell {
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 5px 18px rgba(8,7,20,.07);
}

.profile-cover {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 1;
  background-color: #080714;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image:
    radial-gradient(circle at 76% 30%, rgba(0,209,24,.4), transparent 24%),
    linear-gradient(125deg, rgba(164,114,215,.8), rgba(95,25,187,.86) 46%, rgba(8,7,20,.96)),
    repeating-linear-gradient(45deg, transparent 0 22px, rgba(255,255,255,.06) 22px 24px);
}

.profile-identity {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  gap: 22px;
  margin-top: -78px;
  padding: 10px 28px 9px;
  background: linear-gradient(90deg,rgba(95,25,187,.76),rgba(95,25,187,.6) 68%,rgba(55,12,111,.46));
  color: #fff;
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.profile-guide .profile-identity {
  background: linear-gradient(90deg,rgba(0,112,13,.78),rgba(0,151,17,.62) 68%,rgba(0,83,10,.48));
}

.profile-admin .profile-identity {
  background: linear-gradient(90deg,rgba(150,103,0,.8),rgba(194,139,10,.66) 68%,rgba(105,70,0,.5));
}

.profile-photo {
  position: relative;
  flex: 0 0 210px;
  width: 210px;
  height: 250px;
  margin-top: -170px;
  padding: 5px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #eadcf6;
  color: #5f19bb;
  font-size: 72px;
  font-weight: 900;
  box-shadow: 0 4px 14px rgba(8,7,20,.2);
  overflow: visible;
}

.profile-photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.media-input {
  display: none;
}

.media-edit {
  position: absolute;
  z-index: 2;
  padding: 8px 11px;
  border: 1px solid rgba(8,7,20,.35);
  background: rgba(255,255,255,.94);
  color: #080714;
  box-shadow: 0 2px 5px rgba(8,7,20,.25);
  font-size: 14px;
}

.banner-edit {
  position: static;
  padding: 4px 7px;
  font-size: 10px;
}

.cover-controls {
  position: absolute;
  right: 10px;
  bottom: 86px;
  z-index: 2;
  display: flex;
  gap: 5px;
}

.cover-controls .media-edit {
  position: static;
  padding: 4px 7px;
  border-color: rgba(255,255,255,.2);
  background: rgba(8,7,20,.76);
  color: rgba(255,255,255,.88);
  box-shadow: 0 2px 5px rgba(0,0,0,.3);
  font-size: 10px;
}
.cover-controls .media-edit:hover,
.cover-controls .media-edit:focus-visible {
  background: rgba(8,7,20,.9);
  color: #fff;
}

.banner-library {
  margin: 12px 0 0;
  padding: 14px;
  border: 1px solid rgba(95,25,187,.26);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(8,7,20,.1);
}

.banner-library-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 11px; }
.banner-library-heading strong { display: block; color: #080714; }
.banner-library-heading span { display: block; color: var(--muted); font-size: 12px; }
.banner-library-close { padding: 4px 9px; background: transparent; color: #5f19bb; box-shadow: none; font-size: 20px; }
.banner-library-close:hover { transform: none; box-shadow: none; }
.banner-choice-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }
.banner-choice { padding: 0; overflow: hidden; border: 2px solid transparent; background: #080714; color: #fff; box-shadow: 0 3px 0 #3b0e78; text-align: left; }
.banner-choice img { display: block; width: 100%; aspect-ratio: 3/1; object-fit: cover; }
.banner-choice span { display: block; padding: 6px 8px; font-size: 12px; }
.banner-choice.selected { border-color: #00d118; box-shadow: 0 3px 0 #008b10; }

.photo-edit {
  right: 5px;
  bottom: 14px;
  width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 50%;
  font-size: 11px;
}

.media-message {
  min-height: 20px;
  margin: 8px 12px 0;
  text-align: center;
}

.profile-name h1 {
  margin: 0 0 3px;
  font-size: 34px;
}

.profile-identity .profile-name { transform: translateY(-4px); }

.live-guide-badge { width: 38px; height: 38px; margin-left: 9px; object-fit: contain; vertical-align: -8px; filter: drop-shadow(0 3px 3px rgba(8,7,20,.4)); }

.profile-name p {
  margin: 0;
  color: rgba(255,255,255,.88);
}

.profile-header-link {
  display: inline-block;
  margin-top: 4px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.profile-header-link:hover {
  text-decoration: underline;
}

.profile-tagline {
  max-width: 660px;
  margin: 7px 0 2px !important;
  color: #fff !important;
  font-size: 15px;
  line-height: 1.4;
}

.profile-body {
  margin-top: 10px;
}

.profile-form {
  width: 100%;
  max-width: 950px;
  margin: 0 auto;
}

.profile-page:not(.public-profile) .profile-form {
  border: 1px solid rgba(164,114,215,.48);
  background-color: rgba(40,23,62,.9);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='36' viewBox='0 0 42 36'%3E%3Cpath d='M10.5 1h21L41 18l-9.5 17h-21L1 18Z' fill='none' stroke='%23a472d7' stroke-opacity='.08'/%3E%3C/svg%3E"),linear-gradient(145deg,rgba(95,25,187,.2),rgba(8,7,20,.28));
  background-size: 42px 36px,auto;
  color: #fff;
  box-shadow: 0 12px 28px rgba(8,7,20,.24);
}
.profile-page:not(.public-profile) .profile-form .muted,
.profile-page:not(.public-profile) .profile-form small { color: #cfc5db; }

.profile-achievement-editor { margin-left: auto; align-self: center; }
.achievement-slots.editable { cursor: pointer; }
.achievement-slot { padding: 0; overflow: hidden; }
.achievement-slot img { width: 100%; height: 100%; object-fit: contain; }
.achievement-slot.earned { border-style: solid; border-color: rgba(255,255,255,.72); background: rgba(8,7,20,.44); }
.achievement-slot.add-achievement { background: rgba(8,7,20,.32); box-shadow: none; }
.achievement-picker {
  max-width: 720px;
  margin: 10px auto 0;
  padding: 14px 16px;
  border: 1px solid rgba(164,114,215,.48);
  border-radius: 12px;
  background: linear-gradient(145deg,rgba(40,23,62,.96),rgba(8,7,20,.94));
  color: #fff;
  box-shadow: 0 12px 28px rgba(8,7,20,.24);
}
.achievement-picker > div:first-child span { display:block; margin-top:3px; color:#cfc5db; font-size:12px; }
.achievement-options { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-top:12px; }
.achievement-option { display:flex; align-items:center; gap:9px; padding:8px; border:1px solid rgba(164,114,215,.36); background:rgba(8,7,20,.35); color:#fff; box-shadow:none; text-align:left; }
.achievement-option.selected { border-color:#00d118; box-shadow:0 0 0 1px rgba(0,209,24,.32); }
.achievement-option img { width:48px; height:48px; object-fit:contain; }
.achievement-option span { display:grid; gap:2px; }
.achievement-option small { color:#cfc5db; font-size:10px; line-height:1.25; }
.achievement-picker-actions { display:flex; gap:8px; margin-top:12px; }

.guide-prompt {
  max-width: 720px;
  margin: 18px auto 0;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(164,114,215,.08);
}

.guide-prompt h3,
.guide-prompt p {
  margin: 0;
}

.guide-prompt p {
  color: var(--muted);
  font-size: 14px;
}

.guide-prompt button {
  flex: 0 0 auto;
  padding: 9px 15px;
  font-size: 14px;
}

.approved-guide-prompt { align-items: flex-end; border-color: rgba(0,209,24,.78); background: rgba(0,132,15,.38); }
.approved-guide-prompt h3 { color: #fff; }
.approved-guide-prompt p { color: #eefbef; }
.approval-badge { display: inline-block; margin-bottom: 7px; padding: 3px 8px; border-radius: 999px; background: #dff6e2; color: #116b1b; font-size: 12px; font-weight: 900; }
.onboarding-mini { display: flex; flex-wrap: wrap; gap: 7px 14px; margin-top: 10px; color: #fff; font-size: 13px; font-weight: 700; }
.guide-reviews { max-width: 720px; margin: 18px auto 0; }
.reviews-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; }
.reviews-heading h2 { margin: 0; }
.reviews-heading strong { color: #5f19bb; }
.review { padding: 14px 0; border-top: 1px solid var(--line); }
.review:first-of-type { margin-top: 12px; }
.review p { margin: 5px 0; }
.review small { color: var(--muted); }
.review-stars { color: #5f19bb; letter-spacing: 2px; font-size: 18px; }

/* Public profile: one compact, branded content column. */
.public-profile .profile-identity {
  align-items: flex-end;
  padding-top: 6px;
  padding-bottom: 6px;
}

.public-profile-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-left: auto;
  padding-left: 18px;
}

.profile-role-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 6px;
}

.profile-role-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 7px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  background: rgba(8,7,20,.3);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .02em;
}

.profile-role-tag i {
  display: block;
  width: 5px;
  height: 5px;
  flex: 0 0 5px;
  border-radius: 50%;
  background: currentColor;
}

.profile-role-tag.guide { border-color: rgba(0,209,24,.72); color: #c9ffcf; }
.profile-role-tag.admin { border-color: rgba(255,214,90,.8); color: #ffeaa6; }

.achievement-slots {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: 0;
  padding: 0;
}

.public-profile-actions > .achievement-slots { transform: translateY(-12px); }

.achievement-slot {
  display: grid;
  place-items: center;
  width: 84px;
  height: 84px;
  padding: 0;
  border: 1px dashed rgba(255,255,255,.5);
  border-radius: 50%;
  background: rgba(8,7,20,.25);
  color: rgba(255,255,255,.72);
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
}
.achievement-slot.add-achievement { display:grid; place-items:center; padding:0; text-align:center; }
.account-settings { width:100%; max-width:950px; margin:0 auto; border-color:rgba(164,114,215,.42); background:rgba(27,15,47,.9); color:#fff; }
.account-settings summary { cursor:pointer; font-size:17px; font-weight:900; }
.blocked-profiles { margin-top:15px; padding-top:13px; border-top:1px solid rgba(164,114,215,.3); }
.blocked-profiles h3,.blocked-profiles p { margin:0 0 8px; }
.blocked-profile-row { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:10px 0; border-top:1px solid rgba(164,114,215,.2); }
.blocked-profile-row span { display:grid; }
.blocked-profile-row small { color:#cfc5db; }
.blocked-profile-row button { padding:6px 10px; background:rgba(95,25,187,.52); box-shadow:none; font-size:12px; }

.public-profile .profile-body {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.public-guide-layout {
  display: grid;
  grid-template-columns: minmax(280px,.78fr) minmax(0,1.5fr);
  gap: 14px;
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
}

.public-guide-layout > .card,
.public-guide-main > .card {
  box-sizing: border-box;
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 16px 18px;
  border: 1px solid rgba(164,114,215,.42);
  background: linear-gradient(145deg,rgba(40,23,62,.94),rgba(12,9,28,.9));
  color: #fff;
  box-shadow: 0 12px 28px rgba(8,7,20,.24);
}

.public-guide-main {
  display: grid;
  align-content: start;
  gap: 14px;
}

.guide-overview-card {
  display: grid;
  align-content: start;
  gap: 20px;
}

.guide-overview-card section { display: grid; gap: 8px; }
.guide-overview-card h2 { margin: 0 !important; font-size: 18px !important; }

.guide-platform-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 16px;
  padding: 10px 12px;
  border: 1px solid rgba(164,114,215,.5);
  border-radius: 8px;
  background: rgba(8,7,20,.3);
}

.guide-platform-strip span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #f3ecfa;
  font-size: 13px;
  font-weight: 700;
}

.guide-platform-strip b { color: #fff; font-size: 18px; }

.guide-style-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.guide-style-tags > span:not(.muted) {
  padding: 6px 10px;
  border: 1px solid rgba(164,114,215,.58);
  border-radius: 999px;
  background: rgba(95,25,187,.24);
  color: #e7d0ff;
  font-size: 12px;
  font-weight: 800;
}

.games-played-card { max-width: 1120px !important; }

.public-profile .profile-body > .card {
  box-sizing: border-box;
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  padding: 14px 18px;
  border: 1px solid rgba(164,114,215,.48);
  background-color: rgba(40,23,62,.9);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='36' viewBox='0 0 42 36'%3E%3Cpath d='M10.5 1h21L41 18l-9.5 17h-21L1 18Z' fill='none' stroke='%23a472d7' stroke-opacity='.08'/%3E%3C/svg%3E"),linear-gradient(145deg,rgba(95,25,187,.18),rgba(8,7,20,.2));
  background-size: 42px 36px, auto;
  color: #fff;
  box-shadow: 0 12px 28px rgba(8,7,20,.24);
}

.public-profile .profile-body > .card h2 {
  margin: 0 0 7px;
  color: #fff;
  font-size: 21px;
}

.public-profile .profile-body > .card p { margin: 0; color: #eee8f7; }
.public-profile .profile-body .muted { color: #cfc5db; }
.public-profile .public-guide-services .guided-game-list { margin: 0; }
.public-profile .public-guide-services { padding-top: 12px; }
.public-profile .public-guide-services > h2 { margin-bottom: 6px; }
.public-profile .public-guide-services .guided-game {
  position: relative;
  padding: 9px 110px 9px 12px;
  border-color: rgba(164,114,215,.35);
  background: rgba(8,7,20,.34);
}
.public-profile .public-guide-services .guided-game h3 {
  margin: 0 0 4px;
  font-size: 16px;
  line-height: 1.25;
}
.public-profile .public-guide-services .guided-game p { margin: 2px 0; font-size: 13px; }
.game-genre {
  position: absolute;
  top: 9px;
  right: 10px;
  padding: 4px 8px;
  border: 1px solid currentColor;
  border-radius: 999px;
  background: rgba(8,7,20,.68);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .03em;
}
.catalog-genre { position: static; display: inline-flex; align-items: center; align-self: flex-start; margin-top: 4px; }
.genre-action{color:#ff7c92}.genre-adventure{color:#ffc56b}.genre-rpg{color:#d6a5ff}.genre-strategy{color:#74d9ff}.genre-shooter{color:#ff735f}.genre-simulation{color:#7ee8c0}.genre-sports{color:#68e676}.genre-racing{color:#ffd93d}.genre-fighting{color:#ff8b3d}.genre-puzzle{color:#d8e46f}.genre-horror{color:#df7bff}.genre-survival{color:#8fd06d}.genre-sandbox{color:#c99b68}.genre-mmo{color:#8ca7ff}.genre-moba{color:#f39bff}.genre-party{color:#ff9ed2}.genre-platformer{color:#75d8ff}.genre-other{color:#c5bdcf}
.public-profile .platform-heading { margin: 13px 0 6px; }
.public-profile .platform-tags { margin: 0 0 13px; }
.public-profile .guide-reviews { margin: 0 auto; }
.public-profile .reviews-heading { align-items: flex-start; }
.public-profile .reviews-heading h2 { margin: 0; }
.public-profile .reviews-heading p { margin-top: 4px !important; color: #cfc5db !important; font-size: 13px; }
.public-profile .review {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 12px;
  margin-top: 12px;
  padding: 13px;
  border: 1px solid rgba(164,114,215,.3);
  border-radius: 9px;
  background: rgba(8,7,20,.3);
}
.review-avatar { display: grid; place-items: center; width: 46px; height: 46px; border: 2px solid #a472d7; border-radius: 50%; background: #5f19bb; color: #fff; font-weight: 900; }
.review-content { min-width: 0; }
.review-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.completed-session { padding: 4px 8px; border: 1px solid #00d118; border-radius: 999px; color: #73ff82; font-size: 10px; font-weight: 900; }
.public-profile .review small { color: #cfc5db; }
.public-profile .review-stars,
.public-profile .reviews-heading strong { color: #d5a9ff; }
.public-profile .review-stars small { margin-left: 6px; font-weight: 500; letter-spacing: 0; }
.review-empty { margin-top: 12px; padding: 18px; border: 1px dashed rgba(164,114,215,.4); border-radius: 9px; text-align: center; }
.review-policy { margin-top: 12px !important; color: #cfc5db !important; font-size: 12px; text-align: right; }

.schedule-session-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 35px;
  margin: 0;
  padding: 7px 13px;
  border: 1px solid rgba(213,169,255,.9);
  background: linear-gradient(180deg,#6f2bc4,#4d1597);
  color: #fff;
  box-shadow: 0 3px 0 #2b0b58,0 5px 14px rgba(8,7,20,.28);
  font-weight: 900;
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
}

.followed-profiles {
  padding: 16px 18px;
  border-color: rgba(164,114,215,.46);
  background-color: rgba(40,23,62,.9);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='36' viewBox='0 0 42 36'%3E%3Cpath d='M10.5 1h21L41 18l-9.5 17h-21L1 18Z' fill='none' stroke='%23a472d7' stroke-opacity='.08'/%3E%3C/svg%3E"),linear-gradient(145deg,rgba(95,25,187,.18),rgba(8,7,20,.2));
  color: #fff;
}
.followed-profiles-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; }
.followed-profiles-heading h2 { margin:2px 0 0; font-size:21px; }
.follow-count { display:grid; place-items:center; width:31px; height:31px; border:1px solid rgba(255,215,92,.7); border-radius:50%; background:rgba(8,7,20,.55); color:#ffd75c; font-weight:900; }
.followed-profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.followed-profile-card { display:flex; align-items:center; gap:10px; min-width:0; padding:10px 12px; border:1px solid rgba(164,114,215,.34); border-radius:10px; background:rgba(8,7,20,.34); color:#fff; text-decoration:none; }
.followed-profile-card:hover { border-color:#a472d7; background:rgba(95,25,187,.24); }
.followed-profile-card > span:nth-child(2) { display:grid; min-width:0; flex:1; }
.followed-profile-card strong,.followed-profile-card small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.followed-profile-card small { color:#cfc5db; }
.followed-profile-card b { color:#ffd75c; }
.followed-profile-avatar { display:grid; place-items:center; flex:0 0 48px; width:48px; height:48px; overflow:hidden; border:2px solid #a472d7; border-radius:50%; background:#5f19bb; font-weight:900; }
.followed-profile-avatar img { width:100%; height:100%; object-fit:cover; }
.followed-profile-empty { display:flex; align-items:center; gap:14px; padding:14px; border:1px dashed rgba(164,114,215,.46); border-radius:10px; background:rgba(8,7,20,.28); }
.followed-profile-empty > span { color:#ffd75c; font-size:32px; }
.followed-profile-empty > div { flex:1; }
.followed-profile-empty p { margin:3px 0 0; color:#cfc5db; }
.followed-profile-empty .btn { flex:0 0 auto; }

@media(max-width:820px){.public-guide-layout{grid-template-columns:1fr}.public-profile-actions{grid-column:1/-1;justify-content:flex-start;margin-left:0;padding:8px 0 0}.achievement-slots{justify-content:flex-start}}
@media(max-width:520px){.public-profile-actions{align-items:flex-start;flex-direction:column}.public-profile .public-guide-services .guided-game{padding-right:12px}.game-genre{position:static;display:inline-block;margin-bottom:6px}}
@media(max-width:650px){.followed-profile-grid{grid-template-columns:1fr}.followed-profile-empty{align-items:flex-start;flex-wrap:wrap}.followed-profile-empty .btn{width:100%}}
@media(max-width:650px){.achievement-options{grid-template-columns:1fr}.profile-achievement-editor{grid-column:1/-1;margin-left:0}.profile-achievement-editor .achievement-slots{justify-content:flex-start}.achievement-slot{width:60px;height:60px;font-size:28px}}
@media(max-width:650px){.profile-cover{aspect-ratio:3/1}.profile-identity{align-items:center;margin-top:-42px;padding:8px 16px 7px}.profile-photo{width:145px;height:175px;flex-basis:145px;margin-top:-103px;padding:4px;font-size:50px}.profile-name h1{font-size:27px}.live-guide-badge{width:32px;height:32px;vertical-align:-7px}.guide-prompt{align-items:flex-start;flex-direction:column}.guide-prompt button{width:100%}.cover-controls{right:7px;bottom:49px}.cover-controls .media-edit{padding:3px 6px;font-size:9px}.banner-choice-grid{grid-template-columns:1fr 1fr}.achievement-slots{gap:5px}.achievement-slot{width:30px;height:30px;font-size:16px}.public-profile .profile-body>.card{padding:12px 14px}.review-meta{align-items:flex-start;flex-direction:column}.review-policy{text-align:left}}
