        :root {
            --accent-blue: #BBE0EF;
            --text-black: #000000;
            --bg-white: #ffffff;
        }

        body {
            font-family: 'News Cycle', sans-serif;
            background-color: var(--bg-white);
            color: var(--text-black);
            line-height: 1.6;
        }

        h1, h2, h3, h4, .editorial-heading {
            text-transform: uppercase;
            font-weight: 700;
            letter-spacing: 0.05em;
        }

        /* Layout Helpers */
        .section-padding { padding: 80px 5%; }
        @media (min-width: 1024px) { .section-padding { padding: 120px 10%; } }

        /* Navigation Transitions */
        .page-node { display: none; opacity: 0; transition: opacity 0.5s ease-in; }
        .page-node.active { display: block; opacity: 1; }

        /* Editorial Cards */
        .news-card {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .news-card:hover {
            transform: translateY(-5px);
        }
        .news-card img {
            transition: transform 0.5s ease;
        }
        .news-card:hover img {
            transform: scale(1.05);
        }

        /* Flow Block Indentation */
        .flow-text { max-width: 800px; margin: 0 auto; }
        .flow-head { margin-left: 2rem; font-size: 1.5rem; border-left: 3px solid var(--text-black); padding-left: 1rem; margin-top: 2rem; }
        .flow-para { margin-left: 4rem; margin-bottom: 2rem; opacity: 0.8; font-weight: 300; }

        /* Modal */
        #modal-overlay {
            transition: opacity 0.3s ease, visibility 0.3s ease;
        }
        #modal-container {
            transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
            transform: scale(0.95);
        }
        body.modal-open #modal-container { transform: scale(1); }

        /* Mobile Menu */
        #mobile-menu {
            transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
            transform: translateX(100%);
        }
        #mobile-menu.active { transform: translateX(0); }

        .btn-underline {
            position: relative;
        }
        .btn-underline::after {
            content: '';
            position: absolute;
            bottom: -2px;
            left: 0;
            width: 0;
            height: 1px;
            background: currentColor;
            transition: width 0.3s;
        }
        .btn-underline:hover::after { width: 100%; }
