    :root {
        --sidebar-width: 270px;
        --sidebar-bg: #181825;
        --sidebar-link: #60a5fa;
        --sidebar-link-hover: #fff;
        --sidebar-accent: #8b5cf6;
        --main-bg: #0e0e10;
        --main-color: #fff;
        --hero-bg: url('https://hernaczsk.eu/img/banner.png') no-repeat center center/cover;
        --card-bg: #151518;
        --footer-bg: #1e1e24;
        --footer-color: #9900ff;
        --search-bg: #232336;
        --search-border: #333;
        --search-color: #fff;
    }
    * {margin: 0; padding: 0; box-sizing: border-box;}
    html, body {height: 100%;}
    body {
        font-family: 'Inter', sans-serif;
        background: var(--main-bg);
        color: var(--main-color);
        min-height: 100vh;
        display: flex;
        flex-direction: column;
    }
    header {
        background: #1e1e24;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1rem 2rem;
        z-index: 10;
        position: sticky;
        top: 0;
    }
    header img { height: 40px; }
    nav a {
        color: #b3b3b3;
        margin-left: 2rem;
        text-decoration: none;
        font-weight: 600;
        transition: color 0.15s;
        cursor: pointer;
    }
    nav a:hover { color: #fff; }
    .hero {
        background: var(--hero-bg);
        padding: 5rem 2rem 3rem 2rem;
        text-align: center;
        border-radius: 0 0 18px 18px;
        margin-bottom: 2rem;
    }
    .hero h1 {
        font-size: 2.5rem;
        color: #fff;
        text-shadow: 0 2px 8px #000a;
        letter-spacing: 1px;
        font-weight: 700;
    }
    .layout {
        display: flex;
        flex: 1 1 auto;
        width: 100%;
        min-height: 0;
    }
    main {
        flex: 1 1 0;
        min-width: 0;
        padding: 2rem 1.5rem 1rem 1.5rem;
        display: flex;
        flex-direction: column;
        gap: 2rem;
        transition: margin 0.2s;
    }
    /* SIDEBAR */
    aside {
        width: var(--sidebar-width);
        background: var(--sidebar-bg);
        padding: 2.2rem 1.1rem 1rem 1.1rem;
        border-left: 1px solid #232336;
        min-height: 100vh;
        position: sticky;
        top: 0;
        right: 0;
        z-index: 20;
        transition: transform 0.23s cubic-bezier(.6,0,.18,1.09);
        box-shadow: -4px 0 16px #0002;
    }
    aside h2 {
        color: var(--sidebar-accent);
        font-size: 1.09rem;
        margin: 1.2rem 0 0.2rem 0.5rem;
        font-weight: 700;
        letter-spacing: 0.5px;
    }
    aside ul {
        list-style: none;
        padding-left: 0.5rem;
        margin-bottom: 0.7rem;
    }
    aside li {
        color: var(--sidebar-link);
        font-weight: 600;
        border-radius: 5px;
        padding: 0.3rem 0.7rem;
        margin: 0.4rem 0;
        cursor: pointer;
        transition: background 0.16s, color 0.16s;
        user-select: none;
    }
    aside li.active, aside li:hover {
        background: #232336;
        color: var(--sidebar-link-hover);
    }
    /* SEARCH */
    .search-box {
        margin-bottom: 1.2rem;
        padding: 0.5rem 0.2rem 0.6rem 0.2rem;
    }
    .search-input {
        width: 100%;
        padding: 0.6rem 1rem;
        border-radius: 6px;
        border: 1px solid var(--search-border);
        background: var(--search-bg);
        color: var(--search-color);
        font-size: 1rem;
        outline: none;
        transition: border 0.18s;
        margin-bottom: 0.1rem;
        box-sizing: border-box;
    }
    .search-input:focus {
        border: 1.5px solid var(--sidebar-accent);
    }
    /* SIDEBAR TOGGLE BUTTON */
    .sidebar-toggle {
        display: none;
        position: fixed;
        top: 1.25rem;
        right: 1.25rem;
        z-index: 30;
        background: var(--sidebar-bg);
        border: none;
        color: #fff;
        font-size: 2rem;
        padding: 0.4rem 0.9rem;
        border-radius: 6px;
        box-shadow: 0 2px 8px #0007;
        cursor: pointer;
    }
    /* TUTORIAL CONTENT */
    .tutorial-content {
        display: none;
        animation: fadeIn 0.45s;
        flex-direction: column;
        max-width: 780px;
        margin: 0 auto;
        width: 100%;
    }
    .tutorial-content.active {
        display: flex;
    }
    .card {
        background: var(--card-bg);
        border-radius: 10px;
        padding: 2rem;
        margin-bottom: 1.5rem;
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.22);
    }
    .card h3 {
        color: #fff;
        margin-bottom: 0.7rem;
        font-size: 1.17rem;
    }
    .card p, .text-box {
        color: #ccc;
        font-size: 1.08rem;
    }
    .text-box {
        background: #20202b;
        padding: 1.15rem 1.3rem;
        border-radius: 8px;
        margin-top: 1rem;
        box-shadow: 0 2px 8px #0002;
    }
    /* Custom video player */
    .custom-video-wrapper {
        position: relative;
        max-width: 700px;
        margin: 0 auto 1.2rem auto;
        width: 100%;
        background: #000;
        border-radius: 8px;
        overflow: hidden;
        box-shadow: 0 2px 10px #000a;
    }
    .custom-video {
        width: 100%;
        height: 400px;
        display: block;
        background: #000;
    }
    .video-controls {
        position: absolute;
        left: 0; right: 0; bottom: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(25,25,28,0.90);
        padding: 0.7rem 0.7rem 0.7rem 0.7rem;
        gap: 1rem;
        z-index: 2;
        transition: background 0.17s;
        border-bottom-left-radius: 8px;
        border-bottom-right-radius: 8px;
    }
    .video-btn {
        background: none;
        border: none;
        color: #fff;
        font-size: 1.35rem;
        cursor: pointer;
        padding: 0.3rem 0.8rem;
        border-radius: 5px;
        transition: background 0.15s;
        outline: none;
    }
    .video-btn:hover {
        background: rgba(140,140,180,0.15);
    }
    .seek-bar {
        flex: 1 1 0;
        margin: 0 0.7rem;
        height: 6px;
        background: #31313e;
        border-radius: 4px;
        position: relative;
        cursor: pointer;
    }
    .seek-bar-inner {
        background: linear-gradient(90deg,#8b5cf6,#60a5fa);
        height: 100%;
        border-radius: 4px;
        width: 0;
        transition: background 0.2s;
    }
    .search-no-results {
        color: #ff6b81;
        font-size: 1.07rem;
        margin: 1.5rem auto 0 auto;
        text-align: center;
    }
    footer {
        background: var(--footer-bg);
        text-align: center;
        padding: 2rem;
        color: var(--footer-color);
        margin-top: auto;
        font-size: 1rem;
    }
    @media (max-width: 1100px) {
        .hero { font-size: 1.5rem; }
        aside { width: 200px; padding: 1.5rem 0.5rem;}
    }
    @media (max-width: 900px) {
        .hero { padding: 3rem 1rem 1.5rem 1rem; }
        aside { width: 180px;}
        main { padding: 1rem 0.6rem;}
    }
    @media (max-width: 700px) {
        .layout { flex-direction: column-reverse; }
        aside {
            position: fixed;
            top: 0;
            right: 0;
            height: 100vh;
            z-index: 50;
            transform: translateX(100%);
            box-shadow: -8px 0 20px #000a;
            border-left: none;
            width: 260px;
            background: var(--sidebar-bg);
        }
        aside.open { transform: translateX(0); }
        .sidebar-toggle { display: block; }
        main { padding: 0.9rem 0.2rem; }
        .hero { padding: 2.2rem 0.4rem 1.1rem 0.4rem; }
    }
    @media (max-width: 480px) {
        .hero h1 { font-size: 1.08rem; }
        aside { width: 100vw; }
        .sidebar-toggle { right: 0.7rem; top: 0.7rem; font-size: 1.7rem; }
        main { padding: .2rem; }
        .custom-video { height: 220px; }
    }
    @keyframes fadeIn {
        from { opacity: 0; transform: translateY(22px);}
        to { opacity: 1; transform: none;}
    }
    a {
        color: aqua;
    }