:root{color-scheme:dark;--bg:#151419;--panel:#201e23;--line:#4b4033;--gold:#d5b376;--muted:#bcb7ad;--text:#f4ede1;--input:#17161b}
[hidden]{display:none!important}
input[name="hechizos"]:disabled { opacity:.45; cursor:not-allowed; }
.character-status { display:flex; flex-direction:column; align-items:flex-end; gap:8px; flex-shrink:0; }
.race-portrait-frame { display:flex; align-items:center; gap:12px; color:var(--gold); font:18px Georgia,serif; }
.race-portrait { width:88px; height:88px; flex-shrink:0; border-radius:50%; border:2px solid var(--gold); background-color:#171419; background-repeat:no-repeat; background-size:600% auto; box-shadow:0 0 0 4px #171419,0 0 0 5px #725936,0 7px 20px #0008; }
.race-portrait[data-race="humano"] { background-position:49% 28%; }
.race-portrait[data-race="elfo"] { background-position:53% 14%; }
.race-portrait[data-race="hechicero"] { background-position:36% 25%; }
.race-portrait[data-race="enano"] { background-position:57% 27%; }
@media(max-width:720px) { .page-heading { display:flex!important; align-items:flex-start; gap:12px; } .page-heading>div:first-child { min-width:0; } .character-status { max-width:140px; } .character-status #saveStatus { text-align:right; font-size:11px; } .race-portrait-frame { flex-direction:column; gap:7px; font-size:14px; } .race-portrait { width:68px; height:68px; } }
.sheet { --wound-opacity:0; --wound-glow:0; border-radius:12px; box-shadow:0 0 90px 28px rgba(165,0,25,var(--wound-glow)); transition:box-shadow .8s ease; }
.sheet .panel { background:radial-gradient(ellipse at 50% 80%,rgba(170,0,25,var(--wound-opacity)),transparent 95%),radial-gradient(circle at 100% 0,#53381922,transparent 15rem),linear-gradient(145deg,#272229,#1a191d); }
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at 12% 0,#392812 0,transparent 24rem),radial-gradient(circle at 88% 4%,#2a0d18 0,transparent 22rem),linear-gradient(180deg,#17151a 0,#0f0e12 100%);color:var(--text);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
button,input,select,textarea{min-height:44px}
input,select,textarea{width:100%;border:1px solid #6d5b42;border-radius:5px;padding:10px 12px;background:linear-gradient(180deg,#19171c,#121116);color:var(--text);box-shadow:inset 0 1px 7px #0008}
input::placeholder,textarea::placeholder{color:#a9a49d}
input[type=checkbox]{width:21px;min-height:21px;height:21px;accent-color:var(--gold)}
textarea{resize:vertical}
label{display:block;font-size:14px;color:var(--muted)}
label input,label select,label textarea{margin-top:6px}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:normal;margin:0}
h1{font-size:34px;line-height:1.25;margin-top:6px}
p{margin:0}
.masthead{min-height:112px;border-bottom:1px solid #8c6b3c;display:flex;align-items:center;justify-content:space-between;padding:14px max(24px,calc((100vw - 1240px)/2));gap:20px;background:linear-gradient(90deg,#0b0b0e 0,#1f1914 48%,#130c10 100%);box-shadow:0 8px 32px #0008,inset 0 -1px #261a0e}
.brand{display:flex;align-items:center;gap:20px}
.brand-logo{width:86px;height:77px;object-fit:cover;object-position:center;border-radius:50%;filter:drop-shadow(0 0 11px #c7923c73)}
.brand strong{font-family:Georgia,serif;font-size:18px;font-weight:normal;letter-spacing:2px}
.brand div>span{display:block;color:var(--muted);font-size:13px;margin-top:3px}
.edition,.eyebrow{font-size:12px;letter-spacing:2px;color:var(--gold)}
main{max-width:1288px;margin:auto;padding:34px 24px}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
#saveStatus{font-size:13px;color:var(--muted);text-align:right}
.view-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:12px}
.view-tabs button{min-width:120px;color:var(--muted);background:linear-gradient(180deg,#211e23,#17161a);border:1px solid #5c4b35;border-radius:5px;padding:10px 18px}
.view-tabs button[aria-pressed=true]{background:linear-gradient(180deg,#edcd8e,#b98b43);color:#211a10;border-color:#f0d49b;box-shadow:0 0 18px #c6943e42,inset 0 1px #fff8}
.workspace{display:block}
.panel{position:relative;background:radial-gradient(circle at 100% 0,#53381922,transparent 15rem),linear-gradient(145deg,#272229,#1a191d);padding:21px 24px;border:1px solid #775c36;border-radius:7px;box-shadow:0 8px 22px #0005,inset 0 0 28px #0005,0 0 0 1px #100e0b}
.panel::after{content:'';position:absolute;inset:6px;border:1px solid #bd925222;border-radius:4px;pointer-events:none}
.panel h2{display:flex;align-items:center;gap:6px;font-size:21px;padding-bottom:15px;border-bottom:1px solid var(--line);margin-bottom:18px}
.panel h2>span{color:var(--gold);font:12px system-ui;margin-right:6px}
.heading-link{min-height:34px;margin-left:auto;border:0;background:transparent;color:var(--gold);font:13px system-ui;text-decoration:underline;text-underline-offset:4px}
.identity-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.wide{grid-column:1/-1}
.sheet-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.column-stack{grid-column:2;grid-row:2/span 2;display:flex;flex-direction:column;gap:20px}
.attack{grid-column:1}
.attack-button{width:100%;margin-top:10px;border:1px solid #f2d291;border-radius:5px;background:linear-gradient(180deg,#f2d394,#b77c2f);color:#211a10;padding:13px 16px;font-weight:800;letter-spacing:.4px;box-shadow:0 0 20px #d99d3b38,inset 0 1px #fff9}
.stat-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.stat-row>label{flex:1;color:var(--text);font-size:16px}
.stat-row>label{min-width:0}
.row-roll{flex:none;min-height:44px;padding:8px 10px;border:1px solid #8e7347;border-radius:5px;background:#292127;color:var(--gold);font-size:14px;white-space:nowrap}
.row-roll:hover{background:#3a2d22}
.spell-roll{display:flex;gap:10px;align-items:end;margin-bottom:16px}
.spell-roll>label{flex:1;min-width:0}
.dice-input{display:flex;gap:10px;margin-top:6px}
.dice-input input{min-width:0;flex:1}
.dice-note{font-size:14px;color:var(--gold);margin-top:8px;overflow-wrap:anywhere}
.dice-note:empty{display:none}
.dice-stage{margin:12px 0;border:1px solid #775c36;border-radius:7px;overflow:hidden;background:#161219;max-width:100%}
.dice-stage[hidden]{display:none}
.attack-readiness{padding:10px 12px;border:1px solid #bf8d55;border-radius:6px;color:#ffe0a4;background:#34251e;line-height:1.5}
.dice-canvas{display:block;width:100%;height:190px}
.dice-stage-caption{padding:9px 12px;background:#211a25;border-top:1px solid #4b4033;color:#ead3a6;font-size:14px;line-height:1.5;min-height:40px}
.row-roll:disabled{opacity:.6;cursor:wait}
.pifia-dice-button{width:100%;margin-top:12px}
.check-result .table-jump{display:block;margin-top:12px;font-size:16px}
.check-calculator{padding:24px}
.check-result{border-top:1px solid var(--line);margin-top:22px;padding-top:20px;font-size:18px}
.check-result:empty{display:none}
.stat-row input[type=number]{width:80px;padding:8px;text-align:center}
.stat-label{display:inline-flex;align-items:center;gap:8px}
.stat-icon{width:18px;height:18px;flex:none;color:var(--gold)}
.stat-icon[data-stat=Vida]{color:#dca6a2}
.stat-icon[data-stat=Alma],.stat-icon[data-stat=Magia]{color:#c5abd9}
.panel>label{margin-bottom:16px}
.equipment textarea{min-height:185px;background:repeating-linear-gradient(transparent,transparent 31px,#42392d 31px,#42392d 32px);line-height:32px;padding:0 8px;border-color:transparent}
.micro{font-size:12px;color:var(--muted);margin-top:18px}
.storage-note{font-size:13px;color:var(--muted);padding:20px 0 0;max-width:620px}
.pifias{display:none;max-width:620px;margin:0 auto}
.oracle{background:radial-gradient(circle at 96% 8%,#71317455,transparent 13rem),radial-gradient(circle at 4% 94%,#8d53152e,transparent 15rem),linear-gradient(135deg,#312b24,#211e25 68%);border:1px solid #a47c43;border-radius:8px;padding:25px;box-shadow:0 12px 38px #0008,inset 0 0 30px #0006}
.oracle-top{display:flex;align-items:center;justify-content:space-between}
.seal{font-size:28px;color:var(--gold)}
.oracle h2{font-size:40px;line-height:1.2;margin:8px 0 12px}
.oracle>p{color:var(--muted);font-size:14px}
.oracle form{margin-top:24px}
.oracle label{margin:16px 0 8px}
.roll-row{display:flex;align-items:center;gap:16px}
.roll-row input{font-size:28px;width:100%;height:66px}
.roll-row span{color:var(--gold);font-family:Georgia,serif;font-size:24px}
.primary{border:1px solid #efd18f;border-radius:5px;background:linear-gradient(180deg,#eccd8b,#b78338);color:#211a10;width:100%;font-weight:700;padding:13px 16px;margin-top:18px;box-shadow:0 0 18px #c8953c3b,inset 0 1px #fff8}
.primary:hover{background:#e8c891}
.primary:disabled{opacity:.5;cursor:wait}
.result{padding:22px 0;border-top:1px solid #6b5740;margin-top:24px}
.result-tag{font-size:12px;letter-spacing:1.8px;color:var(--gold)}
.result h3{font-size:26px;line-height:1.3;margin:10px 0}
.result p{font-size:16px;line-height:1.65}
.oracle p.oracle-note{font-size:13px;border-top:1px solid var(--line);padding-top:16px}
.source-note{padding:20px 4px;color:var(--muted);font-size:13px}
.source-note>span{font-size:11px;letter-spacing:1.5px;color:var(--gold)}
.source-note p{margin-top:8px}
.error{color:#ffbcaa!important;margin-top:12px!important}
.error:empty{display:none}
body[data-view=pifias] .sheet{display:none}
body[data-view=pifias] .pifias{display:block}
body[data-view=tables] .workspace{display:none}
.tables-view[hidden]{display:none}
.tables-heading{display:grid;grid-template-columns:1fr 360px;gap:28px;align-items:start;margin:10px 0 24px}
.tables-heading h2{font-size:40px;margin:7px 0}
.tables-heading p{color:var(--muted)}
.damage-lookup{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:18px}
.damage-lookup>div{display:flex;gap:8px;margin:8px 0}
.damage-lookup input{min-width:0}
.damage-lookup button{border:1px solid var(--gold);border-radius:5px;background:var(--gold);color:#211a10;padding:8px 14px;white-space:nowrap}
.damage-lookup p{font-size:14px;color:var(--text)}
.table-controls{display:grid;grid-template-columns:1fr 260px;gap:16px;margin-bottom:20px}
.rule-card{background:#242127;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:5px;padding:16px 18px;margin-bottom:18px}
.rule-card h3{font-size:20px;margin-bottom:6px}
.rule-card p{color:var(--muted)}
.tables-status{color:var(--muted);font-size:14px;margin:4px 0 14px}
.table-card{border:1px solid #6e5838;background:linear-gradient(145deg,#252127,#19181c);border-radius:7px;margin-bottom:12px;overflow:hidden;box-shadow:0 7px 18px #0004,inset 0 0 22px #0004}
.table-card summary{display:flex;align-items:center;gap:12px;cursor:pointer;padding:16px 18px;list-style:none}
.table-card summary::-webkit-details-marker{display:none}
.table-card summary::before{content:'+';color:var(--gold);font-size:24px;line-height:1}
.table-card[open] summary::before{content:'−'}
.table-card summary strong{font-family:Georgia,serif;font-size:20px;font-weight:normal}
.table-card summary span{margin-left:auto;font-size:12px;letter-spacing:1.2px;color:var(--gold)}
.table-note{padding:0 18px 15px;color:var(--muted);font-size:14px}
.table-wrap{overflow-x:auto;border-top:1px solid var(--line)}
.game-table{width:100%;border-collapse:collapse;min-width:520px}
.game-table th,.game-table td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid #3d362e}
.game-table th{color:var(--gold);font-size:12px;letter-spacing:.8px;background:#1a191d}
.game-table td{font-size:14px}
.game-table tr:last-child td{border-bottom:0}
.no-results{padding:32px;border:1px dashed var(--line);border-radius:7px;color:var(--muted);text-align:center}
.table-jump{color:var(--gold);background:none;border:0;padding:0;min-height:0;text-decoration:underline;text-underline-offset:3px}
dialog{width:min(580px,calc(100% - 28px));max-height:calc(100vh - 32px);overflow:auto;border:1px solid #8e7347;border-radius:8px;padding:0;background:#201e23;color:var(--text);box-shadow:0 22px 80px #000b}
dialog::backdrop{background:#09090cc7;backdrop-filter:blur(3px)}
#attackCalculator{padding:24px}
.dialog-heading{display:flex;justify-content:space-between;gap:18px;align-items:start;border-bottom:1px solid var(--line);padding-bottom:15px}
.dialog-heading h2{font-size:32px;margin-top:5px}
.dialog-close{width:44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--text);font-size:28px;line-height:1}
.dialog-intro{color:var(--muted);margin:17px 0}
.combat-turn-choice{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px;margin:16px 0;border:1px solid #a28049;border-radius:8px;background:#33271e}.combat-turn-choice[hidden]{display:none}.combat-turn-choice>div{flex:1;min-width:180px}.combat-turn-choice strong{color:var(--gold);font-size:18px}.combat-turn-choice p{font-size:14px;color:var(--muted);margin-top:5px}.combat-turn-choice>p{width:100%;margin:0}.combat-turn-choice>p:empty{display:none}.combat-turn-choice button{min-height:44px}
#attackCalculator>label{margin-top:15px}
.enemy-protection{margin:10px 0 4px;padding:10px 12px;border-left:3px solid var(--gold);background:#17161b;color:var(--muted)}
.enemy-protection strong{color:var(--text)}
.attack-result{position:relative;--attack-glow:var(--gold);border-top:1px solid var(--line);margin-top:22px;padding-top:20px}
.attack-result.is-magic{--attack-glow:#c5abd9}
.attack-result.has-result{border-top-color:var(--attack-glow)}
.attack-result h3{font-size:26px;margin:7px 0}
.attack-result p{line-height:1.6}
.combat-effect{display:none;position:absolute;left:50%;top:8px;width:168px;height:110px;transform:translateX(-50%);pointer-events:none;z-index:2;opacity:0;background:radial-gradient(ellipse,#151419f0 20%,#15141999 50%,transparent 72%)}
.combat-sword{position:absolute;top:16px;width:76px;height:76px;filter:drop-shadow(0 0 5px #d5b37666)}
.sword-left{left:calc(50% - 52px)}
.sword-right{left:calc(50% - 24px);transform:scaleX(-1)}
.combat-spark{position:absolute;left:50%;top:40px;width:3px;height:12px;border-radius:2px;background:#ffe2a1;opacity:0;box-shadow:0 0 5px #d5b376;transform-origin:50% 0}
.combat-ring{position:absolute;width:68px;height:68px;left:50%;top:50%;margin:-34px 0 0 -34px;border:2px solid #c5abd9;border-radius:50%;box-shadow:0 0 12px #bd8ee966,inset 0 0 12px #bd8ee966}
.combat-star{position:absolute;width:62px;height:62px;left:50%;top:50%;margin:-31px 0 0 -31px;color:#e0c9f5;filter:drop-shadow(0 0 9px #bd8ee9)}
.formula{display:block;margin-top:8px;color:var(--muted);font-size:14px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.brand-divider{height:140px;position:relative;overflow:hidden;border-top:1px solid #8d724b;border-bottom:1px solid #8d724b;background:linear-gradient(90deg,#bca98a,#eadfcf 50%,#bca98a);box-shadow:inset 0 8px 20px #5d4a2c55,inset 0 -8px 20px #5d4a2c55}
.brand-divider img{position:absolute;width:min(850px,calc(100% - 32px));max-width:calc(100% - 32px);height:calc(100% - 16px);object-fit:contain;left:50%;top:50%;transform:translate(-50%,-50%);mix-blend-mode:multiply}
footer{padding:22px max(24px,calc((100vw - 1240px)/2));display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted);background:#0e0d10}
footer span:first-child{color:var(--gold);letter-spacing:2px}
@media(min-width:1600px){main{padding-top:48px}}
@media(max-width:1000px){.sheet-columns{grid-template-columns:1fr}.column-stack{grid-column:auto;grid-row:auto}.attack{grid-column:auto}.panel{padding:18px}.tables-heading{grid-template-columns:1fr}}
@media(max-width:720px){.masthead{min-height:86px;padding:10px 16px}.brand{gap:12px}.brand-logo{width:62px;height:56px}.brand strong{font-size:14px;letter-spacing:1px}.brand div>span{font-size:12px}.edition{display:none}main{padding:24px 16px}.page-heading{display:block;margin-bottom:20px}h1{font-size:30px;overflow-wrap:anywhere}#saveStatus{display:block;text-align:left;margin-top:10px}.view-tabs button{min-width:0;flex:1;padding:10px 8px}.sheet-columns{grid-template-columns:1fr;gap:16px;margin-top:16px}.identity-grid{grid-template-columns:1fr}.wide{grid-column:auto}.panel h2{font-size:20px}.heading-link{font-size:12px}.oracle{padding:24px}.oracle>p{font-size:16px}.source-note{font-size:14px}.tables-heading h2{font-size:34px}.table-controls{grid-template-columns:1fr}.damage-lookup>div{flex-wrap:wrap}.damage-lookup button{width:100%}.table-card summary{padding:15px}.table-card summary strong{font-size:18px}.game-table th,.game-table td{padding:11px}.game-table{min-width:480px}.brand-divider{height:104px}.brand-divider img{width:min(600px,145vw)}footer{font-size:12px;padding:20px 16px}}
@media(prefers-reduced-motion:no-preference){.result.has-result{animation:reveal .3s ease-out}.attack-result.has-result{animation:reveal .38s ease-out}.attack-result.has-result h3{animation:attack-glow .48s ease-out}@keyframes reveal{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes attack-glow{0%,100%{text-shadow:none}40%{text-shadow:0 0 18px var(--attack-glow)}}}
@media(prefers-reduced-motion:no-preference){
  .combat-effect{display:block;animation:combat-fade .6s linear both}
  .sword-left{animation:sword-left .6s ease-in-out both}
  .sword-right{animation:sword-right .6s ease-in-out both}
  .combat-spark{animation:combat-spark .6s ease-out both}
  .combat-ring{animation:magic-ring .6s ease-out both}
  .combat-star{animation:magic-star .6s ease-out both}
}
@keyframes combat-fade{0%{opacity:0}15%,65%{opacity:1}100%{opacity:0}}
@keyframes sword-left{0%,15%{transform:translate(-36px,12px) rotate(-18deg)}45%,52%{transform:translate(0,0) rotate(0)}100%{transform:translate(-12px,8px) rotate(-10deg)}}
@keyframes sword-right{0%,15%{transform:translate(36px,12px) rotate(18deg) scaleX(-1)}45%,52%{transform:translate(0,0) rotate(0) scaleX(-1)}100%{transform:translate(12px,8px) rotate(10deg) scaleX(-1)}}
@keyframes combat-spark{0%,43%{opacity:0;transform:rotate(var(--spark-angle)) translateY(0) scaleY(.2)}48%{opacity:1;transform:rotate(var(--spark-angle)) translateY(-8px) scaleY(1)}85%,100%{opacity:0;transform:rotate(var(--spark-angle)) translateY(-36px) scaleY(.2)}}
@keyframes magic-ring{0%{opacity:0;transform:scale(.3)}35%{opacity:1}100%{opacity:0;transform:scale(1.6)}}
@keyframes magic-star{0%{opacity:0;transform:scale(.3) rotate(-25deg)}45%{opacity:1;transform:scale(1) rotate(0)}100%{opacity:0;transform:scale(1.2) rotate(15deg)}}
.gold-purse { display:grid; grid-template-columns:1fr 110px; align-items:center; gap:16px; margin:10px 0 20px; color:#e2bd78; }
.shop-status { color:#e2bd78; position:sticky; top:8px; z-index:2; background:#171319; border-radius:8px; padding:12px; }
.shop-status:empty { display:none; }
.acquisition-notice { position:fixed; z-index:13000; left:50%; top:50%; transform:translate(-50%,-50%); width:min(520px,calc(100vw - 40px)); max-height:calc(100dvh - 48px); overflow:auto; box-sizing:border-box; display:flex; flex-direction:column; align-items:center; gap:18px; padding:34px 42px; border:2px solid #d7b46f; border-radius:18px; background:radial-gradient(ellipse at top,#63502c 0,transparent 70%),#181518; color:#fff0d0; box-shadow:0 20px 80px #000b,0 0 45px #d7b46f44,inset 0 1px #ffe9b225; text-align:center; pointer-events:none; animation:acquisition-reveal .65s cubic-bezier(.2,.8,.25,1); }
.acquisition-notice>div { flex:1; min-width:0; }
.acquisition-notice strong { display:block; font:700 clamp(26px,5vw,36px)/1.2 Georgia,serif; text-wrap:balance; }
.acquisition-notice>div>span { display:block; margin-top:7px; font-size:16px; line-height:1.4; overflow-wrap:anywhere; }
.acquisition-icon { flex-shrink:0; font-size:60px; line-height:1; color:#e8c783; text-shadow:0 0 24px #e8c78388; animation:acquisition-spark 1.6s ease-in-out 2; }
.acquisition-notice>button { position:absolute; top:5px; right:5px; width:44px; height:44px; padding:0; border:0; background:transparent; color:inherit; font-size:26px; pointer-events:auto; cursor:pointer; }
.acquisition-notice>button:focus-visible { outline:2px solid #fff0d0; outline-offset:1px; }
.acquisition-magic { border-color:#b99adf; background:radial-gradient(ellipse at top,#654579 0,transparent 70%),#181518; color:#f5e6ff; box-shadow:0 20px 80px #000b,0 0 45px #b99adf55; }
.acquisition-magic .acquisition-icon { color:#d5b3ff; }
@keyframes acquisition-reveal { from { opacity:0; transform:translate(-50%,-45%) scale(.75); } to { opacity:1; transform:translate(-50%,-50%) scale(1); } }
@keyframes acquisition-spark { 50% { transform:scale(1.15); filter:brightness(1.5); } }
@media(prefers-reduced-motion:reduce) { .acquisition-notice,.acquisition-icon { animation:none; } }
.item-actions { min-width:230px; }
.item-actions .row-roll { display:inline-block; margin:4px 6px 4px 0; vertical-align:middle; }
dialog { max-height:calc(100dvh - 24px); margin:auto; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
#attackCalculator { display:block; min-height:0; overflow:visible; padding-bottom:calc(40px + env(safe-area-inset-bottom)); }
.death-banner { position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); width:min(92vw,620px); z-index:100; text-align:center; padding:55px 24px; background:radial-gradient(ellipse,#42070cec,#10090af5 75%); border:1px solid #9f2736; border-radius:10px; box-shadow:0 0 100px #9a00185c; pointer-events:none; }
.death-banner[hidden] { display:none; }
.death-banner strong { position:relative; font:700 clamp(40px,9vw,76px) Georgia,serif; color:#e53343; text-shadow:0 3px 0 #570715,0 0 25px #ba001a; animation:death-reveal 1.4s ease-out both; }
.death-banner p { position:relative; color:#f3c6cb; margin-top:16px; }
.blood-splash { position:absolute; inset:0; overflow:hidden; border-radius:10px; background:radial-gradient(ellipse at 50% 40%,#87001488,transparent 65%); }
.blood-splash i { position:absolute; top:-12%; left:12%; width:18px; height:100px; border-radius:10px 10px 50% 50%; background:linear-gradient(#64000b,#b71929); transform-origin:top; animation:blood-drip 2.4s ease-in both; }
.blood-splash i:nth-child(2) { left:28%; height:160px; animation-delay:.3s; }
.blood-splash i:nth-child(3) { left:43%; width:9px; height:80px; animation-delay:.6s; }
.blood-splash i:nth-child(4) { left:65%; height:125px; animation-delay:.1s; }
.blood-splash i:nth-child(5) { left:80%; width:24px; height:180px; animation-delay:.4s; }
.blood-splash i:nth-child(6) { left:92%; height:90px; animation-delay:.8s; }
.character-dead #sheet { filter:saturate(.45); opacity:.55; }
@keyframes death-reveal { from { opacity:0; filter:blur(8px); } to { opacity:1; filter:blur(0); } }
@keyframes blood-drip { from { transform:scaleY(0); opacity:0; } to { transform:scaleY(1); opacity:1; } }
@media(prefers-reduced-motion:reduce) { .death-banner strong,.blood-splash i { animation:none; } }
.soul-banner { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); width:min(90vw,560px); padding:60px 20px; z-index:101; pointer-events:none; text-align:center; overflow:hidden; border:1px solid #57515e; border-radius:12px; background:radial-gradient(ellipse,#39333ee8,#16131bed); box-shadow:0 0 75px #000c; animation:soul-fade 5.5s both; }
.soul-banner[hidden] { display:none; }
.soul-banner strong { position:relative; font:700 clamp(28px,6vw,48px) Georgia,serif; color:#e0dbe7; text-shadow:0 3px 0 #000,0 0 18px #000; }
.shadow-blood { background:radial-gradient(ellipse at 50% 40%,#0008,transparent 65%); }
.shadow-blood i { background:linear-gradient(#010102,#08070a); box-shadow:inset 2px 0 1px #39333c,0 3px 12px #000b; }
@keyframes soul-fade { 0% { opacity:0; } 15%,78% { opacity:1; } 100% { opacity:0; } }
@media(prefers-reduced-motion:reduce) { .soul-banner,.shadow-blood i { animation:none; } }
.outcome-badge { display:block; position:relative; overflow:hidden; margin:6px 0 18px; padding:14px 18px; border:1px solid currentColor; border-radius:8px; font:700 clamp(32px,7vw,48px) Georgia,serif; letter-spacing:.06em; text-align:center; text-transform:uppercase; }
.outcome-success { color:#9fe6b5; background:radial-gradient(ellipse,#234b35aa,#11251b); box-shadow:0 0 24px #62c78a33; animation:success-reveal .75s ease-out both; }
.outcome-success::after { content:''; position:absolute; inset:0; background:linear-gradient(110deg,transparent 30%,#d4ffe833 50%,transparent 70%); animation:success-shine 1s ease-out both; }
.outcome-pifia { color:#ff7584; background:radial-gradient(ellipse,#591723aa,#260d13); box-shadow:0 0 24px #d6304933; animation:pifia-impact .6s ease-out both; }
.outcome-failure { color:#ffcb83; background:radial-gradient(ellipse,#694019aa,#2e1d10); box-shadow:0 0 24px #e89b3433; animation:failure-reveal .7s ease-out both; }
@keyframes failure-reveal { 0% { opacity:0; transform:translateY(-12px) scale(.9); } 60% { opacity:1; transform:translateY(3px) scale(1.03); } 100% { opacity:1; transform:translateY(0) scale(1); } }
@keyframes success-reveal { from { opacity:0; transform:translateY(10px) scale(.85); } 65% { opacity:1; transform:translateY(0) scale(1.03); } to { opacity:1; transform:scale(1); } }
@keyframes success-shine { from { transform:translateX(-110%); } to { transform:translateX(110%); } }
@keyframes pifia-impact { 0% { opacity:0; transform:scale(1.12); } 25% { opacity:1; transform:translateX(-5px) scale(1); } 45% { transform:translateX(4px); } 65% { transform:translateX(-2px); } 100% { opacity:1; transform:translateX(0); } }
@media(prefers-reduced-motion:reduce) { .outcome-badge,.outcome-success::after { animation:none; } }
.equipment-magic-list { margin-top:14px; }
.battle-panel { margin:16px 0; padding:16px; border:1px solid var(--line); border-radius:8px; background:#17141a; }
.battle-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:12px; }
.battle-heading h3 { color:var(--gold); font-size:22px; }
.battle-builder { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px; }
.battle-list { display:grid; gap:10px; margin-top:12px; max-height:310px; overflow:auto; padding:3px; }
.battle-enemy { position:relative; padding:12px; border:1px solid #745f42; border-radius:8px; background:linear-gradient(135deg,#2b232a,#1b191e); }
.battle-enemy strong { color:var(--gold); }.battle-enemy p { font-size:13px; margin:5px 0; }
.battle-enemy progress { display:block; width:100%; height:12px; accent-color:#c73849; margin-bottom:9px; }
.battle-enemy select { display:inline-block; width:55%; margin-right:8px; }.battle-enemy-dead { border-color:#5a2531; background:#211318; }
.battle-enemy-dead strong { color:#fa929c; }.battle-enemy-dead progress { opacity:.3; }
.enemy-death-animation { animation:enemy-death .9s ease-out both; }
.enemy-kill-banner { position:fixed; z-index:110; top:50%; left:50%; transform:translate(-50%,-50%); width:min(90vw,530px); padding:45px 22px; border:1px solid #b84855; border-radius:12px; text-align:center; pointer-events:none; background:radial-gradient(ellipse,#650b1be8,#160d12f5); box-shadow:0 0 70px #9b102766; overflow:hidden; animation:enemy-kill-reveal 2.8s ease both; }
.enemy-kill-banner strong,.enemy-kill-banner p { position:relative;z-index:1; }.enemy-kill-banner strong { display:block; color:#ffb5bd; font:bold clamp(30px,7vw,48px) Georgia,serif; text-shadow:0 2px 12px #000; }.enemy-kill-banner p { color:var(--gold); margin-top:14px; font-weight:600; }
.spirit-gain { position:relative; z-index:1; margin:38px auto 0; width:150px; padding:10px; border:1px solid #e9c578; border-radius:8px; background:#17131eee; box-shadow:0 0 24px #c4aaff44; }
.spirit-gain>span { display:block; color:var(--gold); font-size:14px; }.spirit-gain-total { display:block; color:#f3dfff; font:700 32px Georgia,serif; }
.spirit-points { position:absolute; left:50%; top:40px; pointer-events:none; }.spirit-points i { position:absolute; width:9px; height:9px; background:#fff2c5; border-radius:50%; box-shadow:0 0 8px #dfb3ff,0 0 17px #f8d879; animation:spirit-point-fall .85s ease-in var(--point-delay) both; }
@keyframes spirit-point-fall { 0% { opacity:0;transform:translate(var(--point-x),-125px) scale(.6); } 20% { opacity:1; } 85% { opacity:1;transform:translate(0,0) scale(1); } 100% { opacity:0;transform:translate(0,5px) scale(.1); } }
.spirit-reward-pulse { animation:spirit-reward-pulse 2s ease; } @keyframes spirit-reward-pulse { 30%,70% { border-color:#efd1ff;box-shadow:0 0 24px #c297eaaa; } }
@media(prefers-reduced-motion:reduce) { .spirit-points i,.spirit-reward-pulse { animation:none; }.spirit-points { display:none; } }
@keyframes enemy-kill-reveal { 0% { opacity:0;transform:translate(-50%,-50%) scale(1.15); } 12%,78% { opacity:1;transform:translate(-50%,-50%) scale(1); } 100% { opacity:0;transform:translate(-50%,-50%) scale(.95); } }
.battle-damage-result { color:var(--gold); font-weight:600; margin-top:12px; }
@keyframes enemy-death { 0%{transform:translateX(-7px);background:#701127;} 25%{transform:translateX(6px);} 50%{transform:translateX(-3px);} 100%{transform:translateX(0);} }
@keyframes enemy-death-label { 0%{opacity:0;transform:scale(1.3);} 20%,65%{opacity:1;transform:scale(1);} 100%{opacity:0;} }
@media(prefers-reduced-motion:reduce) { .enemy-death-animation,.enemy-kill-banner { animation:none; } }
@media(max-width:480px) { .battle-builder { grid-template-columns:1fr; }.battle-heading { flex-wrap:wrap; } }
.spell-requirements { margin:12px 0; padding:12px; border:1px solid var(--gold); border-radius:7px; color:var(--text); background:#3b2b1855; font-weight:600; }
.equipment-spell-requirements { display:block; margin-top:5px; color:var(--muted); font-size:12px; line-height:1.5; }
.equipment-magic-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); }
.equipment-magic-row span { overflow-wrap:anywhere; }
.equipment-magic-row .row-roll { flex-shrink:0; }
#sortilegioEffect { display:block; margin:10px 0; }
#sortilegioEffect,.sortilegio-result-effect { padding:12px; border:1px solid var(--line); border-radius:8px; color:var(--text); line-height:1.6; }
.sortilegio-result-effect strong { color:var(--gold); }
.condition-panel { margin-top:18px; padding-top:14px; border-top:1px solid var(--line); }
.condition-panel h3 { font-size:18px; color:var(--gold); margin-bottom:10px; }
.condition-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:8px 0; }
.condition-row span { flex:1 1 180px; color:#e4c7ea; }
.magic-recipient[hidden] { display:none; }

.portrait-pair { display:flex; align-items:flex-start; gap:20px; }
.portrait-pair .race-portrait-frame { flex-direction:column; gap:9px; width:108px; text-align:center; font-size:14px; line-height:1.3; }
.era-portrait { background-size:cover; background-position:center; }
.enemy-portrait { float:left; width:64px; height:64px; margin:0 14px 12px 0; border:2px solid var(--gold); border-radius:50%; background-size:cover; background-position:center; box-shadow:0 0 0 3px #171419,0 0 0 4px #725936; }
.battle-enemy { display:flow-root; }
.battle-enemy progress { clear:both; }
.battle-enemy-dead .enemy-portrait { filter:grayscale(1); opacity:.5; }
.enemy-portrait[data-type*="hechicero"],.enemy-portrait[data-type*="zharak"],.enemy-portrait[data-type*="troll"],.enemy-portrait[data-type*="devorador"] { background-size:300% auto; }
.enemy-portrait[data-type*="hechicero"] { background-position:51% 13%; }
.enemy-portrait[data-type*="zharak"] { background-position:54% 12%; }
.enemy-portrait[data-type*="troll"] { background-position:50% 19%; }
.enemy-portrait[data-type*="devorador"] { background-position:51% 16%; }
.enemy-portrait[data-type*="umbrok"] { background-size:230% auto; background-position:54% 65%; }
.enemy-portrait[data-type*="orco"] { background-size:450% auto; background-position:59% 24%; }
.enemy-portrait[data-type="elfo"] { background-size:600% auto; background-position:53% 14%; }
.enemy-portrait[data-type="enano"] { background-size:600% auto; background-position:57% 27%; }
@media(max-width:720px) { .character-status { max-width:180px; }.portrait-pair { gap:12px; }.portrait-pair .race-portrait-frame { width:75px; font-size:12px; } }
@media(max-width:380px) { .portrait-pair { gap:8px; }.portrait-pair .race-portrait-frame { width:59px; font-size:11px; }.portrait-pair .race-portrait { width:54px; height:54px; } }

.sound-controls { display:flex; justify-content:flex-end; margin:8px 0 14px; }
.sound-toggle { min-height:40px; font-size:14px; }
.sound-toggle[aria-pressed="false"] { color:var(--muted); border-color:var(--line); }

.battle-enemy-selected { border-color:#ffe3a1; outline:2px solid #d5b376; outline-offset:1px; background:linear-gradient(135deg,#584020,#29212a); box-shadow:inset 0 0 24px #e2ba5733,0 0 15px #d5b37655; }
.battle-enemy-selected strong { color:#ffecbc; }
.battle-enemy-selected .row-roll { background:#d5b376; color:#171419; }
.battle-victory-banner { position:fixed; z-index:125; top:50%; left:50%; transform:translate(-50%,-50%); width:min(90vw,560px); padding:38px 22px; border:2px solid #eacb81; border-radius:14px; pointer-events:none; text-align:center; overflow:hidden; background:radial-gradient(ellipse,#40552ef5,#151c1ff5); box-shadow:0 0 90px #d7b95a66,inset 0 0 35px #e5c27022; animation:battle-victory-reveal 4.2s ease both; }
.victory-emblem { display:block; color:#ffeab0; font-size:54px; text-shadow:0 0 25px #e4c354; animation:victory-emblem-shine 1.2s ease-out both; }
.battle-victory-banner strong { display:block; font:bold clamp(30px,7vw,48px)/1.15 Georgia,serif; color:#fff0bd; text-shadow:0 2px 12px #000; }
.battle-victory-banner p { margin-top:18px; font-size:17px; color:#d6e7bd; }
@keyframes battle-victory-reveal { 0% { opacity:0; transform:translate(-50%,-50%) scale(.8); } 12% { opacity:1; transform:translate(-50%,-50%) scale(1.04); } 22%,85% { opacity:1; transform:translate(-50%,-50%) scale(1); } 100% { opacity:0; transform:translate(-50%,-50%) scale(.95); } }
@keyframes victory-emblem-shine { 0% { opacity:0; transform:scale(.4) rotate(-45deg); } 100% { opacity:1; transform:scale(1) rotate(0); } }
@media(prefers-reduced-motion:reduce) { .battle-victory-banner,.victory-emblem { animation:none; } }

/* Inventory, daily upkeep and spell discoveries */
.inventory-controls{display:grid;gap:8px;margin:14px 0}.inventory-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px;border:1px solid #93703a66;border-radius:8px;background:#211b15;color:#eadbc2}.inventory-row>span{flex:1;min-width:150px}.inventory-row small{flex-basis:100%}.inventory-row label{display:grid;gap:4px;max-width:130px;font-size:.85rem}.inventory-row input{width:100%;min-width:0}.table-random-actions{display:flex;flex-wrap:wrap;gap:10px;padding:14px}.ammo-panel{padding:12px;border:1px solid #b38b4f66;border-radius:8px;margin:12px 0}.ammo-panel[hidden]{display:none}.ammo-panel label{display:block;margin-bottom:10px}#changeDay{display:block;margin-top:12px}.adventure-dialog{width:min(600px,calc(100vw - 28px));max-height:88dvh;overflow-y:auto;padding:24px;color:#eee0c9;background:#211b17;border:1px solid #bb9257;border-radius:16px}.adventure-dialog label{display:block;margin:12px 0}.adventure-dialog select,.adventure-dialog input{max-width:100%;color:#f5e7d1;background:#31271d}.adventure-dialog::backdrop{background:#000c}#randomChoices{max-height:180px;overflow:auto;font-size:.9rem}#randomChoices ol{padding-left:28px}#randomResult{margin-top:16px}#randomResult h3{color:#edc87e}#soulCheckResult{margin:18px 0}.adventure-dialog .dice-stage{min-height:180px}#continueSoul[hidden]{display:none}

.combat-life{padding:12px 16px;border:1px solid #a77e45;border-radius:10px;background:#211a13;color:#f7e8ca;font-size:1.15rem;font-weight:700}.combat-life[data-low="true"]{border-color:#f17676;color:#ffc6c6;background:#3a1118}#combatLife{position:sticky;top:0;z-index:3;box-shadow:0 3px 12px #0008}.combat-health-roster{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.combat-health-roster article{display:grid;gap:6px;min-width:180px;flex:1}.combat-health-roster progress{width:100%;accent-color:#b84646}.battle-companion{border-style:dashed}

.attack-target-actions{border:1px solid #ae884f;border-radius:10px;padding:12px;margin:12px 0;background:#332619}.attack-target-actions>strong{display:block;color:#f5deb3;margin-bottom:8px}.attack-target-actions .shared-turn-actions{display:flex;gap:10px}.attack-target-actions button{flex:1;min-height:44px}

.npc-creator{padding:14px;border:1px solid #9a7645;margin:16px 0;border-radius:12px}.npc-creator form{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:14px}.npc-creator h3,.npc-creator .dice-stage,.npc-creator p{grid-column:1/-1}[data-npc-attack]{padding:18px;border:1px solid #aa864c;margin:14px 0;border-radius:12px}[data-npc-roster]{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}[data-npc-roster] h3{grid-column:1/-1}

button.race-portrait{padding:0;cursor:pointer}button.race-portrait:focus-visible{outline:3px solid #fff;outline-offset:5px}#portraitEditor{max-width:440px;width:calc(100% - 32px)}#portraitEditor canvas{display:block;max-width:100%;width:260px;height:auto;aspect-ratio:1;border-radius:50%;margin:18px auto;border:2px solid #a88750;background:#151118}#portraitEditor label{display:block;margin:12px 0}#portraitEditor input[type="range"]{width:100%;touch-action:pan-x}#portraitEditor .shared-turn-actions{display:flex;gap:10px;flex-wrap:wrap}

.portrait-picker{padding:18px;margin:12px 0;border:1px solid #a88750;border-radius:10px;background:#201e23}.portrait-picker[hidden]{display:none}.portrait-picker label{display:block}.portrait-picker input{display:block;max-width:100%;margin:12px 0;font-size:16px}.portrait-picker p{color:var(--muted)}#portraitEditor{padding:20px}

.purchase-effect{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);width:min(310px,85vw);padding:64px 18px 24px;text-align:center;pointer-events:none;z-index:12000;background:radial-gradient(ellipse,#442c0cf2,#17120cef 72%);border:1px solid #c49b5b;border-radius:18px;box-shadow:0 0 55px #b7821f44;animation:purchase-reveal 1.9s both}.purchase-effect strong{display:block;color:#ffe2a1;font:700 38px Georgia,serif;text-shadow:0 2px 6px #000}.purchase-effect>span{display:block;margin-top:7px;color:#e1cfac;font-size:15px}.purchase-coins{position:absolute;inset:-75px 0 65px;overflow:hidden}.luar-coin{display:inline-block;width:38px;height:38px;border:0;border-radius:50%;background:transparent url('assets/luar-official.jpeg') 50% 47.5%/110.4% no-repeat;box-shadow:1px 2px 3px #0008}.purchase-coins i{position:absolute;left:var(--x);top:0;opacity:0;animation:coin-fall 1.05s var(--delay) both}@keyframes coin-fall{0%{opacity:0;transform:translateY(-30px) rotateY(0)}12%{opacity:1}65%{opacity:1;transform:translateY(104px) rotateY(var(--turn))}78%{transform:translateY(76px) rotateY(var(--turn))}95%{opacity:1}100%{opacity:0;transform:translateY(130px) rotateY(var(--turn))}}@keyframes purchase-reveal{0%{opacity:0;scale:.9}12%,80%{opacity:1;scale:1}100%{opacity:0;scale:.98}}@media(prefers-reduced-motion:reduce){.purchase-effect{animation:none}.purchase-coins i{animation:none;opacity:1;top:75px;transform:none}}

/* Shared initiative and mandatory ShadowMaster requests */
.combat-turn-banner{padding:18px;margin:12px 0 20px;border:1px solid #d4ac61;border-radius:12px;background:linear-gradient(125deg,#382916,#171517);box-shadow:inset 4px 0 #d4ac61;color:#f9ecd4}.combat-turn-banner>strong{display:block;font:700 clamp(24px,4vw,34px)/1.18 Georgia,serif;margin:6px 0 10px;color:#ffe3a1;overflow-wrap:anywhere}.combat-turn-banner>p{margin:8px 0 14px;font-size:16px}.turn-order-label{display:block;font-size:14px;color:#dfc7a1;margin-top:16px}.turn-order{display:flex;gap:8px;flex-wrap:wrap;list-style:none;margin:10px 0 0;padding:0}.turn-order li{display:grid;grid-template-columns:26px 1fr;gap:3px 8px;flex:1 1 145px;padding:10px;border:1px solid #84704d;border-radius:7px;background:#211d1a;min-width:0}.turn-order li>span{grid-row:span 2;align-self:center;color:#e8cf9d}.turn-order b{font-size:16px;overflow-wrap:anywhere}.turn-order small{font-size:14px;line-height:1.4;color:#d9cbb8}.turn-order [data-turn="current"]{border:2px solid #f3ca73;background:#59401c;box-shadow:0 0 14px #d4ac6122}.turn-order [data-turn="fled"],.turn-order [data-turn="dead"]{opacity:.6}.turn-order [data-turn="acted"]{background:#17201d;border-color:#536956}.required-roll-dialog{box-sizing:border-box;width:min(620px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;padding:26px;border:2px solid #d4ac61;border-radius:16px;color:#f8ecd7;background:#211b17;box-shadow:0 20px 90px #000b}.required-roll-dialog::backdrop{background:#070609dd;backdrop-filter:blur(5px)}.required-roll-dialog h2{color:#ffe1a3;font:700 30px/1.2 Georgia,serif;margin:10px 0 18px}.required-roll-dialog p{font-size:16px;line-height:1.55}.required-roll-dialog label{display:block;margin:16px 0 10px}.required-roll-dialog input{width:100%;box-sizing:border-box;font-size:18px;margin-top:8px}.required-roll-dialog button{min-height:48px;margin:5px 6px 5px 0}.required-roll-dialog .roll-request>strong{font-size:20px}.required-roll-dialog .public-roll-overlay{position:relative;inset:auto;width:auto;transform:none;min-height:240px;padding:12px}.incoming-attack{padding:14px 16px;border:1px solid #bc6b64;border-radius:10px;background:#361b21;color:#ffe0d7;margin:12px 0}.incoming-attack strong{font-size:19px}.incoming-attack p{margin:7px 0 0;font-size:16px}.incoming-attack[hidden],.incoming-attack-toast[hidden]{display:none}.incoming-attack-toast{position:fixed;z-index:12500;pointer-events:none;top:25%;left:50%;transform:translateX(-50%);width:min(460px,calc(100vw - 38px));box-sizing:border-box;padding:24px;border:2px solid #b7635c;border-radius:12px;background:#291419f5;color:#ffe5d9;box-shadow:0 15px 75px #000c;text-align:center;animation:incoming-reveal .4s ease-out}.incoming-attack-toast strong{display:block;font:700 28px/1.2 Georgia,serif}.incoming-attack-toast p{font-size:18px;margin:12px 0 0}@keyframes incoming-reveal{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}@media(prefers-reduced-motion:reduce){.incoming-attack-toast{animation:none}}
.shared-combat-player .combat-turn-banner{flex-basis:100%;order:-1;margin-bottom:0}.shared-combat-player .combat-turn-banner>strong{font:700 clamp(24px,4vw,34px)/1.18 Georgia,serif;color:#ffe3a1}.shared-combat-player .combat-turn-banner>p{font-size:16px}.shared-combat-player .turn-order b{color:#f9ecd4}.required-roll-dialog .roll-request label{display:block}.required-roll-dialog .roll-request input{width:100%}

.info-confirmation{width:min(560px,92vw);max-height:90dvh;overflow:auto;padding:24px;text-align:center;border:1px solid #c49b5b;border-radius:16px;color:#f4dfb6;background:#1c1410}.info-confirmation::backdrop{background:#000b}.info-confirmation>.info-animation{position:relative!important;inset:auto!important;transform:none!important;scale:1!important;width:100%!important;max-width:100%;margin:0!important;animation:none!important;opacity:1!important;pointer-events:auto!important;box-sizing:border-box}.info-confirmation>button{position:relative;z-index:100;margin-top:20px;min-width:100px}.info-confirmation .spirit-gain-total{display:none}

.sm-player-entry{display:flex;flex-direction:column;gap:8px}.sm-player-entry>.sm-player-card{width:100%}

/* Legible native menus and consistent actor identity on cards and notices. */
select{color-scheme:dark;background-color:#24212d;color:#fff5df}
select option,select optgroup{background:#24212d;color:#fff5df}
select option:disabled{color:#a6a0af}
.info-confirmation,.required-roll-dialog,.public-roll-overlay{border:3px solid var(--actor-color,var(--default-actor-color,#d4ac61))}
.info-confirmation p,.master-request strong,.combat-inventory p{white-space:pre-line}
.info-confirmation>button{margin:16px 6px 0}
.movement-dialog,.acquisition-cart,.combat-inventory{box-sizing:border-box;width:min(620px,94vw);max-height:90dvh;overflow:auto;padding:26px;border:3px solid var(--actor-color,var(--default-actor-color,#d4ac61));border-radius:14px;background:#211c26;color:#fff0dc}
.movement-dialog::backdrop,.acquisition-cart::backdrop,.combat-inventory::backdrop{background:#09070cbb}
.movement-dialog h2,.acquisition-cart h2,.combat-inventory h2{font:700 28px Georgia,serif;margin-bottom:18px}
.movement-dialog select{display:block;width:100%;margin:14px 0;padding:12px}
.movement-dialog button{margin:8px 8px 0 0}
.acquisition-cart li{padding:12px 0;border-bottom:1px solid #64546c}
.acquisition-cart p{margin:18px 0;line-height:1.6}
.turn-order li,.turn-order [data-turn="current"],.turn-order [data-turn="acted"],.battle-companion,.battle-enemy-dead{border:3px solid var(--actor-color,var(--default-actor-color,#d4ac61))}
.turn-order li>span{grid-row:span 3}.turn-order li>small{grid-column:2}
.enemy-distances{line-height:1.6;white-space:pre-line;color:#e5dacf}
.dead-stamp{display:block;border:3px solid var(--actor-color,#c56159);color:var(--actor-color,#ef9589);border-radius:5px;padding:6px 12px;letter-spacing:3px;transform:rotate(-5deg);margin:8px 0;font-weight:900}
[data-combat-inventory]{margin-bottom:14px}

dialog{border-color:var(--actor-color,var(--default-actor-color,#d4ac61))}

.is-current-turn,.turn-order [data-turn="current"]{border:4px solid var(--actor-color,#f3ca73)!important;box-shadow:0 0 0 3px #17131c,0 0 0 6px var(--actor-color,#f3ca73),0 0 24px var(--actor-color,#f3ca73)!important;background:linear-gradient(135deg,#443624,#201b25);}
.is-current-turn>strong::before{content:'▶ Turno actual · ';font-size:14px;color:var(--actor-color,#f3ca73);}

.stat-improvement{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid #7bbb82;border-radius:5px;background:#21362a;color:#b6f7bf;font-weight:700;font-size:14px;white-space:nowrap}.stat-row:has(.stat-improvement:not([hidden])){flex-wrap:wrap}.stat-improvement{flex:none}

.character-identity-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:14px;min-width:0;width:100%}.character-identity-fields label{min-width:0;display:flex;flex-direction:column;gap:6px}.character-identity-fields select{width:100%;min-height:44px;font-size:16px;box-sizing:border-box}.character-identity-fields .identity-description,.character-identity-fields>small{grid-column:1/-1;margin:0;line-height:1.5}.identity-description{font-weight:700;color:#e7c88e}.character-identity-fields>small{color:#c3b6aa}.arena-identity-editor{width:min(600px,92vw)}.arena-combatant-heading p{font-size:14px;color:#dcc69c;margin-top:6px}@media(max-width:600px){.character-identity-fields{grid-template-columns:1fr}}

.master-edit-grid>.character-identity-fields{grid-column:1/-1}

.music-credit{margin:0;padding:14px 16px;text-align:center;font-size:12px;line-height:1.7;color:var(--muted);background:#0e0d10;overflow-wrap:anywhere}
.music-credit a{color:var(--gold);text-underline-offset:3px}
.avatar-choices{grid-column:1/-1;min-width:0;margin-top:14px;border-top:1px solid #655037;padding-top:18px}
.avatar-preview{display:flex;align-items:center;gap:18px;margin:14px 0;min-width:0}
.avatar-preview>img{width:100px;height:156px;object-fit:contain;background:#141213;border:1px solid #806742;border-radius:7px}
.avatar-preview>div{display:flex;flex-direction:column;gap:12px;min-width:0}
.avatar-choices summary,.avatar-details summary{cursor:pointer;color:#e9cc88;padding:12px 0;min-height:44px}
.avatar-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:12px;max-height:440px;overflow-y:auto;overscroll-behavior:contain;padding:6px}
.avatar-option{display:flex;flex-direction:column;align-items:center;gap:9px;padding:8px;min-width:0;border:1px solid #665435;border-radius:8px;background:#1b171b;color:#e9dfcc;cursor:pointer}
.avatar-option img{width:100%;height:180px;object-fit:contain;background:#100e10;border-radius:4px}
.avatar-option span{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.avatar-option[aria-pressed="true"]{border:2px solid #edc571;background:#30281c;box-shadow:0 0 0 2px #edc57144}
.avatar-option:focus-visible{outline:3px solid #ffe1a0;outline-offset:2px}
.avatar-choices small{display:block;margin-top:14px;line-height:1.6;color:#bfb7ab}
.avatar-empty{grid-column:1/-1;color:#bfb7ab;font-size:14px;line-height:1.6}
.avatar-change-note{font-size:14px;color:#f1c275;line-height:1.5}
.avatar-change-note:empty{display:none}
.avatar-details>img{display:block;max-width:100%;width:auto;max-height:65dvh;object-fit:contain;margin:12px auto}
dialog.avatar-dialog{width:min(540px,calc(100vw - 24px));max-height:92dvh;overflow:auto;padding:18px;box-sizing:border-box;border:1px solid #ac8744;background:#171318;color:#efdfbd;border-radius:14px}
.avatar-dialog .dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.avatar-dialog h2{font-size:23px;margin:0;overflow-wrap:anywhere}
.avatar-dialog>img{display:block;margin:14px auto;width:auto;max-width:100%;height:auto;max-height:68dvh;object-fit:contain}
.avatar-dialog>p{text-align:center}
.avatar-dialog::backdrop{background:#050305db}
.arena-identity-editor{max-height:92dvh;overflow:auto}
@media(max-width:480px){.avatar-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.avatar-option img{height:160px}.avatar-preview{gap:12px}.avatar-preview>img{width:80px;height:130px}.avatar-dialog h2{font-size:20px}}
