/* 从众帮 · 第四版视觉：沉浸光感 · 液态玻璃 · 一屏式 */
:root {
  --bg: #f3eee5;
  --bg-2: #e9e2d4;
  --glass: linear-gradient(165deg, rgba(255, 254, 251, .74), rgba(255, 250, 243, .52));
  --glass-2: rgba(255, 252, 246, .7);
  --ink: #1d1c18;
  --ink-2: #4c483f;
  --muted: #8f897c;
  --line: rgba(70, 55, 30, .12);
  --pink: #e48c84;
  --pink-2: #f6ddd6;
  --pink-ink: #a14f48;
  --sage: #5b7a5c;
  --sage-2: #dfe7d8;
  --gold: #d29b45;
  --danger: #b3473d;
  --display: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;
  --hand: "LXGW WenKai Lite", "Kaiti SC", "STKaiti", "KaiTi", serif;
  --latin: "Instrument Serif", "Iowan Old Style", Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
  --ease: cubic-bezier(.22, .8, .24, 1);
  --spring: cubic-bezier(.34, 1.45, .5, 1);
  --soft: cubic-bezier(.45, 0, .2, 1);
  --r: 28px;
  --gap: 14px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; background: var(--bg); }
body { margin: 0; min-height: 100svh; overflow-x: clip; background: transparent; color: var(--ink); font: 15.5px/1.7 var(--sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
a { color: inherit; text-decoration: none; }
img, video, canvas { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3 { font-family: var(--display); font-weight: 600; letter-spacing: .02em; line-height: 1.25; margin: 0; }
p { margin: 0; }
:focus-visible { outline: 2px solid var(--sage); outline-offset: 3px; border-radius: 8px; }
::selection { background: var(--pink-2); color: var(--ink); }
[hidden] { display: none !important; }
::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-thumb { background: rgba(70, 55, 30, .18); border-radius: 8px; } ::-webkit-scrollbar-track { background: transparent; }

/* ---------- 光场：WebGL 背景 + 纸纹 ---------- */
.lightfield { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: -1; pointer-events: none; }
.aura { position: fixed; inset: 0; z-index: -2; pointer-events: none; overflow: hidden; background: var(--bg); }
.aura i { position: absolute; width: 70vmax; height: 70vmax; border-radius: 50%; opacity: .6; animation: drift 38s ease-in-out infinite alternate; }
.aura i:nth-child(1) { left: -25vmax; top: -30vmax; background: radial-gradient(circle, rgba(244, 190, 178, .8), transparent 62%); }
.aura i:nth-child(2) { right: -30vmax; top: 10vh; background: radial-gradient(circle, rgba(190, 212, 182, .75), transparent 62%); animation-duration: 46s; animation-delay: -12s; }
.aura i:nth-child(3) { left: 20vw; bottom: -40vmax; background: radial-gradient(circle, rgba(242, 210, 150, .6), transparent 62%); animation-duration: 52s; animation-delay: -20s; }
@keyframes drift { to { transform: translate(8vmax, 6vmax) scale(1.12); } }
html.lf .aura i { display: none; }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 95; opacity: .035; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* 指针光、液态透镜、点击光环 */
.glow { position: fixed; left: 0; top: 0; width: 720px; height: 720px; margin: -360px 0 0 -360px; border-radius: 50%; pointer-events: none; z-index: 80; background: radial-gradient(circle, rgba(255, 244, 222, .3), rgba(255, 236, 210, .08) 40%, transparent 66%); opacity: 0; transition: opacity .6s; will-change: translate; }
.glow.on { opacity: 1; }
.lens { position: fixed; left: 0; top: 0; width: 96px; height: 96px; margin: -48px 0 0 -48px; border-radius: 50%; pointer-events: none; z-index: 92; opacity: 0; scale: .42;
  backdrop-filter: blur(.4px) saturate(1.8) brightness(1.05); -webkit-backdrop-filter: blur(.4px) saturate(1.8) brightness(1.05);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .8), inset 0 10px 18px rgba(255, 255, 255, .4), inset 0 -10px 18px rgba(120, 95, 60, .14), 0 12px 28px -12px rgba(60, 45, 25, .45);
  background: radial-gradient(circle at 30% 22%, rgba(255, 255, 255, .6), rgba(255, 255, 255, 0) 26%);
  transition: opacity .35s, scale .5s var(--spring); will-change: translate; }
.lens.on { opacity: 1; } .lens.hot { scale: .8; } .lens.press { scale: .3; transition-duration: .12s; }
.lens.liquid { backdrop-filter: url(#lens-warp) saturate(1.5); -webkit-backdrop-filter: url(#lens-warp) saturate(1.5); }
.fx-canvas { position: fixed; inset: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 91; }
@media (hover: none) { .glow, .lens { display: none; } }

/* ---------- 液态玻璃 ---------- */
.glass, .tile { position: relative; background: var(--glass); background-color: transparent; border-radius: var(--r);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 -1px 0 rgba(255, 255, 255, .35), inset 0 0 0 1px rgba(255, 255, 255, .28), 0 1px 2px rgba(60, 40, 20, .06), 0 30px 70px -44px rgba(70, 45, 20, .55); }
.glass { padding: 24px; }
/* 边缘高光：随光源（指针 / 手机倾斜）沿着玻璃边缘流动 */
[data-light]::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.4px; pointer-events: none; z-index: 3;
  background: radial-gradient(420px circle at var(--gx, 30vw) var(--gy, 10vh), rgba(255, 255, 255, 1), rgba(255, 255, 255, .5) 26%, rgba(255, 255, 255, .1) 55%, rgba(255, 255, 255, .06) 70%) fixed;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
[data-light]::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 0;
  background: radial-gradient(560px circle at var(--gx, 30vw) var(--gy, 10vh), rgba(255, 249, 238, .42), rgba(255, 244, 228, .08) 40%, transparent 62%) fixed; }
[data-light] > * { position: relative; z-index: 1; }

/* ---------- 应用骨架：一屏 ---------- */
body.app { height: 100svh; overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr); }
.top { position: relative; z-index: 50; padding: 14px 18px 0; view-transition-name: top; }
body:not(.app) .top { position: sticky; top: 0; padding-bottom: 6px; }
.stage { min-height: 0; width: 100%; max-width: 1520px; margin: 0 auto; padding: 14px 18px 18px; }
body:not(.app) .stage { max-width: 1180px; padding: 30px 22px 90px; }
.bar { max-width: 1520px; margin: auto; display: flex; align-items: center; gap: 18px; padding: 7px 8px 7px 18px; border-radius: 99px; position: relative;
  background: rgba(255, 252, 246, .8);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 0 0 1px rgba(255, 255, 255, .35), 0 18px 40px -28px rgba(60, 40, 20, .5); }
body:not(.app) .bar { max-width: 1180px; }
.logo { display: flex; align-items: center; gap: 8px; flex: none; }
.mark { width: 38px; height: 38px; object-fit: contain; filter: drop-shadow(0 3px 6px rgba(60, 40, 20, .22)); transition: transform .7s var(--spring); }
.logo:hover .mark { transform: rotate(-14deg) scale(1.1); }

.word { font-family: var(--display); font-weight: 900; font-size: 20px; letter-spacing: .14em; }
.nav { position: relative; display: flex; gap: 2px; margin-left: auto; }
.nav a { position: relative; z-index: 1; padding: 7px 15px; border-radius: 99px; color: var(--ink-2); font-size: 15px; transition: color .3s; white-space: nowrap; }
.nav a:hover, .nav a[aria-current] { color: var(--ink); } .nav a[aria-current] { font-weight: 600; }
html:not(.js) .nav a[aria-current] { background: #fff; }
.nav-pill { position: absolute; left: 0; top: 0; height: 100%; border-radius: 99px; background: rgba(255, 255, 255, .88); box-shadow: 0 4px 14px -6px rgba(60, 40, 20, .35), inset 0 1px 0 #fff, inset 0 -1px 0 rgba(200, 180, 150, .25); opacity: 0; transition: transform .6s var(--spring), width .6s var(--spring), opacity .3s; }
.who { display: flex; align-items: center; gap: 8px; flex: none; }
.chip-btn { font-size: 14px; padding: 7px 16px; border-radius: 99px; background: rgba(223, 231, 216, .9); color: var(--sage); font-weight: 600; transition: transform .35s var(--spring); }
.chip-btn.dark { background: var(--ink); color: var(--bg); }
.chip-btn:hover { transform: translateY(-1px) scale(1.05); }
.me { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(140deg, #fde6e0, #efbfb6); color: var(--pink-ink); font-family: var(--display); font-weight: 900; font-size: 16px; box-shadow: inset 0 1px 0 #fff, 0 6px 14px -6px rgba(161, 79, 72, .5); transition: transform .4s var(--spring); }
.me:hover { transform: scale(1.1) rotate(-6deg); }

/* ---------- 通用 ---------- */
.ph-head { display: flex; align-items: flex-end; gap: 14px; margin-bottom: 14px; flex-wrap: wrap; }
.ph-head h1 { font-size: clamp(30px, 3vw, 44px); font-weight: 900; letter-spacing: .06em; line-height: 1.1; }
.ph-head .sub { margin-top: 4px; font-family: var(--hand); font-size: 15px; color: var(--muted); }
.head-tools { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.ph-head > .btn { margin-left: auto; }
.page-head { padding: 10px 0 26px; }
.page-head h1 { font-size: clamp(38px, 5vw, 64px); font-weight: 900; letter-spacing: .06em; line-height: 1.1; }
.page-head .sub { margin-top: 8px; font-family: var(--hand); font-size: 18px; color: var(--ink-2); }
.panel-scroll { min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.empty { color: var(--muted); padding: 20px 0; font-family: var(--hand); font-size: 16px; }
.muted { color: var(--muted); } .fine { font-size: 12.5px; color: var(--muted); } .center { text-align: center; }
.tag { display: inline-block; font-size: 12px; color: var(--sage); background: var(--sage-2); padding: 0 10px; border-radius: 99px; white-space: nowrap; line-height: 1.9; }
.eyebrow { font-family: var(--latin); font-style: italic; font-size: 18px; color: var(--pink); }
.row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; } .row.between { justify-content: space-between; }
.row-end { display: flex; gap: 10px; justify-content: flex-end; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.num { font-family: var(--latin); font-weight: 400; }
.link { color: var(--sage); font-size: 14px; }
.back { display: inline-block; color: var(--muted); font-size: 14px; margin-bottom: 8px; transition: color .2s, transform .3s var(--spring); }
.back:hover { color: var(--ink); transform: translateX(-3px); }
.lock-ico { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.lockline { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 99px; background: rgba(255, 255, 255, .6); color: var(--ink-2); font-size: 14px; box-shadow: inset 0 1px 0 #fff; transition: background .3s, transform .4s var(--spring); }
.lockline:hover { background: #fff; transform: translateY(-1px); }
.lockline .lock-ico { width: 16px; height: 16px; }

/* 逐字浮现 / 滚动浮现 */
.js [data-split] { visibility: hidden; } .js [data-split].is-split { visibility: visible; }
.ch { display: inline-block; opacity: 0; transform: translateY(.42em) rotate(5deg) scale(.92); filter: blur(10px); animation: ch-in 1s var(--ease) forwards; animation-delay: calc(var(--i) * 65ms + 60ms); }
@keyframes ch-in { to { opacity: 1; transform: none; filter: blur(0); } }
.js [data-rise] { opacity: 0; transform: translateY(18px) scale(.985); filter: blur(8px); animation: rise-in .9s var(--ease) forwards; animation-delay: calc(var(--d, 0) * 70ms + 80ms); }
@keyframes rise-in { to { opacity: 1; transform: none; filter: none; } }
[data-tilt] { transition: transform .8s var(--spring), box-shadow .4s; }
.tilting { transform: perspective(1000px) rotateX(var(--rx, 0)) rotateY(var(--ry, 0)) translateY(-3px) !important; transition: transform .15s linear !important; }

/* ---------- 按钮 / 表单 ---------- */
.btn { position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 99px; background: var(--ink); color: var(--bg); padding: 10px 22px; font-size: 15px; white-space: nowrap; transition: transform .4s var(--spring), box-shadow .3s, opacity .2s; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 10px 22px -14px rgba(20, 15, 5, .7); }
.btn::before { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .3) 50%, transparent 70%); transform: translateX(-120%); transition: transform .9s var(--ease); }
.btn:hover::before { transform: translateX(120%); }
.btn:active { transform: scale(.94); }
.btn:disabled { opacity: .45; pointer-events: none; }
.btn.sm { padding: 6px 15px; font-size: 14px; }
.btn.ghost { background: rgba(255, 255, 255, .6); color: var(--ink); box-shadow: inset 0 1px 0 #fff, inset 0 0 0 1px var(--line); }
.btn.danger { color: var(--danger); }
.linkish { border: 0; background: none; color: var(--muted); font-size: 13px; padding: 0; }
.linkish:hover { color: var(--ink); }
.form { display: grid; gap: 14px; align-content: start; }
.form h2 { font-size: 19px; }
.form label { display: grid; gap: 6px; font-size: 13.5px; color: var(--ink-2); }
.form label small { color: var(--muted); }
.form > .btn, .form > .row { justify-self: start; }
input, select, textarea { width: 100%; border: 0; background: rgba(255, 255, 255, .66); border-radius: 14px; padding: 11px 14px; font-size: 16px; box-shadow: inset 0 0 0 1px var(--line), inset 0 2px 4px rgba(60, 40, 20, .04); transition: box-shadow .3s, background .3s; }
input:focus, select:focus, textarea:focus { outline: none; background: #fff; box-shadow: inset 0 0 0 1.5px rgba(91, 122, 92, .55), 0 0 0 5px rgba(91, 122, 92, .12); }
textarea { resize: none; line-height: 1.75; }
.narrow { max-width: 720px; }
.seg { display: inline-flex; padding: 4px; background: rgba(233, 226, 212, .7); border-radius: 99px; gap: 2px; box-shadow: inset 0 1px 2px rgba(60, 40, 20, .08); }
.seg > * { border: 0; background: transparent; border-radius: 99px; padding: 6px 15px; font-size: 14px; color: var(--ink-2); display: inline-flex; align-items: center; gap: 6px; transition: background .35s, color .25s, box-shadow .35s; }
.seg > [aria-selected="true"] { background: #fff; color: var(--ink); font-weight: 600; box-shadow: 0 3px 10px -4px rgba(40, 30, 20, .35), inset 0 1px 0 #fff; }
.seg small { font-family: var(--latin); font-size: 14px; color: var(--muted); }
.seg img { width: 24px; height: 20px; object-fit: contain; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chips button { border: 0; background: rgba(255, 255, 255, .6); box-shadow: inset 0 0 0 1px var(--line); border-radius: 99px; padding: 4px 12px; font-size: 13px; color: var(--ink-2); transition: background .2s, transform .35s var(--spring); }
.chips button:hover { background: #fff; transform: translateY(-1px); }
.pill { font-size: 12px; padding: 1px 10px; border-radius: 99px; background: var(--bg-2); color: var(--ink-2); }
.pill.success { background: var(--sage-2); color: var(--sage); } .pill.failure { background: var(--pink-2); color: var(--pink-ink); }
.x { border: 0; background: none; color: var(--muted); font-size: 18px; line-height: 1; padding: 3px 7px; border-radius: 8px; }
.x:hover { color: var(--danger); background: rgba(255, 255, 255, .7); }
.toast { position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 24px) scale(.96); background: rgba(29, 28, 24, .92); backdrop-filter: blur(10px); color: var(--bg); padding: 11px 22px; border-radius: 99px; font-size: 14px; opacity: 0; pointer-events: none; transition: opacity .3s, transform .55s var(--spring); z-index: 99; max-width: calc(100vw - 32px); }
.toast.on { opacity: 1; transform: translate(-50%, 0) scale(1); } .toast.err { background: var(--danger); }
.dlg { border: 0; border-radius: 26px; padding: 26px; width: min(460px, calc(100vw - 32px)); background: #fffdf8; box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .4); }
.dlg::backdrop { background: rgba(30, 26, 18, .3); backdrop-filter: blur(6px); }

/* ---------- 首页便当格 ---------- */
.bento { height: 100%; display: grid; gap: var(--gap); grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1.12fr) minmax(0, 1fr); grid-template-areas: "hero fortune pig" "hero rec stack"; }
.tile { display: flex; flex-direction: column; gap: 10px; padding: 20px 22px; overflow: hidden; min-height: 0; }
a.tile { transition: transform .6s var(--spring), box-shadow .4s; }
a.tile:hover { transform: translateY(-4px) scale(1.008); }
.bento > * { animation: tile-in .9s var(--ease) both; }
.bento > :nth-child(2) { animation-delay: .08s; } .bento > :nth-child(3) { animation-delay: .14s; } .bento > :nth-child(4) { animation-delay: .2s; } .bento > :nth-child(5) { animation-delay: .26s; }
@keyframes tile-in { from { opacity: 0; transform: translateY(24px) scale(.965); } }
.t-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.tk { font-family: var(--display); font-weight: 900; font-size: 19px; letter-spacing: .1em; }
.t-head em { font-family: var(--latin); font-size: 15px; color: var(--muted); }
.b-hero { grid-area: hero; padding: 0; justify-content: space-between; container-type: inline-size; }
.hero-copy { padding: 28px 32px 0; }
.kicker { display: inline-flex; align-items: center; gap: 12px; font-size: 12.5px; letter-spacing: .3em; color: var(--ink-2); }
.kicker em { font-family: var(--latin); font-size: 18px; letter-spacing: .02em; color: var(--pink); }
.kicker span { width: 40px; height: 1px; background: currentColor; opacity: .4; }
.display { font-family: var(--display); font-weight: 900; font-size: clamp(48px, 13.5cqw, 128px); letter-spacing: .08em; white-space: nowrap; line-height: 1; margin: 10px 0 10px; color: #26221c; text-shadow: 0 1px 0 rgba(255, 255, 255, .6); }
.lede { font-family: var(--hand); font-size: clamp(16px, 1.4vw, 20px); color: var(--ink-2); letter-spacing: .06em; }
.b-hero .hero-art { position: absolute; left: 4%; right: 4%; bottom: 66px; width: 92%; height: auto; aspect-ratio: 5 / 2; z-index: 0 !important; }
img.hero-art { mix-blend-mode: multiply; }
.gl-src { display: none !important; }
.hero-bubble { position: absolute; z-index: 4 !important; left: 21%; bottom: calc(64px + 30%); max-width: 300px; background: rgba(255, 255, 255, .9); font-family: var(--hand); font-size: 16px; line-height: 1.5; padding: 9px 15px 10px; border-radius: 18px 18px 18px 4px; box-shadow: 0 16px 36px -14px rgba(70, 40, 20, .45); transform: translateY(10px) scale(.7) rotate(-4deg); transform-origin: 0 100%; opacity: 0; transition: opacity .5s, transform .9s var(--spring); }
.hero-bubble.on { opacity: 1; transform: none; }
.hero-bubble::before { content: "胡猪说"; display: block; font-family: var(--sans); font-size: 11px; color: var(--pink); letter-spacing: .14em; }
.ask-bar { position: relative; z-index: 5 !important; margin: 0 14px 14px; display: flex; align-items: center; gap: 10px; padding: 7px 7px 7px 10px; border-radius: 99px; background: rgba(255, 255, 255, .62); box-shadow: inset 0 1px 0 #fff, 0 12px 30px -18px rgba(60, 40, 20, .5); }
.ask-bar img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; flex: none; background: var(--pink-2); }
.ask-bar input { background: transparent; box-shadow: none; padding: 6px 4px; }
.ask-bar input:focus { background: transparent; box-shadow: none; }
.ask-bar.guest { justify-content: flex-end; padding-left: 20px; font-size: 14px; color: var(--ink-2); } .ask-bar.guest span { margin-right: auto; }
.ask-out { position: absolute; left: 10px; right: 10px; bottom: calc(100% + 10px); padding: 14px 18px; border-radius: 20px; background: rgba(255, 255, 255, .92); font-family: var(--hand); font-size: 16.5px; line-height: 1.6; box-shadow: 0 20px 40px -20px rgba(60, 40, 20, .5); animation: pop .6s var(--spring); }
.ask-out a { color: var(--sage); font-family: var(--sans); font-size: 13px; margin-left: 8px; }
.b-fortune { grid-area: fortune; }
.b-pig { grid-area: pig; }
.b-rec { grid-area: rec; }
.b-stack { grid-area: stack; display: grid; gap: var(--gap); grid-auto-rows: minmax(0, 1fr); min-height: 0; }
.fortune-body { flex: 1; min-height: 0; display: grid; justify-items: center; align-content: center; gap: 12px; text-align: center; }
.tube { position: relative; margin-top: 34px; width: 70px; height: 104px; border-radius: 12px 12px 18px 18px; background: linear-gradient(90deg, #b77a43, #d9a66a 40%, #c18752 70%, #9c6436); box-shadow: inset 0 -10px 0 rgba(0, 0, 0, .12), inset 6px 0 10px rgba(255, 240, 210, .3), 0 18px 26px -14px rgba(90, 50, 20, .6); transition: transform .5s var(--spring); }
.b-fortune:hover .tube { transform: rotate(-6deg) translateY(-3px); }
.tube::before { content: "签"; position: absolute; left: 50%; top: 52%; translate: -50% -50%; width: 34px; height: 34px; border-radius: 50%; background: #c0443a; color: #fde9d8; font-family: var(--display); font-weight: 900; display: grid; place-items: center; font-size: 17px; z-index: 1; }
.tube i { position: absolute; bottom: 92%; width: 6px; height: 42px; border-radius: 3px 3px 0 0; background: linear-gradient(#ecc994, #d2a564); transform-origin: 50% 100%; }
.tube i:nth-child(1) { left: 11px; rotate: -9deg; } .tube i:nth-child(2) { left: 22px; rotate: -3deg; height: 50px; } .tube i:nth-child(3) { left: 32px; height: 46px; } .tube i:nth-child(4) { left: 43px; rotate: 4deg; height: 52px; } .tube i:nth-child(5) { left: 54px; rotate: 10deg; }
.tube.shake { animation: shake-tube .8s ease-in-out infinite; }
@keyframes shake-tube { 0%, 100% { rotate: 0deg; } 20% { rotate: -14deg; } 45% { rotate: 12deg; } 70% { rotate: -8deg; } }
.slip { position: relative; width: 100%; padding: 16px 18px 14px; border-radius: 16px; background: linear-gradient(#fffaf1, #fbf0de); box-shadow: inset 0 0 0 4px #fffaf1, inset 0 0 0 5px rgba(192, 68, 58, .25), 0 14px 30px -20px rgba(120, 60, 30, .5); text-align: left; animation: unroll 1s var(--spring) both; transform-origin: 50% 0; }
@keyframes unroll { from { opacity: 0; transform: perspective(700px) rotateX(-70deg) translateY(-20px); } }
.slip-no { font-family: var(--hand); font-size: 12.5px; color: var(--muted); }
.slip-level { position: absolute; right: 12px; top: 10px; width: 54px; height: 54px; border-radius: 50%; border: 2px solid #c0443a; color: #c0443a; display: grid; place-items: center; font-family: var(--display); font-weight: 900; font-size: 15px; rotate: -12deg; animation: stamp .6s .5s var(--spring) both; }
@keyframes stamp { from { transform: scale(2.2); opacity: 0; } }
.slip[data-level="猪大吉"] .slip-level { background: #c0443a; color: #fff3e6; font-size: 13px; }
.slip-title { font-family: var(--display); font-weight: 900; font-size: 26px; letter-spacing: .18em; margin: 4px 0 6px; }
.slip-text { font-family: var(--hand); font-size: 15.5px; line-height: 1.7; color: var(--ink-2); }
.slip-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 8px; font-size: 12.5px; color: var(--pink-ink); }
.pignow-pics { position: relative; flex: 1; min-height: 70px; }
.pignow-pics img { position: absolute; bottom: 0; height: auto; max-height: 100%; object-fit: contain; filter: drop-shadow(0 10px 8px rgba(80, 60, 20, .18)); transition: transform .9s var(--spring); }
.pn-pink { width: 34%; left: 4%; z-index: 1; } .pn-black { width: 58%; right: 2%; }
.b-pig:hover .pn-pink { transform: translateY(-12px) rotate(-6deg); } .b-pig:hover .pn-black { transform: scale(1.05) rotate(2deg); }
.pignow-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; font-size: 13.5px; color: var(--ink-2); }
.pignow-list b { color: var(--ink); margin-right: 10px; }
.chips-line { display: flex; gap: 6px; flex-wrap: wrap; } .chips-line span { font-size: 12px; padding: 2px 10px; border-radius: 99px; background: rgba(255, 255, 255, .6); color: var(--ink-2); }
.mini-rec { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; overflow: hidden; }
.mini-rec li { display: grid; grid-template-columns: 54px 1fr; gap: 10px; align-items: center; padding: 6px 4px; border-bottom: 1px solid var(--line); }
.mini-rec li > span:last-child { font-family: var(--display); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ed-date { display: flex; align-items: baseline; gap: 4px; white-space: nowrap; }
.ed-date b { font-family: var(--latin); font-weight: 400; font-size: 30px; line-height: 1; }
.ed-date small { font-size: 11.5px; color: var(--muted); }
.ghost-lines { display: grid; gap: 10px; padding: 8px 0; } .ghost-lines i { display: block; height: 12px; border-radius: 8px; background: linear-gradient(90deg, rgba(70, 55, 30, .08), rgba(70, 55, 30, .03)); } .ghost-lines i:nth-child(2) { width: 80%; } .ghost-lines i:nth-child(3) { width: 60%; }
.b-cap { flex-direction: row; align-items: center; gap: 14px; }
.b-cap p { font-size: 13.5px; color: var(--ink-2); } .b-cap .num { font-size: 30px; color: var(--ink); margin-right: 2px; }
.b-msg .q { font-family: var(--hand); font-size: 16px; line-height: 1.5; }
.b-album { flex-direction: row; align-items: baseline; gap: 10px; } .b-album .num { font-size: 34px; }
.capsule-orb { position: relative; flex: none; width: 96px; height: 96px; border-radius: 50%; background: radial-gradient(circle at 34% 28%, #fff, rgba(255, 255, 255, 0) 30%), radial-gradient(circle at 60% 70%, rgba(228, 140, 132, .6), rgba(210, 155, 69, .38) 50%, rgba(91, 122, 92, .32) 80%); box-shadow: inset 0 -12px 24px rgba(160, 90, 60, .25), inset 0 0 0 1px rgba(255, 255, 255, .7), 0 18px 34px -16px rgba(160, 90, 60, .5); animation: orb 7s ease-in-out infinite; }
.capsule-orb.sm { width: 58px; height: 58px; }
.capsule-orb span { position: absolute; inset: 20%; border-radius: 50%; background: conic-gradient(from 0deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .75), rgba(255, 255, 255, 0) 40%); filter: blur(5px); animation: spin 8s linear infinite; }
@keyframes orb { 50% { transform: translateY(-5px) scale(1.03); } }
@keyframes spin { to { rotate: 360deg; } }

/* ---------- 双栏（记录 / 留言 / 胶囊） ---------- */
.split { height: 100%; display: grid; gap: var(--gap); grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); }
.side, .reader { display: flex; flex-direction: column; min-height: 0; padding: 22px; animation: tile-in .9s var(--ease) both; }
.reader { animation-delay: .08s; }
.reader > .panel-scroll { flex: 1; padding-right: 6px; }
.rlist { list-style: none; margin: 0 -8px; padding: 0; flex: 1; }
.rl { display: grid; grid-template-columns: 58px 1fr; gap: 10px; align-items: center; padding: 11px 10px; border-radius: 16px; transition: background .35s, transform .5s var(--spring); }
.rl:hover { background: rgba(255, 255, 255, .5); transform: translateX(3px); }
.rl.on { background: rgba(255, 255, 255, .85); box-shadow: inset 0 1px 0 #fff, 0 8px 20px -14px rgba(60, 40, 20, .5); }
.rl-t { display: grid; min-width: 0; } .rl-t b { font-family: var(--display); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .rl-t small { color: var(--muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reader header { margin-bottom: 18px; }
.reader h1 { font-size: clamp(28px, 3vw, 44px); font-weight: 900; margin: 12px 0 10px; line-height: 1.2; }
.meta { color: var(--muted); font-size: 14px; display: flex; gap: 8px; }
.ai-note { display: flex; gap: 10px; align-items: center; padding: 10px 14px; margin-bottom: 18px; border-radius: 16px; background: rgba(255, 255, 255, .55); font-family: var(--hand); font-size: 15.5px; color: var(--ink-2); animation: pop .6s var(--spring); box-shadow: inset 0 1px 0 #fff; }
.ai-note img { width: 34px; height: 30px; object-fit: contain; flex: none; }
.post-body { font-family: var(--display); font-size: 17.5px; line-height: 2.05; white-space: pre-wrap; word-break: break-word; color: #2b2924; max-width: 46em; }
.post-tools { margin-top: 26px; display: flex; gap: 8px; }
.post-nav { margin-top: 34px; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); padding-top: 18px; }
.post-nav a { max-width: 48%; font-family: var(--display); transition: color .2s; } .post-nav a:hover { color: var(--pink-ink); }
.post-nav small { display: block; font-family: var(--sans); color: var(--muted); font-size: 12px; }
.post-nav .next { text-align: right; margin-left: auto; }
.only-m { display: none; }
.compose { overflow: hidden; }
.compose textarea { min-height: 120px; }
.compose-pig { position: absolute; right: -10px; bottom: -14px; width: 46%; max-width: 190px; height: auto; z-index: 0 !important; opacity: .95; filter: drop-shadow(0 12px 14px rgba(80, 50, 20, .2)); animation: breathe 5s ease-in-out infinite; transform-origin: 50% 100%; pointer-events: none; }
@keyframes breathe { 50% { transform: scale(1.02, .98); } }
.as { font-size: 14px; color: var(--ink-2); } .as b { color: var(--ink); font-family: var(--display); }
.msgs { display: grid; align-content: start; }
.msg { padding: 18px 4px 20px; border-bottom: 1px solid var(--line); }
.msg header { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ava { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(140deg, #fde6e0, #efbfb6); color: var(--pink-ink); font-family: var(--display); font-weight: 900; flex: none; }
.msg:nth-child(3n+2) .ava { background: linear-gradient(140deg, #e7eee2, #cddbc4); color: var(--sage); }
.msg:nth-child(3n) .ava { background: linear-gradient(140deg, #f3ead8, #e2cfa8); color: #7a6337; }
.msg header b { font-family: var(--display); }
.msg header time { color: var(--muted); font-size: 13px; margin-left: auto; font-family: var(--latin); font-size: 15px; }
.who-real { font-size: 12px; color: var(--sage); background: var(--sage-2); padding: 0 9px; border-radius: 99px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 50%; }
.msg-body { margin: 8px 0 0 44px; font-family: var(--hand); font-size: 17.5px; line-height: 1.7; white-space: pre-wrap; word-break: break-word; }
.pig-say { display: flex; gap: 10px; align-items: flex-end; margin: 10px 0 0 44px; }
.pig-say img { width: 40px; height: 36px; object-fit: contain; flex: none; animation: breathe 4s ease-in-out infinite; transform-origin: 50% 100%; }
.pig-say span { background: rgba(255, 255, 255, .8); box-shadow: inset 0 1px 0 #fff, 0 8px 20px -14px rgba(70, 40, 20, .5); border-radius: 16px 16px 16px 4px; padding: 7px 13px; font-family: var(--hand); font-size: 15px; }
.pig-say b { font-family: var(--sans); font-size: 11px; color: var(--pink); display: block; letter-spacing: .1em; }
.reply { margin: 10px 0 0 44px; padding: 9px 15px; background: rgba(255, 255, 255, .5); border-left: 3px solid var(--pink); border-radius: 0 14px 14px 0; position: relative; font-size: 15px; }
.reply b { font-size: 13px; color: var(--ink-2); } .reply .x { position: absolute; top: 6px; right: 6px; }
.reply-box { margin: 8px 0 0 44px; } .reply-box summary { cursor: pointer; color: var(--sage); font-size: 13px; list-style: none; } .reply-box summary::-webkit-details-marker { display: none; }
.reply-form { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; } .reply-form select { width: auto; } .reply-form input { flex: 1; min-width: 160px; }
.cap-h { font-size: 20px; font-weight: 900; margin: 0 0 14px; letter-spacing: .08em; }
.cap-h:not(:first-child) { margin-top: 30px; }
.cap-h small { font-family: var(--latin); font-weight: 400; color: var(--muted); font-size: 19px; margin-left: 6px; }
.cap-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.cap { position: relative; border-radius: 22px; background: rgba(255, 255, 255, .5); box-shadow: inset 0 1px 0 #fff, 0 14px 30px -24px rgba(60, 40, 20, .5); padding: 18px; }
.cap.sealed { display: grid; gap: 6px; text-align: center; justify-items: center; }
.cap.sealed .capsule-orb { width: 70px; height: 70px; }
.cap h3 { font-size: 16.5px; } .cap .muted { font-size: 12.5px; }
.cap-count { font-size: 12.5px; color: var(--muted); } .cap-count b { display: block; font-family: var(--latin); font-weight: 400; font-size: 38px; line-height: 1; color: var(--ink); }
.cap .x { position: absolute; top: 10px; right: 10px; }
.cap-open-list { display: grid; gap: 12px; }
.cap.opened header { display: grid; gap: 2px; margin-bottom: 10px; } .cap.opened header span { font-size: 12.5px; }
.cap-content { font-family: var(--hand); font-size: 17px; line-height: 1.8; white-space: pre-wrap; word-break: break-word; }
.cap .pig-say { margin-left: 0; }

/* ---------- 单面板（相册 / 我们） ---------- */
.panel { height: 100%; display: flex; flex-direction: column; min-height: 0; animation: tile-in .9s var(--ease) both; }
.panel > .panel-scroll { flex: 1; }
.ph { margin: 0; position: relative; border-radius: 16px; overflow: hidden; background: var(--bg-2); }
.ph-open { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.ph img { width: 100%; object-fit: cover; opacity: 0; transform: scale(1.06); filter: blur(12px); transition: opacity .8s, transform 1.2s var(--ease), filter .8s; }
.ph img.ok { opacity: 1; transform: none; filter: none; } .ph:hover img.ok { transform: scale(1.04); }
.ph figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 16px 12px; color: #fff; font-size: 13px; background: linear-gradient(transparent, rgba(0, 0, 0, .5)); pointer-events: none; opacity: 0; transition: opacity .4s; }
.ph:hover figcaption { opacity: 1; }
.masonry { columns: 4 240px; column-gap: 12px; } .masonry .ph { break-inside: avoid; margin-bottom: 12px; }
.ph-tools { position: absolute; top: 10px; right: 10px; display: flex; gap: 6px; opacity: 0; transition: opacity .25s; }
.ph:hover .ph-tools, .ph:focus-within .ph-tools, .ph-tools.static { opacity: 1; }
.ph-tools.static { position: static; padding: 0 16px 16px; }
.ph-tools button { border: 0; border-radius: 99px; padding: 4px 12px; font-size: 12px; background: rgba(255, 255, 255, .92); } .ph-tools button[data-delete] { color: var(--danger); }
@media (hover: none) { .ph-tools, .ph figcaption { opacity: 1; } }
.videos { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 16px; }
.vid { margin: 0; border-radius: 20px; overflow: hidden; background: rgba(255, 255, 255, .5); box-shadow: inset 0 1px 0 #fff; }
.vid video { width: 100%; aspect-ratio: 16 / 10; background: #1d1c19; object-fit: contain; }
.vid figcaption { padding: 14px 16px; display: grid; } .vid figcaption b { font-family: var(--display); } .vid figcaption span { font-size: 13px; color: var(--muted); }
.blank { display: grid; justify-items: center; align-content: center; gap: 14px; height: 100%; padding: 30px 0; color: var(--muted); font-family: var(--hand); font-size: 17px; }
.blank img { height: auto; animation: breathe 5s ease-in-out infinite; transform-origin: 50% 100%; }
.lb { position: fixed; inset: 0; z-index: 97; background: rgba(18, 16, 13, .88); backdrop-filter: blur(14px); display: grid; grid-template-rows: 1fr auto; opacity: 0; transition: opacity .35s; }
.lb.on { opacity: 1; }
.lb-stage { display: grid; place-items: center; padding: 60px 70px 8px; min-height: 0; }
.lb-stage img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; box-shadow: 0 40px 80px rgba(0, 0, 0, .5); animation: lb-in .7s var(--spring); }
@keyframes lb-in { from { transform: scale(.88); opacity: 0; } }
.lb-cap { color: #ece7dc; text-align: center; padding: 10px 24px 28px; font-size: 14px; min-height: 64px; } .lb-cap b { font-family: var(--display); font-size: 18px; display: block; } .lb-cap span { color: #a39d90; }
.lb button { position: absolute; border: 0; background: rgba(255, 255, 255, .1); color: #fff; width: 48px; height: 48px; border-radius: 50%; font-size: 22px; display: grid; place-items: center; }
.lb-x { top: 16px; right: 16px; } .lb-prev { left: 16px; top: 50%; translate: 0 -50%; } .lb-next { right: 16px; top: 50%; translate: 0 -50%; }
.lb-count { position: absolute; top: 26px; left: 26px; color: #a39d90; font-family: var(--latin); font-size: 16px; }
.about-text { font-family: var(--hand); font-size: clamp(18px, 1.7vw, 23px); line-height: 1.8; max-width: 52em; margin-bottom: 18px; }
.people { flex: 1; min-height: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.person { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 20px; border-radius: 24px; background: rgba(255, 255, 255, .45); box-shadow: inset 0 1px 0 #fff, inset 0 0 0 1px rgba(255, 255, 255, .3), 0 20px 40px -30px rgba(60, 40, 20, .5); min-height: 0; overflow: hidden; animation: tile-in .9s var(--ease) both; }
.person:nth-child(2) { animation-delay: .06s; } .person:nth-child(3) { animation-delay: .12s; } .person:nth-child(4) { animation-delay: .18s; } .person:nth-child(5) { animation-delay: .24s; }
.person-no { font-family: var(--latin); font-style: italic; font-size: 17px; color: var(--muted); }
.person-ava { width: 70px; height: 70px; border-radius: 50%; display: grid; place-items: center; font-size: 36px; margin: 4px 0 8px; background: radial-gradient(circle at 32% 28%, #fff, rgba(255, 255, 255, 0) 40%), linear-gradient(140deg, #f4ece0, #e3d7c3); box-shadow: inset 0 -6px 14px rgba(120, 90, 50, .14), 0 12px 24px -14px rgba(90, 60, 30, .5); transition: transform .7s var(--spring); }
.person:hover .person-ava { transform: rotate(-12deg) scale(1.1); }
.person h2 { font-size: 20px; font-weight: 900; }
.person-tag { color: var(--sage); font-size: 13.5px; }
.person-bio { color: var(--ink-2); font-family: var(--hand); font-size: 15.5px; }
.impress { margin-top: auto; display: flex; gap: 8px; align-items: flex-end; padding-top: 10px; font-family: var(--hand); font-size: 14px; color: var(--ink-2); }
.impress img { width: 34px; height: 36px; object-fit: contain; flex: none; }

/* ---------- 锁屏 / 登录 ---------- */
.locked, .auth { height: 100%; display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 440px); gap: 40px; align-items: center; max-width: 1180px; margin: 0 auto; }
.locked-art, .auth-art { display: grid; justify-items: center; gap: 14px; }
.locked-art img, .auth-art img { width: min(560px, 100%); height: auto; filter: drop-shadow(0 30px 30px rgba(80, 50, 20, .2)); animation: breathe 6s ease-in-out infinite; transform-origin: 50% 100%; }
.auth-art p { font-family: var(--hand); font-size: 22px; color: var(--ink-2); letter-spacing: .1em; }
.locked-card { display: grid; gap: 12px; justify-items: start; padding: 34px; animation: tile-in .9s var(--ease) both; }
.locked-card .lock-ico { width: 34px; height: 34px; color: var(--pink-ink); }
.locked-card h1 { font-size: clamp(36px, 4vw, 56px); font-weight: 900; letter-spacing: .06em; }
.locked-card .lede { font-size: 19px; }
.locked-counts { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 6px 0 10px; color: var(--ink-2); font-size: 13.5px; }
.locked-counts b { font-family: var(--latin); font-weight: 400; font-size: 26px; margin-right: 3px; color: var(--ink); }
.auth-card { display: grid; gap: 16px; padding: 30px; animation: tile-in .9s var(--ease) both; }
.auth-card h1 { font-size: 30px; font-weight: 900; }
.auth-tabs, .via { justify-self: center; }
.code-row { display: flex; gap: 8px; } .code-row input { flex: 1; min-width: 0; } .code-row .btn { flex: none; min-width: 90px; }
.acct { display: grid; gap: 16px; max-width: 680px; }
.acct-id { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px; }
.acct-ava { width: 70px; height: 70px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(140deg, #fde6e0, #efbfb6); color: var(--pink-ink); font-family: var(--display); font-size: 30px; font-weight: 900; box-shadow: 0 14px 30px -16px rgba(161, 79, 72, .6); }
.acct-id h2 { font-size: 24px; font-weight: 900; }
.notice { display: block; margin-bottom: 18px; padding: 13px 18px; border-radius: 16px; background: rgba(246, 221, 214, .8); color: var(--pink-ink); font-size: 14px; }

/* ---------- 管理 ---------- */
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.tiles .tile { padding: 22px; gap: 2px; }
.tile-ico { font-size: 28px; margin-bottom: 8px; }
.tiles b { font-family: var(--display); font-size: 18px; } .tiles small { color: var(--muted); }
.settings { display: grid; gap: 16px; max-width: 720px; }
.test-out { font-family: var(--hand); color: var(--sage); font-size: 16px; }
.more summary { cursor: pointer; font-size: 14px; color: var(--muted); } details.more { display: grid; gap: 12px; }
.mf-top { display: grid; grid-template-columns: 80px 1fr; gap: 12px; } .mf-top.wide { grid-template-columns: 1fr 110px; }
.emoji input { text-align: center; font-size: 22px; padding: 6px; }
.member-forms { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.ai-titles { display: flex; flex-wrap: wrap; gap: 8px; }
.ai-titles button { border: 1px dashed rgba(91, 122, 92, .5); background: var(--sage-2); color: var(--sage); border-radius: 99px; padding: 5px 14px; font-size: 14px; animation: pop .5s var(--spring) both; }
.drop { position: relative; display: block !important; border: 1.5px dashed rgba(70, 55, 30, .25); border-radius: 22px; padding: 30px; text-align: center; background: rgba(255, 255, 255, .5); cursor: pointer; }
.drop:hover { border-color: var(--sage); }
.drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.drop span { font-size: 17px; color: var(--ink); display: grid; gap: 4px; } .drop small { color: var(--muted); font-size: 13px; }
.up-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.up-list li { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; font-size: 14px; padding: 10px 14px; background: rgba(255, 255, 255, .7); border-radius: 12px; }
.up-list li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .up-list li em { font-style: normal; color: var(--muted); }
.up-list li i { grid-column: 1 / -1; height: 3px; background: var(--bg-2); border-radius: 3px; overflow: hidden; }
.up-list li i b { display: block; height: 100%; width: 0; background: var(--sage); transition: width .2s; }
.up-list li.done em { color: var(--sage); } .up-list li.fail em { color: var(--danger); }
.claim-filter { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; } .claim-filter select { width: auto; } .claim-filter input { width: auto; flex: 1; min-width: 160px; }
.tbl-wrap { overflow-x: auto; border-radius: 18px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6), 0 20px 40px -30px rgba(60, 40, 20, .5); }
.tbl { width: 100%; border-collapse: collapse; font-size: 14px; background: rgba(255, 255, 255, .6); }
.tbl th, .tbl td { text-align: left; padding: 11px 16px; border-bottom: 1px solid var(--line); white-space: nowrap; } .tbl th { font-weight: 600; color: var(--muted); font-size: 13px; }
.pager { display: flex; justify-content: space-between; margin-top: 18px; color: var(--sage); font-size: 14px; }
.claim { display: grid; place-items: center; height: 100%; }
.claim-card { width: min(480px, 100%); text-align: center; display: grid; gap: 12px; padding: 34px 30px; }
.claim-card h1 { font-size: 40px; font-weight: 900; letter-spacing: .12em; }
.claim-card .form { text-align: left; } .claim-card .form .btn { justify-self: stretch; }
.codes { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; } .codes span { font-size: 13px; padding: 2px 12px; border-radius: 99px; background: rgba(255, 255, 255, .7); color: var(--ink-2); }
.claim-fail { color: var(--danger); font-size: 14px; text-align: center; }
.qr { width: min(240px, 80%); height: auto; margin: 4px auto; border-radius: 14px; }
.nf { height: 100%; text-align: center; display: grid; justify-items: center; align-content: center; gap: 10px; }
.nf img { height: auto; transform: scaleX(-1); } .nf h1 { font-family: var(--latin); font-weight: 400; font-size: 110px; line-height: 1; }

/* ---------- 问问猪（浮动助手） ---------- */
.ask-orb { position: fixed; right: 22px; bottom: 22px; z-index: 60; width: 62px; height: 62px; padding: 0; border: 0; border-radius: 50%; overflow: hidden; background: linear-gradient(140deg, #fde6e0, #efbfb6); box-shadow: inset 0 1px 0 #fff, 0 16px 34px -12px rgba(161, 79, 72, .6); transition: transform .5s var(--spring); animation: orb 6s ease-in-out infinite; }
.ask-orb img { width: 100%; height: 100%; object-fit: cover; transform: translateY(6%) scale(1.08); }
.ask-orb::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; box-shadow: 0 0 0 2px rgba(228, 140, 132, .5); animation: ring 2.6s ease-out infinite; }
@keyframes ring { from { transform: scale(.9); opacity: 1; } to { transform: scale(1.35); opacity: 0; } }
.ask-orb:hover { transform: scale(1.08) rotate(-6deg); }
.ask-pop { background: rgba(255, 252, 246, .94); position: fixed; right: 22px; bottom: 96px; z-index: 61; width: min(380px, calc(100vw - 32px)); height: min(500px, calc(100svh - 160px)); display: flex; flex-direction: column; gap: 10px; padding: 16px; transform-origin: 100% 100%; animation: pop-in .55s var(--spring); }
@keyframes pop-in { from { opacity: 0; transform: scale(.6) translateY(30px); filter: blur(8px); } }
.ask-pop header { display: flex; align-items: baseline; gap: 8px; } .ask-pop header b { font-family: var(--display); font-size: 17px; } .ask-pop header small { color: var(--muted); font-size: 12px; } .ask-pop header .x { margin-left: auto; }
.ask-pop .chat-log { flex: 1; max-height: none; }

/* ---------- 聊天气泡（猪圈 / 助手共用） ---------- */
.chat-log { list-style: none; margin: 0; padding: 2px; display: flex; flex-direction: column; gap: 10px; overflow-y: auto; min-height: 0; overscroll-behavior: contain; }
.chat-log li { display: flex; gap: 8px; align-items: flex-end; animation: msg-in .5s var(--spring) both; }
@keyframes msg-in { from { opacity: 0; transform: translateY(12px) scale(.94); } }
.chat-log li span { padding: 9px 14px; border-radius: 18px; max-width: 82%; font-size: 15px; line-height: 1.55; }
.chat-log li.mine { justify-content: flex-end; }
.chat-log li.mine span { background: var(--ink); color: var(--bg); border-bottom-right-radius: 5px; }
.chat-log li.them span { background: rgba(255, 255, 255, .9); border-bottom-left-radius: 5px; font-family: var(--hand); font-size: 16px; box-shadow: inset 0 1px 0 #fff, 0 6px 16px -12px rgba(0, 0, 0, .4); }
.chat-log li.sys span { margin: 0 auto; background: rgba(255, 255, 255, .5); font-size: 12.5px; color: var(--muted); }
.chat-log li.them a { color: var(--sage); font-family: var(--sans); font-size: 13px; margin-left: 6px; }
.chat-log li img { width: 32px; height: 28px; object-fit: contain; flex: none; }
.chat-log li.typing span { letter-spacing: .3em; animation: typing 1s ease-in-out infinite; }
@keyframes typing { 50% { opacity: .4; } }
.say { display: flex; gap: 8px; }
.say input { border-radius: 99px; padding: 11px 18px; background: rgba(255, 255, 255, .85); }
.say .btn { min-width: 62px; }
@keyframes pop { from { transform: scale(.9); opacity: .3; } }

/* ---------- 猪圈 ---------- */
.pig-stage { height: 100%; display: grid; gap: var(--gap); grid-template-columns: minmax(0, 1fr) minmax(320px, 390px); }
.scene { min-height: 0; animation: tile-in .9s var(--ease) both; }
.yard { position: relative; height: 100%; border-radius: 32px; overflow: hidden; background: #f4f1e8; user-select: none; -webkit-user-select: none; container-type: size; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6), 0 40px 80px -50px rgba(70, 45, 20, .7); --pig-filter: brightness(1); }
.yard-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 40% 100%; }
.sky-chip { position: absolute; left: 16px; top: 14px; z-index: 6; padding: 5px 14px; border-radius: 99px; background: rgba(255, 255, 255, .62); font-size: 13px; color: var(--ink-2); box-shadow: inset 0 1px 0 #fff; transition: background 1s, color 1s; }
.sky-chip:empty { display: none; }
.yard.night .sky-chip { background: rgba(20, 24, 44, .5); color: #e6e2f0; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2); }
.hud { position: absolute; right: 14px; top: 14px; z-index: 6; display: grid; gap: 8px; }
.hud-stat { display: grid; grid-template-columns: 34px 1fr auto; gap: 8px; align-items: center; padding: 7px 12px 7px 8px; border-radius: 18px; background: rgba(255, 255, 255, .55); box-shadow: inset 0 1px 0 #fff, 0 10px 24px -16px rgba(60, 40, 20, .5); min-width: 210px; }
.yard.night .hud-stat { background: rgba(28, 30, 48, .45); color: #e6e2f0; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2); }
.hud-stat img { width: 34px; height: 28px; object-fit: contain; }
.hud-stat > div { display: grid; grid-template-columns: 1fr 1fr; gap: 3px 10px; }
.mtr { display: grid; grid-template-columns: 14px 1fr; gap: 6px; align-items: center; font-size: 11px; }
.mtr i { font-style: normal; opacity: .7; }
.mtr b { display: block; height: 5px; border-radius: 5px; background: rgba(0, 0, 0, .08); overflow: hidden; }
.mtr em { display: block; height: 100%; border-radius: 5px; background: linear-gradient(90deg, #f1b3ac, var(--pink)); transition: width .9s var(--ease); }
.hud-stat[data-care="black"] .mtr em { background: linear-gradient(90deg, #a39c90, #4c483f); }
.hud-stat small { font-family: var(--latin); font-size: 17px; opacity: .7; }
.pig { position: absolute; z-index: 2; border: 0; padding: 0; background: none; cursor: pointer; -webkit-tap-highlight-color: transparent; transform-origin: 50% 100%; transition: left 6s linear; }
.pig img { width: 100%; height: auto; pointer-events: none; filter: var(--pig-filter) drop-shadow(0 14px 12px rgba(70, 50, 20, .22)); transition: filter 1.5s, transform .45s var(--ease); }
.pig:focus-visible { outline: none; }
.pig.flip img { transform: scaleX(-1); }
.pig.walking img { animation: bob .32s ease-in-out infinite alternate; }
@keyframes bob { to { translate: 0 -2.5%; } }
.pig.picked::after { content: ""; position: absolute; left: 12%; right: 12%; bottom: -3%; height: 10%; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 246, 220, .95), transparent); z-index: -1; animation: pulse 2.4s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: .45; transform: scale(.9); } }
.pig-pink { left: 20%; bottom: 15%; width: calc(max(100cqw, 200cqh) * .155); }
.pig-black { left: 46%; bottom: 9%; width: calc(max(100cqw, 200cqh) * .33); }
.bubble { position: absolute; left: 50%; bottom: 100%; z-index: 4; transform: translate(-50%, 8px) scale(.8); background: rgba(255, 255, 255, .95); color: var(--ink); font-family: var(--hand); font-size: 16px; padding: 8px 15px; border-radius: 18px; width: max-content; max-width: 280px; line-height: 1.5; text-align: center; box-shadow: 0 12px 28px -12px rgba(0, 0, 0, .35); opacity: 0; transition: opacity .3s, transform .55s var(--spring); pointer-events: none; }
.bubble::after { content: ""; position: absolute; left: 50%; top: 100%; margin-left: -7px; border: 7px solid transparent; border-top-color: rgba(255, 255, 255, .95); }
.bubble.on { opacity: 1; transform: translate(-50%, -6px) scale(1); }
.pig-black .bubble { left: 32%; }
.bubble.typing { letter-spacing: .3em; font-weight: 700; animation: typing 1s ease-in-out infinite; }
.pig.a-hop { animation: hop .55s var(--ease); } .pig.a-hop2 { animation: hop2 .9s var(--ease); } .pig.a-squish { animation: squish .7s ease; }
.pig.a-shake { animation: shake .5s ease; } .pig.a-dash { animation: dash 1.1s var(--ease); } .pig.a-charge { animation: charge .8s var(--ease); }
.pig.a-nod { animation: nod 1s ease; } .pig.a-munch { animation: munch .9s ease; } .pig.a-wiggle { animation: wiggle .8s ease; }
.pig.a-nuzzle-r { animation: nuzzleR 1.4s var(--ease); } .pig.a-nuzzle-l { animation: nuzzleL 1.4s var(--ease); } .pig.a-spin { animation: spin-jump 1s var(--ease); }
@keyframes hop { 40% { transform: translateY(-16%) rotate(-3deg); } 70% { transform: translateY(0) scale(1.03, .96); } }
@keyframes hop2 { 25% { transform: translateY(-14%); } 45% { transform: translateY(0) scale(1.04, .95); } 70% { transform: translateY(-9%); } 90% { transform: none; } }
@keyframes squish { 30% { transform: scale(1.04, .95); } 60% { transform: scale(.98, 1.02); } }
@keyframes shake { 20%, 60% { transform: translateX(-2%) rotate(-1.5deg); } 40%, 80% { transform: translateX(2%) rotate(1.5deg); } }
@keyframes dash { 30% { transform: translateX(-40%); } 50% { transform: translateX(-40%) scaleX(-1); } 80% { transform: translateX(0) scaleX(-1); } }
@keyframes charge { 25% { transform: translateX(5%) rotate(2deg); } 50% { transform: translateX(-14%) rotate(-2deg); } }
@keyframes nod { 30% { transform: rotate(-2deg); } 60% { transform: rotate(1deg); } }
@keyframes munch { 20%, 60% { transform: scale(1, .97); } 40%, 80% { transform: scale(1, 1.01); } }
@keyframes wiggle { 25% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } 75% { transform: rotate(-2deg); } }
@keyframes nuzzleR { 50% { transform: translateX(28%); } } @keyframes nuzzleL { 50% { transform: translateX(-10%); } }
@keyframes spin-jump { 40% { transform: translateY(-22%) rotate(180deg); } 80% { transform: translateY(0) rotate(360deg); } }
.yard.sleeping .pig { opacity: 0; pointer-events: none; transition: opacity .8s; }
.yard-sleep { position: absolute; z-index: 2; left: 50%; bottom: 8%; width: calc(max(100cqw, 200cqh) * .5); translate: -50% 0; cursor: pointer; animation: fade .9s ease both; }
.yard-sleep img, .yard-win img { width: 100%; height: auto; filter: var(--pig-filter) drop-shadow(0 12px 10px rgba(70, 50, 20, .18)); transition: filter 1.5s; }
.yard-win { position: absolute; z-index: 3; left: 50%; bottom: 9%; width: calc(max(100cqw, 200cqh) * .42); translate: -50% 0; animation: win 2.6s var(--spring) both; pointer-events: none; }
@keyframes win { 0% { opacity: 0; transform: scale(.6) translateY(20%); } 20% { opacity: 1; transform: none; } 85% { opacity: 1; } 100% { opacity: 0; } }
.yard.winning .pig { opacity: 0; transition: opacity .3s; }
@keyframes fade { from { opacity: 0; } }
.zzz { position: absolute; right: 6%; top: -8%; font-family: var(--latin); font-style: italic; font-size: clamp(18px, 2.4vw, 28px); color: var(--ink-2); letter-spacing: .3em; animation: zzz 3s ease-in-out infinite; }
.yard.night .zzz { color: #e9e4f5; }
@keyframes zzz { 50% { transform: translateY(-10px); opacity: .45; } }
.fx { position: absolute; inset: 0; pointer-events: none; z-index: 5; }
.fx span { position: absolute; font-size: clamp(20px, 2.6vw, 34px); animation: float 1.4s var(--ease) forwards; }
.fx .bub { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid rgba(130, 180, 210, .85); background: rgba(255, 255, 255, .45); animation: bub 1.7s ease-out forwards; }
@keyframes float { 0% { opacity: 0; transform: translateY(10px) scale(.5); } 20% { opacity: 1; transform: translateY(0) scale(1.1); } 100% { opacity: 0; transform: translateY(-60px); } }
@keyframes bub { 0% { opacity: 0; transform: scale(.4); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateY(-80px) scale(1.25); } }
.cast { position: absolute; z-index: 6; left: 50%; bottom: 74px; translate: -50% 0; width: max-content; max-width: 80%; text-align: center; font-family: var(--hand); font-size: 18px; padding: 6px 18px; border-radius: 99px; background: rgba(255, 255, 255, .55); box-shadow: inset 0 1px 0 #fff; transition: opacity .25s, transform .35s var(--spring); }
.cast.swap { opacity: 0; transform: translateY(6px); }
.yard.night .cast { background: rgba(28, 30, 48, .45); color: #eee9f6; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2); }
.acts { position: absolute; z-index: 6; left: 50%; bottom: 16px; translate: -50% 0; display: flex; gap: 4px; padding: 5px; border-radius: 99px; background: rgba(255, 255, 255, .5); box-shadow: inset 0 1px 0 #fff, 0 14px 30px -18px rgba(60, 40, 20, .55); max-width: calc(100% - 24px); overflow-x: auto; scrollbar-width: none; }
.acts button { border: 0; background: transparent; border-radius: 99px; padding: 7px 14px; font-size: 14px; color: var(--ink-2); white-space: nowrap; transition: background .25s, transform .4s var(--spring), color .2s; }
.acts button:hover { background: #fff; color: var(--ink); transform: translateY(-2px); }
.acts button:active { transform: scale(.9); }
.yard.night .acts { background: rgba(28, 30, 48, .4); } .yard.night .acts button { color: #e6e2f0; } .yard.night .acts button:hover { background: rgba(255, 255, 255, .15); }
.play { display: flex; flex-direction: column; gap: 12px; min-height: 0; padding: 16px; animation: tile-in .9s .08s var(--ease) both; }
.play .seg { align-self: stretch; } .play .seg > * { flex: 1; justify-content: center; padding: 6px 8px; }
.tab-pane { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; animation: pane-in .45s var(--ease); scrollbar-width: thin; }
@keyframes pane-in { from { opacity: 0; transform: translateY(8px); } }
.mini-h { font-size: 15px; font-weight: 900; letter-spacing: .08em; margin-top: 4px; } .mini-h small { font-family: var(--sans); font-weight: normal; font-size: 12px; color: var(--muted); margin-left: 6px; }
.feed-result { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 14px 16px; background: rgba(255, 255, 255, .85); border-radius: 20px; box-shadow: inset 0 1px 0 #fff, 0 14px 30px -20px rgba(70, 40, 20, .45); }
.feed-result.pop { animation: pop .6s var(--spring); }
.fr-emoji { font-size: 42px; line-height: 1; animation: wobble 1.2s var(--spring); }
@keyframes wobble { 0% { transform: scale(.3) rotate(-30deg); } 60% { transform: scale(1.2) rotate(8deg); } }
.fr-food { font-size: 12.5px; color: var(--muted); } .fr-line { font-family: var(--hand); font-size: 16.5px; }
.fr-score { text-align: center; min-width: 64px; }
.fr-score b { display: block; font-family: var(--latin); font-weight: 400; font-size: 38px; line-height: 1; color: var(--pink); }
.fr-score small { font-size: 11px; color: var(--muted); }
.fr-score i { display: block; height: 4px; border-radius: 4px; background: var(--bg-2); margin-top: 5px; overflow: hidden; }
.fr-score em { display: block; height: 100%; background: linear-gradient(90deg, var(--pink), var(--gold)); transition: width 1s var(--ease); }
.board { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.board li { display: grid; grid-template-columns: 20px 28px 1fr auto; gap: 8px; align-items: center; }
.board li.empty { display: block; color: var(--muted); font-family: var(--hand); }
.board .rank { font-family: var(--latin); font-size: 18px; color: var(--muted); text-align: center; } .board li:nth-child(1) .rank { color: var(--gold); }
.b-emoji { font-size: 21px; text-align: center; }
.b-food { display: grid; line-height: 1.35; min-width: 0; } .b-food b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .b-food small { font-size: 12px; color: var(--muted); }
.b-score { font-family: var(--latin); font-size: 22px; color: var(--pink); }
.guess-intro { display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: center; padding: 14px; border-radius: 20px; background: rgba(255, 255, 255, .55); box-shadow: inset 0 1px 0 #fff; }
.guess-intro img { width: 96px; height: auto; animation: breathe 4s ease-in-out infinite; transform-origin: 50% 100%; }
.guess-intro b { font-family: var(--display); font-size: 17px; } .guess-intro p { font-size: 13px; color: var(--ink-2); margin: 4px 0 10px; }
.guess-game { display: flex; flex-direction: column; gap: 8px; min-height: 0; flex: 1; }
.guess-meter { display: flex; gap: 6px; align-items: center; } .guess-meter span { margin-right: auto; font-size: 13px; color: var(--ink-2); }
.guess-game .chat-log { flex: 1; }
.ans { display: inline-block; font-family: var(--display); font-weight: 900; margin-right: 6px; color: var(--sage); }
.ans.no { color: var(--pink-ink); }
.diary p, .diary-p { font-family: var(--hand); font-size: 16px; line-height: 1.8; }
.log-list { list-style: none; padding: 0; margin: 0; display: grid; }
.log-list li { display: grid; grid-template-columns: 26px 1fr auto; gap: 10px; align-items: center; padding: 7px 0; border-bottom: 1px dashed var(--line); font-size: 13.5px; color: var(--ink-2); }
.log-list li.empty { display: block; } .log-list li.fresh:first-child { animation: msg-in .5s var(--spring); }
.log-list b { color: var(--ink); } .log-list em { font-style: normal; color: var(--muted); }
.log-list time { color: var(--muted); font-family: var(--latin); font-size: 14px; }
.log-ava { font-size: 16px; text-align: center; }
.gate-pane { align-items: center; text-align: center; justify-content: center; font-family: var(--hand); font-size: 16px; }
.gate-pane .lock-ico { width: 30px; height: 30px; color: var(--pink-ink); }
.gate-pane .diary-p { text-align: left; }

/* ---------- 转场 ---------- */
@view-transition { navigation: auto; }
::view-transition-group(*) { animation-duration: .7s; animation-timing-function: cubic-bezier(.6, 0, .2, 1); }
::view-transition-old(root) { animation: vt-old .7s cubic-bezier(.6, 0, .2, 1) both; }
::view-transition-new(root) { animation: vt-new .75s cubic-bezier(.6, 0, .2, 1) both; }
@keyframes vt-old { to { transform: scale(.94); filter: blur(10px) brightness(1.06); opacity: 0; } }
@keyframes vt-new { from { clip-path: circle(0 at var(--vtx, 50%) var(--vty, 50%)); filter: brightness(1.25); } to { clip-path: circle(160vmax at var(--vtx, 50%) var(--vty, 50%)); filter: none; } }
html.vt-morph::view-transition-new(root) { animation: vt-fade .55s var(--ease) both; }
html.vt-morph::view-transition-old(root) { animation: vt-out .4s ease both; }
@keyframes vt-fade { from { opacity: 0; } } @keyframes vt-out { to { opacity: 0; } }
::view-transition-old(top), ::view-transition-new(top) { animation: none; mix-blend-mode: normal; }
::view-transition-image-pair(pigscene), ::view-transition-image-pair(records), ::view-transition-image-pair(hero) { isolation: auto; }
::view-transition-old(pigscene), ::view-transition-new(pigscene), ::view-transition-old(records), ::view-transition-new(records) { height: 100%; object-fit: cover; overflow: clip; }
html.no-vt .stage { animation: page-in .8s var(--ease) both; }
@keyframes page-in { from { opacity: 0; transform: translateY(14px); filter: blur(6px); } }

/* ---------- 窄屏：恢复正常滚动 ---------- */
@media (max-width: 1100px) {
  .bento { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "hero fortune" "hero pig" "rec stack"; }
  .people { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px), (max-height: 600px) {
  body.app { height: auto; overflow: visible; display: block; }
  .top { position: sticky; top: 0; padding: 8px 10px 0; }
  .stage { padding: 12px 12px 90px; }
  .bento, .split, .panel, .pig-stage, .locked, .auth { height: auto; }
  .bento { grid-template-columns: 1fr 1fr; grid-template-rows: none; grid-template-areas: "hero hero" "fortune fortune" "pig rec" "stack stack"; }
  .b-hero { min-height: 520px; }
  .b-fortune { min-height: 300px; } .b-pig, .b-rec { min-height: 230px; }
  .b-stack { grid-auto-rows: auto; }
  .split, .pig-stage, .locked, .auth { grid-template-columns: 1fr; }
  .panel-scroll { overflow: visible; }
  .is-articles .split:not(.picked) .reader, .is-articles .split.picked .side { display: none; }
  .only-m { display: inline-block; }
  .compose-pig { display: none; }
  .people { grid-template-columns: 1fr 1fr; }
  .yard { height: auto; aspect-ratio: 1 / 1.05; border-radius: 26px; }
  .cast { font-size: 14px; bottom: 60px; padding: 4px 14px; }
  .acts button { padding: 6px 11px; font-size: 13px; }
  .pig-pink { left: 5%; bottom: 25%; width: 30cqw; } .pig-black { left: 40%; bottom: 19%; width: 56cqw; }
  .yard-sleep { width: 90cqw; } .yard-win { width: 80cqw; }
  .hud { left: 10px; right: 10px; top: 52px; grid-template-columns: 1fr 1fr; } .hud-stat { min-width: 0; grid-template-columns: 26px 1fr; } .hud-stat small { display: none; } .hud-stat img { width: 26px; }
  .play { min-height: 70svh; }
  .locked-art { display: none; }
  .auth-art { display: none; }
  .two { grid-template-columns: 1fr; }
  .ask-orb { right: 14px; bottom: 14px; width: 54px; height: 54px; }
  .ask-pop { right: 10px; bottom: 78px; }
}
@media (max-width: 760px) {
  .bar { flex-wrap: wrap; gap: 6px 10px; border-radius: 24px; padding: 8px 8px 6px 14px; }
  .who { margin-left: auto; }
  .nav { order: 3; width: calc(100% + 16px); margin: 0 -8px; padding: 0 6px 2px; overflow-x: auto; scrollbar-width: none; }
  .nav::-webkit-scrollbar { display: none; }
  .nav a { flex: none; padding: 6px 12px; font-size: 14.5px; }
  .bento { grid-template-columns: 1fr; grid-template-areas: "hero" "fortune" "pig" "rec" "stack"; }
  .b-hero { min-height: 470px; } .hero-copy { padding: 22px 20px 0; }
  .display { font-size: 64px; }
  .hero-bubble { left: 6%; bottom: calc(64px + 36%); font-size: 14px; max-width: 220px; }
  .people { grid-template-columns: 1fr; }
  .masonry { columns: 2; column-gap: 8px; }
  .videos { grid-template-columns: 1fr; }
  .msg-body, .pig-say, .reply, .reply-box { margin-left: 0; }
  .acct-id { grid-template-columns: auto 1fr; } .acct-id .btn { grid-column: 1 / -1; justify-self: start; }
  .lb-stage { padding: 64px 8px 8px; } .lb-prev, .lb-next { top: auto !important; bottom: 20px; translate: none !important; } .lb-cap { padding: 10px 70px 28px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .fx-canvas, .lens, .glow, .lightfield { display: none; }
}

/* ---------- 代号认领处 ---------- */
.claim-room { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
.judge { display: flex; flex-direction: column; gap: 10px; overflow: hidden; }
.judge h1 { font-size: clamp(30px, 3vw, 46px); font-weight: 900; letter-spacing: .08em; }
.judge-stage { position: relative; flex: 1; min-height: 0; display: grid; place-items: end center; }
.judge-pig { width: min(78%, 340px); max-height: 100%; height: auto; object-fit: contain; filter: drop-shadow(0 26px 24px rgba(70, 45, 20, .25)); transform-origin: 50% 100%; animation: breathe 5s ease-in-out infinite; }
.judge-pig.nod { animation: nod 1s ease; } .judge-pig.shake { animation: shake .6s ease; }
.judge-say { position: absolute; z-index: 2; left: 4%; top: 6%; max-width: 64%; padding: 12px 18px; border-radius: 20px 20px 20px 6px; background: rgba(255, 255, 255, .92); font-family: var(--hand); font-size: 18px; line-height: 1.55; box-shadow: 0 18px 40px -18px rgba(60, 40, 20, .5); }
.judge-say.on { animation: pop .6s var(--spring); }
.claim-desk { display: flex; flex-direction: column; gap: 16px; }
.claim-desk.deny { animation: shake .5s ease; }
.claim-desk .codes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.code-chip { position: relative; border: 0; padding: 16px 10px; border-radius: 18px; background: rgba(255, 255, 255, .6); box-shadow: inset 0 1px 0 #fff, 0 10px 24px -18px rgba(60, 40, 20, .5); font-family: var(--display); font-weight: 900; font-size: 19px; letter-spacing: .04em; transition: transform .45s var(--spring), background .3s; display: grid; gap: 2px; }
.code-chip:hover { transform: translateY(-3px) rotate(-1deg); background: #fff; }
.code-chip small { font-family: var(--sans); font-weight: 400; font-size: 11px; color: var(--sage); letter-spacing: .1em; }
.code-chip.got { background: rgba(223, 231, 216, .7); }
.code-chip.got::after { content: "✓"; position: absolute; right: 10px; top: 6px; color: var(--sage); font-size: 13px; }
.cert-room { height: 100%; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: var(--gap); max-width: 1180px; margin: 0 auto; }
.cert { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 6px; padding: 30px 34px; background: linear-gradient(140deg, rgba(255, 250, 241, .82), rgba(243, 230, 210, .7)); animation: unroll 1.1s var(--spring) both; }
.cert::after { box-shadow: inset 0 0 0 10px rgba(255, 250, 241, .6), inset 0 0 0 11px rgba(36, 35, 31, .25); }
.cert header { display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 13px; }
.cert-org { display: flex; align-items: center; gap: 8px; } .cert-org .mark { width: 30px; height: 30px; } .cert-org b { font-family: var(--display); color: var(--ink-2); letter-spacing: .1em; }
.cert-no { font-family: var(--latin); font-size: 18px; }
.cert-code { font-family: var(--display); font-weight: 900; font-size: clamp(52px, 7vw, 104px); line-height: 1.05; margin-top: 10px; letter-spacing: .04em; }
.cert-title { font-family: var(--display); font-weight: 600; font-size: 24px; color: var(--pink-ink); }
.cert dl { display: grid; grid-template-columns: 74px 1fr; gap: 10px 14px; margin: 18px 0 0; max-width: 34em; }
.cert dt { color: var(--muted); font-size: 13px; padding-top: 3px; }
.cert dd { margin: 0; font-family: var(--hand); font-size: 18px; line-height: 1.6; }
.cert-skills { display: flex; flex-wrap: wrap; gap: 6px; } .cert-skills span { font-family: var(--sans); font-size: 13px; padding: 2px 12px; border-radius: 99px; background: rgba(255, 255, 255, .7); }
.cert-stamp { position: absolute; right: 34px; bottom: 34px; width: 104px; height: 104px; border-radius: 50%; border: 3px solid #c0443a; color: #c0443a; display: grid; place-items: center; text-align: center; font-family: var(--display); font-weight: 900; font-size: 22px; line-height: 1.15; rotate: -14deg; animation: stamp .7s 1s var(--spring) both; }
.cert-pig { position: absolute; right: 150px; bottom: -10px; width: 170px; height: auto; opacity: .95; filter: drop-shadow(0 16px 16px rgba(70, 45, 20, .2)); }
.cert-side { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; overflow: auto; }
.cert-side h2 { font-size: 26px; font-weight: 900; }
.cert-side .qr { width: min(200px, 70%); margin: 4px 0; }
@media (max-width: 860px), (max-height: 600px) {
  .claim-room, .cert-room { grid-template-columns: 1fr; height: auto; }
  .judge-stage { min-height: 300px; }
  .cert { min-height: 560px; } .cert-pig { width: 120px; right: 120px; } .cert-stamp { width: 84px; height: 84px; font-size: 18px; right: 20px; bottom: 20px; }
}
.claim-desk .codes { flex: 1; grid-auto-rows: minmax(64px, 1fr); } .code-chip { font-size: clamp(18px, 1.6vw, 24px); }

/* ---------- 性能与触屏 ---------- */
* { -webkit-tap-highlight-color: transparent; }
a, button, input, select, textarea, label, [data-pig-btn] { touch-action: manipulation; }
.hud-stat, .sky-chip, .cast, .acts { background-color: rgba(255, 255, 255, .78); }
.ask-bar { background: rgba(255, 255, 255, .82); }
.lightfield { image-rendering: auto; }
@media (hover: none) {
  body::before { display: none; }
  [data-tilt], a.tile { transition: none; }
  a.tile:hover { transform: none; }
  .btn::before { display: none; }
  .btn:active, .chip-btn:active, .acts button:active, .code-chip:active, a.tile:active { transform: scale(.96); transition: transform .12s; }
}

/* ---------- 玻璃质感（不用实时模糊）：顶光、内阴影、边缘折射色 ---------- */
.glass, .tile { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .98), inset 0 22px 34px -26px rgba(255, 255, 255, .95), inset 0 -18px 30px -24px rgba(196, 150, 110, .22), inset 1px 0 0 rgba(255, 220, 210, .35), inset -1px 0 0 rgba(200, 225, 205, .35), inset 0 0 0 1px rgba(255, 255, 255, .3), 0 1px 2px rgba(60, 40, 20, .06), 0 30px 70px -44px rgba(70, 45, 20, .55); }
/* 电脑：恢复指针光和纸纹的混合模式 */
@media (hover: hover) and (pointer: fine) {
  body::before { opacity: .05; mix-blend-mode: multiply; }
  .glow { background: radial-gradient(circle, rgba(255, 238, 210, .62), rgba(255, 222, 190, .18) 40%, transparent 68%); mix-blend-mode: soft-light; }
}

/* ---------- 手机：边缘高光用静态光（fixed 背景在手机上滚动时会逐帧重绘） ---------- */
@media (hover: none) {
  [data-light]::before { background: radial-gradient(130% 90% at 18% 0%, rgba(255, 255, 255, 1), rgba(255, 255, 255, .45) 30%, rgba(255, 255, 255, .1) 60%, rgba(255, 255, 255, .06) 80%); }
  [data-light]::after { background: radial-gradient(120% 70% at 20% 0%, rgba(255, 249, 238, .4), transparent 60%); }
}
.fx-off .aura i { animation: none; }
.perf-hud { position: fixed; left: 10px; bottom: 10px; z-index: 999; display: flex; align-items: center; gap: 6px; padding: 6px 8px 6px 12px; border-radius: 99px; background: rgba(29, 28, 24, .85); color: #f3eee5; font-size: 12px; }
.perf-hud b { font-family: var(--latin); font-size: 20px; font-weight: 400; }
.perf-hud button { border: 0; border-radius: 99px; padding: 4px 10px; background: #f3eee5; color: #1d1c18; font-size: 12px; }
@media (hover: none) {
  :root { --glass: linear-gradient(165deg, rgba(255, 254, 251, .5), rgba(255, 250, 243, .26)); }
}

/* ---------- 聊天：气泡不被压缩，你一句我一句 ---------- */
.chat-log { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; justify-content: flex-start; }
.chat-log > li { flex: none; width: 100%; min-width: 0; }
.chat-log > li.mine { flex-direction: row; justify-content: flex-end; }
.chat-log > li > span { min-width: 2.5em; overflow-wrap: anywhere; white-space: normal; }
.tab-pane[data-pane-for="chat"] { overflow: hidden; }
.tab-pane[data-pane-for="chat"] > .chat-log { padding: 4px 2px 8px; }
.guess-game .chat-log, .ask-pop .chat-log { flex: 1 1 auto; }

/* ---------- 手机滚动：真机数据显示首页滚动掉帧，去掉滚动时代价高的绘制 ---------- */
@media (hover: none) {
  [data-light]::before { display: none; }
  .glass, .tile { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .98), inset 0 0 0 1px rgba(255, 255, 255, .55), 0 10px 26px -18px rgba(70, 45, 20, .45); }
  img.hero-art { mix-blend-mode: normal; }
  .bento > *, .side, .reader, .panel, .scene, .play, .person { contain: layout paint; }
  .capsule-orb span { filter: none; opacity: .7; }
}

/* ---------- 第五版：头像 ---------- */
.ava { --h: 12; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; flex: none; object-fit: cover; background: linear-gradient(140deg, hsl(var(--h) 70% 92%), hsl(var(--h) 52% 80%)); color: hsl(var(--h) 38% 34%); font-family: var(--display); font-weight: 900; font-size: 15px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 6px 14px -8px hsl(var(--h) 40% 30% / .6); }
img.ava { background: #fff; }
.ava.sm { width: 26px; height: 26px; font-size: 12px; }
.me img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.me:has(img) { padding: 0; overflow: hidden; }
.acct-ava { position: relative; border: 0; padding: 0; overflow: hidden; cursor: pointer; }
.acct-ava img { width: 100%; height: 100%; object-fit: cover; }
.acct-ava i { position: absolute; inset: auto 0 0; padding: 3px 0 5px; font: 600 11px/1 var(--sans); font-style: normal; color: #fff; background: linear-gradient(transparent, rgba(0, 0, 0, .55)); opacity: 0; transition: opacity .25s; }
.acct-ava:hover i, .acct-ava:focus-visible i { opacity: 1; }
.acct-ava.busy { animation: breathe 1s ease-in-out infinite; }
@media (hover: none) { .acct-ava i { opacity: 1; } }

/* ---------- 哼哼群 ---------- */
.hh { grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); }
.hh-side { position: relative; overflow: hidden; gap: 16px; }
.hh-me { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 20px; background: rgba(255, 255, 255, .62); box-shadow: inset 0 1px 0 #fff, 0 10px 24px -20px rgba(60, 40, 20, .6); transition: transform .4s var(--spring); }
.hh-me:hover { transform: translateY(-2px); }
.hh-me .ava { width: 46px; height: 46px; font-size: 19px; }
.hh-me span { display: grid; line-height: 1.35; } .hh-me b { font-family: var(--display); } .hh-me small { color: var(--muted); font-size: 12.5px; }
.hh-tips { margin: 0; padding: 0 0 0 18px; display: grid; gap: 6px; font-family: var(--hand); font-size: 15px; color: var(--ink-2); position: relative; z-index: 1; }
.hh-tips b { color: var(--pink-ink); font-family: var(--sans); font-size: 13.5px; }
.hh-main { padding: 0; overflow: hidden; }
.hh-head { display: flex; align-items: baseline; gap: 10px; padding: 16px 22px 10px; border-bottom: 1px solid var(--line); }
.hh-head b { font-family: var(--display); font-size: 18px; } .hh-head small { color: var(--muted); font-family: var(--latin); font-size: 15px; }
.hh-log { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; list-style: none; margin: 0; padding: 12px 18px 16px; display: flex; flex-direction: column; gap: 3px; scrollbar-width: thin; }
.hm-sys { text-align: center; font-size: 12px; color: var(--muted); padding: 4px 0 8px; }
.hm-day { text-align: center; margin: 12px 0 6px; } .hm-day span { font-size: 12px; color: var(--muted); padding: 2px 12px; border-radius: 99px; background: rgba(255, 255, 255, .55); }
.hm { flex: none; display: flex; align-items: flex-end; gap: 9px; margin-top: 9px; min-width: 0; }
.hm.new, .hm.typing { animation: msg-in .45s var(--spring) both; }
.is-chat .ask-orb, .is-chat .ask-pop { display: none; }
.hm.cont { margin-top: 0; }
.hm .ava-gap { width: 36px; }
.hm > .ava { align-self: start; margin-top: 2px; }
.hm-b { flex: 0 1 auto; min-width: 0; max-width: min(560px, 100%); display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.hm.mine .hm-b { align-items: flex-end; }
.hm-bubble { max-width: 100%; }
.hm > .ava, .hm > .ava-gap { flex: none; }
.hm-meta { flex: none; }
.hm-name { font-size: 12.5px; font-weight: 500; color: var(--muted); padding-left: 4px; display: flex; align-items: center; gap: 6px; }
.badge { font-style: normal; font-size: 10.5px; padding: 0 7px; border-radius: 99px; background: var(--sage-2); color: var(--sage); line-height: 1.7; }
.badge.pig { background: var(--pink-2); color: var(--pink-ink); }
.hm-bubble { padding: 8px 14px; border-radius: 6px 19px 19px 19px; background: rgba(255, 255, 255, .92); box-shadow: inset 0 1px 0 #fff, 0 6px 16px -12px rgba(0, 0, 0, .4); overflow-wrap: anywhere; }
.hm.cont .hm-bubble { border-top-left-radius: 19px; }
.hm-bubble p { margin: 0; font-size: 15.5px; line-height: 1.6; }
.hm.pig .hm-bubble { background: linear-gradient(150deg, #fff4f0, #fde3dc); font-family: var(--hand); } .hm.pig .hm-bubble p { font-size: 16.5px; }
.hm .at { color: var(--pink-ink); font-weight: 600; }
.hm-q { display: block; quotes: none; margin: 2px 0 6px; padding: 4px 10px; border-left: 3px solid var(--pink); border-radius: 4px 10px 10px 4px; background: rgba(240, 230, 215, .55); font-size: 13px; color: var(--ink-2); cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.hm-q::before, .hm-q::after { content: none; }
.hm-q b { margin-right: 6px; font-weight: 600; }
.hm-meta { display: flex; align-items: center; gap: 2px; padding-bottom: 3px; white-space: nowrap; }
.hm-meta time { font-family: var(--latin); font-size: 13px; color: var(--muted); margin: 0 4px; }
.hm-meta button { border: 0; background: none; color: var(--muted); font-size: 12px; padding: 2px 6px; border-radius: 8px; opacity: 0; transition: opacity .2s, background .2s; }
.hm:hover .hm-meta button, .hm:focus-within .hm-meta button { opacity: 1; }
.hm-meta button:hover { background: rgba(255, 255, 255, .8); color: var(--ink); }
@media (hover: none) { .hm-meta button { opacity: .75; } }
.hm.mine { justify-content: flex-end; }
.hm.mine > .ava, .hm.mine > .ava-gap { display: none; }
.hm.mine .hm-meta { order: -1; flex-direction: row-reverse; }
.hm.mine .hm-bubble { background: var(--ink); color: var(--bg); border-radius: 19px 6px 19px 19px; }
.hm.mine.cont .hm-bubble { border-top-right-radius: 19px; }
.hm.mine .at { color: #f6c6bd; }
.hm.mine .hm-q { background: rgba(255, 255, 255, .12); color: rgba(243, 238, 229, .8); border-left-color: #f6c6bd; }
.hm.flash .hm-bubble { animation: flash 1.4s ease; }
@keyframes flash { 30% { box-shadow: 0 0 0 4px rgba(228, 140, 132, .45); } }
.hm.typing p { display: flex; gap: 4px; padding: 6px 2px; } .hm.typing p i { width: 7px; height: 7px; border-radius: 50%; background: var(--pink); animation: hop 1s ease-in-out infinite; } .hm.typing p i:nth-child(2) { animation-delay: .15s; } .hm.typing p i:nth-child(3) { animation-delay: .3s; }
@keyframes hop { 40% { transform: translateY(-5px); opacity: .5; } }
.hh-say { padding: 10px 14px 14px; border-top: 1px solid var(--line); background: rgba(255, 255, 255, .35); display: grid; gap: 8px; }
.hh-quote { display: flex; align-items: center; gap: 8px; padding: 5px 6px 5px 12px; border-radius: 12px; background: rgba(255, 255, 255, .7); font-size: 13px; color: var(--ink-2); }
.hh-quote[hidden] { display: none; }
.hh-quote span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hh-row { display: flex; align-items: flex-end; gap: 8px; }
.hh-row textarea { flex: 1; min-height: 44px; max-height: 140px; resize: none; border-radius: 22px; padding: 10px 16px; line-height: 1.5; background: rgba(255, 255, 255, .9); }
.hh-at { flex: none; width: 44px; height: 44px; border: 0; border-radius: 50%; padding: 4px; background: rgba(255, 255, 255, .75); box-shadow: inset 0 1px 0 #fff, inset 0 0 0 1px var(--line); transition: transform .35s var(--spring); }
.hh-at:hover { transform: translateY(-2px) rotate(-6deg); }
.hh-at img { width: 100%; height: 100%; object-fit: contain; }
.hh-row .btn { height: 44px; }

/* ---------- 碎碎念 ---------- */
.moods { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 5px; }
.moods label { display: block !important; position: relative; }
.moods input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.moods span { display: grid; place-items: center; width: 100%; aspect-ratio: 1; max-width: 44px; border-radius: 14px; font-size: 21px; background: rgba(255, 255, 255, .55); box-shadow: inset 0 0 0 1px var(--line); cursor: pointer; transition: transform .35s var(--spring), background .2s, box-shadow .2s; }
.moods span:hover { transform: translateY(-2px) scale(1.06); }
.moods input:checked + span { background: #fff; box-shadow: inset 0 0 0 2px var(--pink), 0 8px 18px -10px rgba(161, 79, 72, .6); transform: scale(1.08); }
.moods input:focus-visible + span { outline: 2px solid var(--ink); }
.wall { columns: 3 240px; column-gap: 14px; padding: 12px 2px 10px; }
.note { --h: 30; position: relative; break-inside: avoid; margin: 0 0 16px; padding: 18px 18px 12px; border-radius: 6px 22px 22px 22px; background: linear-gradient(160deg, hsl(var(--h) 80% 97%), hsl(var(--h) 60% 91%)); box-shadow: inset 0 1px 0 #fff, 0 16px 30px -22px hsl(var(--h) 40% 30% / .7); rotate: calc((var(--h) - 180) * .006deg); transition: rotate .5s var(--spring), transform .5s var(--spring); animation: tile-in .7s var(--ease) both; }
.note:hover { rotate: 0deg; transform: translateY(-3px); }
.note-mood { position: absolute; right: 12px; top: -10px; font-size: 26px; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .15)); }
.note-body { margin: 0; font-family: var(--hand); font-size: 17px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ink); }
.note-pig { display: flex; gap: 8px; align-items: flex-end; margin: 10px 0 0; font-family: var(--hand); font-size: 14px; color: var(--pink-ink); }
.note-pig img { width: 30px; height: 26px; object-fit: contain; flex: none; }
.note-pig span { padding: 4px 10px; border-radius: 12px 12px 12px 3px; background: rgba(255, 255, 255, .7); }
.note footer { display: flex; align-items: center; gap: 7px; margin-top: 12px; padding-top: 8px; border-top: 1px dashed hsl(var(--h) 30% 60% / .35); font-size: 12.5px; }
.note footer b { font-weight: 500; color: var(--ink-2); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .note footer time { color: var(--muted); white-space: nowrap; font-size: 11.5px; }
.note footer .x { font-size: 16px; }
.gong { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; border: 0; padding: 3px 10px; border-radius: 99px; background: rgba(255, 255, 255, .65); font-size: 13px; color: var(--ink-2); transition: transform .35s var(--spring), background .2s; }
.gong .snout { filter: grayscale(1) opacity(.6); transition: filter .2s; }
.gong:hover { transform: scale(1.08); }
.gong.on { background: #fff; color: var(--pink-ink); } .gong.on .snout { filter: none; animation: pop .5s var(--spring); }

/* ---------- 瓜田 ---------- */
.melon-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 14px; padding: 4px 2px 12px; }
.melon { position: relative; display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 16px; padding: 18px; border-radius: 24px; animation: tile-in .7s var(--ease) both; }
.melon-copy { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.melon-copy header { display: flex; align-items: center; gap: 10px; font-size: 12.5px; white-space: nowrap; } .melon-copy time { color: var(--muted); font-family: var(--latin); font-size: 14px; }
.melon h3 { font-family: var(--display); font-size: 17px; }
.teaser { margin: 0; font-family: var(--hand); font-size: 16px; line-height: 1.7; color: var(--ink-2); }
.teaser.big { font-size: 20px; max-width: 26em; text-align: center; color: var(--ink); }
.melon footer { margin-top: auto; display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.pill.warn { background: #fdecc8; color: #8a5a12; }
.heat { letter-spacing: -1px; font-size: 13px; white-space: nowrap; } .heat i { font-style: normal; filter: grayscale(1) opacity(.25); }
.melon-art { position: relative; width: 92px; height: 92px; align-self: start; }
.melon-art .rind { position: absolute; inset: 0; border-radius: 50%; background: repeating-linear-gradient(100deg, #3f7a3c 0 9px, #8fbf5e 9px 15px, #3f7a3c 15px 22px); box-shadow: inset -10px -12px 20px rgba(0, 40, 0, .35), inset 8px 8px 14px rgba(255, 255, 255, .35), 0 14px 22px -12px rgba(30, 60, 20, .6); transition: transform .6s var(--spring); }
.melon-art .flesh { position: absolute; inset: 9px; border-radius: 50%; background: radial-gradient(circle at 50% 45%, #ff7a73, #e5484d 70%, #f3f8e6 71% 78%, transparent 79%); clip-path: inset(0 0 100% 0); transition: clip-path .7s var(--ease); }
.melon-art .flesh::before { content: ""; position: absolute; inset: 18%; background: radial-gradient(circle, #2a1d16 2px, transparent 3px) 0 0 / 16px 14px; opacity: .7; border-radius: 50%; }
.melon-art .lock-ico { position: absolute; left: 50%; top: 50%; width: 34px; height: 34px; translate: -50% -50%; fill: rgba(255, 255, 255, .88); stroke: #2f5a2c; stroke-width: 1.6; filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .3)); }
.melon:hover .melon-art .rind { transform: rotate(-8deg) scale(1.04); }
.melon-art.open .flesh { clip-path: inset(0 0 0 0); }
.melon-dlg { width: min(560px, calc(100vw - 32px)); }
.drop.sm { padding: 16px; } .drop.sm span { font-size: 15px; }
.melon-previews { display: flex; gap: 8px; flex-wrap: wrap; } .melon-previews:empty { display: none; }
.melon-previews figure { position: relative; margin: 0; width: 76px; height: 76px; border-radius: 14px; overflow: hidden; box-shadow: 0 8px 18px -12px rgba(0, 0, 0, .5); }
.melon-previews img { width: 100%; height: 100%; object-fit: cover; }
.melon-previews .x { position: absolute; top: 2px; right: 2px; background: rgba(0, 0, 0, .5); color: #fff; font-size: 14px; border-radius: 50%; width: 22px; height: 22px; padding: 0; }
.melon-out { display: grid; gap: 4px; padding: 12px 14px; border-radius: 16px; background: linear-gradient(150deg, #f2f8ea, #fdeeea); font-family: var(--hand); font-size: 15.5px; animation: pop .5s var(--spring); }
.melon-out[hidden] { display: none; }
.melon-out b { font-family: var(--display); } .melon-out p { margin: 0; } .melon-out small { color: var(--muted); font-family: var(--sans); font-size: 12px; }
.spin { display: inline-block; width: 14px; height: 14px; margin-right: 8px; vertical-align: -2px; border-radius: 50%; border: 2px solid var(--pink-2); border-top-color: var(--pink); animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(1turn); } }
.melon-lock { max-width: 640px; margin: 0 auto; display: grid; justify-items: center; gap: 16px; padding: 28px 30px 34px; text-align: center; animation: tile-in .9s var(--ease) both; }
.melon-lock .back { justify-self: start; }
.melon-lock .melon-art { width: 160px; height: 160px; animation: breathe 5s ease-in-out infinite; transform-origin: 50% 100%; }
.melon-lock .melon-art .lock-ico { width: 54px; height: 54px; }
.melon-lock .heat { font-size: 20px; }
.melon-read { grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); }
.melon-read:not(:has(> aside)) { grid-template-columns: minmax(0, 900px); justify-content: center; }
.melon-read .meta { align-items: center; flex-wrap: wrap; }
.melon-imgs { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin-top: 18px; }
.melon-imgs img { width: 100%; height: 220px; object-fit: cover; border-radius: 16px; box-shadow: 0 14px 28px -18px rgba(0, 0, 0, .5); transition: transform .4s var(--spring); }
.melon-imgs a:hover img { transform: scale(1.02); }
.form.inline { display: flex; gap: 8px; } .form.inline input { flex: 1; min-width: 0; padding: 8px 12px; font-size: 14px; }
.viewers { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 8px; }
.viewers li { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 14px; background: rgba(255, 255, 255, .55); }
.viewers li > span { flex: 1; display: grid; line-height: 1.3; min-width: 0; } .viewers small { color: var(--muted); font-size: 12px; }
.mg-block { padding: 22px; margin-bottom: 14px; display: grid; gap: 12px; }
.reqs { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.reqs li { display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 1fr) auto auto; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 16px; background: rgba(255, 255, 255, .6); }
.reqs li:has(.viewer-chips) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(220px, 300px); }
.req-who { display: flex; gap: 10px; align-items: center; min-width: 0; } .req-who span { display: grid; line-height: 1.35; min-width: 0; } .req-who small { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.req-melon { display: grid; gap: 2px; min-width: 0; } .req-melon small { color: var(--muted); font-size: 12.5px; }
.reqs time { color: var(--muted); font-size: 12.5px; white-space: nowrap; }
.viewer-chips { display: flex; flex-wrap: wrap; gap: 4px; font-size: 13px; }

@media (max-width: 860px), (max-height: 600px) {
  .hh { grid-template-columns: 1fr; }
  .is-chat .hh-side { display: none; }
  .is-chat .hh-main { height: calc(100svh - 128px); min-height: 420px; }
  .is-chat .stage { padding-bottom: 12px; }
  .is-chat .ask-orb { display: none; }
  .hh-log { padding: 10px 10px 14px; }
  .hh-say { padding: 8px 8px calc(10px + env(safe-area-inset-bottom)); }
  .hh-at { width: 40px; height: 40px; } .hh-row .btn { height: 42px; padding: 0 16px; }
  .notes-room .compose textarea { min-height: 100px; }
  .wall { columns: 2 150px; column-gap: 10px; }
  .melon-read { grid-template-columns: 1fr; }
  .reqs li, .reqs li:has(.viewer-chips) { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .is-chat .hh-main { height: calc(100svh - 150px); }
  .melon { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; padding: 14px; } .melon-art { width: 64px; height: 64px; } .melon-art .lock-ico { width: 26px; height: 26px; }
  .melon-grid { grid-template-columns: 1fr; }
  .wall { columns: 1; }
  .hm-b { max-width: calc(100vw - 150px); }
}

@media (min-width: 861px) and (max-width: 1080px) { .nav a { padding: 7px 10px; font-size: 14px; } }

/* ---------- 入场：袋鼠跳两下 ---------- */
.splash { display: none; }
html.splash-on body { overflow: hidden; }
html.splash-on .splash { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; align-content: center; gap: 4px; background: radial-gradient(120% 90% at 50% 38%, #fffbf2, #f7efe0 55%, #efe3cd); animation: sp-failsafe 0s 7.5s forwards; }
@keyframes sp-failsafe { to { opacity: 0; visibility: hidden; pointer-events: none; } }
.sp-stage { position: relative; width: min(58vw, 300px); padding-top: 34%; }
.sp-roo { position: relative; z-index: 1; display: block; width: 100%; height: auto; transform-origin: 50% 100%; animation: sp-hop .82s infinite; will-change: transform; }
@keyframes sp-hop {
  0% { transform: translateY(0) scale(1.1, .88); animation-timing-function: cubic-bezier(.3, 0, .5, 1); }
  14% { transform: translateY(-5%) scale(.92, 1.1); animation-timing-function: cubic-bezier(.12, .6, .35, 1); }
  50% { transform: translateY(-46%) scale(1, 1) rotate(-4deg); animation-timing-function: cubic-bezier(.65, 0, .88, .45); }
  88% { transform: translateY(0) scale(.95, 1.06) rotate(0); animation-timing-function: ease-out; }
  100% { transform: translateY(0) scale(1.1, .88); }
}
.sp-shadow { position: absolute; left: 14%; right: 14%; bottom: -5%; height: 10%; border-radius: 50%; background: radial-gradient(closest-side, rgba(110, 80, 20, .38), transparent); animation: sp-shadow .82s infinite; }
@keyframes sp-shadow {
  0%, 100% { transform: scale(1.12); opacity: .95; }
  14% { transform: scale(1); opacity: .85; animation-timing-function: cubic-bezier(.12, .6, .35, 1); }
  50% { transform: scale(.5); opacity: .35; animation-timing-function: cubic-bezier(.65, 0, .88, .45); }
  88% { transform: scale(1); opacity: .9; }
}
.sp-word { margin: 26px 0 0; display: grid; justify-items: center; gap: 4px; }
.sp-word b { font-family: var(--display); font-weight: 900; font-size: 30px; letter-spacing: .32em; padding-left: .32em; color: #26221c; }
.sp-word small { font-family: var(--hand); font-size: 15px; color: var(--muted); animation: typing 1.2s ease-in-out infinite; }
/* 离场：在落地那一刻往上一蹦，蹦出画面，幕布散开 */
.splash.out { animation: sp-fade .62s .16s var(--ease) forwards !important; }
.splash.out .sp-roo { animation: sp-leap .7s cubic-bezier(.3, -.25, .6, 1) forwards; }
.splash.out .sp-shadow, .splash.out .sp-word { transition: opacity .3s, transform .5s var(--ease); opacity: 0; transform: translateY(14px); }
@keyframes sp-leap { 0% { transform: scale(1.1, .88); } 22% { transform: translateY(-6%) scale(.9, 1.14); } 100% { transform: translateY(-150%) scale(.5) rotate(-14deg); opacity: 0; } }
@keyframes sp-fade { to { opacity: 0; visibility: hidden; } }
html.splash-on:not(.splash-leaving) .top, html.splash-on:not(.splash-leaving) .stage { opacity: 0; transform: scale(.965); }
.top, .stage { transition: opacity .7s var(--ease), transform .9s var(--spring); }

/* ---------- 从众帮头部：回到上一级桑哈帅 ---------- */
.crumb { flex: none; display: grid; place-items: center; transition: transform .5s var(--spring); }
.crumb img, .roo-mark { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; object-position: 50% 6%; background: #fff1bf; box-shadow: inset 0 0 0 2px #fff, 0 4px 10px -4px rgba(120, 90, 10, .5); }
.crumb:hover { transform: translateY(-2px) rotate(-8deg); }
.crumb-sep { flex: none; margin: 0 -10px; color: var(--muted); font-family: var(--latin); font-size: 22px; }
.roo-mark { width: 38px; height: 38px; filter: none; }

/* ---------- 总站：桑哈帅（上面一条横幅，下面三扇门）---------- */
.hub { height: 100%; display: grid; gap: var(--gap); grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.25fr) minmax(0, .8fr); grid-template-rows: minmax(0, .92fr) minmax(0, 1fr); grid-template-areas: "hero hero hero" "czb ideas soon"; }
.hub > .tile { animation: tile-in .9s var(--ease) both; }
.hub > .tile:nth-child(2) { animation-delay: .08s; } .hub > .tile:nth-child(3) { animation-delay: .14s; } .hub > .tile:nth-child(4) { animation-delay: .2s; }
.h-hero { grid-area: hero; position: relative; overflow: hidden; container-type: inline-size; display: flex; flex-direction: row; align-items: center; justify-content: flex-start; padding: clamp(18px, 2.2vw, 34px) clamp(24px, 3.4vw, 56px) 60px; background: radial-gradient(60% 120% at 82% 90%, rgba(255, 216, 90, .34), transparent 70%), var(--glass); }
.h-copy { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 8px; max-width: 56%; }
.h-hero .display { font-size: clamp(48px, 7.4cqw, 112px); margin: 2px 0; }
.h-hero .lede { max-width: 30em; }
.h-roo { position: absolute; z-index: 1; right: 7%; bottom: 34px; height: calc(100% - 52px); aspect-ratio: 508 / 620; border: 0; padding: 0; background: none; cursor: pointer; }
.h-roo img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: bottom; transform-origin: 50% 100%; animation: roo-idle 3.4s ease-in-out infinite; filter: drop-shadow(0 20px 22px rgba(130, 95, 10, .22)); }
@keyframes roo-idle { 0%, 100% { transform: scale(1, 1) rotate(0); } 50% { transform: scale(1.018, .982) rotate(.8deg); } }
.h-roo.hop img { animation: sp-hop .82s 2; }
.h-roo-shadow { position: absolute; left: 16%; right: 16%; bottom: -3%; height: 7%; border-radius: 50%; background: radial-gradient(closest-side, rgba(110, 80, 20, .3), transparent); z-index: -1; }
.h-roo.hop .h-roo-shadow { animation: sp-shadow .82s 2; }
.tape { position: absolute; z-index: 3; left: -4%; right: -4%; bottom: 14px; height: 32px; rotate: -1.2deg; display: flex; align-items: center; overflow: hidden; background: repeating-linear-gradient(-45deg, #f2c230 0 18px, #24221d 18px 36px); box-shadow: 0 10px 20px -10px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .4); }
.tape-run { display: flex; white-space: nowrap; animation: tape 30s linear infinite; }
.tape-run span { margin: 0 10px; padding: 1px 12px; border-radius: 4px; background: #f2c230; color: #24221d; font-size: 12px; font-weight: 800; letter-spacing: .14em; }
@keyframes tape { to { transform: translateX(-50%); } }

/* 三扇门 */
.h-door { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; padding: 0; }
.h-door-copy { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 6px; padding: 22px 24px; }
.h-door h2 { font-family: var(--display); font-weight: 900; font-size: clamp(32px, 3vw, 50px); letter-spacing: .1em; line-height: 1.1; }
.h-door-copy > p:not(.h-stats) { font-family: var(--hand); font-size: 15.5px; color: var(--ink-2); max-width: 22em; }
.h-go { position: absolute; z-index: 2; right: 18px; bottom: 18px; display: inline-flex; align-items: center; gap: 8px; padding: 11px 20px; border-radius: 99px; background: var(--ink); color: var(--bg); font-size: 14.5px; box-shadow: 0 16px 30px -14px rgba(0, 0, 0, .6); transition: transform .5s var(--spring); }
.h-go i { font-style: normal; transition: transform .4s var(--spring); }
a.h-door:hover .h-go { transform: translateY(-2px) scale(1.04); } a.h-door:hover .h-go i { transform: translateX(5px); }

.h-portal { grid-area: czb; }
.h-portal-art { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; object-position: 55% 70%; transition: transform 1.4s var(--ease); }
.h-portal:hover .h-portal-art { transform: scale(1.05); }
.h-portal .h-door-copy { flex: 1; background: linear-gradient(180deg, rgba(255, 251, 243, .95) 0%, rgba(255, 251, 243, .78) 46%, rgba(255, 251, 243, 0) 78%); }
.h-stats { display: flex; flex-wrap: wrap; gap: 2px 14px; font-size: 12.5px; color: var(--ink-2); }
.h-stats b { font-family: var(--latin); font-weight: 400; font-size: 22px; margin-right: 3px; color: var(--ink); }

.h-ideas { grid-area: ideas; background: radial-gradient(80% 70% at 100% 100%, rgba(244, 190, 178, .35), transparent 70%), var(--glass); }
.h-pins { position: relative; flex: 1; min-height: 0; display: flex; flex-wrap: wrap; align-content: flex-start; gap: 10px; padding: 2px 24px 0; margin-bottom: 70px; overflow: hidden; }
.pin { --h: 40; max-width: calc(33% - 7px); padding: 10px 12px 8px; border-radius: 4px 14px 14px 14px; background: linear-gradient(160deg, hsl(var(--h) 80% 96%), hsl(var(--h) 62% 89%)); box-shadow: 0 12px 22px -16px hsl(var(--h) 40% 30% / .7), inset 0 1px 0 #fff; font-family: var(--hand); font-size: 14px; line-height: 1.5; color: var(--ink); rotate: -2deg; transition: rotate .5s var(--spring), transform .5s var(--spring); }
.pin:nth-child(2) { rotate: 2.5deg; margin-top: 10px; } .pin:nth-child(3) { rotate: -1deg; }
.pin small { display: block; margin-top: 4px; font-family: var(--sans); font-size: 11.5px; color: var(--muted); }
.h-ideas:hover .pin { rotate: 0deg; transform: translateY(-2px); }

.h-soon { grid-area: soon; justify-content: center; align-items: center; gap: 6px; padding: 22px; text-align: center; background: repeating-linear-gradient(-45deg, rgba(242, 194, 48, .1) 0 14px, transparent 14px 28px), rgba(255, 252, 246, .35); box-shadow: inset 0 0 0 2px rgba(70, 55, 30, .14) !important; outline: 2px dashed rgba(70, 55, 30, .22); outline-offset: -10px; }
.h-soon h2 { color: var(--muted); }
.h-soon p { font-family: var(--hand); font-size: 14.5px; color: var(--muted); }
.h-crane { font-size: 46px; animation: crane 3.2s ease-in-out infinite; transform-origin: 30% 100%; }
@keyframes crane { 50% { transform: rotate(-6deg) translateY(-3px); } }

/* 建议墙页面 */
.ideas-room .compose .form { gap: 12px; }
.ideas-room .compose textarea { min-height: 140px; }
.ideas-room [data-who][hidden], .ideas-room [data-only][hidden], .h-thanks[hidden], .ideas-room .form[hidden] { display: none; }
.h-thanks { flex: 1; display: grid; justify-items: center; align-content: center; gap: 8px; text-align: center; padding: 30px 0; animation: pop .6s var(--spring); }
.h-thanks img { width: 96px; height: auto; transform-origin: 50% 100%; animation: sp-hop .82s 3; }
.h-thanks p { display: grid; gap: 2px; margin: 0; } .h-thanks b { font-family: var(--display); font-size: 22px; } .h-thanks span { color: var(--ink-2); }
.idea-wall { columns: 2 280px; column-gap: 14px; padding: 6px 2px 10px; }
.idea { --h: 40; break-inside: avoid; margin: 0 0 14px; padding: 16px 18px 10px; border-radius: 6px 22px 22px 22px; background: linear-gradient(160deg, hsl(var(--h) 80% 97%), hsl(var(--h) 60% 91%)); box-shadow: inset 0 1px 0 #fff, 0 16px 30px -22px hsl(var(--h) 40% 30% / .7); animation: tile-in .7s var(--ease) both; }
.idea > p { margin: 0; font-family: var(--hand); font-size: 17px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
.idea > footer { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 12.5px; }
.idea > footer b { font-weight: 600; color: var(--ink-2); } .idea > footer time { color: var(--muted); }
.idea-replies { list-style: none; margin: 10px 0 0; padding: 8px 0 0; border-top: 1px dashed hsl(var(--h) 30% 60% / .4); display: grid; gap: 6px; }
.idea-replies li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 6px 10px; border-radius: 12px; background: rgba(255, 255, 255, .6); font-size: 14px; }
.idea-replies li b { font-size: 12.5px; color: var(--pink-ink); } .idea-replies li span { flex: 1 1 60%; overflow-wrap: anywhere; } .idea-replies time { font-size: 11.5px; color: var(--muted); }
.idea-reply { margin-top: 8px; }
.idea-reply summary { cursor: pointer; list-style: none; width: fit-content; font-size: 13px; color: var(--ink-2); padding: 3px 10px; border-radius: 99px; background: rgba(255, 255, 255, .6); }
.idea-reply summary::-webkit-details-marker { display: none; }
.idea-reply[open] summary { background: #fff; }
.idea-reply form { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.idea-reply input { flex: 1 1 160px; padding: 8px 12px; font-size: 14px; border-radius: 12px; }
.idea-reply input[name="name"] { flex: 0 1 120px; }

.sg-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; max-width: 860px; }
.sg-list li { padding: 16px 18px; border-radius: 20px; }
.sg-list header { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13.5px; }
.sg-list header a { color: var(--sage); } .sg-list time { margin-left: auto; color: var(--muted); font-size: 12.5px; }
.sg-list p { margin: 8px 0 0; font-family: var(--hand); font-size: 16.5px; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 1100px) {
  .hub { grid-template-columns: 1fr 1fr; grid-template-rows: minmax(0, .82fr) minmax(0, 1fr) minmax(0, .3fr); grid-template-areas: "hero hero" "czb ideas" "soon soon"; }
  .h-soon { padding: 12px 22px; } .h-soon h2 { font-size: 30px; }
  .h-soon { flex-direction: row; gap: 14px; text-align: left; } .h-soon .tk { display: none; } .h-crane { font-size: 34px; }
}
@media (max-width: 860px), (max-height: 600px) {
  .hub { height: auto; grid-template-columns: 1fr; grid-template-rows: none; grid-template-areas: "hero" "czb" "ideas" "soon"; }
  .h-hero { min-height: 470px; align-items: flex-start; padding-bottom: 60px; }
  .h-copy { max-width: 100%; }
  .h-roo { height: 58%; right: 4%; bottom: 40px; }
  .h-portal, .h-ideas { min-height: 300px; }
  .h-soon { min-height: 150px; }
  .idea-wall { columns: 1; }
}

/* ---------- 手机进站提示：先醒目，再收回 ---------- */
.pc-tip { position: fixed; z-index: 2500; top: 24%; left: 50%; width: min(340px, calc(100vw - 40px)); display: grid; justify-items: center; gap: 6px; padding: 26px 24px 22px; border-radius: 30px; text-align: center; background: rgba(255, 252, 246, .97); box-shadow: 0 0 0 100vmax rgba(30, 26, 18, .22), 0 30px 80px -24px rgba(60, 40, 20, .6), inset 0 1px 0 #fff; opacity: 0; transform: translate(-50%, 40px) scale(.82);
  transition: opacity .4s var(--ease), transform .75s var(--spring), top .7s var(--ease), left .7s var(--ease), width .6s var(--ease), padding .6s var(--ease), border-radius .6s var(--ease), box-shadow .6s var(--ease); }
.pc-tip.on { opacity: 1; transform: translate(-50%, 0) scale(1); }
.pc-ico { font-size: 56px; line-height: 1.1; transition: font-size .6s var(--ease); animation: breathe 2.4s ease-in-out infinite; }
.pc-tip p { margin: 0; display: grid; gap: 4px; line-height: 1.4; }
.pc-tip b { font-family: var(--display); font-size: 22px; letter-spacing: .04em; transition: font-size .6s var(--ease); }
.pc-tip small { color: var(--ink-2); font-size: 13.5px; }
.pc-tip .x { position: absolute; top: 10px; right: 12px; }
.pc-tip.mini { top: calc(100% - 66px - env(safe-area-inset-bottom)); left: 12px; width: 200px; padding: 8px 16px 8px 12px; border-radius: 99px; grid-template-columns: auto 1fr; justify-items: start; align-items: center; gap: 8px; text-align: left; transform: none; box-shadow: 0 14px 30px -14px rgba(60, 40, 20, .55), inset 0 1px 0 #fff; }
.pc-tip.mini .pc-ico { font-size: 22px; } .pc-tip.mini b { font-size: 13.5px; } .pc-tip.mini small, .pc-tip.mini .x { display: none; }
.pc-tip.bye { opacity: 0; transform: translateX(-24px) scale(.9); }
.pc-tip.bye:not(.mini) { transform: translate(-50%, 20px) scale(.9); }
