/* Cosmetic recipes from the approved gallery. */
[data-texture]{--frame-paint:linear-gradient(135deg,var(--a),var(--b) 40%,var(--a) 65%,var(--b));--ornament:''}
[data-texture=brushed]{--frame-paint:repeating-linear-gradient(175deg,var(--a) 0 1px,var(--b) 2px 4px)}
[data-texture=stone]{--frame-paint:repeating-linear-gradient(35deg,var(--b) 0 10px,var(--a) 11px 12px,var(--b) 13px 23px)}
[data-texture=carved]{--frame-paint:repeating-conic-gradient(from 45deg,var(--a) 0 25%,var(--b) 0 50%) 0 0/18px 18px;--ornament:'◈';--ornament-border:1px solid #e9cf8555}
[data-texture=waves]{--frame-paint:repeating-radial-gradient(ellipse at 20% 0%,var(--a) 0 5px,var(--b) 6px 12px)}
[data-texture=crystal]{--frame-paint:repeating-conic-gradient(from 25deg,var(--a) 0 16%,var(--b) 0 33%,#ffffffaa 0 36%,var(--a) 0 50%) 0 0/40px 56px}
[data-texture=runes]{--frame-paint:repeating-linear-gradient(0deg,var(--b) 0 13px,var(--a) 14px 17px,var(--b) 18px 34px);--ornament:'ᛟ\Aᚱ\Aᛉ\Aᛟ\Aᚱ\Aᛉ'}
[data-texture=ember]{--frame-paint:radial-gradient(circle at 30% 15%,#fff7a1,transparent 25%),linear-gradient(30deg,var(--b),var(--a),var(--b));--ornament-border:1px solid #ffae6966}
[data-texture=circuit]{--frame-paint:repeating-linear-gradient(90deg,var(--b) 0 10px,var(--a) 11px 13px,var(--b) 14px 19px);--ornament:'⊡';--ornament-border:2px dashed #64ffdc88}
[data-texture=lightning]{--frame-paint:repeating-conic-gradient(from 80deg,var(--b) 0 20%,#f3efff 21% 22%,var(--a) 23% 25%) 0 0/24px 65px;--ornament:'ϟ';--ornament-border:1px solid #d9caff77}
[data-texture=lava]{--frame-paint:repeating-conic-gradient(from 35deg,#281916 0 19%,var(--b) 20% 23%,var(--a) 24% 26%) 0 0/37px 49px}
[data-texture=aurora]{--frame-paint:linear-gradient(35deg,#275687,var(--a),var(--b),#50c7a0,var(--a))}
[data-texture=chains]{--frame-paint:repeating-radial-gradient(ellipse,var(--b) 0 3px,var(--a) 4px 6px,var(--b) 7px 10px) 0 0/14px 22px;--ornament-border:2px dotted #d3c6f688}
[data-texture=vines]{--frame-paint:repeating-radial-gradient(ellipse at 0 0,var(--a) 0 2px,var(--b) 3px 8px) 0 0/20px 30px;--ornament:'❧';--ornament-border:2px solid #8fba6077}
[data-texture=rainbow]{--frame-paint:conic-gradient(from 0deg,#ff8b93,#ffd380,#8dffac,#8cdbff,#c1a1ff,#ff95dd,#ff8b93)}
[data-texture=portal]{--frame-paint:repeating-conic-gradient(#6cf6ff 0 10deg,#331350 11deg 24deg,#ce9fff 25deg 30deg);--ornament-border:2px solid #8effef88}
[data-texture=aegis]{--frame-paint:repeating-conic-gradient(from 45deg,#ffec95 0 20%,#9d5519 21% 40%,#e94949 41% 45%,#ffe2a8 46% 50%) 0 0/40px 40px;--ornament:'♛';--ornament-border:2px double #ffe9aa}
[data-texture=aurora] .ft-face,[data-texture=rainbow] .ft-face,[data-texture=portal] .ft-face{background-size:100% 100%,200% 200%;animation:frame-flow 7s linear infinite}
[data-texture=lightning] .ft-face{animation:charge 2.3s steps(4) infinite}[data-texture=lava] .ft-face{animation:charge 4s ease-in-out infinite alternate}
.cosmetic-overlay{position:absolute;inset:0;z-index:2;pointer-events:none;background:var(--finish-paint,none);opacity:var(--finish-opacity,.4);mix-blend-mode:screen;background-size:var(--finish-size,200% 200%);background-position:var(--px,50%) var(--py,50%);animation:foil-drift 8s ease-in-out infinite alternate}
[data-finish=none]{--finish-paint:none;--finish-opacity:0}
[data-finish=satin]{--finish-paint:linear-gradient(130deg,transparent 15%,#ffefd4 47%,transparent 70%);--finish-opacity:.13}
[data-finish=paper]{--finish-paint:repeating-linear-gradient(3deg,#efdcc077 0 1px,transparent 1px 3px),repeating-linear-gradient(94deg,#fff1d044 0 1px,transparent 1px 4px);--finish-opacity:.22;--finish-size:6px 7px}
[data-finish=metallic]{--finish-paint:repeating-linear-gradient(110deg,transparent 0 18%,#d4e4f9 24%,transparent 31%);--finish-opacity:.24}
[data-finish=sparkle]{--finish-paint:radial-gradient(circle,#ffe5a1 0 1px,transparent 2px) 0 0/32px 43px;--finish-opacity:.4;--finish-size:32px 43px}
[data-finish=holo]{--finish-paint:linear-gradient(115deg,transparent 15%,#f47bc4 30%,#9a83ee 40%,#55dada 50%,#e5e283 60%,transparent 80%);--finish-opacity:.48}
[data-finish=reverse]{--finish-paint:radial-gradient(ellipse at center,transparent 22%,#a06eea88 40%,#79eace 65%,#ffb0db 80%);--finish-opacity:.52;--finish-size:100% 100%}
[data-finish=prismatic]{--finish-paint:repeating-conic-gradient(from 25deg,#ffafcc88 0 15%,#9d95f999 0 33%,#93efffaa 0 50%) 0 0/74px 99px;--finish-size:74px 99px;--finish-opacity:.4}
[data-finish=stars]{--finish-paint:radial-gradient(circle,#d3e0ff 0 1px,transparent 2px) 0 0/37px 49px,linear-gradient(#455cb544,transparent);--finish-size:37px 49px;--finish-opacity:.5}
[data-finish=diamond]{--finish-paint:repeating-conic-gradient(from 45deg,#d3ffff77 0 25%,transparent 0 50%) 0 0/19px 19px;--finish-size:19px 19px;--finish-opacity:.42}
[data-finish=oil]{--finish-paint:repeating-radial-gradient(ellipse at var(--px,50%) var(--py,50%),#a55cec99 0 12%,#77ffa088 15%,#fc9eab66 22%,transparent 30%);--finish-opacity:.42}
[data-finish=glitch]{--finish-paint:repeating-linear-gradient(0deg,transparent 0 12px,#5bffe477 13px 14px,transparent 15px 25px,#ff77cf55 26px 28px);--finish-size:100% 100%;--finish-opacity:.35}
[data-finish=glitch] .cosmetic-overlay{animation:glitch .9s steps(2) infinite}
[data-finish=ghost]{--finish-paint:radial-gradient(ellipse at var(--px,50%) var(--py,30%),#aef8ddaa,transparent 60%),linear-gradient(120deg,transparent,#d4d5ff88,transparent);--finish-opacity:.4}
[data-finish=inferno]{--finish-paint:radial-gradient(ellipse at 50% 110%,#ff4c00cc,transparent 65%);--finish-opacity:.65;--finish-size:100% 100%}
[data-finish=blizzard]{--finish-paint:linear-gradient(135deg,#d4ffff77,transparent 50%,#73b7ea55);--finish-opacity:.4}
[data-finish=voidstorm]{--finish-paint:radial-gradient(circle at 52% 43%,#08030fcc 0 8%,#6d21a888 20%,transparent 48%),radial-gradient(ellipse at 15% 90%,#7d30d977,transparent 55%);--finish-opacity:.7;--finish-size:100% 100%}
[data-finish=voidstorm] .cosmetic-overlay{animation:void-breathe 3.6s ease-in-out infinite}
[data-finish=sandstorm]{--finish-paint:linear-gradient(100deg,transparent 5%,#c58a4670 28%,#f0c47b66 45%,#7a4b2870 72%,transparent 95%);--finish-opacity:.58;--finish-size:220% 100%}
[data-finish=sandstorm] .cosmetic-overlay{animation:sand-haze 3.2s linear infinite}
[data-finish=cosmic]{--finish-paint:radial-gradient(ellipse at var(--px,50%) var(--py,30%),#d75cff88,transparent 45%),radial-gradient(ellipse at 0 100%,#328cffa0,transparent 60%);--finish-opacity:.6}
[data-finish=rift]{--finish-paint:repeating-conic-gradient(from 15deg at var(--px,50%) var(--py,40%),transparent 0 10deg,#ed81ee88 11deg 13deg,transparent 14deg 30deg,#7fdfffaa 31deg 34deg);--finish-opacity:.4;--finish-size:100% 100%}
.particles{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.particles i{position:absolute;display:none;width:3px;height:3px;border-radius:50%;background:white;box-shadow:0 0 5px currentColor;animation:float 5s linear infinite}
[data-finish=inferno] .particles i{display:block;width:calc(3px + mod(var(--i),4)*1px);height:calc(5px + mod(var(--i),5)*1px);color:#ff6a1f;background:radial-gradient(circle at 68% 68%,#fff6a8 0 13%,#ffc14f 28%,#ff6323 62%,#b91d0a 82%,transparent 84%);border-radius:55% 48% 52% 18%;box-shadow:0 0 5px #ff9b38,0 0 11px #ff3d1766;animation:cosmetic-rise calc(2.8s + mod(var(--i),5)*.28s) ease-in infinite}
[data-finish=inferno] .particles i:nth-child(3n){filter:hue-rotate(-12deg) brightness(1.15)}
[data-finish=inferno] .particles i:nth-child(4n){width:3px;height:3px;border-radius:50%;background:#ffe398;box-shadow:0 0 5px #ff9a36,0 0 9px #ff4c22}
[data-finish=blizzard] .particles i{display:block;width:auto;height:auto;color:#effdff;background:none;border-radius:0;box-shadow:none;filter:drop-shadow(0 0 2px #9feaff) drop-shadow(0 0 5px #82cfff99);animation:snow calc(5s + mod(var(--i),5)*.42s) linear infinite}
[data-finish=blizzard] .particles i::before{content:'\2744';display:block;font:400 calc(7px + mod(var(--i),4)*2px)/1 Georgia,'Times New Roman',serif;transform:rotate(calc(var(--i)*19deg));opacity:calc(.58 + mod(var(--i),4)*.1)}
[data-finish=voidstorm] .particles i{display:block;width:calc(3px + mod(var(--i),4)*1px);height:calc(3px + mod(var(--i),3)*1px);color:#b768ff;background:linear-gradient(135deg,#f3d7ff,#9d4dff 45%,#371066);border-radius:1px;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);box-shadow:0 0 6px #cc8cff,0 0 13px #7427db;animation:void-spiral calc(3.4s + mod(var(--i),5)*.32s) cubic-bezier(.45,.05,.65,1) infinite}
[data-finish=voidstorm] .particles i:nth-child(3n){background:#e6baff;filter:blur(.4px)}
[data-finish=voidstorm] .particles i:nth-child(5n){width:2px;height:10px;background:#9c55ff;filter:blur(1px)}
[data-finish=sandstorm] .particles i{display:block;width:calc(8px + mod(var(--i),6)*3px);height:calc(1px + mod(var(--i),3)*1px);color:#efc27d;background:linear-gradient(90deg,transparent,#f2ca89 35%,#b87538 85%,transparent);border-radius:50%;box-shadow:0 0 4px #d99a50;filter:blur(calc(mod(var(--i),3)*.35px));animation:dust-crosswind calc(2.2s + mod(var(--i),6)*.25s) linear infinite}
[data-finish=sandstorm] .particles i:nth-child(4n){height:4px;opacity:.45;filter:blur(1.4px)}
[data-finish=cosmic] .particles i{display:block;color:#ccb3ff;animation:orbit 12s linear infinite}
[data-finish=diamond] .particles i,[data-finish=stars] .particles i{display:block;animation:twinkle 3s ease-in-out infinite}
@keyframes foil-drift{from{background-position:15% 20%}to{background-position:85% 80%}}
@keyframes frame-flow{to{background-position:0 0,200% 200%}}
@keyframes charge{0%,85%,100%{filter:brightness(1)}90%,95%{filter:brightness(1.5)}}
@keyframes glitch{0%,90%{transform:translate(0);opacity:.14}95%{transform:translateX(3px);opacity:.7}}
@keyframes cosmetic-rise{0%{transform:translate3d(0,220px,0) rotate(35deg) scale(.45);opacity:0}18%{opacity:1}55%{transform:translate3d(calc(mod(var(--i),3)*7px - 7px),-10px,0) rotate(48deg) scale(1)}100%{transform:translate3d(calc(mod(var(--i),5)*6px - 12px),-240px,0) rotate(62deg) scale(.35);opacity:0}}
@keyframes snow{0%{transform:translate3d(-18px,-240px,0) rotate(0deg);opacity:0}12%{opacity:.9}35%{transform:translate3d(10px,-75px,0) rotate(105deg)}62%{transform:translate3d(-8px,85px,0) rotate(215deg)}88%{opacity:.9}100%{transform:translate3d(24px,260px,0) rotate(340deg);opacity:0}}
@keyframes void-breathe{0%,100%{filter:saturate(.9) brightness(.75);transform:scale(1)}50%{filter:saturate(1.35) brightness(1.2);transform:scale(1.035)}}
@keyframes void-spiral{0%{transform:translate3d(-26px,18px,0) rotate(0deg) scale(.15);opacity:0}20%{opacity:.9}52%{transform:translate3d(18px,-14px,0) rotate(190deg) scale(1.35);opacity:1}80%{opacity:.75}100%{transform:translate3d(-10px,8px,0) rotate(430deg) scale(0);opacity:0}}
@keyframes sand-haze{from{background-position:110% 50%}to{background-position:-110% 50%}}
@keyframes dust-crosswind{0%{transform:translate3d(-230px,calc(mod(var(--i),3)*5px - 5px),0) scaleX(.45);opacity:0}12%{opacity:.85}55%{transform:translate3d(15px,calc(mod(var(--i),5)*4px - 8px),0) scaleX(1.15);opacity:1}88%{opacity:.7}100%{transform:translate3d(260px,calc(mod(var(--i),7)*3px - 9px),0) scaleX(.65);opacity:0}}
@keyframes orbit{from{transform:rotate(0deg) translateX(20px)}to{transform:rotate(360deg) translateX(20px)}}
@keyframes twinkle{0%,100%{opacity:.1;transform:scale(.4)}50%{opacity:1;transform:scale(1.3)}}
[data-texture=enamel]{--frame-paint:linear-gradient(150deg,var(--a),var(--b) 32%,var(--a) 55%,var(--b) 83%,var(--a))}
[data-texture=lacquer]{--frame-paint:linear-gradient(155deg,var(--a),var(--b) 20%,var(--a) 36%,#fff5f3 43%,var(--b) 57%,var(--a) 82%,var(--b));--ornament-border:1px solid #ffffff44}
[data-texture=lacquer] .ft-face{background-size:100% 100%,200% 200%;animation:frame-flow 10s ease-in-out infinite alternate}
.cosmetic-emblem{position:absolute;z-index:7;top:8px;left:50%;transform:translateX(-50%);pointer-events:none;color:var(--a);font:400 18px/1.2 Georgia,serif;text-shadow:0 0 4px var(--a),0 0 10px var(--a),0 1px 3px #000;}
.cosmetic-emblem[hidden]{display:none}
@font-face{font-family:'Autograph Allura';src:url('/fonts/autograph-allura.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Autograph Caveat';src:url('/fonts/autograph-caveat.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'Autograph Dafoe';src:url('/fonts/autograph-mrdafoe.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Autograph Marker';src:url('/fonts/autograph-permanentmarker.ttf') format('truetype');font-display:swap}
[data-autograph]{--signature-font:'Autograph Allura',cursive;--signature-ink:#e5edf4;--signature-glow:transparent;--signature-foil:none;--signature-mark:'';--signature-slant:-7deg;}
[data-autograph=silver-ink]{--signature-ink:#e8f0f7}
[data-autograph=gold-ink]{--signature-font:'Autograph Caveat',cursive;--signature-ink:#efce8b}
[data-autograph=brush-ink]{--signature-font:'Autograph Marker',cursive;--signature-ink:#f6f1e7;--signature-slant:-5deg}
[data-autograph=violet-ink]{--signature-ink:#ceb6ed;--signature-glow:#c7a0ff33}
[data-autograph=gold-foil]{--signature-font:'Autograph Dafoe',cursive;--signature-ink:#ffdc86;--signature-foil:linear-gradient(110deg,#9d611b,#ffeec2 30%,#e4ac41 45%,#fffce1 60%,#d18d21 85%);--signature-glow:#ffc66d22}
[data-autograph=neon-script]{--signature-font:'Autograph Caveat',cursive;--signature-ink:#aafff0;--signature-glow:#4affcd77}
[data-autograph=rose-foil]{--signature-font:'Autograph Dafoe',cursive;--signature-ink:#ffd1ca;--signature-foil:linear-gradient(100deg,#c87394,#fff2df 30%,#e7a0ae 45%,#fff0ea 65%,#c26884);--signature-glow:#f99ec522}
[data-autograph=spectral-script]{--signature-ink:#d3ffe8;--signature-glow:#a2e3ce66}
[data-autograph=rainbow-signature]{--signature-font:'Autograph Dafoe',cursive;--signature-foil:linear-gradient(100deg,#ffb4dc,#c4a9ff,#a7ecff,#caffb5,#fff0b4,#ffb4dc);--signature-glow:#c3b2ff33}
[data-autograph=starlit-signature]{--signature-foil:linear-gradient(110deg,#a9caff,#f9ffff,#dcb0ff,#f9ffff);--signature-glow:#c5b5ff55;--signature-mark:'✧';}
[data-autograph=solar-signature]{--signature-font:'Autograph Caveat',cursive;--signature-foil:linear-gradient(110deg,#ffb55a,#fffbc5,#ffd28b,#fff4a1);--signature-glow:#ffbd6977;--signature-mark:'☼';}
[data-autograph=ancient-signature]{--signature-font:'Autograph Dafoe',cursive;--signature-foil:linear-gradient(100deg,#bbfff0,#f6cbff,#fff6c6,#bbfff0);--signature-glow:#c8ffed55;--signature-mark:'ᛟ';}
.autograph-lettering{display:block;white-space:nowrap;font:400 var(--signature-size,16cqi)/1.4 var(--signature-font);letter-spacing:-.03em;text-transform:none;padding:0 6px;}
.card-autograph::before{content:var(--signature-mark);position:absolute;top:-8px;right:5%;font:15px Georgia,serif;color:var(--signature-ink);text-shadow:0 0 8px var(--signature-glow)}
.autograph-flourish{display:block;width:58%;height:7px;margin:-6px auto 0;border-bottom:1.5px solid var(--signature-ink);border-radius:0 0 70% 45%;transform:rotate(-3deg);opacity:.8}
[data-autograph=gold-foil] .autograph-lettering,[data-autograph=rose-foil] .autograph-lettering,[data-autograph=rainbow-signature] .autograph-lettering,[data-autograph=starlit-signature] .autograph-lettering,[data-autograph=solar-signature] .autograph-lettering,[data-autograph=ancient-signature] .autograph-lettering{background:var(--signature-foil);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:signature-shine 6s ease-in-out infinite alternate}
@keyframes signature-shine{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes pack-reveal{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}
[data-texture=stone]{--frame-paint:linear-gradient(155deg,var(--a),var(--b) 35%,var(--a) 63%,var(--b));}
[data-texture=carved]{--frame-paint:linear-gradient(150deg,var(--a),var(--b) 24%,var(--a) 48%,var(--b) 77%,var(--a));--ornament:'';--ornament-border:1px solid #e9cf8555}
[data-texture=runes]{--frame-paint:linear-gradient(160deg,var(--a),var(--b) 30%,var(--a) 60%,var(--b));--ornament:'ᛟ';--ornament-border:1px solid #bca1fc44}
[data-texture=lava]{--frame-paint:radial-gradient(ellipse at 20% 80%,#ffe994,transparent 55%),linear-gradient(165deg,#491e18,var(--b) 35%,var(--a) 55%,#632719 85%)}
[data-texture=chains]{--frame-paint:linear-gradient(155deg,var(--a),var(--b) 35%,#d5c4f2 55%,var(--b) 80%,var(--a));--ornament-border:1px solid #d3c6f688}
[data-texture=vines]{--frame-paint:radial-gradient(ellipse at 30% 20%,var(--a),transparent 50%),linear-gradient(160deg,var(--b),#62934f,var(--b));--ornament:'❧';--ornament-border:1px solid #8fba6077}
[data-texture=platinum]{--frame-paint:linear-gradient(155deg,#f5fdff,#6f7c91 19%,#b9c4d2 38%,#ffffff 47%,#778399 65%,#d4e2ef 82%,#f7ffff)}
[data-texture=rose]{--frame-paint:linear-gradient(155deg,#ffe8d9,#b46775 25%,#ffe7df 50%,#a14c66 73%,#f9cbb5)}
[data-texture=pearl]{--frame-paint:conic-gradient(from 20deg,#fff5da,#dac8ee,#b6eddf,#fff5de,#dfc3ed,#fff5da)}
[data-texture=solar]{--frame-paint:radial-gradient(ellipse at 25% 10%,#fffdd6,transparent 48%),linear-gradient(170deg,#f7c463,#b9661d,#ffdd6c,#ee922f)}
[data-texture=moon]{--frame-paint:linear-gradient(155deg,#edfaff,#6377bc 25%,#d9f5ff 47%,#3d5085 70%,#b0daf5)}
[data-texture=opalescent]{--frame-paint:conic-gradient(from 30deg,#e3ffef,#b4eaff,#e5bbfa,#ffe1da,#edffb8,#c7fff1,#e3ffef);--ornament-border:1px solid #edfff277}
[data-texture=platinum] .ft-face,[data-texture=rose] .ft-face,[data-texture=pearl] .ft-face,[data-texture=solar] .ft-face,[data-texture=moon] .ft-face,[data-texture=opalescent] .ft-face{background-size:100% 100%,200% 200%;animation:frame-flow 9s ease-in-out infinite alternate}
[data-finish=pearlglaze]{--finish-paint:radial-gradient(ellipse at var(--px,40%) var(--py,30%),#fff4d0aa,transparent 50%),radial-gradient(ellipse at 90% 80%,#c8b6ff66,transparent 55%);--finish-opacity:.27;--finish-size:100% 100%}
[data-finish=rainbowveil]{--finish-paint:linear-gradient(125deg,transparent 10%,#ffb5cd66 25%,#c0a8ff88 40%,#92e4ff88 55%,#c9f5b266 70%,transparent 90%);--finish-opacity:.38}
[data-finish=goldust]{--finish-paint:radial-gradient(ellipse at var(--px,60%) var(--py,40%),#ffe8a566,transparent 60%);--finish-opacity:.35;--finish-size:100% 100%}
[data-finish=starlight]{--finish-paint:radial-gradient(ellipse at var(--px,50%) var(--py,30%),transparent 15%,#aecbff77 38%,#dbaaff88 53%,transparent 72%);--finish-opacity:.38;--finish-size:100% 100%}
[data-finish=goldust] .particles i{display:block;background:#ffe9a2;color:#ffd16c;animation:twinkle 4s ease-in-out infinite}
[data-finish=starlight] .particles i{display:block;background:#e6f9ff;color:#bfcdff;animation:twinkle 5s ease-in-out infinite}
[data-texture=opalescent] .ft-face{box-shadow:0 18px 40px #0009,0 0 28px #c6ffe947,0 0 45px #d69fff22}
@font-face{font-family:'Autograph Japanese';src:url('/fonts/autograph-yujisyuku.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Autograph Chinese';src:url('/fonts/autograph-mashanzheng.ttf') format('truetype');font-display:swap}
@font-face{font-family:'Autograph Korean';src:url('/fonts/autograph-nanumbrushscript.ttf') format('truetype');font-display:swap}

[data-autograph=speed-scribble]{--signature-font:'Autograph Dafoe',cursive;--signature-slant:-12deg;--signature-ink:#f5eadb;--pen-width:2.1;}
[data-autograph=loop-tag]{--signature-font:'Autograph Allura',cursive;--signature-slant:-4deg;--signature-ink:#cddced;--pen-width:1.4;}
[data-autograph=kana-brush]{--signature-font:'Autograph Marker',cursive;--signature-slant:-3deg;--signature-ink:#f4ecdb;--pen-width:3;}
[data-autograph=seal-script]{--signature-font:'Autograph Chinese',serif;--signature-slant:0deg;--signature-ink:#ffaaa4;--signature-glow:#ff4f4933;--pen-width:2;}
[data-autograph=ronin-stroke]{--signature-font:'Autograph Marker',cursive;--signature-slant:-8deg;--signature-ink:#e6f9ff;--signature-glow:#8fcce344;--pen-width:2.2;}
[data-autograph=hangul-pulse]{--signature-font:'Autograph Caveat',cursive;--signature-slant:-7deg;--signature-ink:#ffd1ee;--signature-glow:#ff65d177;--pen-width:2.2;}
[data-autograph=graffiti-tag]{--signature-font:'Autograph Marker',cursive;--signature-slant:-9deg;--signature-ink:#fff2fc;--signature-glow:#f268d644;--pen-width:2.3;}
[data-autograph=crown-tag]{--signature-font:'Autograph Dafoe',cursive;--signature-slant:-8deg;--signature-ink:#ffd98d;--signature-glow:#efb74444;--pen-width:1.8;}
[data-autograph=dragon-ink]{--signature-font:'Autograph Chinese',serif;--signature-slant:-5deg;--signature-ink:#ffc885;--signature-glow:#ff794f66;--pen-width:2.4;--signature-foil:linear-gradient(110deg,#ffe4a7,#ffb383,#ffefba,#ff9374);}
[data-autograph=orbit-tag]{--signature-font:'Autograph Allura',cursive;--signature-slant:-4deg;--signature-ink:#c9e8ff;--signature-glow:#c9b2ff66;--pen-width:1.4;--signature-foil:linear-gradient(110deg,#a8ebff,#ecbaff,#b7ffd8,#a8ebff);}
[data-autograph=storm-sigil]{--signature-font:'Autograph Dafoe',cursive;--signature-slant:-10deg;--signature-ink:#c7f5ff;--signature-glow:#83eaff44;--pen-width:1.3;--signature-foil:linear-gradient(110deg,#6fd3e5,#efffff,#b0d5ff,#efffff);}
[data-autograph=phoenix-stroke]{--signature-font:'Autograph Marker',cursive;--signature-slant:-4deg;--signature-ink:#f5b7de;--signature-glow:#ee89c755;--pen-width:1.7;--signature-foil:linear-gradient(110deg,#ffaed1,#f5dab3,#e2b9ff,#ffaed1);}

/* The chosen writing system follows the text, independent of the collected treatment. */
[data-writing=ja]{--signature-font:'Autograph Japanese','Yu Mincho',serif;}
[data-writing=zh]{--signature-font:'Autograph Chinese','KaiTi',serif;}
[data-writing=ko]{--signature-font:'Autograph Korean','Malgun Gothic',cursive;}
[data-writing=cyrl]{--signature-font:Georgia,'Times New Roman',serif;}
[data-writing=greek]{--signature-font:Georgia,'Times New Roman',serif;}
[data-writing=runic]{--signature-font:'Segoe UI Symbol','Noto Sans Runic',serif;letter-spacing:.04em;}
[data-writing=thai]{--signature-font:'Leelawadee UI','Thonburi','Noto Sans Thai',sans-serif;}
.translation-swatch.hiragana,.translation-swatch.kanji,.name-rendering-preview.hiragana,.name-rendering-preview.kanji{font-family:'Autograph Japanese','Yu Mincho',serif}.translation-swatch.hiragana,.name-rendering-preview.hiragana{color:#ffd9e4}.translation-swatch.kanji,.name-rendering-preview.kanji{color:#f4ecdb}
.signature-sample,.reward-signature{position:relative;display:block;width:100%;text-align:center;min-width:0;line-height:1.4;}
.signature-sample{--signature-size:25px;transform:rotate(var(--signature-slant));padding:4px 0;}
.signature-sample .autograph-lettering{padding:0;line-height:1.4;}
.autograph-swatch{height:65px;}
.autograph-swatch[data-autograph=none]{height:65px;}
.signature-penmarks{position:absolute;inset:auto 0;top:50%;transform:translateY(-50%);width:100%;height:auto;overflow:visible;pointer-events:none;color:var(--signature-ink);}
.signature-penmarks path{fill:none;stroke:currentColor;stroke-width:var(--pen-width,1.5);stroke-linecap:round;stroke-linejoin:round;opacity:.8;}
.card-autograph .signature-penmarks{filter:drop-shadow(0 0 3px var(--signature-glow));}
.signature-sample .signature-penmarks{opacity:.6;}
.signature-glyph{display:inline-block;transform:translateY(var(--glyph-lift)) rotate(var(--glyph-tilt));}
.signature-glyph:first-child{transform:translateY(var(--glyph-lift)) rotate(var(--glyph-tilt)) scale(1.24);transform-origin:right bottom;}
.signature-glyph:last-child{transform:translateY(var(--glyph-lift)) rotate(var(--glyph-tilt)) scale(1.08);}
.signature-glyph:has(+.signature-glyph){margin-right:-.02em;}
[data-autograph=graffiti-tag] .autograph-lettering{-webkit-text-stroke:.65px #db6cbd;text-shadow:2px 2px #5b2849,-1px -1px #eaf6ff;letter-spacing:-.08em;}
[data-autograph=speed-scribble] .autograph-lettering{letter-spacing:-.08em;transform:skewX(-10deg);}
[data-autograph=loop-tag] .autograph-lettering{letter-spacing:-.04em;transform:scaleX(.9);}
[data-autograph=ronin-stroke] .autograph-lettering{letter-spacing:-.08em;}
[data-autograph=seal-script] .autograph-lettering{letter-spacing:.08em;}
.signature-monogram{position:absolute;left:-1%;top:-22%;font:400 calc(var(--signature-size)*1.6)/1 var(--signature-font);color:var(--signature-ink);opacity:.16;z-index:-1;}
:is([data-autograph=dragon-ink],[data-autograph=orbit-tag],[data-autograph=storm-sigil],[data-autograph=phoenix-stroke]) .autograph-lettering{background:var(--signature-foil);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:signature-shine 5s ease-in-out infinite alternate;}
[data-autograph=orbit-tag] .signature-penmarks,[data-autograph=phoenix-stroke] .signature-penmarks{animation:ink-breathe 4s ease-in-out infinite alternate;}
[data-autograph=storm-sigil] .signature-penmarks path:first-child{stroke-dasharray:7 3;animation:sigil-drift 15s linear infinite;}
[data-autograph=dragon-ink] .signature-penmarks path:first-child{stroke-dasharray:180 12 30 9;animation:sigil-drift 8s linear infinite;}
@keyframes ink-breathe{from{opacity:.5}to{opacity:1}}
@keyframes sigil-drift{to{stroke-dashoffset:-120}}
@media(prefers-reduced-motion:reduce){.signature-penmarks,.autograph-lettering,.signature-penmarks path{animation:none!important;}}

/* Preserve the actual site's card geometry and content; decorate its existing frame. */
.ft-card[data-cosmetic] .ft-face{border-color:transparent;background-image:linear-gradient(#0d0c0b,#0d0c0b),var(--frame-paint);background-origin:var(--frame-layers,padding-box,border-box);background-clip:var(--frame-layers,padding-box,border-box);box-shadow:var(--frame-shadow,0 18px 40px #0009,0 0 20px color-mix(in srgb,var(--a) 24%,transparent))}
.ft-card .cosmetic-emblem{position:absolute;z-index:7;top:8px;left:50%;transform:translateX(-50%);pointer-events:none;color:var(--a);font:18px Georgia,serif;text-shadow:0 0 8px var(--a)}
.ft-card .card-autograph{position:absolute;right:auto;bottom:auto;width:80%;z-index:8;pointer-events:none;transform:translate(-50%,-50%) rotate(var(--placement-rotation,-7deg));color:var(--signature-ink);text-align:center;filter:drop-shadow(0 2px 3px #000) drop-shadow(0 0 8px var(--signature-glow))}
.ft-card{container-type:inline-size;--px:var(--mx,50%);--py:var(--my,40%)}
[data-card-editor] .card-autograph{pointer-events:auto;cursor:grab;touch-action:none}
[data-card-editor] .card-autograph:focus-visible{outline:2px dashed #ffd879}
@media(prefers-reduced-motion:reduce){.ft-card[data-cosmetic] *{animation:none!important}}
.ft-card .ft-front>.ft-art{filter:hue-rotate(var(--art-hue,0deg))}
/* Use the same motion on cards, collection previews and expanded cards.
   Background shorthands below texture rules used to erase the animated sizing. */
[data-texture]{--frame-motion:none;--frame-size:100% 100%,100% 100%;--frame-shadow:0 18px 40px #0009,0 0 20px color-mix(in srgb,var(--a) 24%,transparent)}
:is([data-texture=aurora],[data-texture=rainbow],[data-texture=portal]){--frame-size:100% 100%,200% 200%;--frame-motion:frame-flow 7s linear infinite}
[data-texture=lacquer]{--frame-size:100% 100%,200% 200%;--frame-motion:frame-flow 10s ease-in-out infinite alternate}
:is([data-texture=platinum],[data-texture=rose],[data-texture=pearl],[data-texture=solar],[data-texture=moon],[data-texture=opalescent]){--frame-size:100% 100%,200% 200%;--frame-motion:frame-flow 9s ease-in-out infinite alternate}
[data-texture=lightning]{--frame-motion:charge 2.3s steps(4) infinite}
[data-texture=lava]{--frame-motion:charge 4s ease-in-out infinite alternate}
[data-texture=opalescent]{--frame-shadow:0 18px 40px #0009,0 0 28px #c6ffe947,0 0 45px #d69fff22}
.ft-card[data-cosmetic] .ft-face,.collection-swatch[data-texture]:not(.finish-swatch),.fantasy-tier-chip.open[data-cosmetic]{background-size:var(--frame-size);animation:var(--frame-motion)}
.ft-card[data-cosmetic] .ft-front::after{content:'';position:absolute;inset:3px;z-index:7;pointer-events:none;border-radius:5px;border:var(--ornament-border,0)}
@media(prefers-reduced-motion:reduce){.collection-swatch[data-texture],.fantasy-tier-chip.open[data-cosmetic]{animation:none!important}}
.fantasy-tier-chip.open[data-cosmetic]{padding:12px;border:5px solid transparent;border-radius:12px;background-image:linear-gradient(#181619,#181619),var(--frame-paint);background-origin:var(--frame-layers,padding-box,border-box);background-clip:var(--frame-layers,padding-box,border-box);container-type:inline-size}.fantasy-tier-chip.open[data-cosmetic]::before{inset:0;filter:saturate(.82) contrast(1.08) hue-rotate(var(--art-hue,0deg))}.fantasy-tier-chip.open>.tier-expanded-signature{position:absolute;inset:0;z-index:1;pointer-events:none}.tier-expanded-signature .card-autograph{position:absolute;width:min(42%,420px);transform:translate(-50%,-50%) rotate(var(--placement-rotation,-7deg));text-align:center;color:var(--signature-ink);filter:drop-shadow(0 2px 3px #000) drop-shadow(0 0 8px var(--signature-glow));--signature-size:var(--expanded-signature-size,32px)!important;opacity:.75}.fantasy-tier-chip.open>.tier-open-head,.fantasy-tier-chip.open .bd-left,.fantasy-tier-chip.open .bd-right{z-index:2}

/* Per-card speed: 100% is each finish's authored pace. */
[data-finish=inferno] .particles i{animation-duration:calc((2.8s + mod(var(--i),5)*.28s)/var(--particle-speed,1))}
[data-finish=blizzard] .particles i{animation-duration:calc((5s + mod(var(--i),5)*.42s)/var(--particle-speed,1))}
[data-finish=voidstorm] .particles i{animation-duration:calc((3.4s + mod(var(--i),5)*.32s)/var(--particle-speed,1))}
[data-finish=sandstorm] .particles i{animation-duration:calc((2.2s + mod(var(--i),6)*.25s)/var(--particle-speed,1))}
[data-finish=cosmic] .particles i{animation-duration:calc(12s/var(--particle-speed,1))}
[data-finish=diamond] .particles i,[data-finish=stars] .particles i{animation-duration:calc(3s/var(--particle-speed,1))}
[data-finish=goldust] .particles i{animation-duration:calc(4s/var(--particle-speed,1))}
[data-finish=starlight] .particles i{animation-duration:calc(5s/var(--particle-speed,1))}
[data-finish=voidstorm] .cosmetic-overlay{animation-duration:calc(3.6s/var(--particle-speed,1))}
[data-finish=sandstorm] .cosmetic-overlay{animation-duration:calc(3.2s/var(--particle-speed,1))}

[data-card-editor] .sig-wheel{position:absolute;width:96px;height:96px;--wheel-r:48px;transform:translate(-50%,-50%);border:1.5px dashed rgba(255,216,121,.55);border-radius:50%;z-index:9;pointer-events:none;opacity:0;transition:opacity .15s}
[data-card-editor] .ft-card.sig-selected .sig-wheel,[data-card-editor] .sig-wheel.turning,[data-card-editor] .part-wheel{opacity:1}
[data-card-editor] .sig-wheel-handle{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;padding:0;border-radius:50%;border:2px solid #17120a;background:#ffd879;cursor:grab;pointer-events:auto;touch-action:none;transform:rotate(var(--wheel-angle,0deg)) translateX(var(--wheel-r,48px))}
[data-card-editor] .sig-wheel.turning .sig-wheel-handle{cursor:grabbing}
[data-card-editor] .ft-card:not(.sig-selected) .sig-wheel:not(.part-wheel) button{pointer-events:none}
[data-card-editor] .sig-size-handle{position:absolute;left:14.6%;top:85.4%;width:16px;height:16px;margin:-8px 0 0 -8px;padding:0;border-radius:3px;border:2px solid #17120a;background:#8fd0ff;cursor:nwse-resize;pointer-events:auto;touch-action:none}
/* Paints made of two gradients need the clip repeated for the second one, or it is cut off under the card fill. */
:is([data-texture=ember],[data-texture=lava],[data-texture=vines],[data-texture=solar]){--frame-layers:padding-box,border-box,border-box}

[data-card-editor] .part-wheel .sig-wheel-handle::after{content:'';position:absolute;inset:-12px;border-radius:50%}
/* Border symbols the owner placed (equipment.emblems): centred on their x/y, scaled by their size. */
.cosmetic-emblem.placed,.ft-card .cosmetic-emblem.placed{transform:translate(-50%,-50%);font-size:calc(18px * var(--emblem-size,1))}
[data-card-editor] .cosmetic-emblem{pointer-events:auto;cursor:grab;touch-action:none;user-select:none}
[data-card-editor] .cosmetic-emblem.part-selected{outline:1px dashed #eac47e;outline-offset:2px}
