/* ==========================================================================
   Card Community —— AI 全息卡牌社区
   Gallery（Pinterest × Steam Workshop 的 3D 卡墙）+ Card Detail（大型 3D 卡牌）
   ========================================================================== */

/* ---------- 社区首页 hero ---------- */
.cm-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:32px;align-items:center;
  margin:26px 0 10px;padding:34px 32px;border-radius:26px;border:1px solid var(--line);overflow:hidden;
  background:radial-gradient(900px 420px at 8% -20%,#1d2650,transparent 62%),
             radial-gradient(700px 380px at 96% 110%,#3a1750aa,transparent 60%),#080b14}
.cm-hero::after{content:"";position:absolute;inset:-40% -10%;background:conic-gradient(from 120deg,#64e8ff22,#8b6cff22,#ff5cae22,#ffd89422,#64e8ff22);
  animation:cm-spin 26s linear infinite;pointer-events:none;mix-blend-mode:screen;opacity:.5}
@keyframes cm-spin{to{transform:rotate(1turn)}}
.cm-hero-copy,.cm-hero-stats{position:relative;z-index:1}
.cm-hero-copy .eyebrow{margin:0;font-size:11px;letter-spacing:3.4px;color:var(--cyan);text-transform:uppercase}
.cm-hero-copy h1{margin:14px 0 12px;font-size:clamp(28px,3.2vw,44px);line-height:1.16;letter-spacing:1px}
.cm-hero-sub{margin:0;color:#b9c2d6;font-size:14px;max-width:60ch}
.cm-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.cm-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cm-hero-stats div{padding:14px 14px 12px;border-radius:14px;border:1px solid var(--line);background:#ffffff0a;backdrop-filter:blur(6px)}
.cm-hero-stats span{display:block;font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}
.cm-hero-stats small{color:var(--dim);font-size:11px;letter-spacing:.6px}

/* ---------- 分类工具条 ---------- */
.cm-toolbar{position:sticky;top:calc(var(--cm-toolbar-top,76px) + 4px);z-index:32;display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  margin:22px 0 20px;padding:10px 14px;border-radius:16px;border:1px solid var(--line);
  background:#080b14e6;backdrop-filter:blur(14px)}
.cm-tabs{display:flex;gap:6px;flex-wrap:wrap}
.cm-tabs a{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:999px;font-size:12.5px;
  color:var(--muted);border:1px solid transparent;transition:.18s}
.cm-tabs a:hover{color:var(--ink);background:#ffffff0d}
.cm-tabs a.active{color:#05070d;background:var(--holo);font-weight:600}
.cm-tabs a i{font-style:normal;font-size:10.5px;padding:1px 6px;border-radius:999px;background:#ffffff1f}
.cm-tabs a.active i{background:#05070d26}
.cm-search{flex:1;min-width:200px}
.cm-search input{width:100%;padding:9px 14px;border-radius:999px;background:#ffffff0a;border:1px solid var(--line);font-size:13px}
.cm-count{font-size:12px;color:var(--muted);white-space:nowrap}
.cm-count b{color:var(--ink);font-size:14px}
.cm-result-note{color:var(--muted);font-size:12.5px;margin:0 0 16px}
.cm-result-note a{color:var(--cyan)}

/* ---------- 3D 卡墙（瀑布流） ---------- */
.hc-grid{columns:3;column-gap:20px}
.hc-card{position:relative;display:block;break-inside:avoid;margin:0 0 20px;border-radius:20px;border:1px solid var(--line);
  background:linear-gradient(180deg,#0b0f1a,#080a12);overflow:hidden;perspective:1100px;
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .4s}
.hc-card:hover{transform:translateY(-6px);border-color:#ffffff33;
  box-shadow:0 30px 70px -34px var(--glow,#64e8ff),0 0 0 1px #ffffff14}
.hc-tilt{transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.hc-open{display:block;position:relative}
.hc-stage{position:relative;aspect-ratio:2/3;background:radial-gradient(420px 300px at 50% 30%,#141b33,transparent 72%),#06080f}
.hc-viewer{position:absolute;inset:0}
.hc-stage .holo-viewer{display:block;gap:0}
.hc-stage .holo-stage{width:100%;height:100%;min-height:0;border-radius:0;touch-action:pan-y}
.hc-stage canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity .6s ease}
.hc-card.is-ready .hc-stage canvas{opacity:1}
.hc-placeholder{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;
  color:var(--dim);font-size:11px;letter-spacing:2px;text-align:center;transition:opacity .5s}
.hc-card.is-ready .hc-placeholder{opacity:0;pointer-events:none}
.hc-spinner{width:26px;height:26px;border-radius:50%;border:2px solid #ffffff1f;border-top-color:var(--cyan);animation:cm-spin 1s linear infinite}
.hc-card.is-error .hc-placeholder span:last-child::after{content:" · 加载失败"}
/* 悬停时的镭射扫光 + 跟随鼠标的高光 */
.hc-sheen{position:absolute;inset:-20%;pointer-events:none;opacity:0;transition:opacity .35s;
  background:linear-gradient(105deg,transparent 36%,#ffffff42 46%,var(--glow,#64e8ff) 52%,transparent 64%);
  transform:translateX(calc((var(--mx,50%) - 50%) * .7))}
.hc-card:hover .hc-sheen{opacity:.85}
.hc-glare{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(260px 220px at var(--mx,50%) var(--my,40%),#ffffff2b,transparent 68%)}
.hc-card:hover .hc-glare{opacity:1}
.hc-rarity{position:absolute;top:10px;left:10px;z-index:3;background:#05070dcc;backdrop-filter:blur(6px)}
.hc-price{position:absolute;top:10px;right:10px;z-index:3;padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:600;
  color:#05070d;background:linear-gradient(120deg,#ffe9b0,#d7b878)}
.hc-caption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:34px 14px 12px;
  background:linear-gradient(180deg,transparent,#05070de6 62%);pointer-events:none}
.hc-caption h3{margin:0;font-size:14.5px;font-weight:600;line-height:1.35;text-shadow:0 2px 14px #000c}
.hc-author{display:flex;align-items:center;gap:7px;margin-top:7px;font-size:11.5px;color:#c3cbdc}
.hc-author img{width:19px;height:19px;border-radius:50%;background:#1a2233;border:1px solid #ffffff26}
.hc-foot{display:flex;align-items:center;gap:12px;padding:10px 13px;border-top:1px solid var(--line);background:#0a0d16;font-size:11.5px;color:var(--muted)}
.hc-like{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;border:1px solid var(--line);
  background:#ffffff0a;color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums;transition:.18s}
.hc-like:hover{border-color:#ff5cae66;color:#ffd9ea}
.hc-like.liked,.hc-like[aria-pressed=true]{color:#ff8fc4;border-color:#ff5cae55;background:#ff5cae14}
.hc-like[disabled]{opacity:.6}
.hc-meta{white-space:nowrap;font-variant-numeric:tabular-nums}
.hc-enter{margin-left:auto;color:var(--cyan);white-space:nowrap}
.hc-enter:hover{text-decoration:underline}
.cm-more-wrap{display:flex;justify-content:center;margin:26px 0 10px}
.cm-cta{margin:10px 0;padding:26px;border-radius:20px;border:1px dashed var(--line);background:var(--panel);text-align:center}
.cm-cta h3{margin:0 0 8px;font-size:18px}
.cm-cta h4{margin:26px 0 12px;font-size:13px;letter-spacing:1px;color:var(--muted)}
.cm-cta .cm-hero-actions{justify-content:center}
.cm-creators{display:grid;gap:12px;text-align:left}

/* ---------- 社区 Card Detail ---------- */
.cm-crumbs{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);padding:22px 0 0}
.cm-crumbs a{color:var(--cyan)}
.cm-crumb-title{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40ch}
.cm-detail{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:34px;padding:20px 0 10px;align-items:start}
.cm-detail-left{display:flex;flex-direction:column;gap:18px;position:sticky;top:92px}
.cm-viewer-panel{position:relative;border-radius:22px;border:1px solid var(--line);padding:14px;
  background:radial-gradient(620px 400px at 50% 22%,#182046,transparent 70%),var(--panel);box-shadow:var(--shadow)}
.cm-viewer-panel::before{content:"";position:absolute;inset:-1px;border-radius:22px;pointer-events:none;
  background:linear-gradient(140deg,color-mix(in srgb,var(--glow,#64e8ff) 45%,transparent),transparent 40%);opacity:.5;mask:linear-gradient(#000,transparent 60%)}
.cm-viewer-panel #cm-viewer{position:relative}
.cm-detail-info h1{margin:14px 0 10px;font-size:clamp(24px,2.4vw,34px);line-height:1.22}
.cm-detail-tags{display:flex;gap:8px;flex-wrap:wrap}
.cm-detail-desc{margin:0;color:#b9c2d6;font-size:13.5px}
.cm-author-card{display:flex;align-items:center;gap:14px;margin:20px 0;padding:14px;border-radius:16px;
  border:1px solid var(--line);background:#ffffff08}
.cm-author-card>img{width:52px;height:52px;border-radius:50%;background:#182034;border:1px solid var(--line);flex:0 0 auto}
.cm-author-main{flex:1;min-width:0}
.cm-author-main b{font-size:15px}
.cm-author-main .dim{font-size:12px;margin:2px 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-author-stats{display:flex;gap:14px;font-size:11.5px;color:var(--muted)}
.cm-author-stats b{color:var(--ink)}
.cm-stat-row{margin:18px 0}
.cm-actions .btn.liked{border-color:#ff5cae66;color:#ff8fc4;background:#ff5cae14}
.cm-trade{margin-top:4px}
.cm-trade-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cm-trade-head h3{margin:0}
.cm-price{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:14px 0 16px;
  padding:14px;border-radius:14px;background:linear-gradient(120deg,#1a1330,#0d111c);border:1px solid #d7b87833}
.cm-price small{display:block;color:var(--dim);font-size:11px;letter-spacing:1.2px}
.cm-price b{font-size:26px;color:var(--gold);font-variant-numeric:tabular-nums}
.cm-price-meta{display:flex;gap:14px;font-size:11.5px;color:var(--muted)}
.cm-trade-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.cm-trade-note{margin:12px 0 0;font-size:11.5px}
.cm-no-listing{padding:14px;border-radius:12px;border:1px dashed var(--line);font-size:13px;color:var(--muted)}
.cm-no-listing span{display:block;font-size:11.5px;margin-top:4px}
.cm-trade.pulse{animation:cm-pulse 1.4s ease-out 2}
@keyframes cm-pulse{0%{box-shadow:0 0 0 0 #64e8ff66}70%{box-shadow:0 0 0 16px #64e8ff00}100%{box-shadow:0 0 0 0 #64e8ff00}}
.cm-comments-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.cm-comments-head h3{margin:0}
.cm-detail .spec-card{margin:20px 0}
.cm-detail #comments{max-height:420px;overflow-y:auto}

/* ---------- 响应式：手机优先的单列 3D 卡流 ---------- */
@media(max-width:1080px){
  .cm-hero,.cm-detail{grid-template-columns:1fr}
  .cm-hero-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hc-grid{columns:2}
  .cm-detail-left{position:static}
}
@media(max-width:760px){
  /* 手机上把 hero 压扁，让 3D 卡流更早出现 */
  .cm-hero{padding:20px 16px;border-radius:18px;gap:16px}
  .cm-hero-copy .eyebrow{font-size:9.5px;letter-spacing:2.4px}
  .cm-hero-copy h1{font-size:26px;margin:8px 0 10px}
  .cm-hero-sub{display:none}
  .cm-hero-actions{margin-top:14px;gap:8px}
  .cm-hero-actions .btn{padding:9px 13px;font-size:12.5px}
  .cm-hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  /* 手机上只保留最关键的 3 个数字，让第一排 3D 卡牌更早出现 */
  .cm-hero-stats div:nth-child(n+4){display:none}
  .cm-hero-stats div{padding:10px 10px 8px;border-radius:12px}
  .cm-hero-stats span{font-size:17px}
  .cm-hero-stats small{font-size:9.5px;letter-spacing:0}
  .cm-toolbar{gap:10px;padding:10px}
  .cm-tabs{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}
  .cm-tabs a{padding:7px 13px}
  .cm-search{order:3;width:100%}
  .cm-count{order:2;margin-left:auto}
  /* 单列瀑布流：一张一张上下滑动，卡牌保持 3D 并可触摸旋转 */
  .hc-grid{columns:1;column-gap:0}
  .hc-card{margin-bottom:16px;border-radius:18px}
  .hc-card .hc-stage,.hc-card .holo-stage{aspect-ratio:2/3}
  .hc-card .hc-caption{padding:40px 16px 14px}
  .hc-caption h3{font-size:16px}
  .hc-foot{font-size:12px;padding:11px 14px}
  .hc-views{display:none}
  .cm-detail{padding-top:8px}
  .cm-viewer-panel{padding:10px;border-radius:18px}
  .cm-detail .holo-stage{height:min(58vh,460px);min-height:300px}
  .cm-detail-info h1{font-size:24px}
  .cm-price b{font-size:22px}
  .cm-author-card{flex-wrap:wrap}
  .cm-crumb-title{max-width:22ch}
}

/* ---------- Gallery 卡片交互条：点赞 / 评论 / 收藏 / 进入 ---------- */
.hc-foot{flex-wrap:wrap;gap:9px}
.hc-like,.hc-fav{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;
  border:1px solid var(--line);background:#ffffff0a;color:var(--muted);font-size:11.5px;
  font-variant-numeric:tabular-nums;transition:.18s;cursor:pointer}
.hc-like:hover,.hc-fav:hover{border-color:#64e8ff66;color:#d9f4ff;background:#64e8ff10}
.hc-fav:hover{border-color:#ffd89466;color:#ffe9b0;background:#ffd89412}
.hc-like.liked,.hc-like[aria-pressed=true]{color:#ff8fc4;border-color:#ff5cae55;background:#ff5cae14}
.hc-fav.liked,.hc-fav[aria-pressed=true]{color:var(--gold);border-color:#d7b87855;background:#d7b87814}
.hc-like[disabled],.hc-fav[disabled]{opacity:.6;cursor:progress}
.hc-enter{margin-left:auto}
@media(max-width:1280px){.hc-views{display:none}}

/* ---------- 评论区：回复（一层嵌套） ---------- */
.cm-comments .comment-body{flex:1;min-width:0}
.comment .meta b{color:var(--ink)}
.cm-comments .comment-actions{display:flex;gap:10px;margin-left:auto}
.comment-replies{margin-top:9px;padding-left:12px;border-left:2px solid #ffffff14;display:flex;flex-direction:column}
.comment-sub{border-top:1px dashed #ffffff0f;padding-top:9px;margin-top:9px}
.comment-sub:first-child{border-top:0;padding-top:0;margin-top:0}
.comment-sub img{width:24px;height:24px}
.comment-sub p{font-size:13px}
.comment-reply-chip{display:flex;align-items:center;gap:10px;width:fit-content;margin-top:10px;padding:7px 12px;
  border-radius:999px;font-size:12px;color:var(--cyan);background:#64e8ff14;border:1px solid #64e8ff33}
.comment-reply-chip[hidden]{display:none}
.comment-form input:focus{outline:1px solid #64e8ff55}
.cm-buy-note{margin:12px 0 0;font-size:11.5px;color:var(--dim);line-height:1.7}
.cm-buy-note b{color:var(--muted)}

/* ---------- Marketplace：数字收藏品交易大厅 ---------- */
.mk-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:4px 0 26px}
.mk-card.market-row{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden;
  border-radius:20px;border:1px solid var(--line);background:linear-gradient(180deg,#0b0f1a,#080a12);
  transform-style:preserve-3d;perspective:1000px;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .45s}
.mk-card.market-row:hover{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-6px);
  border-color:#ffffff33;box-shadow:0 30px 70px -34px var(--glow,#64e8ff),0 0 0 1px #ffffff14}
.mk-cover{position:relative;display:block}
.mk-cover .tile-frame{border-radius:0}
.mk-cover .layer img{display:block;width:100%;height:100%;object-fit:cover}
.mk-cover .badge{position:absolute;top:10px;left:10px;z-index:3;background:#05070dcc;backdrop-filter:blur(6px)}
.mk-pricebadge{position:absolute;top:10px;right:10px;z-index:3;padding:4px 10px;border-radius:999px;
  font-size:11.5px;font-weight:600;color:#05070d;background:linear-gradient(120deg,#ffe9b0,#d7b878)}
.mk-cover::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(240px 200px at var(--mx,50%) var(--my,40%),#ffffff2b,transparent 68%)}
.mk-card:hover .mk-cover::after{opacity:1}
.mk-card:hover .mk-cover .sheen{opacity:.9}
.mk-body{display:flex;flex-direction:column;gap:7px;flex:1;padding:12px 14px 11px}
.mk-body h4{margin:0;font-size:14.5px;line-height:1.35}
.mk-body h4 a{color:var(--ink)}
.mk-body h4 a:hover{color:var(--cyan)}
.mk-creator{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted)}
.mk-creator img{width:18px;height:18px;border-radius:50%;background:#1a2233;border:1px solid #ffffff26}
.mk-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums}
.mk-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;
  border-top:1px solid var(--line);background:#0a0d16}
.mk-price b{display:block;font-size:17px}
.mk-price small{color:var(--dim);font-size:10.5px}
.mk-mine{font-size:12px}

@media(max-width:1280px){.mk-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.mk-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}

/* ---------- 手机端：单列 / 双列 3D 卡流 + 好点的触摸目标 ---------- */
@media(max-width:760px){
  .hc-card{max-width:100%}
  .hc-foot{gap:8px;padding:10px 12px}
  .hc-like,.hc-fav{min-height:36px;padding:7px 12px}
  .hc-enter{font-size:11.5px}
  .mk-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .mk-body{padding:10px 12px 9px}
  .mk-body h4{font-size:13.5px}
  .mk-meta span:nth-child(n+4){display:none}
  .mk-foot{flex-direction:column;align-items:stretch;gap:9px;padding:10px 12px}
  .mk-foot .btn{width:100%;min-height:46px;font-size:14px}
  .mk-price{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
  .cm-actions{gap:9px}
  .cm-actions .btn,.cm-trade-actions .btn,.cm-trade-actions a.btn{min-height:46px;justify-content:center;font-size:13.5px}
  .cm-actions .btn{flex:1 1 calc(50% - 9px)}
  .cm-trade-actions{flex-direction:column;align-items:stretch}
  .cm-trade-actions .btn{width:100%}
  .cm-actions .hc-buy{flex-basis:100%}
  .comment-form input{min-height:46px}
  .comment-form .btn{min-height:46px;padding:0 18px}
  .comment .comment-actions .link-btn{min-height:32px}
  .comment-reply-chip{margin-top:12px}
  .cm-viewer-panel{max-width:100%;overflow:hidden}
  .cm-detail .holo-stage{height:min(50vh,400px);min-height:280px}
}
@media(max-width:560px){
  .mk-grid{grid-template-columns:1fr}
  .mk-meta span:nth-child(n+4){display:inline}
}
