@font-face{font-family:'Source Sans 3';src:url('../assets/source-sans-3.woff2') format('woff2');font-weight:200 900;font-style:normal;font-display:swap}
:root{--gold:#C8AA6E;--ink:#263347;--muted:#5b6778;--line:#dce0e5;--paper:#fff;--wash:#f5f6f7;--soft-gold:#f4efe4;--error:#a52e32;--success:#326344;--dwarf:url('../assets/dwarf.jpg');--elf:url('../assets/elf.jpg');--orc:url('../assets/orc.jpg');color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'Source Sans 3',Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:17px;line-height:1.45}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.48}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.08}a{text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:4px}svg.icon{height:22px;width:22px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.button{display:inline-flex;min-height:48px;padding:12px 22px;gap:10px;align-items:center;justify-content:center;line-height:1.25;font-size:17px;font-weight:600;border:1px solid transparent;border-radius:6px;background:var(--gold);color:var(--ink);transition:background .12s,box-shadow .12s}.button:hover:not(:disabled){box-shadow:inset 0 0 0 100px #2633470c}.button.secondary{background:#fff;border-color:#bec6d0}.button.quiet{background:transparent;border-color:var(--line)}.button.full{width:100%}.icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:6px}.icon-button:hover{background:var(--soft-gold)}.text-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;text-decoration:underline;text-underline-offset:5px}.muted{color:var(--muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.badge{font-size:13px;font-weight:600;line-height:1.2;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:4px;background:#eff1f3;color:#526073}.badge.gold{background:var(--soft-gold);color:var(--ink)}.bank-card{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:1.586;border-radius:12px;padding:23px;color:#fff;background:#465362;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 12px 30px #26334715;text-align:left}.bank-card:before{content:'';position:absolute;z-index:-2;inset:0;background-image:var(--dwarf);background-size:cover;background-position:62% 38%}.bank-card:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,rgba(17,28,42,.8),rgba(17,28,42,.1) 80%),linear-gradient(0deg,rgba(17,28,42,.65),transparent 55%)}.bank-card.elf:before{background-image:var(--elf);background-position:50% 45%}.bank-card.orc:before{background-image:var(--orc);background-position:50% 40%}.bank-card .card-type{font-size:11px;text-transform:uppercase;letter-spacing:.13em;opacity:.95}.card-top,.card-bottom{display:flex;justify-content:space-between;gap:10px;align-items:center}.card-bottom span{font-size:18px;font-weight:550;letter-spacing:.15em}.card-bottom small{font-size:13px}.card-chip{width:31px;height:24px;border:1px solid #ffffffa0;border-radius:5px;position:relative;background:#ffffff14}.card-chip:before{content:'';position:absolute;left:9px;right:9px;inset-block:0;border-inline:1px solid #ffffffa0}.card-chip:after{content:'';position:absolute;top:10px;inset-inline:0;border-top:1px solid #ffffffa0}dialog{width:min(440px,calc(100% - 32px));padding:24px;border:0;border-radius:12px;color:var(--ink);background:#fff;box-shadow:0 16px 80px #0004}dialog::backdrop{background:#17213280}dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}dialog h2{font-size:25px}dialog p{margin-bottom:20px}.dl{margin:0}.dl>div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}.dl dt{color:var(--muted)}.dl dd{margin:0;text-align:right;font-weight:550;overflow-wrap:anywhere}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.button{position:relative;isolation:isolate;overflow:hidden;transition:background .24s ease,box-shadow .24s ease,transform .24s cubic-bezier(.22,1,.36,1)}
.button:after{content:'';position:absolute;inset:-100%;z-index:-1;background:linear-gradient(110deg,transparent 40%,#ffffff70 49%,transparent 58%);transform:translateX(-70%);pointer-events:none;transition:transform .65s cubic-bezier(.22,1,.36,1)}
@media(hover:hover){.button:hover:not(:disabled){box-shadow:0 6px 20px -7px #c8aa6e9c;transform:translateY(-1px)}.button:hover:not(:disabled):after{transform:translateX(65%)}}
.button:active:not(:disabled){transform:scale(.98);box-shadow:0 2px 8px #c8aa6e25}
.icon-button{transition:background .22s ease,transform .22s ease}.icon-button:active{transform:scale(.94)}
dialog[open]{animation:dialog-enter .24s cubic-bezier(.22,1,.36,1) both}dialog[open]::backdrop{animation:scrim-enter .2s ease both}
@keyframes dialog-enter{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes scrim-enter{from{opacity:0}to{opacity:1}}

@media(prefers-reduced-motion:reduce){.button:after{display:none}.button:hover:not(:disabled),.button:active:not(:disabled),.icon-button:active{transform:none}}

/* A gentle gradient on every action; the gold anchor remains #C8AA6E. */
:root{--gradient-gold:linear-gradient(145deg,color-mix(in srgb,var(--gold) 62%,white),var(--gold) 68%,color-mix(in srgb,var(--gold) 92%,var(--ink)));--gradient-soft:linear-gradient(145deg,#fff,#f3f4f7 65%,#e9edf2)}
.button{background-image:var(--gradient-gold)}.button.secondary,.button.quiet,.icon-button{background-image:var(--gradient-soft)}

.icon-button:hover{background-image:var(--gradient-soft)}

.bank-card .gamecard-wordmark,.card-back .gamecard-wordmark{--wordmark-width:165px}
@media(max-width:479px){.bank-card .gamecard-wordmark,.card-back .gamecard-wordmark{--wordmark-width:150px}}
