/* ============================================================
   card-kit.css — 设计稿卡片视觉语言（照搬 design/css/cards.css）
   ------------------------------------------------------------
   铁律#1：照搬设计稿。.pcard(扑克牌) / .jcard(小丑·商店·消耗·攻击牌) /
   .mcard(牌组迷你牌) / .jslot(空槽) / .cback(牌背)。
   稀有度=底色(4 档)，edition=描边(foil/holo/poly/neg)，两通道正交。
   类目色(消耗/攻击/补充包/券)用 .cat-* 与 .threat-* 覆盖底色描边。
   —— 与扑克牌系统(.card)选择器不撞；旧 .joker-card 皮肤已于 Phase 2 类名迁移退役。
   取色走 theme.css 设计令牌（--card-w/h、--rar-*、--card-face/red/black、--sh-card…）。
   ============================================================ */

/* ---------------- shared frame ---------------- */
.pcard, .jcard {
  position: relative;
  width: var(--card-w);
  height: var(--card-h);
  border-radius: 9px;
  flex: none;
  user-select: none;
}

/* ===== POKER CARD ===== */
.pcard {
  background: var(--card-face);
  border: 1px solid rgba(150,138,118,.7);
  box-shadow: var(--sh-card), inset 0 0 0 1.5px rgba(255,255,255,.85);
  overflow: hidden;
  color: var(--card-black);
}
.pcard.red { color: var(--card-red); }
.pc-corner {
  position: absolute;
  display: flex; flex-direction: column; align-items: center;
  line-height: .92;
  font-weight: 900;
}
.pc-corner.tl { top: 5px; left: 6px; }
.pc-corner.br { bottom: 5px; right: 6px; transform: rotate(180deg); }
.pc-corner .r { font-size: 16px; }
.pc-corner .s { font-size: 11px; }
.pc-mid {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
}
.pc-ace { font-size: 42px; line-height: 1; }
/* 数字牌点阵：花色符号 grid 平铺（2/3 单列竖排，4-10 双列），近似原版点阵 */
.pc-pips {
  position: absolute; inset: 16px 13px;
  display: grid; grid-template-columns: 1fr 1fr; align-content: space-between;
  justify-items: center;
}
.pc-pips.n2, .pc-pips.n3 { grid-template-columns: 1fr; }
.pc-pips .pip { font-size: 15px; line-height: 1; }
/* 人头牌 J/Q/K：宫廷头饰 SVG + 字母 + 花色（currentColor 随红/黑） */
.pc-royal {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
}
.royal-crown { width: 32px; height: 21px; fill: currentColor; }
.royal-crown path { fill: currentColor; }
.royal-l { font-size: 25px; font-weight: 900; line-height: 1; }
.royal-s { font-size: 12px; line-height: 1; }
/* blue value chip */
.pc-chip {
  position: absolute; bottom: 4px; left: 4px;
  width: 19px; height: 19px; border-radius: 50%;
  background: linear-gradient(135deg, #3a8fd6, #2266aa);
  border: 1.5px solid #5599dd;
  color: #fff; font-size: 10px; font-weight: 900;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 1px 3px rgba(0,0,0,.4);
}
/* enhancement 图标徽标（右上） + seal 印章圆点（左下）—— 设计稿无、按设计风格补 */
.pc-enh {
  position: absolute; top: 3px; right: 3px; z-index: 3;
  font-size: 12px; line-height: 1;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.5));
}
.pc-seal {
  position: absolute; bottom: 4px; left: 4px; z-index: 3;
  width: 11px; height: 11px; border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.85);
  box-shadow: 0 1px 3px rgba(0,0,0,.45);
}
.pc-seal.seal-red    { background: #fe5f55; }  /* G.C.RED */
.pc-seal.seal-blue   { background: #009dff; }  /* G.C.BLUE */
.pc-seal.seal-gold   { background: #eac058; }  /* G.C.GOLD */
.pc-seal.seal-purple { background: #8867a5; }  /* G.C.PURPLE */
/* ===== 原版贴图卡面（8BitDeck sprite）===== */
/* cards.png 精灵图本身透明（只画点位/人像/角标，无白牌身）→ .pcard.sprite 必须自带
   白底，否则透明区直接露绿桌（牌看着是透明的）。原版白牌身由引擎单画一层，这里用 CSS 补。 */
.pcard.sprite {
  background: var(--card-face);
  border: 1px solid rgba(150,138,118,.55);
  box-shadow: var(--sh-card);
}
.pcard.sprite .pc-face {
  position: absolute; inset: 0;
  border-radius: inherit;
  background-image: url(/textures/2x/8BitDeck.png);
  background-size: 1300% 400%;          /* 13列 × 4行 */
  background-repeat: no-repeat;
  image-rendering: pixelated;           /* 像素美术不模糊 */
  z-index: 1;
}
/* 原版 center 层：强化底框（m_*）铺满整卡，face 叠其上 */
.pcard.sprite .pc-enh-frame {
  position: absolute; inset: 0; z-index: 0;
  border-radius: inherit; overflow: hidden; pointer-events: none;
}
.pcard.sprite .pc-enh-frame .atlas-art {
  width: 100%; height: 100%;
  border-radius: inherit;
  image-rendering: pixelated;
}
/* 原版 seal 层：透明底印章精灵整卡叠印 */
.pcard.sprite .pc-seal-art {
  position: absolute; inset: 0; z-index: 2;
  border-radius: inherit; overflow: hidden; pointer-events: none;
}
.pcard.sprite .pc-seal-art .atlas-art {
  width: 100%; height: 100%;
  border-radius: inherit;
  image-rendering: pixelated;
}
/* 有强化贴图时关掉 multiply tint；stone 无 front */
.pcard.sprite.has-enh-frame .pc-tint { display: none; }
.pcard.sprite.enh-stone .pc-face { display: none; }
.pcard.sprite.has-enh-frame {
  /* 强化帧自带卡身，白底只作加载前底 */
  background: #1a1a1e;
}
/* enhancement 着色层：叠在 sprite 上，multiply 保留点数/花色，色调一眼区分 8 种强化
   （仅强化贴图缺失时的回退；有 .has-enh-frame 时由 CSS 关掉） */
.pcard.sprite .pc-tint {
  position: absolute; inset: 0; border-radius: inherit;
  pointer-events: none; mix-blend-mode: multiply; z-index: 1;
}
.pcard.sprite.enh-bonus .pc-tint { background: linear-gradient(160deg,#bfe6ff,#7fc6f5); opacity: .85; } /* +30 筹码 → CHIPS 蓝 */
.pcard.sprite.enh-mult  .pc-tint { background: linear-gradient(160deg,#ffc2bd,#f7857c); opacity: .85; } /* +4 倍率 → MULT 红 */
.pcard.sprite.enh-wild  .pc-tint { background: linear-gradient(135deg,#ffd1d1,#d9c4ff 45%,#c4e6ff); opacity: .8; } /* 任意花色 → 彩 */
.pcard.sprite.enh-lucky .pc-tint { background: linear-gradient(160deg,#cdeccb,#8fce8a); opacity: .8; }  /* 幸运 → GREEN */
.pcard.sprite.enh-stone .pc-tint { background: linear-gradient(160deg,#bdb7ad,#9a958c); opacity: .92; } /* 石头 → 灰岩 */
.pcard.sprite.enh-gold  .pc-tint { background: linear-gradient(160deg,#fbe9b0,#e9cf86); opacity: .85; } /* 黄金 → 金 */
.pcard.sprite.enh-steel .pc-tint { background: linear-gradient(160deg,#dfe6ee,#bcc6d2); opacity: .8; }  /* 钢铁 → 钢灰 */
.pcard.sprite.enh-glass .pc-tint { background: linear-gradient(160deg,#eafaff,#cdeefb); opacity: .55; } /* 玻璃 → 半透青 */
/* 牌面 hover/选中 信息浮窗（原版点牌看效果：基础筹码 + 强化/印章/版本） */
.pc-tip {
  position: absolute; bottom: calc(100% + 9px); left: 50%; transform: translateX(-50%);
  min-width: 124px; max-width: 220px;
  background: rgba(16,26,20,.98); color: #eef0ee;
  border: 1px solid var(--blt-gold,#eac058); border-radius: 9px;
  padding: 9px 13px; font-size: 13.5px; line-height: 1.55; font-weight: 700;
  display: none; flex-direction: column; gap: 3px; z-index: 60;
  pointer-events: none; box-shadow: 0 7px 22px rgba(0,0,0,.6);
  white-space: nowrap; text-align: center;
}
.pc-tip::after {
  content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  border: 7px solid transparent; border-top-color: var(--blt-gold,#eac058);
}
.pc-tip b { color: var(--blt-gold,#eac058); font-weight: 900; font-size: 15px; margin-right: 5px; }
.pc-tip .ti-chip { color: var(--blt-chips,#009dff); }
.pcard:hover .pc-tip, .pcard.sel .pc-tip { display: flex; }
/* hover/选中时放开裁剪，让信息浮窗能溢出牌外（卡面圆角背景仍由 border-radius 裁） */
.pcard:hover, .pcard.sel { overflow: visible; }

/* Boss 盖牌：优先原版牌背精灵；无贴图时 CSS 花纹回退 */
.pcard.facedown { background: #2a3a6a; border-color: rgba(255,255,255,.18); display: flex; align-items: center; justify-content: center; }
.pcard.facedown.has-back {
  background: #1a1a22;
  padding: 0;
  overflow: hidden;
}
.pcard.facedown .pc-back-art {
  position: absolute; inset: 0;
  border-radius: inherit; overflow: hidden;
}
.pcard.facedown .pc-back-art .atlas-art {
  width: 100%; height: 100%;
  border-radius: inherit;
  image-rendering: pixelated;
}
.pcard.facedown .pc-back {
  position: absolute; inset: 6px; border-radius: 6px;
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.10) 0 4px, transparent 4px 8px),
    repeating-linear-gradient(-45deg, rgba(255,255,255,.10) 0 4px, transparent 4px 8px),
    linear-gradient(135deg, #3a4e8c, #243463);
  border: 1px solid rgba(255,255,255,.22);
}

/* Cerulean Bell：强制选中牌，蓝色高亮描边 + 🔔 角标（必须打出） */
.pcard.forced { border-color: rgba(70,150,230,.95); box-shadow: 0 0 8px 1px rgba(70,150,230,.6); }
.pcard.forced .pc-forced { position: absolute; top: 2px; right: 2px; font-size: 13px; filter: drop-shadow(0 1px 1px rgba(0,0,0,.6)); }

/* Boss debuff：置灰 + 暗红描边 + ✕ 角标（牌仍计入牌型，本身不计分） */
.pcard.debuff { filter: grayscale(.85) brightness(.7); border-color: rgba(160,40,40,.85); }
.pcard.debuff .pc-debuff {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 38px; font-weight: 900; color: rgba(200,40,40,.7);
  text-shadow: 0 1px 2px rgba(0,0,0,.6); pointer-events: none;
}

/* Crimson Heart：禁用小丑置灰 + 暗红角标（本手 calc 跳过） */
.jcard.debuff { filter: grayscale(.85) brightness(.7); border-color: rgba(160,40,40,.85); }
.jcard.debuff .jc-debuff {
  position: absolute; top: 4px; right: 4px; z-index: 3;
  width: 18px; height: 18px; border-radius: 50%;
  background: rgba(140,24,24,.92); color: #fff;
  font-size: 11px; font-weight: 900; line-height: 18px; text-align: center;
  pointer-events: none;
}

/* ===== JOKER / SHOP CARD ===== */
/* 原版：小丑/消耗整卡即精灵图（含框），不是「粉彩底 + 小贴纸 + 名字条」。
   .has-art：贴图铺满，稀有度底色仅作加载前/缺图 fallback；.no-art 保留旧贴纸布局。 */
.jcard {
  background: var(--rar-common);
  border: 2px solid rgba(110,122,136,.6);
  box-shadow: var(--sh-card), inset 0 1px 0 rgba(255,255,255,.5);
  display: flex; flex-direction: column;
  padding: 4px;
  color: var(--rar-common-ink);
  overflow: hidden;
}
.jcard.has-art {
  padding: 0;
  /* 贴图自带卡框，外框改细暗边，避免「双框」 */
  border-width: 1px;
  border-color: rgba(0,0,0,.45);
  background: #1a1a22;
  color: #eee;
  box-shadow: var(--sh-card);
}
/* 小丑 hover 详情浮窗（原版：悬停即显说明，无需点击）。名+稀有+说明，成长型附实时累计值。 */
.jc-tip {
  position: absolute; bottom: calc(100% + 9px); left: 50%; transform: translateX(-50%);
  width: 208px;
  background: rgba(16,26,20,.98); color: #e6e9e6;
  border: 1px solid var(--blt-gold,#eac058); border-radius: 9px;
  padding: 10px 12px; font-size: 12.5px; line-height: 1.5; font-weight: 600;
  display: none; z-index: 90;
  pointer-events: none; box-shadow: 0 8px 24px rgba(0,0,0,.62);
  white-space: normal; text-align: center;
}
.jc-tip::after {
  content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  border: 7px solid transparent; border-top-color: var(--blt-gold,#eac058);
}
.jc-tip .jt-nm  { color: var(--blt-gold,#eac058); font-weight: 900; font-size: 14px; }
.jc-tip .jt-rar { font-size: 10.5px; font-weight: 700; opacity: .7; margin-left: 5px; }
.jc-tip .jt-desc { display: block; margin-top: 5px; color: #dfe6df; }
.jc-tip .jt-live {
  display: block; margin-top: 6px; padding-top: 6px;
  border-top: 1px solid rgba(234,192,88,.3);
  color: var(--blt-mult,#fe5f55); font-weight: 800;
}
/* hover 时放裁剪 + 抬层，浮窗不被相邻小丑（负 margin 重叠）压住 */
.jcard:hover { overflow: visible; z-index: 50; }
.jcard:hover .jc-tip { display: block; }

.jcard.r-common   { background: var(--rar-common);   border-color: rgba(110,122,136,.6); color: var(--rar-common-ink); }
.jcard.r-uncommon { background: var(--rar-uncommon); border-color: rgba(96,132,168,.6);  color: var(--rar-uncommon-ink); }
.jcard.r-rare     { background: var(--rar-rare);     border-color: rgba(170,128,48,.65);  color: var(--rar-rare-ink); }
.jcard.r-legend   { background: var(--rar-legend);   border-color: rgba(160,118,196,.62); color: var(--rar-legend-ink); }
/* 有原版贴图时稀有度只影响无贴图 fallback；边框统一暗边，避免盖住精灵自带框 */
.jcard.has-art.r-common,
.jcard.has-art.r-uncommon,
.jcard.has-art.r-rare,
.jcard.has-art.r-legend {
  background: #1a1a22;
  border-color: rgba(0,0,0,.45);
  color: #eee;
}

.jcard .art {
  flex: 1 1 auto; min-height: 0;
  display: flex; align-items: center; justify-content: center;
  border-radius: 5px;
  overflow: hidden;
}
/* 整卡贴图：.art 绝对铺满，atlas 百分比精灵填满 */
.jcard.has-art .art {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  flex: none;
}
.jcard .art svg { width: 100%; height: 100%; display: block; }
.jcard .nm {
  flex: none; text-align: center;
  font-size: 8.5px; font-weight: 900; line-height: 1.05;
  padding: 2px 1px 1px;
  letter-spacing: .2px;
  text-shadow: 0 1px 0 rgba(255,255,255,.35);
}
.jcard.has-art .nm { display: none; }

/* rarity tag (draft / detail) */
.r-tag {
  font-size: 9px; font-weight: 900; letter-spacing: .5px;
  padding: 2px 7px; border-radius: 999px; color: #fff;
}
.r-tag.r-common   { background: #6e7a88; }
.r-tag.r-uncommon { background: #4a76a8; }
.r-tag.r-rare     { background: #b8893a; }
.r-tag.r-legend   { background: linear-gradient(90deg,#a05ed6,#d66ea0,#5e9ed6); }

/* ===== EDITION borders (orthogonal to rarity) ===== */
.ed-ring { position: absolute; inset: -2px; border-radius: 11px; pointer-events: none; z-index: 3; }
.ed-foil   { box-shadow: 0 0 0 2px #7dd3fc, 0 0 14px rgba(56,189,248,.55), var(--sh-card); }
.ed-holo   { box-shadow: 0 0 0 2px #d56ff0, 0 0 16px rgba(199,125,255,.5), var(--sh-card); }
.ed-poly   { box-shadow: 0 0 0 2px #ffb24d, 0 0 16px rgba(255,120,80,.45), var(--sh-card); }
.ed-neg    { background: #0b0b0f !important; color: #e6e0ff !important; border-color: #2a2440 !important; }
.ed-neg .nm { text-shadow: none; color: #cdb0ff; }
/* 原版 negative 着色：整卡贴图反相（shader 近似） */
.jcard.has-art.ed-neg {
  background: #e8e4ff !important;
  border-color: #b8a0ff !important;
  box-shadow: var(--sh-card), 0 0 14px rgba(160,120,255,.45);
}
.jcard.has-art.ed-neg .atlas-art {
  filter: invert(1) hue-rotate(180deg);
}
/* edition foil sheen strip (cheap static gradient, no animation) */
.ed-foil .art::after, .ed-holo .art::after, .ed-poly .art::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen; opacity: .5;
  border-radius: inherit;
}
.ed-foil .art { position: relative; }
.ed-foil .art::after { background: linear-gradient(125deg, transparent 38%, rgba(180,240,255,.7) 50%, transparent 62%); }
.ed-holo .art { position: relative; }
.ed-holo .art::after { background: linear-gradient(125deg, rgba(255,90,210,.35), transparent 40%, rgba(80,220,255,.35)); }
.ed-poly .art { position: relative; }
.ed-poly .art::after { background: conic-gradient(from 30deg, rgba(255,45,85,.4), rgba(255,224,0,.4), rgba(52,199,89,.4), rgba(0,199,255,.4), rgba(255,45,85,.4)); opacity: .35; }
/* has-art 时 .art 已 absolute，sheen 仍叠在贴图上 */
.jcard.has-art.ed-foil .art,
.jcard.has-art.ed-holo .art,
.jcard.has-art.ed-poly .art { position: absolute; }

/* ===== category color frames (consumables / attack / pack) ===== */
.jcard.cat-tarot   { border-color: var(--violet); box-shadow: var(--sh-card), 0 0 12px rgba(176,123,255,.3); background: linear-gradient(160deg,#2a2140,#1c1730); color: #e7d9ff; }
.jcard.cat-planet  { border-color: var(--blue);   box-shadow: var(--sh-card), 0 0 12px rgba(90,160,255,.3); background: linear-gradient(160deg,#16263f,#0f1b2e); color: #cfe2ff; }
.jcard.cat-spectral{ border-color: var(--teal);   box-shadow: var(--sh-card), 0 0 12px rgba(56,224,212,.3); background: linear-gradient(160deg,#143230,#0d2422); color: #c7fff6; }
.jcard.cat-pack    { border-color: #6c63d6; background: linear-gradient(160deg,#22203f,#16142b); color: #d8d4ff; }
.jcard.cat-voucher { border-color: var(--gold); background: linear-gradient(160deg,#34280f,#241a08); color: #ffe6a6; }
.jcard.cat-treasure { border-color: #e7544f; background: linear-gradient(160deg,#3a1420,#2a0f16); color: #ffd9b0; box-shadow: var(--sh-card), 0 0 13px rgba(231,84,79,.34); }
/* 有贴图时类目只保留微弱描边光晕，底色交给精灵 */
.jcard.has-art.cat-tarot,
.jcard.has-art.cat-planet,
.jcard.has-art.cat-spectral,
.jcard.has-art.cat-pack,
.jcard.has-art.cat-voucher,
.jcard.has-art.cat-treasure {
  background: #1a1a22;
  color: #eee;
}
.jcard.threat-1 { border-color: var(--threat-1); background: linear-gradient(160deg,#352a12,#241c0c); color: #ffe6a6; box-shadow: var(--sh-card), 0 0 12px rgba(231,185,77,.3); }
.jcard.threat-2 { border-color: var(--threat-2); background: linear-gradient(160deg,#3a2410,#26170a); color: #ffd0a6; box-shadow: var(--sh-card), 0 0 12px rgba(239,138,60,.3); }
.jcard.threat-3 { border-color: var(--threat-3); background: linear-gradient(160deg,#3a1320,#260c16); color: #ffbccb; box-shadow: var(--sh-card), 0 0 14px rgba(226,66,95,.36); }
.jcard .cat-badge {
  position: absolute; top: -1px; left: -1px; z-index: 4;
  font-size: 7.5px; font-weight: 900; color: #fff;
  padding: 2px 5px; border-radius: 7px 0 7px 0;
  background: rgba(0,0,0,.5);
}
.jcard.cat-tarot .cat-badge { background: var(--violet); }
.jcard.cat-planet .cat-badge { background: var(--blue); }
.jcard.cat-spectral .cat-badge { background: #18a89c; color:#04201d; }
.jcard.cat-voucher .cat-badge { background: var(--gold); color:#2a1a00; }
.jcard.cat-treasure .cat-badge { background: #e7544f; color:#2a0d10; }
.jcard.threat-1 .cat-badge { background: var(--threat-1); color:#2a1f00; }
.jcard.threat-2 .cat-badge { background: var(--threat-2); }
.jcard.threat-3 .cat-badge { background: var(--threat-3); }

/* selectable / selected / hover */
.jcard.sel, .pcard.sel { outline: 2.5px solid var(--gold); outline-offset: 1px; }
.card-btn {            /* generic clickable wrapper */
  background: none; padding: 0; display: block;
}

/* empty joker slot */
.jslot {
  width: var(--card-w); height: var(--card-h); flex: none;
  border-radius: 9px;
  border: 2px dashed rgba(255,255,255,.16);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.22); font-size: 24px; font-weight: 400;
}

/* card back (deck) */
.cback {
  background: linear-gradient(145deg,#3a1a3a,#2a0a2a);
  border: 2px solid #5a3a5a;
  position: relative; overflow: hidden;
}
.cback::before {
  content:""; position: absolute; inset: 4px; border-radius: 4px;
  border: 1px solid rgba(150,100,150,.3);
  background: repeating-linear-gradient(45deg, transparent, transparent 3px, rgba(150,100,150,.1) 3px, rgba(150,100,150,.1) 4px);
}

/* selected lift inside hand */
.hand-card { transition: transform .16s cubic-bezier(.34,1.4,.64,1), box-shadow .16s; cursor: pointer; }
/* 选中只抬起、不置顶：去 z-index 后手牌按 DOM 顺序自然分层(每张压左邻、被右邻压)，
   选中牌不再盖住右邻左上角标，自身左上角标也永远露出 → 选/未选都读得清。 */
.hand-card.sel { transform: translateY(-20px); box-shadow: 0 0 0 2px var(--gold), 0 10px 22px rgba(0,0,0,.5); }
@media (hover:hover){ .hand-card:hover { transform: translateY(-9px); } .hand-card.sel:hover { transform: translateY(-26px); } }

/* ===== MINI CARD (deck-info grid) ===== */
.mcard {
  position: relative;
  width: 42px; height: 58px;
  border-radius: 5px;
  background: var(--card-face);
  border: 1px solid rgba(150,138,118,.7);
  box-shadow: 0 1px 3px rgba(0,0,0,.4), inset 0 0 0 1px rgba(255,255,255,.8);
  color: var(--card-black);
  display: flex; flex-direction: column; align-items: flex-start;
  padding: 3px 4px; line-height: 1; flex: none;
}
.mcard.red { color: var(--card-red); }
.mcard .mc-r { font-size: 14px; font-weight: 900; }
.mcard .mc-s { font-size: 12px; margin-top: 1px; }
.mcard.out { filter: grayscale(.5) brightness(.97); opacity: .8; }
.mcard .mc-x {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 36px; font-weight: 900; color: rgba(220,40,60,.78);
  text-shadow: 0 1px 2px rgba(0,0,0,.25);
}
