
/* ==================================================
   BULLWORTH V3.4 — CLASS MINIGAMES + CONSUMO
================================================== */

.bullworth-minigames-window {
    width: min(790px, calc(100vw - 36px));
    height: min(690px, calc(100vh - 82px));
}

.bullworth-minigames-content,
.minigame-player-content {
    overflow: auto !important;
    background:
        repeating-linear-gradient(
            0deg,
            rgba(102,76,38,.026) 0 1px,
            transparent 1px 4px
        ),
        #e3d5b3 !important;
    color: #2b241b;
}

.bullworth-minigames-header {
    display: grid;
    grid-template-columns: 62px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 12px;
    margin-bottom: 10px;
    background: #cbb98e;
    border: 2px inset #91784e;
}

.bullworth-minigames-header h2 {
    margin: 0;
    font: bold 24px Georgia, serif;
}

.bullworth-minigames-header p {
    margin: 3px 0 0;
    color: #725834;
    font: 9px Georgia, serif;
    letter-spacing: 2px;
}

.minigame-overall-progress {
    min-width: 108px;
    padding: 7px 9px;
    background: #153f35;
    border: 2px double #b68b3f;
    color: #e4cf91;
    text-align: center;
}

.minigame-overall-progress small,
.minigame-overall-progress strong {
    display: block;
}

.minigame-overall-progress small {
    font: 7px "Courier New", monospace;
}

.minigame-overall-progress strong {
    margin-top: 2px;
    font: bold 18px Georgia, serif;
}

.minigame-section-label {
    margin: 8px 0 7px;
    padding: 5px 8px;
    color: #e5d2a1;
    background: #173f35;
    border-left: 4px solid #b98d3e;
    font: bold 10px Georgia, serif;
    letter-spacing: 2px;
}

.arcade-label {
    margin-top: 16px;
}

.minigame-hub-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px;
}

.minigame-arcade-row {
    display: grid;
    grid-template-columns: minmax(220px,330px);
}

.minigame-card {
    min-height: 145px;
    display: grid;
    grid-template-rows: 56px auto 1fr auto;
    gap: 4px;
    padding: 10px;
    background: linear-gradient(#ddcfaa,#c7b68d);
    border: 3px outset #b6a077;
    color: #30271d;
    text-align: center;
    cursor: pointer;
}

.minigame-card:hover,
.minigame-card:focus {
    background: linear-gradient(#ede0bd,#d1be91);
    outline: 2px dotted #71582f;
}

.minigame-card:active {
    border-style: inset;
}

.minigame-card-icon {
    width: 53px;
    height: 53px;
    margin: 0 auto;
    display: grid;
    place-items: center;
    background: #153f35;
    border: 3px double #b78b3c;
    color: #e1c56e;
    font: bold 11px "Courier New", monospace;
    box-shadow: 2px 3px 0 rgba(0,0,0,.23);
}

.minigame-card.art .minigame-card-icon { background:#5f3154; }
.minigame-card.biology .minigame-card-icon { background:#365e39; }
.minigame-card.mechanics .minigame-card-icon { background:#53554f; }
.minigame-card.chemistry .minigame-card-icon { background:#6a2b25; }
.minigame-card.music .minigame-card-icon { background:#243f61; font-size:22px; }
.minigame-card.geography .minigame-card-icon { background:#28545d; }
.minigame-card.english .minigame-card-icon { background:#6a4e25; }
.minigame-card.consumo .minigame-card-icon { background:#7d251f; }

.minigame-card strong {
    font: bold 13px Georgia, serif;
}

.minigame-card small {
    color: #6b5739;
    font: 8px/1.3 Georgia, serif;
}

.minigame-card em {
    color: #6b251f;
    font: bold 8px "Courier New", monospace;
    font-style: normal;
}

.minigame-hub-note {
    margin: 12px 0 0;
    color: #685538;
    font: italic 9px Georgia, serif;
}

.bullworth-minigame-player {
    width: min(735px, calc(100vw - 36px));
    height: min(620px, calc(100vh - 82px));
}

.minigame-player-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 9px;
    padding: 9px 10px;
    background: #c9b88e;
    border: 2px inset #90764b;
}

.minigame-player-header small {
    color: #6d5735;
    font: 8px "Courier New", monospace;
}

.minigame-player-header h2 {
    margin: 2px 0 0;
    font: bold 21px Georgia, serif;
}

.minigame-player-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.minigame-player-stats span {
    padding: 5px 7px;
    background: #113c32;
    border: 1px solid #a9823d;
    color: #cfb36b;
    font: 8px "Courier New", monospace;
}

.minigame-player-stats strong {
    color: #f1dd9c;
}

.minigame-stage {
    min-height: 390px;
    padding: 12px;
    background: #d8c8a5;
    border: 4px ridge #826842;
    overflow: hidden;
}

.minigame-player-controls {
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: 7px;
    align-items: center;
    margin-top: 8px;
}

.minigame-player-controls span {
    color: #5d4930;
    font: 9px Georgia, serif;
}

/* Art */
.art-stage {
    display:grid;
    grid-template-columns:1fr 190px;
    gap:12px;
}

.art-board {
    position:relative;
    min-height:340px;
    background:
        repeating-linear-gradient(
            0deg,
            transparent 0 23px,
            rgba(103,84,54,.12) 23px 24px
        ),
        #efe3c6;
    border:3px inset #9d865f;
    cursor:crosshair;
}

.art-target-path {
    position:absolute;
    inset:35px;
    border:8px dashed rgba(107,42,35,.48);
    border-radius:42% 55% 38% 50%;
    transform:rotate(-7deg);
    pointer-events:none;
}

.art-canvas {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
}

.art-instructions {
    padding:9px;
    background:#caba94;
    border:2px inset #8e764d;
    font:9px/1.4 Georgia,serif;
}

/* Biology */
.bio-stage {
    display:grid;
    grid-template-columns:1fr 210px;
    gap:12px;
}

.bio-specimen {
    position:relative;
    min-height:340px;
    background:#c5cfaf;
    border:4px ridge #7b6d48;
}

.bio-specimen-shape {
    position:absolute;
    left:50%;
    top:50%;
    width:180px;
    height:250px;
    transform:translate(-50%,-50%);
    background:#73945c;
    border:4px solid #3b5b31;
    border-radius:50% 50% 42% 42%;
}

.bio-target {
    position:absolute;
    width:46px;
    height:38px;
    border-radius:50%;
    border:3px solid rgba(255,255,255,.65);
    background:rgba(144,55,45,.72);
    color:transparent;
    cursor:pointer;
}

.bio-target:hover {
    box-shadow:0 0 0 3px rgba(230,203,104,.65);
}

.bio-question {
    padding:10px;
    background:#cfbd94;
    border:2px inset #8a7046;
    font:10px/1.4 Georgia,serif;
}

/* Mechanics */
.mechanics-stage {
    display:grid;
    grid-template-columns:1fr 190px;
    gap:12px;
}

.mechanics-machine {
    min-height:330px;
    position:relative;
    background:#7e8179;
    border:5px ridge #4c4d48;
}

.mechanics-bolt {
    position:absolute;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#b7b7aa;
    border:5px outset #d1d1c3;
    color:#45453e;
    font:bold 20px "Courier New",monospace;
    cursor:pointer;
    user-select:none;
}

.mechanics-bolt.tight {
    background:#8faf7d;
}

.mechanics-panel {
    padding:9px;
    background:#c6b994;
    border:2px inset #806b49;
    font:9px/1.4 Georgia,serif;
}

/* Breaking B.A.D. */
.chem-stage {
    display:grid;
    gap:12px;
}

.chem-memory-sequence {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:10px;
    max-width:430px;
    margin:30px auto;
}

.chem-pad {
    min-height:110px;
    border:5px outset #88663c;
    cursor:pointer;
    opacity:.72;
}

.chem-pad.active {
    opacity:1;
    filter:brightness(1.35);
}

.chem-pad.a { background:#6f9c58; }
.chem-pad.b { background:#5a7ca0; }
.chem-pad.c { background:#a0665d; }
.chem-pad.d { background:#b09348; }

.chem-note {
    text-align:center;
    color:#5c4931;
    font:9px Georgia,serif;
}

/* Music */
.music-lane {
    position:relative;
    height:340px;
    overflow:hidden;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    background:#20242a;
    border:4px inset #615944;
}

.music-column {
    position:relative;
    border-right:1px solid rgba(255,255,255,.12);
}

.music-hit-zone {
    position:absolute;
    left:0;
    right:0;
    bottom:22px;
    height:42px;
    border-top:3px solid #d7aa45;
    border-bottom:3px solid #d7aa45;
    background:rgba(214,170,71,.10);
}

.music-note {
    position:absolute;
    width:60%;
    left:20%;
    height:26px;
    background:#d6b65e;
    border:2px solid #f3dfa1;
    box-shadow:0 3px 0 rgba(0,0,0,.25);
}

.music-key-labels {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:5px;
    margin-top:7px;
}

.music-key-labels span {
    padding:6px;
    text-align:center;
    background:#c4b58f;
    border:2px outset #dcccaa;
    font:bold 11px "Courier New",monospace;
}

/* Geography */
.geo-card {
    max-width:560px;
    margin:20px auto;
    padding:16px;
    background:#e9dec1;
    border:4px double #7b6138;
}

.geo-card h3 {
    margin-top:0;
    font:bold 20px Georgia,serif;
}

.geo-options {
    display:grid;
    gap:7px;
}

.geo-options button {
    padding:9px;
    background:#c9b991;
    border:3px outset #decea7;
    text-align:left;
    font:10px Georgia,serif;
}

/* English */
.english-board {
    max-width:590px;
    margin:15px auto;
    text-align:center;
}

.english-letters {
    display:flex;
    justify-content:center;
    gap:7px;
    flex-wrap:wrap;
    margin:16px 0;
}

.english-letter {
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    background:#d5c497;
    border:3px outset #e7d6ae;
    color:#34291d;
    font:bold 22px Georgia,serif;
}

.english-input-row {
    display:flex;
    gap:7px;
    max-width:430px;
    margin:0 auto;
}

.english-input-row input {
    flex:1;
    min-width:0;
    padding:8px;
    background:#f3e8ca;
    border:3px inset #9e8962;
    font:14px "Courier New",monospace;
}

.english-found {
    margin-top:12px;
    min-height:80px;
    padding:8px;
    background:#cfbe97;
    border:2px inset #90764d;
    text-align:left;
    font:9px/1.5 "Courier New",monospace;
}

/* ConSumo */
.consumo-shell {
    display:grid;
    grid-template-columns:1fr 170px;
    gap:10px;
}

.consumo-canvas-wrap {
    position:relative;
    min-height:360px;
    background:#0c211a;
    border:6px ridge #755328;
}

#consumo-canvas {
    display:block;
    width:100%;
    height:360px;
    image-rendering:pixelated;
}

.consumo-sidebar {
    padding:10px;
    background:#b88e4a;
    border:4px ridge #6e4b24;
    color:#22170f;
    font:9px/1.45 "Courier New",monospace;
}

.consumo-sidebar h3 {
    margin-top:0;
    font:bold 18px Georgia,serif;
}

.consumo-sidebar strong {
    color:#6e1e18;
}

@media (max-width:850px) {
    .minigame-hub-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .art-stage,
    .bio-stage,
    .mechanics-stage,
    .consumo-shell {
        grid-template-columns:1fr;
    }
}
