:root {
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "SF Pro Text",
        "Segoe UI",
        sans-serif;

    color-scheme: light dark;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: Canvas;
    color: CanvasText;
}

button {
    font: inherit;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 10;

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

    min-height: 64px;
    padding:
        max(12px, env(safe-area-inset-top))
        18px
        12px;

    background: Canvas;
    border-bottom: 1px solid color-mix(
        in srgb,
        CanvasText 14%,
        transparent
    );
}

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

.brand-name {
    font-size: 1.45rem;
    font-weight: 800;
    letter-spacing: -0.04em;
}

.live-badge {
    border: 1px solid currentColor;
    border-radius: 999px;

    padding: 3px 7px;

    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.refresh-button {
    border: 1px solid color-mix(
        in srgb,
        CanvasText 25%,
        transparent
    );

    border-radius: 999px;
    background: transparent;
    color: inherit;

    padding: 7px 13px;
}

.section-bar {
    display: flex;
    gap: 8px;

    overflow-x: auto;

    padding: 12px 16px;

    border-bottom: 1px solid color-mix(
        in srgb,
        CanvasText 10%,
        transparent
    );

    scrollbar-width: none;
}

.section-bar::-webkit-scrollbar {
    display: none;
}

.section {
    flex: 0 0 auto;

    border: 0;
    border-radius: 999px;

    padding: 8px 13px;

    background: color-mix(
        in srgb,
        CanvasText 8%,
        transparent
    );

    color: inherit;
}

.section.active {
    background: CanvasText;
    color: Canvas;
    font-weight: 700;
}

.section:disabled {
    opacity: 0.38;
}

main {
    width: min(760px, 100%);
    margin: 0 auto;
    padding: 18px 16px 40px;
}

.status-panel {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;

    margin-bottom: 20px;
}

.status-panel > div {
    padding: 14px;

    border: 1px solid color-mix(
        in srgb,
        CanvasText 12%,
        transparent
    );

    border-radius: 14px;
}

.status-label {
    display: block;

    margin-bottom: 5px;

    opacity: 0.6;

    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.status-panel strong {
    font-size: 0.92rem;
}

.message {
    padding: 28px 0;

    text-align: center;

    opacity: 0.6;
}

.story-list {
    display: grid;
}

.story-card {
    padding: 19px 0;

    border-bottom: 1px solid color-mix(
        in srgb,
        CanvasText 12%,
        transparent
    );
}

.story-meta {
    display: flex;
    align-items: center;
    gap: 8px;

    margin-bottom: 8px;

    font-size: 0.78rem;
}

.story-source {
    font-weight: 750;
}

.story-region {
    border: 1px solid color-mix(
        in srgb,
        CanvasText 22%,
        transparent
    );

    border-radius: 999px;

    padding: 2px 6px;

    font-size: 0.64rem;
    font-weight: 700;
}

.story-time {
    margin-left: auto;
    opacity: 0.55;
}

.story-title {
    margin: 0 0 8px;

    font-size: 1.15rem;
    line-height: 1.25;
    letter-spacing: -0.02em;
}

.story-title a {
    color: inherit;
    text-decoration: none;
}

.story-title a:hover {
    text-decoration: underline;
}

.story-summary {
    margin: 0;

    opacity: 0.76;

    font-size: 0.92rem;
    line-height: 1.45;

    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;

    overflow: hidden;
}

footer {
    padding:
        20px
        16px
        max(28px, env(safe-area-inset-bottom));

    text-align: center;

    opacity: 0.45;

    font-size: 0.76rem;
}

@media (min-width: 720px) {

    .story-card {
        padding: 23px 0;
    }

    .story-title {
        font-size: 1.3rem;
    }
}
