*{box-sizing:border-box}:root{--r:#c4161c;--rd:#7a0a0e;--a:#ffb347;--k:#ff3b3b;--bg:#050205;--tx:#f3e9e9;--mu:#bfa3a3}
[hidden]{display:none!important}
body{margin:0;font-family:ui-rounded,'SF Pro Rounded',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--tx);overflow-x:hidden}
body:before{content:"";position:fixed;inset:-20%;z-index:-1;background:radial-gradient(40% 30% at 20% 5%,#7a0a0e66,transparent),radial-gradient(35% 30% at 85% 35%,#3a050855,transparent),radial-gradient(50% 30% at 50% 100%,#c4161c22,transparent);animation:drift 16s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate(3%,-2%) rotate(4deg)}}
a{color:var(--a)}
#splash{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 30%,#3a0508,#050205 70%);transition:opacity .7s}
#splash.gone{opacity:0;pointer-events:none}.sp-in{text-align:center;padding:20px}.sp-moon{width:150px;filter:drop-shadow(0 0 40px #c4161caa);animation:pulse 3s ease-in-out infinite}
#splash h1{font-size:2.6rem;margin:.3em 0;letter-spacing:-.02em}#splash p{color:var(--mu)}#enter{font-size:1.2rem;padding:16px 26px}
.ticker{overflow:hidden;white-space:nowrap;background:linear-gradient(90deg,var(--rd),var(--r),var(--rd));color:#fff;font-weight:800;padding:7px 0;font-size:.85rem;letter-spacing:.03em}
.ticker div{display:inline-block;animation:scroll 30s linear infinite}@keyframes scroll{to{transform:translateX(-50%)}}
.top{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;max-width:760px;margin:0 auto}.mini{padding:6px 12px;font-size:.85rem;background:#ffffff14}
.hero{position:relative;text-align:center;padding:20px 18px 0;overflow:hidden}
.moon{width:140px;height:140px;margin:0 auto 4px;border-radius:50%;background:radial-gradient(circle at 38% 38%,#ff5a4e,#c4161c 60%,#7a0a0e);box-shadow:0 0 60px 18px #c4161c66,0 0 140px 50px #7a0a0e55;animation:pulse 3.5s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.05);box-shadow:0 0 90px 28px #c4161c88,0 0 180px 70px #7a0a0e66}}
body.moonrise .moon{background:radial-gradient(circle at 38% 38%,#ffd0c0,#ff3b3b)}
.village{display:block;width:100%;height:110px;margin:-30px 0 6px}
.tag{display:inline-block;padding:6px 14px;border-radius:99px;background:#ffffff0f;border:1px solid #ffffff22;font-size:.78rem;letter-spacing:.05em}
h1{font-size:2.9rem;line-height:.98;margin:.35em 0;font-weight:800;letter-spacing:-.03em}
.grad{background:linear-gradient(90deg,var(--a),var(--k),var(--r));-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200%;animation:shine 5s linear infinite}
@keyframes shine{to{background-position:200%}}.sub{max-width:540px;margin:0 auto;color:#e0cccc;font-size:1.05rem}
.count{display:flex;gap:10px;justify-content:center;margin:18px 0 6px;flex-wrap:wrap}
.count div,.card{background:#ffffff0a;border:1px solid #ffffff1a;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.count div{border-radius:18px;padding:10px 16px;min-width:160px}.count small{display:block;color:var(--mu);font-size:.72rem}.count b{font-size:1.3rem;font-variant-numeric:tabular-nums;color:var(--a)}.count div+div b{color:var(--k)}
main{max-width:760px;margin:0 auto;padding:0 14px}.card{border-radius:24px;padding:20px;margin:18px 0}.card h2{font-size:1.55rem;margin:.1em 0 .4em;letter-spacing:-.02em}
form{display:flex;gap:8px;flex-wrap:wrap}input#name,.in2,select{padding:13px 15px;border-radius:14px;border:2px solid #ffffff22;background:#0009;color:#fff;font:inherit;font-size:1rem;outline:none}
input#name{flex:1;min-width:200px}.in2{width:100%;margin:6px 0}select{padding:8px 10px}input:focus,select:focus{border-color:var(--a);box-shadow:0 0 0 4px #ffb34733}
button,.btns a,.btnlink{font:inherit;background:linear-gradient(135deg,var(--k),var(--rd));color:#fff;border:0;border-radius:14px;padding:13px 18px;font-weight:800;font-size:1rem;cursor:pointer;text-decoration:none;display:inline-block;transition:transform .15s,box-shadow .15s}
button:hover,.btns a:hover,.btnlink:hover{transform:translateY(-2px);box-shadow:0 8px 24px #c4161c55}button:active{transform:scale(.96)}button:disabled{opacity:.45;cursor:default;transform:none;box-shadow:none}
.btns{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.btns a{background:#f3e9e9;color:#120306}.btns a.tg{background:#29a9eb;color:#fff}.btnlink{background:#ffffff14}#copy{background:#ffffff1a}
#out{display:grid;gap:16px;margin-top:18px;perspective:1000px}#avatar.flip{animation:flip .8s cubic-bezier(.2,.8,.2,1.2)}@keyframes flip{from{transform:rotateY(180deg) scale(.6);opacity:0}to{transform:none;opacity:1}}
#avatar.shake svg{animation:shake .5s .8s}@keyframes shake{20%,60%{transform:translateX(-8px) rotate(-3deg)}40%,80%{transform:translateX(8px) rotate(3deg)}}
#avatar svg{width:100%;height:auto;border-radius:22px;display:block;box-shadow:0 20px 60px #7a0a0e66}
.num{color:var(--mu);margin:0}#rank{margin:.05em 0;font-size:2rem;color:var(--a)}#traits{display:flex;flex-wrap:wrap;gap:6px}#traits span{background:#ffffff12;border:1px solid #ffffff22;border-radius:99px;padding:4px 10px;font-size:.82rem}
.lore{font-style:italic;color:#ead8d8}.tf{display:block;margin:8px 0;color:#e0cccc}.muted{color:var(--mu)}.small{font-size:.8rem}.warn{color:var(--a);font-weight:700}
.role{font-size:1.05rem}.hint{font-weight:800;color:var(--a)}.res{font-size:1.3rem;font-weight:800}
.mode{background:#ffffff14}.mode.on{background:linear-gradient(135deg,var(--a),#c46a00);color:#120306}
.grid8{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.pl{position:relative;padding:6px;border-radius:16px;background:#ffffff0d;display:flex;flex-direction:column;align-items:center;font-size:.75rem;gap:2px;font-weight:600}
.pl .av svg{width:100%;height:auto;border-radius:12px}.pl i{font-style:normal}.pl.dead{opacity:.3;filter:grayscale(1)}.pl[disabled]{cursor:default;transform:none!important;box-shadow:none!important;opacity:1}.pl.dead[disabled]{opacity:.3}
.pl[data-i]{outline:2px solid #ffb34799}.pl em{font-style:normal;font-size:.62rem;padding:1px 6px;border-radius:99px}.pl em.bot{background:#ffffff22;color:var(--mu)}.pl em.me{background:var(--a);color:#120306}
.log p{margin:6px 0;padding:8px 12px;border-radius:12px;background:#0007;font-size:.9rem}.log p:first-child{border-left:3px solid var(--k)}
.lobby{margin:10px 0;padding:12px;border-radius:16px;background:#ffffff08;border:1px dashed #ffffff22}.chip{display:inline-block;margin:4px;padding:6px 12px;border-radius:99px;background:#ffffff14}
.emojis{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.emojis button{padding:8px 10px;background:#ffffff12;font-size:1.2rem}
.react{display:inline-block;margin:3px;padding:4px 10px;border-radius:99px;background:#7a0a0e99;animation:flip .4s}
.rules{padding-left:1.2em}.rules li{margin:10px 0}.rules li::marker{color:var(--k);font-weight:800}
.kv{display:grid;gap:8px}.kv code{display:block;background:#0009;padding:10px;border-radius:12px;word-break:break-all;color:var(--a)}
.big{font-size:2.6rem;font-weight:800;color:var(--a)}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{padding:8px 6px;text-align:left;border-bottom:1px solid #ffffff14;vertical-align:top}th{color:var(--mu);font-weight:600}td code{font-size:.75rem}
.phish{color:var(--a)}footer{max-width:760px;margin:0 auto;padding:20px 14px 50px;font-size:.85rem;color:#a58c8c}
.confetti{position:fixed;top:-10px;width:9px;height:13px;z-index:9;pointer-events:none;animation:fall linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}
@media(min-width:680px){#out{grid-template-columns:1fr 1fr}h1{font-size:4.3rem}.kv{grid-template-columns:1fr 1fr}.village{height:150px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important}}
.bar{height:10px;border-radius:99px;background:#ffffff14;overflow:hidden;margin:8px 0}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--a),var(--k));transition:width .6s}
.dlg{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:#000c;padding:14px}.dlg .card{max-width:480px;background:#140507}.dlg ul{padding-left:1.2em}
.top span{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;align-items:center}.top .mini{padding:5px 9px;font-size:.75rem;border-radius:10px;white-space:nowrap}.top b{font-size:.9rem}
.ad{margin:.5em 0;padding:.4em;border:1px dashed #555;border-radius:8px;text-align:center}.ad img{max-width:100%;max-height:120px;border-radius:6px}.adlbl{display:block;opacity:.7;font-size:.75em;text-transform:uppercase;letter-spacing:.08em}
.rg{max-width:820px;margin:auto;padding:1em}.rg h2{margin-top:1.2em}.rg table{width:100%;border-collapse:collapse}.rg td,.rg th{border:1px solid #333;padding:.4em;vertical-align:top}
.show{position:relative;background:#120607;border:1px solid #c4161c;border-radius:12px;padding:1.2em;min-height:260px;text-align:center;overflow:hidden}
.slide{display:none}.slide.on{display:block;animation:fadeup .6s ease}.slide .ill{font-size:64px;line-height:1.2;animation:bob 2s ease-in-out infinite}
.prog{height:6px;background:#333;border-radius:3px;margin-top:1em}.prog i{display:block;height:100%;width:0;background:#c4161c;border-radius:3px;transition:width .25s linear}
@keyframes fadeup{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes bob{50%{transform:translateY(-6px)}}
/* ===== GOTHIC BLOOD-MOON THEME (2026-10) ===== */
@font-face{font-family:Fraktur;src:url(fonts/UnifrakturMaguntia-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:Cinzel;src:url(fonts/Cinzel-VariableFont_wght.ttf) format("truetype");font-weight:400 900;font-display:swap}
:root{--r:#c4161c;--rd:#5e070b;--a:#e8423a;--k:#ff2a2a;--bg:#030102;--tx:#eadcd6;--mu:#a88f8a;--gold:#c9a66b}
body{font-family:Georgia,'Times New Roman',serif;background:#030102 url(brand/hero.jpg) center top/cover fixed}
body:before{inset:0;background:linear-gradient(180deg,#030102cc 0,#030102ee 45vh,#030102f7 100%),radial-gradient(60% 40% at 50% 0,#7a0a0e55,transparent);animation:none}
body:after{content:"";position:fixed;inset:-10%;z-index:-1;pointer-events:none;opacity:.35;background:radial-gradient(40% 18% at 20% 80%,#ffffff12,transparent 70%),radial-gradient(45% 20% at 80% 70%,#ffffff10,transparent 70%);animation:fog 28s ease-in-out infinite alternate}
@keyframes fog{to{transform:translate(-6%,2%)}}
h1,h2,h3,.top b,#splash h1{font-family:Cinzel,Georgia,serif;letter-spacing:.04em;font-weight:800}
h1 .grad,#splash h1,.goth{font-family:Fraktur,Cinzel,serif;font-weight:400;letter-spacing:0}
.grad{background:linear-gradient(90deg,#7a0a0e,#ff3b30,#c4161c,#7a0a0e);-webkit-background-clip:text;background-clip:text;background-size:200%;text-shadow:none;filter:drop-shadow(0 0 18px #c4161c66)}
a{color:#ff5a4e}
#splash{background:#000 url(brand/hero.jpg) center/cover}#splash:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,transparent 10%,#000d 70%)}
.sp-in{position:relative;animation:intro 2.4s ease-out both}@keyframes intro{0%{opacity:0;filter:blur(8px);transform:scale(1.08)}60%{opacity:1}100%{filter:none;transform:none}}
.sp-moon{display:none}#splash h1{font-size:3.6rem;color:#e01e24;text-shadow:0 0 30px #c4161c,0 4px 0 #2a0003}
#splash p{color:#d9c3bd;font-style:italic}
.ticker{background:linear-gradient(90deg,#1a0204,#5e070b,#1a0204);font-family:Cinzel,serif;border-bottom:1px solid #c4161c55}
.hero .moon{background:url(brand/wolf_moon.jpg) center/cover;width:170px;height:170px;border:3px solid #c4161c;box-shadow:0 0 70px 14px #c4161c55;animation:moonbeat 4s ease-in-out infinite}
@keyframes moonbeat{0%,100%{transform:scale(1)}8%{transform:scale(1.035)}16%{transform:scale(1)}24%{transform:scale(1.025)}}
.village{opacity:.85;filter:drop-shadow(0 -4px 10px #c4161c33)}
.tag{background:#1a0204cc;border-color:#c4161c66;font-family:Cinzel,serif;color:#e7cfc8}
.count div,.card{background:linear-gradient(180deg,#140405e6,#080203f0);border:1px solid #5e070b;box-shadow:inset 0 0 40px #000,0 10px 40px #0009;backdrop-filter:none;-webkit-backdrop-filter:none}
.card{border-radius:6px;position:relative}
.card:before{content:"";position:absolute;inset:5px;border:1px solid #c4161c22;border-radius:3px;pointer-events:none}
.card h2{color:#f0d6cf;border-bottom:1px solid #5e070b;padding-bottom:.3em;text-shadow:0 0 12px #c4161c55}
.count b{color:#ff4a3e}.count div+div b{color:var(--gold)}
button,.btns a,.btnlink{font-family:Cinzel,serif;letter-spacing:.05em;border-radius:4px;background:linear-gradient(180deg,#b3131a,#5e070b);border:1px solid #ff4a3e55;box-shadow:0 0 0 1px #000,0 4px 18px #c4161c33}
.btns a{background:#1a0204;color:#f0d6cf}.btnlink,.mini,#copy,.mode{background:#1a0204;border:1px solid #5e070b}
#enter,#gStart,#mpJoin,#swBuy,.bite button{animation:heartbeat 2.6s ease-in-out infinite}
@keyframes heartbeat{0%,40%,100%{box-shadow:0 0 0 1px #000,0 0 12px #c4161c44;transform:scale(1)}10%{box-shadow:0 0 0 1px #000,0 0 30px #ff2a2aaa;transform:scale(1.04)}20%{transform:scale(1)}30%{box-shadow:0 0 0 1px #000,0 0 24px #ff2a2a88;transform:scale(1.025)}}
input#name,.in2,select{border-radius:4px;border-color:#5e070b;background:#000c}
.pl{background:#120304;border:1px solid #3a0508;border-radius:6px}.log p{background:#0a0203;border-left:2px solid #5e070b}
.ad{border-color:#5e070b;background:#0a0203}.lobby{border-color:#5e070b;background:#0a0203aa}
.embers{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.embers i{position:absolute;bottom:-10px;width:3px;height:3px;border-radius:50%;background:#ff5a2a;box-shadow:0 0 6px 2px #ff2a0088;opacity:0;animation:ember linear infinite}
@keyframes ember{0%{opacity:0;transform:translate(0,0)}15%{opacity:.9}100%{opacity:0;transform:translate(30px,-90vh)}}
main,footer,.top,.hero{position:relative;z-index:1}
.cards{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 12px}
.cards img{width:150px;height:auto;flex:none;scroll-snap-align:center;border-radius:8px;border:1px solid #5e070b;box-shadow:0 8px 30px #000,0 0 20px #c4161c33;transition:transform .3s}
.cards img:hover{transform:translateY(-6px) rotate(-1deg)}
.sndbtn{position:fixed;right:12px;bottom:12px;z-index:30;padding:8px 12px;font-size:.8rem}
.show{background:#0a0203;border-color:#5e070b;border-radius:4px}.prog i{background:linear-gradient(90deg,#5e070b,#ff2a2a)}
.rg td,.rg th{border-color:#3a0508}th{color:var(--gold)}
.rg h1{font-family:Fraktur,serif;font-weight:400;color:#e01e24;font-size:2.8rem;text-shadow:0 0 20px #c4161c88}
footer{color:#7d6560}
@media(max-width:480px){#splash h1{font-size:2.6rem}.hero .moon{width:130px;height:130px}h1{font-size:2.5rem}}
@media(prefers-reduced-motion:reduce){.embers{display:none}}
.embers i:nth-child(1){left:8%;animation-duration:11s}.embers i:nth-child(2){left:22%;animation-duration:14s;animation-delay:3s}.embers i:nth-child(3){left:41%;animation-duration:9s;animation-delay:5s}.embers i:nth-child(4){left:63%;animation-duration:13s;animation-delay:1s}.embers i:nth-child(5){left:78%;animation-duration:10s;animation-delay:7s}.embers i:nth-child(6){left:91%;animation-duration:15s;animation-delay:4s}
.village g rect{fill:#e8261e;opacity:.55}.village{opacity:.7}.top a{text-decoration:none}
/* ===== NFT CARD LANGUAGE (frames, foil, rarity) ===== */
:root{--com:#9aa3b8;--rare:#5fd4ff;--epic:#c06bff;--leg:#ffd84a;--frame:#9b0d14;--foil:linear-gradient(115deg,transparent 20%,#ff5fa255 30%,#ffd84a55 38%,#5fd4ff55 46%,#c06bff55 54%,transparent 65%)}
.card{border-radius:18px;border:2px solid var(--frame);background:linear-gradient(180deg,#1a0406f2,#070102f5);box-shadow:0 0 0 4px #0a0203,0 0 0 5px #c9a66b55,inset 0 0 50px #000,0 14px 40px #000c;overflow:hidden}
.card:before{inset:8px;border:1px solid #c4161c44;border-radius:12px}
.card>h2:first-child{margin:-20px -20px 14px;padding:14px 20px 12px;background:linear-gradient(100deg,#9b0d14 0,#9b0d14 62%,transparent 62.2%);border:0;color:#fbe9e2;font-family:Georgia,serif;font-weight:700;letter-spacing:.01em;text-shadow:0 2px 0 #3a0003}
.card:after{content:"";position:absolute;inset:0;pointer-events:none;background:var(--foil);background-size:250% 100%;background-position:120% 0;mix-blend-mode:screen;opacity:0;transition:opacity .4s,background-position 1.2s}
.card:hover:after{opacity:.5;background-position:-20% 0}
button,.btns a,.btnlink{border-radius:10px;border:1px solid #c9a66b88;box-shadow:0 0 0 2px #0a0203,0 0 0 3px #9b0d14,0 6px 18px #000a;background:linear-gradient(180deg,#c01820,#7a0a0e 60%,#4a0508);position:relative;overflow:hidden}
button:after,.btns a:after,.btnlink:after{content:"";position:absolute;inset:0;background:var(--foil);background-size:250% 100%;background-position:130% 0;mix-blend-mode:screen;transition:background-position .7s;pointer-events:none}
button:hover:after,.btns a:hover:after,.btnlink:hover:after{background-position:-30% 0}
.btnlink,.mini,#copy,.mode,.btns a{background:linear-gradient(180deg,#22070a,#0d0203)}
.top{border-bottom:1px solid #9b0d14;box-shadow:0 1px 0 #c9a66b44}.top>a b{font-family:Fraktur,serif;font-weight:400;font-size:1.5rem;color:#e01e24}.top>a b:before,.top>a b:after{content:" ❦ ";font-family:Georgia;color:#c9a66b;font-size:.8rem}
.orn{color:#c9a66b;font-size:.8em}
.dlg .card{background:linear-gradient(180deg,#1a0406,#070102);border-color:var(--leg);box-shadow:0 0 0 4px #0a0203,0 0 0 6px #9b0d14,0 0 60px #c4161c66}
/* card object */
.nftc{position:relative;perspective:900px;margin:0;--rx:0deg;--ry:0deg;--hx:50%;--hy:50%;cursor:pointer;-webkit-tap-highlight-color:transparent}
.nftc-in{position:relative;aspect-ratio:420/630;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.8,.2,1);transform:rotateX(var(--rx)) rotateY(calc(var(--ry) + 180deg));border-radius:16px}
.nftc.flipped .nftc-in{transform:rotateX(var(--rx)) rotateY(var(--ry))}.nftc.tilting .nftc-in{transition:transform .08s}
.nftc .front,.nftc .back{position:absolute;inset:0;width:100%;height:100%;border-radius:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 18px 40px #000,0 0 26px #c4161c44}
.nftc .back{background:url(brand/cards/card_back.webp) center/cover;transform:rotateY(180deg)}
.nftc .holo{position:absolute;inset:0;border-radius:16px;pointer-events:none;backface-visibility:hidden;mix-blend-mode:color-dodge;opacity:0;transition:opacity .3s;background:radial-gradient(circle at var(--hx) var(--hy),#ffffff55,transparent 45%),linear-gradient(115deg,transparent 25%,#ff5fa266 35%,#ffd84a66 45%,#5fd4ff66 55%,#c06bff66 65%,transparent 75%);background-size:100% 100%,200% 200%;background-position:0 0,var(--hx) var(--hy)}
.nftc.tilting .holo,.nftc.r-leg .holo{opacity:.55}.nftc.r-epic.tilting .holo{opacity:.4}.nftc.r-com .holo{mix-blend-mode:soft-light}
.nftc figcaption{text-align:center;font-family:Georgia,serif;font-size:.8rem;margin-top:8px;color:#e8d3cc}
.r-leg figcaption{color:var(--leg)}.r-epic figcaption{color:var(--epic)}.r-rare figcaption{color:var(--rare)}.r-com figcaption{color:var(--com)}
.r-leg .front{box-shadow:0 0 0 2px var(--leg),0 18px 40px #000,0 0 30px #ffd84a55}.r-epic .front{box-shadow:0 0 0 2px var(--epic),0 18px 40px #000,0 0 24px #c06bff44}.r-rare .front{box-shadow:0 0 0 2px var(--rare),0 18px 40px #000}
.gal{display:grid;grid-auto-flow:column;grid-auto-columns:62%;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 4px 16px}.gal .nftc{scroll-snap-align:center}
@media(min-width:680px){.gal{grid-auto-flow:row;grid-template-columns:repeat(4,1fr);overflow:visible}}
.revealbox{display:flex;justify-content:center}.revealbox .nftc{width:min(78vw,300px);margin:10px auto 16px}
.reveal{animation:revealin .5s ease-out}@keyframes revealin{from{opacity:0;transform:translateY(20px) scale(.9)}}
/* game table: players as card backs */
.grid8{gap:10px}.pl{border-radius:10px;border:2px solid var(--frame);background:linear-gradient(180deg,#22070a,#0a0203);box-shadow:0 0 0 2px #0a0203,0 0 0 3px #c9a66b44,0 8px 18px #000}
.pl:not([disabled]):hover{box-shadow:0 0 0 2px #0a0203,0 0 0 3px var(--leg),0 0 22px #ffd84a55}
#gPlayers,#mpBoard{padding:12px;border-radius:14px;background:radial-gradient(ellipse at center,#2a0508,#0a0203 75%);border:1px solid #5e070b}
@media(prefers-reduced-motion:reduce){.nftc-in{transition:none}}
.nftc.r-leg .holo{opacity:.28}.nftc.r-leg.tilting .holo{opacity:.6}
/* ===== OFFICIAL FOLK-ART PRINT LANGUAGE (from card_back.jpg) ===== */
:root{--fr:#b3121a;--fpur:#7b3fb0;--fgrn:#4f8f2f;--famb:#e0a030;--cream:#f1e4cf;--frame:#b3121a}
.card{border-radius:14px;border:3px solid var(--fr);background:#070505;box-shadow:0 0 0 3px #000,0 0 0 4px #b3121a55,0 16px 40px #000c}
.card:before{inset:0;top:auto;height:14px;border:0;border-radius:0;background:url(brand/folk_strip.webp) center/auto 14px repeat-x;opacity:.85}
.card>h2:first-child{background:#070505;border-bottom:2px solid var(--fr);text-align:center;font-family:Fraktur,Cinzel,serif;font-weight:400;font-size:1.9rem;color:var(--cream);text-shadow:0 2px 0 #000}
.card>h2:first-child:before,.card>h2:first-child:after{content:"◆";color:var(--fr);font-size:.55em;vertical-align:middle;margin:0 .6em;font-family:Georgia}
.card:after{background:linear-gradient(115deg,transparent 30%,#e0a03033 45%,#7b3fb033 55%,transparent 70%);background-size:250% 100%}
.top{background:#070505 url(brand/folk_strip.webp) bottom/auto 10px repeat-x;padding-bottom:18px;border-bottom:0;box-shadow:none;max-width:none}
.ticker{background:var(--fr);color:#070505;font-weight:800;border:0}
button,.btns a,.btnlink{border-radius:6px;border:2px solid #000;box-shadow:0 0 0 2px var(--fr),0 6px 16px #000a;background:var(--fr);color:var(--cream)}
.btnlink,.mini,#copy,.mode,.btns a{background:#070505;color:var(--cream)}
.mode.on{background:var(--famb);color:#070505}
.count div{border:2px solid var(--fr);border-radius:6px;background:#070505}.count b{color:var(--famb)}.count div+div b{color:#b98be0}
.tag{background:#070505;border:2px solid var(--fr);border-radius:4px}
.hero .moon{border:4px solid var(--fr);outline:3px solid #000;outline-offset:-1px}
.r-leg figcaption{color:var(--famb)}.r-epic figcaption{color:#b98be0}.r-rare figcaption{color:#5fd4ff}
.nftc .front{box-shadow:0 18px 40px #000!important}
.pl{background:#070505 url(brand/folk_eye.webp) center/cover;border:2px solid var(--fr);border-radius:8px}
.pl .av{background:#070505cc;border-radius:8px;padding:2px}.pl.dead{filter:grayscale(1) brightness(.5)}
#gPlayers,#mpBoard{background:#0a0405;border:2px solid var(--fr);background-image:linear-gradient(#070505e6,#070505e6),url(brand/folk_eye.webp);background-size:auto,120px}
.dlg .card{border-color:var(--famb)}
.gallery .gal{grid-auto-columns:64%}@media(min-width:680px){.gallery .gal{grid-template-columns:repeat(5,1fr)}}
.lobby{border:2px dashed var(--fr)}.log p{border-left:3px solid var(--fr);background:#0d0606}
footer{background:url(brand/folk_strip.webp) top/auto 10px repeat-x;padding-top:30px}
#gPlayers.grid8{display:block}#gPlayers .grid8,#mpBoard .grid8{margin:0}.pl{padding:5px}
/* no cartoon art: tile avatars replaced by folk-art wolf token; bite portrait graded to red/black print */
.pl .av svg{display:none}.pl .av{display:block;width:100%;aspect-ratio:1;background:url(brand/folk_token.webp) center/cover;border-radius:50%;border:2px solid #000;box-shadow:0 0 0 2px var(--fr)}
.pl.dead .av{filter:grayscale(1) brightness(.4)}
#avatar svg{border:3px solid var(--fr)}
/* chat */
.chat{margin:14px 0;border:2px solid var(--fr);border-radius:10px;background:#070505;overflow:hidden}
.chat-h{padding:8px 12px;background:#070505 url(brand/folk_strip.webp) bottom/auto 8px repeat-x;padding-bottom:14px;font-family:Cinzel,serif}
.chat[data-ch=wolf]{border-color:#ff2a2a;box-shadow:0 0 20px #c4161c66}.chat[data-ch=wolf] .chat-h b{color:#ff4a3e}
.chat[data-ch=grave]{border-color:#7b3fb0}.chat[data-ch=grave] .chat-h b{color:#b98be0}.chat[data-ch=day] .chat-h b{color:var(--famb)}
.chat-log{max-height:220px;min-height:90px;overflow-y:auto;padding:6px 10px}
.cm{margin:4px 0;font-size:.9rem;word-break:break-word;position:relative}.cm b{color:var(--cream);font-family:Cinzel,serif;font-size:.8rem}.cm.ch-wolf b{color:#ff4a3e}.cm.ch-grave b{color:#b98be0}
.cm-a{display:none;margin-left:6px}.cm:hover .cm-a,.cm:focus-within .cm-a{display:inline}.cm-a .mini{padding:2px 6px;font-size:.65rem;margin-left:3px;box-shadow:none}
.muted-u{opacity:.35}.chat-f{display:flex;gap:6px;padding:8px;border-top:1px solid #3a0a0c}.chat-f input{flex:1;padding:10px;border-radius:6px;border:2px solid #5e070b;background:#000;color:#fff;font:inherit}
.chat-f button{animation:none;padding:8px 14px}
@media(hover:none){.cm-a{display:inline}}
.first-ed{border-color:#c9a13b;box-shadow:0 0 0 3px #000,0 0 0 5px #c9a13b88,0 0 40px #c9a13b33}.first-ed>h2:first-child{color:#f3d27a}
.first-ed .gal .nftc figcaption{color:#f3d27a}
.gallery .gal{grid-auto-columns:60%}@media(min-width:680px){.gallery .gal{grid-template-columns:repeat(5,1fr)}}
.pl em.mayor,.pl em.lover{background:#070505;border:1px solid var(--famb);font-size:.7rem}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}.pstat{border:2px solid var(--fr);border-radius:6px;padding:8px;text-align:center;background:#0a0405}.pstat small{display:block;color:var(--mu);font-size:.7rem}.pstat b{color:var(--famb);font-size:1.2rem}
.quests{list-style:none;padding:0}.quests li{padding:6px 10px;margin:4px 0;border-left:3px solid var(--fr);background:#0d0606}.quests li.done{border-color:var(--fgrn);color:#9fd27f}
#narrBtn[aria-pressed=true]{background:var(--famb);color:#070505}
.chat-f{flex-wrap:nowrap}.chat-f input{min-width:0;width:auto}
.cm.mine b{color:var(--famb)}
/* chapters nav */
nav.top{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;position:sticky;top:0;z-index:50}
.chap{display:flex;gap:.2rem;flex-wrap:wrap;flex:1;justify-content:center}
.chap a{padding:.3rem .5rem;border-radius:6px;color:#e8d9c4;text-decoration:none;font-size:.9rem;border-bottom:2px solid transparent}
.chap a:hover{color:#fff;background:rgba(160,20,20,.25)}
.chap a.on{color:#fff;border-bottom-color:#c0141e;background:rgba(160,20,20,.35)}
#menuBtn{display:none}
[data-ch][hidden]{display:none!important}
@media(max-width:820px){#menuBtn{display:inline-block;order:2}nav.top .ctl{order:3;margin-left:auto}
.chap{display:none;order:9;flex-basis:100%;flex-direction:column}.chap.open{display:flex}.chap a{padding:.7rem;border-bottom:1px solid #3a0d0d}}
.wtop{order:4;margin-left:.4rem;background:#8a0f16!important;color:#fff!important;font-weight:700;white-space:nowrap}
@media(max-width:820px){nav.top{flex-wrap:wrap}nav.top>b{order:1}.wtop{order:2;margin-left:auto}#menuBtn{order:3}nav.top .ctl{order:5;flex-basis:100%;display:flex;justify-content:flex-end;gap:.3rem;margin:0}}

/* village night */
body{background-attachment:fixed}
.village{position:fixed;left:0;right:0;bottom:0;height:120px;pointer-events:none;z-index:0;opacity:.9;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 160' preserveAspectRatio='none'><path fill='%23070304' d='M0 160V110l40-20 30 15V80l35-30 35 30v30h20V95l50-40 50 40v15l30-10 25 20V70l15-10 15 10v40h30l40-35 40 35v10l60-50 60 50v-5h25V60l12-25 12 25v50l40-30 40 30 45-45 45 45h20V85l35-25 35 25v25l50-20 30 20V75l40-35 40 35v35l30-15 40 25 50-45 50 45 40-15V160z'/><g fill='%23f3b13a'><rect x='85' y='90' width='8' height='10'/><rect x='170' y='85' width='9' height='11'/><rect x='420' y='95' width='8' height='10'/><rect x='600' y='88' width='9' height='11'/><rect x='800' y='92' width='8' height='10'/><rect x='1000' y='85' width='9' height='11'/></g></svg>") bottom/100% 100% no-repeat}
main,footer,header{position:relative;z-index:1}
nav.top{background:linear-gradient(#2a140c,#170a06);border-bottom:3px solid #5a2a14;box-shadow:0 4px 14px #000a}
.chap a{background:linear-gradient(#4a2412,#2e150a);border:1px solid #6b3a1c;color:#f1dcb8;font-family:inherit;box-shadow:inset 0 1px 0 #7a4524}
.chap a.on{background:linear-gradient(#8a0f16,#4a070b);border-color:#f3b13a;color:#fff;text-shadow:0 0 6px #f3b13a}
.chap a.on::before{content:"🏮 "}
@media(max-width:820px){.village{height:70px}}
.addr{margin:.6rem 0;padding:.6rem;border:1px solid #5a2a14;border-radius:8px;background:#120807}.addr code{display:block;word-break:break-all;font-size:.85rem;margin:.3rem 0}
/* inspired: sticky blurred nav, staggered reveal, flickering lanterns */
nav.top{backdrop-filter:blur(6px);background:linear-gradient(rgba(42,20,12,.95),rgba(23,10,6,.92))}
[data-ch]:not([hidden]){animation:chIn .45s ease both}
main>[data-ch]:not([hidden]):nth-child(2){animation-delay:.08s}main>[data-ch]:not([hidden]):nth-child(3){animation-delay:.16s}
@keyframes chIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.chap a.on::before{display:inline-block;animation:flick 2.2s infinite}
@keyframes flick{0%,100%{opacity:1}45%{opacity:.75}50%{opacity:.4}55%{opacity:.9}}
.chap a{transition:transform .15s,background .2s}.chap a:hover{transform:translateY(-2px) rotate(-1deg)}
@media(prefers-reduced-motion:reduce){[data-ch],.chap a.on::before{animation:none!important}}

/* in-game focus */
#mp.ingame #mpSetup,#mp.inlobby #mpSetup,#mp.ingame .wallet,#mp.ingame>p.muted{display:none}
#mp.ingame #mpRole img{max-height:30vh;width:auto;display:block;margin:.4rem auto}
#mp.ingame #mpHint{position:sticky;top:64px;z-index:5;background:#120807ee;padding:.4rem .6rem;border-radius:8px;border:1px solid #5a2a14}
@media(max-width:820px){nav.top{gap:.4rem;padding:.4rem .6rem}nav.top>b{font-size:.95rem}.wtop{font-size:.75rem;padding:.35rem .55rem}#menuBtn{order:3}nav.top .ctl{order:4;flex-basis:auto;margin-left:0}nav.top .ctl .mini{padding:.25rem .45rem}#mp.ingame #mpHint{top:100px}}
#mp.ingame .nftc{max-width:min(46vw,200px);margin:.4rem auto}
