/* Brass instruments, etched linework and sea-green enamel: compact Art Deco. */
:root{--brass-light:#f0d7a2;--brass-mid:#bd965c;--enamel:#173c44}
.site-header{border-bottom-color:#b69b6555;box-shadow:0 1px 0 #040d13,0 3px 20px #0002}
.brand-mark{border-color:#ccb17a;background:radial-gradient(circle at 35% 25%,#d1ba7840,transparent 65%),linear-gradient(135deg,#25444a,#0a222e);box-shadow:inset 0 0 0 3px #071b22,inset 0 0 0 4px #bca06b66,0 0 18px #bba96d14}
.brand{color:#f0dfbb;text-shadow:0 2px 2px #0008}
.category-bar button{position:relative;border:1px solid #62817e55;background:linear-gradient(145deg,#31515b22,#061a2644);box-shadow:inset 0 1px #a5c7bb12,0 2px 3px #0003;transition:background .18s,border-color .18s,box-shadow .18s}
.category-bar button::before{content:'';position:absolute;inset:3px;border:1px solid #8eaa9b16;border-radius:2px;pointer-events:none}
.category-bar button::after{content:'';position:absolute;bottom:3px;left:calc(50% - 2px);width:4px;height:4px;transform:rotate(45deg);background:var(--category-accent,#9bb7a7);opacity:.5;pointer-events:none}
.category-bar button:nth-child(1){--category-accent:#d5b478}.category-bar button:nth-child(2){--category-accent:#b4c5cb}.category-bar button:nth-child(3){--category-accent:#bd8467}.category-bar button:nth-child(4){--category-accent:#d4b38a}.category-bar button:nth-child(5){--category-accent:#b698d2}.category-bar button:nth-child(6){--category-accent:#a7bb99}.category-bar button:nth-child(7){--category-accent:#79b9bf}
.category-bar button svg{color:var(--category-accent);filter:none}
.category-bar button.active{color:#f7e4b9;border-color:#c7aa70;background:linear-gradient(145deg,#61756670,#284d5760);box-shadow:inset 0 0 0 2px #08212d,inset 0 0 0 3px #c7ad7155,0 0 15px #a6c9a012}
.category-bar button.active::after{opacity:1;box-shadow:0 0 7px #dac28a80}
.draw-button{position:relative;isolation:isolate;border:1px solid #e2c68f;background:linear-gradient(120deg,#f1d49a,#c6a16b 42%,#e9c78c 72%,#b58c57);color:#10252d;box-shadow:inset 0 1px #fff4d6a0,inset 0 -3px #71512a44,0 3px 0 #06151bc9,0 7px 16px #0004;text-shadow:0 1px #ffebbf70;font-weight:650;letter-spacing:.15px}
.draw-button::before{content:'';position:absolute;inset:4px;border:1px solid #634a2c55;border-radius:3px;pointer-events:none}
.draw-button svg:first-child{filter:drop-shadow(0 1px #fff0c880)}
.draw-button:hover:not(:disabled){background:linear-gradient(120deg,#ffe7b4,#d7b57e 45%,#f7dca4);box-shadow:inset 0 1px #fff8e2,0 3px 0 #06151b,0 7px 22px #d5b47524}
.draw-button:active:not(:disabled){translate:0 1px;box-shadow:inset 0 2px 7px #644a3866,0 1px 0 #06151b}
.continue-game,.session-reset,.recover-all,.music-toggle,.mobile-expansions>button,.mobile-filter-toggle{border:1px solid #97ad9266;background:linear-gradient(130deg,#284c514f,#102b385c);box-shadow:inset 0 1px #e6e0bd12,0 2px 5px #0002;color:#e0d7ba}
.continue-game:hover:not(:disabled),.recover-all:hover{border-color:#d7bb82;background:linear-gradient(130deg,#45685d66,#173b4666)}
.is-playing .music-toggle{background:linear-gradient(135deg,#e7ce96,#b89d67);border-color:#ebd9ad;color:#102c34}
.tag-list button{border-radius:4px;box-shadow:inset 0 1px #adc3a510,0 2px 4px #0002}
.tag-list button.chosen{border-color:#d1b480;background:linear-gradient(135deg,#66745a55,#1b414b66);color:#f2dfb3}
.ledger-header .eyebrow,.reveal-heading .eyebrow{color:#cbb780}.ledger-header h2,.result-copy h2{text-shadow:0 2px 3px #0008}
.ledger-card{border-color:#82937c66;box-shadow:inset 0 0 0 2px #081c2455,0 4px 12px #0003}
.ledger-card-copy{border-top:1px solid #a5966144;background:linear-gradient(135deg,#36493e22,transparent 65%)}
.music-menu{border-color:#b4a77988;box-shadow:inset 0 0 0 3px #081a25,0 10px 35px #0009;background:linear-gradient(140deg,#183842,#0c202d)}
.music-menu button+button{border-top:1px solid #a6b59520}.music-settings,.exp-dialog,.info-dialog{box-shadow:inset 0 0 0 4px #061b2655,0 0 0 1px #bca06a44,0 18px 70px #0008;border-color:#adab8180}
.music-choices label.selected{background:linear-gradient(130deg,#636d4d33,#193b4644);box-shadow:inset 3px 0 #d8bb81}
.session-gate .start-sigil{position:relative;border-color:#b7a77b;background:radial-gradient(circle,#709b8255,#0a273733);box-shadow:inset 0 0 0 5px #0a202950,0 0 30px #84a68c18}
.session-gate .start-sigil::before{content:'';position:absolute;inset:-6px;border:1px solid #d1ba7d45;transform:rotate(45deg);border-radius:6px;pointer-events:none}
@media(max-width:760px){
 .category-bar button{padding-bottom:8px;background-color:#0d1c2799}.category-bar button.active{background-color:#183b4499}
 .mobile-filter-toggle{padding:8px 9px;border-radius:5px;margin:3px 0}.filter-panel{background:transparent}
 .session-gate{background:transparent}.start-sigil{margin-top:8px}
 .draw-button{border-radius:6px}.draw-button::before{border-radius:2px}
 .ledger-section{border-top:1px solid #af9e6855;border-radius:0}
}
@media(prefers-reduced-motion:reduce){.category-bar button{transition:none}}
.reveal-actions{width:100%;display:flex;align-items:center;flex-direction:column;margin-bottom:12px}.reveal-actions .draw-button{width:100%;margin-top:0}.reveal-actions .error-message{width:100%;margin-top:12px;text-align:center}
.difficulty-range{display:flex;gap:12px;margin:15px 0}.difficulty-range label{display:grid;gap:7px;flex:1;font-size:12px;color:#c3d1c9}.difficulty-range select{width:100%;min-height:44px;padding:8px 12px;font:16px var(--sans);color:#f0dfb8;background:#163540;border:1px solid #b4a37380;border-radius:5px}
.official-filter{display:flex;align-items:center;gap:10px;min-height:44px;font-size:12px}.official-filter input{width:21px;height:21px;accent-color:#d6b97f}.difficulty-filters .field-note a{color:#dbc591}.ancient-rating{color:#d5c28c!important;font-size:11px!important;margin:8px 0;display:block!important}
@media(max-width:760px){.reveal-actions{margin-bottom:8px}.reveal-actions .draw-button{max-width:100%}.difficulty-filters .field-note{font-size:10px;line-height:1.6}.difficulty-filters .field-label{font-size:12px}.difficulty-range{margin:10px 0}.reveal-panel{overflow:visible}}
.catalogue-open{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 11px;border:1px solid #a89c6d80;border-radius:5px;color:#ebd8ab;background:#26454b55;font-size:12px;white-space:nowrap}
.catalogue-dialog{width:min(1100px,calc(100vw - 20px));height:calc(100svh - 20px);max-width:none;max-height:none;padding:20px;border:1px solid #a8a17d99;border-radius:10px;background:#0d2531;color:var(--text);overflow:hidden}
.catalogue-dialog[open]{display:flex;flex-direction:column;gap:14px}.catalogue-dialog .dialog-top{margin:0;flex-shrink:0}.catalogue-dialog .dialog-top p{margin-top:5px;font-size:12px;color:#abc2c2}
.catalogue-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;flex-shrink:0}.catalogue-search{display:flex;align-items:center;gap:8px;flex:1;min-width:150px;border:1px solid #718e8166;padding:0 10px;border-radius:5px}.catalogue-search input{width:100%;min-width:0;height:44px;font:16px var(--sans);color:var(--text);border:0;background:transparent}.catalogue-filters select{height:44px;font:14px var(--sans);color:var(--text);background:#153842;border:1px solid #718e8166;border-radius:5px;padding:0 9px}.catalogue-filters>span{font-size:11px;color:#b8c8bd}
.catalogue-scroll{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:3px 5px 8px}.catalogue-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.catalogue-card{min-width:0;padding:9px;border:1px solid #6e8c7a66;border-radius:7px;background:linear-gradient(145deg,#34554c44,#071b2644);text-align:left}.catalogue-picture{position:relative;display:flex;align-items:center;justify-content:center;height:220px}.catalogue-picture img{width:100%;height:100%;object-fit:contain}.catalogue-picture>svg{position:absolute;bottom:5px;right:4px;color:#f2d9a0;background:#0a222bd9;padding:3px;box-sizing:content-box;border-radius:4px}.catalogue-card strong{display:block;margin:9px 0 4px;font:16px var(--serif);color:#f2dfbb}.catalogue-card small{font-size:10px;color:#9fbabb}.catalogue-empty{padding:30px;text-align:center;color:#b2c5bf}

.catalogue-zoom{width:min(760px,calc(100vw - 16px));height:calc(100svh - 20px);max-height:none;padding:14px;border:1px solid #a8a17d99;border-radius:8px;background:#0b202d;color:var(--text)}.catalogue-zoom[open]{display:flex;flex-direction:column;gap:10px}.catalogue-zoom .dialog-top{margin:0}.catalogue-zoom .dialog-top h2{font-size:25px}.catalogue-zoom>div:last-child{flex:1;min-height:0;overflow:auto;text-align:center}.catalogue-zoom img{max-width:100%;max-height:100%;object-fit:contain}
@media(max-width:760px){
 .site-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 10px;padding:9px 12px;overflow:visible}
 .site-header .brand{grid-column:1;grid-row:1;min-width:0;margin:0;font-size:17px;gap:8px}.site-header .brand-mark{display:grid;flex-shrink:0}.site-header .brand>span:last-child{white-space:nowrap}
 .site-header .music-control{grid-column:2;grid-row:1;flex-shrink:0}.site-header .about-button{grid-column:3;grid-row:1;width:36px;height:38px}
 .site-header nav{grid-column:1/-1;grid-row:2;display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-width:0;margin:0;order:initial;flex:none}
 .site-header nav .session-reset,.site-header nav .nav-cards,.site-header nav .catalogue-open{flex:1 1 0;min-width:0;min-height:40px;height:40px;display:flex;align-items:center;justify-content:center;gap:5px;padding:5px;font-size:10px;white-space:normal;border:1px solid #81967c66;border-radius:5px}
 .site-header nav .session-reset span{display:inline}.site-header nav svg,.site-header>.music-control svg,.site-header>.about-button svg{flex-shrink:0;width:18px;height:18px;display:block;visibility:visible;opacity:1}
 /* Keep every category in view; filtered SVGs inside horizontal scrollers can disappear in Safari. */
 .category-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;width:100%;min-width:0}
 .category-bar button{display:flex;flex-direction:column;justify-content:center;gap:5px;min-height:52px;padding:7px 3px 9px}.category-bar button svg{display:block;flex:none;width:20px;height:20px;visibility:visible;opacity:1}.category-bar button span{line-height:1.15;text-align:center}
 .catalogue-dialog{padding:12px;gap:10px}.catalogue-dialog .dialog-top h2{font-size:27px}.catalogue-filters{gap:7px}.catalogue-filters select{flex:1;min-width:120px;font-size:16px}.catalogue-filters>span{margin-left:auto}.catalogue-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.catalogue-card{padding:5px}.catalogue-picture{height:145px}.catalogue-card strong{font-size:14px;line-height:1.15}.catalogue-card small{font-size:9px}.card-stage{height:clamp(140px,calc(100svh - 455px),300px)}
}
@media(max-width:360px){.site-header .brand-mark{display:none}.site-header nav .session-reset span{font-size:9px}.catalogue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.catalogue-group+.catalogue-group{margin-top:26px}.catalogue-group h3{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:8px 0;border-bottom:1px solid #b29b6b55;font:24px var(--serif);color:#eed8aa}.catalogue-group h3 span{font:12px var(--sans);color:#a8c0bc}

.oracle-type-icon{display:flex;align-items:center;justify-content:center;color:#dec790}.oracle-type-icon svg{width:86px;height:86px;flex:none;filter:none}.back-category{font:22px var(--serif);letter-spacing:2px;text-transform:uppercase;text-align:center;color:#f0d7a2}.result-copy:empty{display:none}@media(max-width:760px){.oracle-type-icon svg{width:clamp(38px,10vw,65px);height:clamp(38px,10vw,65px)}.back-category{font-size:clamp(12px,3.5vw,18px);letter-spacing:1px}}

.oracle-back{--back-accent:#d5b478;--back-surface:#233d43;background:linear-gradient(145deg,var(--back-surface),#071923);border-color:var(--back-accent);color:var(--back-accent)}.oracle-back[data-category=conditions]{--back-accent:#b4c5cb;--back-surface:#344954}.oracle-back[data-category=artefactos]{--back-accent:#bd8467;--back-surface:#50352e}.oracle-back[data-category=unicos]{--back-accent:#d4b38a;--back-surface:#50422f}.oracle-back[data-category=hechizos]{--back-accent:#b698d2;--back-surface:#392d51}.oracle-back[data-category=investigadores]{--back-accent:#a7bb99;--back-surface:#2e463a}.oracle-back[data-category=monster]{--back-accent:#79b9bf;--back-surface:#164550}.oracle-back .back-inner{border-color:var(--back-accent)}.oracle-back .back-title,.oracle-back .back-ornament,.oracle-back .oracle-type-icon,.oracle-back .back-category{color:var(--back-accent)}
.category-bar{grid-template-columns:repeat(8,minmax(0,1fr))}.category-bar button:nth-child(7){--category-accent:#d58f85}.category-bar button:nth-child(8){--category-accent:#79b9bf}.oracle-back[data-category=enemies]{--back-accent:#d58f85;--back-surface:#4b2a32}.enemy-origin{display:block!important;font-size:11px!important;color:#d8b4a0}.epic-toggle{display:flex;align-items:center;gap:8px;font-size:12px;min-height:44px}.epic-toggle input{width:22px;height:22px;accent-color:#d6b97d}.epic-token{border-color:#ba605a99}.enemy-catalogue-note{font-size:11px;line-height:1.5;color:#b9ccca;margin:0}.enemy-token-sides img{display:block;width:min(100%,430px);max-height:none;margin:12px auto}.enemy-token-sides p{font-size:12px;color:#c3c8bd}.zoom-scroll:has(img[src^="/enemies/"]) img{width:min(100%,430px);height:auto;display:block;margin:12px auto}@media(max-width:760px){.category-bar{grid-template-columns:repeat(4,minmax(0,1fr))}.catalogue-group h3{font-size:21px}.enemy-catalogue-note{font-size:10px}.epic-toggle{width:100%}}

.oracle-back{box-shadow:3px 3px 0 #08141b,4px 4px 0 var(--back-accent),6px 6px 0 #07151c,7px 7px 0 var(--back-surface),0 20px 50px #0005}.oracle-back .back-inner:before,.oracle-back .back-inner:after{border-color:var(--back-accent);opacity:.2}
/* Each generated PNG contains both complete faces, with Spanish baked into the pixels. */
.generated-token{display:block;position:relative;overflow:hidden;width:min(100%,430px);aspect-ratio:1;background:#102832;border-radius:7px;box-shadow:0 4px 12px #0006}
.generated-token img.generated-token-image{position:absolute;top:0;left:0;display:block!important;width:200%!important;max-width:none!important;height:100%!important;max-height:none!important;margin:0!important;border-radius:0!important;object-fit:fill;transform:none!important}.generated-token img.generated-token-image.reverse{left:-100%}
.catalogue-picture>.generated-token,.ledger-image>.generated-token{height:100%;width:auto;aspect-ratio:1;margin:auto}.card-image-button>.generated-token.actual-card{height:100%;width:auto;aspect-ratio:1;max-width:85vw}.enemy-token-sides>.generated-token,.zoom-scroll>.generated-token{margin:16px auto;width:min(100%,430px);max-height:none}.session-card .generated-token{width:100%}
