/* Daily Frame Games - Complete Optimized CSS */
/* Combines Bulma, Font Awesome, and custom styles for minimal footprint */

:root {
    --color-correct: #48c774;
    --color-present: #ffdd57;
    --color-absent: #dbdbdb;
    --color-primary: #3273dc;
}

/* ===== BULMA EXTRACTED STYLES (Only Used Classes) ===== */

/* Skeleton Loading for Performance */
.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: loading 1.5s infinite;
}

@keyframes loading {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

.skeleton-text {
    height: 1em;
    border-radius: 4px;
    margin-bottom: 0.5em;
}

.skeleton-tile {
    width: 35px;
    height: 35px;
    border-radius: 4px;
    margin: 2px;
}

.skeleton-image {
    width: 350px;
    height: 200px;
    border-radius: 8px;
}

/* Layout Shift Prevention */
.puzzle-container img {
    width: 350px;
    height: 200px;
    object-fit: contain;
    background: #f5f5f5;
}

.game-board {
    min-height: 600px;
    /* Prevent layout shift when content loads */
}

/* Critical Above-the-Fold CSS */
.navbar.is-fixed-top {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 30;
}

.game-container {
    margin-top: 80px;
    /* Account for fixed navbar */
}

/* Preload Optimization */
img {
    loading: lazy;
}

img#puzzleImage {
    loading: eager;
    /* Critical image, load immediately */
    content-visibility: auto;
}

/* Performance Optimizations */
* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

/* Reduce font loading impact */
body {
    font-display: swap;
}

/* Critical path optimization */
.game-header,
.game-board,
.puzzle-container {
    contain: layout style paint;
}

/* Base */
html {
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

body {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    min-height: 100vh;
    font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
    font-size: 1rem;
    line-height: 1.5;
    color: #4a4a4a;
    font-weight: 400;
}

/* Layout */
.section {
    padding: 3rem 1.5rem;
}

@media screen and (min-width: 1024px) {
    .section {
        padding: 3rem 0;
    }
}

.container {
    flex-grow: 1;
    margin: 0 auto;
    position: relative;
    width: auto;
}

@media screen and (min-width: 1024px) {
    .container {
        max-width: 960px;
    }
}

.columns {
    margin-left: -0.75rem;
    margin-right: -0.75rem;
    margin-top: -0.75rem;
}

.columns:last-child {
    margin-bottom: -0.75rem;
}

.columns:not(:last-child) {
    margin-bottom: calc(1.5rem - 0.75rem);
}

.column {
    display: block;
    flex-basis: 0;
    flex-grow: 1;
    flex-shrink: 1;
    padding: 0.75rem;
}

.columns.is-centered {
    justify-content: center;
}

.column.is-narrow {
    flex: none;
    width: unset;
}

.columns.is-multiline {
    flex-wrap: wrap;
}

.column.is-half {
    flex: none;
    width: 50%;
}

.column.is-full {
    flex: none;
    width: 100%;
}

/* Navbar */
.navbar {
    background-color: #3273dc;
    min-height: 3.25rem;
    position: relative;
    z-index: 30;
}

.navbar.is-link {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.navbar.is-fixed-top {
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 30;
}

.navbar-brand {
    align-items: stretch;
    display: flex;
    flex-shrink: 0;
    min-height: 3.25rem;
}

.navbar-item {
    background-color: transparent;
    border: none;
    color: #4a4a4a;
    cursor: pointer;
    display: flex;
    flex-grow: 0;
    flex-shrink: 0;
    font-size: 1rem;
    height: 3.25rem;
    justify-content: center;
    line-height: 1.5;
    padding: 0.5rem 0.75rem;
    position: relative;
    text-align: center;
    white-space: nowrap;
}

.navbar-burger {
    color: #4a4a4a;
    cursor: pointer;
    display: block;
    height: 3.25rem;
    position: relative;
    width: 3.25rem;
    margin-left: auto;
}

.navbar-burger span {
    background-color: currentColor;
    display: block;
    height: 1px;
    left: calc(50% - 8px);
    position: absolute;
    transform-origin: center;
    transition-duration: 86ms;
    transition-property: background-color, opacity, transform;
    transition-timing-function: ease-out;
    width: 16px;
}

.navbar-burger span:nth-child(1) {
    top: calc(50% - 6px);
}

.navbar-burger span:nth-child(2) {
    top: calc(50% - 1px);
}

.navbar-burger span:nth-child(3) {
    top: calc(50% + 4px);
}

.navbar-burger.is-active span:nth-child(1) {
    transform: translateY(5px) rotate(45deg);
}

.navbar-burger.is-active span:nth-child(2) {
    opacity: 0;
}

.navbar-burger.is-active span:nth-child(3) {
    transform: translateY(-5px) rotate(-45deg);
}

.navbar-menu {
    display: none;
}

.navbar-menu.is-active {
    display: block;
}

.navbar-start {
    justify-content: flex-start;
    margin-right: auto;
}

.navbar-end {
    justify-content: flex-end;
    margin-left: auto;
}

.has-text-white {
    color: #fff !important;
}

.has-text-weight-bold {
    font-weight: 700 !important;
}

.has-text-centered {
    text-align: center !important;
}

.has-text-primary {
    color: #3273dc !important;
}

.has-text-dark {
    color: #363636 !important;
}

/* Buttons */
.button {
    background-color: #fff;
    border-color: #dbdbdb;
    border-width: 1px;
    color: #363636;
    cursor: pointer;
    justify-content: center;
    padding-bottom: calc(0.5em - 1px);
    padding-left: 1em;
    padding-right: 1em;
    padding-top: calc(0.5em - 1px);
    text-align: center;
    white-space: nowrap;
    align-items: center;
    border: 1px solid transparent;
    border-radius: 4px;
    box-shadow: none;
    display: inline-flex;
    font-size: 1rem;
    height: 2.5em;
    line-height: 1.5;
    position: relative;
    vertical-align: top;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.button:focus {
    outline: none;
}

.button:hover {
    border-color: #b5b5b5;
    color: #363636;
}

.button.is-small {
    font-size: 0.75rem;
    border-radius: 2px;
}

.button.is-medium {
    font-size: 1.25rem;
}

.button.is-large {
    font-size: 1.5rem;
}

.button.is-outlined {
    background-color: transparent;
    border-color: #3273dc;
    color: #3273dc;
}

.button.is-outlined.is-white {
    border-color: white;
    color: white;
}

.button.is-outlined.is-white:hover {
    background: white;
    color: var(--color-primary);
}

.button.is-primary {
    background-color: #3273dc;
    border-color: transparent;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.button.is-primary:hover {
    background-color: #276cda;
    border-color: transparent;
    color: #fff;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.button.is-info {
    background-color: #3273dc;
    border-color: transparent;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.button.is-info:hover {
    background-color: #276cda;
    border-color: transparent;
    color: #fff;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.button.is-success {
    background-color: #48c774;
    border-color: transparent;
    color: #fff;
}

.button.is-success:hover {
    background-color: #3ec46d;
    border-color: transparent;
    color: #fff;
}

.button.is-warning {
    background-color: #ffdd57;
    border-color: transparent;
    color: rgba(0, 0, 0, 0.7);
}

.button.is-warning:hover {
    background-color: #ffdb4a;
    border-color: transparent;
    color: rgba(0, 0, 0, 0.7);
}

.button.is-danger {
    background-color: #f14668;
    border-color: transparent;
    color: #fff;
}

.button.is-danger:hover {
    background-color: #f03a5f;
    border-color: transparent;
    color: #fff;
}

.button.is-white {
    background-color: #fff;
    border-color: transparent;
    color: #0a0a0a;
}

.button.is-white:hover {
    background-color: #f9f9f9;
    border-color: transparent;
    color: #0a0a0a;
}

.button:disabled {
    background-color: #fff;
    border-color: #dbdbdb;
    box-shadow: none;
    opacity: 0.5;
    cursor: not-allowed;
}

.button.is-disabled,
.button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.button.is-disabled:hover,
.button:disabled:hover {
    opacity: 0.5;
}

.buttons {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
}

.buttons.is-grouped-centered {
    justify-content: center;
}

/* Forms */
.field {
    margin-bottom: 0.75rem;
}

.field.has-addons {
    display: flex;
}

.control {
    box-sizing: border-box;
    clear: both;
    font-size: 1rem;
    position: relative;
    text-align: inherit;
}

.control.is-expanded {
    flex-grow: 1;
    flex-shrink: 1;
}

.input {
    background-color: #fff;
    border-color: #dbdbdb;
    border-radius: 4px;
    color: #363636;
    box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05);
    max-width: 100%;
    width: 100%;
    align-items: center;
    border: 1px solid transparent;
    border-radius: 4px;
    display: inline-flex;
    font-size: 1rem;
    height: 2.5em;
    justify-content: flex-start;
    line-height: 1.5;
    padding-bottom: calc(0.5em - 1px);
    padding-left: calc(0.75em - 1px);
    padding-right: calc(0.75em - 1px);
    padding-top: calc(0.5em - 1px);
    position: relative;
    vertical-align: top;
}

.input.is-large {
    font-size: 1.5rem;
    height: 3em;
    padding-left: 1em;
    padding-right: 1em;
}

.textarea {
    background-color: #fff;
    border-color: #dbdbdb;
    border-radius: 4px;
    color: #363636;
    box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05);
    display: block;
    max-width: 100%;
    min-width: 100%;
    padding: calc(0.75em - 1px);
    resize: vertical;
    outline: none;
    resize: both;
}

.label {
    color: #363636;
    display: block;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 0.5em;
}

/* Typography */
.title {
    color: #363636;
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.125;
    word-break: break-word;
    word-wrap: break-word;
}

.title.is-2 {
    font-size: 2.5rem;
}

.title.is-3 {
    font-size: 2rem;
}

.title.is-4 {
    font-size: 1.5rem;
}

.title.is-5 {
    font-size: 1.25rem;
}

.subtitle {
    color: #4a4a4a;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.25;
    word-break: break-word;
    word-wrap: break-word;
}

.subtitle.is-5 {
    font-size: 1.25rem;
}

.heading {
    color: #363636;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.125;
}

/* Modals */
.modal {
    bottom: 0;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    align-items: center;
    display: none;
    justify-content: center;
    overflow: hidden;
    position: fixed;
    z-index: 40;
}

.modal.is-active {
    display: flex;
}

.modal-background {
    bottom: 0;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    background-color: rgba(10, 10, 10, 0.86);
}

.modal-card {
    margin: 0 20px;
    max-height: calc(100vh - 160px);
    overflow: auto;
    position: relative;
    width: 100%;
    max-width: 500px;
}

.modal-card-head {
    background-color: #f5f5f5;
    border-bottom: 1px solid #dbdbdb;
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    align-items: center;
    display: flex;
    flex-shrink: 0;
    justify-content: flex-start;
    padding: 20px;
    position: relative;
}

.modal-card-title {
    color: #363636;
    flex-grow: 1;
    flex-shrink: 0;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1;
}

.modal-card-body {
    background-color: #fff;
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    padding: 20px;
}

.modal-card-foot {
    background-color: #f5f5f5;
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    border-top: 1px solid #dbdbdb;
    align-items: center;
    display: flex;
    flex-shrink: 0;
    justify-content: flex-start;
    padding: 20px;
    position: relative;
}

.delete {
    background-color: rgba(10, 10, 10, 0.2);
    border: none;
    border-radius: 9999px;
    cursor: pointer;
    pointer-events: auto;
    display: inline-block;
    flex-grow: 0;
    flex-shrink: 0;
    font-size: 0;
    height: 20px;
    max-height: 20px;
    max-width: 20px;
    min-height: 20px;
    min-width: 20px;
    outline: none;
    position: relative;
    vertical-align: top;
    width: 20px;
}

.delete::before,
.delete::after {
    background-color: #fff;
    content: "";
    display: block;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translateX(-50%) translateY(-50%) rotate(45deg);
    transform-origin: center center;
}

.delete::before {
    height: 2px;
    width: 16px;
}

.delete::after {
    height: 16px;
    width: 2px;
}

.delete:hover {
    background-color: rgba(10, 10, 10, 0.3);
}

/* Box */
.box {
    background-color: #fff;
    border-radius: 6px;
    box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02);
    color: #4a4a4a;
    display: block;
    padding: 1.25rem;
}

/* Content */
.content {
    color: #4a4a4a;
}

.content h1,
.content h2,
.content h3,
.content h4,
.content h5,
.content h6 {
    color: #363636;
    font-weight: 600;
    line-height: 1.125;
}

.content h1 {
    font-size: 2em;
    margin-bottom: 0.5em;
}

.content h2 {
    font-size: 1.75em;
    margin-bottom: 0.5714em;
}

.content h3 {
    font-size: 1.5em;
    margin-bottom: 0.6666em;
}

.content h4 {
    font-size: 1.25em;
    margin-bottom: 0.8em;
}

.content h5 {
    font-size: 1.125em;
    margin-bottom: 0.8888em;
}

.content h6 {
    font-size: 1em;
    margin-bottom: 1em;
}

.content ul {
    list-style: disc outside;
    margin-left: 2em;
    margin-top: 1em;
}

/* Notifications */
.notification {
    background-color: #f5f5f5;
    border-radius: 4px;
    position: relative;
    padding: 1.25rem 2.5rem 1.25rem 1.5rem;
}

.notification.is-info {
    background-color: #eff5fb;
    border-left: 4px solid var(--color-primary);
}

.notification.is-success {
    background-color: #effaf3;
    border-left: 4px solid var(--color-correct);
}

.notification.is-warning {
    background-color: #fffbeb;
    border-left: 4px solid var(--color-present);
}

.notification.is-danger {
    background-color: #feecf0;
    border-left: 4px solid #f14668;
}

.notification.is-light {
    background-color: #fafafa;
    color: rgba(0, 0, 0, 0.7);
}

/* Icons */
.icon {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    height: 1.5rem;
    width: 1.5rem;
}

.icon.is-small {
    height: 1rem;
    width: 1rem;
}

.icon.is-medium {
    height: 2rem;
    width: 2rem;
}

.icon.is-large {
    height: 3rem;
    width: 3rem;
}

/* Image */
.image {
    display: block;
    position: relative;
}

.image.is-inline-block {
    display: inline-block;
}

.image img {
    display: block;
    height: auto;
    width: 100%;
}

.image.is-inline-block img {
    display: inline-block;
}

/* Spacing */
.mb-2 {
    margin-bottom: 0.5rem !important;
}

.mb-3 {
    margin-bottom: 1rem !important;
}

.mb-4 {
    margin-bottom: 1.333rem !important;
}

.mb-5 {
    margin-bottom: 1.666rem !important;
}

.mt-2 {
    margin-top: 0.5rem !important;
}

.mt-3 {
    margin-top: 1rem !important;
}

.is-size-7 {
    font-size: 0.75rem !important;
}

/* Background Colors */
.has-background-warning {
    background-color: #ffdd57 !important;
}

.has-background-info {
    background-color: #3e8ed0 !important;
}

.has-background-primary {
    background-color: #3273dc !important;
}

.has-background-success {
    background-color: #48c774 !important;
}

/* ===== FONT AWESOME ICONS (Local SVG) ===== */

/* Font Awesome Base */
.fa {
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-stretch: normal;
    line-height: 1;
    font-family: 'Font Awesome 6 Free';
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Icon Sizes */
.fa.is-small {
    font-size: 0.75rem;
}

.fa.is-medium {
    font-size: 1.25rem;
}

.fa.is-large {
    font-size: 2rem;
}

/* Specific Icons as Inline SVG */
.icon i.fas.fa-info-circle::before {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23ffffff' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E");
    width: 1em;
    height: 1em;
    display: inline-block;
}

.icon i.fas.fa-question-circle::before {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23ffffff' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 400c-18.538 0-32-15.053-32-32.42 0-17.368 13.462-32.42 32-32.42s32 15.052 32 32.42c0 17.367-13.462 32.42-32 32.42zm38.443-150.707c-19.124 19.125-30.913 37.917-30.913 62.134 0 8.835-7.164 16-16 16s-16-7.165-16-16c0-38.814 19.75-68.293 44.79-93.333 18.01-18.01 24.355-30.667 24.355-41.667 0-23.196-18.804-42-42-42s-42 18.804-42 42c0 8.835-7.164 16-16 16s-16-7.165-16-16c0-41.017 33.383-74 74-74s74 32.983 74 74c0 19.125-9.817 37.917-25.237 54.667z'/%3E%3C/svg%3E");
    width: 1em;
    height: 1em;
    display: inline-block;
}

.icon i.fas.fa-chart-bar::before {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23ffffff' d='M24 32h16v432H24V32zm64 96h16v336H88V128zm64 160h16v176h-16V288zm64-32h16v208h-16V256zm64 64h16v144h-16V320z'/%3E%3C/svg%3E");
    width: 1em;
    height: 1em;
    display: inline-block;
}

.icon i.fas.fa-puzzle-piece::before {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23ffffff' d='M192 104.8c0-9.2-5.8-17.3-13.2-22.8L64 0c-3.6-1.8-7.4-2.6-11.3-2.6C33.2 0 24 15.8 24 35.3V160h72.8c9.2 0 17.3 5.8 22.8 13.2l22.8 45.6c7.4 14.8 22.8 24.8 40.8 24.8h121.6c18 0 33.4-10 40.8-24.8l22.8-45.6c5.5-7.4 13.6-13.2 22.8-13.2H432v-64c0-19.5-9.2-35.3-28.7-35.3-3.9 0-7.7.8-11.3 2.6L277.2 82c-7.4 5.5-13.2 13.6-13.2 22.8v48.8h-72V104.8zM432 288h-72.8c-9.2 0-17.3-5.8-22.8-13.2l-22.8-45.6c-7.4-14.8-22.8-24.8-40.8-24.8H151.2c-18 0-33.4 10-40.8 24.8L87.6 274.8c-5.5 7.4-13.6 13.2-22.8 13.2H0v128c0 19.5 9.2 35.3 28.7 35.3 3.9 0 7.7-.8 11.3-2.6l114.8-82c7.4-5.5 13.2-13.6 13.2-22.8V296h72v48.8c0 9.2 5.8 17.3 13.2 22.8l114.8 82c3.6 1.8 7.4 2.6 11.3 2.6 19.5 0 28.7-15.8 28.7-35.3V320h-72.8c-9.2 0-17.3-5.8-22.8-13.2l-22.8-45.6c-7.4-14.8-22.8-24.8-40.8-24.8H232c-18 0-33.4 10-40.8 24.8l-22.8 45.6c-5.5 7.4-13.6 13.2-22.8 13.2H72v64c0 19.5 9.2 35.3 28.7 35.3 3.9 0 7.7-.8 11.3-2.6l114.8-82c7.4-5.5 13.2-13.6 13.2-22.8V296h72v48.8z'/%3E%3C/svg%3E");
    width: 1em;
    height: 1em;
    display: inline-block;
}

.icon i.fas.fa-chevron-left::before {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='%23ffffff' d='M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z'/%3E%3C/svg%3E");
    width: 1em;
    height: 1em;
    display: inline-block;
}

.icon i.fas.fa-chevron-right::before {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='%23ffffff' d='M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z'/%3E%3C/svg%3E");
    width: 1em;
    height: 1em;
    display: inline-block;
}

.icon i.fas.fa-lightbulb::before {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath fill='%23ffffff' d='M176 0C73.019 0 0 82.015 0 176c0 44.38 16.018 84.905 42.26 115.836L176 455.063l133.74-163.227C336.018 260.905 352 220.38 352 176 352 82.015 278.981 0 176 0zm0 320c-35.346 0-64-28.654-64-64s28.654-64 64-64 64 28.654 64 64-28.654 64-64 64z'/%3E%3C/svg%3E");
    width: 1em;
    height: 1em;
    display: inline-block;
}

.icon i.fas.fa-eye::before {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='%23ffffff' d='M288 32c-80.02 0-158.405 36.135-214.874 94.435C16.657 184.735 0 238.42 0 288c0 49.58 16.657 103.265 73.126 161.565C129.595 507.865 207.98 544 288 544s158.405-36.135 214.874-94.435C559.343 391.265 576 337.58 576 288c0-49.58-16.657-103.265-73.126-161.565C446.405 68.135 367.02 32 288 32zm0 160c-35.346 0-64-28.654-64-64s28.654-64 64-64 64 28.654 64 64-28.654 64-64 64z'/%3E%3C/svg%3E");
    width: 1em;
    height: 1em;
    display: inline-block;
}

.icon i.fas.fa-copy::before {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23ffffff' d='M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h168c13.255 0 24-10.745 24-24V128H344c-13.255 0-24-10.745-24-24zm120.971-31.029L375.029 7.029C371.243 3.243 365.97 0 360.186 0H352v96h96v-8.186c0-5.784-3.243-11.057-7.029-14.843z'/%3E%3C/svg%3E");
    width: 1em;
    height: 1em;
    display: inline-block;
}

.icon i.fab.fa-twitter::before {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23ffffff' d='M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z'/%3E%3C/svg%3E");
    width: 1em;
    height: 1em;
    display: inline-block;
}

/* ===== CUSTOM DAILY FRAME GAMES STYLES ===== */

.game-container {
    max-width: 600px;
    margin: 0 auto;
    padding: 1rem;
}

.game-header {
    background: white;
    padding: 2rem;
    border-radius: 12px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    margin-bottom: 2rem;
}

/* Navigation Buttons in Header */
.game-header .button.is-outlined {
    border-color: var(--color-primary);
    color: var(--color-primary);
    font-weight: 600;
}

.game-header .button.is-outlined:hover:not(:disabled) {
    background: var(--color-primary);
    color: white;
}

.game-header .button.is-outlined:disabled,
.game-header .button.is-outlined.is-disabled {
    border-color: #dbdbdb;
    color: #b5b5b5;
    opacity: 0.5;
    cursor: not-allowed;
}

.game-board {
    background: white;
    padding: 2rem;
    border-radius: 12px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* Puzzle Image */
.puzzle-container img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Answer Template */
.answer-template {
    display: flex;
    justify-content: center;
    margin: 1.5rem 0;
}

.answer-tiles {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px;
}

.answer-tile {
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #dbdbdb;
    border-radius: 4px;
    font-size: 1.2rem;
    font-weight: bold;
    color: #999;
    background: #f5f5f5;
}

.answer-tile.space {
    width: 15px;
    border: none;
    background: transparent;
}

.answer-tile.correct {
    background: var(--color-correct);
    border-color: var(--color-correct);
    color: white;
}

/* Guess Tiles */
.guess-tiles {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: center;
    margin-top: 0.5rem;
}

.guess-tile {
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #dbdbdb;
    border-radius: 4px;
    font-size: 1rem;
    font-weight: bold;
    text-transform: uppercase;
    transition: all 0.3s ease;
}

.guess-tile.correct {
    background: var(--color-correct);
    border-color: var(--color-correct);
    color: white;
}

.guess-tile.present {
    background: var(--color-present);
    border-color: var(--color-present);
    color: #333;
}

.guess-tile.absent {
    background: var(--color-absent);
    border-color: var(--color-absent);
    color: #666;
}

.guess-tile.flip {
    animation: flipTile 0.5s ease;
}

@keyframes flipTile {
    0% {
        transform: rotateX(0);
    }

    50% {
        transform: rotateX(90deg);
    }

    100% {
        transform: rotateX(0);
    }
}

/* Pattern Tiles (for masked answer) */
.answer-pattern-tiles {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: center;
}

.pattern-tile {
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #dbdbdb;
    border-radius: 4px;
    font-size: 1.5rem;
    font-weight: bold;
    background: var(--color-absent);
    color: #666;
}

.pattern-tile.space {
    width: 15px;
    border: none;
    background: transparent;
}

/* Guess Item */
.guess-item {
    padding: 0.75rem;
    background: #f5f5f5;
    border-radius: 8px;
}

.attempt-label {
    font-size: 0.875rem;
    color: #666;
    margin-bottom: 0.5rem;
    text-align: center;
}

/* Guesses Container */
.guesses-container {
    max-height: 400px;
    overflow-y: auto;
}

#guessesList {
    max-height: 350px;
    overflow-y: auto;
}

/* Input Section */
.input-section .input {
    text-align: center;
    font-weight: 600;
}

/* Game Status */
.game-status {
    margin-top: 1.5rem;
}

/* Enhanced Hint Button Styling */
.hint-button-enhanced {
    border-width: 3px !important;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.hint-button-enhanced:hover {
    border-width: 3px !important;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

/* Navbar Enhancement */
.navbar.is-link {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

/* Loading State */
.is-loading {
    pointer-events: none;
    opacity: 0.6;
}

/* Scrollbar Styling */
.guesses-container::-webkit-scrollbar,
#guessesList::-webkit-scrollbar {
    width: 8px;
}

.guesses-container::-webkit-scrollbar-track,
#guessesList::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.guesses-container::-webkit-scrollbar-thumb,
#guessesList::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 4px;
}

.guesses-container::-webkit-scrollbar-thumb:hover,
#guessesList::-webkit-scrollbar-thumb:hover {
    background: #555;
}

/* Responsive Design */
@media (max-width: 768px) {
    .game-container {
        padding: 0.5rem;
    }

    .game-header,
    .game-board {
        padding: 1rem;
    }

    .answer-tile,
    .guess-tile,
    .pattern-tile {
        width: 30px;
        height: 30px;
        font-size: 0.9rem;
    }

    .puzzle-container img {
        max-width: 280px;
    }
}

/* Animations */
@keyframes slideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* Trivia Promo Modal */
#triviaPromoModal .modal-card {
    border-radius: 12px;
    overflow: hidden;
}

#triviaPromoModal .modal-card-body figure.image {
    display: flex;
    justify-content: center;
}

#triviaPromoModal .modal-card-body figure.image img {
    max-width: 100%;
    height: auto;
}

/* Global Stats Container */
#globalStatsContainer {
    margin-top: 1rem;
}

#globalStatsContainer .box {
    background: #f8f9fa;
    border: 1px solid #e9ecef;
}

#globalStatsContainer .heading {
    color: #666;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
