/* Bard / tavern theme. Overrides app.css. High-contrast dark ink on parchment. */
:root{--bg:#2b1a0e;--ink:#2b1a0e;--paper:#f4e6c6;--paper2:#ead6a8;--mut:#5e4329;--pri:#7a1e2c;--pri2:#c9962e;--gold:#d9ad45;--ok:#2f6b3a;--vio:#7a1e2c;--card:#f4e6c6;--r:10px}
html,body{font-family:'Crimson Pro',Georgia,'Times New Roman',serif;font-size:17.5px;color:#f4e6c6}
body{background:
  radial-gradient(120% 70% at 50% -10%,rgba(217,173,69,.18),transparent 60%),
  repeating-linear-gradient(90deg,rgba(0,0,0,.08) 0 2px,transparent 2px 46px),
  linear-gradient(180deg,#3a2414,#24150b) fixed;}
h1,h2,h3,.logo,.pick-card b,.stats b,.bpm b,.tuner .note,.big-note,.wnum,.verdict{font-family:'Cinzel Decorative',Georgia,serif;font-weight:700}
h1{color:#f6dfa0;text-shadow:0 2px 0 #000a;letter-spacing:.01em}
h2{color:var(--gold);font-family:'Cinzel Decorative',serif;text-transform:none;letter-spacing:.03em;font-size:1.1rem;display:flex;align-items:center;gap:10px}
h2:before,h2:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.hero p,.fine{color:#e6d3a8}.fine{font-size:.92rem}.eyebrow{color:var(--gold)!important;letter-spacing:.05em}
.tag{font-style:italic;color:var(--gold)!important;font-size:1.1rem}
.top,.tabs{background:linear-gradient(180deg,#5a1420,#3d0c15);border-color:var(--gold)}
.top{border-bottom:2px solid var(--gold);box-shadow:0 4px 14px #0008}.tabs{border-top:2px solid var(--gold)}
.logo{color:#f6dfa0;font-size:1.25rem}.logo span{background:none;color:var(--gold);-webkit-text-fill-color:var(--gold)}
.chip{background:#2b1a0e;color:#f6dfa0;border:1px solid var(--gold);font-family:'Crimson Pro',serif}
.tabs a{color:#e8cf95;font-size:.82rem}.tabs a.on{background:rgba(217,173,69,.22);color:#fff3cf;box-shadow:inset 0 0 0 1px var(--gold)}
/* parchment scroll cards */
.card,.step,.week,.tile,.stats div,.badge,.seg,.vid-btn,.pick-card{
  background:radial-gradient(130% 120% at 50% 50%,#f8ecd0 55%,#e2c993 100%);color:var(--ink);
  border:1px solid #a07b3f;box-shadow:0 1px 0 #fff6 inset,0 6px 16px #0007}
.card,.week{position:relative;border-radius:6px}
.card:before,.card:after{content:"";position:absolute;left:-4px;right:-4px;height:10px;border-radius:8px;background:linear-gradient(180deg,#c9a467,#8a6430);box-shadow:0 2px 3px #0006}
.card:before{top:-6px}.card:after{bottom:-6px}
.card{margin:18px 0;padding:18px 16px}
.card .fine,.step .mins,.week summary small,.day small,.tile b,.stats small,.badge small,.cents,.vid-btn small{color:var(--mut)}
.card h3{font-family:'Cinzel Decorative',serif;color:var(--pri)}
.step{border-left:6px solid var(--pri);border-radius:6px}.step:nth-child(2){border-color:var(--pri2)}.step:nth-child(3){border-color:#5e4329}.step:nth-child(4){border-color:var(--ok)}
.step b{font-family:'Cinzel Decorative',serif;color:var(--pri)}
.cta{font-family:'Cinzel Decorative',serif;background:linear-gradient(180deg,#8f2434,#5a1420);color:#fbe9b7;border:2px solid var(--gold);border-radius:10px;box-shadow:0 0 0 3px #3d0c15,0 8px 20px #0008;letter-spacing:.02em}
.cta.alt{background:linear-gradient(180deg,#3f5f34,#26401f)}.cta.rec.on{background:#b3202f}
.ghost,.timer,.chipbtn,.bpm button,.day{background:#ead6a8;color:var(--ink);border:1px solid #a07b3f;font-family:'Crimson Pro',serif;font-weight:700}
.chipbtn.on{background:var(--pri);color:#fbe9b7;border-color:var(--gold)}
.day.done{background:#cfe0b8}.day.done:after{color:var(--ok)}
.wnum{background:radial-gradient(circle at 35% 30%,#f3d27a,#a87a22);color:#3d0c15;border:2px solid #6b4a14}
.week.locked{opacity:.7;filter:grayscale(.5)}
.bar{background:#d4bb87;border:1px solid #a07b3f}.bar i{background:linear-gradient(90deg,#7a1e2c,#c9962e)}
.hero .bar{background:#4a2e18}
.seg a{color:var(--mut);font-family:'Crimson Pro',serif}.seg a.on{background:var(--pri);color:#fbe9b7}
.pick-card{color:var(--ink);border:2px solid #a07b3f}.pick-card small{color:var(--mut);opacity:1}
.pick-card.guitar{box-shadow:inset 0 0 0 3px #7a1e2c,0 8px 20px #0008}.pick-card.bass{box-shadow:inset 0 0 0 3px #c9962e,0 8px 20px #0008}
.toggle{color:#f4e6c6}.card .toggle{color:var(--ink)}.toggle span{background:#6b4f33}.toggle input:checked+span{background:var(--ok)}
.play{background:#7a1e2c;color:#fbe9b7;border:2px solid var(--gold)}
.tuner.ok .note{color:var(--ok)}.tuner .note{color:var(--pri)}.big-note{color:var(--pri)}
.strs span{background:#ead6a8;border:1px solid #a07b3f}.strs span.on{background:var(--ok);color:#fff}
.meter{border:1px solid #6b4a14}.meter i{background:#2b1a0e}
.beats i{background:#d4bb87;border:1px solid #a07b3f}.beats i.on{background:var(--pri2)}.beats i:first-child.on{background:var(--pri)}
.verdict.ok{background:#cfe0b8;color:#1d3d22}.verdict.meh{background:#f0d9a0;color:#4a3210}
.cb i{background:#b89a68}.cb.want i{background:var(--pri)}
.timeline{background:#d4bb87}.timeline i.ok{background:var(--ok)}.timeline i.off{background:#b3202f}
.tbl td,.tbl th{border-color:#c9ad78}.okc{color:var(--ok)}.offc{color:#b3202f}
.badge{filter:grayscale(1) sepia(.3);opacity:.55}.badge.got{filter:none;opacity:1;box-shadow:inset 0 0 0 2px var(--gold),0 6px 16px #0007}
.danger{background:#5a1420;color:#fbe9b7;border:1px solid var(--gold);font-family:'Crimson Pro',serif}
.toast{background:#f8ecd0;color:var(--ink);border:2px solid var(--gold);font-family:'Crimson Pro',serif;font-size:1.05rem}
.back{color:var(--gold)}a{color:#7a1e2c}.hero a,.fine a{color:var(--gold)}
.lvl b{font-family:'Cinzel Decorative',serif;color:var(--pri)}
.diagram{background:#fbf3df;border:1px solid #a07b3f}
.d-title{font-family:'Crimson Pro',Georgia,serif!important;font-weight:700;font-size:26px;fill:#5a1420}.d-title.sm{font-size:15px}.d-dot{fill:#7a1e2c}.d-opendot{fill:#a87a22}.d-nut,.d-nutv{fill:#2b1a0e;stroke:#2b1a0e}.d-string{stroke:#5e4329}.d-fret{stroke:#b39b74}
.warn{border-color:#b3202f!important}
#gsi{font-family:'Crimson Pro',serif;font-size:1.2rem}
/* character */
.avatar{border-radius:50%;display:grid;place-items:center;flex:none;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--av) 60%,#fff),var(--av) 70%);border:3px solid var(--gold);box-shadow:0 0 0 2px #3d0c15,0 4px 10px #0007}
.avatar span{filter:drop-shadow(0 2px 1px #0008)}
.greet{display:flex;align-items:center;gap:10px;margin-bottom:8px;color:#f6dfa0}.greet b{color:var(--gold)}
.wiz .dots{display:flex;gap:6px;justify-content:center;margin:6px 0 10px}.wiz .dots i{width:28px;height:6px;border-radius:3px;background:#5e4329}.wiz .dots i.done{background:var(--gold)}.wiz .dots i.on{background:#f6dfa0}
.wizc h1{color:var(--pri);text-shadow:none;font-size:1.4rem}.wizc h2{color:var(--pri)}.wizc h2:before,.wizc h2:after{background:linear-gradient(90deg,transparent,#a07b3f,transparent)}
.field{width:100%;font:1.15rem 'Crimson Pro',serif;padding:12px;border:2px solid #a07b3f;border-radius:8px;background:#fffaf0;color:var(--ink);margin-top:6px}
.field:focus{outline:3px solid var(--gold)}
.opts{display:grid;gap:8px}.opt{display:grid;grid-template-columns:auto 1fr;column-gap:12px;text-align:left;background:#fffaf0;border:2px solid #c9ad78;border-radius:10px;padding:10px 12px;font:inherit;color:var(--ink);cursor:pointer}
.opt .oi{grid-row:span 2;font-size:1.8rem;align-self:center}.opt small{color:var(--mut)}.opt.on{border-color:var(--pri);background:#f7e1d4;box-shadow:0 0 0 2px var(--pri)}
.crests{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.crest{font-size:1.6rem;aspect-ratio:1;border-radius:10px;border:2px solid #c9ad78;background:#fffaf0;cursor:pointer}.crest.on{border-color:var(--pri);box-shadow:0 0 0 2px var(--pri)}
.swatches{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.sw{width:40px;height:40px;border-radius:50%;border:3px solid #fffaf0;box-shadow:0 0 0 1px #a07b3f;cursor:pointer}.sw.on{box-shadow:0 0 0 3px var(--gold),0 0 0 5px #3d0c15}
.preview{display:flex;justify-content:center;margin-top:16px}
.align{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.al{aspect-ratio:1.15;border-radius:8px;border:2px solid #c9ad78;background:#fffaf0;font:700 .9rem 'Crimson Pro',serif;color:var(--ink);cursor:pointer;line-height:1.15}.al.on{background:var(--pri);color:#fbe9b7;border-color:var(--gold)}
.wnav{margin-top:8px}.wnav .cta{margin:0}.cta:disabled{opacity:.45;filter:grayscale(.6)}
.sheet-head{display:flex;gap:14px;align-items:center}.sheet-head .nm{color:var(--pri);text-shadow:none;font-size:1.45rem;margin:0;word-break:break-word}.sheet-head .sub{margin:2px 0;font-weight:700;color:var(--ink)}.sheet-head .sub2{margin:0;color:var(--mut);font-size:.92rem}
.facts{flex-wrap:wrap;font-size:.92rem;margin-top:8px}.edit{display:block;text-align:center;margin-top:10px;text-decoration:none}
.abil{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.ab{background:radial-gradient(#f8ecd0 55%,#e2c993);border:2px solid #a07b3f;border-radius:10px 10px 40% 40%;text-align:center;padding:6px 2px 10px;color:var(--ink);box-shadow:0 4px 10px #0007}
.ab small{font:700 .8rem 'Cinzel Decorative',serif;color:var(--pri)}.ab b{display:block;font:700 1.6rem 'Cinzel Decorative',serif}.ab .mod{display:inline-block;background:var(--pri);color:#fbe9b7;border-radius:99px;padding:0 8px;font-weight:700;font-size:.85rem}
.ab em{display:block;font-size:.66rem;font-style:normal;font-weight:700;margin-top:4px;line-height:1.1}.ab i{display:block;font-size:.6rem;color:var(--mut);line-height:1.1;font-style:normal}
.spells{display:grid;grid-template-columns:1fr 1fr;gap:6px}.spells .fine{grid-column:span 2;margin:4px 0 0}.spell{padding:8px;border-radius:8px;border:1px dashed #a07b3f;color:var(--mut);font-size:.92rem}.spell.on{border-style:solid;background:#f7e1d4;color:var(--ink);font-weight:700}
.inv{margin:0;padding-left:4px;list-style:none}.inv li{padding:6px 0;border-bottom:1px solid #d9c194}
.qlog{margin:0;padding-left:20px}.qlog li{padding:5px 0;border-bottom:1px solid #d9c194}.qlog small{display:block;color:var(--mut)}
.story{font-style:italic;white-space:pre-wrap;word-break:break-word;margin:0}
.card .chipbtn{cursor:default}
/* v8: more instruments */
.d-board{fill:#2b1a0e;opacity:.12}.d-tape{stroke:#c9962e;stroke-width:4;opacity:.85}.d-finger.sm{font-size:10px}
.k-white{fill:#fffaf0;stroke:#2b1a0e;stroke-width:1.5}.k-black{fill:#2b1a0e}.k-white.k-on{fill:#f3d9a4}.k-black.k-on{fill:#a8641a}
.h-str{stroke:#8a7556}.h-c{stroke:#c0282d}.h-f{stroke:#1f3f8a}.d-neck{fill:none;stroke:#5e4329;stroke-width:8;stroke-linecap:round}
.pick.grid{grid-template-columns:1fr 1fr;gap:10px}.pick.grid .pick-card{grid-template-columns:1fr;grid-template-rows:auto;padding:14px 10px;text-align:center;border-radius:18px;justify-items:center;row-gap:2px}
.pick.grid .pick-card .big{grid-row:auto;font-size:2.2rem}.pick.grid .pick-card b{font-size:1rem}.pick.grid .pick-card small{font-size:.72rem;line-height:1.2}
.pick.grid .pick-card.on{box-shadow:inset 0 0 0 3px #c9962e,0 8px 20px #0008}.pick.grid .pick-card .wpn{font-style:italic;font-size:.75rem;color:#7a1e2c}
.tunehint{text-align:center;margin:6px 0 0}
.pick-card.guitar,.pick-card.bass{background:radial-gradient(130% 120% at 50% 50%,#f8ecd0 55%,#e2c993 100%)}
/* v10: focused quest step */
body.focus #tabs{display:none}body.focus #view{padding-bottom:24px}
.stepview .task p{font-size:1.15rem;margin:0}.steptimer{display:flex;align-items:center;justify-content:center;gap:14px;margin:10px 0}
.steptimer b{font-family:'Cinzel Decorative',Georgia,serif;font-size:2.4rem;color:#f3d9a4;text-shadow:0 2px 6px #000a}
.chk.big{font-size:1.1rem;display:flex;align-items:center;gap:8px}.stepview .wnav{margin-top:14px;align-items:center}
a.timer{text-decoration:none;display:inline-block}
.stepview .chk.big{color:#f3d9a4}
/* v15: portraits, shop */
.avatar.pimg{padding:0;overflow:hidden;border-radius:50%;background:none;border:2px solid #c9962e}.avatar.pimg svg{width:100%;height:100%;display:block}
.bigportrait svg,.avprev svg,.shopprev svg{width:100%;max-width:300px;display:block;margin:0 auto;border-radius:16px;box-shadow:0 8px 22px #0008}
.bigportrait .row{margin-top:10px;gap:8px}.aved details{margin:8px 0}.aved summary{font-weight:700;cursor:pointer;padding:6px 0}
.avopts{display:flex;flex-wrap:wrap;gap:6px}.avopt{border:1px solid #a07b3f;background:#f8ecd0;border-radius:12px;padding:6px 10px;font:inherit;font-size:.85rem;display:flex;align-items:center;gap:6px;color:var(--ink)}
.avopt i,.wtry i{width:16px;height:16px;border-radius:50%;display:inline-block;border:1px solid #0005}.avopt.on{box-shadow:inset 0 0 0 2px #7a1e2c;background:#f3d9a4}.avopt.lock{opacity:.55}.avopt small{font-size:.7rem}
.avprev{position:sticky;top:56px;z-index:2;padding:6px 0;background:linear-gradient(#2b1a0ecc,#2b1a0e00)}.avprev svg{max-width:220px}
.goldbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.goldbar b{font-size:2rem;font-family:'Cinzel Decorative',Georgia,serif}.coin{font-size:2rem}
.chal{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px dashed #a07b3f66}.chal>div{flex:1}.chal small{display:block;color:var(--mut)}.chal.claimed{opacity:.6}.chal .cta.half{flex:0 0 auto;width:auto;padding:8px 14px;margin:0}
.eve{box-shadow:inset 0 0 0 2px #e07a1f,0 6px 16px #0007}
.wares{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.ware{display:flex;flex-direction:column;gap:6px;background:#f8ecd0;border:1px solid #a07b3f;border-radius:14px;padding:8px}
.ware.on{box-shadow:inset 0 0 0 2px #7a1e2c}.ware.seasonal{border-color:#e07a1f}.wtry{background:none;border:0;font:inherit;text-align:left;color:var(--ink);display:flex;flex-direction:column;gap:2px}.wtry small{color:#b3541e}
.ware .cta.half,.ware .ghost{margin:0;width:100%;padding:8px}.shopwrap .seg{flex-wrap:wrap}.shopprev{text-align:center}.shopprev svg{max-width:200px}
.goldchip{margin-left:6px;color:inherit;text-decoration:none}.tile.wide{grid-column:1/-1;display:flex;gap:10px;align-items:center;margin-top:10px}.tile.wide small{margin-left:auto}
.compbadge{display:inline-block;background:linear-gradient(180deg,#f3d27a,#c9962e)!important;color:#3d0c15!important;border:1px solid #6b4a14!important;font-weight:700;margin:4px 0}

/* ---- Guild Hall (family, band, duels, stage) ---- */
.halltile{background:linear-gradient(135deg,#3b2a5a,#5a3d7a)}
.hallgrid .tile small{display:block;opacity:.75;font-size:.8em}
.code{font-family:monospace;letter-spacing:.12em;font-size:1.1em}
.stats4{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:8px;font-size:.9em}
.fmem .chip,.band .chip{margin-left:4px}
button.sm,.ghost.sm,.danger.sm{padding:6px 10px;font-size:.85em;width:auto;margin:4px 0}
.chal.claimed{opacity:.6}
.riff{display:grid;grid-template-columns:repeat(16,1fr);gap:3px;margin:10px 0}
.riff i{height:22px;border-radius:4px;background:rgba(255,255,255,.08)}
.riff i.beat{outline:1px solid rgba(255,255,255,.18)}
.riff i.on{background:#e8b84a}
.duelbeats{display:flex;gap:8px;justify-content:center;margin:12px 0}
.duelbeats i{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.15)}
.duelbeats i.on{background:#e8b84a;transform:scale(1.2)}
.clip audio{width:100%;margin:8px 0}
.reacts{display:flex;gap:8px}
.react{flex:1;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:inherit;padding:8px;font-size:1.2em}
.react.on{background:rgba(232,184,74,.3);border-color:#e8b84a}
.react small{font-size:.65em;opacity:.8}
.giftbox{margin-top:8px;gap:6px}
.giftbox .field{flex:1}
a.toast{text-decoration:none;color:inherit}
/* ---- Familiar & song spells ---- */
.fammeter{height:10px;border-radius:6px;background:rgba(255,255,255,.1);overflow:hidden;margin:8px 0}
.fammeter i{display:block;height:100%;background:linear-gradient(90deg,#e8b84a,#ffd98a)}
.songspells{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sspell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);color:inherit}
.sspell span{font-size:1.6em}.sspell small{font-size:.7em;text-align:center}
.sspell.on{border-color:#e8b84a;box-shadow:0 0 12px rgba(232,184,74,.5)}
.sspell.locked{opacity:.45}
.spellfx{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.spellfx i{position:absolute;font-style:normal;left:calc(8% + var(--i)*9%);bottom:-10%;font-size:1.4em;animation:spellrise 3.2s ease-in infinite;animation-delay:calc(var(--i)*.32s);opacity:0}
@keyframes spellrise{0%{transform:translateY(0) scale(.6);opacity:0}15%{opacity:1}100%{transform:translateY(-110%) scale(1.1) rotate(20deg);opacity:0}}
.sp-aura{box-shadow:inset 0 0 40px rgba(255,215,100,.55);animation:aurapulse 2s ease-in-out infinite}
@keyframes aurapulse{50%{box-shadow:inset 0 0 70px rgba(255,215,100,.8)}}
.sp-stars i{bottom:auto;top:-10%;animation-name:spellfall}
.sp-leaves i,.sp-bubbles i{animation-duration:4.5s}
@keyframes spellfall{0%{transform:translateY(0);opacity:0}15%{opacity:1}100%{transform:translateY(110%) rotate(-30deg);opacity:0}}
@media (prefers-reduced-motion:reduce){.spellfx i,.sp-aura{animation:none;opacity:.8}}
/* ---- Painted full-body bards (v19) ---- */
.painted{position:relative;width:100%;aspect-ratio:3/4;border-radius:18px;overflow:hidden;border:4px solid var(--accent,#c9962e);background:#c9a46a;box-sizing:border-box}
.painted img{width:100%;height:100%;object-fit:cover;display:block}
.painted .famlayer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.painted.pface{aspect-ratio:1;border-radius:50%;border-width:2px}
.avatar.pimg .painted{width:100%;height:100%}
.ancface{width:44px;height:44px;border-radius:50%;object-fit:cover;display:block;border:2px solid #c9962e}
.bigportrait .painted{max-width:380px;margin:0 auto}
.avprev .painted,.shopprev .painted{max-width:260px;margin:0 auto}
