/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-bn0s4au7u3] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-bn0s4au7u3] {
    flex: 1;
}

.sidebar[b-bn0s4au7u3] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row[b-bn0s4au7u3] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-bn0s4au7u3]  a, .top-row[b-bn0s4au7u3]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-bn0s4au7u3]  a:hover, .top-row[b-bn0s4au7u3]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-bn0s4au7u3]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-bn0s4au7u3] {
        justify-content: space-between;
    }

    .top-row[b-bn0s4au7u3]  a, .top-row[b-bn0s4au7u3]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-bn0s4au7u3] {
        flex-direction: row;
    }

    .sidebar[b-bn0s4au7u3] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-bn0s4au7u3] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-bn0s4au7u3]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-bn0s4au7u3], article[b-bn0s4au7u3] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-bn0s4au7u3] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-bn0s4au7u3] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-vp8216bma9] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-vp8216bma9] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-vp8216bma9] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-vp8216bma9] {
    font-size: 1.1rem;
}

.bi[b-vp8216bma9] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-vp8216bma9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-vp8216bma9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-vp8216bma9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item[b-vp8216bma9] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-vp8216bma9] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-vp8216bma9] {
        padding-bottom: 1rem;
    }

    .nav-item[b-vp8216bma9]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
    }

.nav-item[b-vp8216bma9]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-vp8216bma9]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

.nav-scrollable[b-vp8216bma9] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-vp8216bma9] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-vp8216bma9] {
        display: none;
    }

    .nav-scrollable[b-vp8216bma9] {
        /* Never collapse the sidebar for wide screens */
        display: block;

        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Components/Pages/Landing.razor.rz.scp.css */
/* ------------------------------
   RESPONSIVE LANDING PAGE
--------------------------------*/





/* Banner wrapper */
.landing-banner[b-pgktmfssu7] {
    width: 80%;
    max-width: 400px; /* keeps banner reasonable on huge monitors */
    margin: 0 auto;
    border: none;
    border-radius: 10px;
    /* Maintain perfect aspect ratio (1548x842 ≈ 1.837:1) */
    aspect-ratio: 1548 / 842;
    /* Background behaviour */
    background-image: url('banner.png');
    background-size: contain; /* ensures 100% visible on all screens */
    background-repeat: no-repeat;
    background-position: center;
    
}

/* Hide bullets for specific list */
.landing-banner-section ul[b-pgktmfssu7] {
    list-style: none;
    padding-left: 0;
    margin-left: 0;
}

/* Reduce text sizes on small phones */
@media (max-width: 576px) {

    .landing-banner[b-pgktmfssu7] {
        width: 95%;
        max-width: 95vw;
    }

    .landing-description p[b-pgktmfssu7],
    .landing-description li[b-pgktmfssu7] {
        font-size: 0.95rem !important;
    }

    .landing-description h2[b-pgktmfssu7] {
        font-size: 1.2rem !important;
    }

    .btn-primary.btn-lg[b-pgktmfssu7] {
        font-size: 1rem;
        padding: 0.5rem 1rem;
    }
}

/* Scene preview responsiveness */
.scene-container[b-pgktmfssu7] {
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
}

.scene-container img[b-pgktmfssu7],
.scene-avatar-wrapper img[b-pgktmfssu7] {
    width: 100%;
    height: auto;
}

.preview-full[b-pgktmfssu7] {
    width: 100vw; /* full viewport width */
    max-width: 100%; /* prevents overflow in containers */
    height: auto; /* keep aspect ratio */
    display: block;
    margin: 0 auto; /* centre if inside container */
    border-radius: 8px;
    border: 3px solid #2b2b2b;
    object-fit: cover; /* makes sure it fills width nicely */
}
/* /Components/Subcompnents/Battleships.razor.rz.scp.css */
.bs-wrap[b-ijntozt99l]{
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: .5rem;
    box-sizing: border-box;
    /* Art-deco palette */
    --deco-brass: #c8a24a;
    --deco-ivory: #f5eed8;
    --deco-ink: rgba(10, 10, 12, .85);
    --deco-panel: rgba(0, 0, 0, .32);
    --deco-water1: rgba(11, 38, 64, .62);
    --deco-water2: rgba(7, 22, 38, .62);
    --deco-ship1: rgba(197, 162, 74, .95);
    --deco-ship2: rgba(121, 85, 18, .95);
}

.bs-header[b-ijntozt99l]{
    display:flex;
    align-items:baseline;
    justify-content: space-between;
    gap: .75rem;
    padding: .35rem .5rem;
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(0,0,0,.30), rgba(0,0,0,.18));
    box-shadow:
        inset 0 0 0 1px rgba(200, 162, 74, .35),
        inset 0 0 0 2px rgba(245, 238, 216, .08);
}

.bs-title[b-ijntozt99l]{
    font-family: 'Special Elite', serif;
    font-size: 1rem;
    color: var(--deco-ivory);
    letter-spacing: .08em;
    text-transform: uppercase;
    text-shadow: 0 1px 2px rgba(0,0,0,.75);
}

.bs-status[b-ijntozt99l]{
    font-family: 'Special Elite', serif;
    font-size: .9rem;
    color: var(--deco-ivory);
    opacity: .92;
    letter-spacing: .04em;
    text-shadow: 0 1px 2px rgba(0,0,0,.8);
}

/*
 Responsive grid:
 - keeps a square board and fits down to ~310x310.
 - uses available width/height inside the scene container.
*/
.bs-grid[b-ijntozt99l]{
    flex: 1;
    display: grid;
    gap: 0;

    width: min(100%, 310px);
    height: min(100%, 310px);

    max-width: 100%;
    max-height: 100%;

    align-self: center;
    justify-self: center;

    padding: 0;
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.22));
     backdrop-filter: blur(2px);
     box-sizing: border-box;
    box-shadow:
        inset 0 0 0 1px rgba(200, 162, 74, .35),
        0 6px 20px rgba(0,0,0,.35);
}

@media (min-width: 350px) {
    .bs-grid[b-ijntozt99l]{
        width: min(100%, 520px);
        height: min(100%, 520px);
        gap: 0;
        padding: 0;
    }
}

.bs-cell[b-ijntozt99l]{
    appearance: none;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 0;
    background: linear-gradient(180deg, var(--deco-water1), var(--deco-water2));

    width: 100%;
    height: 100%;

    padding: 0;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.bs-cell:hover:not(:disabled)[b-ijntozt99l]{
    filter: brightness(1.08);
}

.bs-cell:focus-visible[b-ijntozt99l]{
    outline: 2px solid rgba(200, 162, 74, .75);
    outline-offset: -2px;
}

.bs-cell:disabled[b-ijntozt99l]{
    cursor: default;
    opacity: 0.95;
}

.bs-cell.hit[b-ijntozt99l]{
    /* water behind the ship */
    background: linear-gradient(180deg, rgba(6, 18, 30, .55), rgba(10, 30, 48, .45));
    border-color: rgba(200, 162, 74, .22);
}

.bs-cell.miss[b-ijntozt99l]{
    background: linear-gradient(180deg, rgba(245, 238, 216, .12), rgba(245, 238, 216, .06));
    border-color: rgba(200, 162, 74, .18);
}

/* Ship styling: only applied to HIT ship cells (we add .seg classes in markup). */
.bs-cell.hit.seg[b-ijntozt99l]::before{
    content: "";
    position: absolute;
    inset: 8%;
    /* Brass/wood art-deco ship */
    background: linear-gradient(180deg, var(--deco-ship1), var(--deco-ship2));
    box-shadow:
        inset 0 0 0 1px rgba(245, 238, 216, .22),
        inset 0 0 0 2px rgba(0, 0, 0, .18),
        0 1px 2px rgba(0,0,0,.45);
}

/* Body segments */
.bs-cell.hit.seg.body.h[b-ijntozt99l]::before,
.bs-cell.hit.seg.body.v[b-ijntozt99l]::before{
    border-radius: 3px;
}

/* Horizontal bow (pointing left) */
.bs-cell.hit.seg.bow.left[b-ijntozt99l]::before{
    border-radius: 3px;
    /* Make the bow visibly pointed */
    clip-path: polygon(0% 50%, 35% 0%, 100% 0%, 100% 100%, 35% 100%);
}

/* Vertical bow (pointing up) */
.bs-cell.hit.seg.bow.up[b-ijntozt99l]::before{
    border-radius: 3px;
    clip-path: polygon(50% 0%, 100% 35%, 100% 100%, 0% 100%, 0% 35%);
}

/* (Other bow directions aren't currently produced by the segment logic, but keep them reasonable.) */
.bs-cell.hit.seg.bow.right[b-ijntozt99l]::before{
    border-radius: 3px;
    clip-path: polygon(0% 0%, 65% 0%, 100% 50%, 65% 100%, 0% 100%);
}

.bs-cell.hit.seg.bow.down[b-ijntozt99l]::before{
    border-radius: 3px;
    clip-path: polygon(0% 0%, 100% 0%, 100% 65%, 50% 100%, 0% 65%);
}

/* Horizontal stern (right end) */
.bs-cell.hit.seg.stern.right[b-ijntozt99l]::before{
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
}

/* Vertical stern (bottom end) */
.bs-cell.hit.seg.stern.down[b-ijntozt99l]::before{
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
}

/* Single-cell ship */
.bs-cell.hit.seg.single[b-ijntozt99l]::before{
    border-radius: 999px;
}

/* Remove dots/portholes overlay */
.bs-cell.hit.seg[b-ijntozt99l]::after{ content: none; }
/* /Components/Subcompnents/BlockBlast.razor.rz.scp.css */
/* ===============================
   BlockBlast.razor.css
   1930s Art-Deco Sepia Edition
   =============================== */

.bb-wrap[b-tang547y58] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    height: 100%;
    max-height: 100vh;
    box-sizing: border-box;
    font-family: "Garamond", "Segoe UI", serif;
    padding: 0.5rem;
    gap: 0.8rem;
    background: rgba(0, 0, 0, 0.4);
    color: #2b2b2b;
}


/* -------------------
   Board and Grid
------------------- */
/* The board now takes 65% of height and remains square */
.bb-board[b-tang547y58] {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.4);
    
    box-shadow: 0 0 18px rgba(0, 0, 0, 0.3), inset 0 0 12px rgba(255, 255, 255, 0.4);
}

/* Force grid inside board to respect new height */
.bb-grid[b-tang547y58] {
    display: grid;
    width: 100%;
    height: 100%;
    grid-template-columns: repeat(10, 1fr);
    gap: 0.4%;
    background: rgba(0,0,0,0.35);
    padding: 0.5%;
    border-radius: 1%;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
}
.bb-cell[b-tang547y58] {
    background: rgba(255,255,255,0.07);
    border-radius: 10%;
    box-shadow: inset 0 0 0.5vmin rgba(0,0,0,0.3);
    transition: background 0.15s ease, transform 0.1s ease;
}

.bb-clearing[b-tang547y58] {
    animation: fadeout-b-tang547y58 0.35s ease forwards;
    box-shadow: 0 0 10px #d9b95b, 0 0 20px #d9b95b inset;
}

@keyframes fadeout-b-tang547y58 {
    0% {
        opacity: 1;
        transform: scale(1);
        filter: brightness(1.1);
    }

    50% {
        opacity: 0.6;
        transform: scale(1.2);
        filter: brightness(1.4);
    }

    100% {
        opacity: 0;
        transform: scale(0.7);
        filter: brightness(0.7);
    }
}


.bb-board[b-tang547y58] {
    touch-action: none; /* prevent browser scrolling while dragging */
    position: relative;
}


.bb-fill[b-tang547y58] {
    position: relative;
}

/* -------------------
   Ghost Placement
------------------- */
.bb-ghost[b-tang547y58] {
  pointer-events: none;  /* ensure ghost doesn’t block touches */
  position: absolute;
  inset: 0;
  z-index: 5;
}
.bb-ghost-cell[b-tang547y58] {
    position: absolute;
    width: 9.4%;
    height: 9.4%;
    top: calc(var(--r) * 10%);
    left: calc(var(--c) * 10%);
    border-radius: 10%;
    opacity: 0.5;
    transition: opacity 0.1s ease;
}

.bb-ghost-cell.ok[b-tang547y58] {
    background: radial-gradient(circle, rgba(255,255,255,0.7) 0%, rgba(200,180,130,0.6) 70%);
    box-shadow: 0 0 10px rgba(255,240,180,0.8);
}

.bb-ghost-cell.bad[b-tang547y58] {
    background: radial-gradient(circle, rgba(255,100,100,0.5) 0%, rgba(180,60,60,0.6) 70%);
    box-shadow: 0 0 6px rgba(255,100,100,0.8);
}

/* -------------------
   Tray and Pieces
------------------- */
.bb-tray[b-tang547y58] {
    flex: 0 0 auto;
    position: absolute;
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    width: 98%;
    background: rgba(227, 218, 192, 0.5);
    border: 1px solid #b79b61;
    border-radius: 6px;
    box-shadow: inset 0 2px 3px rgba(255,255,255,0.3), 0 3px 8px rgba(0,0,0,0.25);
    z-index: 90;
    padding: 12px;
}

.bb-piece[b-tang547y58] {
    background: #1e1c18;
    padding: 0.6rem;
    border-radius: 10px;
    border: 1px solid #444;
    cursor: grab;
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.25);
    transition: transform 0.15s ease;
}

    .bb-piece:hover[b-tang547y58] {
        transform: translateY(-3px);
    }

    .bb-piece:active[b-tang547y58] {
        cursor: grabbing;
    }

    .bb-piece.sel[b-tang547y58] {
        outline: 3px solid #d9b95b;
        box-shadow: 0 0 12px rgba(217, 185, 91, 0.8);
    }

.bb-piece-grid[b-tang547y58] {
    display: grid;
    gap: 0.2rem;
}

.bb-mini[b-tang547y58] {
    width: 22px;
    height: 22px;
    border-radius: 3px;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.35);
}

    .bb-mini.empty[b-tang547y58] {
        background: transparent;
        box-shadow: none;
    }



/* -------------------
   Controls
------------------- */
/* Controls below tray */
.bb-controls[b-tang547y58] {
    flex: 0 0 auto;
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 0.5rem;
}

.bb-btn[b-tang547y58] {
    padding: 0.5rem 0.9rem;
    border-radius: 10px;
    border: 1px solid #1b1b1b;
    background: linear-gradient(to bottom, #2b7cff, #1d58b0);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
    font-size: clamp(0.6rem, 2.5vmin, 1rem);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

    .bb-btn:hover[b-tang547y58] {
        background: linear-gradient(to bottom, #3a8aff, #276ad4);
    }

.bb-stat[b-tang547y58] {
    font-size: 1rem;
    color: #2b2b2b;
    font-weight: 500;
}

/* -------------------
   Art-Deco Colour Palette
------------------- */
.t1[b-tang547y58] {
    background: #c2a67d;
}
/* warm brass / parchment tan */
.t2[b-tang547y58] {
    background: #7b9c89;
}
/* dusty sage green */
.t3[b-tang547y58] {
    background: #a45b5b;
}
/* aged burgundy red */
.t4[b-tang547y58] {
    background: #5a7a8c;
}
/* faded teal blue */
.t5[b-tang547y58] {
    background: #9c86ad;
}
/* antique lavender */
.t6[b-tang547y58] {
    background: #b07c4f;
}
/* burnished copper / ochre */

/* Slight inner glow on filled tiles */
.t1[b-tang547y58], .t2[b-tang547y58], .t3[b-tang547y58], .t4[b-tang547y58], .t5[b-tang547y58], .t6[b-tang547y58] {
    box-shadow: inset 0 0 4px rgba(0,0,0,0.35), inset 0 0 10px rgba(255,255,255,0.2);
}

/* -------------------
   Responsive Tweaks
------------------- */
@media (max-width: 600px) {
    .bb-mini[b-tang547y58] {
        width: 18px;
        height: 18px;
    }

    .bb-tray[b-tang547y58] {
        min-height: 80px;
        padding: 0.4rem;
    }

    .bb-btn[b-tang547y58] {
        font-size: 0.8rem;
    }
}
/* /Components/Subcompnents/BubbleShooter.razor.rz.scp.css */
/* BubbleShooter.razor.css */

/* Root container */
.bs-root[b-8dcafak1ef] {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    font-family: "Cinzel", "Cormorant Garamond", "Georgia", serif;
    background: #f4efe2;
    border-radius: 12px;
    border: 4px double #a47a2a;
    box-shadow: inset 0 0 18px rgba(0,0,0,0.25);
    box-sizing: border-box;
    gap: 0.4rem;
    color: #2b2520;
}

/* Main Art-Deco frame */
.bs-frame[b-8dcafak1ef] {
    position: absolute;
    inset: 0;
    background: rgba(64, 64, 64, 0.5);
    border: 4px solid #f5d48a;
    box-shadow: 0 0 0 2px #2a2014, 0 0 30px rgba(0,0,0,0.9);
    display: flex;
    flex-direction: column;
    color: #fce9b6;
    overflow: hidden;
}

/* Deco corners */
.bs-corner[b-8dcafak1ef] {
    position: absolute;
    width: 12%;
    height: 12%;
    border-color: #f5d48a;
    border-style: solid;
    pointer-events: none;
}

.bs-corner-tl[b-8dcafak1ef] {
    top: 2%;
    left: 2%;
    border-width: 3px 0 0 3px;
}

.bs-corner-tr[b-8dcafak1ef] {
    top: 2%;
    right: 2%;
    border-width: 3px 3px 0 0;
}

.bs-corner-bl[b-8dcafak1ef] {
    bottom: 2%;
    left: 2%;
    border-width: 0 0 3px 3px;
}

.bs-corner-br[b-8dcafak1ef] {
    bottom: 2%;
    right: 2%;
    border-width: 0 3px 3px 0;
}

/* Header bar */
.bs-header[b-8dcafak1ef] {
    flex: 0 0 14%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2% 6%;
    border-bottom: 2px solid #f5d48a66;
    background: rgba(64,64,64,0.5);
    text-transform: uppercase;
    letter-spacing: 0.16em;
}

.bs-title[b-8dcafak1ef] {
    font-size: clamp(0.7rem, 1.4vw, 1.1rem);
    font-weight: 700;
}

.bs-score[b-8dcafak1ef] {
    display: flex;
    align-items: baseline;
    gap: 0.3rem;
    font-size: clamp(0.5rem, 1.1vw, 0.9rem);
}

    .bs-score span[b-8dcafak1ef] {
        font-size: clamp(0.8rem, 1.6vw, 1.3rem);
        font-weight: 700;
        color: #ffe9a0;
    }

/* Game board */
.bs-board[b-8dcafak1ef] {
    position: relative;
    flex: 1 1 auto;
    margin: 4% 10%;
    border: 2px solid #f5d48a88;
    border-radius: 12px;
    background: rgba(64,64,64,0.5);
    overflow: hidden;
}

/* Shooter area */
.bs-shooter[b-8dcafak1ef] {
    position: absolute;
    left: 50%;
    bottom: 2.5%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    pointer-events: none;
    z-index: 5;
}

.bs-shooter-label[b-8dcafak1ef] {
    font-size: clamp(0.45rem, 1vw, 0.7rem);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    opacity: 0.85;
}

/* Bubble base class */
.bs-bubble[b-8dcafak1ef] {
    position: absolute;
    border-radius: 50%;
    display: block;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.4), 0 0 8px rgba(0,0,0,0.4);
}

    /* Shared bubble glossy highlight */
    .bs-bubble[b-8dcafak1ef]::after {
        content: "";
        position: absolute;
        inset: 20% 20% auto auto;
        width: 28%;
        height: 28%;
        border-radius: 50%;
        background: radial-gradient(circle at 20% 20%, #fffff5cc, transparent 70%);
        opacity: 0.85;
    }

/* Next bubble preview */
.bs-next[b-8dcafak1ef] {
    width: 9% !important;
    height: 9% !important;
    top: 2%;
    left: 46%;
    z-index: 9;
}

/* Falling bubble sits on top */
.bs-bubble-falling[b-8dcafak1ef] {
    z-index: 4;
    pointer-events: none;
}

/* 1930s Bakelite / Sepia colour palette */
.bs-bubble-ruby[b-8dcafak1ef] {
    background: radial-gradient(circle at 28% 28%, #e2a09a 0%, #b2453b 52%, #4a1714 100%);
    filter: sepia(0.28) saturate(1.05) contrast(1.05);
}

.bs-bubble-sapphire[b-8dcafak1ef] {
    background: radial-gradient(circle at 28% 28%, #b7cde0 0%, #416489 52%, #0f1e2a 100%);
    filter: sepia(0.38) saturate(1.0) contrast(1.06);
}

.bs-bubble-emerald[b-8dcafak1ef] {
    background: radial-gradient(circle at 28% 28%, #b9d9b1 0%, #4f8b59 52%, #1a2f1c 100%);
    filter: sepia(0.32) saturate(0.98) contrast(1.05);
}

.bs-bubble-topaz[b-8dcafak1ef] {
    background: radial-gradient(circle at 28% 28%, #f2d09a 0%, #c27e2a 52%, #5b3412 100%);
    filter: sepia(0.5) saturate(1.02) contrast(1.06);
}

.bs-bubble-amethyst[b-8dcafak1ef] {
    background: radial-gradient(circle at 28% 28%, #dcc5ea 0%, #6e4197 52%, #261235 100%);
    filter: sepia(0.34) saturate(1.02) contrast(1.06);
}

.bs-bubble-pearl[b-8dcafak1ef] {
    background: radial-gradient(circle at 28% 28%, #fff8ea 0%, #d7d0c2 52%, #7f786b 100%);
    filter: sepia(0.45) brightness(0.98) contrast(1.05);
}

/* Shooter bubble */
.bs-bubble-current[b-8dcafak1ef] {
    width: 140%;
    height: 140%;
    transform: translateY(-10%);
    box-shadow: 0 0 0 1px rgba(0,0,0,0.9), 0 0 12px rgba(255,229,160,0.45);
}

/* Clickable columns */
.bs-column-hitbox[b-8dcafak1ef] {
    position: absolute;
    top: 0;
    bottom: 0;
    background: transparent;
    padding: 0;
    margin: 0;
    border: none;
    cursor: pointer;
    outline: none;
    z-index: 10;
}

    .bs-column-hitbox:hover[b-8dcafak1ef],
    .bs-column-hitbox:focus-visible[b-8dcafak1ef] {
        background: linear-gradient(to bottom, rgba(245,212,138,0.14), transparent);
    }

/* Footer */
.bs-footer[b-8dcafak1ef] {
    flex: 0 0 12%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding-inline: 4%;
    border-top: 2px solid #f5d48a66;
    background: linear-gradient(to right, #1b1510, #251812, #1b1510);
    font-size: clamp(0.45rem, 0.9vw, 0.7rem);
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.bs-footer-line[b-8dcafak1ef] {
    flex: 1;
    height: 2px;
    background-image: linear-gradient(to right, transparent, #f5d48a, transparent);
}

.bs-footer-text[b-8dcafak1ef] {
    white-space: nowrap;
    opacity: 0.85;
}

/* Pop animation */
@keyframes bs-pop-b-8dcafak1ef {
    0% {
        transform: scale(1);
        opacity: 1;
        filter: brightness(1);
    }

    40% {
        transform: scale(1.4);
        opacity: 1;
        filter: brightness(1.6);
    }

    100% {
        transform: scale(0.3);
        opacity: 0;
        filter: brightness(2);
    }
}

.bs-bubble-pop[b-8dcafak1ef] {
    animation: bs-pop-b-8dcafak1ef 250ms ease-out forwards;
    z-index: 25;
    pointer-events: none;
}
/* /Components/Subcompnents/CircuitConnect.razor.rz.scp.css */
/* -----------------------------------------
   ROOT WRAPPER
----------------------------------------- */
.cc-wrap[b-douvazl2uh] {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: 0.5rem;
    background: rgba(64, 64, 64, 0.5);
    border-radius: 12px;
    border: 4px double #6e5730;
    font-family: "Cinzel", "Cormorant Garamond", "Georgia", serif;
    color: #2b251c;
    gap: 0.4rem;
}

    /* Disabled overlay state */
    .cc-wrap.cc-disabled[b-douvazl2uh] {
        justify-content: center;
        align-items: center;
        cursor: pointer;
    }

.cc-message[b-douvazl2uh] {
    font-size: clamp(1rem, 4vmin, 1.8rem);
    text-align: center;
    opacity: 0.7;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* -----------------------------------------
   GRID BOARD
----------------------------------------- */
.cc-board[b-douvazl2uh] {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(6, 1fr); /* dynamic if needed */
    grid-template-rows: repeat(6, 1fr);
    gap: 3px;
    padding: 6px;
    background: rgba(64, 64, 64, 0.5);
    border-radius: 10px;
    box-shadow: inset 0 0 12px rgba(0, 0, 0, 0.6);
    box-sizing: border-box;
}

/* -----------------------------------------
   FOOTER PANEL
----------------------------------------- */
.cc-footer[b-douvazl2uh] {
    flex: 0 0 auto;
    display: flex;
    gap: 0.6rem;
    align-items: center;
    justify-content: space-between;
    padding: 0.4rem 0.6rem;
    background: linear-gradient(to right, #2a2119, #38291b, #2a2119);
    border-radius: 9px;
    border: 2px solid #8d6c3a;
    box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.45);
    color: #f7e6c4;
    font-size: clamp(0.7rem, 2.5vmin, 1rem);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.cc-footer-section[b-douvazl2uh] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.cc-label[b-douvazl2uh] {
    opacity: 0.7;
}

.cc-value[b-douvazl2uh] {
    font-size: 1.1em;
    font-weight: 700;
}

.cc-btn[b-douvazl2uh] {
    padding: 0.35rem 0.8rem;
    border-radius: 999px;
    border: 2px solid #f3d58f;
    background: radial-gradient(circle at 40% 30%, #f4e0ac, #b48633);
    color: #2b251c;
    font-size: clamp(0.7rem, 2.4vmin, 1rem);
    font-weight: 700;
    letter-spacing: 0.12em;
    cursor: pointer;
    text-transform: uppercase;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.45), inset 0 1px 2px rgba(255, 255, 255, 0.5);
    white-space: nowrap;
}

    .cc-btn:active[b-douvazl2uh] {
        transform: scale(0.96);
    }

/* -----------------------------------------
   CELL STYLING
----------------------------------------- */
.cc-cell[b-douvazl2uh] {
    position: relative;
    padding: 0;
    margin: 0;
    border: none;
    outline: none;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 30% 20%, #534233, #302519);
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.6), inset 0 0 4px rgba(0,0,0,0.8);
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}

    .cc-cell:hover[b-douvazl2uh] {
        transform: translateY(-1px);
        box-shadow: 0 3px 8px rgba(0,0,0,0.7), inset 0 0 5px rgba(0,0,0,0.9);
    }

    /* Wire tile (not empty) */
    .cc-cell.cc-wire[b-douvazl2uh] {
        background: radial-gradient(circle at 30% 20%, #5c4a3b, #2b2117);
    }

    /* Completed board lock */
    .cc-cell.cc-complete[b-douvazl2uh] {
        cursor: default;
        opacity: 0.95;
    }

/* -----------------------------------------
   INNER WIRES + NODE
----------------------------------------- */
.cc-inner[b-douvazl2uh] {
    position: relative;
    width: 100%;
    height: 100%;
}

/* Central node */
.cc-node[b-douvazl2uh] {
    position: absolute;
    inset: 35%;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 20%, #f4e0ac, #b1843a);
    box-shadow: 0 0 0 2px #493620, 0 0 8px rgba(0,0,0,0.7);
}

/* Wire segments */
.cc-seg[b-douvazl2uh] {
    position: absolute;
    background: linear-gradient(to bottom, #c7a874, #6b5435);
    box-shadow: inset 0 0 2px rgba(0,0,0,0.8);
    border-radius: 999px;
}

/* Up/Down/Left/Right segments */
.seg-u[b-douvazl2uh] {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 18%;
    height: 52%;
}

.seg-d[b-douvazl2uh] {
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 18%;
    height: 52%;
}

.seg-l[b-douvazl2uh] {
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 52%;
    height: 18%;
}

.seg-r[b-douvazl2uh] {
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 52%;
    height: 18%;
}

/* -----------------------------------------
   SOURCE & LAMP TILES
----------------------------------------- */
.cc-src .cc-node[b-douvazl2uh] {
    background: radial-gradient(circle at 30% 20%, #f9b1a2, #b43b2e);
    box-shadow: 0 0 0 2px #5a241c, 0 0 10px rgba(255,120,90,0.9);
}

.cc-lamp .cc-node[b-douvazl2uh] {
    background: radial-gradient(circle at 30% 20%, #fef5cf, #d6ab3f);
}

/* -----------------------------------------
   POWERED GLOW
----------------------------------------- */
.cc-powered .cc-node[b-douvazl2uh],
.cc-powered .cc-seg[b-douvazl2uh] {
    background: linear-gradient(to bottom, #ffe7aa, #c29333);
    box-shadow: 0 0 0 2px #5b4120, 0 0 10px rgba(255,216,120,0.9), 0 0 18px rgba(255,240,170,0.7);
}

/* Powered lamp extra glow */
.cc-powered.cc-lamp .cc-node[b-douvazl2uh] {
    box-shadow: 0 0 0 2px #5b4120, 0 0 14px rgba(255,255,200,1), 0 0 26px rgba(255,255,200,0.9);
}

/* -----------------------------------------
   IDLE GLOW / SPARK ANIMATION
----------------------------------------- */
@keyframes cc-pulse-b-douvazl2uh {
    0% {
        filter: brightness(1);
    }

    50% {
        filter: brightness(1.25);
    }

    100% {
        filter: brightness(1);
    }
}

.cc-powered .cc-node[b-douvazl2uh] {
    animation: cc-pulse-b-douvazl2uh 1.4s ease-in-out infinite;
}

/* Make lamp tiles visually obvious even when unpowered */
/*.cc-lamp {
    background: radial-gradient(circle at 30% 20%, #665534, #3a2f1e);
    box-shadow: 0 0 6px rgba(255, 235, 150, 0.4), inset 0 0 4px rgba(255,255,200,0.2);
}*/

/* Lamp node - soft golden look */
/*.cc-lamp .cc-node {
    background: radial-gradient(circle at 30% 20%, #fdf2b8, #d0a843);
    box-shadow: 0 0 4px rgba(255,240,180,0.8);
}*/
/* /Components/Subcompnents/CodeBreaker.razor.rz.scp.css */
/* ============================================================
   ROOT WRAPPER (fills parent)
   ============================================================ */
.cb-wrap[b-qo1h59ayoo] {
    width: 100%;
    height: 100%;
    display: flex;
    box-sizing: border-box;
    padding: 1px;
    gap: 0.6rem;
    /* Bakelite radio style */
    background: rgba(0, 0, 0, 0.4);
    border-radius: 18px;
    border: 6px double #d9b95b;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.4), 0 10px 26px rgba(0,0,0,0.45);
    font-family: "Cinzel", serif;
}

/* ============================================================
   LEFT = PUZZLE AREA
   ============================================================ */
.cb-left[b-qo1h59ayoo] {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0.6rem;
    padding: 0.6rem;
    background: #f4ebd7;
    border-radius: 12px;
    border: 3px solid #b89c63;
    box-shadow: inset 0 0 14px rgba(0,0,0,0.25);
}

/* Guess row (current input) */
.cb-row[b-qo1h59ayoo] {
    display: flex;
    justify-content: center;
    gap: 0.4rem;
}

.cb-controls[b-qo1h59ayoo] {
    display: flex;
    width: 30%;
}

.cb-pad[b-qo1h59ayoo] {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* TWO COLUMNS */
    flex-direction: column;
    justify-content: center; /* Center vertically */
    align-items: center; /* Center horizontally */
    justify-items: center; /* Center each button within cell */
    gap: 0.5rem;
}

.cb-board[b-qo1h59ayoo] {
    overflow-y: hidden;
    width: 70%;
    padding-top: 0.25rem
}
/* Individual guess slots */
.cb-cell[b-qo1h59ayoo] {
    width: clamp(34px, 9vmin, 60px);
    height: clamp(34px, 9vmin, 60px);
    background: #e6d9c3;
    border-radius: 10px;
    border: 2px solid #6e5730;
    color: #6e5730;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: clamp(1.3rem, 5vmin, 2.2rem);
    font-weight: 700;
    user-select: none;
    box-shadow: inset 0 1px 2px rgba(255,255,255,0.5);
}

/* Past attempts list */
.cb-history[b-qo1h59ayoo] {
    flex: 1;
    overflow-y: auto;
}

.cb-history-row[b-qo1h59ayoo] {
    display: flex;
    justify-content: center;
    gap: 0.3rem;
    margin-bottom: 0.25rem;
}

/* Result colour states */
.cb-red[b-qo1h59ayoo] {
    background: #7a2e2e !important;
    color: #f6eade !important;
}

.cb-yellow[b-qo1h59ayoo] {
    background: #c9a43b !important;
    color: #3b2b1a !important;
}

.cb-green[b-qo1h59ayoo] {
    background: #5d8f4d !important;
    color: #f4f7ec !important;
}

/* ============================================================
   RIGHT = CONTROL PANEL
   ============================================================ */
.cb-right[b-qo1h59ayoo] {
    width: clamp(90px, 22vmin, 150px);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0.5rem;
    background: linear-gradient(180deg, #403526, #2b251c);
    border-radius: 12px;
    padding: 0.6rem;
    border: 3px solid #d9b95b;
    box-shadow: inset 0 0 14px rgba(0,0,0,0.45);
}

/* Processing lights (blink loop) */
.cb-lights[b-qo1h59ayoo] {
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.6rem;
}

.cb-light[b-qo1h59ayoo] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #402d1a;
    box-shadow: inset 0 0 4px rgba(0,0,0,0.4);
    animation: cb-blink-b-qo1h59ayoo 1.8s infinite ease-in-out;
}

    .cb-light:nth-child(2)[b-qo1h59ayoo] {
        animation-delay: .3s;
    }

    .cb-light:nth-child(3)[b-qo1h59ayoo] {
        animation-delay: .6s;
    }

@keyframes cb-blink-b-qo1h59ayoo {
    0%, 60%, 100% {
        background: #402d1a;
    }

    30% {
        background: #d9b95b;
    }
}

.cb-num[b-qo1h59ayoo] {
    width: 100%;
    max-width: 160px;
    aspect-ratio: 1 / 1;
    background: radial-gradient(circle at 40% 30%, #d9b95b, #a88235);
    border: 3px solid #6b5023;
    border-radius: 10px;
    font-size: clamp(0.9rem, 4vmin, 2.4rem);
    display: flex;
    font-weight: 700;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    user-select: none;
    color: #2b251c;
    box-shadow: 0 4px 10px rgba(0,0,0,0.25), inset 0 1px 2px rgba(255,255,255,0.5);
    transition: transform 0.1s ease;
}

    .cb-num.control[b-qo1h59ayoo] {
        background: radial-gradient(circle at 40% 30%, #d7c6a5, #b49b75);
    }
.cb-num:active[b-qo1h59ayoo] {
    transform: scale(0.9);
}


    .cb-num:active[b-qo1h59ayoo] {
        transform: scale(0.92);
    }

/* Layout for number pad */
.cb-numbers[b-qo1h59ayoo] {
    display: grid;
    gap: 0.4rem;
    grid-template-columns: repeat(3, 1fr);
}

/* CE & ? buttons */
.cb-btn[b-qo1h59ayoo] {
    /*width: 100%;*/
    /*padding: 0.6rem 0;*/
    font-size: clamp(0.8rem, 2vmin, 2rem);
    font-family: "Cinzel", serif;
    text-align: center;
    border-radius: 10px;
    border: 2px solid #6e5730;
    background: radial-gradient(circle at 40% 30%, #d7c6a5, #b49b75);
    cursor: pointer;
    user-select: none;
    box-shadow: 0 4px 10px rgba(0,0,0,0.25);
    transition: transform 0.12s ease;
}

    .cb-btn:active[b-qo1h59ayoo] {
        transform: scale(0.92);
    }

.cb-check[b-qo1h59ayoo] {
    background: radial-gradient(circle, #5d8f4d, #3a5a32);
    border-color: #2a4024;
    color: #f2f7e6;
}

.cb-delete[b-qo1h59ayoo] {
    background: radial-gradient(circle, #9a3d3d, #692626);
    border-color: #471818;
    color: #faeae2;
}

/* Digit button default */

/* Disabled appearance + animation */
.cb-num.disabled-digit[b-qo1h59ayoo] {
    opacity: 0.35;
    filter: grayscale(1) brightness(0.8);
    cursor: not-allowed;
    transform: scale(0.92);
    transition: all 0.25s ease;
}

/* Small fade-out pulse when disabled */
.cb-num.disabled-digit[b-qo1h59ayoo] {
    animation: cb-disable-pulse-b-qo1h59ayoo 0.25s ease-out forwards;
}

@keyframes cb-disable-pulse-b-qo1h59ayoo {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    100% {
        transform: scale(0.92);
        opacity: 0.35;
    }
}

/* Optional: nicer hover */
.cb-num:not(.disabled-digit):hover[b-qo1h59ayoo] {
    transform: scale(1.08);
    background: #fff6dc;
}
/* /Components/Subcompnents/DebugPanel.razor.rz.scp.css */
.debug-panel[b-ftiga05xog] {
    width: 100%;
    background: #1a1a2e;
    border-top: 2px solid #e94560;
    color: #eee;
    font-family: 'Courier New', monospace;
    font-size: 0.85rem;
    margin-top: 1.5rem;
}

.debug-panel-header[b-ftiga05xog] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #16213e;
    padding: 0.5rem 1rem;
    border-bottom: 1px solid #e94560;
}

.debug-panel-title[b-ftiga05xog] {
    font-weight: 700;
    color: #e94560;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.8rem;
}

.debug-panel-controls[b-ftiga05xog] {
    display: flex;
    gap: 0.5rem;
}

.debug-panel-body[b-ftiga05xog] {
    padding: 0.75rem 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-start;
}

.debug-section[b-ftiga05xog] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 200px;
}

.debug-player-section[b-ftiga05xog] {
    background: #0f3460;
    border-radius: 6px;
    padding: 0.6rem 0.8rem;
    min-width: 320px;
    flex: 1;
}

.debug-player-name[b-ftiga05xog] {
    font-weight: 700;
    color: #ffd700;
    margin-bottom: 0.4rem;
    font-size: 0.9rem;
}

.debug-field[b-ftiga05xog] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.3rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}

.debug-field:last-child[b-ftiga05xog] {
    border-bottom: none;
}

.debug-field-row[b-ftiga05xog] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.debug-label[b-ftiga05xog] {
    color: #aaa;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.debug-select[b-ftiga05xog] {
    background: #16213e;
    color: #eee;
    border: 1px solid #444;
    border-radius: 4px;
    padding: 0.25rem 0.4rem;
    font-size: 0.82rem;
    min-width: 140px;
}

.debug-select:focus[b-ftiga05xog] {
    outline: 1px solid #e94560;
}

.debug-btn[b-ftiga05xog] {
    background: #2d2d4e;
    color: #eee;
    border: 1px solid #555;
    border-radius: 4px;
    padding: 0.25rem 0.6rem;
    font-size: 0.78rem;
    cursor: pointer;
    transition: background 0.15s;
    white-space: nowrap;
}

.debug-btn:hover[b-ftiga05xog] {
    background: #3d3d6e;
}

.debug-btn-warning[b-ftiga05xog] {
    background: #7a5000;
    border-color: #e6a817;
    color: #ffd700;
}

.debug-btn-warning:hover[b-ftiga05xog] {
    background: #9a6500;
}

.debug-btn-success[b-ftiga05xog] {
    background: #0a5c2a;
    border-color: #2ecc71;
    color: #2ecc71;
}

.debug-btn-success:hover[b-ftiga05xog] {
    background: #0d7a38;
}

.debug-btn-danger[b-ftiga05xog] {
    background: #5c0a0a;
    border-color: #e94560;
    color: #e94560;
}

.debug-btn-danger:hover[b-ftiga05xog] {
    background: #7a0e0e;
}

.debug-toggle[b-ftiga05xog] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    cursor: pointer;
    user-select: none;
}

.debug-toggle input[type="checkbox"][b-ftiga05xog] {
    accent-color: #e94560;
    width: 14px;
    height: 14px;
}
/* /Components/Subcompnents/DecoMines.razor.rz.scp.css */
.ms-wrap[b-788pgimuio] {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #f4efe2;
    border-radius: 12px;
    border: 4px double #a47a2a;
    box-shadow: inset 0 0 18px rgba(0,0,0,0.25);
    box-sizing: border-box;
    padding: 0.4rem;
    gap: 0.4rem;
    color: #2b2520;
}

/* Header */
.ms-header[b-788pgimuio] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.2rem 0.4rem;
    border-bottom: 2px solid #c6b691;
}

.ms-title[b-788pgimuio] {
    font-size: 1rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    border-top: 2px solid #a47a2a;
    border-bottom: 2px solid #a47a2a;
    padding: 0.1rem 0.4rem;
}

.ms-panel[b-788pgimuio] {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    font-size: 0.8rem;
}

.ms-btn[b-788pgimuio] {
    background: #d9b95b;
    border-radius: 6px;
    border: 1px solid #6b5023;
    padding: 0.2rem 0.7rem;
    cursor: pointer;
    font-size: 0.75rem;
}

    .ms-btn:hover[b-788pgimuio] {
        background: #e7cb7d;
    }

/* Board */
.ms-board[b-788pgimuio] {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    gap: 2px;
    background: #2b2520;
    padding: 4px;
    border-radius: 10px;
    box-shadow: inset 0 0 8px rgba(0,0,0,0.45);
}

/* Cell buttons */
.ms-cell[b-788pgimuio] {
    position: relative;
    aspect-ratio: 1;
    border-radius: 4px;
    border: 1px solid #5a4a3a;
    background: radial-gradient(circle at 30% 30%, #4a3c30, #2b2520);
    color: #f6f0db;
    font-weight: 700;
    font-size: clamp(0.7rem, 2.5vmin, 5.5rem);
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0,0,0,0.4);
    transition: transform 0.08s ease, box-shadow 0.12s ease, background 0.15s ease;
}

    .ms-cell:hover[b-788pgimuio] {
        transform: translateY(-1px);
        box-shadow: 0 3px 6px rgba(0,0,0,0.55);
    }

    .ms-cell.ms-open[b-788pgimuio] {
        background: linear-gradient(135deg, #ebe1c5, #d2c4a0);
        color: #2b2520;
        box-shadow: inset 0 1px 3px rgba(0,0,0,0.25);
    }

    .ms-cell.ms-mine[b-788pgimuio] {
        background: radial-gradient(circle, #7a1414, #3a0505);
        color: #f8e7d2;
    }

    .ms-cell.ms-flagged[b-788pgimuio] {
        background: linear-gradient(135deg, #40322b, #241a16);
        color: #f2d37a;
    }

    /* Numbers – subtle differentiated colours */
    .ms-cell.ms-open[b-788pgimuio] {
        color: #3a2b21;
    }

        .ms-cell.ms-open:has(> span:contains("1"))[b-788pgimuio],
        .ms-cell.ms-open:has(> *:contains("1"))[b-788pgimuio] {
            color: #335c7a;
        }

        .ms-cell.ms-open:has(> *:contains("2"))[b-788pgimuio] {
            color: #3c6e4b;
        }

        .ms-cell.ms-open:has(> *:contains("3"))[b-788pgimuio] {
            color: #8a3e3e;
        }

        .ms-cell.ms-open:has(> *:contains("4"))[b-788pgimuio] {
            color: #5a4b8a;
        }

        .ms-cell.ms-open:has(> *:contains("5"))[b-788pgimuio] {
            color: #8a6a3e;
        }

        .ms-cell.ms-open:has(> *:contains("6"))[b-788pgimuio] {
            color: #2f7c7c;
        }

/* Footer */
.ms-footer[b-788pgimuio] {
    padding: 0.2rem 0.4rem;
    border-top: 2px solid #c6b691;
    font-size: 0.75rem;
}

.ms-status[b-788pgimuio] {
    letter-spacing: 0.05em;
}

    .ms-status.win[b-788pgimuio] {
        color: #2e6b3a;
    }

    .ms-status.lose[b-788pgimuio] {
        color: #8a2b2b;
    }
/* /Components/Subcompnents/DecoProgress.razor.rz.scp.css */
.artdeco-progress[b-dh9gt947a0] {
    position: relative;
    width: 100%;
    height: 25px;
    background: linear-gradient(90deg, #f8f5f0 0%, #f3ece2 100%);
    border: 1px solid #2b2b2b;
    overflow: hidden;
    box-shadow: inset 0 0 4px rgba(0,0,0,0.2);
    font-family: "Metropolis", "Garamond", serif;
}



/* Deco frame overlay with geometric flair */
.artdeco-progress-frame[b-dh9gt947a0] {
    position: absolute;
    inset: 0;
    border: 1px double #2b2b2b;
    pointer-events: none;
}

/* The filling bar */
.artdeco-progress-bar[b-dh9gt947a0] {
    height: 100%;
    background: linear-gradient(90deg, #c72c41 0%, #e85a70 100%);
    border-right: 1px solid #2b2b2b;
    transition: width 0.5s ease;
    box-shadow: inset 0 0 4px rgba(0,0,0,0.3);
}
/* /Components/Subcompnents/DecoTagBox.razor.rz.scp.css */
:host[b-4x6skg1a5s] {
    display: block;
    height: 100%;
    width: 100%;
    min-width: 0; /* allow flex parents to shrink */
    min-height: 0; /* allow flex parents to control height */
}

/* Palette: cream, ink, brass */
:root[b-4x6skg1a5s], :host[b-4x6skg1a5s] {
    --deco-cream: #f4f0e6;
    --deco-ink: #2b2b2b;
    --deco-brass: #c59a2b;
    --deco-brass-deep: #9c7a1f;
    --deco-ink-weak: #2b2b2b22;
}

.deco-tag-wall[b-4x6skg1a5s] {
    box-sizing: border-box;
    height: 100%;
    width: 100%;
    background: var(--deco-cream);
    border: 2px solid var(--deco-ink);
    position: relative;
    padding: 0.75rem;
    overflow: auto; /* scroll if lots of tags */
}

    /* Art-Deco corner ornaments */
    .deco-tag-wall[b-4x6skg1a5s]::before,
    .deco-tag-wall[b-4x6skg1a5s]::after {
        content: "";
        position: absolute;
        inset: 6px;
        border: 1px solid var(--deco-ink);
        pointer-events: none;
        mask: linear-gradient(#000 0 0);
    }

    .deco-tag-wall[b-4x6skg1a5s]::before {
        box-shadow: 0 0 0 999px transparent, inset 0 0 0 1px var(--deco-ink-weak);
    }

/* Optional heading */
.deco-heading[b-4x6skg1a5s] {
    font-family: "Cinzel", "Cormorant Garamond", "Garamond", "Times New Roman", serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--deco-ink);
    text-align: center;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1;
    margin: 0 0 .5rem 0;
    padding: .35rem .5rem;
    border: 2px solid var(--deco-ink);
    background: linear-gradient(90deg, transparent 0, transparent 6%, var(--deco-brass) 6%, var(--deco-brass) 10%, transparent 10%, transparent 90%, var(--deco-brass) 90%, var(--deco-brass) 94%, transparent 94%, transparent 100%);
}

/* Tags layout */
.tag-wrap[b-4x6skg1a5s] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .5rem;
    align-content: flex-start;
}

/* Individual tag “chips” */
.deco-tag[b-4x6skg1a5s] {
    --pad-x: .6rem;
    --pad-y: .25rem;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: var(--pad-y) var(--pad-x);
    font-family: "Special Elite", "EB Garamond", "Garamond", "Georgia", serif;
    font-size: .95rem;
    color: var(--deco-ink);
    background: linear-gradient(#fff, #f9f5ec);
    border: 2px solid var(--deco-ink);
    border-radius: 0; /* square, deco feel */
    position: relative;
    line-height: 1.1;
    white-space: nowrap;
}

    /* Thin inner brass line */
    .deco-tag[b-4x6skg1a5s]::after {
        content: "";
        position: absolute;
        inset: 3px;
        border: 1px solid var(--deco-brass);
        pointer-events: none;
    }

    /* Small ornaments flanking the label */
    .deco-tag .ornament[b-4x6skg1a5s] {
        font-size: .8em;
        letter-spacing: .02em;
        color: var(--deco-brass-deep);
        transform: translateY(-0.5px);
    }

    .deco-tag .label[b-4x6skg1a5s] {
        display: inline-block;
        max-width: 26ch; /* prevent ultra-long words breaking layout */
        overflow: hidden;
        text-overflow: ellipsis;
    }

/* High-contrast mode safety + reduced motion */
@media (prefers-reduced-motion: reduce) {
    *[b-4x6skg1a5s] {
        transition: none !important;
    }
}
/* /Components/Subcompnents/EvidenceBoard.razor.rz.scp.css */
/* ─── Palette (mirrors DecoTagBox / game-guidance) ─────────────────────── */
:root[b-q1drzialhk], :host[b-q1drzialhk] {
    --eb-cream:       #f4f0e6;
    --eb-ink:         #2b2b2b;
    --eb-brass:       #c59a2b;
    --eb-brass-deep:  #9c7a1f;
    --eb-heat-0:      #2ecc71;
    --eb-heat-1:      #f1c40f;
    --eb-heat-2:      #e67e22;
    --eb-heat-3:      #e74c3c;
    --eb-heat-4:      #6e0000;
}

/* ─── Overlay: fills the scene-container ─────────────────────────────────── */
.evidence-board[b-q1drzialhk] {
    position: absolute;
    inset: 0;
    z-index: 50;
    background: radial-gradient(circle, rgba(44,30,14,0.97), rgba(20,13,5,0.97));
    border: 3px solid #c59a2b;
    outline: 2px double #9c7a1f;
    color: var(--eb-cream);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    font-family: "Special Elite", "Garamond", serif;
}

/* ─── Header ──────────────────────────────────────────────────────────────── */
.eb-header[b-q1drzialhk] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.4rem 2.5rem 0.4rem 0.75rem;
    font-size: min(4cqw, 1rem);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #ffffff;
    border-bottom: 2px solid #9c7a1f;
    background: rgba(0,0,0,0.35);
    position: relative;
}

.eb-close[b-q1drzialhk] {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: 1px solid #c59a2b;
    color: #c59a2b;
    width: 1.6rem;
    height: 1.6rem;
    line-height: 1;
    cursor: pointer;
    font-size: 0.9rem;
    padding: 0;
}

.eb-close:hover[b-q1drzialhk] {
    background: #c59a2b;
    color: #2b2b2b;
}

/* ─── Scrollable list ─────────────────────────────────────────────────────── */
.eb-list[b-q1drzialhk] {
    flex: 1;
    overflow-y: auto;
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    scrollbar-width: thin;
    scrollbar-color: #c59a2b rgba(0,0,0,0.3);
}

.eb-empty[b-q1drzialhk] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1rem;
    font-style: italic;
    color: #ffffff;
    font-size: min(3.5cqw, 0.85rem);
}

/* ─── Suspect card ────────────────────────────────────────────────────────── */
.eb-card[b-q1drzialhk] {
    background: rgba(255,255,255,0.05);
    border: 1px solid #9c7a1f;
    border-left: 4px solid #9c7a1f;
    padding: 0.35rem 0.5rem;
}

/* Left-border colour reflects heat level */
.eb-card.heat-0[b-q1drzialhk] { border-left-color: #2ecc71; }
.eb-card.heat-1[b-q1drzialhk] { border-left-color: #f1c40f; }
.eb-card.heat-2[b-q1drzialhk] { border-left-color: #e67e22; }
.eb-card.heat-3[b-q1drzialhk] { border-left-color: #e74c3c; }
.eb-card.heat-4[b-q1drzialhk] { border-left-color: #6e0000; background: rgba(110,0,0,0.15); }

.eb-card-header[b-q1drzialhk] {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0.5rem;
}

.eb-portrait[b-q1drzialhk] {
    width: min(10cqw, 48px);
    height: min(10cqw, 48px);
    object-fit: cover;
    object-position: top center;
    border: 1px solid #9c7a1f;
    border-radius: 3px;
    flex-shrink: 0;
    align-self: flex-start;
}

.eb-card-meta[b-q1drzialhk] {
    flex: 1;
    min-width: 0;
}

.eb-name[b-q1drzialhk] {
    font-size: min(3.8cqw, 0.9rem);
    font-weight: 700;
    color: #ffffff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ─── Heat dots ───────────────────────────────────────────────────────────── */
.eb-heat-dots[b-q1drzialhk] {
    display: flex;
    gap: 0.2rem;
    margin-top: 0.15rem;
}

.eb-dot[b-q1drzialhk] {
    font-size: min(2.5cqw, 0.7rem);
    color: rgba(255,255,255,0.45);
}

.heat-0 .eb-dot.filled[b-q1drzialhk] { color: #2ecc71; }
.heat-1 .eb-dot.filled[b-q1drzialhk] { color: #f1c40f; }
.heat-2 .eb-dot.filled[b-q1drzialhk] { color: #e67e22; }
.heat-3 .eb-dot.filled[b-q1drzialhk] { color: #e74c3c; }
.heat-4 .eb-dot.filled[b-q1drzialhk] { color: #6e0000; }

.eb-heat-label[b-q1drzialhk] {
    font-size: min(2.8cqw, 0.65rem);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #ffffff;
    opacity: 1;
    margin-top: 0.1rem;
}

/* ─── Notes ───────────────────────────────────────────────────────────────── */
.eb-notes[b-q1drzialhk] {
    margin: 0.3rem 0 0 0;
    padding-left: 1rem;
    list-style: none;
}

.eb-note[b-q1drzialhk] {
    font-size: min(3cqw, 0.72rem);
    font-style: italic;
    color: #e8dfc8;
    line-height: 1.35;
    padding: 0.15rem 0;
    border-top: 1px solid rgba(197,154,43,0.15);
}

    .eb-note[b-q1drzialhk]::before {
        content: "▸ ";
        color: #c59a2b;
        font-style: normal;
    }

.eb-no-notes[b-q1drzialhk] {
    font-size: min(3cqw, 0.7rem);
    font-style: italic;
    color: var(--eb-cream);
    opacity: 0.7;
    margin-top: 0.25rem;
}

/* ─── Discredited (false) testimony ──────────────────────────────────────── */
.eb-note-discredited[b-q1drzialhk] {
    color: #a0a0a0;
    text-decoration: line-through;
    text-decoration-color: #e74c3c;
    text-decoration-thickness: 2px;
    border-top-color: rgba(231,76,60,0.25);
}

.eb-note-discredited[b-q1drzialhk]::before {
    content: "";  /* suppress the opening quote on struck-through notes */
}

.eb-discredited-label[b-q1drzialhk] {
    display: block;
    font-size: min(2.5cqw, 0.6rem);
    font-style: normal;
    text-decoration: none;
    color: #e74c3c;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 0.1rem;
}
/* /Components/Subcompnents/ImageSlidePuzzle.razor.rz.scp.css */
/* Outer puzzle container fills the parent */
.sp-board[b-sdhy4yknih] {
    width: 100%;
    height: 100%;
    display: grid;
    /* You can overwrite these in Blazor */
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 1fr);
    gap: 2px;
    background: #2b2b2b;
    padding: 4px;
    box-sizing: border-box;
}

/* Puzzle tile */
.sp-cell[b-sdhy4yknih] {
    position: relative;
    aspect-ratio: 1; /* Perfect square cells — simpler than padding-bottom trick */
    background-size: 300% 300%; /* For a 3×3 grid */
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 6px;
    cursor: pointer;
    transition: transform 0.15s ease;
}

/* Empty space */
.sp-cell.empty[b-sdhy4yknih] {
    background: #0004;
    cursor: default;
}

/* Hover animation */
.sp-cell:hover[b-sdhy4yknih] {
    transform: scale(1.03);
}
/* /Components/Subcompnents/Jigdoku.razor.rz.scp.css */
.jgd-wrap[b-9ucod9lqrz] {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    overflow: hidden;
    /* container for sizing within fixed parents */
    container-type: size;
    /* Art Deco: subtle vignette behind the board */
    background: radial-gradient( 140% 120% at 50% 35%, rgba(255, 255, 255, 0.08) 0%, rgba(0, 0, 0, 0.32) 55%, rgba(0, 0, 0, 0.62) 0% );
}

/* 7x7 board: 6x6 puzzle + control row + control column */
.jgd-board7[b-9ucod9lqrz] {
    /* Fill as much of the container as possible while remaining square */
    width: min(100%, 100cqh);
    height: min(100%, 100cqw);
    aspect-ratio: 1 / 1;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-template-rows: repeat(7, 1fr);
    gap: 0;
    padding: 10px;
    border-radius: 0;
    box-sizing: border-box;
    overflow: hidden;
    /* Art Deco: dark lacquer + stepped frame (black-on-black) */
    outline: 1px solid rgba(0, 0, 0, 0.70);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.45), inset 0 0 0 1px rgba(255, 255, 255, 0.06), inset 0 0 0 6px rgba(0, 0, 0, 0.18);
}

/* small parents: reduce padding so more area is playable */
@container (max-width: 310px) {
    .jgd-board7[b-9ucod9lqrz] {
        padding: 7px;
    }
}

@container (max-height: 310px) {
    .jgd-board7[b-9ucod9lqrz] {
        padding: 7px;
    }
}

/* puzzle cells */
.jgd-cell[b-9ucod9lqrz] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    width: 100%;
    /* Art Deco: warmer �ivory tile� with slight bevel */
    background: linear-gradient( 180deg, rgba(255, 255, 255, 0.98) 0%, rgba(242, 238, 228, 0.96) 100% );
    border-radius: 0;
    box-sizing: border-box;
    user-select: none;
    font-weight: 900;
    letter-spacing: 0.01em;
    line-height: 1;
    font-size: clamp(10px, 4cqw, 18px);
    color: #141414;
    outline: 1px solid rgba(0, 0, 0, 0.12);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12), inset 0 -7px 10px rgba(0, 0, 0, 0.06);
}

    .jgd-cell.fixed[b-9ucod9lqrz] {
        background: linear-gradient( 180deg, rgba(255, 255, 255, 0.995) 0%, rgba(246, 242, 232, 0.98) 100% );
    }

    /* selection: keep your behavior, just refine the fill (no border highlight changes) */
    .jgd-cell.selected[b-9ucod9lqrz] {
        background: linear-gradient(180deg, rgb(210, 210, 255) 0%, rgb(180, 180, 245) 100%);
        outline: 1px solid rgba(0, 0, 0, 0.10);
    }

    /* region edges (LEAVE AS-IS: black borders) */
    .jgd-cell[b-9ucod9lqrz]::before,
    .jgd-cell[b-9ucod9lqrz]::after {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        border-radius: 0;
    }

    .jgd-cell.edge-t[b-9ucod9lqrz]::before {
        border-top: 2px solid black;
    }

    .jgd-cell.edge-r[b-9ucod9lqrz]::before {
        border-right: 2px solid black;
    }

    .jgd-cell.edge-b[b-9ucod9lqrz]::before {
        border-bottom: 2px solid black;
    }

    .jgd-cell.edge-l[b-9ucod9lqrz]::before {
        border-left: 2px solid black;
    }

    .jgd-cell.edge-t[b-9ucod9lqrz]::after {
        border-top: 1px solid black;
        inset: 1px 0 0 0;
    }

    .jgd-cell.edge-r[b-9ucod9lqrz]::after {
        border-right: 1px solid black;
        inset: 0 1px 0 0;
    }

    .jgd-cell.edge-b[b-9ucod9lqrz]::after {
        border-bottom: 1px solid black;
        inset: 0 0 1px 0;
    }

    .jgd-cell.edge-l[b-9ucod9lqrz]::after {
        border-left: 1px solid black;
        inset: 0 0 0 1px;
    }

/* UI cells in 7th row/col */
.jgd-ui[b-9ucod9lqrz] {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

    .jgd-ui.spacer[b-9ucod9lqrz] {
        background: transparent;
    }

/* Art Deco buttons: lacquered black */
.jgd-ui-btn[b-9ucod9lqrz] {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 0;
    background: linear-gradient(180deg, rgba(32, 32, 36, 1) 0%, rgba(10, 10, 12, 1) 100%);
    color: rgba(250, 245, 230, 0.98);
    font-weight: 900;
    letter-spacing: 0.02em;
    font-size: clamp(10px, 4cqw, 16px);
    outline: 1px solid rgba(0, 0, 0, 0.75);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06), inset 0 -10px 18px rgba(0, 0, 0, 0.35);
}

    .jgd-ui-btn:active[b-9ucod9lqrz] {
        filter: brightness(0.96);
        transform: translateY(1px);
    }

    .jgd-ui-btn.erase[b-9ucod9lqrz] {
        background: linear-gradient(180deg, rgba(150, 26, 26, 1) 0%, rgba(85, 10, 10, 1) 100%);
        color: #fff;
    }
/* /Components/Subcompnents/Match3.razor.rz.scp.css */
.m3-wrapper[b-nmmochy0tw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: 100%;
    width: 100%;
    box-sizing: border-box;
    font-family: system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}

.m3-board[b-nmmochy0tw] {
    position: relative;
    user-select: none;
    touch-action: none;
    width: 100%;
    aspect-ratio: 1 / 1;
    flex: 0 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

.m3-grid[b-nmmochy0tw] {
    display: grid;
    width: 100%;
    height: 100%;
    grid-template-columns: repeat(var(--cols, 8), 1fr);
    grid-template-rows: repeat(var(--rows, 8), 1fr);
    gap: 1%;
    background: rgba(0, 0, 0, 0.4);
    padding: 0.35%;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

.m3-tile[b-nmmochy0tw] {
    width: 100%;
    height: 100%;
    border-radius: 12%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(0.4rem, 5vmin, 2rem);
    font-weight: 700;
    color: #222;
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.12s ease, opacity 0.18s;
    border: 1px solid rgba(0,0,0,0.4);
}

.m3-icon[b-nmmochy0tw] {
    width: 70%;
    height: 70%;
    object-fit: contain;
    pointer-events: none;
    filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.4));
}

.m3-tile:hover .m3-icon[b-nmmochy0tw] {
    filter: brightness(1.2) drop-shadow(0 0 4px #2b7cff);
}

.m3-tile:focus[b-nmmochy0tw] {
    outline: none;
}

.m3-selected[b-nmmochy0tw] {
    box-shadow: 0 0 0.8vmin rgba(255, 255, 255, 0.8), 0 0 2vmin rgba(43, 124, 255, 0.9), 0 0 3vmin rgba(43, 124, 255, 0.6);
    transform: scale(1.05);
}

.m3-swiping[b-nmmochy0tw] {
    transition: none !important;
    z-index: 5;
}

.m3-clearing[b-nmmochy0tw] {
    animation: pop-b-nmmochy0tw 0.22s ease forwards;
}

@keyframes pop-b-nmmochy0tw {
    to {
        transform: scale(0);
        opacity: 0;
    }
}

/* 1930s muted sepia palette — distinct but harmonious */
.t1[b-nmmochy0tw] {
    background: #c2a67d;
}
/* warm brass / parchment tan */
.t2[b-nmmochy0tw] {
    background: #7b9c89;
}
/* dusty sage green */
.t3[b-nmmochy0tw] {
    background: #a45b5b;
}
/* aged burgundy red */
.t4[b-nmmochy0tw] {
    background: #5a7a8c;
}
/* faded teal blue */
.t5[b-nmmochy0tw] {
    background: #9c86ad;
}
/* antique lavender */
.t6[b-nmmochy0tw] {
    background: #b07c4f;
}
/* burnished copper / ochre */
/* /Components/Subcompnents/MemoryMatch.razor.rz.scp.css */
/* Parent wrapper must fill the available area */
.mm-wrap[b-1endhebjm7] {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: 0.5rem;
    box-sizing: border-box;
    gap: 0.8rem;
}

/* The BOARD fills all remaining space */
.mm-board[b-1endhebjm7] {
    flex: 1; /* grow to fill */
    min-height: 0; /* IMPORTANT: prevents flex overflow issues */
    display: grid;
    gap: 6px;
}

/* Each tile auto-sizes from the grid and stays square */
.mm-tile[b-1endhebjm7] {
    position: relative;
    aspect-ratio: 1; /* ensures perfect square tiles */
    background: #3a332c;
    border-radius: 8px;
    cursor: pointer;
    perspective: 900px;
}

.mm-inner[b-1endhebjm7] {
    position: absolute;
    inset: 0;
    transform-style: preserve-3d;
    transition: transform 0.35s ease;
}

.mm-tile.flipped .mm-inner[b-1endhebjm7] {
    transform: rotateY(180deg);
}

.mm-front[b-1endhebjm7], .mm-back[b-1endhebjm7] {
    position: absolute;
    inset: 0;
    backface-visibility: hidden;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Face-down tile */
.mm-front[b-1endhebjm7] {
    background: #2c2a28;
    border: 2px solid #8a775a;
}

/* Revealed tile */
.mm-back[b-1endhebjm7] {
    background: #e1d0a3;
    border: 2px solid #705d3d;
    transform: rotateY(180deg);
}

.mm-symbol[b-1endhebjm7] {
    font-size: clamp(16px, 3vw, 42px);
    font-family: "Cinzel", serif;
    color: #3b2a16;
}

/* Controls at the bottom */
.mm-controls[b-1endhebjm7] {
    text-align: center;
    color: #d9cda9;
    font-family: "Cinzel", serif;
}

.mm-btn[b-1endhebjm7] {
    background: #a68a52;
    border: none;
    padding: 0.5rem 1.2rem;
    border-radius: 6px;
    color: #fff;
    font-family: "Cinzel", serif;
    cursor: pointer;
}

.mm-img[b-1endhebjm7] {
    width: 70%;
    height: 70%;
    object-fit: contain;
    pointer-events: none;
}


.mm-btn:hover[b-1endhebjm7] {
    background: #c6a868;
}

.mm-info[b-1endhebjm7] {
    margin-top: 0.4rem;
}
/* /Components/Subcompnents/PortraitPair.razor.rz.scp.css */
.portrait-pair[b-mci3q0jsv6] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    height: 100%;    
    gap: 0.5rem;
    text-align: center;
}

/* Portrait frames */
.portrait-frame[b-mci3q0jsv6] {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Images */
.portrait-frame img[b-mci3q0jsv6] {
    width: 80%;
    height: auto;
    object-fit: contain;
    border-radius: 8px;
    border: 2px solid #2b2b2b;
}

.top-text[b-mci3q0jsv6] {
    font-size: clamp(0.6rem, 1.5vw + 0.5rem, 1.8rem);
    color: white;
    display: block;
    height: 120%;
}
.bottom-text[b-mci3q0jsv6] {
    font-size: clamp(0.6rem, 2.5vw + 0.5rem, 2.2rem);
    color: white;
}

/* Fade-in animation (right portrait + bottom text) */
.portrait-frame.right img[b-mci3q0jsv6],
.bottom-text.delayed[b-mci3q0jsv6] {
    opacity: 0;
    animation: fadeInPortrait-b-mci3q0jsv6 2s ease forwards;
    animation-delay: 2s;
}

@keyframes fadeInPortrait-b-mci3q0jsv6 {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}
/* /Components/Subcompnents/Preloader.razor.rz.scp.css */
.preloader[b-4xkx5oysih] {
    width: 100%;
    height: 100vh;
    background: radial-gradient(circle, #1c1c1c, #0d0d0d);
    display: flex;
    align-items: center;
    justify-content: center;
}

.preloader-frame[b-4xkx5oysih] {
    padding: 32px 40px;
    border: 4px solid #d4b46d;
    border-radius: 8px;
    width: 300px;
    text-align: center;
    background: #1a1a1a;
    box-shadow: 0 0 20px rgba(0,0,0,0.6);
    position: relative;
}

.preloader-title[b-4xkx5oysih] {
    font-family: "Special Elite", serif;
    font-size: 1.2rem;
    letter-spacing: 3px;
    color: #f7e8c5;
    margin-bottom: 12px;
}

.preloader-subtitle[b-4xkx5oysih] {
    font-size: 0.9rem;
    color: #d4b46d;
    margin-bottom: 20px;
}

.preloader-bar[b-4xkx5oysih] {
    width: 100%;
    height: 14px;
    border: 2px solid #d4b46d;
    border-radius: 6px;
    padding: 2px;
    background: #2b2b2b;
}

.preloader-bar-fill[b-4xkx5oysih] {
    width: 0%;
    height: 100%;
    background: linear-gradient(90deg, #d4b46d, #f0d89c);
    border-radius: 4px;
    transition: width .3s ease-out;
}

.preloader-count[b-4xkx5oysih] {
    margin-top: 12px;
    font-size: 0.8rem;
    color: #e6d9b6;
    letter-spacing: 1px;
}

.preloader-ornament[b-4xkx5oysih] {
    height: 2px;
    width: 60%;
    background: #d4b46d;
    margin: 20px auto 0;
}
/* /Components/Subcompnents/Reversi.razor.rz.scp.css */
.rv-wrap[b-krwyrumh9c] {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    background: rgba(0, 0, 0, 0.4);
    border-radius: 12px;
    border: 4px double #6e5730;
    font-family: "Cinzel", "Georgia", serif;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

/* Board is a perfect 8×8 grid that eats most of the area */
.rv-board[b-krwyrumh9c] {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    grid-template-rows: repeat(8, 1fr);
    gap: 2px;
    background: #1f1a14;
    padding: 4px;
    box-sizing: border-box;
    border-radius: 10px;
    box-shadow: inset 0 0 12px rgba(0,0,0,0.5);
}

.rv-cell[b-krwyrumh9c] {
    position: relative;
    background: radial-gradient(circle at 30% 20%, #e8ddc3, #c7b38c);
    border-radius: clamp(0.2rem, 1.0vmin, 0.6rem);
    border: 1px solid #7c6440;
    cursor: pointer;
    padding: 0;
    outline: none;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.12s ease, transform 0.08s ease, box-shadow 0.08s ease;
}

    .rv-cell:hover[b-krwyrumh9c] {
        background: radial-gradient(circle at 30% 20%, #f4ead1, #d0bc94);
        box-shadow: 0 0 6px rgba(0,0,0,0.4);
        transform: translateY(-1px);
    }

    .rv-cell.last[b-krwyrumh9c] {
        box-shadow: 0 0 10px rgba(217,185,91,0.9);
    }

/* Discs */
.rv-disc[b-krwyrumh9c] {
    width: 70%;
    height: 70%;
    border-radius: 50%;
    box-shadow: 0 3px 6px rgba(0,0,0,0.4), inset 0 1px 2px rgba(255,255,255,0.5);
    transform: scale(0.95);
    transition: transform 0.16s ease;
}

.rv-cell:hover .rv-disc[b-krwyrumh9c] {
    transform: scale(1.0);
}

.rv-white[b-krwyrumh9c] {
    background: radial-gradient(circle at 30% 20%, #ffffff, #d6d6d6);
    border: 2px solid #b2b2b2;
}

.rv-black[b-krwyrumh9c] {
    background: radial-gradient(circle at 30% 20%, #4b3c32, #150f0c);
    border: 2px solid #0a0604;
}

/* Footer bar */
.rv-footer[b-krwyrumh9c] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-top: 1px;
    font-size: clamp(0.4rem, 2.4vmin, 1rem);
}

.rv-status[b-krwyrumh9c] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.rv-label[b-krwyrumh9c] {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.75em;
    opacity: 0.8;
    color: white;
}

.rv-score[b-krwyrumh9c] {
    font-weight: 700;
    color: white;
}

.rv-turn[b-krwyrumh9c] {
    flex: 1;
    text-align: center;
    color: white;
}

/* Button */
.rv-btn[b-krwyrumh9c] {
    flex: 0 0 auto;
    padding: 0.35rem 0.7rem;
    font-size: inherit;
    border-radius: 8px;
    border: 2px solid #6e5730;
    background: #d7c29b;
    box-shadow: 0 3px 6px rgba(0,0,0,0.35);
    cursor: pointer;
    font-family: "Cinzel", serif;
}

    .rv-btn:active[b-krwyrumh9c] {
        transform: scale(0.96);
    }

/* Start overlay button */
.rv-start[b-krwyrumh9c] {
    margin: auto;
    padding: 0.8rem 1.2rem;
    font-size: clamp(1rem, 4vmin, 1.6rem);
    border-radius: 10px;
    border: 3px solid #6e5730;
    background: radial-gradient(circle at 30% 20%, #e5d3aa, #c2a46c);
    box-shadow: 0 6px 12px rgba(0,0,0,0.4);
    cursor: pointer;
    font-family: "Cinzel", serif;
}
/* /Components/Subcompnents/SleuthLeaderboard.razor.rz.scp.css */
/* ─── Sleuth Leaderboard ───────────────────────────────────────────────────── */

.sleuth-lb[b-6i40iofe79] {
    position: absolute;
    inset: 0;
    z-index: 50;
    background: radial-gradient(circle, rgba(10,25,44,0.97), rgba(5,12,22,0.97));
    border: 3px solid #c59a2b;
    outline: 2px double #9c7a1f;
    color: #f4f0e6;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    font-family: "Special Elite", "Garamond", serif;
}

/* ─── Header ──────────────────────────────────────────────────────────────── */
.slb-header[b-6i40iofe79] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.4rem 2.5rem 0.4rem 0.75rem;
    font-size: min(4cqw, 1rem);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #ffffff;
    border-bottom: 2px solid #9c7a1f;
    background: rgba(0,0,0,0.35);
    position: relative;
}

.slb-close[b-6i40iofe79] {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: #c59a2b;
    font-size: 1.1rem;
    cursor: pointer;
    line-height: 1;
    padding: 0.2rem 0.4rem;
}

.slb-close:hover[b-6i40iofe79] {
    color: #fff;
}

/* ─── Empty state ─────────────────────────────────────────────────────────── */
.slb-empty[b-6i40iofe79] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    font-size: min(3.5cqw, 0.85rem);
    opacity: 0.7;
    text-align: center;
}

/* ─── Row list ────────────────────────────────────────────────────────────── */
.slb-list[b-6i40iofe79] {
    flex: 1;
    overflow-y: auto;
    padding: 0.5rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    scrollbar-width: thin;
    scrollbar-color: #c59a2b rgba(0,0,0,0.3);
}

.slb-list[b-6i40iofe79]::-webkit-scrollbar {
    width: 6px;
}

.slb-list[b-6i40iofe79]::-webkit-scrollbar-track {
    background: rgba(0,0,0,0.3);
}

.slb-list[b-6i40iofe79]::-webkit-scrollbar-thumb {
    background-color: #c59a2b;
    border-radius: 3px;
}

.slb-row[b-6i40iofe79] {
    display: grid;
    grid-template-columns: 2rem 2.2rem 1fr auto;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.5rem;
    border-radius: 4px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(197,154,43,0.2);
    font-size: min(3.5cqw, 0.85rem);
}

.slb-row.slb-leader[b-6i40iofe79] {
    background: rgba(197,154,43,0.18);
    border-color: #c59a2b;
}

.slb-row.slb-you[b-6i40iofe79] {
    border-color: #4fc3f7;
}

.slb-rank[b-6i40iofe79] {
    text-align: center;
    font-weight: 700;
    color: #c59a2b;
    font-size: min(3cqw, 0.8rem);
}

.slb-portrait[b-6i40iofe79] {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 1px solid #c59a2b;
}

.slb-name[b-6i40iofe79] {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.slb-you-tag[b-6i40iofe79] {
    font-size: 0.7em;
    opacity: 0.6;
    margin-left: 0.3em;
}

.slb-score[b-6i40iofe79] {
    font-size: min(4.5cqw, 1.1rem);
    font-weight: 700;
    color: #c59a2b;
    text-align: right;
    min-width: 1.5rem;
}
/* /Components/Subcompnents/Sudoku.razor.rz.scp.css */
/* Root wrapper */
.sdk-wrap[b-dkgcfs5wox] {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: 0.5rem;
    background: rgba(242, 231, 210, 0.2);
    border-radius: 12px;
    font-family: "Cinzel", serif;
}

/* Sudoku grid */
.sdk-board[b-dkgcfs5wox] {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    grid-template-rows: repeat(9, 1fr);
    gap: 2px;
    background: #2b2b2b;
    padding: 4px;
    box-sizing: border-box;
}

/* Base cell */
.sdk-cell[b-dkgcfs5wox] {
    width: 100%;
    height: 100%;
    background: #efe6cf;
    color: #2b2b2b;
    font-size: clamp(0.85rem, 4vmin, 2rem);
    font-weight: 600;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    user-select: none;
    border: 1px solid #6e5730;
    position: relative;
    transition: background 0.12s ease;
}

    /* Cell states */
    .sdk-cell.fixed[b-dkgcfs5wox] {
        background: #d4c19a;
        cursor: default;
    }

    .sdk-cell.selected[b-dkgcfs5wox] {
        background: #d9b95b;
    }

    /* Thick borders every 3 columns */
    .sdk-cell:nth-child(3n + 1)[b-dkgcfs5wox] {
        border-left: 4px solid #6e5730;
    }

    .sdk-cell:nth-child(3n)[b-dkgcfs5wox] {
        border-right: 4px solid #6e5730;
    }

    /* Thick borders every 3 rows */
    .sdk-cell:nth-child(n + 1):nth-child(-n + 9)[b-dkgcfs5wox],
    .sdk-cell:nth-child(n + 28):nth-child(-n + 36)[b-dkgcfs5wox],
    .sdk-cell:nth-child(n + 55):nth-child(-n + 63)[b-dkgcfs5wox] {
        border-top: 4px solid #6e5730;
    }

    .sdk-cell:nth-child(n + 19):nth-child(-n + 27)[b-dkgcfs5wox],
    .sdk-cell:nth-child(n + 46):nth-child(-n + 54)[b-dkgcfs5wox],
    .sdk-cell:nth-child(n + 73):nth-child(-n + 81)[b-dkgcfs5wox] {
        border-bottom: 4px solid #6e5730;
    }

/* Number pad */
.sdk-pad[b-dkgcfs5wox] {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: center;
    padding-top: 0.6rem;
}

/* Pad buttons */
.sdk-btn[b-dkgcfs5wox] {
    flex: 1 1 calc(33% - 0.4rem);
    max-width: 120px;
    aspect-ratio: 1 / 1;
    background: radial-gradient(circle at 40% 35%, #d9b95b, #b28a3d);
    border: 3px solid #6b5023;
    border-radius: 12px;
    font-size: clamp(1.2rem, 5vmin, 2.4rem);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    user-select: none;
    box-shadow: 0 6px 12px rgba(0,0,0,0.25);
    transition: transform 0.12s ease;
}

    .sdk-btn:active[b-dkgcfs5wox] {
        transform: scale(0.92);
    }

/* Completion message */
.sdk-complete[b-dkgcfs5wox] {
    margin-top: auto;
    font-size: clamp(1.4rem, 6vmin, 2.6rem);
    text-align: center;
    opacity: 0.75;
}

/* Bottom number bar */
.sdk-numbers[b-dkgcfs5wox] {
    width: 100%;
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 0.3rem;
    padding-top: 1px;
    box-sizing: border-box;
}

/* Number buttons */
.sdk-num[b-dkgcfs5wox] {
    flex: 1 1 calc(20% - 0.4rem);
    max-width: 90px;
    min-width: 22px;
    aspect-ratio: 1 / 1;
    background: radial-gradient(circle at 40% 30%, #d9b95b, #a88235);
    border: 3px solid #6b5023;
    border-radius: 10px;
    font-size: clamp(0.95rem, 4vmin, 2.2rem);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    user-select: none;
    font-family: "Cinzel", serif;
    color: #2b251c;
    box-shadow: 0 4px 10px rgba(0,0,0,0.25), inset 0 1px 2px rgba(255,255,255,0.5);
    transition: transform 0.1s ease;
}

    .sdk-num:active[b-dkgcfs5wox] {
        transform: scale(0.92);
    }

    /* Erase button */
    .sdk-num.erase[b-dkgcfs5wox] {
        background: radial-gradient(circle, #b14a4a, #7a2e2e);
        border-color: #5a1c1c;
        color: #f5e9d8;
    }

/* Responsive tweaks */
@media (max-width: 400px) {
    .sdk-board[b-dkgcfs5wox] {
        gap: 1px;
    }
}

@media (min-width: 600px) {
    .sdk-num[b-dkgcfs5wox] {
        flex: 1 1 calc(10% - 0.4rem);
    }
}
/* /Components/Subcompnents/Tutorial.razor.rz.scp.css */


.tutorial-message[b-bg91i1t9y8] {
    position: fixed;
    bottom: 32px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(255,255,255,0.85);
    padding: 8px;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(0,0,0,0.25);
    z-index: 900000;
    font-size: 1rem;
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: 80vw;
    height: 120px;
    pointer-events: auto; /* allow clicking continue */
    width: 90vw;
}

/* Butler portrait image */
.tutorial-butler[b-bg91i1t9y8] {
    height: 90%;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid #d4af37;
    box-shadow: 0 0 8px rgba(255,215,0,0.6);
}

.tutorial-text[b-bg91i1t9y8] {
    white-space: pre-wrap; /* so line breaks show */
    min-height: 1.3em; /* prevents layout jumping during typing */
    max-height: 100px;
    overflow-y: auto;
}

    /* =============== 1930s ART-DECO SCROLLBAR =============== */

    .tutorial-text[b-bg91i1t9y8]::-webkit-scrollbar {
        width: 10px;
    }

    .tutorial-text[b-bg91i1t9y8]::-webkit-scrollbar-track {
        background: #1c1c1c; /* deep black track */
        border-radius: 6px;
        border: 2px solid #d4af37; /* gold edging */
        box-shadow: inset 0 0 6px rgba(0,0,0,0.6);
    }

    .tutorial-text[b-bg91i1t9y8]::-webkit-scrollbar-thumb {
        background: linear-gradient(180deg, #d4af37 0%, #b8922c 100%); /* gold bar */
        border-radius: 6px;
        border: 1px solid #fff3b0; /* subtle pale-gold highlight */
        box-shadow: inset 0 0 4px rgba(0,0,0,0.4), 0 0 4px rgba(255,215,0,0.5); /* glow like your highlight frame */
    }

        /* Optional Deco chevron motif on the thumb */
        .tutorial-text[b-bg91i1t9y8]::-webkit-scrollbar-thumb:vertical {
            background-image: repeating-linear-gradient( 45deg, rgba(255,255,255,0.15) 0, rgba(255,255,255,0.15) 2px, transparent 2px, transparent 6px );
        }

        .tutorial-text[b-bg91i1t9y8]::-webkit-scrollbar-thumb:hover {
            background: linear-gradient(180deg, #e6c665, #c09a34);
            cursor: pointer;
        }

/* Firefox support */
.tutorial-text[b-bg91i1t9y8] {
    scrollbar-width: thin;
    scrollbar-color: #d4af37 #1c1c1c;
}
/* /Components/Subcompnents/Typewriter.razor.rz.scp.css */
.chat-host[b-eswyd8vdvc] {
    box-sizing: border-box;
    background-color: #f4f0e6;
    border: 2px solid #2b2b2b;
    border-radius: 10px;
    margin-bottom: 1rem;
    padding: 0.5rem;
}

.chat-wrapper[b-eswyd8vdvc] {
    height: 130px;
    overflow: auto;
    position: relative; /* new */
    isolation: isolate; /* keeps z-layers clean */
    clip-path: inset(1 round 9px); /* 👈 clips everything (scrollbars too) inside the radius */

    scrollbar-width: thin;
    scrollbar-color: #6b5b4b #f4f0e6;
    scrollbar-gutter: stable both-edges;
}

/* Chrome / Edge / Safari */
.chat-wrapper[b-eswyd8vdvc]::-webkit-scrollbar {
    width: 10px; /* vertical bar width */
    height: 10px; /* horizontal bar height */
}

/* Track (background of scrollbar) */
.chat-wrapper[b-eswyd8vdvc]::-webkit-scrollbar-track {
    background: #f4f0e6;
    border-left: 1px solid #b2a58b;
    border-top: 1px solid #b2a58b;
    border-radius: 8px;
    box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.1);
    /* 👇 These pull the bars inward inside your border */
    margin-right: 6px;
    margin-bottom: 6px;
}

/* Scroll thumb (the draggable part) */
.chat-wrapper[b-eswyd8vdvc]::-webkit-scrollbar-thumb {
    background-color: #6b5b4b; /* dark brass tone */
    border-radius: 6px;
    border: 2px solid #f4f0e6; /* inset edge to match paper */
    box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3);
}

.chat-wrapper[b-eswyd8vdvc]::-webkit-scrollbar-thumb:hover {
    background-color: #4d4034;
}

.chat-panel[b-eswyd8vdvc] {
    width: 100%;
    white-space: pre-wrap;
    word-wrap: break-word;
}


.typewriter-text[b-eswyd8vdvc] {
    animation: scroll-up 0.4s ease-out;
    font-family: "Special Elite", system-ui;
    margin: 0;
    transition: transform 0.4s ease-out;
    white-space: pre-wrap;
    word-break: break-word;
    /*padding-left: 0.5em;*/ /* optional small left padding for all lines */
    /*text-indent: -0.5em;*/ /* pull first line back to cancel padding */
}

.col-content .typewriter-paper[b-eswyd8vdvc] {
    text-align: left;
}

.typewriter-text[b-eswyd8vdvc] {

}


.cursor[b-eswyd8vdvc] {
    color: #000;
    display: inline-block;
    width: 1ch;
}
/* /Components/Subcompnents/WaterSort.razor.rz.scp.css */
/* Root wrapper fills the parent */
.ws-wrap[b-1jbatrzaqf] {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    background: radial-gradient(circle at top, #f8f2e2 0%, #ded2b4 40%, #b09b76 100%);
    border-radius: 12px;
    border: 4px double #7d6231;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.25);
    padding: 0.6rem;
    font-family: "Cinzel", "Georgia", serif;
}

/* Board: row of tubes */
.ws-board[b-1jbatrzaqf] {
    flex: 1;
    min-height: 0;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 0.8rem;
    padding: 0.4rem;
    box-sizing: border-box;
}

/* Each tube – glass cylinder */
.ws-tube[b-1jbatrzaqf] {
    position: relative;
    width: min(64px, 10vw);
    height: 80%;
    display: flex;
    flex-direction: column-reverse;
    justify-content: flex-start;
    padding: 4px;
    box-sizing: border-box;
    border-radius: 0 0 18px 18px;
    border: 2px solid rgba(40, 32, 24, 0.65);
    /* glass shine */
    background: linear-gradient(to bottom, rgba(255,255,255,0.7), rgba(180,160,130,0.35));
    box-shadow: inset 0 0 6px rgba(255,255,255,0.9), 0 6px 12px rgba(0,0,0,0.4);
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

    .ws-tube[b-1jbatrzaqf]::before {
        content: "";
        position: absolute;
        top: 2px;
        left: 10%;
        right: 55%;
        height: 16%;
        border-radius: 999px;
        
        background: linear-gradient(to bottom, rgba(255,255,255,0.9), rgba(255,255,255,0));
        opacity: 0.7;
        pointer-events: none;
    }

    /* Selected tube highlight */
    .ws-tube.selected[b-1jbatrzaqf] {
        transform: translateY(-6px);
        box-shadow: 0 10px 20px rgba(0,0,0,0.55), 0 0 16px rgba(230, 195, 105, 0.9);
        border-color: #d9b95b;
    }

/* Water segments */
.ws-segment[b-1jbatrzaqf] {
    flex: 1 1 auto;
    
    transition: transform 0.18s ease, opacity 0.18s ease;
    /* ensure gradients are vertical (tube-like) */
    background-size: 100% 100%;
}

/* Empty space in tube */
.ws-empty[b-1jbatrzaqf] {
    background: transparent;
    box-shadow: none;
    opacity: 0.2;
}

/* The bottom-most filled segment gets rounded bottom corners */
.ws-tube .ws-segment:first-child:not(.ws-empty)[b-1jbatrzaqf] {
    border-bottom-left-radius: 14px;
    border-bottom-right-radius: 14px;
}

/* Color palette with vertical gradients */
.ws-color-1[b-1jbatrzaqf] {
    background: linear-gradient(to left, #8ec5fc, #5a8fbf);
    
}

.ws-color-2[b-1jbatrzaqf] {
    background: linear-gradient(to left, #f9e4b7, #d4b870);
}

.ws-color-3[b-1jbatrzaqf] {
    background: linear-gradient(to left, #f8b6b2, #d87872);
}

.ws-color-4[b-1jbatrzaqf] {
    background: linear-gradient(to left, #b3e6c4, #6fa984);
}

.ws-color-5[b-1jbatrzaqf] {
    background: linear-gradient(to left, #d3c1f4, #9a86ce);
}

.ws-color-6[b-1jbatrzaqf] {
    background: linear-gradient(to top, #f5d19b, #c98a42);
}

/* small hover effect on desktop */
.ws-tube:hover[b-1jbatrzaqf] {
    transform: translateY(-3px);
}
/* /Components/Subcompnents/WordscapesGame.razor.rz.scp.css */
/* Whole game layout (1:1 fit handled by parent) */
.wg-wrap[b-knrj4tl9de] {
    align-items: center;
    background: rgba(0, 0, 0, 0.4);
    border: 4px double #6e5730;
    border-radius: 12px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    font-family: "Cinzel", serif;
    height: 100%;
    justify-content: flex-start;
    padding: 0.5rem;
    width: 100%;
}

/* Scrambled word */

.wg-word[b-knrj4tl9de] {
    font-size: clamp(1.4rem, 6vmin, 3rem);
    font-weight: 600;
    letter-spacing: 0.2rem;
    margin-top: 0.5rem;
}

/* Guess so far */

.wg-guess[b-knrj4tl9de] {
    font-size: clamp(1.2rem, 5vmin, 2.4rem);
    height: 2.4rem;
    letter-spacing: 0.15rem;
    margin-top: 0.4rem;
    color: white;
    font-family: "Special Elite", system-ui;
}

/* Big letter buttons */

.wg-letters[b-knrj4tl9de] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center; /* center each row */
    margin-top: 1rem;
    padding: 0.25rem 0;
    width: 100%;
}


.wg-letter[b-knrj4tl9de] {
    align-items: center;
    aspect-ratio: 1/1;
    background: radial-gradient(circle at 40% 35%, #d9b95b, #b28a3d);
    border: 3px solid #6b5023;
    border-radius: 999px;
    cursor: pointer;
    display: flex;
    font-size: clamp(1.2rem, 5vmin, 2.2rem);
    justify-content: center;
    max-width: 15vw; /* responsive shrink */
    user-select: none;
    width: 110px; /* max size */
}


.wg-letter:active[b-knrj4tl9de] { transform: scale(0.92); }

/* Control buttons */

.wg-controls[b-knrj4tl9de] {
    display: flex;
    gap: 0.5rem;
    margin-top: auto;
    width: 100%;
}

.wg-btn[b-knrj4tl9de] {
    background: #d7c19a;
    border: 2px solid #6e5730;
    border-radius: 8px;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
    flex: 1;
    font-family: "Cinzel", serif;
    font-size: clamp(1rem, 4vmin, 1.6rem);
    padding: 0.6rem;
}

.wg-btn:active[b-knrj4tl9de] { transform: scale(0.95); }

.wg-start[b-knrj4tl9de] {
    font-size: 2rem;
    margin-bottom: auto;
    margin-top: auto;
    opacity: 0.6;
}
/* /Components/Subcompnents/WordSearch.razor.rz.scp.css */
.ws-wrap[b-pvv7403z1w] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    background: rgba(64, 64, 64, 0.5);
    color: #2b2b2b;
    border: 6px double #a47a2a;
    border-radius: 6px;
    padding: 0.5rem;
    box-shadow: inset 0 0 25px rgba(0,0,0,0.2);
}

.ws-grid[b-pvv7403z1w] {
    display: grid;
    gap: 2px;
    flex-grow: 1;
    width: 100%;
    aspect-ratio: 1 / 1;
    container-type: size; /* enables cqw / cqh for children */
}

.ws-cell[b-pvv7403z1w] {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    aspect-ratio: 1 / 1;
    justify-content: center;
    font-weight: bold;
    background: #e8dfca;
    border: 1px solid #c6b691;
    border-radius: 6px;
    transition: all 0.2s ease;
    user-select: none;
    align-items: center;
    font-size: min(5cqw, 5cqh);
    padding-top: 0.8cqh;
    padding-inline: 0.8cqw;
}

.ws-cell.sel[b-pvv7403z1w] {
    background: #d9b95b;
    color: #000;
    box-shadow: 0 0 8px #d9b95b;
}

.ws-cell.found[b-pvv7403z1w] {
    animation: ws-found-b-pvv7403z1w 0.6s ease forwards;
}

@keyframes ws-found-b-pvv7403z1w {
    0% {
        background: #d9b95b;
        color: #000;
        transform: scale(1);
    }

    50% {
        background: #f6e7a0;
        transform: scale(1.1);
    }

    100% {
        background: #d9b95b;
        color: #111;
        transform: scale(1);
    }
}

.ws-wordlist[b-pvv7403z1w] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem;
    margin-top: 0.5rem;
    font-family: 'UnifrakturCook', cursive;
    color: #3b3120;
}

.ws-word[b-pvv7403z1w] {
    background: #e8dfca;
    border-radius: 8px;
    padding: 0.3rem 0.6rem;
    border: 1px solid #c6b691;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

.ws-word.foundword[b-pvv7403z1w] {
    background: #d9b95b;
    color: #000;
    box-shadow: 0 0 10px #d9b95b;
}
/* /Components/Subcompnents/ZipGame.razor.rz.scp.css */
/* Root wrapper */
.zip-wrap[b-8ym3888dyg] {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background: rgba(64, 64, 64, 0.5);
    border-radius: 6px;
    border: 4px double #6e5730;
    font-family: "Cinzel", "Georgia", serif;
    color: #2b2520;
    padding: 0.4rem;
    gap: 0.4rem;
}

/* Header with title + stats */
.zip-header[b-8ym3888dyg] {
    flex: 0 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: clamp(0.6rem, 2.4vmin, 0.9rem);
    padding-inline: 0.2rem;
}

.zip-title[b-8ym3888dyg] {
    font-weight: 700;
}

.zip-stats span[b-8ym3888dyg] {
    opacity: 0.8;
}

/* Board: square-ish grid that grows */
.zip-board[b-8ym3888dyg] {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: repeat(var(--zip-size, 6), 1fr); /* overridden by Blazor grid */
    grid-auto-rows: 1fr;
    gap: 2px;
    padding: 4px;
    background: #2b2b2b;
    border-radius: 8px;
    box-sizing: border-box;
}

/* Each cell */
.zip-cell[b-8ym3888dyg] {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 3px;
    border: 1px solid #6e5730;
    background: #efe6cf;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(0.85rem, 3.8vmin, 1.6rem);
    font-weight: 600;
    color: #2b2520;
    user-select: none;
    transition: background 0.12s ease, transform 0.12s ease, box-shadow 0.12s ease;
}

    .zip-cell:hover[b-8ym3888dyg] {
        transform: translateY(-1px);
        box-shadow: 0 2px 6px rgba(0,0,0,0.25);
    }

    /* Clue numbers */
    .zip-cell.clue[b-8ym3888dyg] {
        background: #a7c6a0;
        border-color: #8b6a2e;
    }

    /* Path highlight */
    .zip-cell.path[b-8ym3888dyg] {
        background: #9cb3c8;
    }

    .zip-cell.current[b-8ym3888dyg] {
        box-shadow: 0 0 0 2px #f5d48a, 0 0 10px rgba(245,212,138,0.7);
    }

/* Text inside */
.zip-clue[b-8ym3888dyg] {
    position: relative;
    z-index: 2;
}

.zip-step[b-8ym3888dyg] {
    position: relative;
    z-index: 2;
    font-size: 0.75em;
    opacity: 0.9;
}

/* Footer area */
.zip-footer[b-8ym3888dyg] {
    flex: 0 0 auto;
    font-size: clamp(0.7rem, 2.6vmin, 1rem);
    text-align: center;
    background: #ede3c9;
    border-radius: 8px;
    padding: 0.35rem 0.5rem;
    box-shadow: inset 0 1px 2px rgba(255,255,255,0.7);
}

.zip-message strong[b-8ym3888dyg] {
    color: #6e5730;
}

/* Disabled state */
.zip-wrap.disabled[b-8ym3888dyg] {
    justify-content: center;
    align-items: center;
}

/* Obstacles */
.zip-cell.obstacle[b-8ym3888dyg] {
    background: #3b2f2f;
    border: 2px solid #1e1111;
    color: #f2d0a7;
    cursor: not-allowed;
}

.zip-obstacle[b-8ym3888dyg] {
    font-weight: 900;
    font-size: 1.2em;
    opacity: 0.9;
}

.pulse[b-8ym3888dyg] {
    animation: pulse-bg-b-8ym3888dyg 2s ease-in-out infinite;
}

/* Tweak the color + alpha to taste */
@keyframes pulse-bg-b-8ym3888dyg {
    0% {
        background-color: rgba(180, 180, 255, 0.6); /* more transparent */
    }

    50% {
        background-color: rgba(180, 180, 255, 1); /* less transparent */
    }

    100% {
        background-color: rgba(180, 180, 255, 0.6);
    }
}
