[hidden]{display:none!important}
:root{
  --bg:#0b0d1a; --bg2:#12152b; --card:#151933cc; --line:#262b52; --text:#eef0ff; --muted:#9aa0c8;
  --gold:#ffcf4a; --gold2:#ff9f1c; --pink:#ff5c8a; --mint:#3ee6b0; --radius:18px;
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", Roboto, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.55;overflow-x:hidden}
a{color:inherit}
.sky{position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
   radial-gradient(1px 1px at 10% 20%,#fff8 50%,transparent 51%),radial-gradient(1px 1px at 70% 10%,#fff6 50%,transparent 51%),
   radial-gradient(1.5px 1.5px at 40% 70%,#fff5 50%,transparent 51%),radial-gradient(1px 1px at 85% 55%,#fff7 50%,transparent 51%),
   radial-gradient(1px 1px at 25% 90%,#fff5 50%,transparent 51%),radial-gradient(1px 1px at 55% 35%,#fff4 50%,transparent 51%),
   radial-gradient(60% 50% at 80% 0%,#3b2a7a55,transparent 70%),radial-gradient(50% 40% at 0% 30%,#ff5c8a22,transparent 70%),
   linear-gradient(#0b0d1a,#0e1024)}
/* top bar */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));
  background:#0b0d1acc;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid #ffffff10}
.brand{display:flex;flex:1 1 auto;align-items:center;gap:8px;text-decoration:none;font-weight:800;margin-right:auto;min-width:0}
.logo{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--gold);color:var(--bg);font-weight:900;box-shadow:0 0 18px #ffcf4a66;flex:none}
.brand-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand em{font-style:normal;color:var(--muted);font-weight:600;font-size:.85em;display:none}
.nav{display:none;gap:18px}.nav a{text-decoration:none;color:var(--muted);font-weight:600}.nav a:hover{color:var(--text)}
.lang{display:flex;border:1px solid var(--line);background:transparent;border-radius:999px;padding:2px;cursor:pointer;color:var(--muted);font:inherit;font-size:13px}
.lang span{padding:3px 9px;border-radius:999px}
html[lang=zh-CN] .lang [data-l=zh], html[lang=en] .lang [data-l=en]{background:var(--text);color:var(--bg);font-weight:700}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:999px;padding:11px 18px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s;-webkit-tap-highlight-color:transparent}
.btn:active{transform:scale(.97)}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1b1300;box-shadow:0 6px 24px #ff9f1c44}
.btn-gold:hover{box-shadow:0 8px 32px #ff9f1c77}
.btn-ghost{background:#ffffff0d;color:var(--text);border:1px solid var(--line)}
.btn-ghost:hover{background:#ffffff1a}
.btn-sm{padding:7px 13px;font-size:14px}.btn-lg{padding:14px 24px;font-size:17px}.btn-block{width:100%;margin-top:14px}
.topbar .btn-sm{display:none}
/* hero */
main{max-width:1100px;margin:0 auto;padding:0 16px}
.hero{padding:28px 0 28px;text-align:center}
.kicker{display:inline-block;margin:0 0 14px;padding:4px 12px;border-radius:999px;border:1px dashed #ffcf4a88;color:var(--gold);font-size:13px;font-weight:700;letter-spacing:.06em}
h1{font-size:clamp(30px,8.4vw,54px);line-height:1.18;margin:0 0 16px;letter-spacing:-.01em;font-weight:900}
.hl{background:linear-gradient(120deg,var(--gold),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{max-width:620px;margin:0 auto 26px;color:var(--muted);font-size:16px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:640px;margin:0 auto 18px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 6px}
.stat b{display:block;font-size:clamp(22px,6.5vw,36px);font-weight:900;font-variant-numeric:tabular-nums;color:var(--gold);line-height:1.1}
.stat span{font-size:12px;color:var(--muted)}
.goal{max-width:640px;margin:0 auto 24px;text-align:left}
.goal-row{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:6px;gap:8px}
.bar{height:14px;border-radius:999px;background:#ffffff10;border:1px solid var(--line);overflow:hidden}
.bar i{display:block;height:100%;width:0;min-width:10px;border-radius:999px;background:linear-gradient(90deg,var(--mint),var(--gold),var(--pink));background-size:200% 100%;animation:flow 4s linear infinite;transition:width 1.2s cubic-bezier(.2,.8,.2,1)}
@keyframes flow{to{background-position:-200% 0}}
.cta-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:0 0 18px;scroll-margin-top:70px}
.sec-head h2{margin:0 0 4px;font-size:22px}
.sec-head p{margin:0 0 14px;color:var(--muted);font-size:14px}
/* wall */
.wall-wrap{position:relative;width:100%;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:#0f1226;border:1px solid var(--line);touch-action:manipulation}
#wallCanvas{width:100%;height:100%;display:block;image-rendering:pixelated;cursor:crosshair}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:13px;color:var(--muted);align-items:center}
.legend b{font-weight:500}.sw{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px;margin-right:6px}
.sw-free{background:#1a1e3a;border:1px solid #2a2f5a}.sw-mine{background:transparent;outline:2px solid #fff;outline-offset:-2px}
.pick-hint{color:var(--gold);font-weight:700;animation:blink 1s ease-in-out infinite alternate}
@keyframes blink{to{opacity:.4}}
.tip{position:absolute;z-index:5;pointer-events:none;max-width:240px;background:#0b0d1af2;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px;box-shadow:0 8px 30px #0008;transform:translate(-50%,calc(-100% - 12px))}
.tip .t-name{font-weight:800}.tip .t-msg{color:#d8dbff;margin-top:2px;word-break:break-word}.tip .t-meta{color:var(--muted);font-size:11px;margin-top:4px}
.tag{display:inline-block;font-size:10px;padding:0 6px;border-radius:6px;background:#ffffff1a;color:var(--muted);margin-left:4px;vertical-align:1px;font-weight:600}
.tag.mine{background:var(--gold);color:#1b1300}
/* map */
.map-wrap{position:relative;border-radius:10px;overflow:hidden;background:radial-gradient(80% 90% at 50% 40%,#161a3d,#0d1024);border:1px solid var(--line)}
#mapSvg{display:block;width:100%;height:auto}
#land{fill:#232a5c;stroke:#3a4282;stroke-width:.5}
.star{cursor:pointer}
.star .halo-soft{fill:url(#glowSoft);animation:starPulse 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center;opacity:.55}
.star .halo{fill:url(#glow);animation:starTwinkle 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.star .spark{fill:#fffbe8;animation:starSpark 1.7s ease-in-out infinite;transform-box:fill-box;transform-origin:center;pointer-events:none}
.star .core{fill:#fff;filter:drop-shadow(0 0 3px #ffcf4a)}
.star:hover .core{fill:var(--gold)}
.star:hover .halo,.star:hover .halo-soft{animation-duration:1.2s}
@keyframes starTwinkle{0%,100%{opacity:.55;transform:scale(.75)}40%{opacity:1;transform:scale(1.35)}70%{opacity:.85;transform:scale(1.05)}}
@keyframes starPulse{0%,100%{opacity:.25;transform:scale(.9)}50%{opacity:.7;transform:scale(1.45)}}
@keyframes starSpark{0%,100%{opacity:0;transform:scale(.4)}35%{opacity:1;transform:scale(1.6)}65%{opacity:.35;transform:scale(.9)}}
.country-rank{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.country-rank li{font-size:13px;padding:4px 10px;border-radius:999px;background:#ffffff0c;border:1px solid var(--line)}
.country-rank b{color:var(--gold);margin-left:4px}
/* feed */
.feed{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.feed li{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:12px;background:#ffffff07;border:1px solid #ffffff0a}
.feed .dot{flex:none;width:28px;height:28px;border-radius:7px;box-shadow:inset 0 0 0 1px #ffffff30}
.feed .who{font-weight:700}.feed .msg{color:#cfd3ff;font-size:14px;word-break:break-word}.feed .meta{font-size:12px;color:var(--muted)}
.feed .amt{margin-left:auto;font-weight:800;color:var(--mint);font-variant-numeric:tabular-nums;white-space:nowrap}
/* faq */
details{border-top:1px solid var(--line);padding:12px 0}
details:first-of-type{border-top:0}
summary{cursor:pointer;font-weight:700;list-style:none}
summary::before{content:"+";display:inline-block;width:1.2em;color:var(--gold)}
details[open] summary::before{content:"–"}
details p{margin:8px 0 0 1.2em;color:var(--muted);font-size:14px}
details b{color:var(--text)}
.foot{text-align:center;color:var(--muted);font-size:13px;padding:10px 16px 110px}
.demo-note{color:var(--gold)}
/* fab */
.fab{position:fixed;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:15;padding:14px 22px;font-size:16px}
/* modal */
.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}
.modal[hidden]{display:none}
.modal-bg{position:absolute;inset:0;background:#05061099;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.sheet{position:relative;width:100%;max-width:440px;max-height:92vh;overflow:auto;background:var(--bg2);border:1px solid var(--line);border-radius:22px 22px 0 0;padding:22px 18px calc(18px + env(safe-area-inset-bottom));animation:up .25s ease-out}
@keyframes up{from{transform:translateY(30px);opacity:0}}
.sheet h3{margin:0 0 4px;font-size:22px}
.x{position:absolute;right:10px;top:8px;width:36px;height:36px;border:0;background:transparent;color:var(--muted);font-size:28px;cursor:pointer;border-radius:50%}
.x:hover{background:#ffffff10;color:var(--text)}
.muted{color:var(--muted);font-size:14px;margin:0 0 12px}.small{font-size:12px;margin-top:8px}.center{text-align:center}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:#ffffff0a;padding:4px;border-radius:12px;margin-bottom:12px}
.tab{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:700;font-size:13px;padding:9px 4px;border-radius:9px;cursor:pointer}
.tab[aria-selected=true]{background:var(--text);color:var(--bg)}
.tab[data-tab=wechat][aria-selected=true]{background:#07c160;color:#fff}
.tab[data-tab=alipay][aria-selected=true]{background:#1677ff;color:#fff}
.tab[data-tab=intl][aria-selected=true]{background:#ffdd00;color:#1b1300}
.pane{text-align:center}.pane[hidden]{display:none}
.scan{font-size:14px;color:var(--muted);margin:0 0 10px}
.qr{width:220px;height:220px;max-width:70vw;max-height:70vw;border-radius:14px;background:#fff;padding:6px;object-fit:contain}
.intl-btns{display:grid;gap:10px;margin:6px 0 4px}
.btn-paypal{background:#ffc439;color:#003087}.btn-bmc{background:#ffdd00;color:#000}
.label{font-size:13px;color:var(--muted);margin:14px 0 6px;font-weight:600}
.amounts{display:flex;gap:8px;flex-wrap:wrap}
.amt-btn{flex:1;min-width:70px;padding:10px;border-radius:12px;border:1px solid var(--line);background:#ffffff08;color:var(--text);font:inherit;font-weight:800;font-size:17px;cursor:pointer}
.amt-btn[aria-pressed=true]{border-color:var(--gold);background:#ffcf4a1f;color:var(--gold)}
form label{display:block;margin-top:12px;font-size:13px;color:var(--muted);font-weight:600}
form input:not([type=checkbox]),form select{display:block;width:100%;margin-top:6px;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:#0b0d1a;color:var(--text);font:inherit;font-size:16px}
form input:focus,form select:focus{outline:2px solid var(--gold);outline-offset:1px}
.swatches{display:flex;flex-wrap:wrap;gap:8px}
.swatch{width:32px;height:32px;border-radius:9px;border:2px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff30}
.swatch[aria-pressed=true]{border-color:#fff;transform:scale(1.1)}
.swatch-custom{display:inline-block;position:relative;overflow:hidden;background:conic-gradient(red,yellow,lime,cyan,blue,magenta,red)}
.swatch-custom input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.cell-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chip{padding:6px 12px;border-radius:999px;background:#ffffff10;font-size:14px;font-weight:600}
.check{display:flex!important;gap:8px;align-items:flex-start;font-weight:500!important;font-size:12.5px!important;line-height:1.45}
.check input{margin-top:2px;accent-color:var(--gold);width:18px;height:18px;flex:none}
.err{color:#ff8787;font-size:13px;margin:10px 0 0}
.row2{display:grid;grid-template-columns:auto 1fr;gap:8px;margin-top:16px}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);z-index:60;background:var(--text);color:var(--bg);padding:10px 18px;border-radius:999px;font-weight:700;box-shadow:0 10px 30px #0008;animation:up .2s ease-out;max-width:90vw;text-align:center}
.flash{animation:flash 1s ease-in-out 3}
@keyframes flash{50%{box-shadow:0 0 0 4px var(--gold)}}
@media (min-width:720px){
  .brand em{display:inline}.nav{display:flex}.topbar{padding:12px 28px}.topbar .btn-sm{display:inline-flex}
  .fab{display:none}
  .stats{gap:14px}.stat{padding:16px}
  .card{padding:26px}
  .modal{align-items:center}.sheet{border-radius:22px}
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .foot{padding-bottom:40px}
}
@media (min-width:980px){
  .layout{display:block}
}
.feed-card{width:100%;max-width:none}
.feed-card .feed{max-height:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
.feed-card .feed{max-height:none;overflow:visible;padding-right:0}
/* feed uses full card width; no inner scroll cage */
.feed::-webkit-scrollbar{width:6px}.feed::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}
.wall-wrap.flash{animation:flash 1s ease-in-out 3}

/* ================= 济公AI persona additions ================= */
.logo{font-family:"Noto Serif CJK SC","Songti SC",serif}
.ai-badge{display:inline-flex;align-items:center;gap:5px;flex:none;font-size:11.5px;font-weight:700;color:#cfe9ff;background:#1b2a4a;border:1px solid #3b6ea8;border-radius:999px;padding:3px 9px 3px 3px;white-space:nowrap}
.ai-badge i{font-style:normal;background:#3ea6ff;color:#06121f;border-radius:999px;padding:1px 6px;font-size:10.5px;font-weight:900}
.topbar .ai-badge .long{display:none}
.topbar .ai-badge{font-size:11px}
@media (min-width:1000px){.topbar .ai-badge .long{display:inline}.topbar .ai-badge .short{display:none}}
@media (max-width:359px){.topbar .ai-badge .short{display:none}.topbar .ai-badge{padding-right:3px}}
.foot .ai-badge{font-size:13px}
.ai-label-foot{margin:0 0 6px}
/* hero */
.hero{display:grid;gap:8px;justify-items:center}
.hero-av{position:relative;width:min(210px,58vw);margin-top:6px}
.hero-av .jg{width:100%;height:auto;display:block;overflow:visible}
.bubble{position:absolute;left:50%;top:-6px;transform:translate(-50%,-100%);width:max-content;max-width:min(270px,80vw);background:#fff;color:#1b1300;font-weight:700;font-size:14px;line-height:1.35;padding:8px 12px;border-radius:14px;box-shadow:0 8px 24px #0006;z-index:2;text-align:center}
.bubble::after{content:"";position:absolute;left:50%;bottom:-7px;margin-left:-7px;border:7px solid transparent;border-bottom:0;border-top-color:#fff}
.bubble.pop{animation:pop .35s ease-out}
@keyframes pop{from{transform:translate(-50%,-90%) scale(.85);opacity:.3}}
.hero-av{margin-top:56px}
.hero-txt{text-align:center}
.sub b{color:var(--text)}
.jg-body,.jg-head{transform-box:fill-box}
.jg{animation:bob 3.2s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-6px)}}
.jg-fan{transform-origin:204px 198px;animation:fan 1.6s ease-in-out infinite}
@keyframes fan{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(14deg)}}
.jg-led{animation:led 1.2s steps(2) infinite}
@keyframes led{50%{fill:#ff5c8a}}
.jg-eyes{transform-origin:130px 100px;animation:blinkEye 4s infinite}
@keyframes blinkEye{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.15)}}
.jg-coin{animation:coin 2.4s ease-in infinite}
@keyframes coin{0%{transform:translateY(-26px);opacity:0}25%{opacity:1}55%,100%{transform:translateY(8px);opacity:0}}
.jg-mini{animation:none}.jg-mini *{animation:none!important}
/* bet */
.bet{background:linear-gradient(135deg,#2a1b4dcc,#151933cc 60%);border-color:#4a3a85}
.sec-head h2 .day-chip{font-size:13px;vertical-align:middle;margin-left:6px;padding:3px 10px;border-radius:999px;background:var(--gold);color:#1b1300;font-weight:800}
#betRule b{color:var(--pink)}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:520px;margin:4px auto 16px}
.countdown div{background:#0b0d1a99;border:1px solid var(--line);border-radius:14px;padding:10px 4px;text-align:center}
.countdown b{display:block;font-size:clamp(26px,8vw,42px);font-weight:900;font-variant-numeric:tabular-nums;line-height:1.1;background:linear-gradient(180deg,#fff,#ffcf4a);-webkit-background-clip:text;background-clip:text;color:transparent}
.countdown span{font-size:12px;color:var(--muted)}
.bet .goal{max-width:none;margin:0}
.bet .goal-row:first-child{font-weight:800;color:var(--text);font-size:15px}
.small2{margin-top:8px;font-size:12.5px}
/* diary */
.diary{display:grid;gap:12px}
.diary-item{border:1px solid var(--line);border-radius:14px;padding:14px;background:#ffffff06}
.diary-item.today{border-color:#ffcf4a66;background:linear-gradient(135deg,#ffcf4a12,#ffffff05)}
.d-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}
.d-day{font-weight:900;color:var(--gold)}.d-date{color:var(--muted)}.d-mood{margin-left:auto;font-size:18px}
.d-nums{display:flex;align-items:baseline;gap:12px;margin:6px 0 2px}
.d-amt small{color:var(--muted);font-size:12px;margin-right:6px}.d-amt b{font-size:24px;color:var(--mint);font-weight:900}
.d-people{color:var(--muted);font-size:13px}
.d-title{margin:4px 0;font-size:16px}
.d-thought{margin:0;color:#cfd3ff;font-size:14.5px}
/* ledger */
.ledger-grid{display:grid;gap:18px}
.h3{font-size:15px;margin:0 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.books{width:100%;border-collapse:collapse;font-size:14px}
.books td{padding:8px 4px;border-bottom:1px dashed var(--line)}
.books td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.books tr.sum td{border-top:1px solid var(--line);font-weight:800}
.books tr.neg td.num{color:#ff8787}
.books tr.net td{font-size:17px;font-weight:900;border-bottom:0}.books tr.net td.num{color:var(--mint)}
.books caption{caption-side:bottom;text-align:left;color:var(--muted);font-size:12px;padding-top:8px}
.log{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line);display:grid;gap:12px}
.log li{position:relative}
.log li::before{content:"";position:absolute;left:-20px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px var(--bg2)}
.log li.log-expense::before{background:#ff8787}.log li.log-note::before{background:var(--muted)}
.log-h{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.kind{font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.04em}
.log-expense .kind{color:#ff8787}.log-note .kind{color:var(--muted)}
.log-amt{margin-left:auto;color:#ff8787;font-weight:800}
.log-title{font-weight:700;font-size:14.5px}.log-detail{color:var(--muted);font-size:13.5px}
/* commands */
.cmd-stats{font-size:13px;color:var(--muted);margin:-4px 0 10px}
.cmds{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px;max-height:460px;overflow:auto}
.cmd{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#ffffff06}
.cmd-top{display:flex;gap:8px;align-items:flex-start}
.cmd-text{font-weight:700;word-break:break-word}
.st{flex:none;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;margin-top:2px}
.st-pending .st{background:#ffffff14;color:var(--muted)}
.st-doing .st{background:#3ea6ff26;color:#7cc4ff}
.st-done .st{background:#3ee6b026;color:var(--mint)}
.st-declined .st{background:#ff878726;color:#ff8787}
.st-declined .cmd-text{text-decoration:line-through;color:var(--muted)}
.cmd-meta{font-size:12px;color:var(--muted);margin-top:4px}
.cmd-reply{margin-top:6px;font-size:13.5px;color:#d8dbff;background:#0b0d1a88;border-radius:10px;padding:7px 10px}
/* modal persona */
.modal-head{display:flex;gap:10px;align-items:center;margin-bottom:6px;padding-right:28px}
.mini-av{flex:none;width:58px}.mini-av svg{width:100%;height:auto;display:block}
.bubble-sm{margin:2px 0 0;font-size:13px;color:var(--gold)}
.cmd-field .cnt{font-style:normal;float:right;font-weight:500;color:var(--muted)}
.cmd-field input{border-color:#4a3a85!important;background:#140f2a!important}
@media (min-width:720px){
  .hero{grid-template-columns:1fr 1.4fr;align-items:center;text-align:left;gap:36px;padding:64px 0 40px}
  .versus{justify-self:stretch}
  .hero-txt{text-align:left}
  .hero .sub{margin-left:0}
  .hero .stats{margin-left:0}
  .hero .cta-row{justify-content:flex-start}
  .ledger-grid{grid-template-columns:1fr 1.3fr;gap:28px}
  .diary{grid-template-columns:repeat(3,1fr)}
}
/* ideas / strategists */
.tag.strat{background:#ffcf4a26;color:var(--gold);border:1px solid #ffcf4a66}
.dot-strat{box-shadow:0 0 0 2px var(--gold),0 0 12px #ffcf4a88!important}
.badge-strat{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1b1300;font-weight:900;font-size:13px;font-family:"Noto Serif CJK SC","Songti SC",serif;vertical-align:middle}
.hall{border:1px solid #ffcf4a55;background:linear-gradient(135deg,#ffcf4a14,transparent);border-radius:14px;padding:12px 14px;margin-bottom:14px}
.hall .h3{color:var(--gold);text-transform:none}
.hall-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.hall-list li{display:flex;align-items:center;gap:6px;background:#0b0d1a88;border:1px solid #ffcf4a55;border-radius:999px;padding:4px 12px 4px 4px;font-size:14px}
.hall-list li.empty{border-style:dashed;color:var(--muted);padding:4px 12px}
.hall-c{color:var(--muted);font-size:12px}
.idea-form{display:grid;gap:8px;margin-bottom:14px}
.idea-form input{width:100%;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:#0b0d1a;color:var(--text);font:inherit;font-size:16px}
.idea-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.idea-form .hint{margin:0;font-size:12px;color:var(--muted);display:flex;justify-content:space-between}
.idea-form .hint em{font-style:normal}
.ideas{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.idea{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#ffffff06}
.idea.ist-live{border-color:#3ee6b066}.idea.ist-adopted{border-color:#ffcf4a66}
.vote{flex:none;display:grid;justify-items:center;gap:0;min-width:44px;padding:6px 4px;border-radius:10px;border:1px solid var(--line);background:#0b0d1a;color:var(--muted);cursor:pointer;font:inherit}
.vote b{color:var(--text);font-size:15px}.vote .arrow{font-size:11px}
.vote.on{border-color:var(--gold);color:var(--gold)}.vote.on b{color:var(--gold)}
.idea-body{min-width:0;flex:1}
.idea-top{display:flex;gap:8px;align-items:flex-start}
.idea-text{font-weight:700;word-break:break-word}
.ist{flex:none;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;margin-top:2px;background:#ffffff14;color:var(--muted)}
.ist-adopted .ist{background:#ffcf4a26;color:var(--gold)}.ist-live .ist{background:#3ee6b026;color:var(--mint)}
.thanks b{color:var(--gold)}
.d-report{margin:8px 0 0;font-size:13.5px;color:var(--text);background:#ffcf4a14;border:1px dashed #ffcf4a55;border-radius:10px;padding:6px 10px}
.d-report b{color:var(--gold)}
.idea-field input{border-color:#7a5a1a!important;background:#1a140a!important}

/* ================= P0 viral features ================= */
/* live ticker */
.ticker{position:relative;display:flex;align-items:center;gap:8px;height:30px;padding:0 12px;background:#0f1226e6;border-bottom:1px solid #ffffff0d;font-size:12.5px;color:#cfd3ff;overflow:hidden}
.live-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#ff5c8a;box-shadow:0 0 0 0 #ff5c8a88;animation:live 1.6s infinite}
@keyframes live{70%{box-shadow:0 0 0 7px #ff5c8a00}100%{box-shadow:0 0 0 0 #ff5c8a00}}
.ticker-vp{overflow:hidden;flex:1;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.ticker-track{display:inline-flex;gap:34px;white-space:nowrap;animation:tick 60s linear infinite;padding-left:10px}
.ticker:hover .ticker-track{animation-play-state:paused}
.tk{color:inherit;text-decoration:none}.tk::before{content:"✦ ";color:var(--gold)}
a.tk:hover{color:var(--gold)}
@keyframes tick{to{transform:translateX(-50%)}}
/* invite banner */
.invite-banner{display:flex;flex-wrap:wrap;gap:6px 12px;justify-content:center;align-items:center;margin:10px auto 0;max-width:1100px;padding:9px 14px;border-radius:12px;background:linear-gradient(90deg,#ffcf4a22,#ff5c8a22);border:1px solid #ffcf4a55;font-size:14px;font-weight:700;width:calc(100% - 32px)}
.invite-banner a{color:var(--gold)}
/* tags */
.tag.founding{background:#e0313133;color:#ff8a8a;border:1px solid #e0313177}
.tag.pending{background:#9aa0c826;color:#c9cdf0;border:1px dashed #9aa0c8}
.tag.ok{background:#3ee6b026;color:var(--mint)}
.t-no,.no-link{font-weight:800;color:var(--gold);text-decoration:none;font-variant-numeric:tabular-nums}
a.no-link:hover{text-decoration:underline}
.books tr.pend td{color:var(--muted);font-style:italic}
/* fixed notice */
.notice-fixed{position:fixed;left:0;right:0;bottom:0;z-index:16;text-align:center;font-size:11.5px;font-weight:700;letter-spacing:.04em;color:#c9cdf0;background:#0b0d1ae6;border-top:1px solid #ffffff12;padding:5px 8px calc(5px + env(safe-area-inset-bottom));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.fab{bottom:calc(38px + env(safe-area-inset-bottom))}
.foot{padding-bottom:140px}
@media (min-width:720px){.foot{padding-bottom:70px}}
.notice-inline,.notice-foot{font-size:12px;color:var(--muted);text-align:center;margin:10px 0 0;line-height:1.5}
.toast{bottom:110px}
/* pay code */
.paycode{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;margin:12px 0 0;padding:10px 12px;border-radius:12px;border:1px dashed #ffcf4a88;background:#ffcf4a12;font-size:13px;font-weight:700}
.paycode b{grid-row:span 2;font-size:28px;letter-spacing:.18em;color:var(--gold);font-variant-numeric:tabular-nums}
.paycode small{font-weight:500;color:var(--muted);font-size:11.5px}
/* diary roll call */
.rollcall{margin-top:10px;padding:8px 10px;border-radius:10px;background:#3ea6ff12;border:1px solid #3ea6ff44;font-size:13.5px}
.rollcall .rc-h{color:#7cc4ff}
.rollcall ul{margin:4px 0 0;padding-left:18px}.rollcall li{margin:2px 0;color:#cfd3ff}
/* card page */
body.card-open{overflow:hidden}
.cardview{position:fixed;inset:0;z-index:40;overflow:auto;background:radial-gradient(70% 50% at 50% 0%,#3b2a7a66,transparent 70%),#0b0d1a;padding:14px 14px 80px}
.cv-inner{max-width:560px;margin:0 auto}
.cv-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.cv-lead{font-size:17px;font-weight:800;text-align:center;margin:6px 0 14px}
.cv-empty{text-align:center;color:var(--muted);margin:40px 0 20px}
.cv-card{position:relative;background:linear-gradient(160deg,#1d1846,#12152b);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:0 20px 60px #0008}
.cv-card.founding{border-color:#e0313188}.cv-card.strat{box-shadow:0 0 0 2px #ffcf4a99,0 20px 60px #0008}
.cv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.cv-no small{display:block;color:var(--muted);font-weight:800;font-size:14px}
.cv-no b{font-size:58px;line-height:1;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.cv-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}
.seal{display:inline-block;transform:rotate(-8deg);border:2px solid #e03131;color:#ff6b6b;font-family:"Noto Serif CJK SC","Songti SC",serif;font-weight:900;padding:2px 8px;border-radius:6px;font-size:15px}
.cv-title{font-size:18px;font-weight:800;margin:8px 0 2px}
.cv-msg{color:#cfd3ff;margin-bottom:8px}
.cv-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:10px}
.cv-wall{width:100%;max-width:340px;justify-self:center;aspect-ratio:1/1;border-radius:10px;border:1px solid var(--line);image-rendering:pixelated}
.cv-facts{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px;color:#d8dbff}
.cv-verdict{margin-top:14px;text-align:center;padding:14px;border-radius:14px;background:#0b0d1a99;border:1px solid #ffcf4a44}
.cv-verdict small{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
.cv-verdict b{font-family:"Noto Serif CJK SC","Songti SC",serif;font-size:24px;font-weight:900}
.cv-code{margin-top:12px}
.cv-acts{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px}
@media (min-width:560px){.cv-grid{grid-template-columns:1fr 1fr;align-items:center}}
/* share modal */
.sheet-wide{max-width:520px}
.share-prev{display:flex;justify-content:center;background:#0b0d1a;border-radius:14px;padding:10px;margin:4px 0 10px}
.share-prev img{max-width:100%;max-height:52vh;border-radius:8px;box-shadow:0 8px 30px #0009}
.share-actions{grid-template-columns:1fr auto}
.grid-text{white-space:pre;font-size:13px;line-height:1.25;background:#0b0d1a;border:1px solid var(--line);border-radius:12px;padding:10px;overflow:auto;margin:0;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",ui-monospace,monospace}
/* WeChat in-app browser: hide invite / rank / level wording */
.wx .no-wx{display:none!important}
.wx-only{display:none}.wx .wx-only{display:block}

/* ================= free tier ================= */
.hero-tier{font-size:13.5px;color:var(--muted);margin:12px 0 0;max-width:620px}
.hero-tier b{color:var(--mint)}
.hero-tier b:last-of-type{color:var(--gold)}
@media (max-width:719px){.hero-tier{margin-left:auto;margin-right:auto}}
.review-note{margin:-4px 0 8px;font-size:13px;font-weight:700;color:#7cc4ff;background:#3ea6ff14;border:1px solid #3ea6ff44;border-radius:10px;padding:6px 10px;display:inline-block}
.cmd{display:flex;gap:10px;align-items:flex-start}
.cmd-body{flex:1;min-width:0}
.cmd-top{flex-wrap:wrap}
.src{flex:none;font-size:11px;font-weight:900;padding:2px 8px;border-radius:999px;margin-top:2px}
.src.paid{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1b1300}
.src.free{background:#3ee6b026;color:var(--mint);border:1px solid #3ee6b066}
.cmd.src-paid{border-color:#ffcf4a55}
.free{background:linear-gradient(135deg,#0f2a2acc,#151933cc 60%);border-color:#2b6b5f}
.tiers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.tier{border-radius:14px;padding:12px 14px;border:1px solid var(--line);background:#0b0d1a88}
.tier h3{margin:0 0 6px;font-size:16px}
.tier ul{margin:0;padding-left:18px;font-size:13.5px;color:#d8dbff;display:grid;gap:3px}
.tier a{color:inherit;text-decoration:none}.tier a:hover{color:var(--mint)}
.tier-free{border-color:#3ee6b066}.tier-free h3{color:var(--mint)}
.tier-paid{border-color:#ffcf4a66}.tier-paid h3{color:var(--gold)}
.tier-paid .btn-block{margin-top:10px}
.free-grid{display:grid;gap:12px}
.free-box{border:1px solid var(--line);border-radius:14px;padding:14px;background:#ffffff06;scroll-margin-top:80px}
.h3b{margin:0 0 4px;font-size:17px}

/* ===== temple lot 抽签: tube rattle → stick pop → gold slip ===== */
.lotto-card .lotto-stage{text-align:center;padding:12px 0 4px}
.lotto-tube-wrap{height:200px;display:flex;align-items:flex-end;justify-content:center;margin:0 auto 14px;perspective:600px}
.lotto-tube{position:relative;width:92px;height:168px;transform-origin:50% 85%}
.lotto-rim{position:absolute;left:50%;top:18px;transform:translateX(-50%);width:78px;height:18px;border-radius:50%;
  background:radial-gradient(ellipse at 50% 40%,#6b4423,#3a2412 70%);border:2px solid #2a180c;z-index:4;box-shadow:inset 0 2px 4px #0008}
.lotto-body{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);width:72px;height:120px;border-radius:8px 8px 18px 18px;
  background:linear-gradient(90deg,#8b5a2b 0%,#c4893f 18%,#e0b060 45%,#c4893f 72%,#6e4218 100%);
  border:2px solid #4a2c12;box-shadow:inset 3px 0 8px #fff3,inset -4px 0 10px #0005,0 12px 28px #0007;z-index:2;
  background-image:repeating-linear-gradient(90deg,transparent 0 9px,rgba(0,0,0,.08) 9px 10px),linear-gradient(90deg,#8b5a2b,#e0b060 45%,#6e4218)}
.lotto-base{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:88px;height:16px;border-radius:50%;
  background:radial-gradient(ellipse at 50% 40%,#5a3818,#2a180c);border:2px solid #1a0e06;z-index:1;box-shadow:0 6px 16px #0008}
.lotto-sticks{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:62px;height:70px;z-index:3;overflow:hidden;pointer-events:none}
.lotto-sticks i{position:absolute;bottom:0;width:5px;border-radius:2px 2px 0 0;
  background:linear-gradient(180deg,#f3e2b0,#c9a35a 70%,#8a6230);box-shadow:inset 0 0 0 1px #0002}
.lotto-sticks i:nth-child(1){left:4px;height:52px;transform:rotate(-6deg)}
.lotto-sticks i:nth-child(2){left:10px;height:58px;transform:rotate(-3deg)}
.lotto-sticks i:nth-child(3){left:16px;height:48px;transform:rotate(2deg)}
.lotto-sticks i:nth-child(4){left:22px;height:62px;transform:rotate(-1deg)}
.lotto-sticks i:nth-child(5){left:28px;height:55px;transform:rotate(4deg)}
.lotto-sticks i:nth-child(6){left:34px;height:60px;transform:rotate(-5deg)}
.lotto-sticks i:nth-child(7){left:40px;height:50px;transform:rotate(3deg)}
.lotto-sticks i:nth-child(8){left:46px;height:57px;transform:rotate(-2deg)}
.lotto-sticks i:nth-child(9){left:7px;height:44px;transform:rotate(5deg);opacity:.85}
.lotto-sticks i:nth-child(10){left:19px;height:46px;transform:rotate(-4deg);opacity:.85}
.lotto-sticks i:nth-child(11){left:31px;height:42px;transform:rotate(1deg);opacity:.8}
.lotto-sticks i:nth-child(12){left:43px;height:45px;transform:rotate(-3deg);opacity:.8}
.lotto-pop{position:absolute;left:50%;top:22px;transform:translate(-50%,0);width:14px;height:78px;z-index:5;
  background:linear-gradient(180deg,#fff6d0,#e8c46a 55%,#b8862f);border-radius:3px 3px 1px 1px;border:1px solid #7a5418;
  box-shadow:0 0 12px #ffcf4a66;opacity:0;pointer-events:none;
  display:flex;align-items:flex-start;justify-content:center;padding-top:6px;
  font-family:"Noto Serif CJK SC","Songti SC",serif;font-weight:900;font-size:11px;color:#7a1f1f;letter-spacing:-.02em}
.lotto-pop.up{opacity:1;animation:lottoPop .7s cubic-bezier(.2,1.4,.4,1) both}
.lotto-tube.rattling{animation:lottoRattle .11s linear infinite}
.lotto-tube.rattling .lotto-sticks i{animation:lottoStickJitter .1s linear infinite}
.lotto-tube.popping .lotto-sticks i{animation:none}
.lotto-tube.drawn .lotto-pop{opacity:1;transform:translate(-50%,-52px)}
.lotto-tube.drawn:not(.popping) .lotto-pop{animation:none}
.lotto-slip{margin:16px auto 0;max-width:420px;padding:18px 20px;border-radius:16px;
  background:linear-gradient(160deg,#3a2a0a,#1a1430 55%,#12182e);border:1px solid #ffcf4a88;
  box-shadow:0 12px 40px #0007,0 0 24px #ffcf4a33,inset 0 0 0 1px #ffcf4a22;opacity:0;transform:translateY(12px) scale(.96)}
.lotto-slip.in{opacity:1;transform:none;transition:opacity .45s ease,transform .45s cubic-bezier(.2,.9,.3,1)}
.lotto-slip.reveal.in{animation:lottoSlipIn .55s cubic-bezier(.2,.9,.3,1) both}
.lotto-slip-kicker{margin:0 0 8px;font-size:12px;letter-spacing:.12em;color:#ffcf4a;font-weight:700}
.lotto-slip-text{margin:0;font-size:18px;line-height:1.55;font-weight:700;color:#fff6d8;font-family:"Noto Serif CJK SC","Songti SC",serif}
.lotto-slip-note{margin:12px 0 0;font-size:12px;color:var(--muted)}
.lotto-hint{margin:12px 0 0;font-size:13px;color:var(--muted)}
.lotto-stage.drawing #drawBtn{opacity:.55;pointer-events:none}
@keyframes lottoRattle{
  0%{transform:rotate(0) translateX(0)}
  20%{transform:rotate(-9deg) translateX(-3px)}
  40%{transform:rotate(10deg) translateX(4px)}
  60%{transform:rotate(-8deg) translateX(-2px)}
  80%{transform:rotate(7deg) translateX(3px)}
  100%{transform:rotate(0) translateX(0)}
}
@keyframes lottoStickJitter{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}
@keyframes lottoPop{
  0%{opacity:0;transform:translate(-50%,8px) scaleY(.7)}
  35%{opacity:1}
  100%{opacity:1;transform:translate(-50%,-52px) scaleY(1)}
}
@keyframes lottoSlipIn{
  0%{opacity:0;transform:translateY(18px) scale(.92) rotate(-1deg)}
  60%{opacity:1;transform:translateY(-4px) scale(1.02) rotate(.4deg)}
  100%{opacity:1;transform:none}
}
@media (prefers-reduced-motion: reduce){
  .lotto-tube.rattling,.lotto-tube.rattling .lotto-sticks i,.lotto-pop.up,.lotto-slip.reveal.in{animation:none!important}
  .lotto-slip.in{transition:none;opacity:1;transform:none}
  .lotto-tube.drawn .lotto-pop,.lotto-pop.up{opacity:1;transform:translate(-50%,-52px)}
}

.books{width:100%;border-collapse:collapse}

.free-form{display:grid;gap:8px;margin-top:10px;text-align:left}
.free-form input{width:100%;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:#0b0d1a;color:var(--text);font:inherit;font-size:16px}
.free-form .hint{margin:0;font-size:12px;color:#7cc4ff}
.gb-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px;max-height:300px;overflow:auto}
.gb-list li{padding:8px 10px;border-radius:10px;background:#0b0d1a88;border:1px solid #ffffff0d}
.gb-h{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted)}.gb-h b{color:var(--text);font-size:13px}
.gb-t{font-size:14px;color:#d8dbff;word-break:break-word}
@media (min-width:720px){.free-grid{grid-template-columns:1fr 1.3fr}}

/* ===== celebration, gold seal, wall spotlight, sparkles =====
 * Base styles are the END state; keyframes animate *from* the dramatic start,
 * so the global prefers-reduced-motion rule (animation:none) still shows everything. */
.celebrate{position:fixed;inset:0;z-index:300;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 42%,#3a2470e6,#07081ef2 72%);opacity:0;transition:opacity .3s}
.celebrate.ms-legend{background:radial-gradient(circle at 50% 42%,#7a1d1de6,#0d0610f2 72%)}
.celebrate.ms-lucky{background:radial-gradient(circle at 50% 42%,#5b2a86e6,#0a0618f2 72%)}
.celebrate.p-in,.celebrate.rm{opacity:1}.celebrate.out{opacity:0}
.cel-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.cel-stage{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px 16px;width:100%;max-width:560px;text-align:center}
.cel-monk{display:flex;align-items:flex-end;justify-content:center;gap:8px;opacity:0;transform:translateY(24px) scale(.9);transition:opacity .4s,transform .5s cubic-bezier(.2,.9,.3,1.35)}
.p-bubble .cel-monk{opacity:1;transform:none}
.cel-monk img{width:92px;height:92px;flex:none;filter:drop-shadow(0 6px 18px #000a)}
.cel-bubble{position:relative;background:#fffdf3;color:#24163f;font-weight:800;padding:10px 14px;border-radius:16px;max-width:320px;font-size:16px;line-height:1.45;text-align:left;box-shadow:0 8px 30px #0008;margin-bottom:22px}
.cel-bubble::before{content:'';position:absolute;left:-9px;bottom:16px;border:9px solid transparent;border-right-color:#fffdf3;border-left:0}
.cel-sealwrap{position:relative;width:220px;height:220px;display:grid;place-items:center}
.cel-seal{opacity:0;--sz:190px}
.p-stamp .cel-seal{opacity:1;animation:slam .48s cubic-bezier(.55,0,.8,.3) both}
@keyframes slam{0%{transform:translateY(-40px) scale(3.4) rotate(-30deg);opacity:0;filter:blur(3px)}55%{opacity:1;filter:blur(0)}82%{transform:scale(.9) rotate(-6deg)}92%{transform:scale(1.04) rotate(-6deg)}100%{transform:scale(1) rotate(-6deg)}}
.cel-dust{position:absolute;inset:10px;border-radius:24px;border:4px solid #ffe08a;opacity:0;pointer-events:none}
.p-impact .cel-dust{animation:dust .8s ease-out forwards}
@keyframes dust{0%{transform:scale(.7) rotate(-6deg);opacity:1}100%{transform:scale(1.9) rotate(-6deg);opacity:0}}
.p-impact .cel-stage{animation:shake .38s ease-out}
@keyframes shake{0%,100%{transform:none}20%{transform:translate(-7px,5px)}40%{transform:translate(6px,-6px)}60%{transform:translate(-4px,3px)}80%{transform:translate(2px,-2px)}}
.cel-rays{position:absolute;left:50%;top:50%;width:1100px;height:1100px;margin:-550px 0 0 -550px;border-radius:50%;pointer-events:none;opacity:0;
  background:repeating-conic-gradient(from 0deg,#ffcf4a30 0 9deg,transparent 9deg 18deg);-webkit-mask:radial-gradient(circle,#000 12%,transparent 62%);mask:radial-gradient(circle,#000 12%,transparent 62%)}
.p-stamp .cel-rays{opacity:1;animation:spin 14s linear infinite;transition:opacity .6s}
@keyframes spin{to{transform:rotate(360deg)}}
.cel-title{opacity:0;transform:scaleX(.15)}
.p-title .cel-title{opacity:1;transform:none;transition:opacity .3s,transform .55s cubic-bezier(.2,.9,.3,1.3)}
.cel-title span{display:inline-block;font-family:"Noto Serif CJK SC","Songti SC",serif;font-weight:900;font-size:28px;letter-spacing:.12em;color:#ffe08a;padding:8px 34px;
  background:linear-gradient(90deg,#8f1d18,#e03131 30%,#e03131 70%,#8f1d18);border-top:2px solid #ffcf4a;border-bottom:2px solid #ffcf4a;text-shadow:0 2px 0 #5a0d0a;
  clip-path:polygon(0 0,100% 0,96% 50%,100% 100%,0 100%,4% 50%);box-shadow:0 0 40px #ffcf4a66}
.cel-note{margin:0;color:#d8dbff;font-size:13px;max-width:360px}
.cel-acts{display:flex;gap:10px;align-items:center;opacity:0;pointer-events:none}
.p-acts .cel-acts{opacity:1;pointer-events:auto;transition:opacity .4s}
.cel-ai{margin:0;color:#9aa0c8;font-size:12px}
@media (max-width:520px){.cel-monk img{width:72px;height:72px}.cel-bubble{font-size:15px;max-width:250px}.cel-sealwrap{width:180px;height:180px}.cel-seal{--sz:160px}.cel-title span{font-size:22px;padding:7px 26px}}

/* gold seal (celebration + card page) */
.gseal{--sz:180px;width:var(--sz);height:var(--sz);flex:none;transform:rotate(-6deg);border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px;box-sizing:border-box;
  background:radial-gradient(circle at 30% 22%,#fff6c4,#ffd451 32%,#e0a21a 70%,#a86f00);color:#5a1c00;
  box-shadow:inset 0 0 0 4px #fff7,inset 0 0 0 8px #a86f00,inset 0 0 0 10px #ffe79a,0 12px 44px #ffcf4a66,0 0 0 1px #0005;
  font-family:"Noto Serif CJK SC","Songti SC",serif;text-shadow:0 1px 0 #fff9}
.gseal small{display:block;font-size:calc(var(--sz)*.066);font-weight:900;letter-spacing:.06em;color:#6b2a00;line-height:1.1}
.gseal b{display:block;font-size:calc(var(--sz)*.3);line-height:1;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:#4a1500;font-family:inherit}
.gseal em{font-style:normal;font-size:calc(var(--sz)*.082);font-weight:900;background:#b3261e;color:#ffe9a8;padding:2px 8px;border-radius:6px;text-shadow:none;max-width:92%;line-height:1.2}
.gseal.ms-legend{background:radial-gradient(circle at 30% 22%,#ff9b8a,#e03131 38%,#9b1515 75%,#5e0b0b);color:#ffe08a;text-shadow:0 1px 0 #0006;
  box-shadow:inset 0 0 0 4px #ffcf4a,inset 0 0 0 8px #7a0f0f,inset 0 0 0 10px #ffcf4a,0 12px 50px #ff6b6b88,0 0 0 1px #0005}
.gseal.ms-legend small,.gseal.ms-legend b{color:#ffe08a}.gseal.ms-legend em{background:#ffcf4a;color:#7a0f0f}
.gseal.ms-lucky{box-shadow:inset 0 0 0 4px #fff7,inset 0 0 0 8px #7c5cff,inset 0 0 0 10px #ffe79a,0 12px 50px #b197fc88,0 0 0 1px #0005}
.gseal.ms-lucky em,.gseal.ms-epic em{background:#7c2d12}
.cv-no.gseal{--sz:128px;margin:4px 0 6px 4px}
.cv-no.gseal small{color:#6b2a00;font-size:calc(var(--sz)*.072)}.cv-no.gseal b{font-size:calc(var(--sz)*.3);color:#4a1500}
.cv-no.gseal.ms-legend small,.cv-no.gseal.ms-legend b{color:#ffe08a}
.cv-no.gseal.slam{animation:slam .55s cubic-bezier(.55,0,.8,.3) .25s both}
.cv-no.gseal.ms{animation:sealGlow 2.4s ease-in-out infinite}.cv-no.gseal.ms.slam{animation:slam .55s cubic-bezier(.55,0,.8,.3) .25s both,sealGlow 2.4s ease-in-out .8s infinite}
@keyframes sealGlow{0%,100%{filter:drop-shadow(0 0 0 #ffcf4a00)}50%{filter:drop-shadow(0 0 14px #ffcf4acc)}}
.tag.ms-tag{background:#ffcf4a22;color:#ffd970;border:1px solid #ffcf4a66}

/* wall spotlight after a tip */
.wall-wrap.spotting{overflow:visible;z-index:20}
.spot{position:absolute;inset:0;pointer-events:none;z-index:6}
.spot-halo{position:absolute;width:var(--d);height:var(--d);margin:calc(var(--d) / -2) 0 0 calc(var(--d) / -2);border-radius:50%;border:3px solid #ffcf4a;box-shadow:0 0 18px 6px #ffcf4a99,inset 0 0 12px #ffcf4a88;animation:halo 1.1s ease-in-out infinite}
.spot-halo::after{content:'';position:absolute;inset:-3px;border-radius:50%;border:2px solid #fff;opacity:0;animation:ping 1.5s ease-out infinite}
.spot.ms .spot-halo{border-color:#ff6b6b;box-shadow:0 0 22px 8px #ff6b6baa,inset 0 0 12px #ffcf4a88}
@keyframes halo{0%,100%{transform:scale(1)}50%{transform:scale(1.3)}}
@keyframes ping{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.2);opacity:0}}
.spot-box{position:absolute;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:auto;animation:zoomIn .65s cubic-bezier(.2,.9,.3,1.25) both}
@keyframes zoomIn{0%{transform:scale(.04);opacity:0}100%{transform:scale(1);opacity:1}}
.spot.out .spot-box{animation:zoomOut .5s ease-in forwards}.spot.out .spot-halo{opacity:0;transition:opacity .5s}
@keyframes zoomOut{to{transform:scale(.04);opacity:0}}
.spot-lens{border-radius:50%;overflow:hidden;border:4px solid #ffcf4a;background:#0f1226;box-shadow:0 0 0 4px #0009,0 0 34px 10px #ffcf4a88;animation:lensGlow 1.4s ease-in-out infinite}
.spot.ms .spot-lens{border-color:#ff6b6b}
@keyframes lensGlow{0%,100%{box-shadow:0 0 0 4px #0009,0 0 24px 6px #ffcf4a66}50%{box-shadow:0 0 0 4px #0009,0 0 44px 16px #ffcf4aaa}}
.spot-lens canvas{display:block;width:100%;height:100%;image-rendering:pixelated}
.spot-tag{display:flex;flex-direction:column;gap:2px;align-items:center;background:#14112bf2;border:1px solid #ffcf4a88;border-radius:12px;padding:8px 14px;min-width:150px;max-width:240px;box-shadow:0 10px 30px #000b;white-space:nowrap}
.spot-tag b{color:var(--gold);font-size:15px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.spot-ms{color:#ff8787;font-weight:900;font-size:13px}
.spot-tag small{color:var(--muted);font-size:12px}
.spot-card{color:#fff;font-weight:800;font-size:13px}

/* permanent subtle sparkle on this device's own cells */
.mine-spark{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;pointer-events:none;z-index:2;opacity:.75;filter:drop-shadow(0 0 3px #ffcf4a);animation:twinkle 2.4s ease-in-out infinite}
.mine-spark::before,.mine-spark::after{content:'';position:absolute;left:50%;top:50%;background:#fff;border-radius:2px;transform:translate(-50%,-50%)}
.mine-spark::before{width:2px;height:12px}.mine-spark::after{width:12px;height:2px}
@keyframes twinkle{0%,100%{opacity:.2;transform:scale(.55) rotate(0)}50%{opacity:.95;transform:scale(1) rotate(45deg)}}

/* diary: next update countdown */
.next-update{margin:6px 0 0;font-size:13px;font-weight:700;color:#ffd970;font-variant-numeric:tabular-nums}

/* ===== hero: 你出主意，AI去试 ===== */
.loop{margin:14px 0 6px;padding:14px 14px 12px;border-radius:16px;text-align:left;max-width:640px;
  background:linear-gradient(135deg,#3ee6b01f,#7c5cff1a 60%,#ffcf4a14);border:1.5px solid #3ee6b077;box-shadow:0 10px 40px #3ee6b014}
.loop-h{display:flex;align-items:center;gap:10px;justify-content:space-between}
.loop-h b{font-size:20px;font-weight:900;letter-spacing:.01em;color:#eafff7}
.loop-live{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--mint);text-transform:uppercase}
.loop-live i{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 0 #3ee6b0aa;animation:livePulse 1.6s infinite}
@keyframes livePulse{0%{box-shadow:0 0 0 0 #3ee6b0aa}100%{box-shadow:0 0 0 10px #3ee6b000}}
.loop-sub{margin:2px 0 8px;font-size:13px;color:#c9cdf5}
.loop-list{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.loop-link{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"st t" "st r";column-gap:10px;align-items:center;padding:7px 10px;border-radius:12px;background:#0b0d1acc;border:1px solid var(--line);color:inherit;text-decoration:none}
.loop-link:hover{border-color:#3ee6b088}
.loop-link .exp-st{grid-area:st;align-self:center}
.loop-t{grid-area:t;font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loop-r{grid-area:r;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loop-acts{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}
.btn-pitch{background:linear-gradient(135deg,#3ee6b0,#22c3e6);color:#062018;font-weight:900;box-shadow:0 6px 24px #3ee6b044}
.loop-free{font-size:12.5px;font-weight:800;color:var(--mint)}
.loop-more{margin-left:auto;font-size:13px;font-weight:700;color:#cfd3ff}
@media (max-width:719px){
  .loop{margin:10px auto 4px;padding:12px 12px 10px}
  .loop-h b{font-size:18px}.loop-sub{display:none}
  .loop-link{padding:6px 9px}
  .loop-acts .btn-pitch{flex:1 1 auto;justify-content:center;text-align:center}
  .loop-more{margin-left:0}
}

/* status chips (shared) */
.exp-st{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap;border:1px solid transparent}
.exp-st.st-approved{background:#7c5cff26;color:#c3b4ff;border-color:#7c5cff55}
.exp-st.st-running{background:#22c3e626;color:#8be9ff;border-color:#22c3e655}
.exp-st.st-success{background:#3ee6b026;color:var(--mint);border-color:#3ee6b055}
.exp-st.st-failed{background:#ff5c8a24;color:#ff9fb8;border-color:#ff5c8a55}

/* ===== stage goals ===== */
.stages-h{margin:18px 0 8px;font-size:16px}
.stages{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.stage{padding:10px 12px;border-radius:12px;background:#ffffff06;border:1px solid var(--line)}
.stage.cur{border-color:#ffcf4a88;background:linear-gradient(135deg,#ffcf4a14,#ffffff05)}
.stage.done{border-color:#3ee6b066}
.stage.locked{opacity:.72}
.stage-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.stage-h b{font-size:17px;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums}
.stage-name{font-weight:800}
.stage-chip{margin-left:auto;font-size:12px;font-weight:800;color:var(--muted)}
.stage.cur .stage-chip{color:var(--gold)}.stage.done .stage-chip{color:var(--mint)}
.bar.sm{height:8px;margin:6px 0 4px}.stage .bar i{min-width:0}
.stage-left{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.stage-beat{margin:4px 0 0;font-size:12.5px;color:#cfd3ff}
.stage.flash-stage{animation:flash 1s ease-in-out 3}
@media (min-width:900px){.stages{grid-template-columns:repeat(5,1fr)}.stage-chip{margin-left:0;width:100%}}
.gseal.stage b{font-size:calc(var(--sz)*.155);white-space:nowrap;letter-spacing:0}

/* ===== experiment results ===== */
.exp-filters{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 8px}
.exp-filters .chip{border:1px solid var(--line);color:var(--text);cursor:pointer;font:inherit;font-size:13px}
.exp-filters .chip[aria-selected=true]{background:var(--gold);color:#1b1300;border-color:var(--gold)}
.exp-stats{font-size:13px;color:var(--muted);margin:0 0 10px}
.exp-feed{display:grid;gap:12px}
@media (min-width:900px){.exp-feed{grid-template-columns:repeat(2,1fr)}}
.exp-card{padding:14px;border-radius:14px;background:#ffffff06;border:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.exp-card.st-success{border-color:#3ee6b055}.exp-card.st-failed{border-color:#ff5c8a55}.exp-card.st-running{border-color:#22c3e655}
.exp-top{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tag.exp-upd{background:#ffcf4a26;color:var(--gold)}
.exp-title{margin:2px 0 0;font-size:16px}.exp-title a{color:inherit;text-decoration:none}.exp-title a:hover{text-decoration:underline}
.exp-by{margin:0;font-size:12.5px;color:var(--gold);font-weight:700}
.exp-tried{margin:0;font-size:13.5px;color:#d8dbff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.exp-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.exp-m{padding:6px 8px;border-radius:10px;background:#0b0d1a99;border:1px solid var(--line);min-width:0}
.exp-m b{display:block;font-size:16px;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.exp-m span{display:block;font-size:11px;color:var(--muted);line-height:1.3}
.exp-m.live b{color:#8be9ff}.exp-m.live b::after{content:' ●';font-size:10px;color:var(--mint);vertical-align:middle}
.exp-metrics.big{grid-template-columns:repeat(2,1fr)}.exp-metrics.big b{font-size:22px}
.exp-ai{margin:0;font-size:13px;color:#cfd3ff;font-style:italic}
.exp-out{margin:0;font-size:13.5px;font-weight:800;padding:8px 10px;border-radius:10px;background:#0b0d1a99}
.st-success .exp-out{color:var(--mint)}.st-failed .exp-out{color:#ff9fb8}.exp-out.pending{color:var(--muted);font-weight:600}
.exp-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.follow.on{border-color:var(--gold);color:var(--gold)}
.exp-empty{color:var(--muted)}
/* experiment page */
.xv-card{display:flex;flex-direction:column;gap:8px}
.xv-title{margin:4px 0 0;font-size:24px;line-height:1.3}
.xv-credit{margin:0;color:var(--gold);font-weight:800}
.xv-time{margin:0;color:var(--muted);font-size:12.5px}
.xv-steps{list-style:none;margin:6px 0;padding:0;display:flex;gap:6px}
.xv-steps li{flex:1;text-align:center;font-size:12px;font-weight:800;padding:6px 4px;border-radius:999px;background:#ffffff08;color:var(--muted);border:1px solid var(--line)}
.xv-steps li.done{color:#d8dbff;background:#ffffff14}
.xv-steps li.now.st-approved{background:#7c5cff33;color:#c3b4ff}.xv-steps li.now.st-running{background:#22c3e633;color:#8be9ff}
.xv-steps li.now.st-success{background:#3ee6b033;color:var(--mint)}.xv-steps li.now.st-failed{background:#ff5c8a33;color:#ff9fb8}
.xv-sec h3{margin:6px 0 4px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.xv-sec p{margin:0;font-size:15px}
.xv-sec.ai p{font-style:italic;color:#cfd3ff}
.xv-sec.out p{font-weight:900;font-size:16px;padding:10px 12px;border-radius:12px;background:#0b0d1a99}
.xv-sec.out.success p{color:var(--mint);border:1px solid #3ee6b055}.xv-sec.out.failed p{color:#ff9fb8;border:1px solid #ff5c8a55}.xv-sec.out.pending p{color:var(--muted)}
.xv-fail{margin:0;font-size:13px;color:#ffd1dc}
.xv-note{margin:4px 0 0;font-size:12px;color:var(--muted)}
@media (min-width:720px){.hero{padding-top:28px}.loop-sub{margin-bottom:6px}}
.diary-follow{margin-top:8px;padding:10px 12px;border-radius:12px;background:#ff5c8a12;border:1px solid #ff5c8a44}
.diary-follow p{margin:0 0 8px;font-size:13.5px;font-weight:700;color:#ffd6e1}
.social-links{display:flex;flex-wrap:wrap;gap:6px}
.chip.social{color:var(--text);text-decoration:none;border:1px solid var(--line);font-size:13px}
.chip.social:hover{border-color:#ff5c8a88}
.chip.social.placeholder{opacity:.7;cursor:default;border-style:dashed}


/* ===== v5 · 化缘闯关 · 济公AI vs Genie AI · live versus scoreboard ===== */
.versus{position:relative;width:100%;max-width:520px;margin:8px auto 0;padding:12px 14px 12px;border-radius:20px;
  background:linear-gradient(180deg,#191433,#100c22);border:1px solid #3a2f6b;box-shadow:0 14px 40px #0007}
.vs-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}
.vs-head b{letter-spacing:.02em}
.vs-stage{position:relative;padding-top:64px}
.vs-row{display:flex;align-items:flex-end;gap:6px}
.vs-side{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;border-radius:16px;padding:6px 4px 8px;transition:box-shadow .4s,background .4s,transform .4s}
.vs-side.east{--sc:#ff7a45;--sg:#ffcf4a}
.vs-side.west{--sc:#5ee7df;--sg:#a48bff}
.vs-av{width:min(130px,30vw)}
.vs-av svg,.vs-av img{width:100%;height:auto;display:block;overflow:visible}
.vs-name b{display:block;font-size:14px;color:var(--sc)}
.vs-name small{display:block;font-size:11px;color:var(--muted)}
.vs-score{display:flex;flex-direction:column;align-items:center;line-height:1.15;margin-top:4px}
.vs-score b{font-size:26px;font-weight:900;color:#fff;font-variant-numeric:tabular-nums}
.vs-score span{font-size:12px;color:var(--muted)}
.vs-score .vs-people{color:var(--sg);font-weight:700}
.vs-side.lead{background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--sc) 26%,transparent),transparent 70%);box-shadow:0 0 0 1.5px var(--sc),0 0 28px color-mix(in srgb,var(--sc) 55%,transparent)}
.vs-side.lead .vs-score b{color:var(--sg);text-shadow:0 0 14px var(--sc)}
.vs-side{position:relative}.vs-side.lead::before{content:"👑";position:absolute;top:-4px;right:8px;font-size:20px;filter:drop-shadow(0 2px 4px #0008)}
.vs-name b{white-space:nowrap}
.vs-side.bump{animation:vsBump .6s ease-out}
@keyframes vsBump{0%{transform:scale(1)}35%{transform:scale(1.06)}100%{transform:scale(1)}}
.vs-mid{flex:none;align-self:center;padding-bottom:40px}
.vs-badge{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;font-weight:900;font-style:italic;font-size:17px;color:#1b1300;
  background:conic-gradient(from 200deg,#ff7a45,#ffcf4a,#5ee7df,#a48bff,#ff7a45);box-shadow:0 0 18px #ffcf4a66}
.tug{position:relative;display:flex;height:12px;margin:10px 4px 6px;border-radius:999px;overflow:visible;background:#0006}
.tug i{display:block;height:100%;transition:width 1s cubic-bezier(.2,.8,.2,1)}
.tug-e{background:linear-gradient(90deg,#ff5a36,#ffcf4a);border-radius:999px 0 0 999px}
.tug-w{background:linear-gradient(90deg,#a48bff,#5ee7df);border-radius:0 999px 999px 0}
.tug-knot{position:absolute;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:#fff;border:3px solid #1b1300;box-shadow:0 0 12px #fff8;transition:left 1s cubic-bezier(.2,.8,.2,1)}
.tug-knot::after{content:"🪢";position:absolute;inset:0;display:grid;place-items:center;font-size:11px}
.vs-foot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.vs-foot #vsLead{color:#fff;font-weight:800}
/* English UI leads with the Genie (West on the left) */
html[lang=en] .vs-row{flex-direction:row-reverse}
html[lang=en] .tug{flex-direction:row-reverse}
html[lang=en] .tug-e{border-radius:0 999px 999px 0;background:linear-gradient(270deg,#ff5a36,#ffcf4a)}
html[lang=en] .tug-w{border-radius:999px 0 0 999px;background:linear-gradient(270deg,#a48bff,#5ee7df)}
/* speech bubble: whichever persona is talking */
.versus .bubble{top:2px;transform:translateX(-50%);max-width:min(360px,92%)}
.versus .bubble.from-east::after{left:24%}
.versus .bubble.from-west::after{left:76%}
html[lang=en] .versus .bubble.from-east::after{left:76%}
html[lang=en] .versus .bubble.from-west::after{left:24%}
.versus .bubble.from-west{background:#eafffd}
.versus .bubble.from-west::after{border-top-color:#eafffd}
/* genie float */
.gn-img{animation:gnFloat 3.2s ease-in-out infinite}
@keyframes gnFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
/* wall legend + side tags */
.sw-east{background:#ff7a45!important}.sw-west{background:#5ee7df!important}
.tag.side-east{background:#ff7a4522;color:#ffb08f;border:1px solid #ff7a4555}
.tag.side-west{background:#5ee7df22;color:#9ff5ef;border:1px solid #5ee7df55}
/* celebration: Genie side */
.gseal.west{background:radial-gradient(circle at 35% 30%,#fff7c8,#ffcf4a 38%,#7c5cff 100%)!important;box-shadow:0 0 0 4px #5ee7df99,0 0 40px #7c5cffaa!important}
.celebrate.side-west .cel-monk img{filter:drop-shadow(0 0 18px #5ee7dfaa)}
.cel-monk .cel-av2{position:absolute;width:46%;right:-34%;bottom:0;opacity:.95}
.cel-monk{position:relative}
@media (min-width:720px){
  .versus{max-width:none;margin-top:0}
  .vs-av{width:150px}
  .vs-score b{font-size:30px}
}
@media (max-width:719px){
  .versus{padding:10px 10px 10px;margin-top:4px}
  .vs-stage{padding-top:50px}
  .vs-av{width:80px}
  .vs-name b{font-size:13px}.vs-name small{font-size:10.5px}
  .vs-score b{font-size:21px}.vs-score span{font-size:11px}
  .vs-mid{padding-bottom:30px}
  .tug{margin:8px 4px 5px}
  .vs-badge{width:36px;height:36px;font-size:14px}
  .versus .bubble{font-size:13px}
}
@media (prefers-reduced-motion:reduce){.gn-img,.vs-side.bump{animation:none}.tug i,.tug-knot{transition:none}}
@media (max-width:719px){#loopList > :nth-child(n+3){display:none}}

/* ===== v6 · multiple walls + bigger blocks + headcount scoring ===== */
.vs-score b{font-size:34px}
.vs-score .vs-unit{font-size:12.5px;color:var(--sg);font-weight:800;margin-top:-2px}
.vs-score .vs-money{font-size:11px;color:var(--muted);opacity:.85;margin-top:2px;font-variant-numeric:tabular-nums}
.vs-score .vs-money span{font-size:inherit;color:inherit}
.vs-rule{flex-basis:100%;text-align:center;font-size:11px;color:var(--muted);opacity:.8}
@media (min-width:720px){.vs-score b{font-size:40px}}
@media (max-width:719px){.vs-score b{font-size:28px}.vs-score .vs-unit{font-size:11.5px}}
.wall-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.wall-tabs[hidden]{display:none}
.wall-tab{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 14px;border-radius:12px;border:1px solid var(--line);background:#ffffff08;color:var(--text);font:inherit;cursor:pointer;text-align:left}
.wall-tab b{font-size:15px}.wall-tab small{font-size:11.5px;color:var(--muted)}
.wall-tab.full small{color:#ffcf4a}
.wall-tab.full b::after{content:" ✅";font-size:12px}
.wall-tab.open b::after{content:" 🆕";font-size:12px}
.wall-tab[aria-selected=true]{border-color:var(--gold);background:#ffcf4a1a;box-shadow:0 0 0 1px #ffcf4a55,0 0 18px #ffcf4a33}
.amounts{flex-wrap:wrap}
.amt-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.amt-btn .amt-tier{font-size:11px;font-weight:800;letter-spacing:.02em;color:#1b1300;background:#ffcf4a;border-radius:6px;padding:0 6px;line-height:1.5}
.amt-btn.amt-3{border-color:#ffcf4a88;box-shadow:inset 0 0 0 1px #ffcf4a33,0 0 14px #ffcf4a22}
.amt-btn.amt-2 .amt-tier{background:#ff9f43}
html[lang=en] .amt-btn.amt-2 .amt-tier,.pane-intl .amt-btn.amt-2 .amt-tier{background:#ff9f43}
.tier-hint{margin:8px 0 10px;font-size:12.5px;color:var(--muted);line-height:1.5}
.sw-big{background:transparent!important;border:2px solid #ffcf4a;box-shadow:0 0 6px #ffcf4a99}
.tag.block{background:#ffcf4a22;color:#ffd970;border:1px solid #ffcf4a66}


/* ===== v7 · single persona hero (no East-vs-West PK) ===== */
.hero{display:grid;gap:12px;justify-items:center;text-align:center;padding:28px 0 24px}
.hero-av{position:relative;width:min(200px,52vw);margin-top:52px}
.hero-av .jg,.hero-av .jg-wrap,.hero-av svg{width:100%;height:auto;display:block;overflow:visible}
.hero-av .bubble{position:absolute;left:50%;top:-6px;transform:translate(-50%,-100%);width:max-content;max-width:min(280px,82vw);background:#fff;color:#1b1300;font-weight:700;font-size:14px;line-height:1.35;padding:8px 12px;border-radius:14px;box-shadow:0 8px 24px #0006;z-index:2;text-align:center}
.hero-av .bubble::after{content:"";position:absolute;left:50%;bottom:-7px;margin-left:-7px;border:7px solid transparent;border-bottom:0;border-top-color:#fff}
.hero-txt{max-width:640px}
.hero .sub{max-width:36em;margin-left:auto;margin-right:auto}
.versus{display:none!important} /* PK removed */
@media (min-width:720px){
  .hero{grid-template-columns:minmax(180px,240px) 1fr;align-items:center;text-align:left;gap:40px;padding:56px 0 36px;justify-items:stretch}
  .hero-av{width:100%;max-width:240px;justify-self:start;margin-top:48px}
  .hero-txt{text-align:left;max-width:none}
  .hero .sub{margin-left:0}
  .hero .stats{margin-left:0}
  .hero .cta-row{justify-content:flex-start}
}
@media (max-width:719px){
  .hero-av{width:min(140px,38vw);margin-top:44px}
  .hero-av .bubble{font-size:13px;max-width:min(260px,78vw)}
  .hero h1{font-size:clamp(26px,7vw,34px)}
}

/* v8 · tip primary in hero loop card */
.loop-acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}
.loop-acts .btn-gold{flex:1 1 auto;min-width:min(100%,200px);justify-content:center}
.loop-acts .btn-ghost{font-weight:700}
.loop-acts .loop-more{margin-left:auto;font-size:13px;color:var(--muted)}
@media (max-width:719px){
  .loop-acts .btn-gold{flex:1 1 100%}
  .loop-acts .loop-more{margin-left:0}
}

/* v10 · no countdown */
.countdown,.day-chip{display:none!important}

/* v11 · grander Jigong + tip-primary stack; stages gone */
.hero-av{width:min(280px,72vw)!important;margin-top:56px!important}
.hero-av .jg-wrap,.hero-av svg{width:100%;filter:drop-shadow(0 18px 40px #0008)}
@media (min-width:720px){
  .hero{grid-template-columns:minmax(240px,320px) 1fr!important;gap:28px 48px!important}
  .hero-av{width:100%!important;max-width:320px!important;margin-top:40px!important}
}
@media (max-width:719px){
  .hero-av{width:min(220px,68vw)!important;margin-top:48px!important}
}
.loop-acts{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important}
.loop-acts #loopTip{width:100%;justify-content:center}
.loop-sec{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.loop-sec .btn-sm{font-size:13px;padding:6px 12px}
.stages,.stages-h{display:none!important}

/* v12 · tip on top of loop card; dotted pitch CTA */
.loop-tip-top{width:100%;justify-content:center;margin:0 0 12px;font-size:18px;padding:14px 18px}
.loop-acts{flex-direction:row!important;flex-wrap:wrap;align-items:center;gap:10px 12px!important}
.btn-dots,.btn-pitch.btn-dots{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font-weight:900;font-size:15px;padding:10px 16px;border-radius:999px;
  color:#1b1300!important;border:2px dashed #ffcf4a!important;
  background:
    radial-gradient(circle at 20% 30%, #ffcf4acc 0 2.5px, transparent 3px),
    radial-gradient(circle at 70% 25%, #ff9f43cc 0 2px, transparent 2.5px),
    radial-gradient(circle at 40% 75%, #ffcf4aaa 0 2.2px, transparent 2.8px),
    radial-gradient(circle at 85% 70%, #ffe08a 0 2px, transparent 2.5px),
    radial-gradient(circle at 10% 80%, #ffb347aa 0 1.8px, transparent 2.2px),
    linear-gradient(135deg, #fff3c4, #ffd970)!important;
  background-size:18px 18px, 22px 22px, 16px 16px, 20px 20px, 14px 14px, auto!important;
  box-shadow:0 6px 18px #ffcf4a44, inset 0 0 0 1px #fff8;
  animation:dotsPulse 2.4s ease-in-out infinite;
}
.btn-dots:hover{filter:brightness(1.05);transform:translateY(-1px)}
@keyframes dotsPulse{0%,100%{box-shadow:0 6px 18px #ffcf4a44}50%{box-shadow:0 8px 24px #ffcf4a88}}
@media (prefers-reduced-motion:reduce){.btn-dots{animation:none}}
@media (max-width:719px){
  .loop-tip-top{font-size:17px;padding:12px 14px}
  .btn-dots{flex:1 1 auto;text-align:center}
}

/* v13 · tip-only: no wall / pitch */
#wall,#ideas,#results,#free,.wall-tabs,.loop{display:none!important}
.hero-tip-box{margin:14px 0 8px}
.hero-tip-box .loop-tip-top{width:100%;justify-content:center;margin:0}
.hero-tip-note{margin:8px 0 0;text-align:center;font-size:12px;color:var(--muted)}
.layout{display:block}
.feed-card{max-width:none;width:100%;margin:0 0 18px}
