/* Participant public profile v2 — иллюстрации и фото, без «неонового» hero */

body.participant-profile-page main {
    padding-top: 0;
}

.pp-page {
    padding-bottom: 2.5rem;
}

/* ── Profile header card ─────────────────────────────────────── */
.pp-profile-head {
    padding: 1rem 0 1.5rem;
    background:
        radial-gradient(ellipse 90% 60% at 50% -20%, rgba(94, 207, 138, .12), transparent 55%),
        var(--color-surface, #0a0f0d);
}

.pp-profile-head__card {
    border-radius: 20px;
    border: 1px solid var(--color-border, rgba(42, 61, 50, .55));
    background: var(--color-surface-elevated, #111916);
    padding: 1.25rem 1.15rem 1.35rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, .22);
}

@media (min-width: 640px) {
    .pp-profile-head__card {
        padding: 1.5rem 1.5rem 1.6rem;
    }
}

.pp-profile-head__layout {
    display: grid;
    gap: 1.15rem;
    align-items: start;
}

@media (min-width: 720px) {
    .pp-profile-head__layout {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 1.35rem 1.5rem;
    }

    .pp-profile-head__actions {
        grid-column: 1 / -1;
    }
}

@media (min-width: 960px) {
    .pp-profile-head__layout {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .pp-profile-head__actions {
        grid-column: auto;
        align-self: center;
    }
}

.pp-profile-head__eyebrow {
    margin: 0 0 .45rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.pp-profile-head__title {
    margin: 0 0 .55rem;
    font-family: var(--rp-serif, 'PT Serif', Georgia, serif);
    font-size: clamp(1.85rem, 4.5vw, 2.5rem);
    font-weight: 700;
    line-height: 1.1;
    color: var(--color-text);
}

.pp-profile-head__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pp-profile-head__chip {
    display: inline-flex;
    align-items: center;
    padding: .32rem .65rem;
    border-radius: 999px;
    font-size: .8125rem;
    color: var(--color-muted);
    background: rgba(0, 0, 0, .2);
    border: 1px solid var(--color-border);
}

.pp-profile-head__chip--id {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--color-text);
}

.pp-profile-head__chip--verified {
    color: var(--color-accent);
    border-color: rgba(94, 207, 138, .35);
    background: rgba(94, 207, 138, .08);
    font-weight: 600;
}

.pp-profile-head__about {
    margin: 1.15rem 0 0;
    padding: .85rem 1rem;
    border-radius: 12px;
    font-size: .9375rem;
    line-height: 1.6;
    color: var(--color-muted);
    border-left: 3px solid rgba(94, 207, 138, .45);
    background: rgba(0, 0, 0, .15);
}

.pp-profile-head__about--summary {
    margin-top: 1.25rem;
    font-style: normal;
}

.pp-profile-head__message.rp-btn--messenger {
    width: 100%;
    max-width: none;
}

@media (min-width: 960px) {
    .pp-profile-head__message.rp-btn--messenger {
        width: auto;
        min-width: 11.5rem;
    }
}

.pp-owner-banner {
    margin: 0 0 1rem;
    padding: .6rem .85rem;
    border-radius: 10px;
    font-size: .8125rem;
    color: var(--color-muted);
    background: var(--color-surface-elevated);
    border: 1px solid var(--color-border);
}

.pp-owner-banner a {
    color: var(--color-accent);
    font-weight: 600;
    margin-left: .25rem;
}


/* User avatar + placeholder */
.pp-user-avatar {
    flex-shrink: 0;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid rgba(94, 207, 138, .55);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .25);
    background: linear-gradient(135deg, #2d6a4f, #5ecf8a);
}

.pp-user-avatar--lg {
    width: 96px;
    height: 96px;
}

.pp-user-avatar--photo > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pp-user-avatar--placeholder {
    position: relative;
    background: linear-gradient(145deg, #1a3d2e, #40916c);
}

.pp-user-avatar__placeholder-art {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.pp-hero__message-action .rp-btn--messenger,
.pp-profile-head__message.rp-btn--messenger {
    justify-content: flex-start;
    gap: .75rem;
    padding: .65rem 1rem .65rem .65rem;
    max-width: min(100%, 20rem);
    text-align: left;
    background: linear-gradient(135deg, rgba(26, 61, 46, .95) 0%, rgba(15, 35, 28, .98) 100%);
    border: 1px solid rgba(94, 207, 138, .38);
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2), inset 0 1px 0 rgba(255, 255, 255, .06);
    color: var(--color-text);
}

.pp-hero__message-action .rp-btn--messenger:hover,
.pp-profile-head__message.rp-btn--messenger:hover {
    border-color: rgba(94, 207, 138, .6);
    background: linear-gradient(135deg, rgba(32, 75, 55, .98) 0%, rgba(18, 42, 34, 1) 100%);
    transform: translateY(-1px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255, 255, 255, .08);
    color: var(--color-text);
}

.pp-message-cta__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 11px;
    background: linear-gradient(145deg, #40916c, #5ecf8a);
    color: #052e16;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(94, 207, 138, .25);
}

.pp-message-cta__icon .rp-icon {
    width: 1.15rem;
    height: 1.15rem;
}

.pp-message-cta__copy {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}

.pp-message-cta__title {
    font-size: .9375rem;
    font-weight: 650;
    line-height: 1.2;
    letter-spacing: -.01em;
}

.pp-message-cta__sub {
    font-size: .75rem;
    font-weight: 500;
    color: var(--color-muted);
    line-height: 1.35;
}

.pp-profile-head__message.rp-btn--messenger:hover .pp-message-cta__sub {
    color: rgba(232, 248, 240, .78);
}

/* Visual frame */
.pp-hero__visual {
    min-width: 0;
}

.pp-hero__visual-frame {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    aspect-ratio: 5 / 4;
    max-height: min(360px, 48vh);
    border: 1px solid var(--color-border);
    background: var(--color-surface-elevated);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .28);
}

.pp-hero__visual-art,
.pp-hero__visual-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pp-hero-mosaic {
    display: grid;
    gap: 3px;
    width: 100%;
    height: 100%;
    min-height: 200px;
    background: #0f172a;
}

.pp-hero-mosaic--count-2 {
    grid-template-columns: 1fr 1fr;
}

.pp-hero-mosaic--count-3 {
    grid-template-columns: 1.2fr 1fr;
    grid-template-rows: 1fr 1fr;
}

.pp-hero-mosaic--count-3 .pp-hero-mosaic__cell--main {
    grid-row: span 2;
}

.pp-hero-mosaic--count-4 {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
}

.pp-hero-mosaic__cell {
    overflow: hidden;
    min-height: 0;
    position: relative;
}

.pp-hero-mosaic__cell img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pp-hero-mosaic__fallback {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    width: 100%;
    height: 100%;
    min-height: 88px;
    background: linear-gradient(145deg, #1e293b, #0f172a);
    color: rgba(148, 163, 184, .75);
}

.pp-hero-mosaic__initials {
    font-family: var(--rp-serif, 'PT Serif', Georgia, serif);
    font-size: 1.35rem;
    font-weight: 700;
    color: #e2e8f0;
}

.pp-hero__visual-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin: .65rem 0 0;
    padding: 0;
    list-style: none;
}

.pp-hero__visual-chips li {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .65rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-text);
    background: var(--color-surface-elevated);
    border: 1px solid var(--color-border);
}

.pp-hero-chip__value {
    font-variant-numeric: tabular-nums;
    color: var(--color-accent);
}

/* Saved people cards */
.pp-person-list {
    display: flex;
    flex-direction: column;
    gap: .65rem;
}

.pp-person-card {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    gap: .85rem 1rem;
    align-items: center;
    padding: .65rem .75rem .65rem .65rem;
    border-radius: 14px;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--color-border);
    background: var(--color-surface-elevated);
    transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.pp-person-card:hover {
    border-color: rgba(94, 207, 138, .45);
    background: rgba(94, 207, 138, .04);
    transform: translateY(-1px);
}

.pp-person-card__media {
    width: 72px;
    height: 72px;
    border-radius: 12px;
    overflow: hidden;
    background: #0f172a;
    border: 1px solid var(--color-border);
}

.pp-person-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pp-person-card__fallback {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .2rem;
    width: 100%;
    height: 100%;
    background: linear-gradient(160deg, #1a2620, #0f172a);
    color: rgba(148, 163, 184, .8);
}

.pp-person-card__initials {
    font-family: var(--rp-serif, 'PT Serif', Georgia, serif);
    font-size: 1.1rem;
    font-weight: 700;
    color: #e2e8f0;
}

.pp-person-card__name {
    display: block;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.35;
    color: var(--color-text);
}

.pp-person-card__dates {
    display: block;
    margin-top: .2rem;
    font-size: .8125rem;
    color: var(--color-muted);
}

.pp-person-card__cta {
    color: var(--color-muted);
    opacity: .7;
}

.pp-person-card:hover .pp-person-card__cta {
    color: var(--color-accent);
    opacity: 1;
}

/* ── Page layout & sections ──────────────────────────────────── */
.pp-layout {
    display: grid;
    gap: 1.75rem 2rem;
    padding-top: .25rem;
}

@media (min-width: 1024px) {
    .pp-layout {
        grid-template-columns: minmax(0, 1fr) minmax(272px, 300px);
        align-items: start;
    }

    .pp-layout__aside {
        position: sticky;
        top: 1rem;
    }
}

.pp-section {
    margin-bottom: 2rem;
}

.pp-section:last-child {
    margin-bottom: 0;
}

.pp-section__head {
    margin-bottom: 1rem;
}

.pp-section__title {
    margin: 0 0 .35rem;
    font-family: var(--rp-serif, 'PT Serif', Georgia, serif);
    font-size: clamp(1.25rem, 2.5vw, 1.45rem);
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-text);
}

.pp-section__lead {
    margin: 0;
    max-width: 52ch;
    font-size: .875rem;
    line-height: 1.55;
    color: var(--color-muted);
}

/* ── Stat tiles ─────────────────────────────────────────────── */
.pp-metrics {
    margin-bottom: 2.25rem;
}

.pp-metrics__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 168px), 1fr));
    gap: .75rem;
}

@media (min-width: 768px) {
    .pp-metrics__grid {
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    }
}

.pp-stat-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .35rem;
    overflow: hidden;
    border-radius: 14px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-elevated);
    min-height: 118px;
    padding: .85rem .9rem .75rem;
    box-sizing: border-box;
}

.pp-stat-tile__illus {
    position: absolute;
    right: -.15rem;
    bottom: -.25rem;
    width: 76px;
    height: 76px;
    opacity: .82;
    pointer-events: none;
    overflow: hidden;
    background: transparent;
}

.pp-stat-tile__illus img,
.pp-stat-tile__illus svg {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    object-position: 100% 100%;
    background: transparent !important;
}

.pp-stat-tile__illus--art {
    opacity: .92;
    filter: none;
}

.pp-stat-tile__illus--ai {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

.pp-stat-tile__illus--ai img {
    object-fit: contain;
    object-position: 100% 100%;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .15));
}

.pp-stat-tile__head {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: .45rem;
    min-height: 1.35rem;
}

.pp-stat-tile__type-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--pp-stat-accent, var(--color-accent));
}

.pp-stat-tile__type-icon .kd-ui-icon {
    width: 1.1rem;
    height: 1.1rem;
    opacity: .92;
}

.pp-stat-tile__label {
    font-size: .72rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--color-muted);
    text-transform: lowercase;
}

.pp-stat-tile__label::first-letter {
    text-transform: uppercase;
}

.pp-stat-tile__value {
    position: relative;
    z-index: 1;
    margin-top: auto;
    font-family: var(--rp-serif, 'PT Serif', Georgia, serif);
    font-size: clamp(1.75rem, 4vw, 2.1rem);
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    color: var(--color-text);
    letter-spacing: -.02em;
}

.pp-stat-tile::before {
    content: '';
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 4px;
    background: var(--pp-stat-accent, var(--color-accent));
}

.pp-panel {
    border-radius: 14px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-elevated);
    padding: .65rem 1.15rem 1.05rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03);
}

.pp-empty {
    display: grid;
    gap: .75rem;
    justify-items: center;
    text-align: center;
    padding: 1.25rem .5rem 1.5rem;
}

.pp-empty__art {
    width: min(100%, 280px);
    border-radius: 12px;
    opacity: .95;
}

.pp-empty p {
    margin: 0;
    max-width: 36ch;
    font-size: .9rem;
    line-height: 1.55;
    color: var(--color-muted);
}

/* Timeline */
.pp-page .kd-public-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pp-page .kd-public-timeline__item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .85rem 1rem;
    padding: .95rem 0;
    border-bottom: 1px solid var(--color-border);
}

.pp-page .kd-public-timeline__item:last-child {
    border-bottom: none;
}

.pp-page .kd-public-timeline__dot {
    width: .6rem;
    height: .6rem;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(94, 207, 138, .15);
}

.pp-page .kd-public-timeline__line {
    width: 1px;
    flex: 1;
    min-height: .75rem;
    margin-top: .3rem;
    background: var(--color-border);
}

.pp-page .kd-public-timeline__action {
    margin: 0 0 .3rem;
    font-size: .9375rem;
    font-weight: 500;
}

.pp-page .kd-public-timeline__link {
    color: var(--color-text);
    text-decoration: none;
    border-bottom: 1px solid rgba(94, 207, 138, .3);
}

.pp-page .kd-public-timeline__time {
    font-size: .75rem;
    color: var(--color-muted);
}

/* Aside cards */
.pp-aside {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.pp-page .kd-section {
    border-radius: 14px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-elevated);
    overflow: hidden;
    box-shadow: var(--shadow, 0 4px 16px rgba(0, 0, 0, .12));
}

.pp-page .kd-section__head {
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--color-border);
}

.pp-page .kd-section__head h2 {
    margin: 0;
    display: flex;
    align-items: center;
    gap: .5rem;
    font-family: var(--rp-serif, 'PT Serif', Georgia, serif);
    font-size: 1.05rem;
    font-weight: 700;
}

.pp-page .kd-ui-icon {
    width: 1.05rem;
    height: 1.05rem;
    flex-shrink: 0;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
    color: var(--color-accent);
    opacity: .85;
}

.pp-page .kd-section__body {
    padding: 1.15rem;
}

.pp-page .kd-spectrum {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.1rem;
}

.pp-page .kd-spectrum__ring {
    position: relative;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06);
}

.pp-page .kd-spectrum__chart {
    display: block;
    width: 100%;
    height: 100%;
}

.pp-page .kd-spectrum--empty .kd-spectrum__ring {
    background: conic-gradient(from -90deg, rgba(148, 163, 184, .2) 0deg 360deg);
}

.pp-page .kd-spectrum__ring-hole {
    position: absolute;
    inset: 22%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--color-surface-elevated);
    border: 1px solid var(--color-border);
}

.pp-page .kd-spectrum__total {
    font-size: 1.65rem;
    font-weight: 700;
}

.pp-page .kd-spectrum__total-label {
    font-size: .65rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
}

.pp-page .kd-spectrum__legend {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
}

.pp-page .kd-spectrum__legend-item + .kd-spectrum__legend-item {
    margin-top: .65rem;
}

.pp-page .kd-spectrum__legend-head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .45rem;
    font-size: .82rem;
}

.pp-page .kd-spectrum__dot {
    width: .5rem;
    height: .5rem;
    border-radius: 50%;
    background: var(--kd-spectrum-color, #94a3b8);
}

.pp-page .kd-spectrum__bar {
    display: block;
    height: 4px;
    margin-top: .35rem;
    border-radius: 999px;
    background: rgba(148, 163, 184, .12);
    overflow: hidden;
}

.pp-page .kd-spectrum__bar-fill {
    display: block;
    height: 100%;
}

.pp-page .kd-spectrum__caption {
    margin: .75rem 0 0;
    font-size: .78rem;
    text-align: center;
    color: var(--color-muted);
}

.pp-page .kd-trust-steps {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pp-page .kd-trust-steps__item {
    display: grid;
    grid-template-columns: 1.25rem 1fr;
    gap: .5rem .65rem;
    padding: .45rem 0;
}

.pp-page .kd-public-status-badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .65rem;
    border-radius: 999px;
    font-size: .8125rem;
    font-weight: 600;
}

.pp-page .kd-public-status-badge--verified {
    color: var(--color-accent);
    background: rgba(94, 207, 138, .12);
    border: 1px solid rgba(94, 207, 138, .3);
}

.pp-page .kd-public-status-badge--pending {
    color: #fde68a;
    background: rgba(251, 191, 36, .1);
    border: 1px solid rgba(251, 191, 36, .28);
}

.pp-page .kd-public-status__note {
    margin: .75rem 0 0;
    font-size: .8125rem;
    line-height: 1.5;
    color: var(--color-muted);
}

.pp-geo {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.pp-geo__pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .4rem .7rem;
    border-radius: 999px;
    font-size: .8125rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface-elevated);
}

.pp-achievements {
    display: grid;
    gap: .75rem;
}

@media (min-width: 560px) {
    .pp-achievements {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.pp-achievement {
    padding: 1rem;
    border-radius: 12px;
    border: 1px solid var(--color-border);
    background: var(--color-surface-elevated);
}

.pp-achievement h3 {
    margin: .35rem 0 .25rem;
    font-size: .9375rem;
}

.pp-achievement p {
    margin: 0;
    font-size: .8125rem;
    color: var(--color-muted);
}

.pp-page .rp-person {
    border-color: var(--color-border);
}
