@import url('https://fonts.googleapis.com/css2?family=Mali:wght@400;500;600;700&family=Noto+Sans+Thai:wght@400;500;600;700;800&display=swap');

:root {
    --royal-ink: #55445f;
    --royal-deep: #433754;
    --royal-muted: #816d7f;
    --royal-pink: #e86e9a;
    --royal-pink-dark: #c94f80;
    --royal-blush: #ffe5ed;
    --royal-sky: #5cbde5;
    --royal-gold: #e5a241;
    --royal-gold-light: #ffe8a2;
    --royal-lavender: #9783d2;
    --royal-green: #5eb67c;
    --royal-line: rgba(189, 119, 151, .22);
    --royal-shadow: 0 24px 70px rgba(110, 68, 103, .16);
    --royal-font: 'Noto Sans Thai', Tahoma, sans-serif;
    --royal-display: 'Mali', 'Noto Sans Thai', sans-serif;
}

html { background: #fff8fb; }
body.royal-v2 { color: var(--royal-ink); background: linear-gradient(180deg, #eefaff 0%, #fff8fb 32%, #fffdf8 100%); font-family: var(--royal-font); }
body.royal-v2::before { content: none; }
body.royal-v2 a { color: inherit; }
body.royal-v2 .section-shell { width: min(1440px, calc(100% - 64px)); }
body.royal-v2 .site-noise { z-index: 80; opacity: .22; mix-blend-mode: screen; }

/* Navigation */
body.royal-v2 .site-header,
body.royal-v2 .site-header.scrolled {
    height: 86px;
    padding: 0 clamp(22px, 4.3vw, 76px);
    gap: clamp(18px, 2.4vw, 42px);
    border-bottom: 1px solid rgba(211, 132, 162, .26);
    color: #624e64;
    background: linear-gradient(180deg, rgba(255,255,255,.97), rgba(255,246,250,.92));
    box-shadow: 0 12px 40px rgba(111,75,105,.13);
    backdrop-filter: blur(20px) saturate(145%);
}
body.royal-v2 .site-header::after { left: 4%; right: 4%; background: linear-gradient(90deg, transparent, #f0a2ba, #f7cf68, #75c9e8, transparent); }
body.royal-v2 .brand-logo,
body.royal-v2 .site-header.scrolled .brand-logo { width: 146px; height: 77px; }
body.royal-v2 .brand-logo img { filter: drop-shadow(0 7px 12px rgba(103,63,92,.18)); }
body.royal-v2 .main-nav { gap: 0; }
body.royal-v2 .main-nav a { padding: 13px 15px; color: #5f485d; font-size: 14px; font-weight: 800; }
body.royal-v2 .main-nav a:hover,
body.royal-v2 .main-nav a.active { color: #d75f8c; }
body.royal-v2 .main-nav a::after { left: 14px; right: 14px; bottom: 4px; height: 3px; border-radius: 10px; background: linear-gradient(90deg, #ee7aa4, #f6ca63, #67c4e7); box-shadow: none; }
body.royal-v2 .member-button {
    min-width: 170px;
    min-height: 54px;
    border: 1px solid rgba(202,103,141,.32);
    border-radius: 999px;
    color: #793e57;
    background: linear-gradient(135deg, #fff4cc, #ffd5e1 48%, #f292b3);
    box-shadow: 0 10px 26px rgba(200,90,135,.21), inset 0 1px rgba(255,255,255,.9);
}
body.royal-v2 .member-button span { font-weight: 800; }
body.royal-v2 .member-button small { color: #a55372; }

/* Grand hero */
.royal-hero { position: relative; min-height: 930px; padding: 130px 0 115px; display: flex; align-items: center; overflow: hidden; isolation: isolate; }
.royal-hero::before { content: ''; position: absolute; left: 2.5%; right: 2.5%; top: 112px; bottom: 58px; z-index: -1; border: 1px solid rgba(255,255,255,.68); border-radius: 42px; box-shadow: inset 0 0 0 1px rgba(221,146,175,.18), inset 0 0 90px rgba(255,255,255,.22); pointer-events: none; }
.royal-hero::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; z-index: 0; height: 170px; background: linear-gradient(180deg, transparent, #fff8fb 88%); pointer-events: none; }
.royal-hero-backdrop { position: absolute; inset: 0; z-index: -3; background: url('../pastel-kingdom-hero.png') 56% center / cover no-repeat; filter: saturate(1.08) contrast(.98); transform: scale(1.015); }
.royal-hero-backdrop::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,255,255,.12), transparent 44%, rgba(255,255,255,.06)), linear-gradient(180deg, rgba(126,191,232,.05), transparent 65%, rgba(255,246,250,.76)); }
.royal-hero-shell { position: relative; z-index: 2; width: min(1500px, calc(100% - 72px)); margin: 0 auto; display: grid; grid-template-columns: minmax(0, .95fr) minmax(500px, .85fr); gap: clamp(32px, 5vw, 86px); align-items: center; }
.royal-brand-column { position: relative; padding: 34px 30px 32px; display: flex; flex-direction: column; align-items: center; border: 1px solid rgba(255,255,255,.68); border-radius: 38px; background: radial-gradient(circle at 50% 38%, rgba(255,255,255,.96), rgba(255,255,255,.76) 50%, rgba(255,248,251,.66) 100%); box-shadow: 0 24px 60px rgba(92,71,104,.13), inset 0 1px #fff; backdrop-filter: blur(18px) saturate(120%); text-align: center; }
.royal-brand-column::before { content: ''; position: absolute; inset: 10px; border: 1px solid rgba(222,152,179,.18); border-radius: 29px; pointer-events: none; }
.royal-overline { position: relative; margin: 0 0 3px; color: #78485c; font: 700 11px/1.3 var(--royal-display); letter-spacing: 2px; text-shadow: 0 1px #fff; }
.royal-overline span { margin-inline: 8px; color: var(--royal-gold); }
.royal-main-logo { position: relative; width: min(510px, 90%); max-height: 445px; margin: -20px 0 -36px; object-fit: contain; filter: drop-shadow(0 22px 25px rgba(105,67,96,.25)); }
.royal-brand-column h1 { position: relative; margin: 0; color: #3f334d; font: 700 clamp(43px, 4.4vw, 67px)/1.18 var(--royal-display); letter-spacing: -2px; text-shadow: 0 3px 0 #fff, 0 8px 22px rgba(79,54,77,.12); }
.royal-brand-column h1 em { color: #d85d8c; font-style: normal; text-shadow: 0 2px #fff, 0 7px 18px rgba(196,76,122,.14); }
.royal-brand-lead { position: relative; max-width: 610px; margin: 18px 0 0; color: #4f414f; font-size: 16px; font-weight: 600; line-height: 1.85; text-shadow: 0 1px #fff; }
.royal-chips { margin-top: 24px; display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; }
.royal-chips span { min-height: 38px; padding: 8px 15px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(194,120,150,.3); border-radius: 999px; color: #563f54; background: rgba(255,255,255,.94); box-shadow: 0 8px 20px rgba(110,75,101,.09), inset 0 1px #fff; backdrop-filter: blur(12px); font-size: 12px; font-weight: 800; }
.royal-chips i { color: #df7098; font-style: normal; }

.royal-welcome-card { position: relative; width: min(650px, 100%); min-height: 660px; margin-left: auto; padding: 72px 58px 38px; border: 2px solid rgba(208,133,162,.52); border-radius: 42px 42px 34px 34px; background: radial-gradient(circle at 85% 8%, rgba(255,222,232,.85), transparent 33%), linear-gradient(145deg, rgba(255,255,255,.96), rgba(255,246,248,.95)); box-shadow: 0 28px 70px rgba(115,70,104,.21), inset 0 0 0 7px rgba(255,255,255,.68), inset 0 0 0 9px rgba(225,156,182,.16); backdrop-filter: blur(18px) saturate(125%); text-align: center; }
.royal-welcome-card::before { content: ''; position: absolute; inset: 19px; border: 1px solid rgba(231,179,102,.36); border-radius: 27px; pointer-events: none; }
.royal-welcome-card::after { content: '✦'; position: absolute; left: 28px; top: 34px; color: #e8ac4f; font-size: 21px; text-shadow: 0 0 15px rgba(246,196,89,.45); }
.royal-card-gem { position: absolute; left: 50%; top: -42px; z-index: 3; width: 82px; height: 82px; display: grid; place-items: center; border: 6px solid #fff8ee; border-radius: 28px 28px 38px 38px; color: #f17aa5; background: linear-gradient(145deg, #fff0a8, #dc983b); box-shadow: 0 7px 0 #b86b39, 0 13px 30px rgba(130,76,78,.23); font-size: 38px; transform: translateX(-50%) rotate(45deg); }
.royal-card-gem::before { content: ''; position: absolute; inset: 12px; border: 2px solid #fff; border-radius: 11px; box-shadow: inset 0 0 0 3px rgba(191,81,122,.2); }
.royal-card-gem { text-shadow: 0 2px #fff; }
.royal-card-ribbon { position: absolute; left: 50%; top: 29px; z-index: 2; width: min(520px, calc(100% - 72px)); min-height: 52px; padding: 14px 46px; border: 1px solid #d86c95; border-radius: 11px 11px 22px 22px; color: #fff; background: linear-gradient(180deg, #f6afc2, #e2769d 72%, #cf5b88); box-shadow: 0 5px 0 rgba(183,73,116,.22), 0 12px 25px rgba(207,83,132,.18), inset 0 1px rgba(255,255,255,.75); font: 700 14px/1.4 var(--royal-display); letter-spacing: 1.4px; transform: translateX(-50%); }
.royal-card-ribbon::before,
.royal-card-ribbon::after { content: ''; position: absolute; top: 8px; z-index: -1; width: 47px; height: 45px; border: 1px solid #c85c87; background: linear-gradient(135deg, #f39ab5, #cf5e89); }
.royal-card-ribbon::before { left: -35px; border-radius: 13px 0 0 13px; transform: skewY(12deg); }
.royal-card-ribbon::after { right: -35px; border-radius: 0 13px 13px 0; transform: skewY(-12deg); }
.royal-card-kicker { margin: 35px 0 6px; color: #8b5068; font: 700 11px/1 var(--royal-display); letter-spacing: 1.8px; }
.royal-welcome-card h2 { margin: 0; color: #493749; font: 700 clamp(34px, 3vw, 47px)/1.16 var(--royal-display); letter-spacing: -1.3px; text-shadow: 0 2px #fff; }
.royal-welcome-card h2 em { display: inline-block; color: #d75e8a; font-style: normal; text-shadow: 0 2px #fff, 0 7px 17px rgba(194,75,120,.12); }
.royal-card-copy { max-width: 500px; margin: 14px auto 17px; color: #594858; font-size: 14px; font-weight: 600; line-height: 1.75; }
.royal-promises { position: relative; display: grid; gap: 0; text-align: left; }
.royal-promises::before { content: ''; position: absolute; left: 48px; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, #edc27f, transparent); }
.royal-promises > div { min-height: 67px; padding: 11px 8px; display: grid; grid-template-columns: 42px 1fr; gap: 13px; align-items: center; border-bottom: 1px dashed rgba(201,129,157,.27); }
.royal-promises > div > i { width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid rgba(219,110,149,.27); border-radius: 13px; color: #db6993; background: linear-gradient(145deg, #fff, #ffeaf0); box-shadow: 0 6px 14px rgba(180,82,121,.1); font-style: normal; }
.royal-promises > div:nth-child(2) > i { color: #698ac9; background: linear-gradient(145deg, #fff, #edf3ff); }
.royal-promises > div:nth-child(3) > i { color: #8b6bc1; background: linear-gradient(145deg, #fff, #f3edff); }
.royal-promises b,
.royal-promises small { display: block; }
.royal-promises b { color: #4e3d4c; font-size: 14px; }
.royal-promises small { margin-top: 3px; color: #6f5c6a; font-size: 11px; font-weight: 600; }
.royal-card-actions { position: relative; margin-top: 22px; display: grid; grid-template-columns: 1.18fr .82fr; gap: 10px; }
.royal-primary,
.royal-secondary { min-height: 61px; display: flex; align-items: center; justify-content: center; border-radius: 17px; transition: transform .2s, box-shadow .2s; }
.royal-primary { padding: 8px 13px 8px 21px; gap: 12px; border: 1px solid rgba(190,67,115,.33); color: #fff; background: linear-gradient(135deg, #f7a9c0, #e76e9a 55%, #c94e80); box-shadow: 0 13px 27px rgba(200,77,126,.25), inset 0 1px rgba(255,255,255,.6); }
.royal-primary span,
.royal-primary small { display: block; text-align: left; }
.royal-primary span { font-size: 15px; font-weight: 800; }
.royal-primary small { margin-top: 2px; color: #ffeaf1; font: 700 8px/1 var(--royal-display); letter-spacing: 1px; }
.royal-primary b { margin-left: auto; font-size: 20px; }
.royal-secondary { padding: 8px 15px; gap: 11px; border: 1px solid rgba(83,163,196,.32); color: #4d8198; background: linear-gradient(145deg, #fff, #eaf9ff); box-shadow: 0 10px 24px rgba(74,131,157,.12), inset 0 1px #fff; }
.royal-secondary > b { color: #de7198; font-size: 21px; }
.royal-secondary span,
.royal-secondary small { display: block; text-align: left; }
.royal-secondary span { font-size: 12px; font-weight: 800; }
.royal-secondary small { margin-top: 3px; color: #8597a0; font: 700 7px/1 var(--royal-display); letter-spacing: .8px; }
.royal-primary:hover,
.royal-secondary:hover { transform: translateY(-3px); }
.royal-primary:hover { box-shadow: 0 17px 33px rgba(200,77,126,.32), inset 0 1px rgba(255,255,255,.65); }
.royal-live { position: relative; width: max-content; margin: 18px auto 0; padding: 7px 12px; display: flex; align-items: center; gap: 8px; border: 1px solid rgba(87,180,122,.26); border-radius: 99px; color: #738276; background: #f5fff8; font: 700 8px/1 var(--royal-display); letter-spacing: 1px; }
.royal-live i { width: 7px; height: 7px; border-radius: 50%; background: #59bb7c; box-shadow: 0 0 10px rgba(89,187,124,.65); animation: pulse 2s infinite; }
.royal-live strong { color: #45a268; }
.royal-card-footer { position: absolute; left: 62px; right: 62px; bottom: 14px; display: flex; align-items: center; gap: 9px; color: #d99c45; font-size: 9px; }
.royal-card-footer i { height: 1px; flex: 1; background: linear-gradient(90deg, transparent, rgba(218,157,70,.55), transparent); }
.royal-card-footer b { color: #b77a8e; font: 700 7px/1 var(--royal-display); letter-spacing: 1.8px; }
.royal-sparkles i { position: absolute; z-index: 1; width: 8px; height: 8px; border-radius: 50%; background: #fff; box-shadow: 0 0 18px 5px rgba(255,255,255,.7); animation: twinkle 3s ease-in-out infinite; }
.royal-sparkles i::after { content: ''; position: absolute; left: 50%; top: -8px; width: 1px; height: 24px; background: linear-gradient(transparent, #fff, transparent); transform: translateX(-50%); }
.royal-sparkles i:nth-child(1) { left: 6%; top: 25%; }
.royal-sparkles i:nth-child(2) { left: 44%; top: 17%; animation-delay: .8s; }
.royal-sparkles i:nth-child(3) { left: 55%; top: 74%; animation-delay: 1.4s; }
.royal-sparkles i:nth-child(4) { right: 5%; top: 20%; animation-delay: .4s; }
.royal-sparkles i:nth-child(5) { left: 15%; bottom: 18%; animation-delay: 1.8s; }
.royal-scroll { position: absolute; left: 50%; bottom: 43px; z-index: 4; display: flex; flex-direction: column; align-items: center; gap: 5px; color: #9d7488; transform: translateX(-50%); }
.royal-scroll span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(203,124,154,.3); border-radius: 50%; background: rgba(255,255,255,.8); box-shadow: 0 8px 20px rgba(102,70,96,.1); font-size: 19px; }
.royal-scroll small { font: 700 7px/1 var(--royal-display); letter-spacing: 1.5px; }

/* Realm crystal bar */
body.royal-v2 .realm-strip { position: relative; z-index: 6; width: min(1420px, calc(100% - 52px)); min-height: 126px; margin: -45px auto 0; grid-template-columns: 1.45fr repeat(4, 1fr); overflow: visible; border: 1px solid rgba(208,129,160,.28); border-radius: 28px; color: #644f64; background: linear-gradient(135deg, rgba(255,255,255,.97), rgba(255,244,249,.95)); box-shadow: var(--royal-shadow), inset 0 1px #fff; backdrop-filter: blur(20px); }
body.royal-v2 .realm-strip::before { inset: 8px; border: 1px solid rgba(231,175,101,.22); border-radius: 20px; background: radial-gradient(circle at 0 50%, rgba(255,220,231,.5), transparent 30%); }
body.royal-v2 .realm-strip::after { content: '◆'; position: absolute; left: 50%; top: -16px; width: 34px; height: 34px; display: grid; place-items: center; border: 4px solid #fff7ed; border-radius: 10px; color: #ee76a0; background: linear-gradient(145deg, #ffe78e, #d99b41); box-shadow: 0 6px 16px rgba(154,92,87,.18); transform: translateX(-50%) rotate(45deg); }
body.royal-v2 .realm-label,
body.royal-v2 .realm-stat { padding: 26px 28px; }
body.royal-v2 .realm-label { padding-left: 42px; }
body.royal-v2 .realm-label i { left: 20px; top: 31px; bottom: 31px; width: 4px; border-radius: 10px; background: linear-gradient(#ef7da6, #f2c85e, #69c6e7); box-shadow: none; }
body.royal-v2 .realm-label span,
body.royal-v2 .realm-stat span { color: #87566a; font-weight: 800; }
body.royal-v2 .realm-label strong { color: #624d63; }
body.royal-v2 .realm-stat { border-left-color: rgba(193,125,155,.17); }
body.royal-v2 .realm-stat small { color: #604d5e; font-size: 13px; font-weight: 700; }
body.royal-v2 .realm-stat b { color: #d86892; font-family: var(--royal-display); text-shadow: 0 1px #fff; }

/* Section headings */
body.royal-v2 .portal-section { padding-block: 135px 150px; }
body.royal-v2 .section-heading { margin-bottom: 52px; grid-template-columns: .45fr 1.65fr .72fr; gap: 34px; }
body.royal-v2 .section-index { color: rgba(216,105,146,.55); font-family: var(--royal-display); }
body.royal-v2 .kicker { color: #a9476d; font-family: var(--royal-display); font-size: 11px; font-weight: 800; }
body.royal-v2 .section-heading h2,
body.royal-v2 .world-copy h2,
body.royal-v2 .community-copy h2,
body.royal-v2 .final-cta h2 { color: #59485f; font-family: var(--royal-display); font-weight: 700; letter-spacing: -1.4px; }
body.royal-v2 .section-heading h2 { font-size: clamp(38px, 3.7vw, 54px); white-space: nowrap; }
body.royal-v2 .section-heading h2 em,
body.royal-v2 .world-copy h2 em,
body.royal-v2 .community-copy h2 em,
body.royal-v2 .final-cta h2 em { color: #c84f7c; text-shadow: none; }
body.royal-v2 .section-heading > p { color: #5d4c5a; font-size: 16px; font-weight: 500; }

/* Portal cards */
body.royal-v2 .portal-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
body.royal-v2 .portal-card { min-height: 164px; padding: 27px 29px; grid-template-columns: 70px minmax(0,1fr) 48px; gap: 22px; border: 1px solid rgba(190,122,153,.21); border-radius: 25px; color: #614d64; background: radial-gradient(circle at 100% 0, rgba(255,224,233,.6), transparent 36%), linear-gradient(145deg, #fff, #fff6f9); box-shadow: 0 18px 42px rgba(111,75,104,.11), inset 0 1px #fff; }
body.royal-v2 .portal-card::before { inset: 0; opacity: 1; background: linear-gradient(120deg, rgba(255,255,255,.38), transparent 38%); }
body.royal-v2 .portal-card::after { left: 28px; right: 28px; top: 0; height: 3px; border-radius: 10px; background: linear-gradient(90deg, transparent, #ef89aa, #f4c763, #72c5e4, transparent); }
body.royal-v2 .portal-card-main { border-color: rgba(225,132,160,.3); background: radial-gradient(circle at 0 50%, rgba(255,215,226,.48), transparent 31%), linear-gradient(145deg, #fff9e9, #fff4f8); }
body.royal-v2 .portal-card:hover { transform: translateY(-6px); border-color: rgba(221,104,148,.38); box-shadow: 0 26px 55px rgba(126,74,109,.17), inset 0 1px #fff; }
body.royal-v2 .portal-card .portal-glyph { width: 65px; height: 65px; margin: 0; border-color: rgba(219,111,149,.28); border-radius: 21px; color: #df6d96; background: linear-gradient(145deg, #fff, #ffe8ef); box-shadow: 0 10px 22px rgba(176,79,119,.12), inset 0 1px #fff; }
body.royal-v2 .portal-card:nth-child(2) .portal-glyph { color: #4ba3c5; background: linear-gradient(145deg, #fff, #e9faff); }
body.royal-v2 .portal-card:nth-child(3) .portal-glyph { color: #9272c4; background: linear-gradient(145deg, #fff, #f1ebff); }
body.royal-v2 .portal-card:nth-child(4) .portal-glyph { color: #63ad72; background: linear-gradient(145deg, #fff, #edfaee); }
body.royal-v2 .portal-card .portal-copy small { color: #327f9c; font-size: 10px; font-weight: 800; }
body.royal-v2 .portal-card .portal-copy h3 { color: #5d4960; font-family: var(--royal-display); }
body.royal-v2 .portal-card .portal-copy p { color: #5f4e5d; font-size: 14px; font-weight: 500; line-height: 1.55; white-space: normal; overflow: visible; text-overflow: clip; }
body.royal-v2 .portal-card > b.portal-arrow { border-color: rgba(208,128,159,.23); color: #d76892; background: rgba(255,255,255,.68); }
body.royal-v2 .portal-card:hover > b.portal-arrow { border-color: rgba(215,101,144,.42); background: #fff0f5; }

/* World showcase */
body.royal-v2 .world-showcase { min-height: 900px; color: #5d4d62; background: #f4fbff; }
body.royal-v2 .world-image { background: linear-gradient(90deg, rgba(255,249,251,.97) 0%, rgba(255,249,251,.86) 38%, rgba(255,249,251,.34) 70%, rgba(255,249,251,.25)), linear-gradient(180deg, #fff9fb, transparent 18%, transparent 78%, #fff9fb), url('../grand-fantasia-world.jpg') center / cover no-repeat; filter: saturate(.86) brightness(1.14); }
body.royal-v2 .world-image::after { background: radial-gradient(circle at 75% 35%, rgba(111,204,234,.16), transparent 32%), radial-gradient(circle at 65% 70%, rgba(247,154,188,.15), transparent 28%); }
body.royal-v2 .world-content { grid-template-columns: 1fr .95fr; gap: clamp(45px, 5vw, 75px); }
body.royal-v2 .world-copy { padding: 45px; border: 1px solid rgba(190,123,153,.2); border-radius: 30px; background: rgba(255,255,255,.79); box-shadow: 0 22px 55px rgba(109,75,103,.11), inset 0 1px #fff; backdrop-filter: blur(16px); }
body.royal-v2 .world-copy h2 { font-size: clamp(37px, 3.4vw, 48px); line-height: 1.3; }
body.royal-v2 .world-copy > p:not(.kicker) { color: #514452; font-size: 16px; font-weight: 500; }
body.royal-v2 .text-link { border-bottom-color: rgba(214,99,142,.35); color: #d35e89; }
body.royal-v2 .feature-stack { gap: 14px; }
body.royal-v2 .feature-card { min-height: 157px; border-color: rgba(188,122,153,.21); border-radius: 22px; color: #604d64; background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,246,250,.88)); box-shadow: 0 16px 38px rgba(111,75,104,.1), inset 0 1px #fff; backdrop-filter: blur(15px); }
body.royal-v2 .feature-card:hover { transform: translateX(-7px); border-color: rgba(218,104,147,.35); }
body.royal-v2 .feature-card > span { color: rgba(216,101,142,.62); font-family: var(--royal-display); }
body.royal-v2 .feature-card small { color: #4ca3c3; }
body.royal-v2 .feature-card h3 { color: #604b62; font-family: var(--royal-display); }
body.royal-v2 .feature-card p { color: #5f4e5d; font-size: 14px; font-weight: 500; }

/* Rankings and news */
body.royal-v2 .chronicle-section { position: relative; padding-block: 140px; }
body.royal-v2 .chronicle-section::before { content: ''; position: absolute; left: 50%; top: 45px; z-index: -1; width: 100vw; height: calc(100% - 90px); background: radial-gradient(circle at 12% 20%, rgba(255,223,233,.42), transparent 30%), radial-gradient(circle at 87% 82%, rgba(205,239,251,.5), transparent 28%), linear-gradient(180deg, #fff8fb, #f5fbff); transform: translateX(-50%); }
body.royal-v2 .ranking-panel,
body.royal-v2 .news-panel { position: relative; padding: 39px; border-color: rgba(189,122,153,.22); border-radius: 28px; color: #614e64; background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,247,250,.95)); box-shadow: 0 22px 55px rgba(111,75,104,.12), inset 0 1px #fff; }
body.royal-v2 .ranking-panel::before,
body.royal-v2 .news-panel::before { content: ''; position: absolute; left: 35px; right: 35px; top: 0; height: 3px; border-radius: 10px; background: linear-gradient(90deg, transparent, #ef84a8, #f3c25b, #68c3e5, transparent); }
body.royal-v2 .panel-head { border-bottom-color: rgba(188,123,153,.17); }
body.royal-v2 .panel-head h2 { color: #5c4960; font-family: var(--royal-display); }
body.royal-v2 .panel-head > a { color: #d45e89; }
body.royal-v2 .ranking-row { color: #614e63; background: rgba(255,244,248,.55); }
body.royal-v2 a.ranking-row:hover { border-color: rgba(218,105,146,.23); background: #fff0f5; }
body.royal-v2 .rank-number { color: #d97096; }
body.royal-v2 .ranking-row:first-child .rank-number { color: #d89435; text-shadow: 0 0 14px rgba(236,177,67,.23); }
body.royal-v2 .rank-avatar { border-color: rgba(93,177,207,.24); color: #4f98b5; background: linear-gradient(135deg, #edfaff, #f4efff); }
body.royal-v2 .rank-name strong { color: #604b62; }
body.royal-v2 .rank-name small,
body.royal-v2 .rank-level small { color: #958091; }
body.royal-v2 .rank-level b { color: #d99339; }
body.royal-v2 .news-feature { border-color: rgba(214,112,151,.2); border-radius: 18px; color: #604c63; background: radial-gradient(circle at 90% 5%, rgba(250,201,95,.2), transparent 35%), linear-gradient(145deg, #fff8fb, #f0fbff); }
body.royal-v2 .news-feature:hover { border-color: rgba(218,105,147,.35); }
body.royal-v2 .news-tag { color: #7d4058; background: linear-gradient(135deg, #ffe8a8, #ffccd9); }
body.royal-v2 .news-feature > small { color: #9a8292; }
body.royal-v2 .news-feature h3 { color: #604b62; font-family: var(--royal-display); }
body.royal-v2 .news-feature p { color: #5d4d5b; font-size: 14px; font-weight: 500; }
body.royal-v2 .news-feature > b { color: #d45f89; }
body.royal-v2 .news-row { border-bottom-color: rgba(188,123,153,.15); }
body.royal-v2 .news-row:hover { background: #fff1f6; }
body.royal-v2 .news-row > span { color: #4fa3c4; }
body.royal-v2 .news-row h3 { color: #604b62; }
body.royal-v2 .news-row small { color: #968090; }
body.royal-v2 .news-row > b { color: #d89435; }

/* Community and CTA */
body.royal-v2 .community-section { border-block-color: rgba(150,127,203,.15); color: #604e66; background: radial-gradient(circle at 15% 30%, rgba(166,142,220,.17), transparent 30%), radial-gradient(circle at 85% 65%, rgba(109,201,233,.15), transparent 32%), linear-gradient(145deg, #fbf8ff, #f2fbff); }
body.royal-v2 .community-glow { border-color: rgba(151,128,205,.13); box-shadow: inset 0 0 120px rgba(158,134,211,.06); }
body.royal-v2 .community-copy > p:not(.kicker) { color: #806e80; }
body.royal-v2 .discord-shell { border-color: rgba(140,119,195,.2); border-radius: 23px; background: #fff; box-shadow: 0 25px 60px rgba(91,77,130,.14); }
body.royal-v2 .discord-shell header { border-bottom-color: rgba(140,119,195,.14); color: #5d4f75; background: linear-gradient(135deg, #eeeaff, #f8f6ff); }
body.royal-v2 .discord-shell header span { color: #7d6ab6; }
body.royal-v2 .discord-frame { color: #8c819d; }
body.royal-v2 .final-cta { min-height: 620px; color: #5d4960; background: radial-gradient(circle at 50% 46%, rgba(255,255,255,.94), transparent 28%), radial-gradient(circle at 50% 55%, rgba(247,151,185,.18), transparent 36%), linear-gradient(180deg, #f3fbff, #fff3f7); }
body.royal-v2 .final-cta::before,
body.royal-v2 .final-cta::after { border-color: rgba(220,111,150,.15); }
body.royal-v2 .final-crest { border-color: rgba(218,105,145,.27); color: #dd6993; background: #fff; box-shadow: 0 0 45px rgba(228,117,157,.14); }
body.royal-v2 .final-cta > p:not(.kicker) { color: #816e7e; }
body.royal-v2 .button-primary { border-color: rgba(194,70,116,.3); border-radius: 999px; color: #fff; background: linear-gradient(135deg, #f7aac1, #e6709b 56%, #c94f80); box-shadow: 0 13px 30px rgba(201,79,127,.24), inset 0 1px rgba(255,255,255,.6); }
body.royal-v2 .button-primary b { color: #ffeaf1; }
body.royal-v2 .site-footer { border-top-color: rgba(190,123,153,.2); color: #7f6d7e; background: linear-gradient(180deg, #fffafa, #f7eef3); }
body.royal-v2 .site-footer strong { color: #5d4a61; }
body.royal-v2 .site-footer p,
body.royal-v2 .site-footer nav { color: #887584; }
body.royal-v2 .site-footer > small { color: #a58d9d; }

/* Public service pages */
body.royal-v2:not(.celestial-home) { min-height: 100vh; color: #5e4c62; background: radial-gradient(circle at 12% 5%, rgba(255,255,255,.9), transparent 25%), linear-gradient(180deg, #eaf8ff 0%, #fff5f8 44%, #fffdf8 100%); }
body.royal-v2:not(.celestial-home)::before { content: ''; position: fixed; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(255,250,252,.9), rgba(255,255,255,.5), rgba(255,246,250,.76)), url('../pastel-kingdom-hero.png') 68% center / cover no-repeat; opacity: .27; }
body.royal-v2 .public-main { color: #5e4c62; }
body.royal-v2 .public-page-head { border-bottom-color: rgba(190,123,153,.2); }
body.royal-v2 .public-page-head::after { background: linear-gradient(90deg, #ef7fa7, #f4c660, #6fc6e7, transparent); }
body.royal-v2 .public-page-head h1 { color: #5b4860; font-family: var(--royal-display); text-shadow: none; }
body.royal-v2 .public-page-head p { color: #836f80; }
body.royal-v2 .public-panel,
body.royal-v2 .public-download-card,
body.royal-v2 .public-download-hero,
body.royal-v2 .alchemy-panel,
body.royal-v2 .alchemy-info-card { border-color: rgba(190,123,153,.22) !important; border-radius: 24px; color: #604d64; background: linear-gradient(145deg, rgba(255,255,255,.97), rgba(255,247,250,.95)) !important; box-shadow: 0 20px 50px rgba(112,75,104,.12), inset 0 1px #fff !important; }
body.royal-v2 .public-panel::before { background: linear-gradient(90deg, transparent, #ef7fa7, #f4c55d, #6dc4e6, transparent); }
body.royal-v2 .public-ranking th { color: #4b97b5; background: #ebf9fd; border-bottom-color: rgba(93,171,201,.18); }
body.royal-v2 .public-ranking td { color: #634f64; border-bottom-color: rgba(190,123,153,.12); }
body.royal-v2 .public-ranking tbody tr:hover { background: #fff1f6; }
body.royal-v2 .public-ranking td:first-child b { border-color: #eda9be; color: #d3638c; background: #fff4f7; }
body.royal-v2 .public-download-hero { background: radial-gradient(circle at 90% 10%, rgba(102,195,230,.2), transparent 34%), linear-gradient(145deg, #fff3f7, #eefaff) !important; }
body.royal-v2 .public-download-copy h2,
body.royal-v2 .public-install h2 { color: #5c4961 !important; font-family: var(--royal-display); }
body.royal-v2 .public-download-copy p { color: #836f80 !important; }
body.royal-v2 .public-badge { border-color: #eca5bc; color: #ce5e87; background: #fff0f5; }
body.royal-v2 .public-requirements span { border-color: #acd9e7; color: #54869a; background: #f3fdff; }
body.royal-v2 .public-download-emblem { border-color: #eea7be; color: #d96e94; background: linear-gradient(145deg, #ffd7e2, #fff0c3); }
body.royal-v2 .public-download-card > i { border-color: #a4d7e6; color: #4fa7c8; background: #effbff; }
body.royal-v2 .public-download-card small { color: #967f8f; }
body.royal-v2 .public-download-card b { color: #5f4c64; }
body.royal-v2 .public-download-card strong { color: #dc7197; }
body.royal-v2 .public-download-card span { color: #867384; }
body.royal-v2 .public-install li { border-color: rgba(190,123,153,.17); color: #654f64; background: #fffafc; }
body.royal-v2 .public-install li::before { color: #744052; background: linear-gradient(145deg, #ffd8e3, #ef99b5); }

@keyframes twinkle { 0%,100% { opacity: .35; transform: scale(.65) rotate(0); } 50% { opacity: 1; transform: scale(1.2) rotate(45deg); } }

@media (max-width: 1220px) {
    .royal-hero { padding-top: 135px; }
    .royal-hero-shell { width: min(1180px, calc(100% - 52px)); grid-template-columns: .9fr minmax(480px,.82fr); gap: 25px; }
    .royal-main-logo { width: min(490px, 94%); }
    .royal-brand-column h1 { font-size: 50px; }
    .royal-welcome-card { min-height: 645px; padding-inline: 43px; }
    body.royal-v2 .main-nav a { padding-inline: 10px; }
}
@media (max-width: 1000px) {
    body.royal-v2 .site-header { padding-inline: 18px; }
    body.royal-v2 .main-nav a { font-size: 12px; }
    body.royal-v2 .member-button { min-width: 145px; }
    .royal-hero { padding: 145px 0 135px; }
    .royal-hero-shell { width: min(760px, calc(100% - 42px)); grid-template-columns: 1fr; gap: 70px; }
    .royal-brand-column { padding-top: 0; }
    .royal-main-logo { width: min(540px, 88%); }
    .royal-welcome-card { width: min(650px, 100%); margin-inline: auto; }
    body.royal-v2 .realm-strip { grid-template-columns: repeat(4,1fr); }
    body.royal-v2 .realm-label { grid-column: 1 / -1; min-height: 90px; border-bottom: 1px solid rgba(190,123,153,.17); }
    body.royal-v2 .world-content { grid-template-columns: 1fr; gap: 28px; }
    body.royal-v2 .world-showcase { padding-block: 100px; }
}
@media (max-width: 760px) {
    body.royal-v2 .site-header,
    body.royal-v2 .site-header.scrolled { height: 72px; padding-inline: 13px; }
    body.royal-v2 .brand-logo,
    body.royal-v2 .site-header.scrolled .brand-logo { width: 106px; height: 64px; }
    body.royal-v2 .menu-toggle { border-color: rgba(209,111,149,.34); color: #d6658e; background: #fff5f8; }
    body.royal-v2 .main-nav { border-color: rgba(194,125,154,.22); color: #665266; background: rgba(255,250,252,.98); box-shadow: 0 24px 50px rgba(110,72,104,.16); }
    body.royal-v2 .main-nav a { color: #695468; }
    .royal-hero { min-height: auto; padding: 116px 0 105px; }
    .royal-hero::before { left: 10px; right: 10px; top: 90px; bottom: 40px; border-radius: 24px; }
    .royal-hero-backdrop { background-position: 68% center; }
    .royal-hero-backdrop::before { background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.38) 42%, rgba(255,247,250,.78) 100%); }
    .royal-hero-shell { width: calc(100% - 28px); gap: 62px; }
    .royal-overline { font-size: 8px; letter-spacing: 1.4px; }
    .royal-main-logo { width: min(390px, 94%); margin: -20px 0 -31px; }
    .royal-brand-column h1 { font-size: 32px; line-height: 1.24; letter-spacing: -.7px; }
    .royal-brand-lead { padding-inline: 11px; font-size: 13px; }
    .royal-chips { gap: 6px; }
    .royal-chips span { padding-inline: 11px; font-size: 10px; }
    .royal-welcome-card { min-height: 650px; padding: 70px 24px 38px; border-radius: 28px; }
    .royal-welcome-card::before { inset: 11px; border-radius: 20px; }
    .royal-card-ribbon { width: calc(100% - 64px); padding-inline: 22px; font-size: 10px; }
    .royal-card-ribbon::before { left: -25px; width: 34px; }
    .royal-card-ribbon::after { right: -25px; width: 34px; }
    .royal-welcome-card h2 { font-size: clamp(33px, 9.5vw, 44px); }
    .royal-card-actions { grid-template-columns: 1fr; }
    .royal-primary,
    .royal-secondary { min-height: 58px; }
    .royal-card-footer { left: 35px; right: 35px; }
    .royal-scroll { display: none; }
    body.royal-v2 .realm-strip { width: calc(100% - 24px); margin-top: -28px; grid-template-columns: repeat(2,1fr); border-radius: 21px; }
    body.royal-v2 .realm-stat { min-height: 112px; border-top: 1px solid rgba(190,123,153,.14); }
    body.royal-v2 .realm-stat:nth-child(even) { border-left: 0; }
    body.royal-v2 .section-shell { width: calc(100% - 28px); }
    body.royal-v2 .portal-section { padding-block: 90px; }
    body.royal-v2 .section-heading { display: block; }
    body.royal-v2 .section-heading > div { margin-bottom: 18px; }
    body.royal-v2 .section-heading h2 { margin-bottom: 18px; }
    body.royal-v2 .portal-grid { grid-template-columns: 1fr; }
    body.royal-v2 .portal-card { min-height: 142px; padding: 21px; grid-template-columns: 56px minmax(0,1fr) 38px; gap: 14px; border-radius: 19px; }
    body.royal-v2 .portal-card .portal-glyph { width: 55px; height: 55px; border-radius: 17px; }
    body.royal-v2 .portal-card .portal-copy h3 { font-size: 20px; }
    body.royal-v2 .world-showcase { min-height: auto; padding-block: 75px; }
    body.royal-v2 .world-copy { padding: 28px 23px; border-radius: 22px; }
    body.royal-v2 .feature-card { padding: 22px; grid-template-columns: 42px 1fr; gap: 14px; border-radius: 18px; }
    body.royal-v2 .chronicle-section { padding-block: 90px; }
    body.royal-v2 .ranking-panel,
    body.royal-v2 .news-panel { padding: 26px 18px; border-radius: 21px; }
    body.royal-v2 .site-footer { padding: 30px 20px; }
}

@media (max-width: 420px) {
    .royal-chips span:nth-child(2) { display: none; }
    .royal-welcome-card { padding-inline: 18px; }
    .royal-promises > div { grid-template-columns: 38px 1fr; gap: 10px; }
    .royal-promises > div > i { width: 36px; height: 36px; }
}

@media (prefers-reduced-motion: reduce) {
    .royal-sparkles i,
    .royal-live i { animation: none; }
}

/* V3 visual comfort pass — softer luminance and complete legacy-page coverage */
html { background: #e9e3e6; }
body.royal-v2 {
    color: #493b48;
    background: linear-gradient(180deg, #e4e9ec 0%, #eee6ea 38%, #eee8e4 100%);
}
body.royal-v2 .site-header,
body.royal-v2 .site-header.scrolled {
    background: linear-gradient(180deg, rgba(247,243,245,.98), rgba(239,232,236,.96));
    box-shadow: 0 11px 34px rgba(78,55,71,.12);
}
.royal-hero::after { background: linear-gradient(180deg, transparent, #e9e3e6 90%); }
.royal-hero-backdrop { filter: saturate(.88) brightness(.91) contrast(.96); }
.royal-hero-backdrop::before {
    background: linear-gradient(90deg, rgba(232,226,231,.22), rgba(229,222,227,.06) 44%, rgba(223,217,224,.14)), linear-gradient(180deg, rgba(90,137,171,.06), transparent 62%, rgba(233,226,230,.78));
}
.royal-brand-column {
    border-color: rgba(255,255,255,.48);
    background: radial-gradient(circle at 50% 38%, rgba(249,246,247,.96), rgba(241,235,239,.88) 56%, rgba(233,227,232,.84));
    box-shadow: 0 24px 54px rgba(76,57,72,.15), inset 0 1px rgba(255,255,255,.72);
}
.royal-welcome-card {
    background: radial-gradient(circle at 85% 8%, rgba(240,211,221,.66), transparent 34%), linear-gradient(145deg, rgba(249,246,247,.98), rgba(238,231,235,.97));
    box-shadow: 0 26px 62px rgba(83,55,75,.2), inset 0 0 0 7px rgba(255,255,255,.44), inset 0 0 0 9px rgba(205,139,163,.14);
}
.royal-chips span,
.royal-promises > div > i,
.royal-secondary,
.royal-scroll span { background-color: #f4eef1; }
body.royal-v2 .realm-strip {
    background: linear-gradient(135deg, rgba(247,243,245,.98), rgba(236,228,233,.97));
    box-shadow: 0 22px 58px rgba(78,55,71,.14), inset 0 1px rgba(255,255,255,.72);
}
body.royal-v2 .portal-card,
body.royal-v2 .portal-card-main {
    background: radial-gradient(circle at 100% 0, rgba(234,207,216,.55), transparent 38%), linear-gradient(145deg, #f7f2f4, #ece5e9);
    box-shadow: 0 17px 38px rgba(78,55,71,.11), inset 0 1px rgba(255,255,255,.72);
}
body.royal-v2 .world-showcase { background: #e5e9eb; }
body.royal-v2 .world-image {
    background: linear-gradient(90deg, rgba(235,229,232,.97) 0%, rgba(233,227,230,.88) 38%, rgba(228,223,227,.44) 72%, rgba(225,221,225,.3)), linear-gradient(180deg, #ebe5e8, transparent 20%, transparent 76%, #ebe5e8), url('../grand-fantasia-world.jpg') center / cover no-repeat;
    filter: saturate(.72) brightness(.92);
}
body.royal-v2 .world-copy,
body.royal-v2 .feature-card {
    background: rgba(244,239,242,.93);
    box-shadow: 0 20px 48px rgba(72,53,67,.12), inset 0 1px rgba(255,255,255,.72);
}
body.royal-v2 .chronicle-section::before {
    background: radial-gradient(circle at 12% 20%, rgba(224,196,206,.34), transparent 31%), radial-gradient(circle at 87% 82%, rgba(190,215,223,.38), transparent 29%), linear-gradient(180deg, #ebe4e8, #e3e9ec);
}
body.royal-v2 .ranking-panel,
body.royal-v2 .news-panel,
body.royal-v2 .news-feature {
    background: linear-gradient(145deg, rgba(247,243,245,.98), rgba(235,229,233,.97));
}
body.royal-v2 .community-section {
    background: radial-gradient(circle at 15% 30%, rgba(151,134,183,.15), transparent 31%), radial-gradient(circle at 85% 65%, rgba(106,171,193,.14), transparent 33%), linear-gradient(145deg, #e7e2ea, #e2e9ec);
}
body.royal-v2 .discord-shell { background: #f3eef1; }
body.royal-v2 .final-cta {
    background: radial-gradient(circle at 50% 46%, rgba(246,242,244,.82), transparent 29%), radial-gradient(circle at 50% 55%, rgba(215,135,163,.12), transparent 38%), linear-gradient(180deg, #e2e9ec, #ece0e5);
}
body.royal-v2 .site-footer { background: linear-gradient(180deg, #eee7ea, #e4dcdf); }

/* Public rankings, downloads and alchemy must not inherit the former dark scene. */
body.royal-v2:not(.celestial-home) {
    color: #4d3e4b;
    background: linear-gradient(180deg, #e2e7ea 0%, #ede5e9 45%, #ebe6e2 100%);
}
body.royal-v2:not(.celestial-home)::before {
    background: linear-gradient(90deg, rgba(231,225,229,.94), rgba(235,230,233,.72), rgba(226,221,225,.86)), url('../pastel-kingdom-hero.png') 68% center / cover no-repeat;
    opacity: .2;
}
body.royal-v2 .public-page {
    color: #4d3e4b;
    background: linear-gradient(180deg, rgba(225,229,232,.9), rgba(237,229,233,.97) 58%, #eae4e1) !important;
}
body.royal-v2 .public-page::before,
body.royal-v2 .public-page::after { content: none !important; display: none !important; }
body.royal-v2 .public-page-head h1 { color: #493a4a; }
body.royal-v2 .public-page-head p { color: #685866; }
body.royal-v2 .ranking-switcher {
    border-color: rgba(137,96,119,.25);
    color: #4f3f4c;
    background: radial-gradient(circle at 12% 0, rgba(225,178,195,.22), transparent 29%), linear-gradient(145deg, #e8dfe4, #dce4e8);
    box-shadow: 0 15px 34px rgba(70,52,65,.14), inset 0 1px rgba(255,255,255,.62);
}
body.royal-v2 .ranking-switcher::before { background: linear-gradient(90deg, transparent, #d6779b, #d5a849, #5cacc8, transparent); }
body.royal-v2 .ranking-switcher a {
    border-color: rgba(117,86,104,.13);
    color: #5f4d59;
    background: rgba(246,242,244,.68);
}
body.royal-v2 .ranking-switcher a::before {
    border-color: rgba(65,135,161,.24);
    color: #357e99;
    background: #e8f3f6;
}
body.royal-v2 .ranking-switcher a:hover {
    border-color: rgba(181,74,115,.28);
    color: #8f3459;
    background: #f4e7ec;
    box-shadow: 0 9px 20px rgba(72,49,63,.12);
}
body.royal-v2 .ranking-switcher a.active {
    border-color: rgba(187,92,126,.38);
    color: #843251;
    background: linear-gradient(145deg, #f2dfe6, #e5e8e8);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.45), 0 8px 22px rgba(78,51,67,.13);
}
body.royal-v2 .ranking-switcher a.active::before {
    border-color: rgba(186,87,124,.34);
    color: #a13d63;
    background: #f4dfe7;
    box-shadow: none;
}
body.royal-v2 .public-panel,
body.royal-v2 .public-download-card,
body.royal-v2 .public-download-hero,
body.royal-v2 .alchemy-panel,
body.royal-v2 .alchemy-info-card {
    color: #4d3e4b;
    background: linear-gradient(145deg, #f6f2f4, #eae4e7) !important;
    box-shadow: 0 18px 42px rgba(73,52,66,.13), inset 0 1px rgba(255,255,255,.72) !important;
}
body.royal-v2 .public-ranking th { color: #2f7189; background: #ddecef; }
body.royal-v2 .public-ranking td { color: #4f404e; }
body.royal-v2 .public-ranking tbody tr:hover { background: #eee0e6; }
body.royal-v2 .public-site-footer { color: #6f5b67; background: #e2dadd; }

@media (max-width: 760px) {
    body.royal-v2 { overflow-x: hidden; }
    body.royal-v2 .final-cta h2 { max-width: 100%; overflow-wrap: anywhere; }
    body.royal-v2 .final-cta h2 br { display: none; }
}

/* V4 text clarity across home and public service pages */
body.royal-v2 {
    color: #3b3038;
    font-weight: 500;
    -webkit-font-smoothing: auto;
    -moz-osx-font-smoothing: auto;
    text-rendering: optimizeLegibility;
}
body.royal-v2 :where(h1,h2,h3,h4,p,a,label,button,th,td,input,select,textarea,small,span,b,strong,em) {
    text-shadow: none !important;
}
body.royal-v2 .main-nav a { color: #493943; font-weight: 800; }
body.royal-v2 .royal-brand-lead,
body.royal-v2 .royal-card-copy,
body.royal-v2 .royal-promises small,
body.royal-v2 .section-heading > p,
body.royal-v2 .portal-card .portal-copy p,
body.royal-v2 .world-copy > p:not(.kicker),
body.royal-v2 .feature-card p,
body.royal-v2 .news-feature p,
body.royal-v2 .community-copy > p:not(.kicker),
body.royal-v2 .final-cta > p:not(.kicker) { color: #493d45; font-weight: 600; opacity: 1; }
body.royal-v2 .royal-promises b,
body.royal-v2 .portal-card .portal-copy h3,
body.royal-v2 .feature-card h3,
body.royal-v2 .panel-head h2,
body.royal-v2 .news-feature h3,
body.royal-v2 .news-row h3 { color: #392d35; font-weight: 800; }
body.royal-v2 .public-page { color: #3b3038; }
body.royal-v2 .public-page-head h1 { color: #3b2f3a; font-weight: 800; }
body.royal-v2 .public-page-head p,
body.royal-v2 .public-download-copy p,
body.royal-v2 .public-download-card span,
body.royal-v2 .public-download-card small { color: #564650 !important; font-weight: 600; opacity: 1; }
body.royal-v2 .ranking-switcher a { color: #4c3d46; font-weight: 800; }
body.royal-v2 .public-ranking th { color: #285f73; font-size: 13px; font-weight: 800; opacity: 1; }
body.royal-v2 .public-ranking td { color: #3c3037; font-size: 15px; font-weight: 600; opacity: 1; }
body.royal-v2 .public-ranking td small { color: #5e4b56; font-weight: 600; opacity: 1; }
body.royal-v2 input,
body.royal-v2 select,
body.royal-v2 textarea { color: #2f252b; font-weight: 700; opacity: 1; }
body.royal-v2 input::placeholder,
body.royal-v2 textarea::placeholder { color: #74616c; font-weight: 600; opacity: 1; }

/* V5 theme switch and ranking contrast fixes */
body.royal-v2 .theme-toggle {
    min-width: 112px;
    min-height: 44px;
    padding: 7px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 0 0 auto;
    border: 1px solid rgba(117,82,101,.26);
    border-radius: 999px;
    color: #493843;
    background: linear-gradient(145deg, #f8f3f5, #e3e9eb);
    box-shadow: 0 7px 18px rgba(77,52,67,.11), inset 0 1px rgba(255,255,255,.7);
    font: 800 12px/1.2 var(--royal-font);
    cursor: pointer;
}
body.royal-v2 .theme-toggle:hover { border-color: rgba(177,70,112,.38); color: #8f3458; transform: translateY(-1px); }
body.royal-v2 .theme-toggle-icon { font-size: 18px; line-height: 1; }

/* These child selectors previously kept the old pale dark-theme colors. */
body.royal-v2 .wealth-coins b { color: #352a31 !important; font-weight: 800; }
body.royal-v2 .public-online-hours { color: #1f6680 !important; font-size: 16px; font-weight: 800; }
body.royal-v2 .public-online-status {
    border-color: rgba(75,91,108,.25);
    color: #556372;
    background: #e5e8eb;
}
body.royal-v2 .public-online-status.is-online {
    border-color: rgba(42,130,83,.34);
    color: #236d46;
    background: #dff0e6;
    box-shadow: none;
}

html[data-theme="dark"] { color-scheme: dark; background: #080c14; }
html[data-theme="dark"] body.royal-v2 {
    --royal-ink: #f2eaf0;
    --royal-deep: #ffffff;
    --royal-muted: #c4b6c0;
    --royal-line: rgba(232,158,188,.22);
    color: #f1eaf0;
    background: linear-gradient(180deg, #0b111d 0%, #12121c 48%, #0c1118 100%);
}
html[data-theme="dark"] body.royal-v2 .site-header,
html[data-theme="dark"] body.royal-v2 .site-header.scrolled {
    border-bottom-color: rgba(230,126,166,.24);
    color: #f4eaf0;
    background: linear-gradient(180deg, rgba(14,18,29,.98), rgba(10,14,23,.96));
    box-shadow: 0 12px 36px rgba(0,0,0,.38);
}
html[data-theme="dark"] body.royal-v2 .main-nav a { color: #e5d9e1 !important; }
html[data-theme="dark"] body.royal-v2 .main-nav a:hover,
html[data-theme="dark"] body.royal-v2 .main-nav a.active { color: #ff92b8 !important; }
html[data-theme="dark"] body.royal-v2 .theme-toggle {
    border-color: rgba(111,195,224,.28);
    color: #f6edf3;
    background: linear-gradient(145deg, #22293a, #141a28);
    box-shadow: 0 8px 20px rgba(0,0,0,.32), inset 0 1px rgba(255,255,255,.06);
}
html[data-theme="dark"] body.royal-v2 .member-button { border-color: rgba(241,154,187,.42); color: #fff; background: linear-gradient(135deg, #7d3857, #b94c75 55%, #d46991); }
html[data-theme="dark"] body.royal-v2 .member-button small { color: #ffe3ed; }

html[data-theme="dark"] body.royal-v2 .royal-hero::after { background: linear-gradient(180deg, transparent, #0d111a 90%); }
html[data-theme="dark"] body.royal-v2 .royal-hero-backdrop { filter: saturate(.72) brightness(.47) contrast(1.04); }
html[data-theme="dark"] body.royal-v2 .royal-hero-backdrop::before { background: linear-gradient(90deg, rgba(5,9,18,.35), rgba(6,10,18,.06) 48%, rgba(6,8,16,.28)), linear-gradient(180deg, rgba(12,22,35,.14), transparent 55%, #0d111a); }
html[data-theme="dark"] body.royal-v2 .royal-brand-column,
html[data-theme="dark"] body.royal-v2 .royal-welcome-card,
html[data-theme="dark"] body.royal-v2 .realm-strip,
html[data-theme="dark"] body.royal-v2 .portal-card,
html[data-theme="dark"] body.royal-v2 .portal-card-main,
html[data-theme="dark"] body.royal-v2 .world-copy,
html[data-theme="dark"] body.royal-v2 .feature-card,
html[data-theme="dark"] body.royal-v2 .ranking-panel,
html[data-theme="dark"] body.royal-v2 .news-panel,
html[data-theme="dark"] body.royal-v2 .news-feature,
html[data-theme="dark"] body.royal-v2 .discord-shell {
    border-color: rgba(224,137,172,.22);
    color: #f2eaf0;
    background: linear-gradient(145deg, rgba(28,31,45,.97), rgba(15,20,31,.98));
    box-shadow: 0 20px 48px rgba(0,0,0,.34), inset 0 1px rgba(255,255,255,.05);
}
html[data-theme="dark"] body.royal-v2 .royal-chips span,
html[data-theme="dark"] body.royal-v2 .royal-promises > div > i,
html[data-theme="dark"] body.royal-v2 .royal-secondary,
html[data-theme="dark"] body.royal-v2 .royal-scroll span { color: #eee5eb; background-color: #252938; }
html[data-theme="dark"] body.royal-v2 .world-showcase { background: #101620; }
html[data-theme="dark"] body.royal-v2 .world-image { filter: saturate(.58) brightness(.52); }
html[data-theme="dark"] body.royal-v2 .chronicle-section::before { background: radial-gradient(circle at 12% 20%, rgba(159,67,103,.13), transparent 31%), radial-gradient(circle at 87% 82%, rgba(56,130,157,.16), transparent 29%), linear-gradient(180deg, #11141e, #0a111b); }
html[data-theme="dark"] body.royal-v2 .community-section { background: radial-gradient(circle at 15% 30%, rgba(151,109,191,.13), transparent 31%), radial-gradient(circle at 85% 65%, rgba(65,143,170,.15), transparent 33%), linear-gradient(145deg, #11141f, #0b151d); }
html[data-theme="dark"] body.royal-v2 .final-cta { background: radial-gradient(circle at 50% 50%, rgba(188,72,115,.13), transparent 38%), linear-gradient(180deg, #0b151d, #15101a); }
html[data-theme="dark"] body.royal-v2 .site-footer { color: #c0b3bd; background: linear-gradient(180deg, #11131c, #090d14); }
html[data-theme="dark"] body.royal-v2 .royal-brand-column h1,
html[data-theme="dark"] body.royal-v2 .royal-welcome-card h2,
html[data-theme="dark"] body.royal-v2 .royal-promises b,
html[data-theme="dark"] body.royal-v2 .section-heading h2,
html[data-theme="dark"] body.royal-v2 .portal-card .portal-copy h3,
html[data-theme="dark"] body.royal-v2 .feature-card h3,
html[data-theme="dark"] body.royal-v2 .panel-head h2,
html[data-theme="dark"] body.royal-v2 .news-feature h3,
html[data-theme="dark"] body.royal-v2 .news-row h3 { color: #fff7fb !important; }
html[data-theme="dark"] body.royal-v2 .royal-brand-lead,
html[data-theme="dark"] body.royal-v2 .royal-card-copy,
html[data-theme="dark"] body.royal-v2 .royal-promises small,
html[data-theme="dark"] body.royal-v2 .section-heading > p,
html[data-theme="dark"] body.royal-v2 .portal-card .portal-copy p,
html[data-theme="dark"] body.royal-v2 .world-copy > p:not(.kicker),
html[data-theme="dark"] body.royal-v2 .feature-card p,
html[data-theme="dark"] body.royal-v2 .news-feature p,
html[data-theme="dark"] body.royal-v2 .community-copy > p:not(.kicker),
html[data-theme="dark"] body.royal-v2 .final-cta > p:not(.kicker) { color: #d1c4cc !important; }
html[data-theme="dark"] body.royal-v2 .royal-secondary { border-color: rgba(94,183,215,.3); color: #bfeafa; background: #202a37 !important; box-shadow: 0 10px 24px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.05); }
html[data-theme="dark"] body.royal-v2 .royal-secondary small { color: #aabec8 !important; }

html[data-theme="dark"] body.royal-v2:not(.celestial-home) { color: #eee7ec; background: #090e17; }
html[data-theme="dark"] body.royal-v2:not(.celestial-home)::before { background: linear-gradient(90deg, rgba(6,10,18,.96), rgba(11,16,25,.84), rgba(7,11,19,.92)), url('../pastel-kingdom-hero.png') 68% center / cover no-repeat; opacity: .56; }
html[data-theme="dark"] body.royal-v2 .public-page { color: #eee7ec; background: linear-gradient(180deg, rgba(9,14,23,.94), rgba(16,17,26,.98) 58%, #0a1018) !important; }
html[data-theme="dark"] body.royal-v2 .public-page-head h1 { color: #fff5fb !important; }
html[data-theme="dark"] body.royal-v2 .public-page-head p,
html[data-theme="dark"] body.royal-v2 .public-download-copy p,
html[data-theme="dark"] body.royal-v2 .public-download-card span,
html[data-theme="dark"] body.royal-v2 .public-download-card small { color: #c9bcc5 !important; }
html[data-theme="dark"] body.royal-v2 .ranking-switcher { border-color: rgba(108,184,211,.22); color: #eee7ec; background: linear-gradient(145deg, #171e2c, #0d1521); box-shadow: 0 15px 36px rgba(0,0,0,.34); }
html[data-theme="dark"] body.royal-v2 .ranking-switcher a { border-color: rgba(120,169,191,.14); color: #d6cad2; background: rgba(30,40,54,.76); }
html[data-theme="dark"] body.royal-v2 .ranking-switcher a::before { border-color: rgba(83,173,205,.28); color: #83d7f2; background: #182c38; }
html[data-theme="dark"] body.royal-v2 .ranking-switcher a:hover,
html[data-theme="dark"] body.royal-v2 .ranking-switcher a.active { border-color: rgba(223,102,149,.4); color: #ffc1d7; background: linear-gradient(145deg, #36212e, #182630); }
html[data-theme="dark"] body.royal-v2 .public-panel,
html[data-theme="dark"] body.royal-v2 .public-download-card,
html[data-theme="dark"] body.royal-v2 .public-download-hero,
html[data-theme="dark"] body.royal-v2 .alchemy-panel,
html[data-theme="dark"] body.royal-v2 .alchemy-info-card { border-color: rgba(104,177,204,.2); color: #eee7ec; background: linear-gradient(145deg, #18202d, #0d1420) !important; box-shadow: 0 18px 42px rgba(0,0,0,.34) !important; }
html[data-theme="dark"] body.royal-v2 .public-ranking th { color: #9ee1f4 !important; background: #172d3a; }
html[data-theme="dark"] body.royal-v2 .public-ranking td { color: #eee7ec !important; border-bottom-color: rgba(180,200,216,.11); }
html[data-theme="dark"] body.royal-v2 .public-ranking td small { color: #b6a9b2 !important; }
html[data-theme="dark"] body.royal-v2 .public-ranking tbody tr:hover { background: #241c27; }
html[data-theme="dark"] body.royal-v2 .wealth-coins b { color: #fff7fb !important; }
html[data-theme="dark"] body.royal-v2 .public-online-hours { color: #8edfff !important; }
html[data-theme="dark"] body.royal-v2 .public-online-status { border-color: rgba(157,174,194,.28); color: #c7d0dc; background: #202835; }
html[data-theme="dark"] body.royal-v2 .public-online-status.is-online { border-color: rgba(81,224,164,.38); color: #8ff0c2; background: rgba(40,177,125,.15); }
html[data-theme="dark"] body.royal-v2 .public-site-footer { color: #b8abb4; background: #0a0f17; }
html[data-theme="dark"] body.royal-v2 input,
html[data-theme="dark"] body.royal-v2 select,
html[data-theme="dark"] body.royal-v2 textarea { border-color: rgba(126,181,203,.24); color: #f5edf2 !important; background: #111926; }
html[data-theme="dark"] body.royal-v2 input::placeholder,
html[data-theme="dark"] body.royal-v2 textarea::placeholder { color: #afa2ab !important; }

@media (max-width: 1260px) {
    body.royal-v2 .theme-toggle { min-width: 44px; width: 44px; padding-inline: 0; }
    body.royal-v2 .theme-toggle-label { display: none; }
}
@media (max-width: 760px) {
    body.royal-v2 .theme-toggle { width: 42px; min-width: 42px; min-height: 42px; }
    body.royal-v2 .section-heading h2 { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
}
