/* Source: /css/variables.css */
/* ==========================================================
   TypingTutor.Online
   Theme Variables
   File: css/variables.css
   Version: 4.0
========================================================== */

:root {
    color-scheme: light;

    /* Brand */
    --primary: #2563eb;
    --primary-hover: #1d4ed8;
    --primary-light: #dbeafe;

    --success: #22c55e;
    --warning: #f59e0b;
    --danger: #ef4444;
    --info: #06b6d4;

    /* Surfaces */
    --background: #f8fafc;
    --surface: #ffffff;
    --surface-alt: #f1f5f9;
    --surface-soft: #f8fafc;
    --surface-elevated: #ffffff;

    /* Borders and text */
    --border: #cbd5e1;
    --border-soft: #e5eaf1;
    --text: #0f172a;
    --text-light: #475569;
    --text-muted: #94a3b8;

    /* Keyboard */
    --key-bg: #ffffff;
    --key-border: #cbd5e1;
    --key-text: #111827;
    --key-current: #14b8a6;
    --key-next: #8b5cf6;
    --key-pressed: #2563eb;
    --key-correct: #22c55e;
    --key-wrong: #ef4444;
    --key-disabled: #cbd5e1;

    /* Fingers */
    --finger-thumb: #60a5fa;
    --finger-left-index: #4ade80;
    --finger-left-middle: #facc15;
    --finger-left-ring: #fb923c;
    --finger-left-little: #ec4899;
    --finger-right-index: #4ade80;
    --finger-right-middle: #facc15;
    --finger-right-ring: #fb923c;
    --finger-right-little: #ec4899;

    /* Typography */
    --font-heading: "Poppins", sans-serif;
    --font-body: "Inter", sans-serif;
    --font-mono: "JetBrains Mono", monospace;

    --font-xs: .75rem;
    --font-sm: .875rem;
    --font-md: 1rem;
    --font-lg: 1.125rem;
    --font-xl: 1.5rem;
    --font-2xl: 2rem;
    --font-3xl: 3rem;

    --weight-light: 300;
    --weight-normal: 400;
    --weight-medium: 500;
    --weight-semibold: 600;
    --weight-bold: 700;

    /* Spacing */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --space-10: 40px;
    --space-12: 48px;
    --space-16: 64px;

    /* Radius */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --radius-xl: 22px;
    --radius-round: 999px;

    /* Shadows */
    --shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);
    --shadow-sm: 0 2px 6px rgba(15, 23, 42, .08);
    --shadow-md: 0 8px 25px rgba(15, 23, 42, .08);
    --shadow-lg: 0 12px 35px rgba(15, 23, 42, .12);
    --shadow-xl: 0 18px 50px rgba(15, 23, 42, .18);
    --shadow-key: 0 3px 8px rgba(15, 23, 42, .10);
    --shadow-key-pressed: inset 0 3px 8px rgba(15, 23, 42, .22);

    /* Transitions */
    --transition-fast: 120ms;
    --transition-normal: 180ms;
    --transition-medium: 250ms;
    --transition-slow: 400ms;
    --ease: cubic-bezier(.2, .8, .2, 1);

    /* Component sizes */
    --hand-scale: 1;
    --finger-press-distance: 6px;
    --finger-glow-size: 18px;
    --finger-animation-speed: 180ms;
    --key-width: 60px;
    --key-height: 60px;
    --key-gap: 6px;
    --header-height: 72px;
    --lesson-height: 120px;
    --hands-height: 260px;
    --keyboard-height: 320px;
    --footer-height: 60px;

    /* Layers */
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-overlay: 300;
    --z-modal: 400;
    --z-toast: 500;

    /* Breakpoints (documentation values) */
    --mobile: 576px;
    --tablet: 768px;
    --laptop: 1024px;
    --desktop: 1280px;
    --wide: 1600px;
}

/* Explicit dark mode */
html[data-theme="dark"] {
    color-scheme: dark;

    --primary: #4f8cff;
    --primary-hover: #75a5ff;
    --primary-light: #172a4d;

    --background: #0b1120;
    --surface: #111827;
    --surface-alt: #182235;
    --surface-soft: #151f31;
    --surface-elevated: #1a2538;

    --border: #334155;
    --border-soft: #263449;

    --text: #f1f5f9;
    --text-light: #cbd5e1;
    --text-muted: #94a3b8;

    --key-bg: #172033;
    --key-border: #3a4960;
    --key-text: #f8fafc;
    --key-disabled: #475569;

    --shadow-xs: 0 1px 2px rgba(0, 0, 0, .18);
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, .24);
    --shadow-md: 0 10px 28px rgba(0, 0, 0, .28);
    --shadow-lg: 0 16px 38px rgba(0, 0, 0, .34);
    --shadow-xl: 0 22px 55px rgba(0, 0, 0, .42);
}

/* System mode follows the operating system. */
@media (prefers-color-scheme: dark) {
    html[data-theme="system"] {
        color-scheme: dark;

        --primary: #4f8cff;
        --primary-hover: #75a5ff;
        --primary-light: #172a4d;

        --background: #0b1120;
        --surface: #111827;
        --surface-alt: #182235;
        --surface-soft: #151f31;
        --surface-elevated: #1a2538;

        --border: #334155;
        --border-soft: #263449;

        --text: #f1f5f9;
        --text-light: #cbd5e1;
        --text-muted: #94a3b8;

        --key-bg: #172033;
        --key-border: #3a4960;
        --key-text: #f8fafc;
        --key-disabled: #475569;

        --shadow-xs: 0 1px 2px rgba(0, 0, 0, .18);
        --shadow-sm: 0 2px 8px rgba(0, 0, 0, .24);
        --shadow-md: 0 10px 28px rgba(0, 0, 0, .28);
        --shadow-lg: 0 16px 38px rgba(0, 0, 0, .34);
        --shadow-xl: 0 22px 55px rgba(0, 0, 0, .42);
    }
}

/* Source: /css/universal-site-header-v17.7.2.css */
/* ==========================================================
   TypingTutor.Online — Universal Site Header v17.7.2
   One complete header for tutor, tests, games, kids, blog,
   certificates, information pages, sitemap, and 404.
========================================================== */

#header,
.test-site-header {
    box-sizing: border-box !important;
    position: relative;
    z-index: 1000;
    width: 100%;
    min-height: 80px;
    padding: max(9px, env(safe-area-inset-top)) 0 9px;
    background: var(--surface, #ffffff);
    border-bottom: 1px solid var(--border, #dbe4f0);
    box-shadow: 0 2px 10px rgba(15, 23, 42, .06);
}

#header .header-inner,
.test-header-inner {
    box-sizing: border-box;
    width: min(1660px, calc(100% - 34px));
    min-height: 60px;
    margin-inline: auto;
    padding: 0;
    display: grid;
    grid-template-columns: minmax(235px, 300px) minmax(0, 1fr) auto;
    gap: clamp(10px, 1.4vw, 24px);
    align-items: center;
}

#header .logo,
.test-logo {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-self: start;
    color: inherit;
    text-decoration: none;
}

#header .site-logo-picture,
.test-logo-stack {
    position: relative;
    display: grid;
    width: min(280px, 100%);
    min-width: 0;
}

#header .site-logo-picture,
#header .site-logo-picture-light,
#header .site-logo-picture-dark,
.test-logo-stack > img {
    grid-area: 1 / 1;
}

#header .site-logo-image,
.test-logo img {
    display: block;
    width: min(280px, 100%);
    height: auto;
    max-height: 60px;
    object-fit: contain;
    object-position: left center;
}

#header .site-logo-picture-dark,
.test-logo-dark {
    display: none !important;
}

html[data-theme="dark"] #header .site-logo-picture-light,
html[data-theme="dark"] .test-logo-light {
    display: none !important;
}

html[data-theme="dark"] #header .site-logo-picture-dark,
html[data-theme="dark"] .test-logo-dark {
    display: block !important;
}

#header .primary-mode-navigation,
.test-nav {
    min-width: 0;
    width: 100%;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(2px, .72vw, 12px);
    overflow: visible;
}

#header #modeSwitcher,
#header .mode-switcher-inner,
#header .mode-navigation {
    min-width: 0;
    width: auto;
}

#header .mode-navigation {
    display: flex;
    align-items: center;
    gap: clamp(2px, .72vw, 12px);
}

#header .mode-switcher-heading {
    display: none !important;
}

#header .lesson-home-nav-button,
#header .mode-navigation > .mode-button,
#header .mode-more > summary.mode-button,
.test-nav > a,
.test-nav-more > summary {
    box-sizing: border-box;
    min-width: 0;
    min-height: 48px;
    margin: 0;
    padding: 10px clamp(9px, .78vw, 15px);
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: var(--text, #172235);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 12px;
    font: inherit;
    font-size: clamp(12px, .84vw, 15px);
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: color .16s ease, background-color .16s ease,
        border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

#header .mode-button-icon,
#header .lesson-home-nav-icon,
.test-nav .mode-button-icon,
.test-nav-more-menu .mode-button-icon {
    display: inline-flex;
    flex: 0 0 22px;
    width: 22px;
    min-width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
    font-size: 19px;
    font-weight: 400;
    line-height: 22px;
    text-align: center;
}

#header .mode-button-text,
#header .lesson-home-nav-label,
.test-nav .mode-button-text {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}

#header .lesson-home-nav-button:hover,
#header .mode-navigation > .mode-button:hover,
#header .mode-more > summary.mode-button:hover,
.test-nav > a:hover,
.test-nav-more > summary:hover,
.test-nav-more[open] > summary {
    color: var(--primary, #1769ff);
    background: var(--surface-alt, #f2f7ff);
    border-color: #dbe8fa;
}

#header .lesson-home-nav-button-active,
#header .mode-navigation > .mode-button-active,
#header .mode-more.mode-more-active > summary,
.test-nav > a[aria-current="page"],
.test-nav > a.mode-button-active,
.test-nav-more.mode-more-active > summary {
    color: #ffffff !important;
    background: linear-gradient(135deg, #246df0, #285ee5) !important;
    border-color: rgba(31, 92, 222, .58) !important;
    box-shadow: 0 10px 24px rgba(47, 103, 246, .24) !important;
}

#header .header-tools,
.test-header-inner > #themeButton {
    justify-self: end;
}

#header #themeButton,
.test-header-inner > #themeButton {
    box-sizing: border-box;
    min-width: 116px;
    min-height: 48px;
    margin: 0;
    padding: 10px 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #ffffff;
    background: linear-gradient(135deg, #246df0, #285ee5);
    border: 0;
    border-radius: 12px;
    font: inherit;
    font-size: clamp(12px, .84vw, 15px);
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(47, 103, 246, .20);
}

#header #themeButton > span:first-child,
.test-header-inner > #themeButton > span:first-child {
    display: inline-flex;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
    font-size: 19px;
    line-height: 22px;
}

.theme-button-arrow,
.mode-more-chevron {
    font-size: 10px;
    opacity: .8;
}

#header .mode-more,
.test-nav-more {
    position: relative;
    flex: 0 0 auto;
}

#header .mode-more > summary,
.test-nav-more > summary {
    list-style: none;
}

#header .mode-more > summary::-webkit-details-marker,
.test-nav-more > summary::-webkit-details-marker {
    display: none;
}

#header .mode-more-menu,
.test-nav-more-menu {
    box-sizing: border-box;
    position: absolute;
    z-index: 1200;
    top: calc(100% + 10px);
    right: 0;
    width: 244px;
    padding: 8px;
    display: none;
    gap: 4px;
    background: var(--surface-elevated, #ffffff);
    border: 1px solid var(--border, #dbe4f0);
    border-radius: 14px;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .18);
}

#header .mode-more[open] .mode-more-menu,
.test-nav-more[open] .test-nav-more-menu {
    display: grid;
}

#header .mode-more-menu .mode-button,
.test-nav-more-menu a,
.test-nav-more-menu button {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    color: var(--text, #172235);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 10px;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

#header .mode-more-menu .mode-button:hover,
.test-nav-more-menu a:hover,
.test-nav-more-menu button:hover,
.test-nav-more-menu a[aria-current="page"] {
    color: var(--primary, #1769ff);
    background: var(--surface-alt, #f2f7ff);
    border-color: var(--border, #dbe4f0);
}

/* Theme chooser: included here so simple information pages match the app. */
.theme-menu {
    position: fixed;
    z-index: 10050;
    width: 250px;
    padding: 8px;
    background: var(--surface-elevated, #ffffff);
    border: 1px solid var(--border, #dbe4f0);
    border-radius: 14px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .22);
}
.theme-menu.hidden { display: none !important; }
.theme-option {
    display: grid;
    grid-template-columns: 36px 1fr 22px;
    gap: 10px;
    align-items: center;
    width: 100%;
    padding: 10px;
    color: var(--text, #172235);
    text-align: left;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 10px;
    cursor: pointer;
}
.theme-option:hover,
.theme-option:focus-visible {
    background: var(--surface-alt, #f2f7ff);
    border-color: var(--border, #dbe4f0);
    outline: none;
}
.theme-option-icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    background: var(--surface-alt, #f2f7ff);
    border-radius: 9px;
    font-size: 18px;
}
.theme-option-copy { display: grid; gap: 2px; }
.theme-option-copy strong { color: var(--text, #172235); font-size: 13px; }
.theme-option-copy small { color: var(--text-light, #718096); font-size: 10px; }
.theme-option-check { color: var(--primary, #1769ff); font-weight: 900; opacity: 0; }
.theme-option-selected { background: var(--primary-light, #edf4ff); border-color: var(--border, #dbe4f0); }
.theme-option-selected .theme-option-check { opacity: 1; }

html[data-theme="dark"] #header,
html[data-theme="dark"] .test-site-header {
    background: #101b2e;
    border-color: #40516a;
}
html[data-theme="dark"] #header .lesson-home-nav-button,
html[data-theme="dark"] #header .mode-navigation > .mode-button,
html[data-theme="dark"] #header .mode-more > summary.mode-button,
html[data-theme="dark"] .test-nav > a,
html[data-theme="dark"] .test-nav-more > summary,
html[data-theme="dark"] #header .mode-more-menu .mode-button,
html[data-theme="dark"] .test-nav-more-menu a,
html[data-theme="dark"] .test-nav-more-menu button {
    color: #dce7f7;
}
html[data-theme="dark"] #header .mode-more-menu,
html[data-theme="dark"] .test-nav-more-menu,
html[data-theme="dark"] .theme-menu {
    background: #101b2e;
    border-color: #40516a;
}
html[data-theme="dark"] .theme-option,
html[data-theme="dark"] .theme-option-copy strong { color: #e7eef9; }
html[data-theme="dark"] .theme-option-copy small { color: #9aabc2; }
html[data-theme="dark"] .theme-option-icon,
html[data-theme="dark"] .theme-option:hover,
html[data-theme="dark"] .theme-option:focus-visible,
html[data-theme="dark"] #header .mode-more-menu .mode-button:hover,
html[data-theme="dark"] .test-nav-more-menu a:hover,
html[data-theme="dark"] .test-nav-more-menu button:hover {
    background: #17263c;
    border-color: #304662;
}

@media (prefers-color-scheme: dark) {
    html[data-theme="system"] #header,
    html[data-theme="system"] .test-site-header {
        background: #101b2e;
        border-color: #40516a;
    }
    html[data-theme="system"] #header .site-logo-picture-light,
    html[data-theme="system"] .test-logo-light { display: none !important; }
    html[data-theme="system"] #header .site-logo-picture-dark,
    html[data-theme="system"] .test-logo-dark { display: block !important; }
    html[data-theme="system"] #header .lesson-home-nav-button,
    html[data-theme="system"] #header .mode-navigation > .mode-button,
    html[data-theme="system"] #header .mode-more > summary.mode-button,
    html[data-theme="system"] .test-nav > a,
    html[data-theme="system"] .test-nav-more > summary,
    html[data-theme="system"] #header .mode-more-menu .mode-button,
    html[data-theme="system"] .test-nav-more-menu a,
    html[data-theme="system"] .test-nav-more-menu button { color: #dce7f7; }
    html[data-theme="system"] #header .mode-more-menu,
    html[data-theme="system"] .test-nav-more-menu,
    html[data-theme="system"] .theme-menu {
        background: #101b2e;
        border-color: #40516a;
    }
}

@media (max-width: 1360px) {
    #header .header-inner,
    .test-header-inner {
        grid-template-columns: minmax(205px, 235px) minmax(0, 1fr) auto;
        gap: 8px;
    }
    #header .site-logo-picture,
    #header .site-logo-image,
    .test-logo-stack,
    .test-logo img { width: min(235px, 100%); }
    #header .lesson-home-nav-button,
    #header .mode-navigation > .mode-button,
    #header .mode-more > summary.mode-button,
    .test-nav > a,
    .test-nav-more > summary {
        min-height: 44px;
        padding-inline: 8px;
        gap: 6px;
        font-size: 12px;
    }
    #header #themeButton,
    .test-header-inner > #themeButton {
        min-width: 104px;
        min-height: 44px;
        padding-inline: 11px;
        font-size: 12px;
    }
}

@media (max-width: 1040px) {
    #header,
    .test-site-header {
        min-height: 0;
        padding-top: max(7px, env(safe-area-inset-top));
        padding-bottom: 7px;
    }
    #header .header-inner,
    .test-header-inner {
        width: min(100% - 22px, 1660px);
        min-height: 0;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px 12px;
    }
    #header .primary-mode-navigation,
    .test-nav {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        justify-content: flex-start;
        overflow-x: auto;
        overflow-y: visible;
        padding: 2px 0 3px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    #header .primary-mode-navigation::-webkit-scrollbar,
    .test-nav::-webkit-scrollbar { display: none; }
    #header .header-tools,
    .test-header-inner > #themeButton { grid-column: 2; grid-row: 1; }
    .test-logo { grid-column: 1; grid-row: 1; }
}

@media (max-width: 590px) {
    #header .header-inner,
    .test-header-inner { width: min(100% - 14px, 1660px); }
    #header .site-logo-picture,
    #header .site-logo-image,
    .test-logo-stack,
    .test-logo img { width: min(190px, 100%); }
    #header .lesson-home-nav-button,
    #header .mode-navigation > .mode-button,
    #header .mode-more > summary.mode-button,
    .test-nav > a,
    .test-nav-more > summary {
        min-width: 68px;
        min-height: 44px;
        padding: 7px 8px;
        flex-direction: column;
        gap: 3px;
        font-size: 9px;
    }
    #header .mode-more-chevron,
    .test-nav-more .mode-more-chevron { display: none; }
    #header #themeButton,
    .test-header-inner > #themeButton {
        min-width: 48px;
        min-height: 42px;
        padding: 8px 10px;
    }
    #header #themeButton > span:nth-child(2),
    #header #themeButton > span:last-child,
    .test-header-inner > #themeButton > span:nth-child(2),
    .test-header-inner > #themeButton > span:last-child { display: none; }
}

/* ==========================================================
   v17.10.182 — Reliable mobile More menu
   Explicit JS toggling + fixed viewport panel prevents the menu from
   opening outside the horizontally scrolling navigation in Chrome mobile.
========================================================== */
@media (max-width: 1040px), (pointer: coarse) {
    #header .mode-more-menu,
    .test-nav-more-menu {
        position: fixed !important;
        z-index: 10050 !important;
        top: var(--site-more-top, 118px) !important;
        right: 12px !important;
        bottom: auto !important;
        left: 12px !important;
        width: auto !important;
        max-width: none !important;
        max-height: min(var(--site-more-max-height, 70vh), 480px) !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        border-radius: 16px;
        box-shadow: 0 20px 52px rgba(15, 23, 42, .24);
    }

    #header .mode-more[open] > summary.mode-button,
    .test-nav-more[open] > summary {
        color: var(--primary, #1769ff);
        background: var(--surface-alt, #f2f7ff);
        border-color: var(--border, #dbe4f0);
    }
}

/* v17.10.327: readable hover, open and keyboard-focus states in both dark modes. */
html[data-theme="dark"] #header .lesson-home-nav-button:is(:hover,:focus-visible),
html[data-theme="dark"] #header .mode-navigation > .mode-button:is(:hover,:focus-visible),
html[data-theme="dark"] #header .mode-more > summary.mode-button:is(:hover,:focus-visible),
html[data-theme="dark"] #header .mode-more[open] > summary.mode-button,
html[data-theme="dark"] .test-nav > a:is(:hover,:focus-visible),
html[data-theme="dark"] .test-nav-more > summary:is(:hover,:focus-visible),
html[data-theme="dark"] .test-nav-more[open] > summary,
html[data-theme="dark"] #header .mode-more-menu .mode-button:is(:hover,:focus-visible),
html[data-theme="dark"] .test-nav-more-menu a:is(:hover,:focus-visible),
html[data-theme="dark"] .test-nav-more-menu button:is(:hover,:focus-visible) {
    color: #e7eef9;
    background: #213a5f;
    border-color: #526d91;
    text-decoration: none;
}
@media (prefers-color-scheme: dark) {
html[data-theme="system"] #header .lesson-home-nav-button:is(:hover,:focus-visible),
html[data-theme="system"] #header .mode-navigation > .mode-button:is(:hover,:focus-visible),
html[data-theme="system"] #header .mode-more > summary.mode-button:is(:hover,:focus-visible),
html[data-theme="system"] #header .mode-more[open] > summary.mode-button,
html[data-theme="system"] .test-nav > a:is(:hover,:focus-visible),
html[data-theme="system"] .test-nav-more > summary:is(:hover,:focus-visible),
html[data-theme="system"] .test-nav-more[open] > summary,
html[data-theme="system"] #header .mode-more-menu .mode-button:is(:hover,:focus-visible),
html[data-theme="system"] .test-nav-more-menu a:is(:hover,:focus-visible),
html[data-theme="system"] .test-nav-more-menu button:is(:hover,:focus-visible) {
    color: #e7eef9;
    background: #213a5f;
    border-color: #526d91;
    text-decoration: none;
}
}

/* Source: /css/universal-footer-v17.10.21.css */
/* TypingTutor.Online global footer v17.10.21 */
.universal-site-footer{display:block;box-sizing:border-box;width:100%;margin-top:48px;padding:36px clamp(18px,4vw,56px) 24px;color:var(--text-light,#64748b);background:linear-gradient(180deg,#fbfdff 0%,#f6f9fd 100%);border-top:1px solid var(--border,#d9e2ef);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.universal-footer-inner{box-sizing:border-box;width:min(1500px,100%);margin:0 auto}
.universal-footer-main{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,2.15fr);gap:clamp(32px,5vw,72px);align-items:start}
.universal-footer-brand{display:grid;gap:9px;max-width:340px;text-align:left}
.universal-footer-home{width:max-content;color:var(--text,#0f172a)!important;font-size:18px;font-weight:850;line-height:1.25;text-decoration:none;letter-spacing:-.01em}
.universal-footer-home:hover,.universal-footer-home:focus-visible{color:var(--primary,#1769ff)!important}
.universal-footer-brand span{color:var(--text-light,#64748b);font-size:13px;font-weight:550;line-height:1.6}
.universal-footer-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px clamp(22px,4vw,54px)}
.universal-footer-group{min-width:0}
.universal-footer-group>strong{display:block;margin:0 0 10px;color:var(--text,#0f172a);font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.universal-footer-group-links{display:grid;gap:8px}
.universal-footer-group-links a{width:max-content;max-width:100%;color:var(--text-light,#64748b);font-size:13px;font-weight:700;line-height:1.45;text-decoration:none;transition:color .16s ease,transform .16s ease}
.universal-footer-group-links a:hover,.universal-footer-group-links a:focus-visible{color:var(--primary,#1769ff);text-decoration:underline;text-underline-offset:3px}
.universal-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:28px;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--border,#d9e2ef) 82%,transparent);color:var(--text-light,#64748b);font-size:11px;font-weight:600;line-height:1.5}
html[data-theme="dark"] .universal-site-footer{color:#94a3b8;background:#0f172a;border-top-color:#334155}
html[data-theme="dark"] .universal-footer-home,html[data-theme="dark"] .universal-footer-group>strong{color:#f8fafc!important}
html[data-theme="dark"] .universal-footer-brand span,html[data-theme="dark"] .universal-footer-group-links a,html[data-theme="dark"] .universal-footer-bottom{color:#a8b5c7}
html[data-theme="dark"] .universal-footer-bottom{border-top-color:#334155}
html[data-theme="dark"] .universal-footer-home:hover,html[data-theme="dark"] .universal-footer-home:focus-visible,html[data-theme="dark"] .universal-footer-group-links a:hover,html[data-theme="dark"] .universal-footer-group-links a:focus-visible{color:#60a5fa!important}
@media(prefers-color-scheme:dark){html[data-theme="system"] .universal-site-footer{color:#94a3b8;background:#0f172a;border-top-color:#334155}html[data-theme="system"] .universal-footer-home,html[data-theme="system"] .universal-footer-group>strong{color:#f8fafc!important}html[data-theme="system"] .universal-footer-brand span,html[data-theme="system"] .universal-footer-group-links a,html[data-theme="system"] .universal-footer-bottom{color:#a8b5c7}html[data-theme="system"] .universal-footer-bottom{border-top-color:#334155}html[data-theme="system"] .universal-footer-home:hover,html[data-theme="system"] .universal-footer-home:focus-visible,html[data-theme="system"] .universal-footer-group-links a:hover,html[data-theme="system"] .universal-footer-group-links a:focus-visible{color:#60a5fa!important}}
@media(max-width:900px){.universal-site-footer{padding-top:30px}.universal-footer-main{grid-template-columns:1fr;gap:26px}.universal-footer-brand{max-width:620px}.universal-footer-nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.universal-site-footer{margin-top:32px;padding:28px 18px 20px}.universal-footer-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}.universal-footer-group:last-child{grid-column:1/-1}.universal-footer-group:last-child .universal-footer-group-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.universal-footer-group-links a{width:auto;padding:2px 0}.universal-footer-bottom{align-items:flex-start;flex-direction:column;gap:5px;margin-top:24px}}
@media(max-width:390px){.universal-footer-nav{grid-template-columns:1fr}.universal-footer-group:last-child{grid-column:auto}.universal-footer-group:last-child .universal-footer-group-links{grid-template-columns:1fr}}
@media print{.universal-site-footer{display:none!important}}

/* Source: /css/site-account-header-v17.10.311.css */
/* Shared account action. Reserve space before JavaScript runs. */
#header .header-tools, .test-header-inner > .site-header-actions {
 display:flex !important; align-items:center; justify-content:flex-end; gap:8px;
 justify-self:end; min-width:0;
}
#header .site-account-link, .test-site-header .site-account-link {
 box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; gap:7px;
 min-height:48px; min-width:118px; padding:10px 12px; border:1px solid var(--border,#c9d8ed);
 border-radius:12px; background:var(--surface-alt,#f2f7ff); color:var(--text,#172235);
 font:750 13px/1 system-ui,sans-serif; text-decoration:none; white-space:nowrap; flex-shrink:0;
}
.site-account-link svg {flex-shrink:0;}
#header .site-account-link:hover, .test-site-header .site-account-link:hover {border-color:#246df0; background:#e7f0ff; color:#1747a6; text-decoration:none;}
.site-account-link:focus-visible {outline:3px solid #246df0; outline-offset:3px;}
.test-header-inner > .site-header-actions > #themeButton {
 box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; gap:8px;
 min-width:116px; min-height:48px; padding:10px 15px; margin:0; border:0; border-radius:12px;
 background:linear-gradient(135deg,#246df0,#285ee5); color:white; font:750 13px/1 system-ui,sans-serif;
 cursor:pointer; white-space:nowrap;
}
html[data-theme="dark"] .site-account-link {background:#182a43; color:#e7eef9; border-color:#526783;}
html[data-theme="dark"] .site-account-link:hover {background:#213a5f; color:white;}
@media (max-width:1200px) {
 #header .header-inner, .test-header-inner {grid-template-columns:minmax(0,1fr) auto !important;}
 #header .primary-mode-navigation, .test-nav {grid-column:1 / -1; grid-row:2;}
 #header .header-tools, .test-header-inner > .site-header-actions {grid-column:2; grid-row:1;}
}
@media (max-width:590px) {
 #header .site-account-link, .test-site-header .site-account-link {min-width:44px; width:44px; min-height:44px; padding:10px;}
 .site-account-label {position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap;}
 #header .header-tools, .test-header-inner > .site-header-actions {gap:6px;}
 #header #themeButton, .test-header-inner > .site-header-actions > #themeButton {min-width:44px; width:44px; min-height:44px; padding:8px !important;}
 .test-header-inner > .site-header-actions > #themeButton > span:not(:first-child) {display:none;}
}

/* v17.10.317 — green account action after server-confirmed sign-in. */
#header .site-account-link[data-signed-in="true"],
.test-site-header .site-account-link[data-signed-in="true"] {
 background:#15803d; color:#fff; border-color:#15803d;
}
#header .site-account-link[data-signed-in="true"]:hover,
.test-site-header .site-account-link[data-signed-in="true"]:hover {
 background:#166534; color:#fff; border-color:#166534;
}
html[data-theme="dark"] #header .site-account-link[data-signed-in="true"],
html[data-theme="dark"] .test-site-header .site-account-link[data-signed-in="true"] {
 background:#166534; color:#fff; border-color:#22c55e;
}
html[data-theme="dark"] #header .site-account-link[data-signed-in="true"]:hover,
html[data-theme="dark"] .test-site-header .site-account-link[data-signed-in="true"]:hover {
 background:#14532d; color:#fff;
}

/* Source: /games/robot-rise/robot-rise.css */

:root{color-scheme:dark;--navy:#0c1831;--cyan:#63f7eb;--gold:#ffe6a2}*{box-sizing:border-box}body{margin:0;background:#08132a;color:#edf7ff;font:15px system-ui,-apple-system,Segoe UI,sans-serif;overflow-x:hidden}button,select,input{font:inherit}button,select{color:inherit;background:#1b3155;border:1px solid #466083;border-radius:12px;cursor:pointer}button{padding:10px 15px}button:hover{background:#294669}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--cyan);border-color:var(--cyan);color:#082a38;font-weight:800}button.primary:hover{background:#a2fff4}.shell{height:90vh;height:min(850px,90vh);height:min(850px,90dvh);min-height:390px;display:flex;flex-direction:column}.top{min-height:75px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 26px;background:#0b1835f5;border-bottom:1px solid #345481;z-index:2}.brand{display:flex;align-items:center;gap:13px}.robot-logo{width:34px;height:31px;background:#d9f7ff;border:2px solid #6ddfcf;border-radius:10px;display:grid;place-items:center;color:#005c68;font-weight:900}.name{font-size:23px;font-weight:900;letter-spacing:1px;line-height:1}.name small{display:block;font-size:10px;font-weight:600;color:#8faac9;letter-spacing:2px;margin-top:7px}.badge{font-size:10px;letter-spacing:1px;color:#ffe6a2;border:1px solid #bb945b77;border-radius:5px;padding:4px 6px}.stats{display:flex;gap:29px;text-align:center}.stat small{font-size:10px;letter-spacing:1.5px;display:block;color:#96aecb}.stat strong{font-size:23px;font-variant-numeric:tabular-nums}.actions{display:flex;gap:8px}.icon{width:40px;height:40px;display:grid;place-items:center;padding:0;font-size:17px}.arena{position:relative;flex:1;min-height:0;isolation:isolate;background:#173b68;overflow:hidden}canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.trail-label{position:absolute;top:21px;left:24px;font-size:10px;letter-spacing:2px;color:#d4eaff;opacity:.8;pointer-events:none}.progress{position:absolute;right:25px;top:25px;display:flex;align-items:center;flex-direction:column;gap:9px;pointer-events:none}.progress .tube{height:150px;width:13px;border-radius:10px;background:#101f3bba;border:1px solid #9bc6e65c;display:flex;align-items:flex-end;padding:2px;overflow:hidden}.progress .fill{width:100%;height:0;border-radius:8px;background:linear-gradient(#a5fff6,#19b8d1);box-shadow:0 0 15px #55ffe6;transition:height .2s}.progress small{font-size:11px;font-variant-numeric:tabular-nums}.tray{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);width:min(550px,calc(100% - 160px));padding:14px 25px 12px;border:1px solid #5cb9e591;border-radius:25px;background:linear-gradient(145deg,#102341ed,#0a1630f2);box-shadow:0 10px 45px #07132899,inset 0 1px 0 #b9f5ff20;text-align:center;cursor:text}.tray h2{font-size:17px;margin:0 0 10px;font-weight:650;color:#d9e9ff}.letters{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;min-height:49px}.letter{min-width:35px;height:47px;display:inline-grid;place-items:center;background:#253d60;border:1px solid #4f6c90;border-radius:10px;font-size:27px;font-weight:750;font-family:ui-monospace,monospace}.letter.done{color:#6bfff0;background:#0868788c;border-color:#31dbc7}.letter.current{background:#ffe6a2;color:#17243e;border-color:#fff4ce;box-shadow:0 0 14px #ffd57033}.tray p{margin:9px 0 0;font-size:11px;color:#aec5e4}.tray.error{border-color:#ff7c93;animation:shake .16s 2}.corner{position:absolute;bottom:30px;background:#0c213ddd;border:1px solid #7398bf6b;border-radius:16px;padding:9px 14px;min-width:96px;text-align:center;pointer-events:none}.corner strong{font-size:24px;color:#7efaf1}.corner small{display:block;color:#adc4e0;font-size:9px;letter-spacing:1px}.corner.left{left:24px}.corner.right{right:24px}.combo{position:absolute;left:24px;top:49px;font-weight:750;color:#ffe3a1;font-size:13px;pointer-events:none}.danger{position:absolute;top:20px;left:50%;transform:translateX(-50%);color:#ffe5ba;background:#5c2845c9;padding:7px 15px;border:1px solid #ffb37c77;border-radius:30px;font-size:12px;pointer-events:none}.hidden{display:none!important}.overlay{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:20px;background:#06142c70;backdrop-filter:blur(6px)}.panel{width:min(480px,100%);max-height:100%;overflow:auto;background:linear-gradient(150deg,#172d50f5,#0b1933fa);border:1px solid #6b9bc180;border-radius:28px;box-shadow:0 25px 80px #03102799;padding:29px;text-align:center}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#78fff0;font-weight:750}.panel h1{font-size:42px;letter-spacing:1px;margin:8px 0 9px;font-weight:900}.panel h2{font-size:31px;margin:8px 0 12px}.panel p{color:#bed1e9;font-size:14px;line-height:1.65;margin:10px 0}.avatar{width:88px;height:71px;margin:15px auto 12px;border:4px solid #a1f5ef;border-radius:24px;background:linear-gradient(#efffff,#93becd);box-shadow:0 0 45px #34eddd2a;position:relative;transform:rotate(-5deg)}.avatar:before{content:'⌒ ⌒';display:grid;place-items:center;position:absolute;inset:10px 7px;border-radius:14px;background:#0a2436;color:#59ffe6;font-size:24px;font-weight:bold}.avatar:after{content:'';position:absolute;width:5px;height:18px;background:#8de8ea;top:-20px;left:39px;border-radius:6px}.settings{display:flex;gap:12px;justify-content:center;margin:18px 0}.settings label{display:flex;flex-direction:column;gap:5px;text-align:left;font-size:10px;color:#afc7e2;letter-spacing:1px;flex:1}.settings select{padding:10px 8px;min-width:0;width:100%;font-size:13px}.wide{width:100%;padding:14px}.panel .foot{font-size:10px;color:#8ba6c9;margin-top:14px}.panel .buttons{display:flex;gap:9px;margin-top:18px}.panel .buttons button{flex:1}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.result-stats div{background:#09182a80;border:1px solid #46648660;padding:12px 5px;border-radius:12px}.result-stats strong{font-size:23px;color:#76f7ec;display:block}.result-stats small{color:#a9c0db;font-size:10px}.kbd{padding:1px 5px;border:1px solid #527094;border-radius:5px;background:#213957;color:#dfebff;font:11px ui-monospace,monospace}.mobile-input{font-size:16px;position:absolute;opacity:.015;width:1px;height:1px;bottom:160px;left:50%;padding:0;border:0}.status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.footer{height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 25px;background:#09162d;color:#6f8cac;font-size:10px}.toast{position:absolute;top:70px;left:50%;transform:translateX(-50%);background:#081a33eb;border:1px solid #4d829a;border-radius:12px;padding:9px 15px;font-size:12px;z-index:8;pointer-events:none;white-space:nowrap}@keyframes shake{50%{transform:translateX(calc(-50% + 4px))}}@media(max-width:650px){.top{padding:10px 12px;gap:10px;min-height:65px}.name{font-size:16px}.name small{font-size:8px;letter-spacing:1px}.badge,.robot-logo{display:none}.stats{gap:12px}.stat strong{font-size:18px}.stat small{font-size:8px;letter-spacing:.5px}.actions{gap:5px}.icon{width:33px;height:34px;font-size:14px}.tray{width:calc(100% - 28px);bottom:67px;padding:12px 12px 10px;border-radius:19px}.tray h2{font-size:14px;margin-bottom:8px}.letter{min-width:26px;height:36px;font-size:21px;border-radius:7px}.letters{gap:4px;min-height:36px}.tray p{font-size:10px}.corner{bottom:13px;min-width:86px;padding:6px 12px;border-radius:12px}.corner strong{font-size:19px}.corner.left{left:15px}.corner.right{right:15px}.progress{right:14px;top:19px}.progress .tube{height:95px}.trail-label{left:15px;top:20px;font-size:8px;letter-spacing:1px}.combo{left:15px;top:40px;font-size:11px}.danger{top:15px;font-size:10px;padding:5px 9px}.panel{padding:22px;border-radius:23px}.panel h1{font-size:34px}.panel p{font-size:13px}.footer{padding:0 15px;font-size:8px}.footer span:last-child{display:none}.panel .avatar{margin-top:12px;width:75px;height:61px}.panel .avatar:after{left:33px}.settings{margin:14px 0}.overlay{padding:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

[hidden]{display:none!important}.rr-wrap{max-width:1500px;margin:0 auto;padding:18px}.rr-game{border:1px solid #426386;border-radius:20px;overflow:hidden}.rr-topline{display:flex;justify-content:space-between;margin-bottom:12px;gap:12px}.rr-topline a,.rr-guide a{color:#91f7ed}.rr-gate{min-height:370px;background:linear-gradient(90deg,#0b1835eb,#0b18356b),url(/games/robot-rise/assets/sky-tower.jpg) center/cover;border:1px solid #587ba0;border-radius:24px;padding:40px;display:flex;align-items:center}.rr-gate h2{font-size:36px}.rr-gate p{max-width:580px;line-height:1.8;color:#cce0f5}.rr-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.rr-links a{padding:11px 17px;color:#0b263d;background:#88f9e5;border-radius:10px;text-decoration:none;font-weight:700}.rr-guide{max-width:1050px;margin:35px auto;line-height:1.8;color:#c8d9ed}.rr-guide h1,.rr-guide h2{color:#f1f8ff}.rr-guide section{margin:25px 0}.rr-guide h1{font-size:30px}.avatar{background:transparent url(/games/robot-rise/assets/robot.webp) center/contain no-repeat;border:0;border-radius:0;box-shadow:none;transform:none;width:100px;height:105px}.avatar:before,.avatar:after{display:none}.mobile-input{font-size:16px;opacity:1;width:150px;height:24px;left:50%;transform:translateX(-50%);bottom:0;background:#102543;color:#bddeef;border-radius:6px;text-align:center}.footer{height:32px}.shell:fullscreen{height:100vh;height:100dvh;max-height:none}.panel{background:linear-gradient(150deg,#142d4deb,#0b1933f5)}@media(max-width:650px){.rr-wrap{padding:10px}.rr-gate{padding:25px}.shell{height:85vh;height:85dvh;min-height:480px}.rr-game{border-radius:14px}.rr-guide{padding:0 8px}.rr-guide h1{font-size:26px}.mobile-input{width:125px;font-size:16px;height:23px}}@media(max-width:420px){.top{flex-wrap:wrap;padding:9px 12px;gap:9px}.top .brand{order:1}.top .actions{order:2;margin-left:auto}.top .stats{order:3;width:100%;justify-content:center;gap:35px}.stat strong{white-space:nowrap}.top .name{font-size:15px}.top .icon{width:32px;height:32px}}

/* Safari flex/canvas sizing: intrinsic canvas height must not grow the arena. */
.arena{flex:1 1 0%;min-width:0}.shell:-webkit-full-screen{height:100vh;max-height:none}.overlay{-webkit-backdrop-filter:blur(6px)}

