/* Unmodified official Pretendard v1.3.9 variable font.
   The real 45-930 weight axis serves every text role from one cached file. */
@font-face {
    font-family: "Pretendard Variable";
    src: url("../fonts/pretendard/PretendardVariable.woff2?v=1.3.9") format("woff2");
    font-style: normal;
    font-weight: 45 930;
    font-display: swap;
}

/* Artwork captions remain part of the MaruBuri image typography even when
   they are accessible HTML overlays. Load these faces only when rendered. */
@font-face {
    font-family: "MaruBuri";
    src: url("../fonts/maruburi/MaruBuri-SemiBold.woff2?v=20260929") format("woff2");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: "MaruBuri";
    src: url("../fonts/maruburi/MaruBuri-Bold.woff2?v=20260929") format("woff2");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

body:is(.reference-body, .reference-error-body, .gold-typography, [data-gold-typography]) {
    --gold-font-family: "Pretendard Variable", sans-serif;
    font-weight: 500;
}

/* The retained reference stylesheet assigns a family to every element, and
   some legacy titles and inline content assign their own family. Override only
   text families; keep the established size, colors, and text shadows.
   Body copy uses 500, navigation uses 600, and headings/buttons keep 700.
   Icon elements and their pseudo-elements retain their dedicated icon fonts. */
body:is(.reference-body, .reference-error-body, .gold-typography, [data-gold-typography]),
body:is(.reference-body, .reference-error-body, .gold-typography, [data-gold-typography]) :where(*):not(:where(
    .fa, .fas, .far, .fab, .fal, .fad, .fat,
    .fa-solid, .fa-regular, .fa-brands, .fa-light, .fa-duotone, .fa-thin,
    .iconfont, .icofont, .glyphicon, .material-icons, .material-symbols-outlined,
    [class^="iconfont-"], [class*=" iconfont-"],
    [class^="icofont-"], [class*=" icofont-"]
)) {
    font-family: var(--gold-font-family) !important;
    font-synthesis: none;
}

body:is(.reference-body, .reference-error-body, .gold-typography, [data-gold-typography]) :is(input, textarea)::placeholder {
    font-family: var(--gold-font-family);
    font-synthesis: none;
}

/* Standalone alert pages have no reference reset; controls inherit the same
   500 baseline while component headings keep their existing emphasis. */
body:is(.reference-error-body, .gold-typography, [data-gold-typography]) :where(button, input, select, textarea, option) {
    font-weight: inherit;
}

/* SweetAlert supplies explicit 300/400/500 values for these text roles. */
body:is(.reference-body, .reference-error-body, .gold-typography, [data-gold-typography]) :is(
    .swal2-html-container, .swal2-content, .swal2-validation-message
) {
    font-weight: 500;
}

body:is(.reference-body, .reference-error-body, .gold-typography, [data-gold-typography]) :is(.swal2-styled, .swal2-title),
body.gold-typography h1.headline {
    font-weight: 700;
}

/* Small navigation labels stay one step above body text without changing
   the established 700-weight black action buttons. */
body.reference-body .top_right_box > a.mg_link,
body.reference-body #quickFoot a p,
body.reference-body .pui_btn_box a,
body.reference-body #reference-slot-dialog .slot_games li span.slot_ttl,
body.reference-body .reference-nball .nball_periods a span {
    font-weight: 600;
}

/* Give the narrow sidebar labels enough pixels for clear letter shapes.
   Keep the existing 40px sports rows, three-column links and icon dimensions. */
body.reference-body .snb_left .reference-sports-shortcuts .btn_snb_sp {
    align-items: center;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    letter-spacing: .015em;
}

body.reference-body .snb_left .reference-sports-shortcuts .snb_sp_name {
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    letter-spacing: .015em;
}

body.reference-body .snb_left > .left_ttl {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .01em;
}

body.reference-body .snb_left .reference-left-grid li > a {
    font-size: 13px;
    letter-spacing: .01em;
}

body.reference-body .snb_left .reference-left-grid li > a:not(.btn_gray) {
    font-weight: 600;
}

/* Visual-role exceptions to the site font: card artwork titles, hover artwork
   titles/actions, and labels composited over mobile artwork. */
body.reference-body.reference-home .gold-game-caption,
body.reference-body.reference-home .gold-game-caption :where(*):not(:where(
    svg, svg *, .fa, .fas, .far, .fab, .fal, .fad, .fat,
    .fa-solid, .fa-regular, .fa-brands, .fa-light, .fa-duotone, .fa-thin,
    .iconfont, .icofont, .glyphicon, .material-icons, .material-symbols-outlined,
    [class^="iconfont-"], [class*=" iconfont-"],
    [class^="icofont-"], [class*=" icofont-"]
)),
body.reference-body.reference-home .main_middle_box .hoverb .mmb_in_ttl,
body.reference-body.reference-home .main_middle_box .hoverb .mmb_in_btn,
body.reference-body.reference-home .reference-mobile-menu-label {
    font-family: "MaruBuri", serif !important;
    font-weight: 700;
    font-synthesis: none;
}

body.reference-body.reference-home .gold-game-caption > span,
body.reference-body.reference-home .gold-game-caption small {
    font-weight: 600;
}

/* The SPIN/START lettering is composited onto the roulette button artwork. */
body.reference-body .roulette_btn .roulette-button-label,
body.reference-body .roulette_btn .roulette-button-label > span {
    font-family: "MaruBuri", serif !important;
    font-weight: 600;
    font-synthesis: none;
}

/* Standalone helper alerts load this file without the site theme or dialogs.
   Keep their action states aligned with gold-dialogs.css. Theme token fallbacks
   match gold-theme.css; the reference shell continues to use its own rules. */
body[data-gold-typography]:not(.reference-body) .swal2-popup {
    background: linear-gradient(134deg, #3F3F3F 0px, #101010 5%, rgba(28,28,28,.68) 30%, rgba(0,0,0,.45) 50%, rgba(41,41,41,.59) 70%, #101010 95%, #3F3F3F);
    color: #fff;
    box-shadow: inset 0 0 0 1px #212121, 0 15px 40px rgba(0,0,0,.5);
}
body[data-gold-typography]:not(.reference-body) :is(.swal2-title, .swal2-html-container) {
    color: #fff;
}
body[data-gold-typography]:not(.reference-body) .swal2-container.swal2-backdrop-show {
    background: rgba(0,0,0,.6);
}
body[data-gold-typography]:not(.reference-body) :is(.swal2-confirm, .swal2-cancel, .swal2-deny, .swal2-close) {
    --standalone-alert-surface: var(--gold-action-surface, linear-gradient(105deg, rgba(82,48,16,.14) 0%, rgba(255,236,190,.08) 34%, rgba(255,244,207,.38) 66%, rgba(105,67,23,.10) 100%));
    --standalone-alert-base: var(--gold-action-base, #c39d5d);
    --standalone-alert-hover: var(--gold-action-hover, #d6b579);
    --standalone-alert-active: var(--gold-action-active, #af874b);
    --standalone-alert-border: var(--gold-action-border, #98713c);
    --standalone-alert-hover-border: var(--gold-action-hover-border, #b4935b);
    --standalone-alert-ink: var(--gold-action-ink, #241b0d);
    --standalone-alert-shadow: var(--gold-small-shadow, inset 0 1px 0 rgba(255,247,224,.24), 0 1px 2px rgba(0,0,0,.22));
    --standalone-alert-hover-shadow: inset 0 1px 0 rgba(255,247,224,.34), 0 2px 4px rgba(0,0,0,.25);
    --standalone-alert-disabled-base: #897b61;
    --standalone-alert-disabled-border: #6e624e;
    --standalone-alert-disabled-ink: #393126;
    background: var(--standalone-alert-surface) var(--standalone-alert-base);
    border-color: var(--standalone-alert-border);
    color: var(--standalone-alert-ink);
    text-shadow: none;
    box-shadow: var(--standalone-alert-shadow);
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 300ms ease;
}
body[data-gold-typography]:not(.reference-body) .swal2-confirm {
    font-weight: 700;
}
body[data-gold-typography]:not(.reference-body) .swal2-cancel {
    --standalone-alert-surface: linear-gradient(110deg, rgba(255,238,202,.04), rgba(0,0,0,.08));
    --standalone-alert-base: var(--gold-control-dark, #24201a);
    --standalone-alert-hover: var(--gold-control-dark-hover, #383025);
    --standalone-alert-active: var(--gold-control-dark-active, #1c1914);
    --standalone-alert-border: var(--gold-control-dark-border, #6f5836);
    --standalone-alert-ink: var(--gold-control-light-ink, #f1dfb8);
    --standalone-alert-shadow: inset 0 1px 0 rgba(255,241,207,.06), 0 1px 3px rgba(0,0,0,.25);
    --standalone-alert-hover-shadow: inset 0 1px 0 rgba(255,241,207,.12), 0 2px 4px rgba(0,0,0,.25);
    --standalone-alert-disabled-base: #29251f;
    --standalone-alert-disabled-ink: #9c9180;
}
body[data-gold-typography]:not(.reference-body) .swal2-deny {
    --standalone-alert-surface: linear-gradient(110deg, rgba(255,231,210,.08), rgba(0,0,0,.10));
    --standalone-alert-base: #854643;
    --standalone-alert-hover: #985552;
    --standalone-alert-active: #6e3633;
    --standalone-alert-border: #78413c;
    --standalone-alert-hover-border: #b07268;
    --standalone-alert-ink: #fff0e5;
    --standalone-alert-disabled-base: #574541;
    --standalone-alert-disabled-border: #634e46;
    --standalone-alert-disabled-ink: #b7a49b;
}
body[data-gold-typography]:not(.reference-body) .swal2-close {
    --standalone-alert-surface: none;
    --standalone-alert-base: transparent;
    --standalone-alert-hover: var(--gold-control-dark-hover, #383025);
    --standalone-alert-active: var(--gold-control-dark-active, #1c1914);
    --standalone-alert-border: transparent;
    --standalone-alert-hover-border: transparent;
    --standalone-alert-ink: var(--gold-control-light-ink, #f1dfb8);
    --standalone-alert-shadow: none;
    --standalone-alert-hover-shadow: inset 0 0 0 1px rgba(219,190,137,.28);
    --standalone-alert-disabled-base: transparent;
    --standalone-alert-disabled-border: transparent;
    --standalone-alert-disabled-ink: #887e6e;
}
body[data-gold-typography]:not(.reference-body) :is(.swal2-confirm, .swal2-cancel, .swal2-deny, .swal2-close):is(:hover, :focus-visible):not(:disabled):not([aria-disabled="true"]) {
    background: var(--standalone-alert-surface) var(--standalone-alert-hover);
    border-color: var(--standalone-alert-hover-border);
    color: var(--standalone-alert-ink);
    text-shadow: none;
    box-shadow: var(--standalone-alert-hover-shadow);
}
body[data-gold-typography]:not(.reference-body) :is(.swal2-confirm, .swal2-cancel, .swal2-deny, .swal2-close):active:not(:disabled):not([aria-disabled="true"]) {
    background: var(--standalone-alert-surface) var(--standalone-alert-active);
    border-color: var(--standalone-alert-border);
    color: var(--standalone-alert-ink);
    box-shadow: inset 0 2px 3px rgba(34,24,12,.28);
}
body[data-gold-typography]:not(.reference-body) :is(.swal2-confirm, .swal2-cancel, .swal2-deny, .swal2-close):focus-visible {
    outline: 2px solid #ead3a8;
    outline-offset: 2px;
}
body[data-gold-typography]:not(.reference-body) :is(.swal2-confirm, .swal2-cancel, .swal2-deny, .swal2-close):is(:disabled, [aria-disabled="true"]) {
    background: var(--standalone-alert-surface) var(--standalone-alert-disabled-base);
    border-color: var(--standalone-alert-disabled-border);
    color: var(--standalone-alert-disabled-ink);
    text-shadow: none;
    opacity: 1;
    box-shadow: none;
    cursor: not-allowed;
}
@media (prefers-reduced-motion: reduce) {
    body[data-gold-typography]:not(.reference-body) :is(.swal2-confirm, .swal2-cancel, .swal2-deny, .swal2-close) {
        transition: none;
    }
}
