/* Reserved placements only. Activating ads requires an explicit later release. */
.riki-ad-slot{box-sizing:border-box;border:1px dashed #dae4f3;border-radius:18px;background:#f8faff;color:#7b8ca8;font:400 11px/1.6 Arial,"Malgun Gothic",sans-serif;text-align:center}
.riki-ad-slot .riki-ad-label{display:block;color:inherit;font:inherit;letter-spacing:0}
.riki-ad-inline{display:flex;min-height:112px;flex-direction:column;align-items:center;justify-content:center;gap:12px;margin:12px 0 36px;padding:16px}
.riki-ad-inline .riki-ad-content{width:100%;max-width:970px}
.riki-ad-inline[data-ad-status="reserved"] .riki-ad-content{display:none}
.riki-ad-inline[data-ad-status="active"]{min-height:300px;justify-content:flex-start}
.riki-ad-inline[data-ad-status="active"] .riki-ad-content{min-height:250px}
.riki-ad-rails{display:none;position:fixed;inset:144px 0 auto;z-index:0;pointer-events:none}
.riki-ad-rails[hidden]{display:none!important}
.riki-ad-rail{position:absolute;top:0;width:160px;height:240px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:12px;pointer-events:none}
.riki-ad-rail--left{left:calc(50% - 872px)}
.riki-ad-rail--right{right:calc(50% - 872px)}
.riki-ad-rail[data-ad-status="active"]{height:636px;justify-content:flex-start;gap:8px;padding:10px 0}
.riki-ad-rail[data-ad-status="active"] .riki-ad-content{width:160px;height:600px}
@media(min-width:1840px) and (min-height:840px){.riki-ad-rails:not([hidden]){display:block}}
@media(max-width:760px){.riki-ad-inline{min-height:92px;margin:8px 0 28px;padding:14px}.riki-ad-inline[data-ad-status="active"]{min-height:300px}.riki-ad-inline[data-ad-status="active"] .riki-ad-content{max-width:300px}}
@media print{.riki-ad-slot,.riki-ad-rails{display:none!important}}

/* Common game-top banner. Keep the reservation in the initial document flow. */
.riki-game-page .riki-ad-top{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;width:min(728px,calc(100% - 40px));max-width:728px;height:90px;min-height:90px;margin:8px auto 0;padding:0;border:0;outline:1px dashed #dae4f3;outline-offset:-1px;border-radius:12px;pointer-events:none;overflow:visible}
.riki-ad-top[data-ad-status="reserved"] .riki-ad-content{display:none}
.riki-ad-top .riki-ad-content{width:100%;height:100%;min-width:0}
.riki-game-page[data-top-ad] .riki-game-intro{min-height:160px}
.riki-game-page .riki-game-controls{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;margin:0 auto 16px;padding:0}
.riki-game-page .riki-game-controls .riki-game-sound{position:static;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:100px;min-height:44px;height:44px;width:auto;margin:0;padding:10px 14px;border:1px solid #dfe7f6;border-radius:15px;background:#fff;box-shadow:none;color:#516688;font:700 12px/1.2 "Arial Rounded MT Bold",Arial,"Malgun Gothic",sans-serif;cursor:pointer;white-space:nowrap;flex-shrink:0;transform:none}
.riki-game-page .riki-game-controls .riki-game-sound svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
.riki-game-page .riki-game-controls .riki-game-sound span{display:inline}
.riki-game-page .riki-game-controls .riki-game-sound:hover{background:#f1f5ff}
.riki-game-page .riki-game-controls .riki-game-sound:focus-visible{outline:3px solid #7199ff;outline-offset:3px}
.riki-game-page .riki-ad-top[hidden]{display:none!important}
.riki-game-page:is(.rink-focused,.game-focused,.is-focused,[data-focus="true"],[data-focus-mode="true"]) .riki-ad-top,.riki-game-page:has(:fullscreen,.is-focused,.game-focused,.rink-focused,#match.focused,[data-focus="true"],[data-focus-mode="true"]) .riki-ad-top{display:none}
@media(max-width:760px){.riki-game-page .riki-ad-top{height:64px;min-height:64px}.riki-game-page .riki-game-controls{margin-bottom:12px}.riki-game-page .riki-game-controls .riki-game-sound{font-size:11px;min-width:94px;padding:10px 12px}}

/* Approval gate: hidden by default, including first paint, no JS, and dynamically added result slots.
   The common module's AD_RESERVATION_STATE is the only runtime policy. No URL/storage override. */
:root:not([data-riki-ad-state="reserved"]) :is([data-ad-slot],[data-ad-status],[data-ad-spacing],[data-ad-wrap],.riki-ad-slot,.riki-game-ad,.ad-space,.riki-ad-rails,.army-result-ad,.result-ad-gap,#result-ad-wrap){display:none!important;width:0!important;height:0!important;min-width:0!important;min-height:0!important;max-height:0!important;margin:0!important;padding:0!important;border:0!important;outline:0!important;visibility:hidden!important;pointer-events:none!important}
:root:not([data-riki-ad-state="reserved"]) .riki-game-page[data-top-ad] .riki-game-intro{min-height:0!important}
