@font-face {
    font-family: "Minecraft";
    src: url("fonts/MinecraftTen.ttf") format("truetype");
    font-display: swap;
}

:root {
    --page-width: 1180px;
    --radius-xl: 30px;
    --radius-lg: 22px;
    --radius-md: 18px;
    --surface-border: rgba(178, 233, 255, 0.24);
    --surface-panel: linear-gradient(180deg, rgba(13, 49, 127, 0.94), rgba(7, 26, 74, 0.98));
    --shadow-deep: 0 32px 90px rgba(5, 23, 72, 0.32);
    --shadow-soft: 0 16px 42px rgba(10, 29, 81, 0.24);
    --text-soft: rgba(231, 246, 255, 0.82);
    --text-muted: rgba(210, 234, 255, 0.66);
    --brand-a: #3c74e2;
    --brand-b: #00f4fe;
    --brand-c: #6ae7ff;
    --danger: #ff5d74;
}

html {
    background: #07163e;
}

body.site-shell,
body.bare-shell,
body.admin-shell {
    min-height: 100vh;
    margin: 0;
    color: #ffffff;
    overflow-x: hidden;
}

body.site-shell {
    position: relative;
    background:
        radial-gradient(72% 34% at 12% 4%, rgba(245, 252, 255, 0.72), rgba(245, 252, 255, 0.18) 34%, transparent 66%),
        radial-gradient(56% 28% at 88% 8%, rgba(204, 243, 255, 0.42), rgba(204, 243, 255, 0.12) 34%, transparent 70%),
        radial-gradient(38% 20% at 54% 18%, rgba(151, 223, 255, 0.28), rgba(151, 223, 255, 0.08) 42%, transparent 74%),
        radial-gradient(62% 36% at 48% 42%, rgba(104, 192, 245, 0.22), rgba(104, 192, 245, 0.08) 42%, transparent 76%),
        radial-gradient(76% 52% at 18% 76%, rgba(50, 136, 219, 0.18), rgba(50, 136, 219, 0.08) 36%, transparent 72%),
        radial-gradient(68% 46% at 84% 86%, rgba(19, 79, 172, 0.26), rgba(19, 79, 172, 0.1) 40%, transparent 74%),
        linear-gradient(180deg, #c5eaff 0%, #b3e1ff 6%, #a1dbff 13%, #90d5ff 22%, #7fcef9 31%, #71c8f3 40%, #63bee9 49%, #53aed9 59%, #4598c7 69%, #387fb3 79%, #28649b 89%, #163f75 100%);
}

body.bare-shell,
body.admin-shell {
    background:
        radial-gradient(circle at top, rgba(104, 209, 255, 0.18), transparent 30%),
        linear-gradient(180deg, #0b2465 0%, #0a1d53 26%, #08163f 58%, #071233 100%);
}

body.site-shell::before,
body.bare-shell::before,
body.admin-shell::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}

body.site-shell::before {
    background:
        radial-gradient(44% 20% at 6% 20%, rgba(255, 255, 255, 0.2), transparent 70%),
        radial-gradient(32% 18% at 94% 16%, rgba(197, 246, 255, 0.16), transparent 74%),
        radial-gradient(58% 30% at 44% 58%, rgba(76, 165, 235, 0.14), transparent 72%),
        radial-gradient(34% 18% at 78% 44%, rgba(134, 230, 255, 0.12), transparent 74%),
        linear-gradient(109deg, rgba(250, 254, 255, 0.2) 0%, rgba(218, 247, 255, 0.1) 9%, rgba(166, 228, 255, 0.04) 20%, transparent 34%),
        linear-gradient(81deg, rgba(204, 239, 255, 0.15) 0%, rgba(153, 220, 255, 0.06) 14%, rgba(101, 183, 245, 0.03) 28%, transparent 42%),
        linear-gradient(131deg, rgba(136, 221, 255, 0.06) 0%, rgba(109, 195, 250, 0.1) 16%, rgba(91, 179, 239, 0.12) 33%, rgba(69, 150, 222, 0.08) 50%, rgba(53, 128, 204, 0.14) 71%, rgba(21, 81, 164, 0.2) 100%);
}

body.site-shell::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        radial-gradient(72% 56% at 50% 10%, rgba(184, 240, 255, 0.08) 0%, transparent 74%),
        linear-gradient(101deg, rgba(247, 253, 255, 0.18) 0%, rgba(247, 253, 255, 0.07) 8%, rgba(192, 238, 255, 0.025) 18%, transparent 31%),
        linear-gradient(68deg, rgba(184, 231, 255, 0.11) 4%, rgba(184, 231, 255, 0.04) 17%, transparent 30%),
        linear-gradient(136deg, rgba(139, 226, 255, 0.06) 0%, rgba(139, 226, 255, 0.025) 24%, transparent 46%);
}

body.bare-shell::before,
body.admin-shell::before {
    background:
        radial-gradient(circle at 10% 18%, rgba(60, 116, 226, 0.2), transparent 18%),
        radial-gradient(circle at 85% 12%, rgba(0, 244, 254, 0.16), transparent 20%),
        radial-gradient(circle at 42% 92%, rgba(122, 220, 255, 0.1), transparent 18%);
}

.hero-backdrop,
.hero-backdrop-fade,
.sky-bubble-field {
    position: fixed;
    inset: 0 auto auto 0;
    width: 100%;
    pointer-events: none;
}

body.site-shell .hero-backdrop {
    position: absolute;
    inset: 0 0 auto 0;
    height: min(86vh, calc(var(--hero-backdrop-height) + 120px));
    background-image:
        linear-gradient(180deg, rgba(241, 250, 255, 0.05) 0%, rgba(214, 243, 255, 0.08) 14%, rgba(168, 223, 255, 0.12) 32%, rgba(108, 190, 241, 0.18) 52%, rgba(72, 151, 222, 0.24) 70%, rgba(44, 111, 194, 0.26) 86%, rgba(27, 83, 168, 0.2) 100%),
        var(--hero-image);
    background-position: center top;
    background-size: var(--hero-background-size);
    background-repeat: no-repeat;
    z-index: 1;
}

body.bare-shell .hero-backdrop,
body.admin-shell .hero-backdrop,
.hero-backdrop {
    height: min(64vh, var(--hero-backdrop-height));
    background-image:
        linear-gradient(180deg, rgba(5, 23, 62, 0.12), rgba(7, 24, 67, 0.58) 76%, rgba(8, 23, 59, 0.94) 100%),
        var(--hero-image);
    background-position: center top;
    background-size: cover;
    z-index: 1;
}

body.site-shell .hero-backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(74% 54% at 50% 18%, rgba(188, 239, 255, 0.18) 0%, rgba(188, 239, 255, 0.08) 28%, transparent 62%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(214, 247, 255, 0.08) 20%, rgba(154, 224, 255, 0.09) 40%, rgba(107, 189, 242, 0.13) 58%, rgba(67, 144, 218, 0.12) 78%, rgba(25, 87, 173, 0.08) 100%),
        linear-gradient(121deg, rgba(248, 254, 255, 0.14) 0%, rgba(223, 248, 255, 0.08) 18%, rgba(156, 223, 255, 0.04) 40%, rgba(126, 239, 255, 0.05) 66%, rgba(255, 255, 255, 0.03) 100%);
}

body.bare-shell .hero-backdrop::after,
body.admin-shell .hero-backdrop::after,
.hero-backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(0, 244, 254, 0.06) 40%, rgba(60, 116, 226, 0.14) 100%);
}

body.site-shell .hero-backdrop-fade {
    position: absolute;
    inset: 0 0 auto 0;
    height: min(150vh, calc(var(--hero-backdrop-height) + 760px));
    background:
        radial-gradient(140% 78% at 50% 0%, rgba(145, 219, 255, 0.18) 0%, rgba(145, 219, 255, 0.08) 34%, transparent 68%),
        radial-gradient(84% 58% at 50% 78%, rgba(52, 130, 209, 0.22) 0%, rgba(52, 130, 209, 0.1) 38%, transparent 72%),
        linear-gradient(
            180deg,
            rgba(173, 220, 255, 0) 0%,
            rgba(173, 220, 255, 0) 34%,
            rgba(149, 214, 252, 0.08) 44%,
            rgba(117, 193, 240, 0.18) 55%,
            rgba(90, 170, 228, 0.24) 65%,
            rgba(67, 144, 209, 0.2) 74%,
            rgba(49, 119, 190, 0.12) 83%,
            rgba(32, 92, 170, 0.06) 91%,
            rgba(14, 48, 114, 0) 100%
        );
    z-index: 2;
}

body.bare-shell .hero-backdrop-fade,
body.admin-shell .hero-backdrop-fade,
.hero-backdrop-fade {
    height: min(92vh, 960px);
    background: linear-gradient(180deg, rgba(9, 23, 63, 0) 6%, rgba(9, 24, 64, 0.34) 30%, rgba(9, 24, 65, 0.9) 70%, #08163f 100%);
    z-index: 2;
}

body.no-hero-background .hero-backdrop,
body.no-hero-background .hero-backdrop-fade {
    display: none;
}

.sky-bubble-field {
    position: fixed;
    inset: 0;
    width: auto;
    z-index: 3;
    overflow: hidden;
    pointer-events: none;
}

.sky-bubble-field span {
    position: absolute;
    left: var(--bubble-left);
    bottom: -10vh;
    width: var(--bubble-size);
    height: var(--bubble-size);
    border-radius: 999px;
    background: radial-gradient(circle at 30% 25%, rgba(255, 255, 255, 0.9), rgba(122, 228, 255, 0.4) 28%, rgba(0, 244, 254, 0.2) 58%, rgba(60, 116, 226, 0.05) 100%);
    box-shadow: 0 0 18px rgba(92, 224, 255, 0.2);
    opacity: 0.82;
    animation: bubbleRise var(--bubble-duration) linear infinite;
    animation-delay: var(--bubble-delay);
}

.sky-bubble-field--ambient {
    z-index: 2;
}

.sky-bubble-field--ambient span {
    opacity: 0.34;
}

body.site-shell .sky-bubble-field span,
body.bare-shell .sky-bubble-field span,
body.admin-shell .sky-bubble-field span {
    animation: none !important;
}

body.site-shell:not(.is-loaded) .sky-bubble-field span {
    animation-duration: 1.8s !important;
    opacity: 0.95;
}

.site-frame,
.admin-main,
body.bare-shell {
    position: relative;
    z-index: 4;
}

.site-frame {
    width: min(var(--page-width), calc(100% - 2rem));
    margin: 0 auto;
    padding: 1.4rem 0 3rem;
}

.site-main {
    display: grid;
    gap: 1rem;
}

.site-masthead {
    display: grid;
    gap: 1rem;
    padding: 0.2rem 0 1.1rem;
    margin-bottom: 0.4rem;
}

.site-masthead__brand {
    display: grid;
    justify-items: center;
    text-decoration: none;
}

.site-masthead__logo {
    width: min(var(--header-logo-width), 72vw);
    height: var(--header-logo-height);
    max-width: 72vw;
    max-height: var(--header-logo-max-height);
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 18px 32px rgba(7, 27, 76, 0.34));
    animation: logoFloat 5.6s ease-in-out infinite;
}

.site-nav,
.fruit-nav,
body.site-shell .fruit-nav {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.68rem;
    overflow-x: auto;
    border-radius: 999px;
    border: 1px solid rgba(204, 240, 255, 0.32);
    background:
        radial-gradient(circle at 12% 24%, rgba(110, 220, 255, 0.16), transparent 18%),
        radial-gradient(circle at 86% 18%, rgba(60, 116, 226, 0.18), transparent 22%),
        linear-gradient(116deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.015) 18%, rgba(88, 242, 255, 0.05) 39%, rgba(60, 116, 226, 0.05) 62%, rgba(255, 255, 255, 0.03) 81%, rgba(88, 242, 255, 0.04) 100%),
        linear-gradient(116deg, #6198ee 0%, #4e88ea 12%, #3c74e2 26%, #4b84e9 39%, #5aa7f1 53%, #3c74e2 67%, #4d8ee8 81%, #53c8ee 92%, #4ba5ea 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), var(--shadow-soft);
    position: static !important;
}

.site-nav::-webkit-scrollbar,
.fruit-nav::-webkit-scrollbar {
    display: none;
}

.nav-toggle {
    display: none !important;
}

.fruit-nav__link,
.fruit-nav__store,
body.site-shell .fruit-nav__link,
body.site-shell .fruit-nav__store {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 58px;
    padding: 0.82rem 1.15rem;
    border: 1px solid rgba(222, 246, 255, 0.26);
    border-radius: 18px;
    overflow: hidden;
    text-decoration: none;
    color: #f8fdff;
    font-family: var(--font-display);
    font-size: 0.84rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 8px 0 rgba(3, 18, 58, 0.34);
    transform: translateY(0);
    transition: transform 160ms ease, box-shadow 160ms ease;
}

.fruit-nav__link--home { background: linear-gradient(180deg, #6fbeff, #3c74e2); }
.fruit-nav__link--updates { background: linear-gradient(180deg, #56d8ff, #3c74e2); }
.fruit-nav__link--community { background: linear-gradient(180deg, #71efff, #3c74e2); }
.fruit-nav__link--roulette { background: linear-gradient(180deg, #3c74e2, #00bff6); }
.fruit-nav__link--profile { background: linear-gradient(180deg, #8ebeff, #3c74e2); }

.fruit-nav__store {
    min-width: 176px;
    padding-inline: 1.32rem 1.55rem;
    background: linear-gradient(180deg, #74f6ff, #3c74e2);
}

.fruit-nav__store.is-disabled {
    opacity: 0.72;
    pointer-events: none;
}

.fruit-nav__label,
.fruit-nav__store-icon {
    position: relative;
    z-index: 2;
}

.fruit-nav__store-icon {
    width: 18px;
    height: 16px;
    box-sizing: border-box;
    border-left: 2px solid currentColor;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    border-radius: 0 0 5px 5px;
    background:
        linear-gradient(currentColor, currentColor) 30% 24% / 2px 42% no-repeat,
        linear-gradient(currentColor, currentColor) 58% 18% / 2px 48% no-repeat,
        linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.08));
    transform: translateY(1px) skewX(-8deg);
}

.fruit-nav__store-icon::before {
    content: "";
    position: absolute;
    left: -4px;
    top: -5px;
    width: 10px;
    height: 6px;
    border-top: 2px solid currentColor;
    border-left: 2px solid currentColor;
    border-radius: 10px 0 0 0;
    transform: skewX(8deg);
}

.fruit-nav__store-icon::after {
    content: "";
    position: absolute;
    left: 1px;
    bottom: -5px;
    width: 4px;
    height: 4px;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 10px 0 0 currentColor;
}

.fruit-nav__slime {
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(145, 240, 255, 0.96) 0%, rgba(60, 116, 226, 0.98) 50%, rgba(16, 52, 148, 1) 100%);
    transform: translateY(-116%);
    transition: transform 260ms cubic-bezier(.2, .8, .2, 1);
    z-index: 1;
}

.fruit-nav__slime::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -12px;
    height: 18px;
    background:
        radial-gradient(circle at 12% 100%, rgba(60, 116, 226, 1) 0 10px, transparent 11px),
        radial-gradient(circle at 34% 100%, rgba(60, 116, 226, 1) 0 12px, transparent 13px),
        radial-gradient(circle at 62% 100%, rgba(60, 116, 226, 1) 0 8px, transparent 9px),
        radial-gradient(circle at 84% 100%, rgba(60, 116, 226, 1) 0 11px, transparent 12px);
}

.fruit-nav__link:hover,
.fruit-nav__link.is-active,
.fruit-nav__store:hover,
.fruit-nav__store.is-active {
    transform: translateY(-2px);
}

.fruit-nav__link:hover .fruit-nav__slime,
.fruit-nav__link:focus-visible .fruit-nav__slime,
.fruit-nav__link.is-active .fruit-nav__slime,
.fruit-nav__store:hover .fruit-nav__slime,
.fruit-nav__store:focus-visible .fruit-nav__slime,
.fruit-nav__store.is-active .fruit-nav__slime {
    transform: translateY(0);
}

.depth-card,
.glass-panel,
.auth-card-v2,
.composer-card,
.community-feed-panel,
.profiles-panel,
.profile-shell,
.profile-side-card,
.profile-friends-stage,
.profile-privacy-stage,
.messages-hub,
.profile-posts-stage,
.featured-update-card,
.update-card,
.updates-landing,
.update-article-hero,
.episode-stat,
.related-updates,
.episode-feature,
.episode-spotlight-card,
.roulette-hero-card,
.roulette-stage-v2,
.roulette-info,
.site-footer-min,
.install-v2-panel,
.admin-panel,
.admin-topbar-card,
.admin-stat-card,
.asset-card,
.player-picker__panel,
.message-dock-window,
.ip-overlay__card {
    border-radius: var(--radius-xl);
    border: 1px solid var(--surface-border);
    background: var(--surface-panel);
    box-shadow: var(--shadow-deep);
    backdrop-filter: blur(12px);
}

.section-kicker,
.site-footer-min__eyebrow,
.update-card__date,
.featured-update-card__date,
.home-latest-stage__date,
.wall-card__time,
.profile-shell__username,
.tiny-link,
.tiny-inline,
.profile-shell__status {
    font-family: var(--font-tiny);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.section-kicker,
.site-footer-min__eyebrow {
    font-size: 0.72rem;
    color: rgba(216, 236, 255, 0.76);
    margin: 0;
}

.mc-display,
.home-latest-stage h1,
.home-owner-card h2,
.home-rank-stage h2,
.home-podium-stage h2,
.featured-update-card h2,
.update-article-hero h1,
.profile-shell h1,
.messages-hub h2,
.roulette-hero-card h1,
.updates-landing h1 {
    text-shadow: 0 4px 0 rgba(9, 35, 91, 0.72), 0 16px 28px rgba(5, 20, 58, 0.3);
    letter-spacing: 0.04em;
    line-height: 1.02;
}

.profile-auth-hero__title {
    max-width: 15ch;
    font-size: clamp(2rem, 5.2vw, 3.55rem);
    line-height: 0.95;
    letter-spacing: 0.035em;
    text-wrap: balance;
    text-shadow: 0 2px 0 rgba(9, 35, 91, 0.34), 0 12px 22px rgba(5, 20, 58, 0.18);
}

h1,
h2,
h3,
p {
    margin: 0;
}

.button-primary,
.button-secondary,
.button-ghost,
.button-store,
.hero-button {
    border-radius: 999px;
}

.admin-primary,
.admin-danger,
.admin-nav a,
.admin-ghost-link,
.message-dock-header__add,
.message-dock-send,
.file-pill,
.player-picker__result,
.podium-switcher button,
.thread-form button,
.message-dock-form button {
    border-radius: 18px;
}

.button-primary,
.button-secondary,
.button-ghost,
.button-store,
.hero-button,
.admin-primary,
.admin-danger,
.admin-nav a,
.admin-ghost-link,
.message-dock-header__add,
.message-dock-send,
.file-pill,
.player-picker__result,
.podium-switcher button,
.thread-form button,
.message-dock-form button {
    border: 1px solid rgba(205, 241, 255, 0.26);
    cursor: pointer;
    text-decoration: none;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        inset 0 -10px 16px rgba(4, 18, 54, 0.18),
        0 8px 0 rgba(4, 19, 58, 0.26),
        0 18px 28px rgba(7, 23, 65, 0.14);
    transition: transform 160ms ease, box-shadow 160ms ease;
}

.button-primary,
.hero-button,
.admin-primary,
.message-dock-send {
    color: #ffffff;
    background: linear-gradient(135deg, var(--brand-a), var(--brand-b));
}

.button-secondary,
.button-ghost,
.admin-nav a,
.admin-ghost-link,
.message-dock-header__add,
.file-pill {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
}

.admin-danger {
    color: #ffffff;
    background: linear-gradient(135deg, #ff7286, #ff5d74);
}

.button-primary:hover,
.button-secondary:hover,
.button-ghost:hover,
.button-store:hover,
.hero-button:hover,
.admin-primary:hover,
.admin-danger:hover,
.admin-nav a:hover,
.admin-ghost-link:hover,
.message-dock-header__add:hover,
.message-dock-send:hover,
.file-pill:hover,
.player-picker__result:hover,
.podium-switcher button:hover,
.thread-form button:hover,
.message-dock-form button:hover {
    transform: translateY(-2px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        inset 0 -12px 18px rgba(4, 18, 54, 0.2),
        0 10px 0 rgba(4, 19, 58, 0.26),
        0 22px 32px rgba(7, 23, 65, 0.16);
}

.button-primary:active,
.button-secondary:active,
.button-ghost:active,
.button-store:active,
.hero-button:active,
.admin-primary:active,
.admin-danger:active,
.admin-nav a:active,
.admin-ghost-link:active,
.message-dock-header__add:active,
.message-dock-send:active,
.file-pill:active,
.player-picker__result:active,
.podium-switcher button:active,
.thread-form button:active,
.message-dock-form button:active {
    transform: translateY(3px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        inset 0 -7px 12px rgba(4, 18, 54, 0.16),
        0 4px 0 rgba(4, 19, 58, 0.22),
        0 10px 16px rgba(7, 23, 65, 0.12);
}

input,
textarea,
select {
    width: 100%;
    border: 1px solid rgba(201, 240, 255, 0.2);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.06);
    color: #ffffff;
    padding: 0.92rem 1rem;
    outline: none;
}

textarea {
    resize: none;
}

input::placeholder,
textarea::placeholder {
    color: rgba(214, 236, 255, 0.56);
}.site-footer-min,
body.site-shell .site-footer-min {
    margin-top: 2.6rem;
    padding: 1.35rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    background: linear-gradient(180deg, rgba(10, 42, 111, 0.96), rgba(7, 27, 79, 0.98));
    font-size: 0.58rem;
    line-height: 1.45;
}

.site-footer-min__column,
.site-footer-min__links {
    display: grid;
    gap: 0.45rem;
}

.site-footer-min p,
.site-footer-min a {
    color: var(--text-soft);
    text-decoration: none;
    font-size: 0.58rem;
    line-height: 1.45;
}

.site-footer-min strong {
    font-size: 0.72rem;
    line-height: 1.25;
}

.floating-actions {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 40;
    display: flex;
    align-items: flex-end;
    gap: 0.65rem;
}

.message-dock {
    position: relative;
}

.message-dock-trigger,
.ip-fab {
    position: relative;
    border: 0;
    cursor: pointer;
}

.message-dock-trigger {
    min-width: 154px;
    height: 58px;
    padding: 0 1rem 0 0.95rem;
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(76, 193, 255, 0.94), rgba(18, 56, 144, 1));
    color: #ffffff;
    box-shadow: var(--shadow-soft);
}

.message-dock-trigger__icon {
    width: 22px;
    height: 18px;
    border: 2px solid #ffffff;
    border-radius: 6px;
    position: relative;
}

.message-dock-trigger__icon::after {
    content: "";
    position: absolute;
    left: 4px;
    bottom: -7px;
    width: 10px;
    height: 8px;
    background: #ffffff;
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

.message-dock-trigger__label {
    font-family: var(--font-display);
    font-size: 0.82rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.message-dock-trigger__count {
    min-width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--danger);
    color: #ffffff;
    font-style: normal;
    font-size: 0.68rem;
    box-shadow: 0 0 20px rgba(255, 84, 109, 0.34);
}

.message-dock-window {
    position: absolute;
    right: 0;
    bottom: calc(100% + 0.85rem);
    width: min(940px, calc(100vw - 2rem));
    min-height: 520px;
    padding: 1rem;
    opacity: 0;
    transform: translateY(16px) scale(0.97);
    transition: transform 220ms ease, opacity 220ms ease;
}

.message-dock-window.is-open {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.message-dock-window.is-closing {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
}

.message-dock-header,
.message-dock-body,
.message-dock-sidebar,
.message-dock-thread,
.message-dock-list,
.message-dock-messages,
.messages-layout,
.thread-shell,
.conversation-list,
.thread-messages,
.player-picker__grid {
    display: grid;
}

.message-dock-header,
.messages-hub__header,
.thread-header,
.player-picker__header,
.profiles-panel__heading,
.home-podium-stage__header,
.profile-shell__titlebar,
.admin-panel-header,
.admin-topbar-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.admin-card-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.admin-list-card p {
    margin: 0;
    color: rgba(231, 246, 255, 0.82);
    line-height: 1.5;
}

.message-dock-body,
.messages-layout--hub {
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 1rem;
}

.message-dock-sidebar,
.message-dock-list,
.conversation-list {
    gap: 0.7rem;
}

.message-dock-thread,
.thread-shell {
    grid-template-rows: auto minmax(300px, 1fr) auto;
    gap: 0.8rem;
}

.thread-messages,
.message-dock-messages {
    gap: 0.7rem;
    min-height: 280px;
    max-height: 420px;
    overflow-y: auto;
    align-content: start;
}

.thread-bubble {
    display: inline-grid;
    gap: 0.26rem;
    width: fit-content;
    max-width: min(76%, 540px);
    padding: 0.76rem 0.9rem;
    border-radius: 20px 20px 20px 7px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(214, 240, 255, 0.18);
}

.thread-bubble.is-self {
    margin-left: auto;
    border-radius: 20px 20px 7px 20px;
    background: linear-gradient(135deg, rgba(60, 116, 226, 0.96), rgba(0, 244, 254, 0.82));
    color: #062452;
}

.thread-bubble__author {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.thread-bubble__author strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.thread-bubble__rank-mark {
    width: auto;
    height: 22px;
    max-width: 78px;
    object-fit: contain;
    image-rendering: pixelated;
}

.thread-bubble__rank-mark.rank-chip {
    min-height: auto;
    padding: 0.28rem 0.5rem;
    font-size: 0.58rem;
    line-height: 1;
}

.thread-bubble small {
    font-size: 0.72rem;
    opacity: 0.88;
}

.conversation-pill,
.message-dock-item {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 0.7rem;
    padding: 0.78rem 0.8rem;
    background: rgba(255, 255, 255, 0.05);
}

.conversation-pill__copy {
    min-width: 0;
    display: grid;
    gap: 0.28rem;
}

.conversation-pill__identity {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.conversation-pill__identity strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.conversation-pill .rank-mark,
.message-dock-item .rank-mark {
    width: auto;
    height: 22px;
    max-width: 78px;
    object-fit: contain;
    image-rendering: pixelated;
}

.conversation-pill .rank-mark.rank-chip,
.message-dock-item .rank-mark.rank-chip {
    min-height: auto;
    padding: 0.28rem 0.5rem;
    font-size: 0.58rem;
    line-height: 1;
}

.conversation-pill.has-unread,
.message-dock-item.has-unread {
    border-color: rgba(255, 99, 127, 0.42);
    box-shadow: inset 0 0 0 1px rgba(255, 118, 150, 0.12), 0 0 28px rgba(255, 87, 120, 0.12);
}

.conversation-pill em,
.message-dock-item em {
    min-width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--danger);
    color: #ffffff;
    font-style: normal;
    font-size: 0.68rem;
}

.player-picker {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    z-index: 50;
}

.player-picker__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7, 20, 56, 0.56);
    backdrop-filter: blur(10px);
}

.player-picker__panel {
    position: relative;
    width: min(920px, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    overflow: auto;
    padding: 1rem;
}

.player-picker__grid {
    grid-template-columns: repeat(10, minmax(0, 1fr));
    gap: 0.55rem;
}

.player-picker__result {
    display: grid;
    justify-items: center;
    gap: 0.35rem;
    padding: 0.55rem 0.3rem;
    background: rgba(255, 255, 255, 0.04);
}

.player-picker__result-copy {
    min-width: 0;
    display: grid;
    gap: 0.22rem;
    justify-items: center;
}

.player-picker__result-copy strong {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.74rem;
    text-align: center;
}

.player-picker__result-copy span {
    color: var(--muted);
    font-size: 0.62rem;
    font-family: var(--font-tiny);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: center;
}

.player-picker__result-rank {
    width: auto;
    height: 20px;
    max-width: 84px;
    object-fit: contain;
    image-rendering: pixelated;
}

.player-picker__result-rank.rank-chip {
    min-height: auto;
    padding: 0.26rem 0.46rem;
    font-size: 0.56rem;
    line-height: 1;
}

.player-picker__result-avatar,
.profile-mini-avatar,
.player-face-grid__avatar,
.profile-shell__avatar,
.podium-slot__avatar {
    background: rgba(255, 255, 255, 0.06) center/cover no-repeat;
}

.player-picker__result-avatar,
.profile-mini-avatar,
.podium-slot__avatar {
    width: 46px;
    height: 46px;
    border-radius: 14px;
}

.profile-mini-avatar {
    width: 58px;
    height: 58px;
    border-radius: 16px;
}

.thread-header__identity {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-width: 0;
}

.thread-header__copy {
    min-width: 0;
    display: grid;
    gap: 0.12rem;
}

.thread-header__copy strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.96rem;
}

.thread-header__copy span {
    color: var(--muted);
    font-size: 0.66rem;
    font-family: var(--font-tiny);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.thread-header__rank-mark {
    width: auto;
    height: 24px;
    max-width: 84px;
    object-fit: contain;
    image-rendering: pixelated;
}

.thread-header__rank-mark.rank-chip {
    min-height: auto;
    padding: 0.32rem 0.56rem;
    font-size: 0.58rem;
    line-height: 1;
}

.player-face-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.45rem;
}

.player-face-grid__avatar {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 16px;
}

.ip-fab {
    width: 66px;
    height: 66px;
    padding: 0;
    border: 1px solid rgba(215, 241, 255, 0.24);
    border-radius: 22px;
    background:
        radial-gradient(circle at 28% 20%, rgba(255, 255, 255, 0.24), transparent 26%),
        linear-gradient(155deg, rgba(117, 196, 255, 0.18), transparent 56%),
        linear-gradient(180deg, rgba(15, 47, 124, 0.98), rgba(6, 24, 72, 1));
    color: #f7fbff;
    box-shadow:
        0 20px 34px rgba(8, 24, 68, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        inset 0 -14px 24px rgba(3, 18, 54, 0.34);
    overflow: hidden;
    transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.ip-fab::before {
    content: "";
    position: absolute;
    left: 10px;
    right: 10px;
    top: 8px;
    height: 16px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0));
    opacity: 0.92;
    pointer-events: none;
}

.ip-fab::after {
    content: "";
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 10px;
    height: 18px;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(3, 14, 44, 0), rgba(3, 14, 44, 0.26));
    opacity: 0.8;
    pointer-events: none;
}

.ip-fab__flow,
.ip-fab__icon {
    display: none;
}

.ip-fab__label {
    position: relative;
    z-index: 2;
    display: inline-grid;
    place-items: center;
    font-family: var(--font-tiny);
    font-size: 0.94rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    padding-left: 0.18em;
    color: #f7fbff;
    text-shadow: 0 1px 0 rgba(7, 20, 56, 0.42);
}

.ip-fab:hover {
    transform: none;
    border-color: rgba(173, 235, 255, 0.42);
    background:
        radial-gradient(circle at 28% 20%, rgba(255, 255, 255, 0.3), transparent 28%),
        linear-gradient(155deg, rgba(132, 206, 255, 0.22), transparent 56%),
        linear-gradient(180deg, rgba(18, 54, 138, 0.98), rgba(7, 28, 82, 1));
    box-shadow:
        0 22px 38px rgba(8, 24, 68, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        inset 0 -14px 24px rgba(3, 18, 54, 0.36);
}

.ip-fab:focus-visible {
    outline: none;
    border-color: rgba(173, 235, 255, 0.56);
    box-shadow:
        0 0 0 4px rgba(88, 242, 255, 0.12),
        0 22px 38px rgba(8, 24, 68, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        inset 0 -14px 24px rgba(3, 18, 54, 0.36);
}

.ip-fab:active {
    transform: none;
    box-shadow:
        0 14px 24px rgba(8, 24, 68, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        inset 0 -12px 20px rgba(3, 18, 54, 0.34);
}

.message-dock-trigger:hover {
    transform: scale(1.06);
}

.ip-overlay {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: grid;
    place-items: center;
}

.ip-overlay__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7, 19, 55, 0.6);
    backdrop-filter: blur(10px);
    opacity: 0;
    transition: opacity 320ms ease;
}

.ip-overlay__waterfall {
    position: absolute;
    top: 0;
    width: min(520px, 70vw);
    height: 100%;
    display: flex;
    gap: 0.8rem;
    justify-content: center;
    opacity: 0;
    transform: translateY(-100%);
}

.ip-overlay__waterfall span {
    width: clamp(16px, 4vw, 38px);
    border-radius: 0 0 32px 32px;
    background: linear-gradient(180deg, rgba(126, 238, 255, 0.98), rgba(60, 116, 226, 0.34));
    animation: waterfall 1.05s linear infinite;
}

.ip-overlay__waterfall span:nth-child(2) { animation-duration: 0.92s; }
.ip-overlay__waterfall span:nth-child(3) { animation-duration: 1.08s; }
.ip-overlay__waterfall span:nth-child(4) { animation-duration: 0.88s; }
.ip-overlay__waterfall span:nth-child(5) { animation-duration: 1.12s; }
.ip-overlay__waterfall span:nth-child(6) { animation-duration: 0.96s; }
.ip-overlay__waterfall span:nth-child(7) { animation-duration: 1.18s; }
.ip-overlay__waterfall span:nth-child(8) { animation-duration: 0.9s; }

.ip-overlay__card {
    position: relative;
    z-index: 1;
    min-width: min(680px, calc(100vw - 2rem));
    padding: 1.5rem 1.6rem;
    display: grid;
    justify-items: center;
    gap: 0.7rem;
    opacity: 0;
    transform: translateY(26px) scale(0.94);
    transform-origin: center;
    transition:
        opacity 320ms ease,
        transform 320ms cubic-bezier(.22, .74, .22, 1);
}

.ip-overlay__close,
.player-picker__close,
.message-dock-close {
    position: absolute;
    right: 1rem;
    top: 1rem;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    border: 1px solid rgba(207, 240, 255, 0.24);
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
}

.ip-overlay__card strong {
    font-family: var(--font-display);
    font-size: clamp(1.9rem, 7vw, 4rem);
    cursor: pointer;
    letter-spacing: 0.06em;
    transition: transform 150ms ease;
}

.ip-overlay__card strong:hover {
    transform: scale(1.05);
}

.ip-overlay__hint {
    font-size: 0.72rem;
    color: rgba(220, 241, 255, 0.82);
    transition: color 180ms ease, text-shadow 180ms ease;
}

.ip-overlay__card.is-copied .ip-overlay__hint {
    color: #8effb4;
    text-shadow: 0 0 14px rgba(142, 255, 180, 0.28);
}

.ip-overlay.is-open .ip-overlay__backdrop {
    opacity: 1;
}

.ip-overlay.is-open .ip-overlay__card {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.ip-overlay.is-closing .ip-overlay__backdrop {
    opacity: 0;
}

.ip-overlay.is-closing .ip-overlay__card {
    opacity: 0;
    transform: translateY(26px) scale(0.94);
}

.ip-overlay.is-open .ip-overlay__waterfall {
    opacity: 1;
    transform: translateY(0);
    transition: transform 420ms ease, opacity 420ms ease;
}

.ip-overlay.is-closing .ip-overlay__waterfall {
    opacity: 0;
    transform: translateY(-100%);
    transition: transform 320ms ease, opacity 320ms ease;
}.update-tag,
.update-tag--corner,
.featured-update-card__tag,
.home-latest-stage__tag {
    display: inline-flex;
    width: fit-content;
    padding: 0.46rem 0.72rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(10, 34, 88, 0.9);
    color: #ffffff;
    font-family: var(--font-tiny);
    font-size: 0.74rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.update-tag--corner,
.featured-update-card__tag,
.home-latest-stage__tag {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    z-index: 2;
}

.update-surface,
.featured-update-card,
.update-card,
.home-latest-stage,
.update-article-hero {
    background: linear-gradient(135deg, color-mix(in srgb, var(--card-color) 78%, #ffffff 10%), color-mix(in srgb, var(--card-color) 46%, #07163e 54%));
}

.update-surface::before,
.featured-update-card::before,
.update-card::before,
.home-latest-stage::before,
.update-article-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), transparent 36%);
    pointer-events: none;
}

.update-surface--bubbles::after,
.update-surface--plain::after,
.update-surface--aurora::after,
.update-surface--stars::after,
.update-surface--snow::after,
.update-surface--spooky::after,
.update-surface--festive::after,
.update-surface--embers::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.update-surface--bubbles::after {
    background:
        radial-gradient(circle at 12% 28%, rgba(255, 255, 255, 0.22) 0 4px, transparent 5px),
        radial-gradient(circle at 66% 18%, rgba(255, 255, 255, 0.16) 0 3px, transparent 4px),
        radial-gradient(circle at 74% 74%, rgba(255, 255, 255, 0.18) 0 5px, transparent 6px);
    animation: decorDrift 10s linear infinite;
}

.update-surface--stars::after {
    background:
        radial-gradient(circle at 18% 32%, rgba(255, 255, 255, 0.64) 0 2px, transparent 3px),
        radial-gradient(circle at 58% 18%, rgba(255, 255, 255, 0.42) 0 1px, transparent 2px),
        radial-gradient(circle at 82% 24%, rgba(255, 255, 255, 0.62) 0 2px, transparent 3px),
        radial-gradient(circle at 66% 72%, rgba(255, 255, 255, 0.38) 0 1px, transparent 2px);
    animation: decorDrift 14s linear infinite;
}

.update-surface--snow::after {
    background: radial-gradient(circle at 20% 10%, rgba(255, 255, 255, 0.28) 0 2px, transparent 3px), radial-gradient(circle at 70% 20%, rgba(255, 255, 255, 0.2) 0 2px, transparent 3px), radial-gradient(circle at 55% 52%, rgba(255, 255, 255, 0.22) 0 2px, transparent 3px);
    animation: snowDrift 10s linear infinite;
}

.update-surface--festive::after {
    background: linear-gradient(90deg, rgba(255, 86, 112, 0.18), transparent 30%, rgba(83, 255, 180, 0.18) 70%, transparent 100%);
    animation: decorSweep 6s linear infinite;
}

.update-surface--spooky::after {
    background: radial-gradient(circle at 18% 24%, rgba(255, 149, 64, 0.22), transparent 18%), radial-gradient(circle at 78% 18%, rgba(255, 94, 94, 0.2), transparent 16%);
    animation: decorDrift 12s linear infinite;
}

.update-surface--embers::after {
    background: radial-gradient(circle at 18% 90%, rgba(255, 186, 80, 0.22) 0 3px, transparent 4px), radial-gradient(circle at 54% 82%, rgba(255, 116, 64, 0.18) 0 4px, transparent 5px), radial-gradient(circle at 84% 70%, rgba(255, 206, 120, 0.2) 0 3px, transparent 4px);
    animation: emberRise 8s linear infinite;
}

.home-latest-stage,
.featured-update-card,
.update-article-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(320px, 0.98fr);
    align-items: stretch;
    gap: 1rem;
    padding: 1.15rem;
}

.home-latest-stage__copy,
.featured-update-card__copy,
.update-article-hero__copy,
.update-card-copy,
.home-owner-card__copy {
    display: grid;
    align-content: center;
    gap: 0.75rem;
}

.home-latest-stage__visual,
.featured-update-card__visual,
.update-card-media,
.update-article-hero__media {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    min-height: 280px;
    background: rgba(255, 255, 255, 0.08);
}

.home-latest-stage__visual img,
.featured-update-card__visual img,
.update-card-media img,
.update-article-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.update-card,
.update-card:hover,
.featured-update-card,
.home-latest-stage {
    text-decoration: none;
    color: #ffffff;
}

.update-card,
.featured-update-card,
.home-latest-stage {
    transition: transform 180ms ease;
}

.update-card:hover,
.featured-update-card:hover,
.home-latest-stage:hover {
    transform: translateY(-4px);
}

.updates-grid,
.home-update-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.update-card {
    display: grid;
    gap: 0.85rem;
    padding: 0.9rem;
}

.wall-hero,
.roulette-hero-card,
.updates-landing {
    padding: 1.05rem 1.15rem;
}

.community-layout,
.wall-layout,
body.site-shell .community-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.48fr) minmax(240px, 0.52fr);
    gap: 1rem;
}

.community-feed-panel,
.profiles-panel,
.messages-hub,
.profile-posts-stage,
.profile-side-card,
.profile-friends-stage,
.profile-privacy-stage,
.auth-card-v2 {
    padding: 1rem;
}

body.page-profile .auth-card-v2 h2,
body.site-shell.page-profile .auth-card-v2 h2 {
    text-shadow: none !important;
    line-height: 1.08;
}

body.page-profile .auth-card-v2 h2 code,
body.site-shell.page-profile .auth-card-v2 h2 code {
    text-shadow: none !important;
}

body.page-profile .auth-grid-v2--duo,
body.site-shell.page-profile .auth-grid-v2--duo {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.page-profile .auth-grid-v2--duo > .auth-card-v2:last-child,
body.site-shell.page-profile .auth-grid-v2--duo > .auth-card-v2:last-child {
    grid-column: 2 / span 2;
}

.composer-card,
.profile-privacy-form,
.thread-form,
.message-dock-form {
    display: grid;
    gap: 0.8rem;
}

.wall-card,
body.site-shell .wall-card {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 0.9rem;
    padding: 0.85rem;
}

.wall-card__side,
.wall-card__body {
    display: grid;
    gap: 0.34rem;
    align-content: start;
}

.wall-card__rank-mark,
.home-owner-card__rank-mark,
.profile-shell__rank-mark,
.rank-mark {
    width: auto;
    height: 32px;
    image-rendering: pixelated;
}

.wall-card__message {
    color: #ffffff;
    font-size: 1.08rem;
    line-height: 1.45;
}

.community-feed-empty,
body.site-shell .community-feed-empty {
    display: grid;
    gap: 0.6rem;
    align-content: start;
    padding: 1rem 1.05rem;
    border-radius: 22px;
    border: 1px dashed rgba(191, 232, 255, 0.28);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)),
        linear-gradient(180deg, rgba(10, 34, 92, 0.92), rgba(5, 18, 52, 0.98));
}

.community-feed-empty__title,
body.site-shell .community-feed-empty__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2.4vw, 1.8rem);
    line-height: 1;
    color: #ffffff;
}

.community-feed-empty__body,
body.site-shell .community-feed-empty__body {
    margin: 0;
    color: #d9f2ff;
    line-height: 1.45;
}

.community-feed-empty__cta,
body.site-shell .community-feed-empty__cta {
    width: fit-content;
    margin-top: 0.1rem;
}

.wall-image--compact {
    width: min(220px, 100%);
    max-height: 150px;
    object-fit: cover;
    border-radius: 16px;
}

.wall-players-panel__sub,
.tiny-inline,
.tiny-link,
.wall-card__time,
.update-card__date,
.featured-update-card__date,
.home-latest-stage__date,
.profile-shell__username {
    color: var(--text-muted);
}

.wall-players-panel__count {
    font-family: var(--font-display);
    font-size: 1.45rem;
    line-height: 1;
    color: #f7fbff;
}

.home-owner-card,
body.site-shell .home-owner-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    position: relative;
    min-height: 360px;
    gap: 1rem;
    padding: 1.2rem 1.25rem;
    overflow: hidden;
}

.home-owner-card__copy {
    display: grid;
    align-content: start;
    gap: 1rem;
    max-width: min(56%, 680px);
    padding-bottom: 1.5rem;
    position: relative;
    z-index: 2;
}

.home-owner-card__quote-stack {
    display: grid;
    gap: 1rem;
}

.home-owner-card__quote-block {
    display: grid;
    gap: 0.38rem;
    margin: 0;
}

.home-owner-card__quote-text {
    margin: 0;
    max-width: 32ch;
    font-size: clamp(1.05rem, 1.35vw, 1.28rem);
    line-height: 1.42;
    color: #f7fbff;
}

.home-owner-card__quote-author {
    margin: 0;
    color: rgba(219, 233, 255, 0.84);
    font-size: 1rem;
    line-height: 1;
    font-style: italic;
    letter-spacing: 0.02em;
}

.home-owner-card__render {
    position: absolute;
    right: 0;
    bottom: -56px;
    width: min(43%, 480px);
    min-height: calc(100% + 72px);
    background: none;
    overflow: visible;
}

.home-rank-stage,
.home-podium-stage {
    padding: 1rem 1.15rem;
}

.home-rank-stage__heading {
    display: grid;
    gap: 0.3rem;
    margin-bottom: 0.75rem;
    text-align: center;
}

.home-rank-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.9rem;
}

.home-rank-card {
    display: grid;
    justify-items: center;
    align-content: start;
    gap: 0.55rem;
    padding: 0.95rem 0.8rem;
    border-radius: 24px;
    border: 1px solid rgba(211, 241, 255, 0.22);
    background: rgba(255, 255, 255, 0.05);
}

.home-rank-card__badge-wrap {
    min-height: 70px;
    display: grid;
    place-items: center;
}

.home-rank-card__badge {
    width: auto;
    height: 64px;
    image-rendering: pixelated;
}

.home-rank-card__render {
    width: 100%;
    height: 180px;
    display: grid;
    place-items: end center;
}

.podium-switcher {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.podium-switcher button.is-active {
    background: linear-gradient(135deg, var(--brand-a), var(--brand-b));
}

.podium-board {
    display: none;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
    align-items: end;
}

.podium-board.is-active {
    display: grid;
}

.podium-slot {
    display: grid;
    gap: 0.55rem;
    justify-items: center;
}

.podium-slot__topline {
    color: var(--text-muted);
    font-family: var(--font-tiny);
    font-size: 0.66rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-align: center;
}

.podium-slot__player {
    display: grid;
    justify-items: center;
    gap: 0.35rem;
}

.podium-slot__avatar {
    width: 74px;
    height: 74px;
    border-radius: 20px;
}

.podium-slot__pedestal {
    width: 100%;
    min-height: 136px;
    display: grid;
    place-items: center;
    gap: 0.3rem;
    border-radius: 24px 24px 18px 18px;
    background: linear-gradient(180deg, rgba(120, 205, 255, 0.34), rgba(60, 116, 226, 0.82));
}

.podium-slot--1 .podium-slot__pedestal { min-height: 174px; }
.podium-slot--2 .podium-slot__pedestal { min-height: 132px; }
.podium-slot--3 .podium-slot__pedestal { min-height: 118px; }

.skin-freeze,
.skin-freeze__image {
    width: 100%;
    height: 100%;
}

.skin-freeze {
    display: grid;
    place-items: center;
}

.skin-freeze__image {
    display: block;
    object-fit: contain;
}

.skin-freeze--owner {
    width: min(300px, 100%);
    height: 280px;
}

.skin-freeze--owner .skin-freeze__image {
    object-fit: cover;
    object-position: center 4%;
    transform: translateY(20%) scale(1.04);
}

.skin-freeze--rank {
    width: 100%;
    height: 180px;
}

.skin-freeze--rank .skin-freeze__image {
    object-fit: contain;
    object-position: center top;
}.profile-shell,
body.site-shell .profile-shell {
    padding: 1.15rem;
}

.profile-shell__main,
body.site-shell .profile-shell__main {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.92fr);
    gap: 1rem;
    align-items: stretch;
}

.profile-shell__identity,
.profile-shell__art,
.profile-top-badges,
.profile-stat-grid,
.profile-lower-grid {
    display: grid;
}

.profile-shell__identity {
    align-content: start;
    gap: 0.9rem;
}

.profile-shell__rankline {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.8rem;
    align-items: center;
}

.profile-shell__heading {
    display: grid;
    gap: 0.18rem;
}

.profile-shell__status {
    padding: 0.45rem 0.7rem;
    border-radius: 999px;
    border: 1px solid rgba(210, 241, 255, 0.2);
    background: rgba(255, 255, 255, 0.07);
    color: var(--text-soft);
    font-size: 0.66rem;
}

.profile-shell__status.is-live {
    color: #dffff4;
    border-color: rgba(121, 255, 197, 0.34);
}

.profile-shell__bio {
    color: var(--text-soft);
    line-height: 1.6;
}

.profile-top-badges {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}

.profile-top-badge {
    display: grid;
    gap: 0.16rem;
    padding: 0.75rem 0.8rem;
    border-radius: 18px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--badge-accent) 72%, transparent), color-mix(in srgb, var(--badge-soft) 54%, rgba(255,255,255,0.08)));
}

.profile-top-badge em {
    font-style: normal;
    color: rgba(255, 255, 255, 0.74);
}

.profile-stat-grid--tight,
body.site-shell .profile-stat-grid--tight {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
}

.profile-stat-grid--tight > div {
    padding: 0.9rem;
    border-radius: 18px;
    border: 1px solid rgba(214, 241, 255, 0.18);
    background: rgba(255, 255, 255, 0.05);
}

.profile-stat-grid--tight span {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--text-muted);
    font-size: 0.72rem;
}

.profile-stat-grid--tight strong {
    font-size: 1.18rem;
}

.profile-shell__footer-actions {
    margin-top: auto;
    display: flex;
    justify-content: flex-end;
    gap: 0.7rem;
}

.profile-shell__art,
body.site-shell .profile-shell__art {
    min-height: 500px;
    padding: 1rem;
    align-items: end;
    justify-items: center;
    background: linear-gradient(180deg, rgba(60, 116, 226, 0.96), rgba(6, 24, 74, 0.98));
}

.profile-shell__art--pro,
.profile-shell--pro .profile-shell__art {
    background: linear-gradient(180deg, rgba(60, 116, 226, 0.96), rgba(0, 244, 254, 0.74));
}

.profile-shell__art--master,
.profile-shell--master .profile-shell__art {
    background: linear-gradient(180deg, rgba(167, 98, 255, 0.92), rgba(0, 244, 254, 0.72));
}

.profile-shell__art--elite,
.profile-shell--elite .profile-shell__art {
    background: linear-gradient(180deg, #ff78e7, #00f4fe);
}

.profile-shell--elite .profile-shell__art::before,
.profile-shell__art--elite::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 18% 26%, rgba(255, 255, 255, 0.45) 0 2px, transparent 3px),
        radial-gradient(circle at 58% 14%, rgba(255, 255, 255, 0.35) 0 1px, transparent 2px),
        radial-gradient(circle at 86% 34%, rgba(255, 255, 255, 0.48) 0 2px, transparent 3px),
        radial-gradient(circle at 68% 72%, rgba(255, 255, 255, 0.28) 0 2px, transparent 3px);
    animation: diagonalStars 10s linear infinite;
}

.profile-shell[style] .profile-shell__art {
    background: linear-gradient(180deg, var(--profile-theme-start, rgba(60, 116, 226, 0.96)), var(--profile-theme-end, rgba(6, 24, 74, 0.98)));
}

.profile-shell[style] .profile-shell__art::after {
    content: none;
}

.profile-shell--effect-aurora .profile-shell__art::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 15% 20%, color-mix(in srgb, var(--profile-theme-accent-a, #3C74E2) 52%, transparent), transparent 48%),
        radial-gradient(circle at 80% 16%, color-mix(in srgb, var(--profile-theme-accent-b, #58F2FF) 44%, transparent), transparent 52%),
        linear-gradient(125deg, transparent 18%, rgba(255,255,255,0.14) 45%, transparent 68%);
    mix-blend-mode: screen;
    animation: profileAuraSweep 8s linear infinite;
}

.profile-shell--effect-sparkles .profile-shell__art::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 18% 26%, rgba(255, 255, 255, 0.45) 0 2px, transparent 3px),
        radial-gradient(circle at 58% 14%, rgba(255, 255, 255, 0.35) 0 1px, transparent 2px),
        radial-gradient(circle at 86% 34%, rgba(255, 255, 255, 0.48) 0 2px, transparent 3px),
        radial-gradient(circle at 68% 72%, rgba(255, 255, 255, 0.28) 0 2px, transparent 3px);
    animation: decorDrift 8s linear infinite;
}

.profile-shell--effect-grid .profile-shell__art::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px);
    background-size: 32px 32px;
    opacity: 0.35;
}

.profile-shell--effect-embers .profile-shell__art::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 22% 72%, rgba(255,181,102,0.34) 0 3px, transparent 4px),
        radial-gradient(circle at 70% 60%, rgba(255,124,79,0.28) 0 4px, transparent 5px),
        radial-gradient(circle at 48% 20%, rgba(255,240,190,0.24) 0 2px, transparent 3px);
    animation: decorDrift 9s linear infinite;
}

.profile-shell__avatar,
body.site-shell .profile-shell__avatar {
    position: absolute;
    left: 1rem;
    top: 1rem;
    width: 104px;
    height: 104px;
    border-radius: 18px;
    box-shadow: 0 12px 24px rgba(6, 18, 52, 0.2);
}

.skin-freeze--profile {
    width: min(360px, 100%);
    height: 440px;
}

.skin-freeze--profile .skin-freeze__image {
    object-fit: contain;
    object-position: center top;
}

.profile-lower-grid,
body.site-shell .profile-lower-grid {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 1rem;
    margin-top: 1rem;
}

.profile-friends-stage--side .player-face-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.rank-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 0.42rem 0.78rem;
    border-radius: 999px;
    border: 1px solid rgba(210, 241, 255, 0.22);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.72rem;
    line-height: 1;
}

.rank-chip--dynamic {
    background: var(--rank-chip-bg, rgba(255,255,255,0.12));
    color: var(--rank-chip-color, #ffffff);
    box-shadow: 0 10px 24px rgba(6, 18, 52, 0.16);
}

.rank-text {
    color: var(--rank-name-solid, currentColor);
}

.rank-text--gradient,
.rank-text--animated {
    background-image: linear-gradient(135deg, var(--rank-name-from, #7F9FD7), var(--rank-name-to, #B4D7FF));
    background-size: 100% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

.rank-text--animated {
    background-size: 220% 220%;
    animation: rankTextShift 6s linear infinite;
}

.profile-admin-shell {
    display: grid;
    gap: 1rem;
}

.profile-admin-block {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border-radius: 26px;
    border: 1px solid rgba(212, 241, 255, 0.18);
    background: linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.03));
}

.profile-admin-head {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 1rem;
}

.profile-admin-head p,
.profile-visibility-card p,
.profile-rank-card__head p,
.profile-theme-card__head p,
.profile-theme-preview-shell p,
.profile-rank-card__icon-copy p {
    margin: 0.3rem 0 0;
    color: var(--text-muted);
    line-height: 1.55;
}

.profile-visibility-card {
    display: grid;
    gap: 0.85rem;
    padding: 0.95rem 1rem;
    border-radius: 22px;
    border: 1px solid rgba(212, 241, 255, 0.16);
    background: rgba(255, 255, 255, 0.04);
}

.profile-visibility-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.profile-visibility-pill {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0.75rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(212, 241, 255, 0.18);
    background: rgba(255, 255, 255, 0.06);
    cursor: pointer;
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.profile-visibility-pill.is-selected {
    border-color: rgba(88, 242, 255, 0.4);
    background: linear-gradient(135deg, rgba(60, 116, 226, 0.24), rgba(88, 242, 255, 0.18));
}

.profile-visibility-pill input {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
}

.profile-rank-list,
.profile-theme-list {
    display: grid;
    gap: 0.9rem;
}

.profile-rank-card,
.profile-theme-card {
    display: grid;
    gap: 0.9rem;
    padding: 1rem;
    border-radius: 24px;
    border: 1px solid rgba(212, 241, 255, 0.16);
    background: rgba(255, 255, 255, 0.04);
}

.profile-rank-card.is-selected,
.profile-theme-card.is-selected {
    border-color: rgba(88, 242, 255, 0.44);
    box-shadow: 0 0 0 1px rgba(88, 242, 255, 0.18), 0 24px 44px rgba(4, 17, 53, 0.16);
}

.profile-rank-card__head,
.profile-theme-card__head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: start;
}

.profile-rank-card__grid,
.profile-theme-card__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}

.profile-rank-card__footer {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding-top: 0.2rem;
}

.profile-rank-card__icon-panel {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-width: 0;
}

.profile-rank-card__icon-preview {
    width: 64px;
    height: 64px;
    border-radius: 18px;
    border: 1px solid rgba(212, 241, 255, 0.18);
    background: rgba(255,255,255,0.08) center/cover no-repeat;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.profile-rank-card__icon-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    image-rendering: pixelated;
}

.profile-rank-card__actions {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.profile-upload-pill {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.78rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(205, 241, 255, 0.26);
    background: linear-gradient(135deg, var(--brand-a), var(--brand-b));
    color: #ffffff;
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), inset 0 -10px 16px rgba(4,18,54,0.18), 0 8px 0 rgba(4,19,58,0.26), 0 18px 28px rgba(7,23,65,0.14);
}

.profile-upload-pill input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.profile-theme-stage {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
    gap: 1rem;
    align-items: start;
}

.profile-theme-stage__editor,
.profile-theme-stage__preview {
    display: grid;
    gap: 0.9rem;
}

.profile-theme-preview-shell {
    padding: 0.95rem 1rem;
    border-radius: 22px;
    border: 1px solid rgba(212, 241, 255, 0.16);
    background: rgba(255,255,255,0.04);
}

.admin-profile-preview {
    --profile-theme-start: #2851B8;
    --profile-theme-end: #061A4E;
    --profile-theme-accent-a: #3C74E2;
    --profile-theme-accent-b: #58F2FF;
    --profile-theme-glow: #58F2FF;
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border-radius: 28px;
    border: 1px solid color-mix(in srgb, var(--profile-theme-glow) 28%, rgba(212, 241, 255, 0.16));
    background: linear-gradient(180deg, color-mix(in srgb, var(--profile-theme-start) 88%, rgba(255,255,255,0.06)), var(--profile-theme-end));
    box-shadow: 0 26px 44px rgba(7, 22, 64, 0.16);
    overflow: hidden;
}

.admin-profile-preview__identity {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.admin-profile-preview__rank-slot {
    min-width: 60px;
    min-height: 36px;
    display: grid;
    place-items: center;
}

.admin-profile-preview__rank-slot img {
    width: auto;
    height: 34px;
    image-rendering: pixelated;
}

.admin-profile-preview__copy {
    display: grid;
    gap: 0.2rem;
}

.admin-profile-preview__name {
    font-family: var(--font-display);
    font-size: 1.6rem;
    line-height: 1.05;
    text-shadow: 0 4px 0 rgba(10,37,92,0.5);
}

.admin-profile-preview__username {
    font-family: var(--font-tiny);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(220, 242, 255, 0.82);
}

.admin-profile-preview__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
}

.admin-profile-preview__stats span {
    display: grid;
    gap: 0.2rem;
    padding: 0.8rem;
    border-radius: 18px;
    border: 1px solid color-mix(in srgb, var(--profile-theme-glow) 26%, rgba(212,241,255,0.16));
    background: linear-gradient(180deg, color-mix(in srgb, var(--profile-theme-accent-a) 22%, rgba(255,255,255,0.08)), rgba(255,255,255,0.04));
}

.admin-profile-preview__stats strong {
    font-size: 1rem;
}

.admin-profile-preview__stats em {
    font-style: normal;
    color: rgba(220, 242, 255, 0.76);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-profile-preview__render {
    position: relative;
    min-height: 300px;
    border-radius: 24px;
    border: 1px solid color-mix(in srgb, var(--profile-theme-glow) 24%, rgba(212,241,255,0.16));
    background: linear-gradient(180deg, var(--profile-theme-start), var(--profile-theme-end));
    overflow: hidden;
}

.admin-profile-preview__render::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0.14), transparent 34%);
}

.admin-profile-preview__avatar {
    position: absolute;
    left: 1rem;
    top: 1rem;
    width: 92px;
    height: 92px;
    border-radius: 18px;
    border: 1px solid rgba(212, 241, 255, 0.24);
    background: rgba(255,255,255,0.08) center/cover no-repeat;
    z-index: 2;
}

.admin-profile-preview__body {
    position: absolute;
    right: 8px;
    bottom: -14px;
    width: min(240px, 70%);
    height: auto;
    object-fit: contain;
}

.admin-profile-preview.is-aurora .admin-profile-preview__render::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--profile-theme-accent-a) 52%, transparent), transparent 50%), radial-gradient(circle at 82% 16%, color-mix(in srgb, var(--profile-theme-accent-b) 42%, transparent), transparent 54%);
    mix-blend-mode: screen;
    animation: profileAuraSweep 8s linear infinite;
}

.admin-profile-preview.is-sparkles .admin-profile-preview__render::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 24%, rgba(255,255,255,0.45) 0 2px, transparent 3px), radial-gradient(circle at 62% 18%, rgba(255,255,255,0.36) 0 1px, transparent 2px), radial-gradient(circle at 78% 64%, rgba(255,255,255,0.3) 0 2px, transparent 3px);
    animation: decorDrift 8s linear infinite;
}

.admin-profile-preview.is-grid .admin-profile-preview__render::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(255,255,255,0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px);
    background-size: 28px 28px;
    opacity: 0.36;
}

.admin-profile-preview.is-embers .admin-profile-preview__render::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 22% 74%, rgba(255,181,102,0.34) 0 3px, transparent 4px), radial-gradient(circle at 72% 58%, rgba(255,124,79,0.28) 0 4px, transparent 5px), radial-gradient(circle at 48% 20%, rgba(255,240,190,0.24) 0 2px, transparent 3px);
    animation: decorDrift 9s linear infinite;
}

@media (max-width: 1080px) {
    .profile-rank-card__grid,
    .profile-theme-card__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .profile-theme-stage {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 720px) {
    .profile-admin-head,
    .profile-rank-card__footer {
        flex-direction: column;
        align-items: stretch;
    }

    .profile-rank-card__grid,
    .profile-theme-card__grid,
    .admin-profile-preview__stats {
        grid-template-columns: minmax(0, 1fr);
    }

    .profile-rank-card__actions {
        justify-content: stretch;
    }

    .profile-upload-pill,
    .profile-rank-card__actions .admin-ghost-link {
        width: 100%;
        justify-content: center;
    }
}

.reward-preview-grid,
.reward-gallery {
    display: grid;
    gap: 0.7rem;
}

.reward-preview-grid--profile {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reward-preview-card,
.reward-gallery-card {
    display: grid;
    gap: 0.32rem;
    padding: 0.82rem;
    border-radius: 18px;
    border: 1px solid rgba(214, 241, 255, 0.18);
    background: linear-gradient(135deg, color-mix(in srgb, var(--rarity-color) 52%, rgba(255,255,255,0.08)), color-mix(in srgb, var(--rarity-soft) 46%, rgba(255,255,255,0.04)));
}

.reward-preview-card strong,
.reward-gallery-card h3,
.reward-gallery-card__qty,
.reward-gallery-card__rarity {
    font-variant: small-caps;
}

.reward-item-icon {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.privacy-column,
.preferences-grid--stack {
    display: grid;
    gap: 0.6rem;
}

.privacy-toggle {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.8rem 0.85rem;
    background: rgba(255, 255, 255, 0.05);
}

.privacy-toggle input {
    width: auto;
    accent-color: var(--brand-b);
}

.roulette-layout,
body.site-shell .roulette-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 1rem;
    align-items: center;
}

.roulette-stage-v2,
body.site-shell .roulette-stage-v2 {
    min-height: 720px;
    display: grid;
    place-items: center;
    overflow: visible;
}

.roulette-wheel,
body.site-shell .roulette-wheel {
    position: relative;
    width: min(720px, 82vw);
    height: min(720px, 82vw);
    border-radius: 999px;
    background: radial-gradient(circle at center, rgba(7, 21, 56, 1) 0 23%, rgba(16, 54, 146, 1) 23.4%, rgba(7, 21, 56, 1) 24%, rgba(10, 38, 104, 0.98) 100%);
    box-shadow: inset 0 0 0 10px rgba(255, 255, 255, 0.18), 0 32px 68px rgba(6, 23, 71, 0.34);
}

.roulette-segment,
body.site-shell .roulette-segment {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: start center;
    transform: rotate(calc((360deg / var(--segments)) * var(--i)));
    clip-path: polygon(50% 50%, 35% 0, 65% 0);
}

.roulette-segment::before,
body.site-shell .roulette-segment::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, var(--segment-soft), var(--segment-color));
    border-right: 2px solid rgba(255, 255, 255, 0.16);
}

.roulette-chip,
body.site-shell .roulette-chip {
    position: absolute;
    top: 4%;
    left: 50%;
    width: 116px;
    display: grid;
    justify-items: center;
    gap: 0.35rem;
    transform: translateX(-50%) rotate(calc((-360deg / var(--segments)) * var(--i)));
    text-align: center;
}

.roulette-chip img {
    width: 42px;
    height: 42px;
    object-fit: contain;
}

.roulette-chip span {
    font-family: var(--font-tiny);
    font-size: 0.78rem;
    color: #ffffff;
}

.roulette-core {
    position: absolute;
    inset: 50%;
    width: 152px;
    height: 152px;
    margin-left: -76px;
    margin-top: -76px;
    border-radius: 999px;
    border: 1px solid rgba(214, 241, 255, 0.22);
    background: radial-gradient(circle at 40% 30%, rgba(255, 255, 255, 0.2), rgba(6, 24, 72, 1));
    display: grid;
    place-items: center;
    z-index: 3;
}

.roulette-core__wordmark {
    font-family: var(--font-display);
    font-size: 2rem;
    text-shadow: 0 4px 0 rgba(9, 35, 91, 0.7);
}

.roulette-pointer {
    width: 0;
    height: 0;
    border-left: 24px solid transparent;
    border-right: 24px solid transparent;
    border-top: 44px solid #ffffff;
    position: absolute;
    top: 22px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
}

.roulette-info {
    padding: 1rem;
    display: grid;
    gap: 0.9rem;
}

.latest-reward-card {
    padding: 0.9rem 1rem;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--rarity-color), var(--rarity-soft));
    color: #082456;
    display: grid;
    gap: 0.25rem;
}

.reward-gallery--roulette {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.update-detail-body,
body.site-shell .update-detail-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 1rem;
}

.related-update-card {
    display: grid;
    gap: 0.2rem;
    padding: 0.75rem 0.8rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.04);
    text-decoration: none;
}

.install-v2-shell,
body.site-shell .install-v2-shell {
    display: grid;
    grid-template-columns: 360px minmax(0, 1fr);
    gap: 1rem;
    padding: 0 1rem 2rem;
}

.install-v2-panel,
.install-v2-form-panel,
.admin-topbar-card,
.admin-panel,
.admin-stat-card {
    padding: 1rem;
}

.install-v2-grid,
.admin-form-grid,
.asset-grid,
.admin-list-grid,
.admin-panel-grid,
.admin-stat-grid,
.admin-profile-grid,
.wizard-grid {
    display: grid;
    gap: 0.9rem;
}

.install-v2-grid,
.admin-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.install-v2-grid .wide,
.admin-form-grid .wide,
.admin-panel-grid.single,
.admin-panel.wide {
    grid-column: 1 / -1;
}

.admin-shell {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
}

.admin-sidebar {
    position: sticky;
    top: 0;
    align-self: start;
    min-height: 100vh;
    padding: 1.2rem;
    display: grid;
    gap: 1rem;
    border-right: 1px solid var(--surface-border);
    background:
        radial-gradient(circle at 16% 9%, rgba(128, 247, 255, 0.28), transparent 21%),
        radial-gradient(circle at 84% 16%, rgba(95, 230, 255, 0.15), transparent 30%),
        linear-gradient(180deg, rgba(56, 126, 220, 0.98), rgba(39, 120, 204, 0.98) 38%, rgba(20, 133, 191, 0.98) 100%);
    z-index: 4;
}

.admin-main {
    padding: 1.2rem;
}

.admin-brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    text-decoration: none;
}

.admin-brand img {
    width: 64px;
    height: 64px;
    display: block;
}

.admin-nav {
    display: grid;
    gap: 0.5rem;
}

.admin-nav a,
.admin-ghost-button {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.65rem;
    width: 100%;
    padding: 0.84rem 0.95rem;
}

.admin-nav a.is-active,
.admin-nav a:hover {
    background: linear-gradient(135deg, rgba(60, 116, 226, 0.96), rgba(0, 244, 254, 0.72));
    border-color: rgba(223, 247, 255, 0.42);
}

.admin-nav a.is-active {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        inset 0 -12px 18px rgba(4, 18, 54, 0.22),
        0 10px 0 rgba(4, 19, 58, 0.24),
        0 22px 34px rgba(7, 23, 65, 0.18);
}

body.admin-shell .admin-form-grid select {
    appearance: none;
    padding-right: 3rem;
    border-color: rgba(175, 230, 255, 0.34);
    background:
        linear-gradient(135deg, rgba(95, 164, 248, 0.18), rgba(88, 242, 255, 0.08)),
        linear-gradient(180deg, rgba(18, 64, 154, 0.96), rgba(8, 35, 100, 0.98));
    background-repeat: no-repeat;
    background-position: 0 0, 0 0;
    color: #f7fcff;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        inset 0 -10px 16px rgba(4, 18, 54, 0.18),
        0 8px 18px rgba(7, 23, 65, 0.12);
    background-image:
        linear-gradient(135deg, rgba(95, 164, 248, 0.18), rgba(88, 242, 255, 0.08)),
        linear-gradient(180deg, rgba(18, 64, 154, 0.96), rgba(8, 35, 100, 0.98)),
        linear-gradient(45deg, transparent 50%, #c7f8ff 50%),
        linear-gradient(135deg, #c7f8ff 50%, transparent 50%);
    background-size:
        auto,
        auto,
        8px 8px,
        8px 8px;
    background-position:
        0 0,
        0 0,
        calc(100% - 20px) calc(50% - 2px),
        calc(100% - 14px) calc(50% - 2px);
}

body.admin-shell .admin-form-grid select:hover,
body.admin-shell .admin-form-grid select:focus {
    border-color: rgba(195, 239, 255, 0.46);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        inset 0 -10px 16px rgba(4, 18, 54, 0.2),
        0 0 0 3px rgba(96, 216, 255, 0.12),
        0 10px 22px rgba(7, 23, 65, 0.16);
}

body.admin-shell .admin-form-grid select option,
body.admin-shell .admin-form-grid select optgroup {
    background: #0c2c74;
    color: #f5fbff;
}

body.admin-shell .admin-form-grid select option:checked,
body.admin-shell .admin-form-grid select option:hover {
    background: #1458c7;
    color: #ffffff;
}

.admin-sidebar-actions {
    display: grid;
    gap: 0.55rem;
    margin-top: auto;
}

.admin-sidebar-actions form {
    margin: 0;
}

.admin-sidebar-actions .admin-danger.admin-ghost-button:hover,
.admin-sidebar-actions .admin-danger.admin-ghost-button:focus-visible {
    color: #fff7f8;
    border-color: rgba(255, 214, 220, 0.56);
    background:
        linear-gradient(135deg, #ff4b63 0%, #ff173d 46%, #ff6a00 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        inset 0 -12px 18px rgba(88, 0, 16, 0.24),
        0 10px 0 rgba(120, 8, 24, 0.28),
        0 22px 32px rgba(132, 16, 24, 0.24),
        0 0 24px rgba(255, 66, 90, 0.24);
}

.admin-sidebar-actions .admin-danger.admin-ghost-button:active {
    background:
        linear-gradient(135deg, #ff3652 0%, #ed1036 48%, #ff5a00 100%);
}

.admin-stat-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.admin-stat-card strong {
    font-size: 1.6rem;
}

.admin-stat-card.accent {
    background: linear-gradient(135deg, rgba(60, 116, 226, 0.96), rgba(0, 244, 254, 0.76));
}

.admin-panel-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asset-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.asset-card {
    padding: 0.9rem;
    display: grid;
    gap: 0.7rem;
}

.asset-card img,
.admin-reward-icon {
    width: 100%;
    max-height: 180px;
    object-fit: contain;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.05);
}

.large-input {
    min-height: 220px;
}

.home-owner-card__nameplate,
.profile-shell__nameplate,
.profile-shell__render-tag,
.home-owner-card__render::before,
.profile-shell__render::before {
    display: none !important;
    content: none !important;
}

@keyframes logoFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-7px); }
}

@keyframes bubbleRise {
    0% { transform: translate3d(0, 0, 0) scale(0.6); opacity: 0; }
    12% { opacity: 0.84; }
    100% { transform: translate3d(0, -120vh, 0) scale(1.15); opacity: 0; }
}

@keyframes waterFlow {
    from { transform: translateY(0); }
    to { transform: translateY(18px); }
}

@keyframes waterfall {
    0% { transform: translateY(-100%); opacity: 0; }
    10% { opacity: 1; }
    100% { transform: translateY(100%); opacity: 0; }
}

@keyframes copyPulse {
    0% { transform: scaleY(0.2); }
    50% { transform: scaleY(1); }
    100% { transform: scaleY(0.2); }
}

@keyframes decorDrift {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-18px, 22px, 0); }
}

@keyframes rankTextShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

@keyframes profileAuraSweep {
    0% { transform: translateX(-6%) translateY(0); }
    50% { transform: translateX(6%) translateY(-4%); }
    100% { transform: translateX(-6%) translateY(0); }
}

@keyframes decorSweep {
    from { transform: translateX(-12%); }
    to { transform: translateX(12%); }
}

@keyframes snowDrift {
    from { transform: translate3d(0, -16px, 0); }
    to { transform: translate3d(20px, 22px, 0); }
}

@keyframes emberRise {
    from { transform: translate3d(0, 18px, 0); }
    to { transform: translate3d(-16px, -24px, 0); }
}

@keyframes diagonalStars {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-22px, 26px, 0); }
}

@media (max-width: 1180px) {
    .site-frame,
    .admin-main,
    body.bare-shell {
        width: calc(100% - 1.5rem);
        margin-inline: auto;
    }

    .home-latest-stage,
    .featured-update-card,
    .update-article-hero,
    .home-owner-card,
    .profile-shell__main,
    .community-layout,
    .roulette-layout,
    .update-detail-body,
    .install-v2-shell,
    .admin-shell {
        grid-template-columns: 1fr;
    }

    .admin-sidebar {
        position: relative;
        min-height: auto;
        border-right: 0;
        border-bottom: 1px solid var(--surface-border);
    }

    .admin-stat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .asset-grid,
    .updates-grid,
    .home-update-grid,
    .reward-gallery--roulette {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .profile-lower-grid {
        grid-template-columns: 1fr;
    }

    .message-dock-window {
        width: min(940px, calc(100vw - 1rem));
    }
}

@media (max-width: 860px) {
    .site-frame {
        width: calc(100% - 1rem);
        padding-top: 1rem;
    }

    .site-masthead__logo {
        width: min(var(--header-logo-width), 52vw);
        max-width: 52vw;
        max-height: var(--header-logo-max-height);
    }

    .site-footer-min,
    .asset-grid,
    .admin-panel-grid,
    .admin-stat-grid,
    .updates-grid,
    .home-update-grid,
    .reward-preview-grid--profile,
    .reward-gallery--roulette,
    .home-rank-grid,
    .podium-board {
        grid-template-columns: 1fr;
    }

    .message-dock-window,
    .message-dock-body,
    .messages-layout--hub {
        grid-template-columns: 1fr;
    }

    .message-dock-window {
        min-height: 70vh;
    }

    .player-picker__grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .player-face-grid,
    .profile-friends-stage--side .player-face-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .profile-stat-grid--tight {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .site-frame,
    .admin-main,
    body.bare-shell {
        width: calc(100% - 0.8rem);
    }

    .floating-actions {
        right: 0.6rem;
        bottom: 0.6rem;
        gap: 0.45rem;
    }

    .message-dock-trigger {
        min-width: 132px;
        padding-inline: 0.8rem;
    }

    .message-dock-trigger__label {
        font-size: 0.74rem;
    }

    .ip-fab {
        width: 60px;
        height: 60px;
        border-radius: 20px;
    }

    .player-picker__grid,
    .player-face-grid,
    .profile-friends-stage--side .player-face-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .profile-stat-grid--tight {
        grid-template-columns: 1fr;
    }

    .roulette-wheel {
        width: min(92vw, 520px);
        height: min(92vw, 520px);
    }

    .ip-overlay__card {
        min-width: calc(100vw - 1rem);
    }
}
body.bare-shell .site-frame--bare {
    width: min(var(--page-width), calc(100% - 2rem));
    margin: 0 auto;
    padding: 1.4rem 0 3rem;
    position: relative;
    z-index: 4;
}

body.bare-shell.page-admin-login {
    min-height: 100vh;
    overflow: hidden;
}

body.bare-shell.page-admin-login .site-frame--bare {
    min-height: 100vh;
    padding: 0;
    display: grid;
    place-items: center;
}

body.bare-shell.page-admin-login .auth-shell-admin {
    min-height: auto;
    width: min(100%, 560px);
    padding: 1rem 0;
}

body.bare-shell.page-admin-login .auth-panel::after {
    content: none !important;
    display: none !important;
}

body.bare-shell.page-install {
    background:
        radial-gradient(circle at 14% 10%, rgba(116, 214, 255, 0.2), transparent 18%),
        radial-gradient(circle at 88% 14%, rgba(60, 116, 226, 0.2), transparent 22%),
        linear-gradient(180deg, #0b2465 0%, #0a1d53 26%, #08163f 58%, #071233 100%);
}

body.bare-shell.page-install::before {
    background:
        radial-gradient(circle at 10% 18%, rgba(60, 116, 226, 0.24), transparent 18%),
        radial-gradient(circle at 85% 12%, rgba(0, 244, 254, 0.2), transparent 20%),
        radial-gradient(circle at 42% 92%, rgba(122, 220, 255, 0.14), transparent 18%);
}

body.bare-shell.page-install .sky-bubble-field {
    position: fixed;
    inset: 0;
    z-index: 3;
    overflow: hidden;
    pointer-events: none;
}

body.bare-shell.page-install .sky-bubble-field span {
    position: absolute;
    left: var(--bubble-left);
    bottom: var(--bubble-bottom, -10vh);
    width: var(--bubble-size);
    height: var(--bubble-size);
    border-radius: 999px;
    border: 1px solid rgba(214, 243, 255, 0.28);
    background:
        radial-gradient(circle at 28% 24%, rgba(255, 255, 255, 0.4), transparent 20%),
        radial-gradient(circle at 64% 72%, rgba(88, 242, 255, 0.22), transparent 38%),
        radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02) 70%, transparent 100%);
    box-shadow:
        inset -10px -12px 20px rgba(88, 242, 255, 0.08),
        0 0 26px rgba(88, 242, 255, 0.18),
        0 0 0 1px rgba(255, 255, 255, 0.04);
    opacity: 0.78;
    animation: none !important;
    will-change: transform, opacity;
}

body.bare-shell.page-install .sky-bubble-field--ambient {
    z-index: 2;
}

body.bare-shell.page-install .sky-bubble-field--ambient span {
    border-color: rgba(214, 243, 255, 0.18);
    background:
        radial-gradient(circle at 28% 24%, rgba(255, 255, 255, 0.18), transparent 18%),
        radial-gradient(circle at 64% 72%, rgba(88, 242, 255, 0.12), transparent 36%);
    box-shadow:
        inset -14px -18px 28px rgba(88, 242, 255, 0.06),
        0 0 36px rgba(88, 242, 255, 0.12);
    opacity: 0.4;
}

@media (prefers-reduced-motion: reduce) {
    body.bare-shell.page-install .sky-bubble-field span {
        animation: none !important;
    }
}

body.bare-shell.page-install .sky-bubble-field span:nth-child(3n) {
    opacity: 0.56;
}

body.bare-shell.page-install .sky-bubble-field span:nth-child(4n) {
    width: calc(var(--bubble-size) * 1.35);
    height: calc(var(--bubble-size) * 1.35);
}

body.bare-shell.page-install .site-frame--bare {
    padding-top: 2rem;
}

body.bare-shell.page-install .install-v2-panel {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    border: 1px solid rgba(186, 229, 255, 0.28);
    background: linear-gradient(180deg, rgba(16, 56, 146, 0.95) 0%, rgba(10, 37, 103, 0.98) 58%, rgba(7, 25, 73, 0.99) 100%);
    box-shadow: 0 18px 36px rgba(3, 15, 44, 0.18);
}

body.bare-shell.page-install .install-v2-panel > * {
    position: relative;
    z-index: 1;
}

body.bare-shell.page-install .install-v2-panel::before {
    content: none !important;
    display: none !important;
}

body.bare-shell.page-install .install-v2-panel::after {
    content: none !important;
    display: none !important;
}

body.bare-shell.page-install .glass-panel::before {
    content: none !important;
    display: none !important;
}

body.bare-shell.page-install .install-v2-requirement,
body.bare-shell.page-install .install-v2-pulse > div,
body.bare-shell.page-install .install-v2-chip,
body.bare-shell.page-install .button-primary,
body.bare-shell.page-install input,
body.bare-shell.page-install select,
body.bare-shell.page-install textarea {
    box-shadow: none;
}

body.bare-shell.page-install .button-primary {
    border: 1px solid rgba(214, 243, 255, 0.22);
    background: linear-gradient(180deg, #59a7ff 0%, #3c74e2 58%, #22d3ee 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        inset 0 -10px 16px rgba(5, 20, 58, 0.16),
        0 8px 0 rgba(8, 24, 68, 0.2),
        0 18px 28px rgba(60, 116, 226, 0.16);
}

body.bare-shell.page-install .install-v2-copyblock,
body.bare-shell.page-install .install-v2-head > div {
    display: grid;
    gap: 0.85rem;
}

body.bare-shell.page-install .install-v2-copyblock h1 {
    max-width: 12ch;
}

body.bare-shell.page-install .install-v2-panel h1,
body.bare-shell.page-install .install-v2-panel h2,
body.bare-shell.page-install .section-kicker,
body.bare-shell.page-install .install-v2-chip,
body.bare-shell.page-install .install-v2-pill,
body.bare-shell.page-install .install-v2-requirement span,
body.bare-shell.page-install .install-v2-form label > span,
body.bare-shell.page-install .button-primary {
    text-shadow: none !important;
}

body.bare-shell.page-install .install-v2-form {
    display: grid;
    gap: 1.6rem;
}

body.bare-shell.page-install .install-v2-actions {
    align-items: flex-start;
    margin-top: 0.2rem;
    padding-top: 0.35rem;
}

.visual-brand-fallback,
.update-card-media.is-fallback,
.featured-update-card__visual.is-fallback,
.update-article-hero__media.is-fallback {
    display: grid;
    place-items: center;
    min-height: 220px;
    background: linear-gradient(135deg, rgba(60, 116, 226, 0.8), rgba(0, 244, 254, 0.36));
}

.visual-brand-fallback img {
    width: min(160px, 38%);
    display: block;
    filter: drop-shadow(0 18px 24px rgba(8, 25, 70, 0.3));
}

input:focus,
textarea:focus,
select:focus {
    border-color: rgba(120, 230, 255, 0.52);
    box-shadow: 0 0 0 3px rgba(96, 216, 255, 0.14);
}
