@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap');

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    background: #fff;
    font-family: 'Share Tech Mono', 'Courier New', monospace;
    color: #0000ff;
    min-height: 100vh;
    overflow-x: hidden;
}

.wrap {
    max-width: 780px;
    margin: 0 auto;
    padding: 40px 32px 60px;
    font-size: 13px;
    line-height: 1.55;
    letter-spacing: 0.04em;
}

/* HIGHLIGHT BLOCK */
.highlight {
    background: #0000ff;
    color: #fff;
    padding: 14px 16px;
    font-size: 13px;
    line-height: 1.75;
    letter-spacing: 0.04em;
}

/* DIVIDERS */
.divider-star,
.divider-slash {
    color: #0000ff;
    word-break: break-all;
    font-size: 13px;
    margin: 26px 0;
    letter-spacing: 0.02em;
}

/* SECTION LABEL */
.sec-label {
    display: inline-block;
    background: #0000ff;
    color: #fff;
    padding: 1px 6px;
    font-size: 12px;
    letter-spacing: 0.12em;
    margin-bottom: 14px;
}

/* LINKS */
.links-row {
    display: flex;
    gap: 36px;
    flex-wrap: wrap;
}

.links-row a {
    color: #0000ff;
    text-decoration: underline;
    font-size: 13px;
    letter-spacing: 0.1em;
    transition: opacity 0.2s;
}

.links-row a:hover {
    opacity: 0.5;
}

/* INTERACTIVE GRID */
.grid-label-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 8px;
}

.grid-hint {
    font-size: 11px;
    letter-spacing: 0.06em;
    opacity: 0.5;
}

.interactive-grid {
    display: grid;
    grid-template-columns: repeat(20, 1fr);
    border: 1px solid #0000ff;
    margin-bottom: 6px;
}

.g-cell {
    aspect-ratio: 1;
    border-right: 1px solid rgba(0, 0, 255, 0.15);
    border-bottom: 1px solid rgba(0, 0, 255, 0.15);
    transition: background 0.15s;
    cursor: crosshair;
}

.g-cell:hover,
.g-cell.lit {
    background: rgba(0, 0, 255, 0.12);
}

.g-cell.flash {
    background: #0000ff;
}

.status-bar {
    display: flex;
    gap: 16px;
    font-size: 11px;
    opacity: 0.55;
    letter-spacing: 0.06em;
    margin-top: 4px;
}

/* FOOTER */
.footer-row {
    display: flex;
    justify-content: space-between;
    padding-top: 14px;
    border-top: 1px solid #0000ff;
    font-size: 12px;
    letter-spacing: 0.06em;
}

/* RESPONSIVE */
@media (max-width: 600px) {
    .wrap {
        padding: 28px 20px 48px;
    }

    .interactive-grid {
        grid-template-columns: repeat(10, 1fr);
    }

    .links-row {
        flex-direction: column;
        gap: 18px;
    }

    .footer-row {
        flex-direction: column;
        gap: 6px;
    }
}
