/* Season 2 menu system. Illustrated artwork with accessible text overlays.
   Shared button chrome and public navigation; no event-field/layout or admin overrides. */
.season2-public .s2-art-button, .season2-public .s2-art-promo { position:relative; isolation:isolate; overflow:hidden; background:#081719; border:1px solid #b39052; border-radius:8px; }
.season2-public .season2-cta.s2-art-button { display:flex; min-height:164px; padding:26px 24px; gap:8px; }
.season2-public .s2-button-art { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; z-index:-2; }
.season2-public .s2-art-button::after, .season2-public .s2-art-promo::after { content:''; position:absolute; inset:9px; background:linear-gradient(90deg,#04131588,transparent 78%); z-index:-1; pointer-events:none; }
.season2-public .s2-art-button .season2-cta-copy { width:72%; text-shadow:0 2px 4px #000; }
.season2-public .s2-art-button .season2-cta-copy strong { font-size:1.45rem; color:#fff3d4; }
.season2-public .s2-art-button .season2-cta-copy > span { color:#e8e2d3; }
.season2-public .s2-art-button .season2-cta-arrow { position:absolute; right:17px; bottom:13px; }
.season2-public .s2-art-promo { min-height:190px; }
.season2-public .s2-art-promo .promo-shade { display:none; }
.season2-public .s2-art-promo .promo-body { position:relative; width:75%; padding:24px; text-shadow:0 2px 4px #000; }
.season2-public .s2-art-promo .promo-body p { color:#eee6d4; }
.season2-public .s2-art-promo:hover { border-color:#ffe3a1; box-shadow:0 0 24px #c6a26033; }
.season2-public .s2-art-promo:focus-visible { outline:3px solid #ffe3a1; outline-offset:4px; }
.season2-public .wiki-world-listing .wiki-map-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
@media(max-width:1050px) { .season2-public .wiki-world-listing .wiki-map-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) { .season2-public .wiki-world-listing .wiki-map-grid { grid-template-columns:minmax(0,1fr); } }
.s2-map-card { display:flex; flex-direction:column; min-width:0; }
.s2-map-link { display:block; color:inherit; text-decoration:none; }
.s2-level-range { color:#ffdf96; font-weight:700; padding:8px 14px; }
.s2-entry-note { padding:0 14px; font-size:.8rem; color:#b9e6d0; }
.s2-monster-preview { margin:10px 14px; border-top:1px solid #b3905233; padding-top:10px; }
.s2-monster-preview summary { color:#e2cc9b; cursor:pointer; font-size:.85rem; }
.s2-monster-preview ul { list-style:none; padding:0; margin:8px 0; max-height:240px; overflow-y:auto; scrollbar-color:#b39052 #12212a; }
.s2-monster-preview li a { display:flex; gap:8px; justify-content:space-between; padding:6px 4px; color:#f0ece3; border-bottom:1px solid #ffffff0b; font-size:.82rem; text-decoration:none; }
.s2-monster-preview li a:hover { background:#d4b06a1c; }
.s2-monster-preview li span { min-width:0; overflow-wrap:anywhere; }
.s2-monster-preview li small { display:block; color:#b2bdbb; font-size:.7rem; }
.s2-monster-preview li b { white-space:nowrap; color:#dbc18b; }
.s2-map-more { margin-top:auto; padding:12px 14px; color:#edcc8d; font-size:.85rem; }
@media(max-width:600px) { .season2-public .season2-cta.s2-art-button { min-height:155px; } .season2-public .s2-art-promo .promo-body { padding:22px; } }
.season2-public .btn {
    min-height: 44px; border-image: none !important; border-radius: 11px;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.season2-public .btn:not(:disabled):not([disabled]):not([aria-disabled="true"]):hover {
    border-color: #d3b8ed; box-shadow: 0 7px 20px #05091c45, inset 0 1px #fff7e51a;
}
.season2-public .btn:focus-visible { outline: 2px solid #ddc1ff; outline-offset: 4px; }
.season2-public .btn:is(:disabled,[disabled],[aria-disabled="true"]) { cursor: not-allowed; transform: none !important; box-shadow: none; }
.season2-public .cta-row { gap: 16px; }
.season2-public .season2-cta {
    --cta-accent: #e7c58c;
    position: relative; isolation: isolate; min-width: 0;
    display: grid; grid-template-columns: 52px minmax(0, 1fr) 20px;
    align-items: center; gap: 17px; min-height: 144px; padding: 25px 24px;
    color: #f6f1e9; border: 1px solid #c4a46960; border-radius: 18px;
    background: radial-gradient(ellipse at 100% 0, #b894ec17, transparent 66%), linear-gradient(145deg, #1c2945, #111b32);
    box-shadow: 0 16px 38px #03071869, inset 0 1px 0 #fff2d215;
    transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.season2-public .season2-cta::before {
    content: ""; position: absolute; inset: 0 22px auto; height: 1px;
    background: linear-gradient(90deg, transparent, var(--cta-accent), transparent); opacity: .65;
}
.season2-public .season2-cta-download { --cta-accent: #c5a7f0; border-color: #b795e77a; background: radial-gradient(ellipse at 100% 0, #b999ef25, transparent 70%), linear-gradient(145deg, #282543, #171c37); }
.season2-public .season2-cta-shop { --cta-accent: #a5c7ef; }
.season2-public .season2-cta-icon {
    display: grid; place-items: center; width: 52px; height: 58px; color: var(--cta-accent);
    border: 1px solid #bec5e336; border-radius: 14px;
    background: linear-gradient(150deg, #ffffff0b, #ffffff02); box-shadow: inset 0 1px 0 #fff2d211;
}
.season2-public .season2-cta-icon svg { width: 27px !important; height: 27px !important; stroke-width: 1.6; }
.season2-public .season2-cta-copy { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.season2-public .season2-cta-copy small { color: var(--cta-accent); font: 600 .62rem/1.7 Tahoma, sans-serif; letter-spacing: .16em; }
.season2-public .season2-cta-copy strong { color: #fff7e9; font: 500 clamp(1.08rem, 1.55vw, 1.4rem)/1.6 "Kanit", Tahoma, sans-serif; }
.season2-public .season2-cta-copy > span { color: #b5c2d9; font-size: .79rem; line-height: 1.7; }
.season2-public .season2-cta-arrow { color: var(--cta-accent); font-size: 1.35rem; transition: transform .18s ease; }
.season2-public .season2-cta:hover { transform: translateY(-4px); border-color: var(--cta-accent); box-shadow: 0 20px 40px #0307187a, 0 0 24px #b891e913; }
.season2-public .season2-cta:hover .season2-cta-arrow { transform: translate(2px, -2px); }
.season2-public .season2-cta:focus-visible { outline: 2px solid #dec4ff; outline-offset: 5px; }

/* Main navigation keeps every original link and dropdown. */
.season2-public .mainnav { gap: 4px; }
.season2-public .mainnav > a,
.season2-public .mainnav .nav-parent { border: 1px solid transparent; border-radius: 9px; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.season2-public .mainnav > a:hover,
.season2-public .mainnav .nav-parent:hover { color: #ffe6b5; border-color: #d2b48136; background: #c5a9eb0a; }
.season2-public .mainnav > a.active,
.season2-public .mainnav .nav-parent.active { border-color: #d3b16f42; background: linear-gradient(135deg, #ddbd7117, #aa8ae917); }
.season2-public .mainnav .nav-submenu { border-radius: 12px; padding: 7px; }
.season2-public .mainnav .nav-submenu a { border-radius: 7px; }
.season2-public .nav-toggle { border-radius: 11px; background: #a590d40d; }
.season2-public .nav-toggle[aria-expanded="true"] { color: #ffe2a3; background: #d5b37318; border-color: #d5b373; }

/* Account first, then feature-gated event above gacha; existing URLs are unchanged. */
.season2-public .acc-menu { gap: 7px; }
.season2-public .acc-menu a {
    display: flex; align-items: center; gap: 11px; min-height: 48px; padding: 12px 14px;
    border: 1px solid #9caedb20; border-radius: 11px;
    color: #cbd5e9; background: #15203a80; line-height: 1.55;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.season2-public .acc-menu a svg { color: #b7a4d7; }
.season2-public .acc-menu a:hover { background: #202b476e; border-color: #c9aed45c; color: #fff2d9; }
.season2-public .acc-menu a.active { background: linear-gradient(115deg, #e0b76b1c, #b38be419); border-color: #dfbd7887; color: #ffe4af; box-shadow: inset 3px 0 #dcbc7c; }
.season2-public .acc-menu .account-menu-event { color: #f1dfbe; border-color: #c6a4e164; background: linear-gradient(115deg, #866bc523, #d0a66312); }
.season2-public .acc-menu .account-menu-event svg { color: #e5c68d; }
.season2-public .account-event-entry {
    display: flex; align-items: center; gap: 20px; padding: 25px 27px; margin-bottom: 26px;
    border: 1px solid #c4a1e55c; border-radius: 17px; color: #f2e3c8;
    background: radial-gradient(ellipse at 90% 20%, #bc9cda1b, transparent 70%), linear-gradient(115deg, #26253e, #142039);
    box-shadow: inset 0 1px #eedbc216, 0 12px 24px #02071830;
    transition: border-color .18s ease, background .18s ease;
}
.season2-public .account-event-entry:hover { border-color: #d8bded; background-color: #232645; }
.season2-public .account-event-symbol { display: grid; place-items: center; width: 58px; height: 62px; flex: 0 0 auto; color: #e8c787; border: 1px solid #c9b5893d; background: #d0b4dd0b; border-radius: 14px; }
.season2-public .account-event-symbol svg { width: 30px !important; height: 30px !important; stroke-width: 1.6; }
.season2-public .account-event-copy { display: flex; flex-direction: column; min-width: 0; gap: 3px; }
.season2-public .account-event-copy small { color: #c9b3e7; font: 600 .64rem/1.7 Tahoma, sans-serif; letter-spacing: .17em; }
.season2-public .account-event-copy strong { font: 500 1.28rem/1.6 "Kanit", Tahoma, sans-serif; color: #fff0d6; }
.season2-public .account-event-copy > span { color: #b8c4da; font-size: .88rem; }
.season2-public .account-event-action { margin-left: auto; padding: 10px 14px; white-space: nowrap; color: #e8d3a9; border: 1px solid #d1b48648; border-radius: 9px; font-size: .84rem; }
.season2-public .char-card a.btn { border-color: #c5a9dd4d; background: linear-gradient(125deg, #6e549034, #233a5540); color: #ead7f5; border-radius: 10px; }
.season2-public :is(.hero-login,.promo-body) a.btn { border-radius: 10px; }

@media (max-width: 1100px) and (min-width: 641px) {
    .season2-public .season2-cta { grid-template-columns: 42px minmax(0,1fr); gap: 13px; padding: 20px 18px; }
    .season2-public .season2-cta-icon { width: 42px; height: 50px; }
    .season2-public .season2-cta-arrow { display: none; }
    .season2-public .season2-cta-copy > span { font-size: .73rem; }
}
@media (max-width: 900px) {
    .season2-public .acc-menu .account-menu-link:first-child { grid-column: 1 / -1; }
    .season2-public .acc-menu .account-menu-event { grid-column: 1 / -1; }
    .season2-public .mainnav > a,.season2-public .mainnav .nav-parent { min-height: 46px; }
}
@media (max-width: 640px) {
    .season2-public .season2-cta { min-height: 116px; padding: 20px; gap: 17px; }
    .season2-public .season2-cta-copy strong { font-size: 1.24rem; }
    .season2-public .account-event-entry { display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 15px; padding: 20px 18px; }
    .season2-public .account-event-symbol { width: 44px; height: 52px; }
    .season2-public .account-event-symbol svg { width: 25px !important; height: 25px !important; }
    .season2-public .account-event-copy { flex: 1; }
    .season2-public .account-event-copy strong { font-size: 1.1rem; }
    .season2-public .account-event-copy > span { font-size: .81rem; }
    .season2-public .account-event-action { grid-column: 2; margin: 0; justify-self: start; }
    .season2-public .acc-menu a { padding: 12px 10px; gap: 8px; font-size: .84rem; }
}
@media (prefers-reduced-motion: reduce) {
    .season2-public .season2-cta,
    .season2-public .season2-cta-arrow,
    .season2-public .account-event-entry { transition: none; transform: none !important; }
}
