/* Original Arcanum optical finishes, informed by Simey’s layered holo demo.
   All textures are local; artwork and readable card copy remain separate. */
.art-card{--finish-power:.55;--spectrum:var(--foil-a),var(--foil-b),var(--foil-c),var(--foil-a);--grating:118deg;--shine:0}
.art-card[data-element=fire]{--grating:108deg;--spectrum:#ff5324,#ffc44e,#ffe8a8,#d53618,#ff8b2d}
.art-card[data-element=ice]{--grating:58deg;--spectrum:#537fd8,#b4fbff,#eeeaff,#64c0ef,#91e9ff}
.art-card[data-element=water]{--grating:155deg;--spectrum:#1679d5,#47f2dd,#bceeff,#205ab5,#5ddcdb}
.art-card[data-element=earth]{--grating:32deg;--spectrum:#b39549,#eff0ae,#69b98e,#d5a345,#f4dfac}
.art-card[data-element=wind]{--grating:72deg;--spectrum:#76b5ac,#f0ffce,#8bd9cf,#a1c5ff,#c7e9ab}
.art-card[data-element=lightning]{--grating:132deg;--spectrum:#8153ff,#e1baff,#7abaff,#efefff,#986dff}
.art-card[data-element=light]{--grating:45deg;--spectrum:#d49b44,#fff0a5,#fffce2,#e4b46a,#e8d0ff}
.art-card[data-element=dark]{--grating:165deg;--spectrum:#6339b1,#c46bda,#7d8bdf,#eb96d0,#5f5db5}
.art-window .element-foil{background-image:repeating-linear-gradient(var(--grating),var(--spectrum)),repeating-linear-gradient(calc(var(--grating) + 40deg),#080f22 0 9%,#d9eced 10%,#132235 11% 19%);background-blend-mode:color-dodge;background-size:240% 430%,310% 290%;background-position:var(--bx) var(--by),var(--by) var(--bx);mix-blend-mode:color-dodge;opacity:calc(var(--foil)*var(--finish-power)*.44);filter:contrast(1.5) saturate(1.15)}
.art-window .element-pattern{opacity:calc(var(--foil)*var(--finish-power)*.38)}
.art-window .specular{background:radial-gradient(ellipse at var(--mx) var(--my),#fff6d9a6,transparent 37%),linear-gradient(118deg,transparent 30%,#ffffff24 48%,transparent 62%);background-size:100% 100%,250% 250%;background-position:center,var(--bx) var(--by);mix-blend-mode:screen}
.holo-grain{background-image:url('assets/foil-grain.svg');background-size:170px;mix-blend-mode:color-dodge;opacity:calc(var(--foil)*var(--finish-power)*.20);mask-image:radial-gradient(ellipse at var(--mx) var(--my),#000,transparent 68%)}
.holo-etch{background:repeating-linear-gradient(60deg,transparent 0 17px,#f8e7b49c 17px 17.7px,transparent 18px 36px),repeating-linear-gradient(-60deg,transparent 0 17px,#d3eeff99 17px 17.7px,transparent 18px 36px);background-size:140% 140%;background-position:var(--bx) var(--by);mix-blend-mode:color-dodge;mask-image:radial-gradient(ellipse at var(--mx) var(--my),#000,transparent 72%);opacity:0}
.art-card[data-rarity=common]{--finish-power:0}.art-card[data-rarity=uncommon]{--finish-power:.28}.art-card[data-rarity=rare]{--finish-power:.65}.art-card[data-rarity=epic]{--finish-power:.9}.art-card[data-rarity=legendary]{--finish-power:1.1}.art-card[data-rarity=mythic]{--finish-power:1.3}
.art-card[data-rarity=common] .specular{opacity:calc(var(--glare)*.5)}
.art-card[data-rarity=uncommon] .element-foil{mix-blend-mode:soft-light;opacity:calc(var(--foil)*.42)}
.art-card[data-rarity=rare] .rarity-foil{opacity:calc(var(--foil)*.3);background:repeating-linear-gradient(90deg,transparent 0 2px,#ffffff55 2.5px,transparent 3px 6px),linear-gradient(var(--grating),var(--spectrum));background-size:100% 100%,250% 400%;background-position:center,var(--bx) var(--by);background-blend-mode:overlay;mix-blend-mode:soft-light;mask-image:radial-gradient(ellipse at var(--mx) var(--my),#000,transparent 75%)}
.art-card[data-rarity=epic] .rarity-foil{opacity:calc(var(--foil)*.38);background:repeating-linear-gradient(125deg,#0c1628 0 5%,#cae3ed 5.7%,#0c1628 6.5% 13%),linear-gradient(20deg,var(--spectrum));background-size:280% 260%,350% 450%;background-blend-mode:color-dodge;background-position:var(--bx) var(--by);mix-blend-mode:soft-light}
.art-card[data-rarity=epic] .holo-etch{opacity:calc(var(--foil)*.27)}
.art-card[data-rarity=legendary] .rarity-foil{opacity:calc(var(--foil)*.44);background:repeating-conic-gradient(from 18deg at 50% 50%,#e9b357 0 2deg,#12121a 3deg 15deg,#f9efd3 16deg 17deg,#12121a 18deg 30deg);background-size:220% 220%;background-position:var(--bx) var(--by);mix-blend-mode:color-dodge;mask-image:radial-gradient(ellipse at var(--mx) var(--my),transparent 10%,#000 35%,transparent 85%)}
.art-card[data-rarity=legendary] .holo-etch{opacity:calc(var(--foil)*.35);background:repeating-radial-gradient(ellipse at 50% 110%,transparent 0 21px,#ffe2a3 22px,transparent 23px 42px)}
.art-card[data-rarity=mythic] .rarity-foil{opacity:calc(var(--foil)*.64);background-image:repeating-linear-gradient(122deg,#11192a 0 5%,#faffef 6%,#1e2b3c 7% 12%),repeating-linear-gradient(7deg,#ffa387 0%,#ffe8a5 12%,#79ecda 24%,#94bbff 36%,#e3a1ff 48%,#ffa387 60%);background-size:350% 350%,450% 650%;background-position:var(--bx) var(--by),var(--by) var(--bx);background-blend-mode:color-dodge;mix-blend-mode:soft-light;filter:contrast(1.65) saturate(1.3);mask-image:radial-gradient(ellipse at var(--mx) var(--my),#000 12%,#0009 65%,transparent)}
.art-card[data-rarity=mythic] .holo-etch{opacity:calc(var(--foil)*.5);background-image:repeating-conic-gradient(from 30deg,#fff2ca66 0 60deg,transparent 60deg 120deg,#a6ddff44 120deg 180deg);background-size:32px 55px;mix-blend-mode:color-dodge;mask-image:radial-gradient(ellipse at var(--mx) var(--my),#000,transparent 65%)}
.art-card[data-rarity=mythic] .holo-grain{opacity:calc(var(--foil)*.48)}
.art-card[data-rarity=mythic]:not(.original){filter:drop-shadow(0 16px 20px #0009) drop-shadow(0 0 13px rgba(var(--accent-rgb),.44))}
.frame-luster{z-index:5;mask-image:var(--skin);mask-size:100% 100%;background:linear-gradient(120deg,transparent 20%,#fff0bd66 38%,transparent 42%,#b7e6ff77 46%,transparent 52%);background-size:340% 300%;background-position:var(--bx) var(--by);mix-blend-mode:color-dodge;opacity:calc(var(--foil)*var(--finish-power)*.48)}
.frame-luster::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at var(--mx) var(--my),#ffffe950,transparent 45%)}
.art-card.original .art-window>div,.art-card.original .art-window>canvas{opacity:0!important}.art-card.original .frame-luster,.art-card.no-frame .frame-luster{display:none}
body[data-motion=off] .art-window *{animation:none!important}
/* Keep the foil's fine structure below the scale of the illustration. */
.art-window .element-foil{opacity:calc(var(--foil)*var(--finish-power)*.28)}
.art-card[data-rarity=mythic] .holo-etch{background-image:repeating-radial-gradient(ellipse at 0% 100%,transparent 0 5px,#d8f3ff77 5.4px,transparent 6px 11px),repeating-radial-gradient(ellipse at 100% 0%,transparent 0 7px,#fff1c966 7.5px,transparent 8px 15px);background-size:130% 140%;opacity:calc(var(--foil)*.38)}
.art-card[data-rarity=mythic] .holo-grain{opacity:calc(var(--foil)*.28)}
.art-card[data-rarity=mythic] .rarity-foil{opacity:calc(var(--foil)*.48)}
.frame-luster{opacity:calc(var(--foil)*var(--finish-power)*.28);background-image:linear-gradient(120deg,transparent 20%,var(--bright) 38%,transparent 42%,var(--foil-c) 46%,transparent 52%)}
