/* Coin Shop + ad slots in the keeper's-logbook look: square corners, brass double rules, serif + small caps. Uses the --lg-* theme vars. */
body[data-page=shop] main{color:var(--lg-ink)}
body[data-page=shop] :is(h1,h2,h3){font-family:var(--text);font-weight:600;color:var(--lg-ink);letter-spacing:.01em}
body[data-page=shop] .kicker{font-family:var(--text);letter-spacing:.12em;color:var(--lg-brass);text-transform:none}
body[data-page=shop] .lead,body[data-page=shop] .muted{color:var(--lg-ink-m)}
body[data-page=shop] main a{color:var(--lg-brass-l);text-decoration-color:rgba(var(--lg-brass-rgb),.45)}
.sh-book{border:1px solid var(--lg-brass-d);background:linear-gradient(180deg,var(--lg-lea-1),var(--lg-lea-2));box-shadow:inset 0 0 0 3px var(--lg-lea-2),inset 0 0 0 4px rgba(var(--lg-brass-rgb),.28),0 10px 26px rgba(0,0,0,.45);padding:22px 24px;margin:0 0 22px}
.sh-book h2{font-size:24px;margin:0 0 12px;padding-bottom:8px;border-bottom:3px double rgba(var(--lg-brass-rgb),.45)}
.sh-wallet{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid rgba(var(--lg-brass-rgb),.28);border-bottom:1px solid rgba(var(--lg-brass-rgb),.28);margin:0 0 18px}
.sh-wallet div{padding:8px 18px;border-left:1px solid rgba(var(--lg-brass-rgb),.28)}.sh-wallet div:first-child{border-left:0;padding-left:0}
.sh-wallet dt{font:400 14px var(--text);color:var(--lg-brass);letter-spacing:.04em}.sh-wallet dd{margin:0;font:600 26px var(--text)}
/* the price ledger: one ruled row per pack, the USD price is the biggest thing on the line */
.sh-ledger{width:100%;border-collapse:collapse;font-family:var(--text)}
.sh-ledger th{font:400 14px var(--text);color:var(--lg-brass);letter-spacing:.05em;text-align:left;padding:6px 10px;border-bottom:3px double var(--lg-brass-d)}
.sh-ledger td{padding:14px 10px;border-bottom:1px solid rgba(var(--lg-brass-rgb),.22);vertical-align:middle;font-size:19px}
.sh-ledger tr:hover td{background:rgba(var(--lg-brass-rgb),.05)}
.sh-ledger .nm b{display:block;font-size:21px}.sh-ledger .nm small{font:400 14px var(--text);color:var(--lg-ink-m)}
.sh-ledger .usd{font-size:26px;font-weight:600;color:var(--lg-brass-l);white-space:nowrap}
.sh-ledger .act{text-align:right}
.sh-buy,.rw-go,.ad-notice button,.sh-confirm button{font:400 16px var(--text);letter-spacing:.04em;padding:8px 16px;border:0;border-radius:0;cursor:pointer;color:var(--lg-on-brass);background:linear-gradient(180deg,var(--lg-brass-l),var(--lg-brass) 48%,var(--lg-brass-dd));box-shadow:inset 0 1px 0 rgba(255,245,215,.7),inset 0 -1px 0 rgba(60,40,15,.6),inset 0 0 0 1px var(--lg-brass-d),0 2px 6px rgba(0,0,0,.5)}
.sh-buy:disabled,.rw-go:disabled{filter:grayscale(.6);opacity:.6;cursor:default}
.sh-confirm .ghost,.rw-cancel{font:400 15px var(--text);background:transparent;color:var(--lg-ink);border:0;border-radius:0;box-shadow:inset 0 0 0 1px var(--lg-brass-d);padding:7px 14px;cursor:pointer}
.sh-confirm{margin:14px 0 0;padding:14px 16px;background:var(--lg-paper);color:var(--lg-on-paper);border:2px double var(--lg-brass-d);font-family:var(--text)}
.sh-confirm h3{color:var(--lg-on-paper)!important;margin:0 0 6px;font-size:21px}.sh-confirm p{margin:4px 0}.sh-confirm .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.sh-stamp{display:inline-block;font:400 14px var(--text);letter-spacing:.1em;color:var(--lg-stamp);border:2px double var(--lg-stamp);padding:0 8px;transform:rotate(-2deg);margin-left:8px;vertical-align:middle}
.sh-rules{list-style:none;padding:0;margin:0;font-family:var(--text);font-size:18px}
.sh-rules li{padding:8px 0 8px 26px;border-bottom:1px dotted rgba(var(--lg-brass-rgb),.3);position:relative}
.sh-rules li::before{content:"\2766";position:absolute;left:0;top:8px;color:var(--lg-brass)}
.sh-notice{border-left:3px double var(--lg-brass);padding:8px 14px;margin:14px 0 0;font-family:var(--text);font-size:17px;background:rgba(var(--lg-brass-rgb),.06)}
.sh-msg{min-height:1.4em;font-family:var(--text);color:var(--lg-ok)}
@media (max-width:700px){.sh-book{padding:16px 14px}.sh-ledger thead{display:none}.sh-ledger tr{display:grid;grid-template-columns:1fr auto;border-bottom:1px solid rgba(var(--lg-brass-rgb),.22);padding:10px 0}.sh-ledger td{border:0;padding:2px 4px}.sh-ledger .act{grid-column:1/-1;text-align:left;padding-top:8px}.sh-ledger .cn{display:none}}

/* ad slots: a ruled, labeled box sized to the ad, never inside the game frame */
.ad-slot{display:block;margin:22px auto;max-width:100%;width:calc(var(--ad-w,728px) + 2px);text-align:center}
.ad-slot .ad-tag{display:block;font:400 12px var(--text);letter-spacing:.14em;color:var(--lg-ink-m);text-align:left;margin:0 0 3px}
.ad-slot .ad-ph,.rw-stage .ad-ph{display:flex;flex-direction:column;justify-content:center;align-items:center;height:var(--ad-h,90px);max-width:100%;border:1px dashed var(--lg-brass-d);background:repeating-linear-gradient(135deg,rgba(var(--lg-brass-rgb),.05) 0 8px,transparent 8px 16px);color:var(--lg-ink-m);font-family:var(--text)}
.ad-ph b{font:400 15px var(--text);letter-spacing:.08em;color:var(--lg-brass)}.ad-ph small{font-size:13px}
/* opt-in reward ad */
.rw{border:1px solid var(--lg-brass-d);background:linear-gradient(180deg,var(--lg-lea-1),var(--lg-lea-2));box-shadow:inset 0 0 0 3px var(--lg-lea-2),inset 0 0 0 4px rgba(var(--lg-brass-rgb),.28);padding:16px 20px;margin:22px 0;color:var(--lg-ink);font-family:var(--text);font-size:17px}
.rw .rw-h{font:600 22px var(--text);margin:0 0 6px;padding-bottom:6px;border-bottom:3px double rgba(var(--lg-brass-rgb),.4);color:var(--lg-ink)}
.rw p{margin:6px 0}.rw a{color:var(--lg-brass-l)}.rw-left{font-family:var(--text);color:var(--lg-brass)}
.rw-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:8px}
.rw-stage{margin-top:12px;position:relative}.rw-stage .ad-ph{height:180px}.rw-stage .rw-cancel{margin-top:8px}
.rw-msg{font-family:var(--text);color:var(--lg-ok);min-height:1.2em}
/* ads notice: a thin ruled strip at the bottom, not a modal, nothing blocked */
.ad-notice{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;padding:10px 16px;background:var(--lg-lea-2);color:var(--lg-ink);border-top:3px double var(--lg-brass-d);font-family:var(--text);font-size:16px}
.ad-notice p{margin:0}.ad-notice a{color:var(--lg-brass-l)}.ad-notice button{padding:5px 14px;font-size:15px}

/* AdSense banner: rounded trading-post frame, small friendly label, never over gameplay */
.ad-slot.ad-live{width:min(100%,760px);padding:8px 12px 12px;border-radius:14px;background:linear-gradient(180deg,var(--lg-lea-1),var(--lg-lea-2));border:1px solid rgba(var(--lg-brass-rgb),.35);box-sizing:border-box}
.ad-slot.ad-live .ad-tag{display:inline-block;text-transform:none!important;letter-spacing:.02em!important;font-size:12px;padding:1px 8px;border-radius:999px;background:rgba(var(--lg-brass-rgb),.14);color:var(--lg-ink-m);margin:0 0 6px}
.ad-slot.ad-live ins.adsbygoogle{min-height:50px;border-radius:8px;overflow:hidden}
/* Until AdSense approves the site (or when no ad fills), hide the empty frame instead of showing a white box */
.ad-slot.ad-live ins.adsbygoogle[data-ad-status="unfilled"]{display:none!important}
.ad-slot.ad-live:has(ins.adsbygoogle[data-ad-status="unfilled"]){display:none}
@media (max-width:600px){.ad-slot.ad-live{border-radius:0;border-left:0;border-right:0;padding:6px 0 8px}}
/* While the first-visit ads notice is showing, the page reserves its height so nothing is covered */
html.has-ad-notice body{padding-bottom:var(--ad-notice-h,0px)}
@media (max-width:600px){.ad-notice{flex-wrap:nowrap;gap:10px;padding:8px 12px;font-size:13.5px!important;line-height:1.3;justify-content:space-between}.ad-notice p{flex:1;min-width:0}.ad-notice button{flex:none;padding:6px 12px;font-size:14px;min-height:36px}}
