/* 超时空塔罗 v0.4 · 清新手绘次元风 */
:root{
  --cream:#FBF7F1; --paper:#FFFDFA; --ink:#4A4453; --ink2:#8E869C;
  --mint:#8FCFC0; --mint-d:#5FB3A1; --sakura:#F5B0BD; --lav:#BBAADF;
  --apricot:#F3C892; --line:rgba(74,68,83,.10); --shadow:0 6px 20px rgba(120,105,140,.10);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{
  font-family:"PingFang SC","HarmonyOS Sans SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  color:var(--ink);background:var(--cream);min-height:100vh;overflow-x:hidden;padding-bottom:74px;
  -webkit-font-smoothing:antialiased;
}
/* 水彩晕染背景 */
.blobs{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.blobs b{position:absolute;border-radius:50%;filter:blur(46px);opacity:.5}
.blobs b:nth-child(1){width:280px;height:280px;background:#CFEBE3;left:-70px;top:-40px}
.blobs b:nth-child(2){width:240px;height:240px;background:#FBD9E0;right:-70px;top:120px}
.blobs b:nth-child(3){width:300px;height:300px;background:#E4DBF6;left:-60px;bottom:180px}
.blobs b:nth-child(4){width:220px;height:220px;background:#FCEBD2;right:-60px;bottom:20px}
.app{position:relative;z-index:1;max-width:520px;margin:0 auto;padding:12px 16px 20px}

/* 顶栏 */
.top{display:flex;align-items:center;justify-content:space-between;padding:6px 2px 14px}
.brand{display:flex;align-items:center;gap:8px}
.brand .logo{width:30px;height:30px;border-radius:50%;
  background:radial-gradient(circle at 36% 32%,#fff,var(--mint) 62%,var(--mint-d));
  box-shadow:0 3px 10px rgba(143,207,192,.5)}
.brand b{font-size:17px;letter-spacing:2px;font-weight:700}
.tools{display:flex;gap:8px;align-items:center}
.iconbtn{border:1px solid var(--line);background:var(--paper);border-radius:999px;
  padding:6px 10px;font-size:14px;cursor:pointer;font-family:inherit;box-shadow:var(--shadow)}
.coin{display:flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;
  background:var(--paper);border:1px solid var(--line);font-size:13px;box-shadow:var(--shadow);font-weight:600}
.coin .dot{width:15px;height:15px;border-radius:50%;background:linear-gradient(160deg,#FFE3A8,var(--apricot))}

/* 卡片容器 */
.card{background:var(--paper);border:1px solid var(--line);border-radius:20px;
  padding:17px;margin-bottom:14px;box-shadow:var(--shadow)}
.card h3{font-size:15px;font-weight:700;margin-bottom:11px;display:flex;align-items:center;gap:7px}
.card h3::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--mint)}
.muted{color:var(--ink2);font-size:12.8px;line-height:1.75}

.btn{display:inline-block;padding:12px 30px;border-radius:999px;border:none;cursor:pointer;
  font-family:inherit;font-size:15px;font-weight:600;letter-spacing:1px;transition:.18s;
  background:linear-gradient(150deg,#A6DCCF,var(--mint-d));color:#fff;box-shadow:0 5px 14px rgba(95,179,161,.32)}
.btn:active{transform:scale(.975)}
.btn.block{display:block;width:100%}
.btn.ghost{background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow)}
.btn.pink{background:linear-gradient(150deg,#FBC7D1,#EE93A5);box-shadow:0 5px 14px rgba(238,147,165,.32)}
.btn:disabled{opacity:.5}

/* 签到 */
.signrow{display:flex;gap:5px}
.sd{flex:1;text-align:center;padding:9px 2px;border-radius:13px;border:1px dashed rgba(74,68,83,.16);
  background:#FCFAF6;font-size:10.5px;color:var(--ink2)}
.sd b{display:block;font-size:13px;color:var(--mint-d);margin-bottom:2px}
.sd.done{background:#EAF6F2;border-style:solid;border-color:rgba(143,207,192,.5)}
.sd.today{background:linear-gradient(150deg,#A6DCCF,var(--mint-d));border:none;color:#fff}
.sd.today b{color:#fff}

/* 每日一牌 */
.daily{text-align:center}
.dailycard{width:112px;height:186px;margin:2px auto 0;border-radius:14px;cursor:pointer;overflow:hidden;
  box-shadow:0 10px 22px rgba(120,105,140,.20);border:2px solid #fff;background:#fff}
.dailycard img{width:100%;height:100%;object-fit:cover;display:block}
.dname{font-size:15px;font-weight:700;margin-top:10px}
.dtip{color:var(--ink2);font-size:12px;margin-top:6px;line-height:1.6}

/* 牌背（手绘风，纯 CSS） */
.cardback{width:100%;height:100%;border-radius:inherit;
  background:
    radial-gradient(circle at 50% 32%,rgba(255,255,255,.9) 0 8px,transparent 9px),
    radial-gradient(circle at 50% 32%,transparent 0 13px,rgba(255,255,255,.75) 14px 15px,transparent 16px),
    repeating-linear-gradient(45deg,rgba(255,255,255,.16) 0 3px,transparent 3px 9px),
    linear-gradient(160deg,#BBD9F2,#CDBDE9 55%,#F2C3D0);
  border:2px solid #fff;position:relative}
.cardback::after{content:'';position:absolute;inset:7px;border:1px dashed rgba(255,255,255,.75);border-radius:9px}

/* 牌阵列表 */
.spread-item{display:flex;align-items:center;gap:13px;padding:13px;border-radius:18px;
  border:1px solid var(--line);background:var(--paper);margin-bottom:11px;cursor:pointer;box-shadow:var(--shadow)}
.spread-item:active{transform:scale(.99)}
.spread-item .mini{position:relative;flex:0 0 54px;height:54px;border-radius:13px;
  background:linear-gradient(160deg,#F0F8F5,#F7F0FA);border:1px solid var(--line)}
.spread-item .mini i{position:absolute;width:8px;height:12px;border-radius:2px;
  background:var(--lav);transform:translate(-50%,-50%);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.spread-item .txt{flex:1;min-width:0}
.spread-item .txt b{display:block;font-size:14.5px;margin-bottom:3px}
.spread-item .txt .cnt{font-size:10.5px;color:var(--mint-d);background:#EAF6F2;
  padding:1.5px 7px;border-radius:999px;font-weight:600;margin-left:4px}
.spread-item .txt p{color:var(--ink2);font-size:11.5px;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.price-tag{flex:0 0 auto;padding:5px 11px;border-radius:999px;background:#FFF4E3;
  color:#C98A2E;font-size:12px;font-weight:700;white-space:nowrap}

/* 牌阵位置图 */
.layout{position:relative;width:100%;height:260px;margin:6px 0 2px;
  background:linear-gradient(160deg,#F4FAF8,#F9F2FB);border-radius:18px;border:1px solid var(--line)}
.lslot{position:absolute;transform:translate(-50%,-50%);text-align:center;width:62px}
.lcard{width:52px;height:84px;margin:0 auto;border-radius:9px;overflow:hidden;background:#fff}
.lcard.empty{border:1.5px dashed rgba(139,126,160,.45);background:rgba(255,255,255,.6)}
.lcard img{width:100%;height:100%;object-fit:cover;display:block}
.lcard.rev img{transform:rotate(180deg)}
.lslot span{display:block;font-size:10.5px;color:var(--ink2);margin-top:5px;line-height:1.3}

/* 提问 */
textarea#q{width:100%;margin-top:6px;padding:13px;border-radius:14px;resize:none;height:86px;
  background:#FCFAF6;border:1px solid var(--line);color:var(--ink);font-family:inherit;font-size:14.5px;outline:none}
.examples{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.examples span{font-size:11.5px;color:var(--ink2);background:#F4F1F8;
  padding:5px 11px;border-radius:999px;cursor:pointer}

/* 转盘 */
.wheelwrap{position:relative;height:330px;margin:2px 0 4px;touch-action:none;user-select:none;overflow:hidden}
.wcard{position:absolute;left:50%;top:50%;width:50px;height:80px;margin:-40px 0 0 -25px;
  border-radius:9px;cursor:pointer;transform-origin:50% 50%;transition:opacity .35s}
.wcard.gone{opacity:0;pointer-events:none}
.wheelhint{text-align:center;color:var(--ink2);font-size:12px;margin-top:-4px}
.pc{text-align:center;font-size:14px;font-weight:700;color:var(--mint-d);margin:8px 0 2px}

/* 结果 */
.read{background:var(--paper);border:1px solid var(--line);border-radius:18px;
  padding:15px 16px;margin-bottom:12px;box-shadow:var(--shadow);border-left:4px solid var(--mint)}
.read.b{border-left-color:var(--lav)}
.read.c{border-left-color:var(--apricot)}
.read.d{border-left-color:var(--sakura)}
.read h4{font-size:14px;font-weight:700;margin-bottom:7px}
.read p{font-size:14px;line-height:1.9;color:#5B5468}
.read .cn{display:block;font-size:13px;color:var(--mint-d);margin-bottom:5px}
.disclaimer{text-align:center;color:#B0A8BC;font-size:11px;margin:14px 0 4px}
.loading{text-align:center;padding:26px 0;color:var(--ink2)}
.loading span{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--mint);
  margin:0 3px;animation:bounce 1s infinite}
.loading span:nth-child(2){animation-delay:.15s;background:var(--lav)}
.loading span:nth-child(3){animation-delay:.3s;background:var(--sakura)}
.loading p{font-size:12.5px;margin-top:10px}
@keyframes bounce{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(-7px);opacity:1}}

/* 百科 */
.filters{display:flex;gap:7px;overflow-x:auto;padding-bottom:10px}
.filters::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;padding:6px 14px;border-radius:999px;border:1px solid var(--line);
  background:var(--paper);color:var(--ink2);font-size:12.5px;cursor:pointer}
.chip.on{background:linear-gradient(150deg,#A6DCCF,var(--mint-d));color:#fff;border:none;font-weight:600}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.gi{cursor:pointer}
.gi img{width:100%;aspect-ratio:5/8;object-fit:cover;border-radius:12px;
  border:2px solid #fff;box-shadow:var(--shadow);display:block;background:#fff}
.gi span{display:block;text-align:center;font-size:11.5px;margin-top:5px;color:var(--ink2)}

/* 牌意详情 */
.dhead{display:flex;gap:14px;align-items:center;margin-bottom:14px}
.dhead img{width:96px;border-radius:12px;border:2px solid #fff;box-shadow:var(--shadow)}
.dhead h2{font-size:21px;letter-spacing:1px}
.dhead .en{color:var(--ink2);font-size:12px;margin-top:3px}
.dhead .tag{display:inline-block;margin-top:8px;font-size:11px;color:var(--mint-d);
  background:#EAF6F2;padding:3px 10px;border-radius:999px}
.kwline{font-size:13px;line-height:1.9;color:#5B5468}
.kwline b{display:inline-block;font-size:11px;color:#fff;background:var(--mint);
  padding:2px 8px;border-radius:999px;margin-right:7px}
.kwline.rev b{background:var(--sakura)}
.body{font-size:14px;line-height:1.95;color:#5B5468}
.arow{display:flex;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line)}
.arow:last-child{border:none}
.arow b{flex:0 0 40px;font-size:12.5px;color:var(--mint-d)}
.arow p{flex:1;font-size:13.2px;line-height:1.8;color:#5B5468}
.back{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--ink2);
  cursor:pointer;margin-bottom:12px}

/* 我的 */
.hrow{padding:10px 0;border-bottom:1px dashed var(--line)}
.hrow:last-child{border:none}
.hq{font-size:13.5px;margin-bottom:3px}

/* 底栏 */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;
  background:rgba(255,253,250,.96);border-top:1px solid var(--line);backdrop-filter:blur(10px)}
.tabbar div{flex:1;text-align:center;padding:8px 0 10px;color:var(--ink2);font-size:11px;cursor:pointer}
.tabbar div .ic{display:block;font-size:19px;margin-bottom:1px;filter:grayscale(1) opacity(.5)}
.tabbar div.on{color:var(--mint-d);font-weight:600}
.tabbar div.on .ic{filter:none}

/* 弹窗 */
.mask{position:fixed;inset:0;z-index:50;background:rgba(74,68,83,.42);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:24px}
.modal{width:100%;max-width:340px;background:var(--paper);border-radius:22px;padding:22px 20px;text-align:center}
.modal h3{font-size:17px;margin-bottom:7px}
.pkgs{display:flex;flex-direction:column;gap:9px;margin:14px 0}
.pkg{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:14px;
  border:1px solid var(--line);background:#FCFAF6;cursor:pointer}
.pkg b{color:#C98A2E;font-size:16px}
.pkg .off{font-size:10px;color:#fff;background:var(--sakura);padding:2px 7px;border-radius:999px;margin-left:6px;font-style:normal}
.hidden{display:none}
.toast{position:fixed;left:50%;top:40%;transform:translateX(-50%);z-index:99;
  background:rgba(74,68,83,.94);color:#fff;padding:11px 22px;border-radius:999px;font-size:14px;white-space:nowrap}
footer{text-align:center;color:#B0A8BC;font-size:11px;line-height:1.9;margin-top:24px}

.lslot.justin .lcard{animation:pop .5s}
@keyframes pop{0%{transform:scale(.4) rotateY(90deg);opacity:0}60%{transform:scale(1.08) rotateY(0)}100%{transform:scale(1)}}
#resLayout .lslot:active .lcard{transform:scale(.96)}
