/* =========================================================
   iEtsh Puzzle Archive
   Premium Dark UI
   ========================================================= */

* {
    box-sizing: border-box;
}

body {
    background:
        radial-gradient(
            circle at 50% -15%,
            rgba(92, 108, 176, 0.14),
            transparent 42%
        ),
        linear-gradient(
            180deg,
            #0b0e15 0%,
            #090c12 100%
        );

    color: #d9dde7;

    font-family:
        "Segoe UI",
        Tahoma,
        Arial,
        sans-serif;

    margin: 0;
    padding: 0;

    min-height: 100vh;
}

#content {
    width: min(1160px, calc(100% - 44px));
    margin: 0 auto;
    padding: 42px 0 32px;
}


/* =========================================================
   Header
   ========================================================= */

.site-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding-bottom: 28px;

    border-bottom:
        1px solid rgba(255, 255, 255, 0.065);
}

.brand {
    display: flex;
    align-items: center;
    gap: 14px;
}

.brand-mark {
    width: 46px;
    height: 46px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 13px;

    background:
        linear-gradient(
            135deg,
            #6879bc,
            #4d5d96
        );

    color: #ffffff;

    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.5px;

    box-shadow:
        0 9px 28px rgba(72, 88, 147, 0.27);
}

.brand-title {
    color: #f0f2f6;
    font-size: 21px;
    font-weight: 650;
    letter-spacing: -0.45px;
}

.brand-subtitle {
    color: #737c8e;
    font-size: 11px;
    margin-top: 4px;
    letter-spacing: 0.35px;
}

.live-status {
    display: flex;
    align-items: center;
    gap: 9px;

    color: #737c8e;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
}

.status-dot {
    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: #72bd94;

    box-shadow:
        0 0 0 4px rgba(114, 189, 148, 0.08);

    animation: livePulse 2.4s infinite;
}

@keyframes livePulse {
    0%, 100% {
        opacity: 1;
    }

    50% {
        opacity: 0.4;
    }
}


/* =========================================================
   Sections
   ========================================================= */

.latest-section {
    padding-top: 48px;
}

.listing-section {
    padding-top: 72px;
}

.section-label {
    color: #8998d2;

    font-size: 15px;
    font-weight: 700;

    letter-spacing: 2.4px;

    margin-bottom: 15px;
    text-shadow: 0 0 22px rgba(104, 120, 184, 0.16);
}

.section-label span {
    color: #6576b7;
    margin-right: 9px;
}


/* =========================================================
   Latest Puzzle Hero
   ========================================================= */

.latest-card {
    position: relative;

    overflow: hidden;

    min-height: 305px;

    padding: 38px 40px;

    border-radius: 21px;

    border:
        1px solid rgba(255, 255, 255, 0.08);

    background:
        linear-gradient(
            135deg,
            rgba(88, 104, 169, 0.14),
            rgba(255, 255, 255, 0.025)
        );

    box-shadow:
        0 28px 75px rgba(0, 0, 0, 0.28);

    animation:
        cardEnter 0.6s ease both;

    transition:
        transform 0.3s ease,
        border-color 0.3s ease,
        box-shadow 0.3s ease;
}

.latest-card:hover {
    transform: translateY(-3px);

    border-color:
        rgba(109, 126, 198, 0.25);

    box-shadow:
        0 34px 85px rgba(0, 0, 0, 0.34);
}

.latest-glow {
    position: absolute;

    width: 430px;
    height: 430px;

    right: -170px;
    top: -240px;

    border-radius: 50%;

    background:
        rgba(94, 111, 183, 0.10);

    filter: blur(8px);

    pointer-events: none;
}


/* =========================================================
   Large translucent number
   ========================================================= */

.latest-number-bg {
    position: absolute;

    right: 22px;
    bottom: -46px;

    color:
        rgba(255, 255, 255, 0.025);

    font-size: 190px;

    line-height: 1;

    font-weight: 800;

    letter-spacing: -12px;

    pointer-events: none;
    user-select: none;
}


/* =========================================================
   Latest inner layout
   ========================================================= */

.latest-inner {
    position: relative;
    z-index: 2;

    width: 100%;
}

.latest-info {
    position: relative;

    width: 100%;
    max-width: 100%;

    padding-right: 285px;
}

.latest-content {
    position: relative;
}


/* =========================================================
   Latest image
   ========================================================= */

.latest-image {
    position: absolute;

    top: 20px;
    right: 0;

    width: 245px;
    height: 245px;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    border-radius: 12px;

    z-index: 3;
}

.latest-image img {
    display: block;

    width: 100%;
    height: 100%;

    max-width: 100%;
    max-height: 100%;

    object-fit: contain;

    border-radius: 12px;
}


/* =========================================================
   Latest top
   ========================================================= */

.latest-top {
    position: relative;

    display: flex;
    align-items: center;

    margin-bottom: 17px;

    min-height: 30px;
}

.latest-badge {
    display: inline-flex;
    align-items: center;

    padding: 7px 11px;

    border-radius: 999px;

    border:
        1px solid rgba(101, 118, 184, 0.22);

    background:
        rgba(101, 118, 184, 0.11);

    color: #9aa7d7;

    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.1px;
}


/* =========================================================
   Latest small number
   ========================================================= */

.latest-number {
    position: absolute;

    top: -23px;
    right: 0;

    color: #687494;

    font-size: 13px;
    font-weight: 650;

    letter-spacing: 0.5px;

    line-height: 1;

    z-index: 6;
}


/* =========================================================
   Latest title
   ========================================================= */

.latest-title {
    color: #f5f6f8;

    font-size: clamp(34px, 5vw, 52px);

    line-height: 1.06;

    letter-spacing: -2px;

    margin: 0 0 10px;

    font-weight: 700;

    max-width: 100%;
}


/* =========================================================
   Latest date
   ========================================================= */

.latest-date {
    color: #80899a;

    font-size: 13px;

    margin: 0 0 23px;
}


/* =========================================================
   Stars
   ========================================================= */

.puzzle-stars {
    display: flex;
    align-items: center;

    width: fit-content;
}

.puzzle-stars .star-bar {
    display: block;

    width: auto;
    height: auto;

    overflow: visible;
}

.puzzle-stars .star-bar path {
    display: block;
}

.puzzle-stars .star-1 {
    fill: #d8b85d !important;
}

.puzzle-stars .star-0 {
    fill: #303746 !important;
}

.puzzle-stars.author-stars .star-1 {
    fill: #5d9fe3 !important;
}

.latest-stars {
    margin-bottom: 24px;
}

.latest-stars svg {
    display: block;
}


/* =========================================================
   Latest meta
   ========================================================= */

.latest-meta {
    display: flex;
    flex-wrap: wrap;

    gap: 9px;

    margin-bottom: 27px;
}

.meta-pill {
    display: flex;
    align-items: center;

    gap: 7px;

    padding: 9px 13px;

    border-radius: 10px;

    background:
        rgba(255, 255, 255, 0.035);

    border:
        1px solid rgba(255, 255, 255, 0.06);

    color: #7f899b;

    font-size: 10px;

    letter-spacing: 0.5px;
}

.meta-pill strong {
    color: #e2e5eb;

    font-size: 12px;
    font-weight: 650;
}


/* =========================================================
   Latest Action Buttons
   ========================================================= */

.latest-actions {
    display: flex;
    align-items: center;

    gap: 9px;
}

.action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 9px;

    min-width: 112px;
    height: 43px;

    padding: 0 16px;

    border-radius: 10px;

    text-decoration: none;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 0.8px;

    transition:
        transform 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.action-btn:hover {
    transform: translateY(-2px);
}

.action-icon {
    font-size: 13px;
    line-height: 1;
}

.action-label {
    line-height: 1;
}

.play-btn {
    background: #6576b8;

    color: #ffffff;

    box-shadow:
        0 8px 22px rgba(74, 88, 145, 0.25);
}

.play-btn:hover {
    background: #7182c5;

    box-shadow:
        0 11px 27px rgba(74, 88, 145, 0.32);
}

.lmd-btn {
    background:
        rgba(255, 255, 255, 0.035);

    border:
        1px solid rgba(255, 255, 255, 0.085);

    color: #b1b8c6;
}

.lmd-btn:hover {
    background:
        rgba(255, 255, 255, 0.065);

    border-color:
        rgba(255, 255, 255, 0.15);
}


/* =========================================================
   Animations
   ========================================================= */

@keyframes cardEnter {
    from {
        opacity: 0;
        transform: translateY(14px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   Archive Heading
   ========================================================= */

.section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    margin-bottom: 23px;
}

.section-heading h1 {
    margin: 0;

    color: #eef0f4;

    font-size: 29px;
    line-height: 1;

    letter-spacing: -0.9px;
}

.update-status {
    display: flex;
    align-items: center;

    gap: 9px;

    color: #70798b;

    font-size: 11px;
}

.update-dot {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: #6878b8;

    box-shadow:
        0 0 0 3px rgba(104, 120, 184, 0.08);
}

.update-text {
    white-space: nowrap;
}


/* =========================================================
   Archive + Dashboard Layout
   ========================================================= */

.listing-section {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        230px;

    grid-template-areas:
        "heading heading"
        "archive dashboard";

    column-gap: 20px;

    align-items: start;
}

.listing-section .section-heading {
    grid-area: heading;
}

.listing-section #summary-table {
    grid-area: archive;

    min-width: 0;
    width: 100%;
}

.listing-section .puzzle-dashboard {
    grid-area: dashboard;

    margin: 54px 0 0;

    width: 100%;
}


/* =========================================================
   Archive
   ========================================================= */

#summary-table {
    margin: 0;
    padding: 0;

    background: transparent;

    cursor: default;

    min-width: 0;
}


/* =========================================================
   Search / Sorting
   ========================================================= */

.archive-controls {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;

    gap: 10px;

    width: 100%;

    margin: 0 0 15px;
}

.archive-search {
    position: relative;

    width: min(360px, 100%);
}

.archive-search-icon {
    position: absolute;

    left: 14px;
    top: 50%;

    transform: translateY(-50%);

    font-size: 20px;

    line-height: 1;

    opacity: 0.65;

    pointer-events: none;
}

.archive-search-input {
    width: 100%;

    padding:
        11px 14px 11px 42px;

    border:
        1px solid rgba(255, 255, 255, 0.12);

    border-radius: 8px;

    outline: none;

    background:
        rgba(255, 255, 255, 0.035);

    color: inherit;

    font: inherit;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
}

.archive-search-input::placeholder {
    opacity: 0.5;
}

.archive-search-input:hover {
    background:
        rgba(255, 255, 255, 0.055);
}

.archive-search-input:focus {
    border-color:
        rgba(255, 255, 255, 0.35);

    background:
        rgba(255, 255, 255, 0.06);

    box-shadow:
        0 0 0 3px rgba(255, 255, 255, 0.06);
}

.archive-password {
    width: 150px;
}

.archive-password-input {
    width: 100%;

    height: 40px;

    padding: 0 13px;

    border:
        1px solid rgba(255, 255, 255, 0.12);

    border-radius: 8px;

    outline: none;

    background:
        rgba(255, 255, 255, 0.035);

    color: inherit;

    font: inherit;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
}

.archive-password-input::placeholder {
    opacity: 0.5;
}

.archive-password-input:hover {
    background:
        rgba(255, 255, 255, 0.055);
}

.archive-password-input:focus {
    border-color:
        rgba(255, 255, 255, 0.35);

    background:
        rgba(255, 255, 255, 0.06);

    box-shadow:
        0 0 0 3px rgba(255, 255, 255, 0.06);
}

.archive-search-button {
    height: 40px;

    padding: 0 13px;

    border:
        1px solid rgba(255, 255, 255, 0.09);

    border-radius: 8px;

    background:
        rgba(255, 255, 255, 0.025);

    color: #7d8798;

    font: inherit;
    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.8px;

    cursor: pointer;

    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease,
        transform 0.18s ease;
}

.archive-search-button:hover:not(:disabled) {
    background:
        rgba(101, 118, 184, 0.08);

    border-color:
        rgba(101, 118, 184, 0.2);

    color: #aeb9df;
}

.archive-search-button:active:not(:disabled) {
    transform: translateY(1px);
}

.archive-search-button:disabled {
    opacity: 0.35;

    cursor: not-allowed;
}

.archive-clear-updates {
    height: 40px;

    padding: 0 13px;

    border:
        1px solid rgba(255, 255, 255, 0.09);

    border-radius: 8px;

    background:
        rgba(255, 255, 255, 0.025);

    color: #7d8798;

    font: inherit;
    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.8px;

    cursor: pointer;

    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease,
        transform 0.18s ease;
}

.archive-clear-updates:hover:not(:disabled) {
    background:
        rgba(114, 189, 148, 0.08);

    border-color:
        rgba(114, 189, 148, 0.2);

    color: #9bc7ad;
}

.archive-clear-updates:active:not(:disabled) {
    transform: translateY(1px);
}

.archive-clear-updates:disabled {
    opacity: 0.35;

    cursor: not-allowed;
}

.archive-undo-updates {
    height: 40px;

    padding: 0 13px;

    border:
        1px solid rgba(255, 255, 255, 0.09);

    border-radius: 8px;

    background:
        rgba(255, 255, 255, 0.025);

    color: #7d8798;

    font: inherit;
    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.8px;

    cursor: pointer;

    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease,
        transform 0.18s ease;
}

.archive-undo-updates:hover:not(:disabled) {
    background:
        rgba(101, 118, 184, 0.08);

    border-color:
        rgba(101, 118, 184, 0.2);

    color: #aeb9df;
}

.archive-undo-updates:active:not(:disabled) {
    transform: translateY(1px);
}

.archive-undo-updates:disabled {
    opacity: 0.35;

    cursor: not-allowed;
}

.archive-sort-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 5px;

    padding: 5px 6px;

    margin: 0;

    border: 0;

    border-radius: 5px;

    background: transparent;

    color: inherit;

    font: inherit;

    font-size: 0.78rem;
    font-weight: 600;

    cursor: pointer;

    opacity: 0.7;

    transition:
        background 0.18s ease,
        opacity 0.18s ease,
        transform 0.18s ease;
}

.archive-sort-button:hover {
    opacity: 1;

    background:
        rgba(255, 255, 255, 0.07);
}

.archive-sort-button:active {
    transform: translateY(1px);
}

.archive-sort-button.active {
    opacity: 1;
}

.archive-sort-button:focus-visible,
.archive-search-input:focus-visible {
    outline:
        2px solid rgba(255, 255, 255, 0.4);

    outline-offset: 2px;
}

.archive-sort-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 12px;

    font-size: 0.9rem;

    line-height: 1;

    opacity: 0.85;
}


/* =========================================================
   Archive Header
   ========================================================= */

.archive-header {
    display: grid;
    align-items: center;

    grid-template-columns:
        42px
        minmax(170px, 1fr)
        126px
        112px
        44px
        44px
        76px
        88px
        76px;

    gap: 13px;

    height: 24px;

    margin: 0 10px 6px;

    padding: 0;

    color: #535c6d;

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.8px;

    line-height: 1;

    text-transform: uppercase;

    pointer-events: auto;

    user-select: none;
}

.archive-header > div {
    min-width: 0;
}

.archive-header-number,
.archive-header-title,
.archive-header-date,
.archive-header-difficulty,
.archive-header-link,
.archive-header-sudokupad-solves,
.archive-header-solves,
.archive-header-rating {
    min-width: 0;
}

.archive-header-difficulty,
.archive-header-link {
    text-align: center;

    white-space: nowrap;
}

.archive-header-sudokupad-solves,
.archive-header-solves,
.archive-header-rating {
    text-align: center;

    white-space: nowrap;
}

.archive-header .archive-sort-button {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 4px;

    pointer-events: auto;

    padding:
        4px 3px;

    font-size: inherit;
}


/* =========================================================
   Archive Rows
   ========================================================= */

#summary-table .rec {
    width: 100%;

    margin-bottom: 8px;

    overflow: hidden;

    border-radius: 12px;

    border:
        1px solid rgba(255, 255, 255, 0.055);

    background:
        rgba(255, 255, 255, 0.018);

    transition:
        transform 0.22s ease,
        background 0.22s ease,
        border-color 0.22s ease;

    animation:
        rowEnter 0.45s ease both;

    outline: none;
}

#summary-table .rec:hover {
    transform: translateX(4px);

    background:
        rgba(94, 108, 169, 0.075);

    border-color:
        rgba(108, 124, 193, 0.18);
}

#summary-table .rec:focus {
    outline: none;

    box-shadow:
        inset 3px 0 0 rgba(255, 255, 255, 0.7),
        inset 0 0 0 1px rgba(255, 255, 255, 0.08);

    background:
        rgba(255, 255, 255, 0.045);
}

#summary-table .rec:focus-visible {
    outline:
        2px solid rgba(255, 255, 255, 0.35);

    outline-offset: -2px;
}

@keyframes rowEnter {
    from {
        opacity: 0;
        transform: translateY(7px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

#summary-table ul {
    display: grid;

    grid-template-columns:
        42px
        minmax(170px, 1fr)
        126px
        112px
        44px
        44px
        76px
        88px
        76px;

    align-items: center;

    gap: 13px;

    width: 100%;

    margin: 0;

    padding:
        13px 10px;

    list-style: none;
}

#summary-table li {
    display: block;

    min-width: 0;

    margin: 0;
    padding: 0;

    font-size: 12px;
}


/* =========================================================
   Number
   ========================================================= */

#summary-table .archive-number {
    color: #626c80;

    font-size: 11px;
    font-weight: 650;
}


/* =========================================================
   Title
   ========================================================= */

#summary-table .archive-title {
    color: #e1e4ea;

    font-size: 15px;
    font-weight: 600;

    white-space: nowrap;

    overflow: hidden;

    text-overflow: ellipsis;
}


/* =========================================================
   Date
   ========================================================= */

#summary-table .archive-date {
    color: #7a8394;

    font-size: 11px;

    padding: 0 5px;

    white-space: nowrap;

    overflow: visible;

    text-overflow: clip;

    text-align: center;
}


/* =========================================================
   Difficulty
   ========================================================= */

#summary-table .archive-difficulty {
    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 0;

    padding: 0 4px;

    width: 100%;
}

#summary-table .archive-difficulty .puzzle-stars {
    width: 100px;
    min-width: 100px;
    max-width: 100px;

    flex: 0 0 100px;
}

#summary-table .archive-difficulty svg {
    display: block;

    width: 100px;
    height: 20px;

    max-width: none;
}


/* =========================================================
   Links
   ========================================================= */

#summary-table .archive-link {
    display: flex;

    align-items: center;
    justify-content: center;
}

.archive-action {
    width: 32px;
    height: 32px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    border-radius: 9px;

    text-decoration: none;

    transition:
        opacity 0.18s ease,
        transform 0.18s ease,
        background 0.18s ease,
        border-color 0.18s ease;
}

.archive-action:hover {
    opacity: 1;

    transform: translateY(-1px);
}

.archive-action .action-icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    font-size: 12px;
}

.play-action {
    background:
        rgba(101, 118, 184, 0.13);

    border:
        1px solid rgba(101, 118, 184, 0.18);

    color: #9aa7d7;
}

.play-action:hover {
    background:
        rgba(101, 118, 184, 0.22);
}

.lmd-action {
    background:
        rgba(255, 255, 255, 0.025);

    border:
        1px solid rgba(255, 255, 255, 0.075);

    color: #8f98a9;
}

.lmd-action:hover {
    background:
        rgba(255, 255, 255, 0.06);

    color: #b8bfcc;
}


/* =========================================================
   Solves
   ========================================================= */

#summary-table .archive-sudokupad-solves {
    color: #8d9bb8;

    text-align: center;

    font-size: 11px;

    white-space: nowrap;

    font-variant-numeric: tabular-nums;
}


/* =========================================================
   LMD Solvers
   ========================================================= */

#summary-table .archive-solves {
    color: #9aa3b3;

    text-align: center;

    font-size: 11px;

    white-space: nowrap;

    font-variant-numeric: tabular-nums;
}


/* =========================================================
   Rating
   ========================================================= */

#summary-table .archive-rating {
    color: #d0b96c;

    text-align: center;

    font-size: 11px;
    font-weight: 650;

    white-space: nowrap;

    font-variant-numeric: tabular-nums;
}


/* =========================================================
   Empty Archive
   ========================================================= */

.archive-empty {
    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 6px;

    min-height: 120px;

    padding: 24px;

    border-radius: 12px;

    border:
        1px solid rgba(255, 255, 255, 0.055);

    background:
        rgba(255, 255, 255, 0.018);

    color: #687284;

    text-align: center;
}

.archive-empty strong {
    color: #c7ccd6;

    font-size: 13px;
}

.archive-empty span {
    font-size: 11px;
}


/* =========================================================
   Dashboard
   ========================================================= */

.puzzle-dashboard {
    width: 100%;

    padding: 17px;

    border-radius: 12px;

    border:
        1px solid rgba(255, 255, 255, 0.055);

    background:
        rgba(255, 255, 255, 0.018);

    box-shadow:
        0 18px 45px rgba(0, 0, 0, 0.18);
}

.dashboard-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-bottom: 14px;
}

.dashboard-label {
    color: #737c8e;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 1.5px;

    text-transform: uppercase;
}

.dashboard-cards {
    display: grid;

    grid-template-columns: 1fr;

    gap: 8px;
}

.dashboard-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 72px;
    align-items: center;
    gap: 14px;

    padding:
        12px 13px;

    border-radius: 9px;

    border:
        1px solid rgba(255, 255, 255, 0.045);

    background:
        rgba(255, 255, 255, 0.022);

    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}

.dashboard-card:hover {
    transform: translateY(-1px);

    background:
        rgba(255, 255, 255, 0.035);

    border-color:
        rgba(255, 255, 255, 0.075);
}

.dashboard-card-label {
    color: #626c7d;

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.9px;

    text-transform: uppercase;

    margin-bottom: 5px;
}

.dashboard-card-value {
    color: #e1e4ea;

    font-size: 1.25rem;
    font-weight: 650;

    line-height: 1.1;

    font-variant-numeric: tabular-nums;

    text-align: left;
}


/* =========================================================
   Update Monitor
   ========================================================= */

.update-monitor {
    margin-top: 16px;

    padding-top: 15px;

    border-top:
        1px solid rgba(255, 255, 255, 0.055);
}

.update-monitor-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-bottom: 10px;
}

.update-monitor-label {
    color: #737c8e;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 1.5px;

    text-transform: uppercase;
}

.update-monitor-list {
    display: flex;
    flex-direction: column;

    gap: 7px;

    max-height: 430px;

    overflow-y: auto;

    padding-right: 2px;
}

.update-entry {
    padding: 10px 11px;

    border-radius: 9px;

    border:
        1px solid rgba(255, 255, 255, 0.045);

    background:
        rgba(255, 255, 255, 0.022);

    box-shadow:
        inset 2px 0 0 rgba(114, 189, 148, 0.5);
}

.update-entry-new {
    animation:
        updateEntryEnter 0.55s ease both;
}

@keyframes updateEntryEnter {
    from {
        opacity: 0;
        transform: translateY(-12px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.update-entry-type {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 7px;

    color: #9bc7ad;

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.65px;

    line-height: 1.35;

    text-transform: uppercase;
}

.update-entry-puzzle {
    flex: 0 0 auto;

    color: #687385;

    font-size: 8px;
}

.update-entry-title {
    margin-top: 5px;

    color: #d5dae3;

    font-size: 10px;
    font-weight: 600;

    line-height: 1.35;

    overflow-wrap: anywhere;
}

.update-entry-time {
    margin-top: 5px;

    color: #697385;

    font-size: 8px;

    line-height: 1.3;

    font-variant-numeric: tabular-nums;
}

.update-monitor-empty {
    padding: 12px 4px;

    color: #606a7b;

    font-size: 9px;

    line-height: 1.5;
}


/* =========================================================
   Tooltip
   ========================================================= */

#tooltip {
    position: fixed;

    z-index: 9999;

    width: 220px;

    padding: 9px;

    border-radius: 10px;

    border:
        1px solid rgba(255, 255, 255, 0.09);

    background:
        rgba(13, 16, 24, 0.97);

    box-shadow:
        0 18px 45px rgba(0, 0, 0, 0.42);

    pointer-events: none;

    opacity: 0;

    transition:
        opacity 0.15s ease;
}

.tooltip .thumb {
    width: 100%;
    height: 150px;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    border-radius: 7px;

    background:
        rgba(255, 255, 255, 0.025);
}

.tooltip .thumb img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;
}

.caption {
    color: #dfe3eb;

    font-size: 10px;

    padding:
        5px 2px 1px;
}


/* =========================================================
   Footer
   ========================================================= */

.site-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-top: 62px;
    padding-top: 20px;

    border-top:
        1px solid rgba(255, 255, 255, 0.055);

    color: #555e70;

    font-size: 10px;

    letter-spacing: 0.3px;
}

.site-footer a {
    color: #687494;

    text-decoration: none;

    transition:
        color 0.18s ease;
}

.site-footer a:hover {
    color: #9aa7d7;
}


/* =========================================================
   Tablet
   ========================================================= */

@media (max-width: 950px) {

    .archive-header {
        grid-template-columns:
            42px
            minmax(150px, 1fr)
            112px
            104px
            42px
            42px
            68px
            78px
            68px;

        gap: 9px;
    }

    #summary-table ul {
        grid-template-columns:
            42px
            minmax(150px, 1fr)
            112px
            104px
            42px
            42px
            68px
            78px
            68px;

        gap: 9px;

        padding-left: 9px;
        padding-right: 9px;
    }

    #summary-table .archive-date {
        font-size: 10px;
    }

    #summary-table .archive-difficulty .puzzle-stars {
        width: 100px;
        min-width: 100px;
        max-width: 100px;

        margin: 0 auto;
    }

    #summary-table .archive-difficulty svg {
        width: 100px;
        height: 20px;
    }

    .archive-sort-button {
        padding-left: 2px;
        padding-right: 2px;
    }
}


/* =========================================================
   Small Tablet
   ========================================================= */

@media (max-width: 850px) {

    #content {
        width: calc(100% - 32px);
    }

    .latest-card {
        padding: 30px;
    }

    .latest-info {
        padding-right: 0;
    }

    .latest-image {
        position: relative;

        top: auto;
        right: auto;

        width: min(100%, 245px);
        height: 245px;

        margin:
            24px auto 0;
    }

    .latest-image img {
        width: 100%;
        height: 100%;

        object-fit: contain;
    }

    .latest-number {
        top: -20px;
        right: 0;
    }

    /* Archive becomes compact */

    .archive-header {
        grid-template-columns:
            40px
            minmax(120px, 1fr)
            40px
            40px
            72px
            62px
            68px;

        gap: 7px;
    }

    /* Header and rows use the exact same seven visible columns:
       # / title / LMD / PLAY / SOLVERS / LMD SOLVERS / RATING. */
    .archive-header > div {
        min-width: 0;
        overflow: visible;
        padding: 0 2px;
    }

    .archive-header-number {
        grid-column: 1;
    }

    .archive-header-title {
        grid-column: 2;
    }

    .archive-header-date,
    .archive-header-difficulty {
        display: none;
    }

    .archive-header-link:nth-of-type(5) {
        grid-column: 3;
    }

    .archive-header-link:nth-of-type(6) {
        grid-column: 4;
    }

    .archive-header-sudokupad-solves {
        grid-column: 5;
    }

    .archive-header-solves {
        grid-column: 6;
    }

    .archive-header-rating {
        grid-column: 7;
    }

    #summary-table ul {
        grid-template-columns:
            40px
            minmax(120px, 1fr)
            40px
            40px
            72px
            62px
            68px;

        gap: 7px;
    }

    #summary-table .archive-date,
    #summary-table .archive-difficulty {
        display: none;
    }

    .archive-header-date,
    .archive-header-difficulty {
        display: none;
    }

    .archive-header-link {
        display: flex;

        align-items: center;
        justify-content: center;
    }

    .archive-header-sudokupad-solves,
    .archive-header-solves,
    .archive-header-rating {
        display: block;
    }
}


/* =========================================================
   Mobile Dashboard / Layout
   ========================================================= */

@media (max-width: 1100px) {

    .listing-section {
        display: grid;

        grid-template-columns: minmax(0, 1fr);

        grid-template-areas:
            "heading"
            "archive"
            "dashboard";

        row-gap: 22px;
    }

    .listing-section .section-heading {
        grid-area: heading;
    }

    .listing-section #summary-table {
        grid-area: archive;
        width: 100%;
        min-width: 0;
    }

    .listing-section .puzzle-dashboard {
        grid-area: dashboard;
        width: 100%;
        margin: 0;
    }

    .archive-header,
    #summary-table .rec {
        min-width: 0;
    }
}


/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 600px) {

    #content {
        width: calc(100% - 24px);

        padding-top: 24px;
    }

    .site-header {
        padding-bottom: 23px;
    }

    .brand-mark {
        width: 39px;
        height: 39px;

        border-radius: 11px;

        font-size: 14px;
    }

    .brand-title {
        font-size: 18px;
    }

    .brand-subtitle {
        font-size: 10px;
    }

    .live-status {
        display: none;
    }

    .latest-section {
        padding-top: 33px;
    }

    .latest-card {
        min-height: 0;

        padding: 24px;

        border-radius: 17px;
    }

    .latest-number-bg {
        right: -5px;
        bottom: -25px;

        font-size: 120px;

        letter-spacing: -8px;
    }

    .latest-title {
        font-size: 34px;
        letter-spacing: -1.5px;
    }

    .latest-date {
        font-size: 12px;
    }

    .latest-meta {
        gap: 7px;
    }

    .meta-pill {
        padding:
            8px 10px;
    }

    .latest-actions {
        flex-wrap: wrap;
    }

    .action-btn {
        min-width: 100px;
    }


    /* Mobile archive heading */

    .section-heading {
        align-items: flex-start;

        gap: 14px;

        margin-bottom: 18px;
    }

    .section-heading h1 {
        font-size: 24px;
    }

    .update-status {
        font-size: 9px;
    }

    .update-text {
        white-space: normal;

        text-align: right;
    }


    /* Mobile archive controls */

    .archive-search {
        width: 100%;
    }


    /* Mobile archive header */

    .archive-header {
        display: grid;

        grid-template-columns:
            20px
            minmax(0, 1.55fr)
            minmax(0, 1fr)
            minmax(0, 0.9fr)
            minmax(0, 0.75fr)
            minmax(0, 0.55fr)
            minmax(0, 0.55fr)
            minmax(0, 0.8fr)
            minmax(0, 0.9fr);

        grid-template-rows:
            auto
            auto
            auto;

        gap: 4px;

        width: 100%;
        min-width: 0;

        height: 48px;

        margin:
            0 0 8px;

        align-items: center;

        direction: ltr;
    }

    .archive-header > div {
        min-width: 0;
        overflow: visible;
        padding: 0 4px;
    }

    .archive-header-number {
        grid-column: 1;
        grid-row: 1 / 4;
    }

    .archive-header-title {
        grid-column: 2 / 5;
        grid-row: 1;
    }

    .archive-header-date {
        grid-column: 2 / 5;
        grid-row: 2;
        display: block;
    }

    .archive-header-difficulty {
        grid-column: 5;
        grid-row: 1 / 3;
        display: block;
    }

    .archive-header-link:nth-of-type(5) {
        grid-column: 6;
        grid-row: 1 / 3;
    }

    .archive-header-link:nth-of-type(6) {
        grid-column: 7;
        grid-row: 1 / 3;
    }

    .archive-header-sudokupad-solves {
        grid-column: 8;
        grid-row: 1 / 4;
    }

    .archive-header-solves {
        grid-column: 9;
        grid-row: 1 / 4;
    }

    .archive-header-rating {
        grid-column: 7;
        grid-row: 3;
    }

    .archive-sort-button {
        width: 100%;

        padding:
            3px 2px;

        font-size: 7px;
        letter-spacing: 0;
        white-space: normal;
        line-height: 1.1;

        text-align: center;
    }

    .archive-header-link {
        text-align: center;
        font-size: 7px;
        padding: 0 2px;
        line-height: 1.1;
        white-space: normal;
        overflow-wrap: anywhere;
    }


    /* Mobile archive cards */

    #summary-table {
        overflow-x: hidden;
        overflow-y: visible;

        width: calc(100% + 24px);
        max-width: none;

        margin-left: -12px;

        padding:
            0 12px 4px;
    }

    #summary-table .rec {
        margin-bottom: 7px;

        width: 100%;
        min-width: 0;

        overflow: hidden;
    }

    #summary-table ul {
        grid-template-columns:
            20px
            minmax(0, 1.9fr)
            minmax(0, 1.35fr)
            minmax(0, 1.05fr)
            minmax(0, 0.55fr)
            minmax(0, 0.55fr)
            minmax(0, 0.9fr)
            minmax(0, 1.05fr)
            minmax(0, 0.8fr);

        grid-template-rows:
            auto
            auto
            auto
            auto;

        gap: 5px;

        width: 100%;
        min-width: 0;

        padding:
            12px 5px;

        direction: ltr;
    }

    #summary-table .archive-number {
        grid-column: 1;
        grid-row: 1 / 5;

        align-self: center;
    }

    #summary-table .archive-title {
        grid-column: 2 / 5;
        grid-row: 1;

        width: 100%;

        font-size: 13px;

        min-width: 0;
        overflow: visible;
        overflow-wrap: anywhere;
        white-space: normal;
        line-height: 1.2;
    }

    #summary-table .archive-link:nth-of-type(1) {
        grid-column: 6;
        grid-row: 1;
    }

    #summary-table .archive-link:nth-of-type(2) {
        grid-column: 7;
        grid-row: 1;
    }

    #summary-table .archive-date {
        grid-column: 2 / 5;
        grid-row: 2;

        display: block;

        font-size: 9px;
        color: #80899a;
        white-space: normal;
        line-height: 1.15;
        overflow: visible;
        text-overflow: clip;
    }

    #summary-table .archive-difficulty {
        grid-column: 5;
        grid-row: 1 / 3;

        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 0;
    }

    #summary-table .archive-difficulty .puzzle-stars {
        width: 64px;
        min-width: 64px;
        max-width: 64px;
    }

    #summary-table .archive-difficulty svg {
        width: 64px;
        height: 14px;
    }

    #summary-table .archive-sudokupad-solves {
        grid-column: 8;
        grid-row: 4;

        display: block;

        text-align: center;

        font-size: 8px;

        white-space: nowrap;
    }

    #summary-table .archive-sudokupad-solves::before {
        content: 'SOLVERS: ';

        color: #687385;

        font-size: 7px;

        letter-spacing: 0.35px;
    }

    #summary-table .archive-solves {
        grid-column: 9;
        grid-row: 4;

        display: block;

        text-align: center;

        font-size: 9px;

        white-space: nowrap;
    }

    #summary-table .archive-solves::before {
        content: 'LMD: ';

        color: #687385;

        font-size: 7px;

        letter-spacing: 0.35px;
    }

    #summary-table .archive-rating {
        grid-column: 7;
        grid-row: 4;

        display: block;

        text-align: center;

        font-size: 9px;

        white-space: nowrap;
    }

    #summary-table .archive-rating::before {
        content: 'RATING: ';

        color: #687385;

        font-size: 7px;

        letter-spacing: 0.35px;
    }

    .archive-action {
        width: 29px;
        height: 29px;

        border-radius: 8px;
    }

    .site-footer {
        display: block;

        line-height: 1.8;
    }

    .site-footer a {
        display: block;

        margin-top: 5px;
    }


    /* Mobile dashboard */

    .puzzle-dashboard {
        margin-bottom: 18px;

        padding: 14px;
    }

    .dashboard-cards {
        grid-template-columns: 1fr;

        gap: 8px;
    }

    .dashboard-card {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 72px;
        align-items: center;
        gap: 12px;
    }

    .dashboard-card-label {
        margin-bottom: 0;

        font-size: 8px;
    }

    .dashboard-card-value {
        font-size: 1.15rem;
    }
}


/* =========================================================
   Very Small Screens
   ========================================================= */

@media (max-width: 600px) {

    .archive-password {
        width: min(100%, 180px);
    }

    .archive-search-button {
        flex: 0 0 auto;
    }
}


@media (max-width: 420px) {

    .puzzle-dashboard {
        border-radius: 9px;
    }

    .dashboard-card {
        padding:
            11px 12px;
    }

    .dashboard-card-label {
        font-size: 0.62rem;
    }

    .dashboard-card-value {
        font-size: 1.05rem;
    }

    .archive-search-input {
        font-size: 0.9rem;
    }
}


/* =========================================================
   Reduced Motion
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration:
            0.01ms !important;

        animation-iteration-count:
            1 !important;

        transition-duration:
            0.01ms !important;
    }

    .archive-sort-button,
    .archive-search-input,
    .dashboard-card,
    .archive-action {
        transition: none;
    }
}



/* =========================================================
   Mobile Archive Layout - Final arrangement
   ========================================================= */

@media (max-width: 600px) {

    /* Header: Date -> Difficulty -> LMD Link -> Play -> Solvers -> LMD Solvers -> Rating */
    .archive-header {
        display: grid;
        grid-template-columns:
            minmax(0, 2fr)
            minmax(0, 0.72fr)
            minmax(0, 0.55fr)
            minmax(0, 0.55fr)
            minmax(0, 0.82fr)
            minmax(0, 0.92fr)
            minmax(0, 0.72fr);

        gap: 6px;

        width: 100%;
        min-width: 0;
        height: 28px;
        margin: 0 0 8px;
        padding: 0 4px;

        align-items: center;
        direction: ltr;
    }

    .archive-header > div {
        min-width: 0;
        padding: 0;
        overflow: visible;
        text-align: center;
    }

    .archive-header-number,
    .archive-header-title {
        display: none;
    }

    .archive-header-date {
        display: block;
        grid-column: 1;
    }

    .archive-header-difficulty {
        display: block;
        grid-column: 2;
    }

    .archive-header-link:nth-of-type(5) {
        display: block;
        grid-column: 3;
    }

    .archive-header-link:nth-of-type(6) {
        display: block;
        grid-column: 4;
    }

    .archive-header-sudokupad-solves {
        display: block;
        grid-column: 5;
    }

    .archive-header-solves {
        display: block;
        grid-column: 6;
    }

    .archive-header-rating {
        display: block;
        grid-column: 7;
    }

    .archive-sort-button {
        width: 100%;
        padding: 2px 0;
        font-size: 7px;
        line-height: 1;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .archive-header-link {
        font-size: 7px;
        line-height: 1;
        white-space: nowrap;
    }


    /* Row:
       # + full title on the first line,
       date centered directly underneath,
       then difficulty / LMD / Play / solvers / LMD solvers / rating. */
    #summary-table {
        overflow-x: hidden;
        overflow-y: visible;
        width: calc(100% + 24px);
        max-width: none;
        margin-left: -12px;
        padding: 0 12px 4px;
    }

    #summary-table .rec {
        width: 100%;
        min-width: 0;
        margin-bottom: 7px;
        overflow: hidden;
    }

    #summary-table ul {
        display: grid;

        grid-template-columns:
            24px
            minmax(0, 2fr)
            minmax(0, 0.72fr)
            minmax(0, 0.55fr)
            minmax(0, 0.55fr)
            minmax(0, 0.82fr)
            minmax(0, 0.92fr)
            minmax(0, 0.72fr);

        grid-template-rows:
            auto
            auto;

        gap: 6px;

        width: 100%;
        min-width: 0;

        padding: 11px 10px;

        direction: ltr;
    }

    #summary-table .archive-number {
        grid-column: 1;
        grid-row: 1;
        align-self: start;
        justify-self: center;
        padding-top: 1px;
    }

    #summary-table .archive-title {
        grid-column: 2;
        grid-row: 1;
        width: 100%;
        min-width: 0;

        margin: 0;
        padding: 0;

        font-size: 13px;
        line-height: 1.2;

        white-space: normal;
        overflow-wrap: anywhere;
        word-break: normal;
        overflow: visible;

        text-align: left;
    }

    #summary-table .archive-date {
        grid-column: 2;
        grid-row: 2;

        display: block;
        width: 100%;
        min-width: 0;

        margin: 0;
        padding: 0;

        color: #80899a;
        font-size: 9px;
        line-height: 1.15;

        white-space: nowrap;
        overflow: visible;
        text-overflow: clip;

        text-align: center;
    }

    #summary-table .archive-difficulty {
        grid-column: 3;
        grid-row: 1 / 3;

        display: flex;
        align-items: center;
        justify-content: center;

        min-width: 0;
    }

    #summary-table .archive-difficulty .puzzle-stars {
        width: 56px;
        min-width: 56px;
        max-width: 56px;
    }

    #summary-table .archive-difficulty svg {
        width: 56px;
        height: 13px;
    }

    #summary-table .archive-link:nth-of-type(1) {
        grid-column: 4;
        grid-row: 1 / 3;
    }

    #summary-table .archive-link:nth-of-type(2) {
        grid-column: 5;
        grid-row: 1 / 3;
    }

    #summary-table .archive-sudokupad-solves {
        grid-column: 6;
        grid-row: 1 / 3;

        display: block;
        min-width: 0;

        text-align: center;
        font-size: 8px;
        white-space: nowrap;
    }

    #summary-table .archive-sudokupad-solves::before {
        content: 'SOLVERS: ';
        color: #687385;
        font-size: 7px;
        letter-spacing: 0.25px;
    }

    #summary-table .archive-solves {
        grid-column: 7;
        grid-row: 1 / 3;

        display: block;
        min-width: 0;

        text-align: center;
        font-size: 8px;
        white-space: nowrap;
    }

    #summary-table .archive-solves::before {
        content: 'LMD: ';
        color: #687385;
        font-size: 7px;
        letter-spacing: 0.25px;
    }

    #summary-table .archive-rating {
        grid-column: 8;
        grid-row: 1 / 3;

        display: block;
        min-width: 0;

        text-align: center;
        font-size: 8px;
        white-space: nowrap;
    }

    #summary-table .archive-rating::before {
        content: 'RATING: ';
        color: #687385;
        font-size: 7px;
        letter-spacing: 0.25px;
    }
}



/* =========================================================
   Update monitor filter
   ========================================================= */

.update-monitor-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.update-monitor-filter {
    flex: 0 0 auto;
}

.update-monitor-filter-select {
    min-height: 30px;
    padding: 5px 28px 5px 9px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.025);
    color: #aeb7ca;
    font: inherit;
    font-size: 9px;
    line-height: 1.2;
    outline: none;
    cursor: pointer;
}

.update-monitor-filter-select:focus {
    border-color: rgba(104, 120, 184, 0.45);
}

.update-monitor-filter-select option {
    background: #0b0e15;
    color: #d7dbe4;
}

@media (max-width: 600px) {
    .update-monitor-heading {
        gap: 8px;
    }

    .update-monitor-filter-select {
        max-width: 150px;
        min-height: 28px;
        font-size: 8px;
    }
}


/* =========================================================
   About / Contact
   ========================================================= */

 .about-section {
    position: relative;
    margin-top: 86px;
    padding: 34px 34px 30px;
    border: 1px solid rgba(255, 255, 255, 0.075);
    border-radius: 20px;
    background:
        radial-gradient(
            circle at 82% 18%,
            rgba(101, 118, 184, 0.09),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.035),
            rgba(255, 255, 255, 0.012)
        );
    box-shadow: none;
}

.about-section-top {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}

.about-section-top .section-label {
    margin-bottom: 0;
}

.about-section-code {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #4f5869;
    font-size: 7px;
    font-weight: 700;
    letter-spacing: 1.5px;
    white-space: nowrap;
}

.about-code-line {
    width: 38px;
    height: 1px;
    background: rgba(255, 255, 255, 0.10);
}

.about-stage {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 250px;
    min-height: 0;
    overflow: hidden;
    border-top: 1px solid rgba(255, 255, 255, 0.055);
    border-radius: 0;
    background:
        radial-gradient(
            circle at 82% 45%,
            rgba(101, 118, 184, 0.11),
            transparent 27%
        ),
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.035),
            rgba(255, 255, 255, 0.012)
        );
    box-shadow:
        0 30px 90px rgba(0, 0, 0, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.025);
}

.about-stage::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            transparent 0,
            transparent calc(100% - 251px),
            rgba(255, 255, 255, 0.045) calc(100% - 251px),
            rgba(255, 255, 255, 0.045) calc(100% - 250px),
            transparent calc(100% - 250px)
        );
    pointer-events: none;
}

.about-identity {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    align-items: start;
    padding: 34px 42px;
}

.identity-index {
    align-self: start;
    padding-top: 4px;
    color: #4d5666;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.4px;
}

.identity-eyebrow {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 14px;
    color: #70798b;
    font-size: 11px;
    line-height: 1.3;
    font-weight: 400;
    letter-spacing: 0;
}

.identity-pulse {
    width: 5px;
    height: 5px;
    flex: 0 0 5px;
    border-radius: 50%;
    background: #6878b8;
    box-shadow: 0 0 0 4px rgba(104, 120, 184, 0.08);
    animation: aboutPulse 2.2s ease-in-out infinite;
}

@keyframes aboutPulse {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: 0.45;
        transform: scale(0.75);
    }
}

.identity-title {
    margin: 0 0 14px;
    color: #f0f2f6;
    font-size: clamp(44px, 6vw, 70px);
    line-height: 0.98;
    font-weight: 750;
    letter-spacing: -3px;
}

.identity-title em {
    color: #8998d2;
    font-style: normal;
}

.identity-lead {
    max-width: 650px;
    margin: 0 0 10px;
    color: #f0f2f6;
    font-size: 15px;
    line-height: 1.55;
    font-weight: 500;
}

.identity-description {
    max-width: 650px;
    margin: 0;
    color: #f0f2f6;
    font-size: 15px;
    line-height: 1.6;
    font-weight: 500;
}

.about-visual {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 38px;
}

.visual-frame {
    position: relative;
    width: 184px;
    aspect-ratio: 1;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.10);
    background:
        linear-gradient(
            135deg,
            rgba(104, 120, 184, 0.11),
            rgba(255, 255, 255, 0.018)
        );
    box-shadow:
        0 25px 55px rgba(0, 0, 0, 0.35),
        inset 0 0 35px rgba(104, 120, 184, 0.035);
    transform: rotate(2.5deg);
    transition: transform 0.45s cubic-bezier(.2,.8,.2,1);
}

.visual-frame:hover {
    transform: rotate(0deg) scale(1.035);
}

.visual-grid {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    width: 100%;
    height: 100%;
    border: 1px solid rgba(255, 255, 255, 0.10);
    background: rgba(0, 0, 0, 0.20);
}

.visual-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    color: rgba(210, 216, 232, 0.24);
    font-size: 8px;
    font-variant-numeric: tabular-nums;
    border-right: 1px solid rgba(255, 255, 255, 0.045);
    border-bottom: 1px solid rgba(255, 255, 255, 0.045);
    transition:
        color 0.12s ease,
        background 0.12s ease,
        transform 0.12s ease;
}

.visual-cell:nth-child(3n) {
    border-right-color: rgba(255, 255, 255, 0.11);
}

.visual-cell:nth-child(n+19):nth-child(-n+27),
.visual-cell:nth-child(n+46):nth-child(-n+54) {
    border-bottom-color: rgba(255, 255, 255, 0.11);
}

.visual-cell.is-lit {
    color: #b9c4ec;
    background: rgba(104, 120, 184, 0.18);
    transform: scale(1.08);
}

.visual-mark {
    position: absolute;
    right: -15px;
    bottom: -15px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 14px;
    background: #0b0e15;
    color: #e7eaf1;
    font-size: 14px;
    font-weight: 750;
    letter-spacing: -0.7px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.35);
}

.visual-caption {
    position: absolute;
    left: 16px;
    bottom: -28px;
    color: #4f5869;
    font-size: 6px;
    font-weight: 700;
    letter-spacing: 1.4px;
    white-space: nowrap;
}

.visual-corner {
    position: absolute;
    width: 8px;
    height: 8px;
    border-color: #6979b7;
    border-style: solid;
    opacity: 0.65;
}

.visual-corner-tl {
    left: -1px;
    top: -1px;
    border-width: 1px 0 0 1px;
}

.visual-corner-tr {
    right: -1px;
    top: -1px;
    border-width: 1px 1px 0 0;
}

.visual-corner-bl {
    left: -1px;
    bottom: -1px;
    border-width: 0 0 1px 1px;
}

.visual-corner-br {
    right: -1px;
    bottom: -1px;
    border-width: 0 1px 1px 0;
}

.about-bottom {
    display: grid;
    margin-top: 2px;
    grid-template-columns: minmax(0, 1fr) 390px;
    gap: 54px;
    align-items: start;
    padding-top: 28px;
}

.about-note {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding-top: 7px;
}

.about-note-number {
    color: #4d5666;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.3px;
}

.about-note-text {
    max-width: 420px;
    color: #687283;
    font-size: 10px;
    line-height: 1.7;
}

.about-contact-panel {
    border-top: 1px solid rgba(255, 255, 255, 0.075);
}

.contact-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 38px;
    color: #5f6879;
    font-size: 7px;
    font-weight: 700;
    letter-spacing: 1.45px;
}

.contact-panel-head span:last-child {
    color: #414a5b;
    font-size: 6px;
}

.contact-card {
    position: relative;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 12px;
    min-height: 58px;
    padding: 0 2px;
    border-top: 1px solid rgba(255, 255, 255, 0.055);
    color: inherit;
    text-decoration: none;
    transition:
        background 0.22s ease,
        padding 0.22s ease,
        border-color 0.22s ease;
}

.contact-card:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, 0.055);
}

.contact-card-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 29px;
    height: 29px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.025);
    color: #8792a8;
    font-size: 11px;
    font-weight: 700;
    transition:
        color 0.22s ease,
        border-color 0.22s ease,
        background 0.22s ease;
}

.contact-card-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.contact-card-type {
    color: #5f6879;
    font-size: 7px;
    font-weight: 700;
    letter-spacing: 1.25px;
}

.contact-card-value {
    overflow-wrap: anywhere;
    color: #d7dbe4;
    font-size: 10px;
}

.contact-card-arrow {
    color: #596375;
    font-size: 13px;
    transition:
        color 0.22s ease,
        transform 0.22s ease;
}

.contact-card:hover {
    padding-left: 9px;
    padding-right: 9px;
    background: rgba(104, 120, 184, 0.045);
    border-top-color: rgba(104, 120, 184, 0.14);
}

.contact-card:hover .contact-card-icon {
    color: #b7c2e8;
    border-color: rgba(104, 120, 184, 0.28);
    background: rgba(104, 120, 184, 0.08);
}

.contact-card:hover .contact-card-arrow {
    color: #aeb9df;
    transform: translate(2px, -2px);
}

@media (max-width: 760px) {

    .about-section {
        padding-top: 64px;
    }

    .about-section-code {
        display: none;
    }

    .about-stage {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .about-stage::before {
        display: none;
    }

    .about-identity {
        padding: 28px 24px 18px;
    }

    .identity-title {
        font-size: 16px;
        letter-spacing: 0;
    }

    .identity-eyebrow,
    .identity-lead,
    .identity-description {
        font-size: 16px;
        line-height: 1.45;
    }

    .about-visual {
        min-height: 250px;
        padding: 18px 30px 54px;
    }

    .visual-frame {
        width: 164px;
    }

    .about-bottom {
        grid-template-columns: 1fr;
        gap: 28px;
        padding-top: 24px;
    }

    .about-note {
        padding-top: 0;
    }
}

@media (max-width: 420px) {

    .about-section-top {
        margin-bottom: 18px;
    }

    .about-stage {
        border-radius: 16px;
    }

    .about-identity {
        grid-template-columns: 28px minmax(0, 1fr);
        gap: 15px;
        padding: 30px 20px 14px;
    }

    .identity-index {
        font-size: 7px;
    }

    .identity-eyebrow {
        font-size: 6.5px;
        letter-spacing: 1px;
    }

    .identity-title {
        font-size: 41px;
        letter-spacing: -2.4px;
    }

    .identity-lead {
        font-size: 13px;
    }

    .identity-description {
        font-size: 10px;
        line-height: 1.7;
    }

    .about-visual {
        min-height: 225px;
        padding-bottom: 48px;
    }

    .visual-frame {
        width: 148px;
        padding: 12px;
    }

    .visual-cell {
        font-size: 7px;
    }

    .visual-mark {
        width: 47px;
        height: 47px;
        right: -11px;
        bottom: -11px;
        border-radius: 12px;
        font-size: 12px;
    }

    .about-note-text {
        font-size: 9px;
    }

    .contact-card {
        min-height: 54px;
    }

    .contact-card-value {
        font-size: 9px;
    }
}

@media (prefers-reduced-motion: reduce) {

    .identity-pulse {
        animation: none;
    }

    .visual-frame,
    .visual-cell,
    .contact-card,
    .contact-card-icon,
    .contact-card-arrow {
        transition: none;
    }
}

/* About / Contact refinements */
.contact-card-icon svg {
    width: 17px;
    height: 17px;
    display: block;
    fill: currentColor;
}

.contact-discord {
    color: #8f9ed6;
}

.contact-gmail {
    color: #aeb7ca;
}

.contact-card:hover .contact-discord,
.contact-card:hover .contact-gmail {
    color: #c2cbed;
}

@media (max-width: 760px) {
    .about-section {
        margin-top: 64px;
        padding: 26px 20px 24px;
    }
}

@media (max-width: 420px) {
    .about-section {
        margin-top: 54px;
        padding: 22px 14px 20px;
        border-radius: 16px;
    }
}

/* Remove unused About numbering / visual labels */
.identity-index,
.about-note,
.visual-mark,
.visual-caption {
    display: none !important;
}

.about-bottom {
    grid-template-columns: 1fr;
}

@media (max-width: 420px) {
    .identity-eyebrow,
    .identity-title,
    .identity-lead,
    .identity-description {
        font-size: 14px;
        line-height: 1.45;
        letter-spacing: 0;
    }
}
