.gtpc-boards-pair {
    width: min(calc(100vw - 80px), 960px);
    margin: 24px auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 18px;
}

.gtpc-boards-pair .gtpc-board {
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
}

.gtpc-board {
    width: 100%;
    max-width: 941px;
    margin: 24px auto;
    position: relative;
    container-type: inline-size;
    aspect-ratio: 941 / 1672;
    background-image: var(--gtpc-bg);
    background-size: 100% 100%;
    background-repeat: no-repeat;
    overflow: hidden;
    font-family: Georgia, "Times New Roman", serif;
    color: #fff;
}

.gtpc-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
    height: 100%;
    min-width: 0;
    font-size: clamp(8px, 2.05cqw, 19px);
    line-height: 1;
    text-shadow: 0 1px 3px #000;
}

.gtpc-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding-left: 0;
}

.gtpc-score {
    flex: 0 0 auto;
    font-weight: 700;
    padding-right: 0;
}

/* Halloween Cup artwork: approximately 14 visible rows. */
.gtpc-cup-left,
.gtpc-cup-right {
    position: absolute;
    top: 35.15%;
    height: 41.25%;
    display: grid;
    grid-template-rows: repeat(20, 1fr);
}

.gtpc-cup-left {
    left: 10.4%;
    width: 38.5%;
}

.gtpc-cup-right {
    left: 52.0%;
    width: 38.5%;
}

.gtpc-cup .gtpc-row {
    color: #ffe1a0;
}

.gtpc-cup-data {
    display: grid;
    grid-template-rows: repeat(20, 1fr);
    height: 100%;
}

.gtpc-cup-right .gtpc-row {
    color: #e9b8ff;
}

/* Halloween streak artwork: 20 rows. */
.gtpc-streak-current,
.gtpc-streak-broken {
    position: absolute;
    top: 34.9%;
    height: 50.0%;
    display: grid;
    grid-template-rows: repeat(20, 1fr);
}

.gtpc-streak-current {
    left: 16.2%;
    width: 32.8%;
}

.gtpc-streak-broken {
    left: 58.2%;
    width: 32.8%;
}

.gtpc-streak .gtpc-streak-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 5px;
    min-width: 0;
    font-size: clamp(7px, 1.65cqw, 16px);
    line-height: 1;
    text-shadow: 0 1px 3px #000;
}

.gtpc-streak-current .gtpc-streak-row {
    color: #ffd27a;
}

.gtpc-streak-broken .gtpc-streak-row {
    color: #e4b0ff;
}

.gtpc-streak-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gtpc-streak-score {
    font-weight: 700;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .gtpc-boards-pair {
        width: 100%;
        flex-direction: column;
        align-items: center;
    }

    .gtpc-boards-pair .gtpc-board {
        width: 100%;
        max-width: 941px;
    }
}

@media (max-width: 600px) {
    .gtpc-board {
        margin: 12px auto;
    }

    .gtpc-row {
        font-size: clamp(8px, 2.05cqw, 14px);
    }

    .gtpc-streak .gtpc-streak-row {
        font-size: clamp(7px, 1.65cqw, 12px);
    }
}


.gtpc-timeline { max-width: 941px; margin: 34px auto; padding: 24px; border: 1px solid rgba(255,160,50,.35); border-radius: 16px; background: rgba(10,5,18,.72); box-sizing: border-box; }
.gtpc-timeline-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 18px; }
.gtpc-timeline-event { display:grid; grid-template-columns: 115px 1fr; gap: 18px; padding: 14px 0; border-top: 1px solid rgba(255,255,255,.1); }
.gtpc-timeline-date { font-weight:700; opacity:.8; }
.gtpc-timeline-main { display:flex; flex-direction:column; gap:4px; }
.gtpc-timeline-main span { opacity:.85; }
.gtpc-timeline-main small { opacity:.65; }
@media (max-width: 600px) { .gtpc-timeline { padding:16px; } .gtpc-timeline-event { grid-template-columns:1fr; gap:5px; } }


.gtpc-stats { max-width: 941px; margin: 28px auto; padding: 24px; border: 1px solid rgba(255,160,50,.35); border-radius: 16px; background: rgba(10,5,18,.72); box-sizing: border-box; }
.gtpc-stats-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 18px; }
.gtpc-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.gtpc-stat { padding: 14px 12px; border: 1px solid rgba(255,255,255,.08); border-radius: 10px; background: rgba(255,255,255,.025); text-align: center; }
.gtpc-stat strong { display:block; font-size: 1.55rem; line-height:1.1; color:#ffd27a; }
.gtpc-stat span { display:block; margin-top:5px; opacity:.78; font-size:.9rem; }
.gtpc-stats-highlight { margin-top:16px; padding:10px 12px; border-radius:10px; background:rgba(120,70,180,.12); }
.gtpc-bonus-leaders { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:14px; }
.gtpc-bonus-leaders > strong { margin-right:4px; }
.gtpc-bonus-leaders > span { padding:5px 9px; border:1px solid rgba(255,255,255,.1); border-radius:999px; background:rgba(255,255,255,.03); }
.gtpc-bonus-leaders b { color:#ffd27a; margin-left:4px; }
@media (max-width: 700px) { .gtpc-stat-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 430px) { .gtpc-stat-grid { grid-template-columns: 1fr; } }


/* Full standings: website-only extension of the visual leaderboard. */
.gtpc-full-standings {
    max-width: 941px;
    margin: 34px auto;
    padding: 24px;
    border: 1px solid rgba(255,160,50,.35);
    border-radius: 16px;
    background: rgba(10,5,18,.78);
    box-sizing: border-box;
    box-shadow: 0 8px 30px rgba(0,0,0,.16);
}
.gtpc-full-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #c8a6ff;
    margin-bottom: 4px;
}
.gtpc-full-subtitle {
    font-size: .9rem;
    opacity: .68;
    margin-bottom: 18px;
}
.gtpc-full-table-wrap { overflow-x: auto; }
.gtpc-full-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    color: #f5e9ff;
    font-family: Georgia, "Times New Roman", serif;
}
.gtpc-full-table th {
    padding: 11px 12px;
    text-align: left;
    color: #d7b5ff;
    font-size: .82rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(255,255,255,.13);
}
.gtpc-full-table td {
    padding: 9px 12px;
    border-bottom: 1px solid rgba(255,255,255,.07);
    font-size: .98rem;
}
.gtpc-full-table tbody tr:hover { background: rgba(160,90,255,.07); }
.gtpc-full-rank { width: 62px; }
.gtpc-full-rank span {
    display: inline-flex;
    min-width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255,255,255,.05);
    color: #bfa5d9;
    font-weight: 700;
}
.gtpc-full-top .gtpc-full-rank span {
    background: linear-gradient(135deg, rgba(255,170,70,.24), rgba(155,75,255,.18));
    color: #ffd27a;
    box-shadow: 0 0 12px rgba(170,90,255,.16);
}
.gtpc-full-name { font-weight: 600; }
.gtpc-full-total { color: #ffd27a; font-weight: 800; }
.gtpc-full-streak { color: #e7b8ff; font-weight: 700; }
.gtpc-full-table td:nth-child(n+3) { text-align: center; }
.gtpc-full-table th:nth-child(n+3) { text-align: center; }
.gtpc-full-empty { opacity: .7; padding: 10px 0; }

/* Slightly pull the right-column scores left without moving names or rows. */
.gtpc-cup-right .gtpc-score { margin-right: 3%; }

@media (max-width: 600px) {
    .gtpc-full-standings { padding: 16px; }
    .gtpc-full-table th, .gtpc-full-table td { padding: 8px 7px; }
    .gtpc-full-table td { font-size: .9rem; }
}
