:root {
    --ivory: #f2e8c9;
    --hover-gold: #d8b24a;
    --active-gold: #f5d97a;
    --disabled-ivory: #c6b89a;
    --ink: #271d15;
    --site-width: min(1700px, 72vw);
    --side-width: clamp(220px, 17%, 300px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: #000; }
body {
    margin: 0;
    min-height: 100vh;
    background: #000;
    color: var(--ivory);
    font-family: Georgia, 'Times New Roman', serif;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; }

.site-shell {
    width: var(--site-width);
    min-width: 1180px;
    margin: 0 auto;
    min-height: 100vh;
    overflow: hidden;
    background: #101512 url('../assets/ui/stonebg.png') repeat-y top center / 100% auto;
    box-shadow: 0 0 58px rgba(0,0,0,.95);
}

/* Header architecture */
.kingdom-header {
    position: relative;
    width: 100%;
    aspect-ratio: 1774 / 650;
    overflow: hidden;
    background: #000;
}
.window-scene {
    position: absolute;
    inset: 0 0 auto;
    width: 100%;
    height: auto;
    z-index: 1;
    pointer-events: none;
}
.balcony-layer {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 34%;
    z-index: 2;
    pointer-events: none;
}
.balcony-layer img { width: 100%; height: 100%; object-fit: fill; }

.district-nav {
    position: absolute;
    z-index: 3;
    left: 4.2%;
    right: 4.2%;
    bottom: 27.7%;
    height: 31%;
    display: grid;
    grid-template-columns: repeat(9, minmax(0, 1fr));
    gap: .45%;
    align-items: end;
}
.nav-item {
    position: relative;
    min-width: 0;
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    text-decoration: none;
    overflow: visible;
}
.nav-item img {
    width: 75%;
    height: 74%;
    object-fit: contain;
    object-position: center bottom;
    transform-origin: center bottom;
    filter: drop-shadow(0 5px 6px rgba(0,0,0,.9));
    transition: transform .18s ease, filter .18s ease, brightness .18s ease;
}
.nav-label {
    position: absolute;
    left: 50%;
    bottom: 37%;
    z-index: 5;
    width: 118%;
    padding: .32em .25em;
    transform: translate(-50%, 8px);
    opacity: 0;
    pointer-events: none;
    color: var(--hover-gold);
    font-size: clamp(12px, .78vw, 17px);
    font-weight: 700;
    line-height: 1.02;
    text-align: center;
    white-space: normal;
    text-wrap: balance;
    text-shadow: 0 2px 4px rgba(0,0,0,.95), 0 0 5px rgba(0,0,0,.9);
    transition: opacity .16s ease, transform .16s ease;
}
.nav-item:hover .nav-label,
.nav-item:focus-visible .nav-label,
.nav-item.selected .nav-label {
    opacity: 1;
    transform: translate(-50%, 0);
}
.nav-item:hover img,
.nav-item:focus-visible img {
    transform: translateY(-4px) scale(1.045);
    filter: drop-shadow(0 0 11px rgba(73,226,162,.72)) drop-shadow(0 5px 6px #000);
}
.nav-item.selected img {
    filter: brightness(1.08) drop-shadow(0 0 13px rgba(73,226,162,.9)) drop-shadow(0 5px 6px #000);
}
.nav-item.selected .nav-label { color: var(--active-gold); }

.language-gate {
    position: relative;
    z-index: 4;
    padding: 10px 18px 13px;
    text-align: center;
    background: rgba(8,18,14,.97);
}
.language-gate strong { font-size: 1rem; }
.languages {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5px 12px;
    margin-top: 7px;
}
.languages a {
    padding: 4px 1px;
    color: var(--ivory);
    text-decoration: none;
    font-size: .9rem;
    text-shadow: 0 1px 2px rgba(0,0,0,.7);
}
.languages a:hover,
.languages a:focus-visible { color: var(--hover-gold); }
.languages a.active { color: var(--active-gold); }

.kingdom-grid {
    display: grid;
    grid-template-columns: var(--side-width) minmax(0, 1fr) var(--side-width);
    align-items: start;
    gap: 18px;
    padding: 20px 16px 28px;
}
.left-rail,
.right-rail { min-width: 0; }
@media (min-width: 1251px) {
    .left-rail,
    .right-rail { position: sticky; top: 12px; }
}

/* Canonical hanging standards */
.desktop-subnav,
.desktop-notices {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.standard-link,
.standard-notice {
    position: relative;
    width: 100%;
    min-width: 0;
    isolation: isolate;
    filter: drop-shadow(0 6px 7px rgba(0,0,0,.65));
}
.standard-link {
    display: block;
    text-decoration: none;
    aspect-ratio: 1536 / 1024;
}
.standard-link img,
.standard-notice > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: filter .18s ease, transform .18s ease;
}
.standard-link span {
    position: absolute;
    inset: 29% 12% 23%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 5%;
    color: var(--ivory);
    font-size: clamp(16px, 1.02vw, 22px);
    font-weight: 700;
    line-height: 1.1;
    text-align: center;
    text-wrap: balance;
    text-shadow: 0 1px 2px rgba(0,0,0,.72), 0 0 3px rgba(0,0,0,.45);
    transition: color .18s ease, transform .18s ease;
}
.standard-link:hover img,
.standard-link:focus-visible img,
.standard-link.selected img {
    filter: brightness(1.12) saturate(1.08) drop-shadow(0 0 8px rgba(73,226,162,.3));
}
.standard-link:hover span,
.standard-link:focus-visible span { color: var(--hover-gold); }
.standard-link.selected span { color: var(--active-gold); }
.standard-link:hover span { transform: translateY(-1px); }

.standard-notice {
    aspect-ratio: 1536 / 1024;
}
.standard-notice > div {
    position: absolute;
    inset: 24% 11% 18%;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    overflow: hidden;
}
.standard-notice h2,
.standard-notice h3 {
    margin: 0 0 .3em;
    color: var(--active-gold);
    font-size: clamp(15px, .95vw, 20px);
    line-height: 1.05;
    text-shadow: 0 1px 2px rgba(0,0,0,.75);
}
.standard-notice p {
    margin: 0;
    color: var(--ivory);
    font-size: clamp(11px, .68vw, 15px);
    line-height: 1.22;
    text-shadow: 0 1px 2px rgba(0,0,0,.72);
}

.center-panel {
    min-width: 0;
    filter: drop-shadow(0 8px 14px rgba(0,0,0,.78));
}
.hero img { width: 100%; height: auto; object-fit: contain; }

.district-title {
    position: relative;
    width: 92%;
    margin: -1.5% auto -2.5%;
    z-index: 2;
    aspect-ratio: 1536 / 1024;
}
.district-title > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.district-title h1 {
    position: absolute;
    inset: 30% 13% 24%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin: 0;
    color: var(--active-gold);
    font-size: clamp(27px, 2.05vw, 43px);
    line-height: .98;
    text-align: center;
    text-shadow: 0 2px 4px rgba(0,0,0,.9), 0 0 4px rgba(0,0,0,.65);
}
.district-title h1 span {
    display: block;
    white-space: nowrap;
}
.district-title h1 span:first-child {
    font-size: .88em;
}


.parchment {
    min-height: 650px;
    margin-top: -7.5%;
    padding: clamp(34px, 3vw, 58px);
    padding-top: clamp(76px, 7vw, 118px);
    background: #d6bf91 url('../assets/ui/parchmentbg-centerpanel.png') repeat-y top center / 100% auto;
    color: var(--ink);
    font-size: clamp(16px, 1vw, 20px);
    line-height: 1.68;
}
.parchment h2 {
    margin: 30px 0 8px;
    color: #36513f;
    font-size: clamp(23px, 1.55vw, 31px);
    line-height: 1.2;
}
.parchment p { margin: 0 0 1.25em; }
.parchment section { max-width: 920px; margin: 0 auto 18px; }
.launch-status {
    max-width: 920px;
    margin: 42px auto 0;
    padding: 15px 10px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.site-footer {
    margin: 0;
    padding: 0;
    background: #000;
    overflow: hidden;
}
.site-footer img {
    display: block;
    width: 100%;
    height: auto;
}

.magic-wash {
    position: fixed;
    inset: 0;
    z-index: 100;
    pointer-events: none;
    opacity: 0;
    background: radial-gradient(circle at center, rgba(81,227,162,.2), transparent 45%);
    transition: opacity .35s;
}
.page-leaving .magic-wash { opacity: 1; }

.mobile-command-bar,
.mobile-drawer,
.mobile-drawer-scrim { display: none; }

/* Tablet: full castle, normal-flow side rails, readable standards */
@media (max-width: 1700px) {
    :root { --site-width: min(1700px, 84vw); }
}
@media (min-width: 821px) and (max-width: 1250px) {
    :root { --site-width: 100%; --side-width: clamp(170px, 18vw, 220px); }
    .site-shell { min-width: 980px; }
    .district-nav { left: 3.2%; right: 3.2%; bottom: 27.2%; }
    .nav-item img { width: 78%; height: 76%; }
    .nav-label { bottom: 38%; width: 126%; font-size: clamp(11px, 1.25vw, 15px); }
    .kingdom-grid { gap: 10px; padding-inline: 10px; }
    .left-rail,
    .right-rail { position: static; }
    .desktop-subnav,
    .desktop-notices { gap: 8px; }
    .standard-link span { font-size: clamp(13px, 1.45vw, 18px); }
    .standard-notice h2 { font-size: clamp(12px, 1.25vw, 16px); }
    .standard-notice p { font-size: clamp(9px, .95vw, 12px); }
    .district-title h1 { font-size: clamp(22px, 2.7vw, 34px); }
}

/* Mobile Emerald Communicator */
@media (max-width: 820px) {
    :root { --site-width: 100%; }
    .site-shell { width: 100%; min-width: 0; overflow: visible; }
    .kingdom-header { aspect-ratio: 1774 / 650; }
    .window-scene { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
    .balcony-layer,
    .district-nav { display: none; }

    .language-gate { padding: 10px 10px 12px; }
    .language-gate strong { font-size: clamp(1rem, 4.6vw, 1.45rem); }
    .languages {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 6px 16px;
        max-height: none;
        overflow: visible;
    }
    .languages a { font-size: clamp(.95rem, 4.1vw, 1.2rem); padding: 4px 0; }

    .mobile-command-bar {
        display: grid;
        grid-template-columns: 52px minmax(0,1fr) 52px;
        align-items: center;
        gap: 8px;
        padding: 9px 12px;
        background: rgba(8,18,14,.98);
        color: var(--ivory);
        border-top: 1px solid rgba(197,155,84,.6);
        border-bottom: 1px solid rgba(197,155,84,.6);
    }
    .mobile-command-bar > strong {
        text-align: center;
        color: var(--ivory);
        font-size: clamp(1.05rem, 5vw, 1.45rem);
    }
    .mobile-panel-button {
        width: 48px;
        height: 48px;
        border: 1px solid rgba(216,178,74,.7);
        border-radius: 50%;
        background: rgba(13,29,22,.92);
        color: var(--hover-gold);
        display: grid;
        place-items: center;
        cursor: pointer;
    }
    .hamburger-icon { width: 23px; display: grid; gap: 5px; }
    .hamburger-icon i { display: block; height: 3px; border-radius: 2px; background: var(--hover-gold); }
    .notice-bell {
        position: relative;
        width: 20px;
        height: 22px;
        border: 3px solid var(--hover-gold);
        border-top-left-radius: 12px;
        border-top-right-radius: 12px;
        border-bottom: 0;
    }
    .notice-bell::before {
        content: '';
        position: absolute;
        left: 50%;
        bottom: -5px;
        width: 26px;
        height: 3px;
        border-radius: 3px;
        background: var(--hover-gold);
        transform: translateX(-50%);
    }
    .notice-bell::after {
        content: '';
        position: absolute;
        left: 50%;
        bottom: -10px;
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--hover-gold);
        transform: translateX(-50%);
    }

    .kingdom-grid { display: block; padding: 0; }
    .left-rail,
    .right-rail { display: none; }
    .center-panel { filter: none; }
    .hero img { width: 100%; }
    .district-title { width: 98%; margin: -4% auto -8%; }
    .district-title h1 { inset: 26% 12% 22%; font-size: clamp(23px, 7.2vw, 38px); }
    .parchment {
        margin-top: -10%;
        padding: 92px 22px 36px;
        font-size: clamp(17px, 4.7vw, 21px);
        line-height: 1.55;
    }
    .parchment h2 { font-size: clamp(24px, 7vw, 32px); }

    .mobile-drawer {
        display: block;
        position: fixed;
        top: 0;
        bottom: 0;
        z-index: 1002;
        width: min(88vw, 390px);
        padding: 62px 14px 24px;
        overflow-y: auto;
        background: #0b1712 url('../assets/ui/stonebg.png') repeat-y top center / 100% auto;
        transition: transform .25s ease;
        box-shadow: 0 0 25px rgba(0,0,0,.9);
    }
    .mobile-drawer-left { left: 0; transform: translateX(-105%); }
    .mobile-drawer-right { right: 0; transform: translateX(105%); }
    .mobile-drawer.is-open { transform: translateX(0); }
    .mobile-drawer h2 {
        margin: 18px 0 8px;
        text-align: center;
        color: var(--active-gold);
        font-size: 1.35rem;
        text-shadow: 0 2px 4px #000;
    }
    .mobile-drawer-close {
        position: absolute;
        top: 12px;
        right: 14px;
        width: 40px;
        height: 40px;
        border: 1px solid rgba(216,178,74,.7);
        border-radius: 50%;
        background: rgba(13,29,22,.95);
        color: var(--active-gold);
        font-size: 1.7rem;
        line-height: 1;
    }
    .mobile-district-list,
    .mobile-subnav,
    .mobile-notice-list { display: grid; gap: 8px; }
    .mobile-drawer .standard-link span { font-size: clamp(16px, 5vw, 20px); }
    .mobile-drawer .standard-notice h3 { font-size: clamp(16px, 5vw, 20px); }
    .mobile-drawer .standard-notice p { font-size: clamp(12px, 3.8vw, 15px); }

    .mobile-drawer-scrim {
        position: fixed;
        inset: 0;
        z-index: 1001;
        display: block;
        opacity: 0;
        background: rgba(0,0,0,.72);
        transition: opacity .2s ease;
    }
    .mobile-drawer-scrim.is-open { opacity: 1; }
    body.mobile-drawer-open { overflow: hidden; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* 3.0.1 precision correction: banners, hero/parchment join, labels, mobile controls */
:root {
    --side-width: clamp(245px, 18%, 315px);
}

.kingdom-grid {
    gap: 10px;
    padding: 14px 12px 24px;
}

.hero {
    position: relative;
    z-index: 1;
}

/* The parchment surface begins immediately after the hero. */
.parchment {
    margin-top: 0;
    padding-top: clamp(118px, 8vw, 154px);
}

/* District title floats over the top of the parchment without creating a gap. */
.district-title {
    position: absolute;
    left: 50%;
    bottom: clamp(-92px, -6vw, -62px);
    width: min(78%, 820px);
    margin: 0;
    z-index: 4;
    aspect-ratio: 1355 / 575;
    transform: translateX(-50%);
    pointer-events: none;
}
.district-title h1 {
    inset: 25% 11% 17%;
    font-size: clamp(25px, 2vw, 40px);
}

/* Cropped canonical standards: no phantom transparent canvas or floating gaps. */
.desktop-subnav,
.desktop-notices {
    gap: 2px;
}
.standard-link,
.standard-notice {
    aspect-ratio: 1410 / 450;
    margin: 0;
    filter: drop-shadow(0 4px 5px rgba(0,0,0,.62));
}
.standard-link img,
.standard-notice > img {
    object-fit: fill;
}
.standard-link span {
    inset: 24% 10% 10%;
    font-size: clamp(18px, 1.15vw, 24px);
    line-height: 1.02;
}
.standard-notice > div {
    inset: 19% 8% 8%;
}
.standard-notice h2,
.standard-notice h3 {
    margin-bottom: .12em;
    font-size: clamp(17px, 1.02vw, 22px);
    line-height: 1;
}
.standard-notice p {
    font-size: clamp(11px, .72vw, 15px);
    line-height: 1.12;
}

/* Labels remain on the icons for hover/focus and the active district. */
.nav-label {
    bottom: 34%;
    width: 94%;
    padding: .2em .1em;
    font-size: clamp(17px, 1.05vw, 23px);
    line-height: .98;
    color: var(--hover-gold);
}
.nav-label span {
    display: block;
}
.nav-item.selected .nav-label {
    color: var(--active-gold);
}

@media (min-width: 821px) and (max-width: 1250px) {
    :root { --side-width: clamp(205px, 20vw, 250px); }
    .kingdom-grid { gap: 6px; padding-inline: 7px; }
    .desktop-subnav,
    .desktop-notices { gap: 1px; }
    .standard-link span { font-size: clamp(16px, 1.65vw, 20px); }
    .standard-notice h2 { font-size: clamp(15px, 1.5vw, 19px); }
    .standard-notice p { font-size: clamp(10px, 1.02vw, 13px); }
    .nav-label { bottom: 35%; font-size: clamp(15px, 1.6vw, 20px); }
    .district-title { bottom: clamp(-74px, -6vw, -54px); width: 80%; }
    .parchment { padding-top: clamp(100px, 9vw, 128px); }
}

@media (max-width: 820px) {
    .district-title {
        width: 94%;
        bottom: clamp(-62px, -14vw, -46px);
        aspect-ratio: 1355 / 575;
    }
    .district-title h1 {
        inset: 24% 10% 16%;
        font-size: clamp(22px, 6.8vw, 34px);
    }
    .parchment {
        margin-top: 0;
        padding: clamp(78px, 23vw, 112px) 22px 36px;
    }
    .mobile-district-list,
    .mobile-subnav,
    .mobile-notice-list { gap: 3px; }
    .mobile-drawer .standard-link,
    .mobile-drawer .standard-notice { aspect-ratio: 1410 / 450; }
    .mobile-drawer .standard-link span { font-size: clamp(17px, 5.2vw, 21px); }
    .mobile-panel-button {
        color: var(--active-gold);
        border-color: rgba(245,217,122,.78);
    }
    .hamburger-icon i,
    .notice-bell::before,
    .notice-bell::after { background: var(--active-gold); }
    .notice-bell { border-color: var(--active-gold); }
}

/* 3.0.2 final placement and readability pass */
:root {
    --hover-gold-readable: #fce9a8;
}

/* Brighter gold on top-icon hover/focus, approximately 10% brighter. */
.nav-item:hover .nav-label,
.nav-item:focus-visible .nav-label {
    color: var(--hover-gold-readable);
    text-shadow: 0 2px 4px rgba(0,0,0,.96), 0 0 8px rgba(252,233,168,.24);
}

/* Slightly smaller side-standard typography so all labels fit comfortably. */
.standard-link span {
    font-size: clamp(16px, 1.02vw, 22px);
}
.standard-notice h2,
.standard-notice h3 {
    font-size: clamp(15px, .92vw, 20px);
}
.standard-notice p {
    font-size: clamp(10px, .66vw, 14px);
}

/* Hero and parchment remain flush. The title standard now belongs to parchment. */
.hero {
    margin: 0;
}
.hero img {
    display: block;
}
.parchment {
    position: relative;
    margin-top: 0;
    padding: 0 clamp(34px, 3vw, 58px) clamp(34px, 3vw, 58px);
}
.district-title {
    position: relative;
    left: auto;
    bottom: auto;
    width: min(82%, 860px);
    margin: 0 auto 10px;
    transform: none;
    z-index: 2;
    aspect-ratio: 1355 / 575;
}
.district-title h1 {
    inset: 20% 9% 13%;
    font-size: clamp(36px, 3.05vw, 62px);
    line-height: .98;
}
.parchment > section:first-of-type {
    margin-top: 10px;
}

/* Real gold mobile controls using inline SVG, not CSS-drawn outline shapes. */
.mobile-control-icon {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: var(--active-gold);
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: drop-shadow(0 1px 1px rgba(0,0,0,.75));
}
.mobile-hamburger-icon {
    width: 28px;
    height: 28px;
}
.mobile-bell-icon {
    width: 26px;
    height: 26px;
}

@media (min-width: 821px) and (max-width: 1250px) {
    .standard-link span { font-size: clamp(14px, 1.45vw, 18px); }
    .standard-notice h2,
    .standard-notice h3 { font-size: clamp(13px, 1.28vw, 17px); }
    .standard-notice p { font-size: clamp(9px, .9vw, 12px); }
    .district-title { width: 84%; }
    .district-title h1 { font-size: clamp(30px, 3.6vw, 48px); }
}

@media (max-width: 820px) {
    .parchment {
        padding: 0 22px 36px;
    }
    .district-title {
        width: 96%;
        margin: 0 auto 10px;
    }
    .district-title h1 {
        inset: 21% 8% 13%;
        font-size: clamp(28px, 8.5vw, 42px);
    }
    .mobile-panel-button {
        color: var(--active-gold);
        border-color: rgba(245,217,122,.78);
    }
}

/* 3.0.4 functional site footer */
.site-footer {
    position: relative;
    z-index: 3;
    margin: 0;
    padding: clamp(28px, 3vw, 52px) clamp(22px, 3vw, 54px) 18px;
    color: var(--ivory);
    background:
        linear-gradient(rgba(3,14,10,.96), rgba(1,8,6,.98)),
        radial-gradient(circle at 50% 0, rgba(17,92,59,.25), transparent 45%);
    border-top: 2px solid #b9882c;
    box-shadow: inset 0 1px 0 #f5d97a, 0 -12px 24px rgba(0,0,0,.45);
}
.footer-inner {
    display: grid;
    grid-template-columns: minmax(240px, 1.05fr) minmax(300px, 1.25fr) minmax(280px, 1fr);
    gap: clamp(24px, 3vw, 52px);
    align-items: start;
    max-width: 1500px;
    margin: 0 auto;
}
.site-footer h2 {
    margin: 0 0 12px;
    color: var(--active-gold);
    font-size: clamp(19px, 1.25vw, 26px);
    font-weight: 600;
    letter-spacing: .02em;
}
.site-footer p {
    margin: 0 0 14px;
    color: var(--ivory);
    font-size: clamp(14px, .9vw, 18px);
    line-height: 1.55;
}
.footer-brand {
    text-align: center;
}
.footer-logo {
    width: min(330px, 90%);
    margin: 0 auto 16px;
    object-fit: contain;
}
.footer-email,
.footer-nav a,
.footer-legal-bar a {
    color: var(--ivory);
    text-decoration: none;
}
.footer-email:hover,
.footer-email:focus-visible,
.footer-nav a:hover,
.footer-nav a:focus-visible,
.footer-legal-bar a:hover,
.footer-legal-bar a:focus-visible {
    color: var(--active-gold);
}
.footer-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
}
.footer-nav div {
    min-width: 0;
    padding-left: 18px;
    border-left: 1px solid rgba(216,178,74,.45);
}
.footer-nav a {
    display: block;
    padding: 5px 0;
    font-size: clamp(14px, .9vw, 18px);
}
.footer-community {
    text-align: center;
}
.join-discord {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin: 4px auto 18px;
    padding: 10px 24px;
    color: var(--active-gold);
    text-decoration: none;
    font-weight: 700;
    border: 1px solid #cf9d37;
    background: linear-gradient(180deg, #0c4a35, #06291f);
    box-shadow: inset 0 0 0 2px rgba(0,0,0,.5), 0 0 12px rgba(53,204,135,.16);
}
.join-discord:hover,
.join-discord:focus-visible {
    color: #ffe9a1;
    filter: brightness(1.12);
    box-shadow: inset 0 0 0 2px rgba(0,0,0,.45), 0 0 16px rgba(53,204,135,.35);
}
.social-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 9px;
}
.social-links a,
.social-disabled {
    width: clamp(42px, 3.6vw, 60px);
    aspect-ratio: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.social-links img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.social-links a {
    transition: transform .16s ease, filter .16s ease;
}
.social-links a:hover,
.social-links a:focus-visible {
    transform: translateY(-3px) scale(1.04);
    filter: brightness(1.12) drop-shadow(0 0 7px rgba(69,232,155,.35));
}
.social-disabled {
    opacity: .38;
    filter: grayscale(.35);
    cursor: not-allowed;
}
.footer-legal-bar {
    max-width: 1500px;
    margin: 28px auto 0;
    padding-top: 17px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px 24px;
    border-top: 1px solid rgba(216,178,74,.48);
    color: var(--disabled-ivory);
    font-size: clamp(12px, .8vw, 15px);
}
.footer-legal-bar nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
}

/* CSS-only legal overlays keep links functional without new JavaScript. */
.legal-panel {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    place-items: center;
    padding: 24px;
    background: rgba(0,0,0,.86);
}
.legal-panel:target { display: grid; }
.legal-panel > div {
    position: relative;
    width: min(760px, 94vw);
    max-height: 82vh;
    overflow: auto;
    padding: clamp(28px, 4vw, 52px);
    color: var(--ink);
    background: #d6bf91 url('../assets/ui/parchmentbg-centerpanel.png') repeat-y top center / 100% auto;
    border: 2px solid #b9882c;
    box-shadow: 0 16px 60px rgba(0,0,0,.9);
}
.legal-panel h2 {
    margin: 0 42px 18px 0;
    color: #36513f;
    font-size: clamp(26px, 3vw, 40px);
}
.legal-panel p {
    font-size: clamp(15px, 1.2vw, 19px);
    line-height: 1.6;
}
.legal-close {
    position: absolute;
    top: 10px;
    right: 16px;
    color: #36513f;
    text-decoration: none;
    font-size: 36px;
    line-height: 1;
}

@media (max-width: 1250px) {
    .footer-inner { grid-template-columns: 1fr 1fr; }
    .footer-community { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
    .site-footer { padding: 28px 18px 16px; }
    .footer-inner { grid-template-columns: 1fr; }
    .footer-community { grid-column: auto; }
    .footer-nav { grid-template-columns: 1fr 1fr; }
    .footer-legal-bar { justify-content: center; text-align: center; }
    .footer-legal-bar nav { justify-content: center; }
}
@media (max-width: 480px) {
    .footer-nav { grid-template-columns: 1fr; }
    .social-links a,
    .social-disabled { width: 48px; }
}


/* 3.0.5 title alignment and footer app update */
.district-title h1 {
    inset: 22% 11% 16%;
    justify-content: center;
    transform: translateY(-1%);
    font-size: clamp(32px, 2.55vw, 52px);
    line-height: .94;
}
.district-title.title-medium h1 { font-size: clamp(30px, 2.35vw, 48px); }
.district-title.title-long h1 { font-size: clamp(27px, 2.05vw, 43px); }
.district-title h1 span:first-child { font-size: .9em; }

.footer-inner {
    grid-template-columns: minmax(190px,.85fr) minmax(260px,1.1fr) minmax(220px,.9fr) minmax(260px,1fr);
    gap: clamp(20px, 2.2vw, 38px);
}
.footer-logo {
    width: min(350px, 96%);
    margin: 0 auto;
}
.footer-app {
    text-align: center;
    padding-inline: 8px;
}
.footer-app .coming-soon {
    margin: 0 0 4px;
    color: var(--active-gold);
    font-size: clamp(15px, 1vw, 20px);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.footer-evonomicon {
    display: block;
    width: min(145px, 70%);
    margin: 0 auto 6px;
    object-fit: contain;
}
.footer-app h2 { margin-bottom: 10px; }
.store-links {
    display: grid;
    gap: 8px;
    justify-items: center;
}
.store-badge {
    display: block;
    width: min(220px, 100%);
    opacity: .82;
}
.store-badge img {
    display: block;
    width: 100%;
    height: auto;
}
.footer-legal-bar > .footer-email {
    color: var(--ivory);
    text-decoration: none;
}
.footer-legal-bar > .footer-email:hover,
.footer-legal-bar > .footer-email:focus-visible { color: var(--active-gold); }

@media (max-width: 1250px) {
    .footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-community { grid-column: auto; }
}
@media (max-width: 760px) {
    .footer-inner { grid-template-columns: 1fr; }
    .district-title h1,
    .district-title.title-medium h1,
    .district-title.title-long h1 {
        inset: 22% 9% 16%;
        font-size: clamp(25px, 7vw, 38px);
    }
}

/* 3.0.6 precise district-title centering and compact Evonomicon footer block */
.district-title h1,
.district-title.title-medium h1,
.district-title.title-long h1 {
    inset: auto;
    top: 47%;
    left: 50%;
    width: 78%;
    max-width: 78%;
    height: auto;
    transform: translate(calc(-50% + 8px), calc(-50% - 10px));
    justify-content: center;
    align-items: center;
    text-align: center;
    box-sizing: border-box;
}

.footer-inner {
    grid-template-columns: minmax(180px,.78fr) minmax(250px,1.05fr) minmax(175px,.62fr) minmax(250px,1fr);
    gap: clamp(16px, 1.8vw, 30px);
}
.footer-app {
    align-self: center;
    padding-inline: 0;
}
.footer-app .coming-soon {
    margin-bottom: 2px;
}
.footer-evonomicon {
    width: clamp(72px, 6vw, 96px);
    max-width: 96px;
    margin: 0 auto 3px;
}
.footer-app h2 {
    margin: 0 0 6px;
    font-size: clamp(16px, 1vw, 20px);
}
.store-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 6px;
}
.store-badge {
    width: clamp(92px, 7.5vw, 118px);
}

@media (max-width: 1250px) {
    .footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .district-title h1,
    .district-title.title-medium h1,
    .district-title.title-long h1 {
        top: 47%;
        left: 50%;
        width: 80%;
        max-width: 80%;
        transform: translate(calc(-50% + 3px), calc(-50% - 5px));
    }
    .footer-inner { grid-template-columns: 1fr; }
    .footer-evonomicon { width: 82px; }
}

/* 3.0.7 mobile-only correction: functional drawers, gold bell, and long-title fit */
@media (max-width: 760px) {
    .district-title.title-long h1 {
        width: 84%;
        max-width: 84%;
        font-size: clamp(22px, 6.1vw, 31px);
        line-height: .94;
        letter-spacing: -.018em;
    }

    .mobile-bell-emoji {
        display: inline-grid;
        place-items: center;
        width: 30px;
        height: 30px;
        font-size: 27px;
        line-height: 1;
        color: #f5d97a;
        font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
        filter: saturate(.82) brightness(1.1) sepia(.08);
    }

    .mobile-panel-button {
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }

    .mobile-drawer[aria-hidden="false"] {
        visibility: visible;
        pointer-events: auto;
    }

    .mobile-drawer[aria-hidden="true"] {
        visibility: visible;
        pointer-events: none;
    }
}


/* 3.0.8 mobile drawer reliability correction
   Uses CSS :target navigation so drawers work even if JavaScript is cached,
   blocked, delayed, or fails to initialize on a mobile browser. */
@media (max-width: 820px) {
    .mobile-panel-button {
        text-decoration: none;
        -webkit-tap-highlight-color: transparent;
        touch-action: manipulation;
    }

    .mobile-drawer {
        visibility: hidden;
        pointer-events: none;
    }

    .mobile-drawer-left:target,
    .mobile-drawer-right:target {
        visibility: visible;
        pointer-events: auto;
        transform: translateX(0) !important;
    }

    .mobile-drawer-close {
        display: grid;
        place-items: center;
        text-decoration: none;
        cursor: pointer;
        z-index: 2;
    }

    /* Keep the regular gold bell stable across emoji implementations. */
    .mobile-bell-emoji {
        color: #f5d97a;
        text-shadow: 0 1px 1px rgba(0,0,0,.55);
    }
}

@media (max-width: 760px) {
    .mobile-drawer[aria-hidden="false"],
    .mobile-drawer[aria-hidden="true"] {
        visibility: hidden;
        pointer-events: none;
    }
    .mobile-drawer:target {
        visibility: visible !important;
        pointer-events: auto !important;
    }
}


/* 3.1.0 Emerald Kingdom launch dispatch content */
.dispatch-list {
    display: grid;
    gap: clamp(28px, 3vw, 46px);
}
.dispatch-entry {
    padding-bottom: clamp(24px, 2.5vw, 38px);
    border-bottom: 1px solid rgba(85, 74, 42, .28);
}
.dispatch-entry:last-child { border-bottom: 0; }
.dispatch-subheader {
    margin: 0 0 .55em;
    color: #294d3d;
    font-size: clamp(20px, 1.3vw, 27px);
    font-weight: 800;
    line-height: 1.18;
    text-transform: none;
}
.champion-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px 14px;
    margin: 20px 0 24px;
}
.champion-summary div {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 8px 10px;
    border-bottom: 1px solid rgba(54,81,63,.22);
}
.champion-summary strong { color: #294d3d; }
.champion-summary span { font-size: .92em; }
.chalons-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(14px, 1.5vw, 22px);
    margin: 20px 0 8px;
}
.chalons-gallery figure,
.dispatch-feature-image {
    margin: 0;
    text-align: center;
}
.chalons-gallery img,
.dispatch-feature-image img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid rgba(76, 62, 31, .55);
    box-shadow: 0 7px 16px rgba(42, 28, 12, .24);
}
.chalons-gallery figcaption,
.dispatch-feature-image figcaption {
    margin-top: 7px;
    color: #513d24;
    font-size: .84em;
    line-height: 1.3;
}
.dispatch-feature-image {
    width: min(100%, 430px);
    margin: 22px auto 8px;
}
.continent-groups {
    columns: 2;
    column-gap: 32px;
    margin: 12px 0 18px;
    padding-left: 1.2em;
}
.continent-groups li { margin-bottom: 7px; break-inside: avoid; }
.official-announcement-card {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: center;
    margin: 22px 0 12px;
    padding: 18px 20px;
    background: rgba(38, 69, 54, .09);
    border: 1px solid rgba(43, 79, 61, .35);
    box-shadow: inset 0 0 22px rgba(255,255,255,.15);
}
.official-source-label {
    display: block;
    margin-bottom: 4px;
    color: #72571f;
    font-weight: 800;
    font-size: .78em;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.official-announcement-card h4 {
    margin: 0 0 4px;
    color: #294d3d;
    font-size: 1.08em;
}
.official-announcement-card p { margin: 0; }
.official-source-button,
.official-update-links a {
    color: #f2e8c9;
    background: #173f32;
    border: 1px solid #b89439;
    text-decoration: none;
    font-weight: 700;
}
.official-source-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 8px 15px;
    white-space: nowrap;
}
.official-source-button:hover,
.official-source-button:focus-visible,
.official-update-links a:hover,
.official-update-links a:focus-visible { color: #f5d97a; filter: brightness(1.08); }
.official-update-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.official-update-links a { padding: 7px 11px; }
@media (max-width: 1050px) {
    .chalons-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .champion-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
    .dispatch-list { gap: 28px; }
    .dispatch-subheader { font-size: clamp(21px, 6vw, 28px); }
    .chalons-gallery { grid-template-columns: 1fr 1fr; gap: 12px; }
    .champion-summary { grid-template-columns: 1fr; }
    .continent-groups { columns: 1; }
    .official-announcement-card { grid-template-columns: 1fr; }
    .official-source-button { justify-self: start; }
}
@media (max-width: 480px) {
    .chalons-gallery { grid-template-columns: 1fr; }
}

/* Emerald Kingdom content polish 1.2 */
.dispatch-entry:last-child {
    padding-bottom: 0;
}
.chalons-gallery figcaption {
    margin-top: 10px;
    color: #294d3d;
    font-size: clamp(17px, 1.15vw, 22px);
    font-weight: 800;
    line-height: 1.25;
}
.dispatch-social-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 16px 0 10px;
}
.dispatch-social-links a {
    display: inline-flex;
    width: clamp(48px, 4vw, 62px);
    aspect-ratio: 1;
    border-radius: 12px;
    transition: transform .16s ease, filter .16s ease;
}
.dispatch-social-links a:hover,
.dispatch-social-links a:focus-visible {
    transform: translateY(-2px);
    filter: brightness(1.1);
}
.dispatch-social-links img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.dispatch-minor-heading {
    margin: 20px 0 6px;
    color: #294d3d;
    font-size: clamp(18px, 1.15vw, 23px);
    font-weight: 800;
    line-height: 1.25;
}
.dispatch-social-links-single {
    margin-top: 8px;
}
.launch-status {
    display: grid;
    gap: 4px;
}
.launch-status em {
    font-style: italic;
}
@media (max-width: 820px) {
    .dispatch-social-links {
        justify-content: center;
    }
    .dispatch-minor-heading {
        text-align: center;
    }
}


/* Academy Library 1.0 */
.academy-welcome > p:first-child { font-size: clamp(1.05rem, 1.2vw, 1.28rem); }
.academy-stats { display:flex; flex-wrap:wrap; gap:.65rem 1rem; align-items:center; margin:1.2rem 0 1.5rem; padding:.9rem 1rem; border-top:1px solid rgba(91,62,24,.35); border-bottom:1px solid rgba(91,62,24,.35); }
.academy-stats strong { font-family:Georgia,serif; font-size:1.18rem; color:#3b2a16; }
.academy-stats span { font-size:.93rem; color:#5f4a2f; }
.academy-category { margin:1.6rem 0 2rem; scroll-margin-top:1rem; }
.academy-category > h2 { margin:0 0 .8rem; font-size:clamp(1.45rem,2vw,2rem); }
.academy-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.academy-card { display:flex; flex-direction:column; min-height:220px; padding:1rem 1.05rem; border:1px solid rgba(99,72,31,.38); background:rgba(255,248,221,.38); box-shadow:0 3px 10px rgba(58,39,14,.08); }
.academy-card-level,.academy-level { display:inline-block; width:max-content; margin:0 0 .5rem; padding:.18rem .48rem; border:1px solid rgba(91,69,30,.38); font-size:.78rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#4c3a20; background:rgba(222,199,132,.3); }
.academy-card h3 { margin:0 0 .55rem; font-size:1.22rem; line-height:1.2; }
.academy-card p { margin:0 0 1rem; font-size:.98rem; line-height:1.55; }
.academy-card a,.academy-article-actions a,.academy-breadcrumbs a { color:#315c3b; font-weight:700; }
.academy-card a { margin-top:auto; align-self:flex-start; }
.academy-breadcrumbs { display:flex; flex-wrap:wrap; gap:.45rem; align-items:center; margin:.3rem 0 1rem; font-size:.92rem; }
.academy-article-title { margin:.2rem 0 .65rem; font-size:clamp(1.75rem,2.5vw,2.6rem); line-height:1.08; }
.academy-article-intro { margin:0 0 1.35rem; font-size:1.12rem; line-height:1.6; font-style:italic; color:#4e3d27; }
.academy-lesson-section { margin:1.45rem 0; }
.academy-lesson-section h3 { margin:0 0 .55rem; font-size:1.36rem; }
.academy-lesson-section p { margin:.45rem 0; }
.academy-article-actions { margin-top:1.8rem; padding-top:1rem; border-top:1px solid rgba(91,62,24,.35); }
@media (max-width: 980px) { .academy-card-grid { grid-template-columns:1fr; } }
@media (max-width: 620px) { .academy-card { min-height:0; padding:.9rem; } .academy-stats { align-items:flex-start; flex-direction:column; } }


/* Academy 2.0: searchable full tutorials. Existing site UI is unchanged. */
.academy-search{margin:1.1rem 0 1.35rem;padding:1rem;border:1px solid rgba(87,62,24,.34);background:rgba(255,248,221,.28)}
.academy-search>label{display:block;margin-bottom:.55rem;font-family:Georgia,serif;font-weight:700;font-size:1.15rem;color:#342512}
.academy-search-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(130px,.75fr) auto;gap:.55rem}
.academy-search input,.academy-search select,.academy-search button{min-height:44px;border:1px solid rgba(72,49,18,.55);font:inherit}
.academy-search input,.academy-search select{padding:.55rem .7rem;background:#fbf2d4;color:#2d2112}
.academy-search button{padding:.55rem 1rem;background:#315c3b;color:#f2e8c9;font-weight:700;cursor:pointer}
.academy-search button:hover,.academy-search button:focus{background:#24482f;color:#f5d97a}
.academy-search-summary{margin:1rem 0;padding:.75rem 1rem;border-left:4px solid #8f6f27;background:rgba(255,248,221,.24)}
.academy-search-summary h2{margin:0 0 .2rem;font-size:1.35rem}.academy-search-summary p{margin:.2rem 0}.academy-search-summary a{font-weight:700;color:#315c3b}
.academy-card-meta,.academy-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}
.academy-featured-label{font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6e4f08}
.academy-card-featured{border-color:rgba(129,94,18,.62);box-shadow:0 4px 14px rgba(91,62,24,.14)}
.academy-article ul,.academy-article ol{margin:.6rem 0 1rem 1.4rem;padding:0}.academy-article li{margin:.42rem 0;line-height:1.58}
.academy-objectives,.academy-checklist{padding:.9rem 1rem;border-left:4px solid #527b57;background:rgba(237,228,190,.32)}
.academy-steps ol{counter-reset:academy-step;list-style:none;margin-left:0}.academy-steps li{counter-increment:academy-step;position:relative;padding-left:2.25rem;margin:.7rem 0}.academy-steps li:before{content:counter(academy-step);position:absolute;left:0;top:.05rem;width:1.65rem;height:1.65rem;border-radius:50%;display:grid;place-items:center;background:#315c3b;color:#f2e8c9;font-weight:700;font-size:.88rem}
.academy-recommendation{margin:.75rem 0;padding:.75rem .9rem;border:1px solid rgba(97,68,24,.32);background:rgba(255,248,221,.3)}
.academy-recommendation h4{margin:0 0 .25rem;font-size:1.08rem;color:#3e5d35}.academy-recommendation p{margin:0}
.academy-mistakes{padding:.8rem 1rem;border-left:4px solid #8b4b32;background:rgba(243,218,190,.28)}
.academy-elphi-recs{padding:.8rem 1rem;border:1px solid rgba(111,79,20,.34);background:rgba(220,199,125,.24)}
.academy-tags{margin-top:1.2rem;padding:.7rem 0;border-top:1px solid rgba(91,62,24,.28);font-size:.9rem;color:#57452e}
.academy-empty{padding:1.5rem;text-align:center}
@media(max-width:980px){.academy-search-row{grid-template-columns:1fr 1fr}.academy-search-row input{grid-column:1/-1}.academy-search-row button{grid-column:1/-1}}
@media(max-width:620px){.academy-search-row{grid-template-columns:1fr}.academy-search-row input,.academy-search-row select,.academy-search-row button{grid-column:auto}.academy-article-title{font-size:1.7rem}.academy-lesson-section h3{font-size:1.25rem}}

/* Academy 2.1 topic icons */
.academy-topic-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:2rem;
  height:2rem;
  font-size:1.35rem;
  line-height:1;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.22));
}
.academy-card .academy-topic-icon{
  margin-right:.1rem;
}
@media (max-width:620px){
  .academy-topic-icon{font-size:1.2rem;min-width:1.75rem;height:1.75rem}
}

/* War College Module 2.0: doctrine pin and field-manual polish */
.war-college-category:first-of-type .academy-card-grid{grid-template-columns:1fr}
.war-college-category:first-of-type .academy-card{border:2px solid rgba(224,188,88,.75);background:linear-gradient(180deg,rgba(10,54,38,.97),rgba(5,31,23,.97));box-shadow:0 0 18px rgba(49,205,133,.16)}
.war-college-category:first-of-type .academy-card h3{font-size:clamp(1.55rem,2.5vw,2.15rem)}
.war-college-category:first-of-type .academy-featured-label::before{content:'📌 ';}
.war-college-article .academy-elphi-recs{border-left:5px solid #d9b85a;background:rgba(6,49,35,.08);padding:1rem 1.2rem}
.war-college-article .academy-elphi-recs h3{color:#365f4e}


/* Evonomicon Module 1.0 - four protected public tools */
.evono-intro{margin-bottom:1.2rem}.evono-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.25rem 0 1.8rem}.evono-tool-card{display:flex;flex-direction:column;padding:1rem 1.05rem;min-height:230px;border:1px solid rgba(99,72,31,.42);background:rgba(255,248,221,.38);box-shadow:0 3px 12px rgba(58,39,14,.1)}.evono-tool-icon{font-size:2rem}.evono-tool-card h3{font-size:1.3rem;margin:.4rem 0}.evono-tool-card p{line-height:1.55}.evono-tool-card a{margin-top:auto;align-self:flex-start;color:#315c3b;font-weight:800}.evono-locked,.evono-note{padding:1rem;border-left:4px solid #9b772d;background:rgba(223,203,139,.25)}.evono-tool-page>h2{font-size:clamp(1.65rem,2.5vw,2.45rem);margin:.2rem 0 .65rem}.evono-filter-form,.evono-calc-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin:1.1rem 0 1.4rem;padding:1rem;border:1px solid rgba(87,62,24,.34);background:rgba(255,248,221,.28)}.evono-filter-form label,.evono-calc-form label{display:grid;gap:.3rem;font-weight:700}.evono-filter-form input,.evono-calc-form input,.evono-calc-form select{min-height:44px;padding:.55rem .7rem;background:#fbf2d4;color:#2d2112;border:1px solid rgba(72,49,18,.55);font:inherit}.evono-filter-form button,.evono-calc-form button{min-height:44px;align-self:end;padding:.55rem 1rem;background:#315c3b;color:#f2e8c9;border:1px solid #26492f;font-weight:800;cursor:pointer}.evono-pairing-list{display:grid;gap:.85rem}.evono-pairing-card{padding:1rem;border:1px solid rgba(99,72,31,.38);background:rgba(255,248,221,.34)}.evono-pairing-heading{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;font-size:1.22rem;color:#294d3d}.evono-pairing-card dl{display:grid;gap:.55rem;margin:.8rem 0 0}.evono-pairing-card dl div{display:grid;grid-template-columns:110px 1fr;gap:.65rem}.evono-pairing-card dt{font-weight:800}.evono-pairing-card dd{margin:0}.evono-result,.evono-points-result{margin:1rem 0;padding:1rem;border:1px solid rgba(82,117,87,.55);background:rgba(232,226,187,.32)}.evono-table-wrap{overflow-x:auto}.evono-result table{width:100%;border-collapse:collapse}.evono-result th,.evono-result td{padding:.55rem .7rem;border-bottom:1px solid rgba(82,61,25,.25);text-align:left}.evono-points-result{display:grid;justify-items:center;text-align:center}.evono-points-result>span{text-transform:uppercase;letter-spacing:.08em;font-weight:800}.evono-points-result>strong{font-size:clamp(2rem,5vw,4rem);color:#315c3b}.evono-points-result p{margin:.35rem 0}.evono-error{padding:.8rem;border-left:4px solid #9a3b2f;background:rgba(245,210,198,.45)}
@media(max-width:820px){.evono-tool-grid,.evono-filter-form,.evono-calc-form{grid-template-columns:1fr}.evono-pairing-card dl div{grid-template-columns:1fr;gap:.1rem}.evono-tool-card{min-height:0}}

/* Evonomicon 1.1 */
.evono-buff-grid,.evono-base-grid,.evono-layer-grid{display:grid;gap:1rem}.evono-buff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.evono-base-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:1rem 0}.evono-base-grid fieldset{border:1px solid rgba(173,132,48,.7);padding:1rem}.evono-base-grid label{display:grid;gap:.35rem;margin:.55rem 0}.evono-layer-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}.evono-layer-grid section{border:1px solid rgba(173,132,48,.65);padding:.65rem}.evono-layer-grid section>div{display:flex;justify-content:space-between;gap:.75rem;padding:.24rem .1rem;border-bottom:1px solid rgba(80,55,25,.18)}
@media(max-width:900px){.evono-layer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.evono-buff-grid,.evono-base-grid{grid-template-columns:1fr}}
@media(max-width:520px){.evono-layer-grid{grid-template-columns:1fr 1fr;font-size:.88rem}.evono-layer-grid section{padding:.45rem}}

/* Evonomicon 1.3 form containment */
.evono-calc-form,
.evono-defense-form,
.evono-base-grid { min-width: 0; }
.evono-calc-form > label,
.evono-defense-form .evono-calc-form > label,
.evono-base-grid fieldset { min-width: 0; }
.evono-calc-form select,
.evono-calc-form input,
.evono-defense-form select,
.evono-defense-form input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
@media (min-width: 761px) {
  .evono-calc-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 14px;
    align-items: end;
  }
  .evono-calc-form button {
    grid-column: 1 / -1;
    width: min(100%, 320px);
  }
}


/* ==========================================================================
   MESSAGE ELPHI
   ========================================================================== */
.message-elphi-intro {
    margin: 0 auto 1.25rem;
    max-width: 860px;
    text-align: center;
}
.message-elphi-intro h2,
.message-elphi-success h2 {
    margin: 0 0 .7rem;
}
.message-elphi-intro p {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.65;
}
.message-elphi-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.2rem;
    margin: 1.25rem auto 0;
    max-width: 900px;
}
.message-elphi-form label {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    min-width: 0;
    font-weight: 700;
}
.message-elphi-form label > span {
    line-height: 1.35;
}
.message-elphi-form small {
    font-weight: 400;
}
.message-elphi-full {
    grid-column: 1 / -1;
}
.message-elphi-form input,
.message-elphi-form select,
.message-elphi-form textarea {
    width: 100%;
    border: 1px solid rgba(75, 49, 20, .55);
    border-radius: 6px;
    background: rgba(255, 250, 231, .9);
    color: #2b1d0f;
    font: inherit;
    padding: .72rem .8rem;
    box-sizing: border-box;
}
.message-elphi-form textarea {
    resize: vertical;
    min-height: 190px;
}
.message-elphi-form input:focus,
.message-elphi-form select:focus,
.message-elphi-form textarea:focus {
    outline: 3px solid rgba(20, 112, 83, .25);
    border-color: #166f55;
}
.message-elphi-file {
    padding: .9rem;
    border: 1px dashed rgba(75, 49, 20, .5);
    border-radius: 7px;
    background: rgba(255, 250, 231, .45);
}
.message-elphi-submit-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .7rem;
    text-align: center;
}
.message-elphi-submit-row button,
.message-elphi-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border: 1px solid #bd8f2d;
    border-radius: 7px;
    background: linear-gradient(#1b765b, #0d4f3d);
    color: #fff8dc;
    font-weight: 800;
    text-decoration: none;
    padding: .75rem 1.2rem;
    cursor: pointer;
    box-shadow: 0 3px 8px rgba(0,0,0,.2);
}
.message-elphi-submit-row button:hover,
.message-elphi-actions a:hover {
    filter: brightness(1.08);
}
.message-elphi-submit-row p {
    margin: 0;
    font-size: .92rem;
}
.message-elphi-errors {
    max-width: 900px;
    margin: 1rem auto;
    padding: 1rem 1.15rem;
    border: 1px solid #8a2e28;
    border-radius: 7px;
    background: rgba(255, 232, 226, .9);
    color: #5c1712;
}
.message-elphi-errors h3 {
    margin: 0 0 .45rem;
}
.message-elphi-errors ul {
    margin: 0;
    padding-inline-start: 1.25rem;
}
.message-elphi-success {
    max-width: 850px;
    margin: 1rem auto;
    text-align: center;
    padding: 1.5rem 1.2rem;
    border: 1px solid rgba(75, 49, 20, .45);
    border-radius: 9px;
    background: rgba(255, 250, 231, .55);
}
.message-elphi-feather {
    display: block;
    font-size: 2.6rem;
    line-height: 1;
    margin-bottom: .55rem;
}
.message-elphi-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .8rem;
    margin: 1.25rem 0;
}
.message-elphi-murphy {
    margin: 1.3rem auto 0;
    max-width: 690px;
    font-size: .9rem;
    opacity: .85;
}
.message-elphi-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

@media (max-width: 760px) {
    .message-elphi-form {
        grid-template-columns: 1fr;
    }
    .message-elphi-full {
        grid-column: 1;
    }
    .message-elphi-actions {
        flex-direction: column;
    }
    .message-elphi-actions a {
        width: 100%;
        box-sizing: border-box;
    }
}
