/* ============================================================
   SANSKRIT ALPHABET LEARNING — RESPONSIVE STYLESHEET v3
   Breakpoints: 800 | 560 | 420 | 320
   ============================================================ */

/* --- RESET / BASE --- */
*, *::before, *::after { box-sizing: border-box; }

/* @font-face {
    font-family: 'Raja';
    src: url('fonts/Raja.woff') format('woff'),
         url('/fonts/Raja.woff') format('woff');
    font-weight: normal;
    font-style: normal;
} */
@font-face {
    font-family: 'Raja';
    src: url('../fonts/Raja.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}
body {
    font-family: 'Georgia', 'Times New Roman', serif;
    /* background-color: #f0f8ff; */
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    min-height: 100vh;
}

div#wrapper {
    width: 100%;
    max-width: 1000px;
}

/* ============================================================
   MAIN CONTAINER — no padding (keeps JS click coords intact)
   ============================================================ */
#main-container {
    width: 100%;
    /* max-width: 1000px; */
    background: var(--interface-bg);
    border: 5px solid var(--border-gold);
    position: relative;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

/* ============================================================
   TITLE
   ============================================================ */
#top-title {
    text-align: center;
    color: var(--primary-blue);
    font-size: var(--title-size);
    font-weight: bold;
    /* padding: 10px var(--pillar) 4px; */
    padding: 10px 0 0 0;
    /* line-height: 1.2; */
    margin-bottom: -10px;
}

/* ============================================================
   SIDE PILLARS  (JS-safe: absolute overlay)
   ============================================================ */
.btn-side {
    position: absolute;
    top: 0;
    height: 100%;
    width: var(--pillar);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #40C4FF;
    user-select: none;
    background: rgba(255,255,255,0.1);
    z-index: 10;
}
div#fs-wrapper {
    position: absolute;
    bottom: 0;
    height: 30%;
    /* background: red; */
    z-index: 1000;
    width: 100%;
    cursor: default;
}
/* #play-pause-btn:has(#fullscreen-toggle:hover) {
    background: rgba(255,255,255,0.1); 
    color: #40C4FF;
} */

#play-pause-btn:has(#fs-wrapper:hover) {
    background: rgba(255,255,255,0.1); /* Return to original parent color */
    color: #40C4FF;
}
#fs-wrapper:has(#fullscreen-toggle:hover) {
    /* background: red;  */
    color: #40C4FF;
    
}
/* #fs-wrapper:hover {
	background: green;
} */

#stop-btn       { left: 0;  border-right: 1px solid rgba(0,0,0,0.05); }
#play-pause-btn { right: 0; border-left:  1px solid rgba(0,0,0,0.05); }

.label-strip {
    width: 1ch;
    word-wrap: break-word;
    text-align: center;
    font-size: clamp(14px, 2.8vw, 32px);
    font-weight: bold;
    line-height: 2.2;
    margin-bottom: 20px;
}

.btn-side:hover {
    color: #3bb2e7;
    background: radial-gradient(circle at center,
        rgba(255,255,255,0.45) 0%,
        rgba(255,255,255,0) 75%
    );
}

/* ============================================================
   INNER CONTENT INSET
   margin-left/right keeps content clear of the absolute pillars
   ============================================================ */
#focus-area,
.controls,
#alphabet-container,
#app-footer {
    margin-left:  var(--pillar);
    margin-right: var(--pillar);
}

/* ============================================================
   FOCUS AREA  — DESKTOP / TABLET (three columns side by side)
   ============================================================ */
#focus-area {
    display: flex;
    justify-content: space-around;
    align-items: flex-end;
    padding: 10px 0;
    gap: 4px;
}

.focus-column {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    min-width: 0;
}

#big-roman {
    font-size: var(--big-roman-size);
    font-weight: bold;
    color: var(--primary-blue);
    text-align: center;
    margin-bottom: 8px;
    line-height: 1;
}

#big-letter {
    font-family: 'Raja';
    font-size: var(--big-letter-size);
    color: var(--primary-blue);
    line-height: 1;
    text-align: center;
    margin-bottom: 8px;
}

#articulation-focus {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
}

#articulation-img {
    /* height: clamp(36px, 7vw, 70px); */
    height: clamp(46px, 10vw, 70px);
    width: auto;
    object-fit: contain;
}

#articulation-text {
    font-size: clamp(11px, 1.8vw, 18px);
    font-weight: bold;
    color: var(--primary-blue);
    /* margin-top: 5px; */
    text-transform: capitalize;
    text-align: center;
    margin: 0;
}

/* ============================================================
   TOGGLE BUTTONS
   ============================================================ */
.toggle-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 6px;
}

.toggle-label {
    margin-top: 6px;
    font-size: clamp(8px, 1.4vw, 11px);
    font-weight: bold;
    color: var(--primary-blue);
    letter-spacing: 0.5px;
}

.toggle-btn {
    width: clamp(40px, 7vw, 60px);
    padding: 5px 0;
    font-size: clamp(10px, 1.6vw, 13px);
    font-weight: bold;
    cursor: pointer;
    background-color: #0044CC;
    color: #FFFFFF;
    border: 1px solid #0033AA;
    border-radius: 4px;
    box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
    text-align: center;
    user-select: none;
    transition: all 0.15s ease;
    margin-top: 10px;
}

.toggle-btn:active { transform: translateY(2px); box-shadow: 0 1px 3px rgba(0,0,0,0.2); }
.toggle-btn:hover  { background-color: #0033BB; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.toggle-btn.on, .toggle-btn.off { background: var(--primary-blue); color: white; }

/* ============================================================
   CONTROLS ROW
   ============================================================ */
.controls {
    display: flex;
    justify-content: center;
    padding: 4px 0 8px;
}

.control-row {
    display: flex;
    justify-content: space-around;
    align-items: center;
    width: 100%;
    gap: 8px;
}

.control-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    min-width: 0;
}

.control-group select {
    font-size: clamp(13px, 2vw, 18px);
    padding: 2px 4px;
    min-width: 46px;
    border: 1px solid #0044CC;
    border-radius: 4px;
    background-color: #FFFFFF;
    color: #0044CC;
    font-weight: bold;
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0,0,0,0.16);
    outline: none;
    transition: all 0.2s ease;
}

.control-group select:hover { background-color: #f0f4ff; }

.control-label {
    margin-top: 6px;
    font-size: clamp(8px, 1.3vw, 13px);
    font-weight: bold;
    color: var(--primary-blue);
    text-transform: uppercase;
    text-align: center;
    white-space: nowrap;
}

/* ============================================================
   ALPHABET CONTAINER
   ============================================================ */
#alphabet-container {
    background: rgba(255,255,255,0.7);
    padding: 5px 4px;
}

/* ============================================================
   ROWS & GROUPS
   ============================================================ */
.alphabet-row {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 0;
}

/* Svāra group (13 letters) must not crowd out anusvāra + visarga.
   Cap it so the right two single-letter groups always have space.
   13/15 = 86.7% of total letter budget → use ~82% to leave a visible gap. */
#alphabet-container > .alphabet-row:first-child .letter-group:first-child {
    max-width: calc(var(--lbox) * 13);
}

/* Ensure anusvāra and visarga groups each have at minimum one box width + label */
#alphabet-container > .alphabet-row:first-child .letter-group:nth-child(2),
#alphabet-container > .alphabet-row:first-child .letter-group:nth-child(3) {
    min-width: calc(var(--lbox) + 4px);
    flex-shrink: 0;
}

.letter-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 1;
}

/* KEY: nowrap keeps every row on one line. Size via --lbox/--lfont */
.letters-wrap {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
}

.group-label {
    font-size: clamp(13px, 1.3vw, 15px);
    font-style: italic;
    color: var(--primary-blue);
    margin-top: 2px;
    border-top: 1px solid rgba(0,0,204,0.1);
    width: 100%;
    text-align: center;
    white-space: nowrap;
}

/* ============================================================
   LETTER BOXES
   Fixed width/height from token. The token itself (calc-based)
   guarantees 15 boxes fit the available container width.
   ============================================================ */
.letter-box {
    font-family: 'Raja';
    width:  var(--lbox);
    height: var(--lbox);
    flex-shrink: 0;
    flex-grow: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: var(--lfont);
    color: var(--primary-blue);
    user-select: none;
    touch-action: none;
    transition: background 0.1s;
    position: relative;
}

.letter-box:hover { background-color: rgba(255,255,0,0.5); }

/* Roman hint: CSS hover (desktop) + .show-hint class (mobile JS) */
.roman-hint {
    display: none;
    position: absolute;
    top: -18px;
    left: 50%;
    transform: translateX(-50%);
    color: var(--primary-blue);
    font-family: 'Georgia', serif;
    font-size: clamp(10px, 1.6vw, 18px);
    background: rgba(217, 233, 249, 0.95);
    border: 1px solid rgba(0,0,204,0.2);
    padding: 1px 6px;
    border-radius: 3px;
    white-space: nowrap;
    z-index: 200;
    pointer-events: none;
}
.letter-box:hover .roman-hint { display: block; }
.letter-box.show-hint .roman-hint { display: block; }

/* Sparser rows get extra margin to spread out */
.alphabet-row.dental-labial .letter-box { margin: 0 clamp(2px, 1.2vw, 14px); }
.alphabet-row.last-row       .letter-box { margin: 0 clamp(4px, 1.8vw, 20px); }

/* First/last letter touches container edge */
.alphabet-row .letter-group:first-child .letter-box:first-child { margin-left: 0; }
.alphabet-row .letter-group:last-child  .letter-box:last-child  { margin-right: 0; }

/* ============================================================
   SPARSHA SECTION
   ============================================================ */
#alphabet-sparsha {
    border: 2px dashed #a4cef8;
    margin-top: 10px;
    padding-bottom: 6px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.alphabet-row.dental-labial {
    display: flex;
    justify-content: space-between;
    width: 100%;
    padding-bottom: 4px;
    margin-top: 5px;
}

#sparsha {
    width: 100%;
    text-align: center;
    /* margin-top: 0; */
    margin-top: -10px;
    font-size: clamp(11px, 1.8vw, 17px);
    font-family: 'Georgia', serif;
    font-style: italic;
    font-weight: bold;
    color: var(--primary-blue);
    letter-spacing: 2px;
    /* line-height: 1.4; */
}

/* ============================================================
   STATE CLASSES
   ============================================================ */
.selected-range { background-color: var(--colorB); outline: 1px solid #7cb342; }
.active { background-color: var(--colorA) !important; border-radius: 4px; }

/* ============================================================
   FOOTER
   ============================================================ */
#app-footer {
    /* padding: 10px 0; */
    margin-top: 5px;
    margin-bottom: 10px;
    text-align: center;
    font-size: clamp(10px, 1.6vw, 14px);
    color: var(--primary-blue);
    opacity: 0.7;
    border-top: 1px solid rgba(0,0,204,0.1);
    line-height: 1.6;
}
#app-footer a { color: var(--primary-blue); }


/* ============================================================
   RESPONSIVE BREAKPOINTS
   ============================================================ */

/* ── 800px: tablet ─────────────────────────────────────────── */
@media (max-width: 800px) {
    :root {
        --pillar: 44px;
        --big-letter-size: clamp(90px, 20vw, 200px);
        --big-roman-size:  clamp(30px,  7vw,  60px);
        /* usable width ≈ vw - 2×44px - 8px padding = vw - 96px
           svāra row: 15 boxes must fit → lbox = (vw - 96) / 15
           At 800px: (800-96)/15 = 46.9 → cap at 40px            */
        --lbox:  clamp(20px, calc((100vw - 124px) / 15), 40px);
        --lfont: clamp(16px, calc((100vw - 124px) / 16), 38px);
    }
    .label-strip { font-size: clamp(13px, 2.5vw, 26px); line-height: 2.1; margin-bottom: 12px; }
}

@media (max-width: 750px) {
	
	#alphabet-container > .alphabet-row:first-child .letter-group:nth-child(2) .group-label,
    #alphabet-container > .alphabet-row:first-child .letter-group:nth-child(3) .group-label {
        display: none;
    }
	
}

/* ── 560px: large phone ───────────────────────────────────── */
@media (max-width: 560px) {
    :root {
        --pillar: 32px;
        --big-letter-size: clamp(60px, 20vw, 130px);
        --big-roman-size:  clamp(22px,  8vw,  44px);
        /* usable = vw - 2×32px - 8px = vw - 72px
           At 560px: (560-72)/15 = 32.5 → fine
           At 420px: (420-72)/15 = 23.2 → still fine            */
        --lbox:  clamp(16px, calc((100vw - 100px) / 15), 32px);
        --lfont: clamp(13px, calc((100vw - 100px) / 16), 28px);
    }
    #top-title { padding: 8px var(--pillar) 4px; }
    .label-strip { font-size: clamp(11px, 3vw, 20px); line-height: 2.0; margin-bottom: 8px; }
    .group-label { white-space: normal; font-size: clamp(11px, 2vw, 14px); }
    /* Extra gap between anusvāra and visarga single-letter groups */
    #alphabet-container > .alphabet-row:first-child .letter-group:nth-child(3) {
        margin-left: clamp(4px, 1vw, 10px);
    }
    .alphabet-row.dental-labial .letter-box { margin: 0 clamp(0px, 0.8vw, 6px); }
    .alphabet-row.last-row       .letter-box { margin: 0 clamp(1px, 1.2vw, 10px); }
    .control-label { white-space: normal; font-size: clamp(7px, 1.8vw, 11px); }
    
    /* #alphabet-container > .alphabet-row:first-child .letter-group:nth-child(2) .group-label,
    #alphabet-container > .alphabet-row:first-child .letter-group:nth-child(3) .group-label {
        display: none;
    } */
}

/* ── 420px: small phone — tighten letters + redesign focus area */
@media (max-width: 420px) {
    :root {
        --pillar: 26px;
        --big-letter-size: clamp(52px, 20vw, 90px);
        --big-roman-size:  clamp(20px,  8vw, 36px);
        /* usable = vw - 2×26px - 8px = vw - 60px
           At 420px: (420-60)/15 = 24px  ✓
           At 320px: (320-60)/15 = 17.3px ✓                      */
        --lbox:  clamp(11px, calc((100vw - 90px) / 15), 24px);
        --lfont: clamp( 9px, calc((100vw - 90px) / 16), 22px);
    }

    #top-title {
        font-size: clamp(15px, 5.5vw, 22px);
        padding: 8px var(--pillar) 4px;
    }

    .label-strip {
        font-size: clamp(10px, 3.5vw, 17px);
        line-height: 1.9;
        margin-bottom: 6px;
    }

    /* ── Focus area: 3 equal columns, each self-contained ─────
       Every .focus-column is a flex column:
         [content: big-roman / big-letter / art-img+text]
         [toggle-container]
       No grid-row spanning needed — all three columns share
       the same natural height automatically.                     */
    #focus-area {
        display: flex;
        flex-direction: row;
        justify-content: space-around;
        align-items: stretch;      /* all columns same height */
        padding: 6px 0 2px;
        gap: 2px;
    }

    .focus-column {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: space-between;  /* content top, toggle bottom */
        flex: 1;
        min-width: 0;
    }

    /* Content area inside each column fills remaining space */
    .focus-column > *:first-child {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #big-roman {
        font-size: var(--big-roman-size);
        margin-bottom: 0;
        line-height: 1.1;
    }

    #big-letter {
        font-size: var(--big-letter-size);
        margin-bottom: 0;
        /* line-height: 1.05; */
    }

    #articulation-focus {
        /* justify-content: center; */
    }

    #articulation-img  { height: clamp(46px, 10vw, 42px); }
    #articulation-text { font-size: clamp(9px, 2.5vw, 12px); /* margin-top: 2px; */ margin: 0;}

    .toggle-btn {
        width: clamp(32px, 9vw, 44px);
        font-size: clamp(9px, 2.5vw, 12px);
        margin-top: 4px;
        padding: 3px 0;
    }
    .toggle-label { font-size: clamp(7px, 2vw, 10px); margin-top: 3px; }
    .toggle-container { margin-top: 0; }

    /* Controls */
    .control-row { gap: 4px; }
    .control-group select { font-size: 12px; min-width: 36px; padding: 2px; }
    .control-label { font-size: clamp(6px, 2vw, 10px); white-space: normal; }

    /* Group labels */
    .group-label { white-space: normal; font-size: clamp(11px, 2.8vw, 13px); }

    /* Truncate anusvāra/visarga labels that overlap at narrow widths */
   /*  #alphabet-container > .alphabet-row:first-child .letter-group:nth-child(2) .group-label,
    #alphabet-container > .alphabet-row:first-child .letter-group:nth-child(3) .group-label {
        overflow: hidden;
        text-overflow: clip;
        max-width: calc(var(--lbox) + 4px);
        white-space: nowrap;
    } */
    .alphabet-row.dental-labial .letter-box { margin: 0; }
    .alphabet-row.last-row       .letter-box { margin: 0 clamp(0px, 1vw, 6px); }

	.group-label span {
    display: none;
}
}

/* ── 320px: minimum supported width ──────────────────────── */
@media (max-width: 320px) {
    :root {
        --pillar: 20px;
        --big-letter-size: clamp(44px, 18vw, 70px);
        --big-roman-size:  clamp(16px,  7vw, 28px);
        /* usable = vw - 2×20px - 8px = vw - 48px
           At 320px: (320-48)/15 = 18.1px ✓                      */
        --lbox:  clamp(10px, calc((100vw - 60px) / 15), 18px);
        --lfont: clamp( 9px, calc((100vw - 60px) / 16), 16px);
    }

    #top-title { font-size: clamp(13px, 5vw, 18px); padding: 6px var(--pillar) 3px; }

    .label-strip { font-size: clamp(9px, 3.5vw, 14px); line-height: 1.7; margin-bottom: 4px; }

    .toggle-btn { width: clamp(26px, 9vw, 36px); font-size: 8px; padding: 2px 0; margin-top: 2px; }
    .toggle-label { font-size: 6px; margin-top: 2px; }

    #articulation-img  { height: clamp(20px, 7vw, 34px); }
    #articulation-text { font-size: clamp(8px, 2.5vw, 11px); }

    .control-group select { font-size: 10px; min-width: 28px; padding: 1px 2px; }
    .control-label { font-size: 6px; }

    .group-label { white-space: normal; font-size: clamp(9px, 3vw, 11px); }
    /* #alphabet-container > .alphabet-row:first-child .letter-group:nth-child(2) .group-label,
    #alphabet-container > .alphabet-row:first-child .letter-group:nth-child(3) .group-label {
        overflow: hidden;
        text-overflow: clip;
        max-width: calc(var(--lbox) + 2px);
        white-space: nowrap;
    } */
    .alphabet-row.dental-labial .letter-box { margin: 0; }
    .alphabet-row.last-row       .letter-box { margin: 0 clamp(0px, 0.8vw, 4px); }
}

/* Fullscreen Button Styling */


/* ==== full screen ===== */
/* 1. The Wrapper: Becomes the "Stage" */
#fullscreen-wrapper:fullscreen {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f0f8ff; /* Your light blue backdrop */
    width: 100vw;
    height: 100vh;
}

/* 2. The Container: Stays exactly as it was designed */
#fullscreen-wrapper:fullscreen #main-container {
    /* Keep your specific proportions */
    width: 100%;
    max-width: 1000px;
    /* aspect-ratio: 1000 / 925; */
    
    /* Ensure the gold border and background stay pinned to the content */
    border: 5px solid var(--border-gold);
    background: var(--interface-bg);
    
    /* This forces absolute items (STOP/PLAY) to stay relative to THIS box */
    position: relative; 
    
    /* Prevent the content from getting too tall for the screen */
    max-height: 100vh;
    box-sizing: border-box;
}

/* Optional: Clean up the default backdrop */
#fullscreen-wrapper::backdrop {
    background-color: #f0f8ff;
}

#fullscreen-toggle {
    position: absolute;
    bottom: 0px;
    width: 100%;
    background: none;
    border: none;
    color: #40C4FF;
    cursor: pointer;
    padding: 0;
    z-index: 20;
}

#fullscreen-toggle:hover {
   /*  color: #00CCFF; */
    color: var(--primary-blue);
}

#fullscreen-toggle svg {
    width: 80%;
    height: 80%;
}

/* ========= Specific changes to Flashcard ============== */
.control-group select {
    font-size: clamp(13px, 2vw, 15px);
    /* padding: 2px 4px; */
    padding: 0;
    min-width: 46px;
    border: 1px solid #0044CC;
    border-radius: 4px;
    background-color: #FFFFFF;
    color: #0044CC;
    /* font-weight: bold; */
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0,0,0,0.16);
    outline: none;
    transition: all 0.2s ease;
    margin: 5px 0;
}
div#delay-select {
    font-size: 10px;
    text-align: center;
    font-weight: normal;
}

select#delay-options {
    font-size: clamp(10px, 2.8vw, 14px);
    padding: 0;
    width: 100%;
    max-width: 45px;
    margin-top: 5px;
    border-radius: 3px;
    outline: none;
}
#delay-label {
    margin-top: 6px;
    font-size: clamp(8px, 1.3vw, 13px);
    /* font-weight: bold; */
    color: var(--primary-blue);
    text-transform: uppercase;
    text-align: center;
    white-space: nowrap;
}
#big-letter-wrap {
    height: var(--big-letter-size);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

/* #big-letter {
    transition: max-height 300ms ease, opacity 300ms ease;
    overflow: hidden;
    max-height: 300px;
    opacity: 1;
    line-height: 1;
    margin-bottom: 0; 
} */
#big-letter {
    transition: opacity 500ms ease;
}

/* ==== red / green buttons ==== */
/* ==== red / green buttons ==== */
#controls {
    /* Uses your variable to align with the rest of the app content */
    background: var(--interface-bg);
    display: flex;
    padding: 10px var(--pillar) 20px var(--pillar);
    
    /* 1) The 3px gap between the buttons in the center */
    gap: 3px; 
}
/* BIG Letter transition — collapse/expand on card change */
/* #big-letter {
    transition: max-height 300ms ease, opacity 300ms ease;
    overflow: hidden;
    max-height: 300px;
    opacity: 1;
} */
/* These containers ensure the buttons fill the available space */
.red-green {
    flex: 1;
    display: flex;
}

#controls button {
    cursor: pointer;
    border: none;
    
    /* 1) Forces buttons to be as wide as possible */
    width: 100%; 
    height: 45px;
    
    font-family: "Georgia", "Times New Roman", serif;
    font-size: clamp(12px, 2vw, 15px);
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: white;
    border-radius: 4px;
    
    /* High-contrast 3D Bevel effect matching the screenshot */
    box-shadow: 
        inset 0 1px 1px rgba(255, 255, 255, 0.5), 
        0 4px 6px rgba(0, 0, 0, 0.3);
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
    transition: transform 0.1s;
}

#controls button:active {
    transform: translateY(2px);
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
}

/* 2) Red Button aligned with ROMAN edge */
#red {
    background: linear-gradient(to bottom, #ff4500 0%, #b22222 50%, #8b0000 100%);
}

/* 3) Green Button aligned with ARTICULATION edge */
#green {
    background: linear-gradient(to bottom, #32cd32 0%, #228b22 50%, #006400 100%);
}

/* Responsive adjustment for small screens */
@media (max-width: 420px) {
    #controls {
        padding: 5px var(--pillar) 10px var(--pillar);
        gap: 2px; /* Smaller gap for tiny screens */
    }
    #controls button {
        height: 38px;
        letter-spacing: 1px;
    }
}
#controls {
    background: var(--interface-bg);
    display: flex;
    padding: 10px var(--pillar) 20px var(--pillar);
    gap: 3px;
    width: 100%;
    max-width: 800px;
    margin: auto;
    /* height: 50px; */
}
button#red, button#green {
    height: 30px;
}

/* ----------- GUIDELINES ---------------- */
ol#flashOL {
    list-style-type: none;
    padding: 0;
    margin: 0;
}
ol#flashOL > li {
    margin-top: 20px !important;
}