body.public-site {
    color-scheme:dark;
    --bg:#090e13;
    --surface:#111a22;
    --line:#28343c;
    --text:#f0f2ef;
    --muted:#a8b4b7;
    --gold:#dfbc67;
    --green:#7dd1b0;
    --cyan:#82c8dd
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:100px
}
body.public-site {
    margin:0;
    background:var(--bg);
    color:var(--text);
    font:15px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif
}
button,a {
    -webkit-tap-highlight-color:transparent
}
button {
    font:inherit;
    cursor:pointer
}
a {
    color:inherit;
    text-decoration:none
}
button:focus-visible,a:focus-visible {
    outline:2px solid var(--cyan);
    outline-offset:5px
}
button:disabled {
    cursor:default
}
h1,h2,h3,p {
    margin:0
}
h2 {
    font-size:clamp(27px,3vw,38px);
    line-height:1.2;
    letter-spacing:-1.2px
}
h3 {
    line-height:1.3
}
p {
    color:var(--muted)
}
.home-wrap {
    width:min(1280px,calc(100% - 80px));
    margin:auto
}
.home-skip {
    position:fixed;
    top:-80px;
    left:20px;
    z-index:30;
    padding:10px;
    background:var(--gold);
    color:#111
}
.home-skip:focus {
    top:10px
}
.public-header {
    position:sticky;
    top:0;
    z-index:10;
    background:#0b1117f5;
    border-bottom:1px solid var(--line);
    backdrop-filter:blur(18px)
}
.public-header-inner {
    width:min(1440px,calc(100% - 64px));
    height:84px;
    display:flex;
    align-items:center;
    gap:36px;
    margin:auto
}
.public-brand {
    display:flex;
    gap:12px;
    align-items:center;
    white-space:nowrap
}
.public-brand img {
    width:44px;
    height:44px;
    border-radius:8px
}
.public-brand strong {
    display:block;
    font-size:17px;
    letter-spacing:.3px
}
.public-brand span {
    font-size:10px;
    color:var(--muted);
    letter-spacing:2px;
    text-transform:uppercase
}
.public-nav {
    display:flex;
    gap:24px;
    align-items:center;
    margin-left:auto
}
.public-portal {
    border:1px solid #5e5338;
    border-radius:5px;
    padding:10px 17px;
    background:#dfbc6709;
    color:#ebcf8f;
    font-size:12px;
    font-weight:700;
    white-space:nowrap
}
.public-menu-toggle {
    display:none;
    background:none;
    border:1px solid var(--line);
    border-radius:5px;
    color:white;
    padding:7px 12px
}
.home-hero {
    position:relative;
    min-height:536px;
    display:flex;
    align-items:center;
    isolation:isolate;
    border-bottom:1px solid #4c4530;
    overflow:hidden
}
.home-hero:before {
    content:"";
    position:absolute;
    inset:0;
    z-index:-2;
    background:url('/images/backgrounds/gildenbanner.webp') center 41%/cover
}
.home-hero:after {
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:linear-gradient(90deg,#0b1118fa 0%,#0b1118d9 30%,#0b11184a 70%,#0b111830),linear-gradient(0deg,#090e13 0%,transparent 34%)
}
.home-hero .home-wrap {
    padding-block:68px
}
.home-eyebrow {
    display:flex;
    gap:10px;
    align-items:center;
    font-size:10px;
    letter-spacing:2.2px;
    text-transform:uppercase;
    font-weight:700;
    color:var(--gold);
    margin-bottom:19px
}
.home-dot {
    width:6px;
    height:6px;
    border-radius:50%;
    background:currentColor;
    display:inline-block
}
.home-hero h1 {
    font-size:clamp(44px,5.5vw,76px);
    line-height:1.03;
    letter-spacing:-3px;
    font-weight:760;
    max-width:740px
}
.home-hero h1 span {
    color:var(--gold)
}
.home-hero .home-intro {
    max-width:470px;
    margin-top:23px;
    font-size:16px;
    line-height:1.75;
    color:#c3ccca
}
.home-actions {
    display:flex;
    flex-wrap:wrap;
    gap:13px;
    margin-top:29px
}
.home-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    padding:12px 19px;
    border-radius:4px;
    font-weight:700;
    font-size:12px;
    border:1px solid var(--line);
    background:transparent;
    color:#e3e8e7
}
.home-btn.home-gold {
    background:var(--gold);
    color:#161a1d;
    border-color:var(--gold)
}
.home-btn:hover {
    border-color:var(--gold)
}
.home-hero-caption {
    position:absolute;
    bottom:24px;
    right:max(40px,calc((100vw - 1280px)/2));
    font-size:9px;
    letter-spacing:1.5px;
    color:#cbd1be;
    text-transform:uppercase
}
.home-facts {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-bottom:1px solid var(--line)
}
.home-fact {
    padding:27px 28px 25px 0
}
.home-fact+.home-fact {
    border-left:1px solid var(--line);
    padding-left:30px
}
.home-fact span {
    display:block;
    color:var(--muted);
    font-size:10px;
    letter-spacing:1.3px;
    text-transform:uppercase;
    margin-bottom:8px
}
.home-fact strong {
    font-size:18px;
    font-weight:650
}
.home-fact small {
    font-size:11px;
    color:var(--muted);
    display:block;
    margin-top:4px
}
.home-fact .home-green {
    color:var(--green)
}
.home-section {
    padding-top:68px
}
.home-section-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:26px
}
.home-section-heading .home-eyebrow {
    margin-bottom:10px
}
.home-text-link {
    font-size:12px;
    color:var(--gold);
    background:none;
    border:0;
    padding:6px 0;
    white-space:nowrap
}
.home-raid-layout {
    display:grid;
    grid-template-columns:1.32fr 1fr;
    gap:24px
}
.home-raid-feature {
    min-height:294px;
    padding:28px 30px;
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    border:1px solid #46513c;
    border-radius:7px;
    overflow:hidden;
    background:#102015;
    isolation:isolate
}
.home-raid-feature:before {
    content:"";
    position:absolute;
    inset:0;
    z-index:-2;
    background:url('/images/sidenavigation/raid-icon.webp') right 20px center/220px no-repeat;
    opacity:.28
}
.home-raid-feature:after {
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:linear-gradient(90deg,#101b1ded,#101b1d12),linear-gradient(0deg,#0c161bec,transparent)
}
.home-status {
    font-size:9px;
    letter-spacing:1.2px;
    text-transform:uppercase;
    display:inline-flex;
    gap:7px;
    align-items:center;
    color:var(--green)
}
.home-raid-feature h3 {
    font-size:29px;
    letter-spacing:-.7px;
    margin-top:7px
}
.home-raid-feature p {
    font-size:12px;
    margin-top:7px;
    color:#c5cecd
}
.home-raid-bottom {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:12px
}
.home-progress-number {
    font-size:41px;
    font-weight:700;
    line-height:1;
    color:var(--gold);
    letter-spacing:-1px
}
.home-progress-number small {
    font-size:15px;
    color:#c7ceca;
    font-weight:500
}
.home-boss-track {
    display:flex;
    gap:6px;
    margin-top:15px
}
.home-boss-track i {
    width:27px;
    height:5px;
    background:#72816a
}
.home-boss-track i.home-done {
    background:var(--gold)
}
.home-raid-side {
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:7px;
    padding:27px 29px;
    display:flex;
    flex-direction:column;
    justify-content:space-between
}
.home-small-label {
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:1.4px;
    color:var(--muted)
}
.home-raid-side h3 {
    font-size:22px;
    margin-top:7px
}
.home-raid-side p {
    font-size:12px;
    margin-top:8px
}
.home-raid-side .home-text-link {
    text-align:left;
    margin-top:22px
}
.home-side-note {
    display:flex;
    gap:14px;
    border-top:1px solid var(--line);
    padding-top:17px;
    margin-top:20px
}
.home-side-note b {
    color:var(--green);
    font-size:20px
}
.home-side-note p {
    margin:0
}
.home-community {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px
}
.home-community-card {
    min-height:227px;
    border-radius:7px;
    overflow:hidden;
    border:1px solid var(--line);
    position:relative;
    display:flex;
    align-items:end;
    padding:25px 28px;
    isolation:isolate
}
.home-community-card:before {
    content:"";
    position:absolute;
    inset:0;
    z-index:-2;
    background:center/cover;
    opacity:.55;
    transition:transform .3s
}
.home-community-card:hover:before {
    transform:scale(1.025)
}
.home-community-card:after {
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:linear-gradient(0deg,#0a131cf7, #0a131c15)
}
.home-mplus:before {
    background-image:url('/images/icons/m+key-icon.webp');
    background-size:190px;
    background-position:right 20px center;
    background-repeat:no-repeat;
    background-color:#152831
}
.home-housing:before {
    background-image:url('/images/housing/neighborhood-1.webp')
}
.home-community-card .home-eyebrow {
    margin-bottom:7px;
    color:var(--cyan)
}
.home-community-card h3 {
    font-size:24px
}
.home-community-card p {
    font-size:12px;
    margin-top:6px;
    max-width:370px;
    color:#c0cbcf
}
.home-community-card .home-card-link {
    position:absolute;
    inset:0;
    width:100%;
    border:0;
    background:none;
    border-radius:7px
}
.home-community-card .home-arrow {
    position:absolute;
    right:28px;
    bottom:27px;
    color:var(--gold);
    font-size:23px
}
.home-values {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    margin-top:68px;
    padding:43px 0;
    border-block:1px solid var(--line);
    align-items:center
}
.home-values h2 {
    font-size:31px
}
.home-values p {
    font-size:13px;
    max-width:450px;
    margin-top:16px
}
.home-value-list {
    display:grid;
    gap:17px
}
.home-value {
    display:flex;
    gap:19px;
    align-items:start
}
.home-value b {
    font-size:10px;
    color:var(--gold);
    padding-top:3px
}
.home-value strong {
    font-size:13px
}
.home-value p {
    margin-top:3px;
    font-size:12px
}
.home-recruit {
    margin-top:62px;
    padding:34px 37px;
    border:1px solid #5b5135;
    border-radius:7px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    background:linear-gradient(110deg,#29291c55,#141e26)
}
.home-recruit .home-eyebrow {
    margin-bottom:9px
}
.home-recruit h2 {
    font-size:30px
}
.home-recruit p {
    font-size:12px;
    margin-top:10px;
    max-width:670px
}
.home-role-pills {
    display:flex;
    gap:8px;
    margin-top:17px;
    flex-wrap:wrap
}
.home-role-pills span {
    border:1px solid #536047;
    color:#c7d5b7;
    padding:4px 10px;
    font-size:10px;
    border-radius:3px
}
.public-footer {
    padding:43px 0 30px;
    margin-top:60px;
    border-top:1px solid var(--line)
}
.public-footer-top {
    display:flex;
    justify-content:space-between;
    gap:20px
}
.public-footer-brand strong {
    font-size:14px
}
.public-footer-brand p {
    font-size:11px;
    margin-top:4px
}
.public-footer-links {
    display:flex;
    align-items:center;
    gap:22px;
    flex-wrap:wrap
}
.public-footer-bottom {
    margin-top:28px;
    padding-top:19px;
    border-top:1px solid #202a32;
    display:flex;
    justify-content:space-between;
    gap:16px;
    font-size:10px;
    color:#7d8e97
}
@media(min-width:1600px) {
    .home-hero {
        min-height:590px
    }
}
@media(max-width:1120px) {
    .public-header-inner {
        gap:20px;
        width:calc(100% - 40px)
    }
    .public-nav {
        gap:15px
    }
    .public-brand strong {
        font-size:14px
    }
    .public-brand span {
        font-size:8px
    }
    .public-portal {
        padding:9px 12px
    }
    .home-wrap {
        width:calc(100% - 56px)
    }
    .home-hero h1 {
        font-size:62px
    }
    .home-hero:after {
        background:linear-gradient(90deg,#0b1118f5,#0b1118aa 50%,#0b111825),linear-gradient(0deg,#090e13,transparent 35%)
    }
    .home-fact strong {
        font-size:15px
    }
    .home-values {
        gap:36px
    }
}
@media(max-width:880px) {
    .public-header-inner {
        height:72px
    }
    .public-brand strong {
        font-size:15px
    }
    .public-portal {
        margin-left:auto
    }
    .public-menu-toggle {
        display:block
    }
    .public-nav {
        display:none;
        position:absolute;
        top:72px;
        left:0;
        right:0;
        background:#0c151e;
        border-bottom:1px solid var(--line);
        padding:14px 24px;
        grid-template-columns:repeat(3,1fr);
        gap:8px;
        margin:0
    }
    .public-nav.open {
        display:grid
    }
    .home-raid-layout {
        grid-template-columns:1fr 1fr
    }
    .home-fact {
        padding:24px 15px 24px 0
    }
    .home-fact+.home-fact {
        padding-left:18px
    }
    .home-recruit {
        padding:29px
    }
    .home-recruit h2 {
        font-size:26px
    }
}
@media(max-width:640px) {
    .home-wrap {
        width:calc(100% - 36px)
    }
    .public-header-inner {
        width:calc(100% - 28px);
        gap:12px
    }
    .public-brand {
        gap:8px
    }
    .public-brand img {
        width:34px;
        height:34px
    }
    .public-brand strong {
        font-size:12px
    }
    .public-brand span {
        font-size:7px;
        letter-spacing:1px
    }
    .public-portal {
        font-size:10px;
        padding:8px 9px
    }
    .public-menu-toggle {
        padding:5px 9px
    }
    .home-hero {
        min-height:480px
    }
    .home-hero .home-wrap {
        padding-block:65px 72px
    }
    .home-hero h1 {
        font-size:47px;
        letter-spacing:-2.2px
    }
    .home-hero .home-intro {
        font-size:14px;
        max-width:320px
    }
    .home-hero:before {
        background-position:61% center
    }
    .home-hero:after {
        background:linear-gradient(90deg,#0b1118ef,#0b111899),linear-gradient(0deg,#090e13,transparent 45%)
    }
    .home-eyebrow {
        font-size:8px;
        letter-spacing:1.6px
    }
    .home-hero-caption {
        bottom:17px;
        right:18px;
        font-size:7px
    }
    .home-facts {
        grid-template-columns:1fr 1fr
    }
    .home-fact {
        padding:19px 10px 18px 0
    }
    .home-fact+.home-fact {
        padding-left:18px
    }
    .home-fact:nth-child(3) {
        border-left:0;
        padding-left:0;
        border-top:1px solid var(--line)
    }
    .home-fact:nth-child(4) {
        border-top:1px solid var(--line)
    }
    .home-fact span {
        font-size:8px
    }
    .home-fact strong {
        font-size:15px
    }
    .home-fact small {
        font-size:10px
    }
    .home-section {
        padding-top:42px
    }
    .home-section-heading {
        align-items:center;
        gap:10px;
        margin-bottom:19px
    }
    .home-section-heading h2 {
        font-size:27px
    }
    .home-section-heading .home-text-link {
        font-size:10px;
        white-space:normal;
        text-align:right;
        max-width:84px
    }
    .home-raid-layout,.home-community,.home-values {
        grid-template-columns:1fr
    }
    .home-raid-feature {
        min-height:270px;
        padding:24px
    }
    .home-raid-feature h3 {
        font-size:25px
    }
    .home-raid-side {
        padding:24px
    }
    .home-community-card {
        min-height:225px;
        padding:23px
    }
    .home-community-card p {
        padding-right:25px
    }
    .home-values {
        margin-top:43px;
        padding:32px 0;
        gap:30px
    }
    .home-values h2 {
        font-size:28px
    }
    .home-value-list {
        gap:19px
    }
    .home-recruit {
        margin-top:40px;
        display:block;
        padding:25px
    }
    .home-recruit .home-btn {
        margin-top:25px
    }
    .public-footer {
        margin-top:43px;
        padding-top:30px
    }
    .public-footer-top {
        display:block
    }
    .public-footer-links {
        gap:17px;
        margin-top:20px
    }
    .public-footer-bottom {
        display:block;
        font-size:9px
    }
    .public-footer-bottom span {
        display:block;
        margin-top:5px
    }
    .public-nav {
        grid-template-columns:1fr 1fr
    }
}
@media(max-width:360px) {
    .public-header-inner {
        width:calc(100% - 24px);
        gap:8px
    }
    .public-brand strong {
        font-size:11px
    }
    .public-brand img {
        width:30px;
        height:30px
    }
    .public-portal {
        padding:7px 8px;
        font-size:9px
    }
    .public-menu-toggle {
        padding:5px 7px
    }
    .home-hero h1 {
        font-size:40px
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,*:before {
        transition:none!important
    }
}
/* Shared public pages and the saved character arrangement. */
body.public-site {
    padding-top:0!important;
    overflow-x:clip;
    background:var(--bg);
    font-family:system-ui,-apple-system,"Segoe UI",sans-serif
}
body.public-site .layout {
    display:block;
    min-height:0
}
body.public-site .content {
    display:block;
    width:min(1280px,calc(100% - 80px))!important;
    margin:0 auto!important;
    padding:32px 0 0!important;
    overflow:visible
}
body.public-site .content>* {
    width:100%;
    max-width:100%
}
body.public-site .hero-banner {
    height:220px!important;
    border-radius:7px;
    margin-bottom:32px
}
body.public-site .hero-banner .guild-banner-title {
    top:11%
}
body.public-site .hero-banner .guild-banner-title-main {
    font-size:clamp(24px,4vw,46px)
}
body.public-site .hero-banner .guild-banner-title-sub {
    font-size:9px
}
body.public-site .page-header {
    margin:0 0 32px;
    padding:24px 28px;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:7px;
    box-shadow:none
}
body.public-site .page-header:before,body.public-site .page-header:after {
    display:none
}
body.public-site .page-header h1,body.public-site .page-header h2 {
    color:var(--text);
    font-size:clamp(28px,3.6vw,42px);
    letter-spacing:-1px;
    text-shadow:none
}
body.public-site .page-header p {
    color:var(--muted);
    font-size:14px
}
body.public-site .page-section {
    margin-top:32px;
    margin-bottom:32px
}
body.public-site .card,body.public-site .raid-panel,body.public-site .dashboard-tabs-section {
    border-radius:7px;
    box-shadow:none
}
body.public-site .card {
    background:var(--surface);
    border-color:var(--line)
}
body.public-site .page-tabs,body.public-site .dashboard-tabs {
    border-radius:5px;
    box-shadow:none;
    flex-wrap:wrap
}
body.public-site [hidden] {
    display:none!important
}
.public-subnav {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin:0 0 24px;
    padding:0
}
.public-subnav a {
    font-size:12px;
    color:var(--cyan);
    border:1px solid var(--line);
    padding:7px 12px;
    border-radius:4px
}
.public-footer .public-footer-links details {
    position:relative;
    font-size:11px;
    color:var(--muted)
}
.public-footer details summary {
    cursor:pointer;
    list-style:none
}
.public-tools {
    position:absolute;
    bottom:28px;
    right:0;
    display:grid;
    gap:9px;
    min-width:160px;
    padding:14px;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:5px;
    z-index:3
}
.public-footer a:hover {
    color:var(--gold)
}
.home-main {
    display:block!important;
    padding:0!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important
}
.home-hero .home-wrap {
    position:relative;
    z-index:2
}
.home-hero .home-intro {
    max-width:470px
}
.home-character-stage.guild-banner-characters {
    left:0;
    width:100%;
    top:0;
    bottom:0;
    border-radius:0;
    z-index:1
}
.home-character-stage .guild-banner-character {
    pointer-events:none
}
.home-character-stage .guild-banner-character-name {
    max-width:180%
}
.home-progress-error {
    color:var(--muted)!important;
    font-size:14px!important;
    letter-spacing:0!important
}
.home-role-pills:empty {
    display:none
}
.home-data-note {
    font-size:11px;
    color:var(--muted)
}
.public-data-error {
    padding:14px 18px;
    border:1px solid #6d4b39;
    border-radius:5px;
    color:#ffc08c;
    font-size:13px;
    margin:12px 0
}
.public-data-error button {
    margin-left:12px;
    background:none;
    color:var(--gold);
    border:1px solid var(--line);
    padding:4px 10px;
    border-radius:3px
}
.public-header .public-brand strong {
    color:var(--text)
}
.public-footer-links>a {
    font-size:11px;
    color:var(--muted)
}
.public-header a.public-portal {
    color:#ebcf8f
}
.public-nav a {
    border:0;
    background:none;
    color:var(--muted);
    padding:29px 0;
    font-size:13px;
    font-weight:600;
    position:relative;
    white-space:nowrap
}
.public-nav a:hover,.public-nav a.active {
    color:#fff
}
.public-nav a.active:after {
    content:"";
    height:2px;
    background:var(--gold);
    bottom:0;
    left:0;
    right:0;
    position:absolute
}
.public-footer-links details[open] summary {
    color:var(--gold)
}
@media(max-width:1120px) {
    body.public-site .content {
        width:calc(100% - 56px)!important
    }
}
@media(max-width:880px) {
    .public-nav a {
        padding:12px;
        text-align:left
    }
    .public-nav a.active:after {
        display:none
    }
    .public-nav.open {
        display:grid
    }
}
@media(max-width:640px) {
    body.public-site .content {
        width:calc(100% - 36px)!important;
        padding-top:20px!important
    }
    .public-nav a {
        white-space:normal
    }
    .home-character-stage.guild-banner-characters {
        left:0;
        width:100%;
        opacity:.15
    }
    .home-character-stage .guild-banner-character-name {
        display:none
    }
    body.public-site .page-header {
        padding:20px;
        margin-bottom:22px
    }
    body.public-site .hero-banner {
        height:180px!important;
        margin-bottom:22px
    }
    .home-community-card .home-card-link {
        position:absolute;
        inset:0;
        width:100%;
        border:0;
        background:none;
        border-radius:7px
    }
    .public-header .public-brand img {
        max-width:none
    }
    .public-subnav a {
        font-size:11px
    }
    .public-footer .public-tools {
        left:0;
        right:auto
    }
}
.public-header .public-brand span {
    display:block
}
.public-header .public-brand>div {
    line-height:1.35
}
.home-boss-track {
    max-width:100%;
    flex-wrap:wrap
}
.home-boss-track i {
    flex:0 1 27px
}
.home-card-link {
    position:absolute;
    inset:0;
    border-radius:7px
}
.home-boss-track i.done {
    background:var(--gold)
}

body.public-site .card,
body.public-site .raid-panel,
body.public-site .live-raid-panel,
body.public-site .dashboard-tab-panel {
    border-radius: 7px !important;
    box-shadow: none !important;
}
body.public-site .page-tab.active,
body.public-site .dashboard-tab.active {
    color: var(--gold) !important;
    background: rgba(223, 188, 103, .08) !important;
    border-color: rgba(223, 188, 103, .4) !important;
    box-shadow: inset 0 -2px 0 var(--gold) !important;
}
body.public-site .page-tab:not(.active),
body.public-site .dashboard-tab:not(.active) {
    box-shadow: none !important;
}
body.public-site .page-section > h3 {
    color: var(--text);
}

/* Raid information remains readable on small screens without card overflow. */
body.public-site .next-raid-panel {
    padding: 24px;
    border-radius: 7px;
    box-shadow: none;
    transform: none;
}
body.public-site .next-raid-content {
    grid-template-columns: minmax(0, 1.2fr) repeat(3, minmax(0, 1fr));
    gap: 24px;
}
body.public-site .next-raid-content > * {
    min-width: 0;
    max-width: 100%;
}
body.public-site .next-raid-difficulty-box {
    gap: 12px;
    flex-wrap: wrap;
}
body.public-site .next-raid-difficulty { font-size: 26px; text-shadow: none; }
body.public-site .next-raid-title { overflow-wrap: anywhere; }
body.public-site .next-raid-panel.is-empty .next-raid-content { grid-template-columns: minmax(0, 1fr); }
body.public-site #next-raid-countdown {
    animation: none;
    font-size: 17px;
    line-height: 1.5;
    text-shadow: none;
    overflow-wrap: anywhere;
}
body.public-site #next-raid-icon { width: 52px; height: 52px; }
body.public-site .next-raid-instance-icon { width: 44px; height: 44px; }
@media (max-width: 1000px) {
    body.public-site .next-raid-content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    body.public-site .next-raid-content { grid-template-columns: minmax(0, 1fr); }
    body.public-site .next-raid-panel { padding: 20px; }
    body.public-site .next-raid-info { align-items: flex-start; text-align: left; }
    body.public-site .next-raid-countdown { align-items: flex-start; }
    body.public-site .page-header-grid { gap: 18px; }
    body.public-site .page-header-icon { display: none; }
}

/* Keep banner layers inside the banner, below the sticky navigation. */
body.public-site .hero-banner {
    isolation: isolate;
    z-index: 0;
}
body.public-site:not([data-page="home"]) .guild-banner-characters {
    display: none;
}

/* Both guild-life views use the same bounded reading area. */
body.public-site[data-page="about"] :is(#dashboard-panel-activity, #dashboard-panel-classes) {
    display: flex;
    flex-direction: column;
    height: 640px;
    overflow: hidden;
}
body.public-site[data-page="about"] .dashboard-panel-heading { flex: 0 0 auto; }
body.public-site[data-page="about"] :is(#activity, #classes) {
    flex: 1 1 auto;
    min-height: 0;
}
body.public-site[data-page="about"] #classes {
    overflow-y: auto;
    scrollbar-gutter: stable;
}
body.public-site[data-page="about"] .activity-panel {
    min-height: 0;
    height: 100%;
    padding: 20px;
}
body.public-site[data-page="about"] .activity-tabs { flex: 0 0 auto; }
body.public-site[data-page="about"] .activity-tab-panels {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}
body.public-site[data-page="about"] .activity-tab-panel {
    height: 100%;
    overflow-y: auto;
    scrollbar-gutter: stable;
}
body.public-site[data-page="about"] .activity-tab-panel:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: -2px;
}

/* Role groups follow reading order: tanks/healers, then melee/ranged. */
body.public-site #raid-roster .raid-roster {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
}
body.public-site #raid-roster .raid-role { min-width: 0; }
.mini-raid-portrait {
    object-position: 20% center;
    float: right;
    width: 72px;
    height: 72px;
    margin: 0 0 12px 16px;
    border: 1px solid var(--line);
    border-radius: 6px;
    object-fit: cover;
}

/* Center the neighborhood dialog in the viewport, independent of old sidebars. */
body.public-site #neighborhood-modal {
    inset: 0 !important;
    width: auto;
    max-width: none;
    padding: 16px !important;
    overflow: hidden;
    place-items: center;
}
body.public-site #neighborhood-modal.open { display: grid; }
body.public-site #neighborhood-modal .housing-modal-backdrop { position: fixed; }
body.public-site #neighborhood-modal .housing-modal-window {
    width: min(1180px, 100%) !important;
    max-height: calc(100dvh - 32px) !important;
    margin: 0;
    min-width: 0;
}
@media (max-width: 760px) {
    body.public-site #raid-roster .raid-roster { grid-template-columns: minmax(0, 1fr); }
    body.public-site[data-page="about"] .activity-panel { padding: 12px; }
}

/* The admin preview uses the real homepage hero, scaled as a complete scene. */
html.banner-editor-preview, html.banner-editor-preview body {
    margin: 0;
    min-height: 0;
    overflow: hidden;
}
.banner-editor-preview .home-hero .home-wrap,
.banner-editor-preview .home-hero-caption { pointer-events: none; }
.banner-editor-preview .guild-banner-character {
    pointer-events: auto;
    cursor: grab;
    touch-action: none;
    user-select: none;
}
.banner-editor-preview .guild-banner-character.is-active {
    outline: 2px dashed var(--gold);
    outline-offset: 4px;
}
.banner-editor-preview .guild-banner-character:focus-visible {
    outline: 3px solid var(--gold);
}
.banner-editor-preview .guild-banner-character img { pointer-events: none; }

/* Eigenständige Charakteraufstellung unter dem Startseitenbanner. */
.home-characters { background: radial-gradient(ellipse at 50% 100%, #18251f 0%, #101a19 45%, #0a1116 85%); border-block: 1px solid #a58a4140; }
.home-characters[hidden] { display: none; }
.home-character-scroll { overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #675a35 #0a1116; }
.home-character-scroll:focus-visible { outline: 2px solid #dfbd65; outline-offset: -3px; }
.home-character-strip-stage.guild-banner-characters { position: relative; inset: auto; width: min(1760px, calc(100% - 48px)); min-width: 1440px; height: 280px; margin-inline: auto; border-radius: 0; z-index: 0; isolation: isolate; }
.home-character-strip-stage .guild-banner-character .guild-banner-character-name,
.home-character-strip-stage .guild-banner-character .guild-banner-character-name[data-long-name="true"] { display: block; font-size: var(--name-size, 12px) !important; max-width: 110px; overflow: hidden; text-overflow: ellipsis; }
.banner-editor-preview .home-character-scroll { scrollbar-width: thin; }
