:root {
    --v107-iron: #74777a;
    --v107-gold: #d9b766;
    --v107-ivory: #f7e8b7;
    --v107-ink: #050607;
}

.v107-rank-insignia {
    --v107-main: #74777a;
    --v107-light: #b7b9ba;
    --v107-deep: #24272a;
    --v107-glow: rgba(116, 119, 122, .18);
    position: relative;
    width: 34px;
    aspect-ratio: .84;
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    isolation: isolate;
    color: var(--v107-light);
    filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .72));
}
.v107-rank-insignia[data-rank-id="knight"] { --v107-main:#c7cdd1; --v107-light:#f4f7f7; --v107-deep:#555d64; --v107-glow:rgba(199,205,209,.24); }
.v107-rank-insignia[data-rank-id="baronet"] { --v107-main:#b87843; --v107-light:#e4aa6c; --v107-deep:#4e2815; --v107-glow:rgba(184,120,67,.26); }
.v107-rank-insignia[data-rank-id="baron"] { --v107-main:#4f9a70; --v107-light:#9bddb3; --v107-deep:#153a28; --v107-glow:rgba(79,154,112,.3); }
.v107-rank-insignia[data-rank-id="viscount"] { --v107-main:#5790bf; --v107-light:#a7d5f5; --v107-deep:#18364f; --v107-glow:rgba(87,144,191,.34); }
.v107-rank-insignia[data-rank-id="count"] { --v107-main:#9272bd; --v107-light:#d1b6ed; --v107-deep:#382450; --v107-glow:rgba(146,114,189,.38); }
.v107-rank-insignia[data-rank-id="marquess"] { --v107-main:#bd5363; --v107-light:#f2a2aa; --v107-deep:#57131f; --v107-glow:rgba(189,83,99,.42); }
.v107-rank-insignia[data-rank-id="duke"] { --v107-main:#d9b766; --v107-light:#fff0ae; --v107-deep:#654613; --v107-glow:rgba(217,183,102,.48); }
.v107-rank-insignia[data-rank-id="grand-duke"] { --v107-main:#e2e1d8; --v107-light:#ffffff; --v107-deep:#77818c; --v107-glow:rgba(226,225,216,.52); }
.v107-rank-insignia[data-rank-id="succession"] { --v107-main:#ffe59a; --v107-light:#fff8d5; --v107-deep:#861c2d; --v107-glow:rgba(255,213,91,.66); }

.v107-crest-svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    shape-rendering: geometricPrecision;
}
.v107-rank-insignia { aspect-ratio: 120 / 132; }
.v107-metal-light { stop-color: var(--v107-light); }
.v107-metal-main { stop-color: var(--v107-main); }
.v107-metal-deep { stop-color: var(--v107-deep); }
.v107-enamel-light { stop-color: var(--v107-enamel, #34404b); }
.v107-enamel-deep { stop-color: #101923; }
.v107-crest-outline,
.v107-crest-metal,
.v107-crest-band,
.v107-crest-ribbon-tail {
    stroke: #111922;
    stroke-width: 1.8;
    stroke-linejoin: round;
}
.v107-crest-metal { fill: var(--v107-main); }
.v107-crest-band { fill: var(--v107-light); }
.v107-crest-enamel { stroke: var(--v107-deep); stroke-width: 1.2; }
.v107-crest-motif { fill: var(--v107-light); stroke: #15202b; stroke-width: 1; stroke-linejoin: round; }
.v107-crest-cut { fill: var(--v107-enamel, #34404b); stroke: none; }
.v107-crest-gem { fill: var(--v107-gem, #bde4ed); stroke: var(--v107-light); stroke-width: 1; }
.v107-crest-rivets,
.v107-crest-stars,
.v107-crest-sparkles { fill: var(--v107-light); }
.v107-crest-ribbon-tail { fill: var(--v107-enamel, #34404b); }
.v107-crest-ribbon-seam { fill: none; stroke: var(--v107-main); stroke-width: 1.5; }
.v107-crest-bevel,
.v107-crest-highlight { fill: none; stroke: var(--v107-light); stroke-width: 1.5; stroke-linecap: round; opacity: .66; }
.v107-crest-engrave { fill: none; stroke: var(--v107-deep); stroke-width: 1.5; stroke-linecap: round; }
.v107-crest-halo { fill: none; stroke: var(--v107-main); stroke-width: 1; opacity: .6; }
.v107-rank-insignia[data-rank-id="knight"] { --v107-enamel:#425773; --v107-gem:#eef9ff; }
.v107-rank-insignia[data-rank-id="baronet"] { --v107-enamel:#654132; --v107-gem:#ffe2a2; }
.v107-rank-insignia[data-rank-id="baron"] { --v107-enamel:#1f5e4c; --v107-gem:#a7f0c8; }
.v107-rank-insignia[data-rank-id="viscount"] { --v107-enamel:#245684; --v107-gem:#94ddff; }
.v107-rank-insignia[data-rank-id="count"] { --v107-enamel:#583e7e; --v107-gem:#e2c7ff; }
.v107-rank-insignia[data-rank-id="marquess"] { --v107-enamel:#833044; --v107-gem:#ffb4aa; }
.v107-rank-insignia[data-rank-id="duke"] { --v107-enamel:#745822; --v107-gem:#e95878; }
.v107-rank-insignia[data-rank-id="grand-duke"] { --v107-enamel:#3b5570; --v107-gem:#86d9ff; }
.v107-rank-insignia[data-rank-id="succession"] { --v107-enamel:#8e243b; --v107-gem:#ff6785; --v107-deep:#8c622b; }
.v107-rank-insignia:is(.is-grade-8,.is-grade-9,.is-grade-10) {
    filter: drop-shadow(0 2px 3px rgba(0,0,0,.8)) drop-shadow(0 0 5px var(--v107-glow));
}
.v107-rank-insignia.is-compact { width: 21px; filter: drop-shadow(0 1px 1px rgba(0,0,0,.75)); }
.v107-rank-insignia.is-compact :is(.v107-crest-detail,.v107-crest-stars,.v107-crest-ribbon-seam,.v107-crest-halo) { display: none; }
.v107-rank-insignia.is-compact .v107-crest-outline { stroke-width: 2.8; }
.v107-rank-insignia.is-compact .v107-crest-motif { stroke-width: .5; }
.v107-rank-insignia.is-preview { width: 43px; }
.v107-rank-insignia.is-table { width: 29px; filter: drop-shadow(0 1px 2px rgba(0,0,0,.72)); }
.v107-rank-insignia.is-table .v107-crest-sparkles { display: none; }
.v107-rank-insignia.is-hero { width: 104px; filter: drop-shadow(0 5px 7px rgba(0,0,0,.65)); }
#v106-ranked-battle-badge > .v107-ranked-battle-crest { display: grid; place-items: center; font-size: 0; }

.v107-home-rank-row {
    min-width: 0;
    display: grid;
    grid-template-columns: 21px minmax(0, 1fr);
    gap: 5px;
    align-items: center;
    margin-top: 3px;
}
#v105-home-profile-button { min-height:66px; }
.v107-home-rank-row .v106-profile-rank {
    min-width: 0;
    margin: 0;
    color: var(--v107-rank-color, #d7b65f);
    font-size: 9px;
    line-height: 1.18;
    white-space: pre-line;
}
.v107-preview-rank-row {
    position: relative;
    width: min(240px, 95%);
    display: grid;
    grid-template-columns: 43px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    margin-top: 8px;
    padding: 7px 10px 7px 7px;
    border: 1px solid color-mix(in srgb, var(--v107-rank-color, #d9b766) 42%, transparent);
    background: linear-gradient(100deg, color-mix(in srgb, var(--v107-rank-color, #d9b766) 12%, transparent), rgba(0,0,0,.5));
    box-shadow: inset 0 0 16px rgba(0,0,0,.42);
}
.v107-preview-rank-copy { min-width:0; display:grid; gap:4px; text-align:left; }
.v107-preview-rank-kicker { color:#756e5d; font:700 6px/1 "Courier New", monospace; letter-spacing:.16em; }
.v107-preview-rank-honor { overflow:hidden; color:var(--v107-rank-color, #e4c66e); font:900 11px/1.15 Georgia, "Yu Mincho", serif; white-space:nowrap; text-overflow:ellipsis; }
.v107-preview-rank-row .v106-profile-preview-rank {
    max-width:100%;
    margin:0;
    padding:0;
    overflow:hidden;
    border:0;
    color:#9c9178;
    background:none;
    font:700 9px/1.2 "Courier New", monospace;
    white-space:nowrap;
    text-overflow:ellipsis;
}

#v106-current-rank-crest.v107-rank-crest-enhanced {
    width: 116px;
    height: 132px;
    overflow: visible;
    border: 0;
    clip-path: none;
    color: inherit;
    background: none;
    box-shadow: none;
    text-shadow: none;
    filter: none !important;
}
.v107-current-rank-honor {
    margin-top: 7px;
    overflow: hidden;
    color: var(--v107-rank-color, #d9b766);
    font: 900 12px/1.15 Georgia, "Yu Mincho", serif;
    letter-spacing: .12em;
    white-space: nowrap;
    text-overflow: ellipsis;
    text-shadow: 0 0 10px color-mix(in srgb, var(--v107-rank-color, #d9b766) 28%, transparent);
}
.v107-current-rank-honor::before { content:"爵位章 / "; color:#746b57; font:700 7px/1 "Courier New", monospace; letter-spacing:.12em; }

#v106-rank-tier-body .v106-tier-gem { display:none; }
.v107-tier-name-cell { display:grid; grid-template-columns:29px minmax(0,1fr); gap:9px; align-items:center; min-width:190px; }
.v107-tier-name-copy { min-width:0; display:grid; gap:3px; }
.v107-tier-honor { overflow:hidden; color:var(--v107-row-color, #c4b180); font:900 10px/1.15 Georgia, "Yu Mincho", serif; white-space:nowrap; text-overflow:ellipsis; }
.v107-tier-formal { color:#756e5e; font:700 7px/1.1 "Courier New", monospace; letter-spacing:.08em; }
#v106-rank-tier-body tr.is-current .v107-tier-honor { color:#ffe9aa; text-shadow:0 0 8px var(--v107-row-color, rgba(217,183,102,.4)); }

[data-v107-rank-id="squire"] { --v107-rank-color:#8a8d90; --v107-row-color:#8a8d90; }
[data-v107-rank-id="knight"] { --v107-rank-color:#d1d6d9; --v107-row-color:#d1d6d9; }
[data-v107-rank-id="baronet"] { --v107-rank-color:#c6864e; --v107-row-color:#c6864e; }
[data-v107-rank-id="baron"] { --v107-rank-color:#66b486; --v107-row-color:#66b486; }
[data-v107-rank-id="viscount"] { --v107-rank-color:#75afe0; --v107-row-color:#75afe0; }
[data-v107-rank-id="count"] { --v107-rank-color:#ad8bd7; --v107-row-color:#ad8bd7; }
[data-v107-rank-id="marquess"] { --v107-rank-color:#df7785; --v107-row-color:#df7785; }
[data-v107-rank-id="duke"] { --v107-rank-color:#e2bd62; --v107-row-color:#e2bd62; }
[data-v107-rank-id="grand-duke"] { --v107-rank-color:#f0efe8; --v107-row-color:#f0efe8; }
[data-v107-rank-id="succession"] { --v107-rank-color:#ffe59a; --v107-row-color:#ffe59a; }

@media (max-width: 700px) {
    #v105-home-profile-button { width:clamp(154px, 45vw, 205px); min-height:58px; }
    .v107-home-rank-row { grid-template-columns:19px minmax(0,1fr); gap:4px; }
    .v107-rank-insignia.is-compact { width:19px; }
    .v107-home-rank-row .v106-profile-rank {
        display:-webkit-box;
        overflow:hidden;
        font-size:9.5px;
        line-height:1.2;
        white-space:pre-line;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:2;
    }
    .v107-home-succession-rp { display:none; }
    .v107-preview-rank-row { width:min(220px, 98%); margin-top:5px; padding:5px 8px 5px 5px; }
    .v107-rank-insignia.is-preview { width:35px; }
    .v107-preview-rank-row { grid-template-columns:35px minmax(0,1fr); gap:7px; }
    .v107-preview-rank-honor { font-size:11px; }
    .v107-preview-rank-row .v106-profile-preview-rank { font-size:9px; }
    #v106-current-rank-crest.v107-rank-crest-enhanced { width:76px; height:88px; }
    .v107-rank-insignia.is-hero { width:72px; }
    .v107-current-rank-honor { margin-top:5px; font-size:9px; }
    .v107-current-rank-honor::before { font-size:6px; }
    #v106-current-rank {
        overflow:visible;
        white-space:normal;
        text-overflow:clip;
        overflow-wrap:anywhere;
    }
    .v106-rank-table { width:100%; min-width:0; }
    .v106-rank-table thead {
        position:absolute;
        width:1px;
        height:1px;
        overflow:hidden;
        clip:rect(0 0 0 0);
        white-space:nowrap;
    }
    .v106-rank-table tbody { display:grid; gap:6px; padding:6px; }
    .v106-rank-table tbody tr {
        position:relative;
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        gap:3px 10px;
        padding:8px 9px;
        border:1px solid rgba(217,183,102,.13);
        background:rgba(255,255,255,.018);
    }
    .v106-rank-table tbody tr.is-current { padding-top:24px; outline:1px solid #d9b766; outline-offset:-2px; }
    .v106-rank-table tbody tr.is-current::before {
        content:"現在";
        position:absolute;
        top:5px;
        right:7px;
        padding:2px 6px;
        color:#150f06;
        background:#e1be69;
        font:900 7px/1.2 "Yu Mincho", serif;
        letter-spacing:.08em;
    }
    .v106-rank-table td { display:block; padding:3px 4px; border:0; }
    .v106-rank-table td:first-child { grid-column:1 / -1; }
    .v106-rank-table td:nth-child(2)::before { content:"必要RP "; color:#756d5b; }
    .v106-rank-table td:nth-child(3) { color:#756d5b; text-align:right; }
    .v107-tier-name-cell { min-width:0; }
    .v107-tier-honor { font-size:11px; }
    .v106-rank-close,
    .v106-rank-action { min-width:44px; min-height:44px; }
    .v106-rank-close:focus-visible,
    .v106-rank-action:focus-visible { outline:2px solid #ffe3a0; outline-offset:2px; }
}
@media (max-width: 900px) and (min-width: 701px) {
    #v106-current-rank-crest.v107-rank-crest-enhanced { width:96px; height:108px; }
    .v107-rank-insignia.is-hero { width:88px; }
}
@media (max-width: 370px) {
    #v105-home-profile-button { width:154px; grid-template-columns:40px minmax(0,1fr); }
    #v105-home-profile-button .v105-profile-emblem { width:40px; height:40px; }
    #v105-home-profile-button .v105-profile-edit-mark { display:none; }
    .v107-home-rank-row .v106-profile-rank { font-size:9.5px; }
}
@media (prefers-reduced-motion: reduce) {
    .v107-rank-insignia,
    .v107-crest-svg { animation:none !important; transition:none !important; }
}
@media (forced-colors: active) {
    .v107-rank-insignia,
    .v107-preview-rank-row,
    .v106-rank-table tbody tr.is-current { border:2px solid CanvasText; filter:none !important; }
    .v107-crest-svg * { stroke:CanvasText; fill:Canvas; }
    .v107-crest-motif > path:not(.v107-crest-cut),
    .v107-crest-metal,
    .v107-crest-band { fill:CanvasText; }
    .v107-crest-cut { fill:Canvas; }
    .v107-crest-halo,
    .v107-crest-sparkles { display:none !important; }
}
