:root{
    --mg-accent:#25538e;
    --mg-accent-soft:#eff6ff;
    --mg-border:#e5e7eb;
    --mg-text:#111827;
    --mg-muted:#6b7280;
    --mg-bg:#ffffff;
    --mg-radius:18px;
}

html{
    scroll-behavior:smooth;
}

.mg-term{
    position:relative;
    color:inherit;
    text-decoration:none;
    border-bottom:1px dotted currentColor;
    cursor:help;
}

.mg-term::after{
    content:attr(data-mg-tooltip);
    position:absolute;
    left:50%;
    bottom:calc(100% + 10px);
    z-index:9999;
    width:min(280px, 80vw);
    padding:12px 14px;
    border-radius:12px;
    background:#111827;
    color:#fff;
    font-size:14px;
    line-height:1.45;
    text-align:left;
    box-shadow:0 16px 40px rgba(0,0,0,.22);
    opacity:0;
    visibility:hidden;
    transform:translateX(-50%) translateY(4px);
    transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
    pointer-events:none;
    white-space:normal;
}

.mg-term::before{
    content:"";
    position:absolute;
    left:50%;
    bottom:calc(100% + 4px);
    z-index:10000;
    border:6px solid transparent;
    border-top-color:#111827;
    opacity:0;
    visibility:hidden;
    transform:translateX(-50%);
    transition:opacity .18s ease, visibility .18s ease;
    pointer-events:none;
}

.mg-term:hover::after,
.mg-term:hover::before,
.mg-term:focus::after,
.mg-term:focus::before,
.mg-term.is-open::after,
.mg-term.is-open::before{
    opacity:1;
    visibility:visible;
    transform:translateX(-50%) translateY(0);
}

.mg-term:hover::before,
.mg-term:focus::before,
.mg-term.is-open::before{
    transform:translateX(-50%);
}

.mg-glossary-index{
    margin:clamp(24px, 5vw, 56px) 0;
    color:var(--mg-text);
}

.mg-glossary-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:20px;
}

.mg-glossary-title{
    margin:0 0 6px;
    font-size:clamp(28px, 4vw, 44px);
    line-height:1.05;
}

.mg-glossary-subtitle{
    margin:0;
    color:var(--mg-muted);
}

.mg-search-label{
    display:block;
    min-width:min(320px, 100%);
    margin-left:auto;
}

.mg-glossary-search{
    width:100%;
    border:1px solid var(--mg-border);
    border-radius:999px;
    padding:11px 16px;
    font:inherit;
    background:#fff;
}

.mg-glossary-search:focus{
    outline:2px solid color-mix(in srgb, var(--mg-accent) 35%, transparent);
    border-color:var(--mg-accent);
}

.mg-az-nav{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:.38em;
    margin:0 0 22px;
    line-height:1.4;
}

.mg-az-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--mg-accent);
    font-weight:700;
    text-decoration:underline;
    text-underline-offset:3px;
    padding:0 1px;
}

.mg-az-link:hover,
.mg-az-link:focus,
.mg-az-link.is-active{
    color:var(--mg-text);
}

.mg-az-link.is-disabled{
    color:var(--mg-text);
    opacity:.5;
    text-decoration:none;
    font-weight:600;
    cursor:default;
}

.mg-glossary-list{
    max-width:900px;
}

.mg-letter-section{
    scroll-margin-top:110px;
    margin:0 0 18px;
}

.mg-letter-section[hidden],
.mg-glossary-item[hidden]{
    display:none;
}

.mg-letter-title{
    margin:0 0 4px;
    color:var(--mg-text);
    font-size:18px;
    line-height:1.3;
    font-weight:800;
}

.mg-letter-list{
    margin:0;
    padding-left:1.25em;
}

.mg-glossary-item{
    margin:2px 0;
    color:var(--mg-muted);
}

.mg-glossary-item a{
    color:var(--mg-accent);
    text-decoration:none;
}

.mg-glossary-item a:hover,
.mg-glossary-item a:focus{
    color:var(--mg-text);
    text-decoration:underline;
}

.mg-card-cats,
.mg-glossary-cats{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.mg-card-cats a,
.mg-glossary-cats a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    border-radius:999px;
    background:var(--mg-accent-soft);
    color:var(--mg-accent);
    padding:6px 10px;
    font-size:13px;
    line-height:1;
    text-decoration:none;
}

.mg-glossary-cats a{
    padding:10px 14px;
    font-size:15px;
}

.mg-glossary-cats span{
    opacity:.7;
}

.mg-empty{
    padding:18px;
    border:1px dashed var(--mg-border);
    border-radius:var(--mg-radius);
    color:var(--mg-muted);
}

.mg-archive-template{
    padding:clamp(32px, 6vw, 72px) 0;
}

.mg-archive-inner{
    width:min(1120px, calc(100% - 40px));
    margin-inline:auto;
}

@media (max-width:900px){
    .mg-glossary-head{
        align-items:stretch;
        flex-direction:column;
    }
    .mg-search-label{
        margin-left:0;
    }
}

@media (max-width:640px){
    .mg-term::after{
        left:0;
        transform:translateX(0) translateY(4px);
    }
    .mg-term:hover::after,
    .mg-term:focus::after,
    .mg-term.is-open::after{
        transform:translateX(0) translateY(0);
    }
}

/* Single glossary term */
.mg-single-template{
    padding:0 0 clamp(42px, 7vw, 88px);
    color:var(--mg-text);
}

.mg-single-inner{
    width:min(1120px, calc(100% - 40px));
    margin-inline:auto;
}

.mg-single-hero{
    position:relative;
    overflow:hidden;
    padding:clamp(42px, 7vw, 96px) 0 clamp(28px, 5vw, 64px);
    background:linear-gradient(135deg, var(--mg-accent-soft), #fff 62%);
}

.mg-single-hero::before{
    content:"";
    position:absolute;
    inset:auto -8% -44% auto;
    width:clamp(220px, 34vw, 460px);
    aspect-ratio:1;
    border-radius:999px;
    background:color-mix(in srgb, var(--mg-accent) 11%, transparent);
    pointer-events:none;
}

.mg-back-link{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:26px;
    color:var(--mg-accent);
    text-decoration:none;
    font-weight:700;
}

.mg-back-link::before{
    content:"←";
    line-height:1;
}

.mg-back-link:hover,
.mg-back-link:focus{
    color:var(--mg-text);
    text-decoration:underline;
    text-underline-offset:4px;
}

.mg-single-hero-grid{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(220px, 360px);
    align-items:center;
    gap:clamp(24px, 5vw, 70px);
}

.mg-single-kicker{
    margin:0 0 10px;
    color:var(--mg-accent);
    font-size:13px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.mg-single-title{
    margin:0;
    max-width:820px;
    font-size:clamp(38px, 7vw, 78px);
    line-height:.96;
    letter-spacing:-.045em;
    color: #ff68b4;
}

.mg-single-cats{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:22px;
}

.mg-single-cats a,
.mg-side-links a{
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    background:var(--mg-bg);
    color:var(--mg-accent);
    border:1px solid color-mix(in srgb, var(--mg-accent) 18%, var(--mg-border));
    padding:8px 13px;
    font-size:14px;
    font-weight:700;
    text-decoration:none;
}

.mg-single-cats a:hover,
.mg-single-cats a:focus,
.mg-side-links a:hover,
.mg-side-links a:focus{
    background:var(--mg-accent);
    color:#fff;
}

.mg-single-thumb{
    margin:0;
    overflow:hidden;
    border-radius:28px;
    box-shadow:0 24px 70px rgba(17,24,39,.14);
}

.mg-single-thumb img{
    display:block;
    width:100%;
    height:auto;
}

.mg-single-body-wrap{
    padding:clamp(32px, 5vw, 70px) 0 0;
}

.mg-single-layout{
    display:grid;
    grid-template-columns:minmax(0, 1fr) 300px;
    align-items:start;
    gap:clamp(26px, 5vw, 58px);
}

.mg-single-card{
    border:1px solid var(--mg-border);
    border-radius:30px;
    background:var(--mg-bg);
    box-shadow:0 18px 60px rgba(17,24,39,.07);
    padding:clamp(24px, 5vw, 56px);
}

.mg-single-content > *:first-child{
    margin-top:0;
}

.mg-single-content > *:last-child{
    margin-bottom:0;
}

.mg-single-content{
    font-size:clamp(17px, 1.3vw, 19px);
    line-height:1.75;
}

.mg-single-aside{
    position:sticky;
    top:110px;
    display:grid;
    gap:16px;
}

.mg-side-box{
    border:1px solid var(--mg-border);
    border-radius:24px;
    background:var(--mg-bg);
    padding:22px;
    box-shadow:0 12px 38px rgba(17,24,39,.05);
}

.mg-side-box h2{
    margin:0 0 14px;
    font-size:16px;
    line-height:1.25;
}

.mg-alias-list,
.mg-side-links{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.mg-alias-list span{
    display:inline-flex;
    border-radius:999px;
    background:var(--mg-accent-soft);
    color:var(--mg-accent);
    padding:7px 11px;
    font-size:13px;
    font-weight:700;
}

.mg-single-nav{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:18px;
    margin-top:clamp(30px, 5vw, 60px);
}

.mg-single-nav-card{
    display:flex;
    flex-direction:column;
    min-height:118px;
    justify-content:center;
    border:1px solid var(--mg-border);
    border-radius:26px;
    background:var(--mg-bg);
    color:var(--mg-text);
    padding:22px;
    text-decoration:none;
    box-shadow:0 12px 40px rgba(17,24,39,.05);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.mg-single-nav-card:hover,
.mg-single-nav-card:focus{
    transform:translateY(-2px);
    border-color:color-mix(in srgb, var(--mg-accent) 30%, var(--mg-border));
    box-shadow:0 18px 52px rgba(17,24,39,.09);
}

.mg-single-nav-card span{
    margin-bottom:8px;
    color:var(--mg-muted);
    font-size:13px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.mg-single-nav-card strong{
    font-size:clamp(19px, 2.4vw, 28px);
    line-height:1.1;
}

.mg-single-nav-card--prev{
    text-align:left;
}

.mg-single-nav-card--prev::before,
.mg-single-nav-card--next::before{
    color:var(--mg-accent);
    font-size:22px;
    line-height:1;
    margin-bottom:14px;
}

.mg-single-nav-card--prev::before{
    content:"←";
}

.mg-single-nav-card--next{
    text-align:right;
    align-items:flex-end;
}

.mg-single-nav-card--next::before{
    content:"→";
}

.mg-single-nav-card.is-empty{
    visibility:hidden;
}

.mg-related-terms{
    margin-top:clamp(34px, 6vw, 76px);
}

.mg-related-head{
    margin-bottom:18px;
}

.mg-related-head h2{
    margin:0;
    font-size:clamp(28px, 4vw, 44px);
    line-height:1.05;
    letter-spacing:-.03em;
}

.mg-related-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:18px;
}

.mg-related-card{
    display:flex;
    min-height:210px;
    flex-direction:column;
    align-items:flex-start;
    border:1px solid var(--mg-border);
    border-radius:28px;
    background:var(--mg-bg);
    color:var(--mg-text);
    padding:24px;
    text-decoration:none;
    box-shadow:0 14px 44px rgba(17,24,39,.06);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.mg-related-card:hover,
.mg-related-card:focus{
    transform:translateY(-3px);
    border-color:color-mix(in srgb, var(--mg-accent) 30%, var(--mg-border));
    box-shadow:0 22px 60px rgba(17,24,39,.1);
}

.mg-related-letter{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    margin-bottom:26px;
    border-radius:16px;
    background:var(--mg-accent-soft);
    color:var(--mg-accent);
    font-weight:900;
}

.mg-related-card strong{
    font-size:22px;
    line-height:1.15;
}

.mg-related-card small{
    display:block;
    margin-top:12px;
    color:var(--mg-muted);
    font-size:14px;
    line-height:1.55;
}

@media (max-width:960px){
    .mg-single-hero-grid,
    .mg-single-layout{
        grid-template-columns:1fr;
    }

    .mg-single-aside{
        position:static;
    }

    .mg-related-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width:640px){
    .mg-single-inner{
        width:min(100% - 28px, 1120px);
    }

    .mg-single-hero{
        padding-top:34px;
    }

    .mg-single-card{
        border-radius:24px;
        padding:22px;
    }

    .mg-single-nav{
        grid-template-columns:1fr;
    }

    .mg-single-nav-card.is-empty{
        display:none;
    }

    .mg-single-nav-card--next{
        text-align:left;
        align-items:flex-start;
    }
}

/* Glossary archive/index enhanced layout */
.mg-archive-template{
    padding:0 0 clamp(46px, 7vw, 90px);
    color:var(--mg-text);
    background:linear-gradient(180deg, var(--mg-accent-soft), #fff 420px);
}

.mg-archive-hero{
    position:relative;
    overflow:hidden;
    padding:clamp(44px, 7vw, 96px) 0 clamp(26px, 5vw, 58px);
    background:linear-gradient(135deg, var(--mg-accent-soft), #fff 66%);
}

.mg-archive-hero::before{
    content:"";
    position:absolute;
    right:-9%;
    bottom:-42%;
    width:clamp(230px, 36vw, 500px);
    aspect-ratio:1;
    border-radius:999px;
    background:color-mix(in srgb, var(--mg-accent) 10%, transparent);
    pointer-events:none;
}

.mg-archive-hero::after{
    content:"";
    position:absolute;
    left:-120px;
    top:34px;
    width:240px;
    aspect-ratio:1;
    border-radius:999px;
    border:1px solid color-mix(in srgb, var(--mg-accent) 14%, transparent);
    pointer-events:none;
}

.mg-archive-content{
    position:relative;
    z-index:1;
    margin-top:calc(clamp(24px, 5vw, 54px) * -1);
}

.mg-archive-kicker,
.mg-glossary-kicker{
    margin:0 0 10px;
    color:var(--mg-accent);
    font-size:13px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.mg-archive-title{
    margin:0;
    max-width:920px;
    font-size:clamp(42px, 7vw, 82px);
    line-height:.96;
    letter-spacing:-.045em;
    color: #ff68b4;
}

.mg-archive-subtitle{
    max-width:680px;
    margin:20px 0 0;
    color:var(--mg-muted);
    font-size:clamp(17px, 1.5vw, 20px);
    line-height:1.65;
}

.mg-glossary-index.mg-glossary-index--cards{
    margin:0;
}

.mg-glossary-panel{
    position:relative;
    overflow:hidden;
    border:1px solid color-mix(in srgb, var(--mg-accent) 12%, var(--mg-border));
    border-radius:30px;
    background:rgba(255,255,255,.92);
    box-shadow:0 18px 60px rgba(17,24,39,.07);
    padding:clamp(20px, 4vw, 34px);
    backdrop-filter:blur(8px);
}

.mg-glossary-panel::before{
    content:"";
    position:absolute;
    inset:auto -90px -120px auto;
    width:240px;
    aspect-ratio:1;
    border-radius:999px;
    background:color-mix(in srgb, var(--mg-accent) 8%, transparent);
    pointer-events:none;
}

.mg-glossary-panel > *{
    position:relative;
    z-index:1;
}

.mg-glossary-index--cards .mg-glossary-head{
    align-items:center;
    margin-bottom:22px;
}

.mg-glossary-heading{
    max-width:680px;
}

.mg-glossary-index--cards .mg-glossary-title{
    margin:0;
    font-size:clamp(32px, 5vw, 56px);
    line-height:1;
    letter-spacing:-.04em;
}

.mg-glossary-index--cards .mg-glossary-subtitle{
    margin:8px 0 0;
    color:var(--mg-muted);
    font-size:15px;
    line-height:1.6;
}

.mg-glossary-index--cards .mg-search-label{
    position:relative;
    min-width:min(360px, 100%);
}

.mg-glossary-index--cards .mg-search-label::before{
    content:"⌕";
    position:absolute;
    left:18px;
    top:50%;
    transform:translateY(-50%);
    color:var(--mg-muted);
    font-size:20px;
    line-height:1;
    pointer-events:none;
}

.mg-glossary-index--cards .mg-glossary-search{
    border-color:color-mix(in srgb, var(--mg-accent) 12%, var(--mg-border));
    border-radius:999px;
    padding:14px 18px 14px 48px;
    box-shadow:0 10px 30px rgba(17,24,39,.05);
}

.mg-glossary-index--cards .mg-glossary-search:focus{
    box-shadow:0 10px 30px rgba(17,24,39,.06), 0 0 0 4px color-mix(in srgb, var(--mg-accent) 12%, transparent);
}

.mg-glossary-index--cards .mg-az-nav{
    gap:7px;
    margin:0;
    padding-top:18px;
    border-top:1px solid var(--mg-border);
}

.mg-glossary-index--cards .mg-az-link{
    width:36px;
    height:36px;
    padding:0;
    border:1px solid color-mix(in srgb, var(--mg-accent) 16%, var(--mg-border));
    border-radius:13px;
    background:#fff;
    color:var(--mg-accent);
    font-size:14px;
    font-weight:900;
    text-decoration:none;
    box-shadow:0 8px 22px rgba(17,24,39,.045);
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}

.mg-glossary-index--cards .mg-az-link:hover,
.mg-glossary-index--cards .mg-az-link:focus,
.mg-glossary-index--cards .mg-az-link.is-active{
    transform:translateY(-1px);
    border-color:var(--mg-accent);
    background:var(--mg-accent);
    color:#fff;
    box-shadow:0 12px 28px color-mix(in srgb, var(--mg-accent) 18%, transparent);
}

.mg-glossary-index--cards .mg-az-link.is-disabled{
    border-color:var(--mg-border);
    background:#f9fafb;
    color:var(--mg-muted);
    opacity:.48;
    box-shadow:none;
    transform:none;
}

.mg-glossary-index--cards .mg-glossary-list{
    max-width:none;
    margin-top:clamp(24px, 4vw, 38px);
}

.mg-glossary-index--cards .mg-letter-section{
    margin:0 0 clamp(22px, 4vw, 42px);
    scroll-margin-top:120px;
}

.mg-letter-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:14px;
}

.mg-glossary-index--cards .mg-letter-title{
    display:flex;
    align-items:center;
    justify-content:center;
    width:58px;
    height:58px;
    margin:0;
    border-radius:20px;
    background:var(--mg-accent-soft);
    color:var(--mg-accent);
    font-size:30px;
    font-weight:900;
    line-height:1;
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--mg-accent) 10%, transparent);
}

.mg-letter-count{
    color:var(--mg-muted);
    font-size:13px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.mg-glossary-index--cards .mg-letter-list{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:14px;
    margin:0;
    padding:0;
    list-style:none;
}

.mg-glossary-index--cards .mg-glossary-item{
    margin:0;
    color:var(--mg-text);
}

.mg-glossary-index--cards .mg-glossary-item a{
    display:grid;
    grid-template-columns:auto minmax(0, 1fr) auto;
    align-items:center;
    gap:13px;
    min-height:82px;
    border:1px solid var(--mg-border);
    border-radius:24px;
    background:#fff;
    color:var(--mg-text);
    padding:17px 18px;
    text-decoration:none;
    box-shadow:0 12px 38px rgba(17,24,39,.05);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.mg-glossary-index--cards .mg-glossary-item a:hover,
.mg-glossary-index--cards .mg-glossary-item a:focus{
    transform:translateY(-3px);
    border-color:color-mix(in srgb, var(--mg-accent) 34%, var(--mg-border));
    color:var(--mg-text);
    text-decoration:none;
    box-shadow:0 22px 56px rgba(17,24,39,.09);
}

.mg-term-initial{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:15px;
    background:var(--mg-accent-soft);
    color:var(--mg-accent);
    font-size:14px;
    font-weight:900;
    line-height:1;
}

.mg-term-name{
    min-width:0;
    overflow-wrap:anywhere;
    font-size:18px;
    font-weight:800;
    line-height:1.18;
}

.mg-term-arrow{
    color:var(--mg-accent);
    font-size:20px;
    line-height:1;
    opacity:.72;
    transform:translateX(0);
    transition:transform .18s ease, opacity .18s ease;
}

.mg-glossary-index--cards .mg-glossary-item a:hover .mg-term-arrow,
.mg-glossary-index--cards .mg-glossary-item a:focus .mg-term-arrow{
    opacity:1;
    transform:translateX(3px);
}

.mg-glossary-index--cards .mg-empty{
    margin-top:22px;
    border-radius:24px;
    background:#fff;
    box-shadow:0 12px 38px rgba(17,24,39,.05);
}

@media (max-width:960px){
    .mg-glossary-index--cards .mg-letter-list{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media (max-width:720px){
    .mg-archive-inner{
        width:min(100% - 28px, 1120px);
    }

    .mg-glossary-index--cards .mg-glossary-head{
        align-items:stretch;
    }

    .mg-glossary-index--cards .mg-search-label{
        min-width:100%;
    }

    .mg-glossary-index--cards .mg-az-link{
        width:34px;
        height:34px;
        border-radius:12px;
    }

    .mg-glossary-index--cards .mg-letter-list{
        grid-template-columns:1fr;
    }

    .mg-glossary-index--cards .mg-glossary-item a{
        min-height:74px;
        border-radius:20px;
        padding:15px;
    }

    .mg-term-name{
        font-size:17px;
    }
}
