/* 数字字体资源缺失，已移除 @font-face（使用默认字体） */
:root{
  --gift:#e07a3f;
  --bg:#f3eadf;
  --bg2:#efe3d5;
  --card:rgba(255,251,245,.76);
  --card-strong:rgba(255,252,247,.9);
  --line:rgba(125,92,54,.10);
  --line-strong:rgba(125,92,54,.16);
  --text:#2f2b27;
  --muted:#8b8177;
  --muted2:#aaa097;
  --orange:#ef7f13;
  --orange2:#ff9d18;
  --blue:#567fd7;
  --red:#ef4a5a;
  --shadow:0 16px 42px rgba(91,65,38,.08);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.68),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(255,246,233,.9),transparent 68%),linear-gradient(180deg,#f8f1e8 0,#f2e8dc 48%,#efe2d2 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.12),transparent 15%,transparent 85%,rgba(255,255,255,.13)),radial-gradient(circle at 10% 55%,rgba(239,127,19,.025) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(107,93,205,.03) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(255,252,247,.84),rgba(255,249,240,.70));
  --tab-border:rgba(255,255,255,.78);
  --tab-indicator:linear-gradient(145deg,rgba(255,232,196,.98),rgba(252,214,160,.92));
  --tab-indicator-border:rgba(230,180,110,.55);
  --btn-grad:linear-gradient(145deg,#fffdf8,#f9f0e2);
  --btn-border:rgba(230,174,86,.30);
  --btn-ink:#c98a2e;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;color:var(--text);font-family:inherit,Georgia,"Times New Roman","Songti SC","SimSun",serif;background:var(--bg-grad);background-attachment:fixed}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:var(--deco-grad);background-size:auto,38px 38px,50px 50px}
a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.wrap{width:min(1120px,calc(100% - 26px));margin:auto}.top{height:66px;display:flex;align-items:center;gap:22px}.site-header{position:sticky;top:0;z-index:100;background:rgba(250,246,240,.72);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.45);transform: translateY(0);opacity:1;transition:transform .46s cubic-bezier(.22,.61,.36,1),opacity .34s ease;will-change:transform,opacity}.site-header.nav-hidden{transform:translateY(calc(-100% - 8px));opacity:.15}.site-header.nav-visible{transform: translateY(0);opacity:1}

.hero-stage{position:relative;height:clamp(430px,60vh,620px);min-height:430px;background-image:linear-gradient(90deg,rgba(31,25,25,.42) 0%,rgba(46,36,31,.14) 43%,rgba(255,236,211,.03) 100%),url(../images/hero-bg.jpg);background-size:cover;background-position:center 46%;overflow:visible;border-bottom:0}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,32,.40) 0%,rgba(20,18,32,.14) 46%,rgba(20,18,32,.02) 74%,transparent 100%);pointer-events:none}
.hero-copy{position:absolute;z-index:4;top:32%;left:50%;transform:translate(-50%,-50%);width:min(760px,88vw);text-align:center;color:white;text-shadow:0 3px 20px rgba(43,29,21,.28)}
.hero-copy h1{margin:0;font-size:clamp(48px,6vw,82px);line-height:.95;letter-spacing:-.035em;font-weight:800}
.hero-copy p{margin:18px 0 0;font-size:clamp(14px,1.5vw,19px);letter-spacing:.12em;color:rgba(255,255,255,.88)}
.hero-wave{position:absolute;z-index:3;left:0;bottom:-1px;width:100%;height:60px;overflow:hidden;pointer-events:none;display:none}.hero-wave svg{display:block;flex:0 0 calc(50% + 1px);width:calc(50% + 1px);height:100%;margin-right:-1px}.hero-wave path{fill:#f7efe5}.wave-track{display:flex;width:200%;height:100%;will-change:transform;transform:translateZ(0)}.wave-track-front{animation:waveFlowFront 12s linear infinite}.wave-track-back{animation:waveFlowBack 18s linear infinite}.wave-back{bottom:3px;height:54px;opacity:.76}.wave-back path{fill:rgba(255,255,255,.70)}.wave-front{z-index:4;bottom:-2px}@keyframes waveFlowFront{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}@keyframes waveFlowBack{from{transform:translate3d(-50%,0,0)}to{transform:translate3d(0,0,0)}}@media(prefers-reduced-motion:reduce){.wave-track{animation:none!important}}
.hero-search{position:absolute;z-index:8;left:50%;bottom:-24px;transform:translateX(-50%);width:min(650px,calc(100% - 32px));height:58px;border-radius:22px;display:flex;align-items:center;gap:12px;padding:0 20px;background:rgba(255,252,248,.93);box-shadow:0 16px 38px rgba(98,72,47,.13)}
.hero-search>span{font:700 28px/1 "WendaoGalaxyNumber",Arial,sans-serif;color:#a6a09a;transform:rotate(-16deg)}.hero-search input{flex:1;border:0;outline:0;background:transparent;color:#4b4540;font-size:14px}.hero-search input::placeholder{color:#b1aaa3}
.hero-search-results{display:none;position:absolute;left:0;right:0;top:68px;padding:8px;background:rgba(255,252,248,.98);border:1px solid rgba(135,104,74,.11);border-radius:16px;box-shadow:0 18px 45px rgba(82,58,34,.14)}.hero-search-results.open{display:block}.hero-search-results a{display:block;padding:10px 12px;border-radius:11px}.hero-search-results a:hover{background:rgba(239,127,19,.06)}.hero-search-results strong{display:block;font-size:12px}.hero-search-results small{display:block;margin-top:4px;color:#9c9289;font-size:9px}
.home-wrap{padding-top:54px!important}
@media(max-width:720px){.hero-stage{height:52vh;min-height:390px;background-position:54% center}.hero-copy{top:33%}.hero-copy h1{font-size:44px}.hero-copy p{font-size:12px}.hero-wave{height:44px}.wave-back{bottom:2px;height:42px}.hero-search{height:54px;bottom:-20px}.home-wrap{padding-top:46px!important}}
.brand{font-weight:800;font-size:21px;letter-spacing:.01em}.brand .apost{color:var(--orange);font-size:24px}.top nav{margin-left:auto;display:flex;align-items:center;gap:20px}.top nav a{position:relative;font-size:13px;font-weight:700;color:#504943;padding:24px 0 19px}.top nav a:hover,.top nav a.active{color:var(--orange)}.top nav a.active:after{content:"";position:absolute;left:50%;bottom:10px;width:4px;height:4px;border-radius:50%;background:var(--orange);transform:translateX(-50%)}.header-actions{display:flex;align-items:center;gap:10px}.round-btn{width:30px;height:30px;border-radius:50%;border:1px solid rgba(230,174,86,.35);background:linear-gradient(#fff8e8,#fff0c8);color:#b87919;display:grid;place-items:center;box-shadow:0 5px 16px rgba(150,110,40,.12);font-size:11px}.moon-btn{border:0;background:transparent;color:#4f4c48;font-size:18px;cursor:pointer}
.home-wrap{padding-top:6px;padding-bottom:50px}.home-grid{display:grid;grid-template-columns:245px minmax(0,1fr) 250px;gap:18px;align-items:start}.left-column,.right-column{display:flex;flex-direction:column;gap:16px}.soft-card{background:linear-gradient(145deg,rgba(255,252,247,.86),rgba(255,249,240,.72));border:1px solid rgba(255,255,255,.76);box-shadow:var(--shadow);border-radius:20px;backdrop-filter:blur(14px)}
.profile-card{position:relative;padding:23px 18px 20px;text-align:center;overflow:hidden}.avatar-frame{width:90px;height:90px;margin:0 auto 14px;border-radius:17px;padding:4px;background:linear-gradient(145deg,#ffb92b,#ef8b0b);box-shadow:0 10px 22px rgba(239,127,19,.16)}.avatar-frame img{width:100%;height:100%;object-fit:cover;border-radius:13px;background:#eee}.profile-card h2{margin:0;font-size:20px}.profile-card .bio{font-size:11px;line-height:1.55;color:#746d66;margin:7px auto 14px;max-width:205px}.social-row{display:flex;justify-content:center;gap:8px;margin-bottom:17px}.social-row span{width:31px;height:31px;border-radius:10px;background:rgba(255,255,255,.78);border:1px solid var(--line);display:grid;place-items:center;font-size:12px;color:#5d5a56;box-shadow:0 4px 10px rgba(80,60,40,.05)}.profile-stats{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);padding-top:13px}.profile-stats span{font-size:9px;color:#7f756c}.profile-stats b{display:block;font:700 13px/1.1 "WendaoGalaxyNumber",Georgia,serif;margin-bottom:3px}.profile-stats span:nth-child(1) b{color:#427bd3}.profile-stats span:nth-child(2) b{color:#ee6b18}.profile-stats span:nth-child(3) b{color:#e83c61}.profile-stats span:nth-child(4) b{color:#8b6cd9}.profile-stats span:nth-child(5) b{color:#d99a55}.profile-stats span:nth-child(5) b{color:#d99a55}.stat-gift{cursor:help}
.nav-card{padding:16px 14px}.nav-card h3{font-size:14px;margin:0 0 10px 5px}.nav-list{display:flex;flex-direction:column}.nav-list a{display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;font-size:12px;color:#4f4a46}.nav-list a:hover{background:rgba(239,127,19,.06);color:var(--orange)}.nav-icon{width:18px;color:#9a8f85;text-align:center}.clock-card{padding:19px;text-align:center}.clock-card strong{display:block;font:700 31px/1.1 "WendaoGalaxyNumber",ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:2px;color:#2e3641}.clock-card small{display:block;margin-top:7px;color:#aaa097;font-size:9px}
.center-column{min-width:0}.post-feed{display:flex;flex-direction:column;gap:15px}.post-main{padding:22px 24px;min-width:0}.post-main h2{font-size:18px;line-height:1.35;margin:0 0 12px;font-weight:700}.post-main p{font-size:11px;color:#837a72;line-height:1.55;margin:0 0 19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-meta{display:flex;align-items:center;gap:10px;color:#aba198;font:10px "WendaoGalaxyNumber",ui-monospace,Menlo,monospace}.post-meta .views:before{content:"◉";margin-right: 20px;color:#a69a8e}.post-tags{margin-left:auto;display:flex;gap:5px}.post-tags span{font:700 9px "WendaoGalaxyNumber",Georgia,serif;color:#ef7f13;background:rgba(255,249,228,.8);padding:2px 6px;border-radius:9px}
.music-card{padding:25px 20px 21px;background:color-mix(in srgb,var(--card-strong,var(--card)) calc(var(--music-opacity,1)*100%),transparent)}.music-head{display:flex;gap:14px;align-items:center}.disc{width:70px;height:70px;border-radius:50%;background:conic-gradient(#0d3645,#5c2e28,#0d3645,#ba762e,#0d3645);position:relative;box-shadow:0 5px 15px rgba(0,0,0,.13)}.disc:after{content:"";position:absolute;inset:24px;border-radius:50%;background:#e7e1d4;border:8px solid #dfe5e8}.music-label{font:700 9px "WendaoGalaxyNumber",ui-monospace,Menlo,monospace;color:#e27008;background:#fffaf0;border:1px solid #f3e9db;padding:2px 7px;border-radius:99px}.music-card h3{font-size:20px;margin:4px 0 2px}.music-card p{margin:0;color:#665e57;font-size:11px}.author{font-size:10px;color:#ef7f13;font-weight:700;margin:15px 0}.progress-line{display:grid;grid-template-columns:38px 1fr 38px;gap:8px;align-items:center;font:700 9px "WendaoGalaxyNumber",ui-monospace,monospace;color:#536578}.bar{height:5px;background:#e8d5bf;border-radius:99px;position:relative}.bar:before{content:"";position:absolute;left:0;top:0;bottom:0;width:9%;background:#b65b0c;border-radius:99px}.controls{display:flex;align-items:center;justify-content:space-between;padding:14px 6px 0;color:#4e4a46}.play{width:45px;height:45px;border:0;border-radius:50%;background:#ff9208;color:white;box-shadow:0 7px 18px rgba(239,127,19,.25);font-size:17px;cursor:pointer}
.weather-card{padding:18px}.weather-title{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700}.weather-title small{font-size:8px;color:#aaa097;font-weight:400}.weather-now{display:grid;grid-template-columns:1fr 72px;align-items:center;padding:24px 0 17px;border-bottom:1px solid var(--line)}.weather-temp{font-size:48px;line-height:.9}.weather-temp sup{font-size:20px}.weather-desc{font-size:11px;margin-top:13px}.weather-icon{width:70px;height:70px;border-radius:22px;background:#fff5d7;display:grid;place-items:center;font-size:35px}.forecast{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:14px}.forecast div{background:rgba(255,255,255,.34);border-radius:14px;padding:10px 4px;text-align:center;font-size:8px}.forecast b{display:block;font-size:10px;margin-top:5px}.weather-extra{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}.weather-extra span{display:block;background:rgba(255,255,255,.3);border-radius:12px;text-align:center;padding:9px 3px;font-size:8px;color:#8f857b}.weather-extra b{display:block;color:#4f4a45;font-size:9px;margin-top:4px}
.calendar-card{padding:15px 17px}.calendar-card h3{font-size:12px;margin:0 0 12px}.cal-week,.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.cal-week span{font-size:8px;color:#7990b4}.cal-days span{font-size:9px;color:#756e68;padding:4px 0}.cal-days .today{background:#ff930d;color:#fff;border-radius:50%}
.pagehead,.glass,.card,.article,.archive,.gallery figure{background:linear-gradient(145deg,rgba(255,252,247,.86),rgba(255,249,240,.72));border:1px solid rgba(255,255,255,.76);box-shadow:var(--shadow);border-radius:20px}.pagehead{padding:28px;margin:14px 0}.pagehead h1{margin:0}.pagehead p{color:var(--muted)}.archive{padding:10px 18px}.archive a{display:grid;grid-template-columns:110px 1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.archive time,.archive span{font-size:9px;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.card{padding:20px}.card p{color:var(--muted);font-size:11px;line-height:1.7}.gallery{columns:3 240px;column-gap:12px}.gallery figure{break-inside:avoid;padding:8px;margin:0 0 12px}.gallery img{width:100%;display:block;border-radius:14px}.gallery figcaption{padding:8px 4px;color:var(--muted);font-size:10px}.article{padding:34px;margin-top:16px}.article h1{font-size:clamp(36px,6vw,58px);line-height:1.05}.article .lead{font-size:14px;color:var(--muted)}.markdown{line-height:1.9;color:#5f5852}.markdown h2{color:var(--text);margin-top:32px}.markdown pre{overflow:auto;background:#2f2b27;color:#fff7ec;padding:14px;border-radius:11px}.footer{text-align:center;color:#9d9388;font-size:10px;padding:28px 0 44px}.empty{padding:40px;text-align:center;color:var(--muted)}
#fxCanvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:9999}.petal{position:fixed;top:-30px;z-index:6;pointer-events:none;width:9px;height:15px;border-radius:80% 20% 75% 25%;background:linear-gradient(135deg,#f28bc1,#f5b4d4);opacity:.65;filter:blur(.1px);animation:petalFall linear forwards}.petal.purple{background:linear-gradient(135deg,#a996ff,#806ee8)}.petal.orange{background:linear-gradient(135deg,#ffc46b,#f08a25)}@keyframes petalFall{0%{transform:translate3d(0,-30px,0) rotate(0deg)}50%{transform:translate3d(var(--drift),50vh,0) rotate(190deg)}100%{transform:translate3d(calc(var(--drift)*-.45),105vh,0) rotate(390deg);opacity:.15}}

.mobile{display:none}
@media(max-width:980px){.home-grid{grid-template-columns:220px 1fr}.right-column{display:none}}
@media(max-width:720px){.wrap{width:calc(100% - 14px)}.top{height:56px}.top nav{display:none}.home-grid{grid-template-columns:1fr}.left-column{order:1}.center-column{order:2}.nav-card,.clock-card{display:none}.profile-card{display:grid;grid-template-columns:78px 1fr;gap:5px 12px;text-align:left;padding:15px}.avatar-frame{grid-row:1/4;width:74px;height:74px;margin:0}.profile-card h2{align-self:end}.profile-card .bio{margin:0;max-width:none}.social-row{justify-content:flex-start;margin:3px 0}.profile-stats{grid-column:1/-1}.post-main{padding:17px}.post-main h2{font-size:16px}.post-main p{white-space:normal}.cards{grid-template-columns:1fr}.archive a{grid-template-columns:80px 1fr}.archive span{display:none}.article{padding:22px 17px}.chat-box{right: 20px;width:calc(100% - 20px)}.mobile{display:flex;position:fixed;left:50%;bottom:10px;transform:translateX(-50%);z-index:60;background:rgba(255,252,247,.94);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:14px;padding:5px;box-shadow:var(--shadow)}.mobile a{padding:9px 10px;font-size:9px}.footer{padding-bottom:80px}}

/* Card depth hover — desktop pointer devices */
@media (hover:hover) and (pointer:fine){
  .soft-card,
  .card,
  .gallery figure,
  .archive,
  .pagehead{
    position:relative;
    transition:transform .34s cubic-bezier(.22,.61,.36,1),
               box-shadow .34s ease,
               border-color .34s ease;
    will-change:transform;
  }

  .soft-card:hover,
  .card:hover,
  .gallery figure:hover{
    transform:translateY(-7px) scale(1.012);
    border-color:rgba(255,255,255,.98);
    background:linear-gradient(145deg,rgba(255,254,251,.96),rgba(255,249,239,.84));
    box-shadow:
      0 28px 58px rgba(91,65,38,.16),
      0 10px 20px rgba(239,127,19,.055),
      inset 0 1px 0 rgba(255,255,255,.92);
    z-index:5;
  }
  

  .music-card:hover .disc{transform:rotate(8deg) scale(1.03)}
  .disc{transition:transform .4s cubic-bezier(.22,.61,.36,1)}
}

/* === Desktop scale tuning: match the larger reference layout === */
@media (min-width:981px){
  .wrap{width:min(1205px,calc(100% - 32px))}
  .home-grid{grid-template-columns:262px minmax(0,1fr) 282px;gap:23px}
  .left-column,.right-column{gap:23px}

  .soft-card{border-radius:22px}

  .profile-card{padding:25px 20px 22px}
  .avatar-frame{width:96px;height:96px;margin-bottom:16px;border-radius:19px}
  .avatar-frame img{border-radius:15px}
  .profile-card h2{font-size:22px}
  .profile-card .bio{font-size:12.5px;line-height:1.58;margin:8px auto 16px;max-width:220px}
  .social-row{gap:8px;margin-bottom:19px}
  .social-row span{width:34px;height:34px;border-radius:11px;font-size:13px}
  .profile-stats{padding-top:17px}
  .profile-stats span{font-size:10px}
  .profile-stats b{font-size:19px;margin-bottom:5px}

  .nav-card{padding:18px 16px 19px}
  .nav-card h3{font-size:15px;margin:0 0 11px 5px}
  .nav-list a{gap:13px;padding:11px 10px;font-size:13px}
  .nav-icon{width:19px}

  .clock-card{padding:21px 18px}
  .clock-card strong{font-size:33px;letter-spacing:2.4px}
  .clock-card small{margin-top:7px;font-size:9px}

  .post-feed{gap:22px}
  .post-main{padding:19px 25px 16px;display:flex;flex-direction:column;overflow:hidden}
  .post-main h2{font-size:20px;line-height:1.25;margin:0 0 7px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  .post-main p{font-size:13px;line-height:1.45;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .post-meta{gap:11px;font-size:11px;margin-top:auto;font-family:inherit,Georgia,"Times New Roman","Songti SC","SimSun",serif;font-variant-numeric:lining-nums tabular-nums}
  .post-tags{gap:6px}
  .post-tags span{font-size:10px;padding:2px 7px}

  .music-card{padding:27px 22px 23px}
  .music-head{gap:15px}
  .disc{width:76px;height:76px}
  .disc:after{inset:26px}
  .music-label{font-size:9px;padding:2px 7px}
  .music-card h3{font-size:22px;margin:5px 0 2px}
  .music-card p{font-size:12px}
  .author{font-size:11px;margin:17px 0}
  .progress-line{grid-template-columns:40px 1fr 40px;gap:9px;font-size:10px}
  .controls{padding:16px 7px 0;font-size:15px}
  .play{width:47px;height:47px;font-size:18px}

  .weather-card{padding:21px 20px 19px}
  .weather-title{font-size:13px}
  .weather-title small{font-size:8.5px}
  .weather-now{grid-template-columns:1fr 78px;padding:27px 0 21px}
  .weather-temp{font-size:52px}
  .weather-temp sup{font-size:21px}
  .weather-desc{font-size:12px;margin-top:13px}
  .weather-icon{width:76px;height:76px;border-radius:23px;font-size:37px}
  .forecast-label{margin-top:17px;font-size:10px;color:#a59a90}
  .forecast{gap:8px;margin-top:10px}
  .forecast div{border-radius:15px;padding:13px 4px 12px;font-size:8.5px;min-height:73px}
  .forecast b{font-size:10.5px;margin-top:7px}
  .weather-extra{gap:7px;margin-top:16px}
  .weather-extra span{border-radius:13px;padding:11px 3px;font-size:8.5px}
  .weather-extra b{font-size:9.5px;margin-top:5px}

  .calendar-card{padding:18px 19px 20px}
  .calendar-card h3{font-size:13px;margin-bottom:14px}
  .cal-week,.cal-days{gap:6px}
  .cal-week span{font-size:8.5px}
  .cal-days span{font-size:9.5px;padding:5px 0}
}

/* === Text clarity fix ===
   Avoid promoting every card to a transformed compositor layer: Chrome can
   rasterize the whole card (including text) at a fractional scale, which
   makes small Chinese text look soft. Keep transforms on demand only and
   use native UI fonts for CJK body copy. */
html,body{
  text-rendering:optimizeLegibility;
  -webkit-text-size-adjust:100%;
}
body{
  font-family:inherit,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC","Segoe UI",Arial,sans-serif;
}

/* Headings keep the editorial serif look, while body/meta text stays crisp. */
.profile-card h2,
.post-main h2,
.music-card h3,
.article h1,
.article h2,
.pagehead h1{
  font-family:inherit,Georgia,"Times New Roman","Songti SC","STSong",serif;
}

@media (hover:hover) and (pointer:fine){
  .soft-card,
  .card,
  .gallery figure,
  .archive,
  .pagehead{
    will-change:auto;
  }
  .soft-card:hover,
  .card:hover,
  .gallery figure:hover{
    transform: translateY(0);
  }
}

@media (min-width:981px){
  /* Integer font sizes avoid half-pixel glyph rasterization. */
  .profile-card .bio{font-size:13px}
  .weather-title small{font-size:9px}
  .forecast div{font-size:9px}
  .forecast b{font-size:11px}
  .weather-extra span{font-size:9px}
  .weather-extra b{font-size:10px}
  .cal-week span{font-size:9px}
  .cal-days span{font-size:10px}

  .post-main p{
    font-family:inherit,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC","Segoe UI",Arial,sans-serif;
    font-weight:400;
    color:#746c65;
  }
  .post-meta{
    font-family:inherit,Georgia,"Times New Roman",serif;
    font-size:11px;
    color:#938980;
    font-variant-numeric:lining-nums tabular-nums;
  }
  .post-tags span{
    font-family:inherit,Georgia,"Times New Roman","PingFang SC","Microsoft YaHei",sans-serif;
  }
}

/* Latin/digit readability boost: enlarge only glyphs supplied by WendaoGalaxyNumber.
   Element font-size and card geometry stay unchanged; CJK keeps the fallback font. */

/* ===== 顶部主题切换：两个图标完全重叠，只显示“可切换到”的模式 ===== */

body:is([data-theme="night"],[data-theme="violet"]){
  --bg:#17191d;
  --bg2:#1d2025;
  --card:rgba(31,34,40,.86);
  --card-strong:rgba(37,40,47,.94);
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.13);
  --text:#ece7df;
  --muted:#aaa39b;
  --muted2:#817b75;
  --shadow:0 18px 46px rgba(0,0,0,.30);
  color:var(--text);
  color-scheme:dark;
  background:var(--bg-grad);
  background-attachment:fixed;
}
body:is([data-theme="night"],[data-theme="violet"]):before{background:
  linear-gradient(90deg,rgba(255,255,255,.018),transparent 15%,transparent 85%,rgba(255,255,255,.018)),
  radial-gradient(circle at 10% 55%,rgba(239,127,19,.035) 0 2px,transparent 3px),
  radial-gradient(circle at 85% 70%,rgba(141,131,245,.025) 0 2px,transparent 3px);background-size:auto,38px 38px,50px 50px}
body:is([data-theme="night"],[data-theme="violet"]) .site-header{background:rgba(21,23,27,.82);border-bottom-color:rgba(255,255,255,.055);box-shadow:0 8px 28px rgba(0,0,0,.12)}
body:is([data-theme="night"],[data-theme="violet"]) .brand,body:is([data-theme="night"],[data-theme="violet"]) .top nav a{color:#ded8d0}
body:is([data-theme="night"],[data-theme="violet"]) .top nav a:hover,body:is([data-theme="night"],[data-theme="violet"]) .top nav a.active{color:var(--orange)}
body:is([data-theme="night"],[data-theme="violet"]) .round-btn{background:linear-gradient(#33291f,#29231e);border-color:rgba(239,127,19,.28);color:#efa248;box-shadow:0 5px 16px rgba(0,0,0,.18)}

body:is([data-theme="night"],[data-theme="violet"]) .hero-search{background:rgba(34,37,43,.94);box-shadow:0 16px 38px rgba(0,0,0,.28)}
body:is([data-theme="night"],[data-theme="violet"]) .hero-search input{color:#e9e4dd}
body:is([data-theme="night"],[data-theme="violet"]) .hero-search input::placeholder{color:#827c76}
body:is([data-theme="night"],[data-theme="violet"]) .hero-search-results{background:rgba(34,37,43,.98);border-color:rgba(255,255,255,.08);box-shadow:0 18px 45px rgba(0,0,0,.32)}
body:is([data-theme="night"],[data-theme="violet"]) .hero-search-results a:hover{background:rgba(239,127,19,.10)}
body:is([data-theme="night"],[data-theme="violet"]) .soft-card,body:is([data-theme="night"],[data-theme="violet"]) .glass,body:is([data-theme="night"],[data-theme="violet"]) .card{background:var(--card);border-color:rgba(255,255,255,.065);box-shadow:var(--shadow)}
body:is([data-theme="night"],[data-theme="violet"]) .profile-card .bio,body:is([data-theme="night"],[data-theme="violet"]) .nav-list a,body:is([data-theme="night"],[data-theme="violet"]) .post-main p,body:is([data-theme="night"],[data-theme="violet"]) .author,body:is([data-theme="night"],[data-theme="violet"]) .music-card p,body:is([data-theme="night"],[data-theme="violet"]) .weather-desc,body:is([data-theme="night"],[data-theme="violet"]) .forecast-label,body:is([data-theme="night"],[data-theme="violet"]) .lead,body:is([data-theme="night"],[data-theme="violet"]) .markdown{color:#aaa39b}
body:is([data-theme="night"],[data-theme="violet"]) .social-row span{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.07);color:#c7c0b8;box-shadow:none}
body:is([data-theme="night"],[data-theme="violet"]) .nav-list a:hover{background:rgba(239,127,19,.10)}
body:is([data-theme="night"],[data-theme="violet"]) .nav-icon{color:#8f8982}
body:is([data-theme="night"],[data-theme="violet"]) .clock-card strong{color:#e7e2dc}
body:is([data-theme="night"],[data-theme="violet"]) .clock-card small,body:is([data-theme="night"],[data-theme="violet"]) .profile-stats span,body:is([data-theme="night"],[data-theme="violet"]) .post-meta{color:#8f8881}
body:is([data-theme="night"],[data-theme="violet"]) .post-tags span,body:is([data-theme="night"],[data-theme="violet"]) .music-label{background:rgba(239,127,19,.11);border-color:rgba(239,127,19,.16)}
body:is([data-theme="night"],[data-theme="violet"]) .weather-icon{background:linear-gradient(145deg,#303541,#252a33);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
body:is([data-theme="night"],[data-theme="violet"]) .forecast div{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.055)}
body:is([data-theme="night"],[data-theme="violet"]) .weather-extra{border-top-color:rgba(255,255,255,.07)}
body:is([data-theme="night"],[data-theme="violet"]) .weather-extra span{color:#969089}
body:is([data-theme="night"],[data-theme="violet"]) .weather-extra b{color:#d8d2cb}
body:is([data-theme="night"],[data-theme="violet"]) .cal-week{color:#77716b}
body:is([data-theme="night"],[data-theme="violet"]) .cal-days span{color:#bcb5ad}
body:is([data-theme="night"],[data-theme="violet"]) .cal-days .today{color:#fff;background:linear-gradient(145deg,#ef7f13,#d96e09);box-shadow:0 5px 14px rgba(239,127,19,.24)}
body:is([data-theme="night"],[data-theme="violet"]) .progress-line .bar{background:rgba(255,255,255,.10)}
body:is([data-theme="night"],[data-theme="violet"]) .controls{color:#b8b1aa}
body:is([data-theme="night"],[data-theme="violet"]) .play{background:#ef7f13;color:#fff;box-shadow:0 8px 22px rgba(239,127,19,.25)}
body:is([data-theme="night"],[data-theme="violet"]) .pagehead h1,body:is([data-theme="night"],[data-theme="violet"]) .article h1,body:is([data-theme="night"],[data-theme="violet"]) h1,body:is([data-theme="night"],[data-theme="violet"]) h2,body:is([data-theme="night"],[data-theme="violet"]) h3{color:#eee9e3}
body:is([data-theme="night"],[data-theme="violet"]) .archive a,body:is([data-theme="night"],[data-theme="violet"]) .cards a{border-color:rgba(255,255,255,.07)}
body:is([data-theme="night"],[data-theme="violet"]) .archive a:hover,body:is([data-theme="night"],[data-theme="violet"]) .cards a:hover{background:rgba(255,255,255,.035)}
body:is([data-theme="night"],[data-theme="violet"]) input,body:is([data-theme="night"],[data-theme="violet"]) textarea,body:is([data-theme="night"],[data-theme="violet"]) select{background:#24272d!important;color:#e8e3dc!important;border-color:rgba(255,255,255,.10)!important}
body:is([data-theme="night"],[data-theme="violet"]) input::placeholder,body:is([data-theme="night"],[data-theme="violet"]) textarea::placeholder{color:#77716b}
body:is([data-theme="night"],[data-theme="violet"]) .chat-box{background:#25282e;border-color:rgba(255,255,255,.08);box-shadow:0 20px 55px rgba(0,0,0,.38)}
body:is([data-theme="night"],[data-theme="violet"]) .chat-head{border-bottom-color:rgba(255,255,255,.07)}
body:is([data-theme="night"],[data-theme="violet"]) .chat-bubble{background:#30343b;color:#dcd6cf}
body:is([data-theme="night"],[data-theme="violet"]) .chat-input{border-top-color:rgba(255,255,255,.07)}
body:is([data-theme="night"],[data-theme="violet"]) .footer{color:#77716c}
body:is([data-theme="night"],[data-theme="violet"]) .mobile{background:rgba(24,26,31,.94);border-top-color:rgba(255,255,255,.07)}
body:is([data-theme="night"],[data-theme="violet"]) .mobile a{color:#aaa39b}

/* ===== 2026-08-28 layout & interaction refinements ===== */
.hero-search{display:none!important}
.home-wrap{padding-top:34px!important}

/* Reference-video style hover: subtle lift, no card zoom. */
@media (hover:hover){
  
  .music-card:hover .disc{transform:rotate(3deg) scale(1.008)}
}

/* Smaller day/night switch frame. */
.theme-switch{width:38px;height:38px;border-radius:11px;box-shadow:0 3px 10px rgba(80,60,40,.05)}
.theme-switch img.nav-ico{width:20px;height:20px}
.theme-switch:hover{transform: translateY(0);box-shadow:0 5px 14px rgba(80,60,40,.08)}

/* Clock: time only, larger numerals. */
.clock-card{padding:20px 14px}
.clock-card strong{font-size:40px;letter-spacing:2.6px}
@media (min-width:981px){.clock-card strong{font-size:43px;letter-spacing:3px}}

/* Music controls are real buttons now. */
.controls .music-control{border:0;background:transparent;color:inherit;cursor:pointer;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;padding:0;transition:background .18s ease,transform .18s ease}
.controls .music-control:hover{background:rgba(239,127,19,.08);transform:translateY(-1px)}
.controls .music-control.active{color:var(--orange);background:rgba(239,127,19,.10)}
.progress-line .bar{border:0;padding:0;cursor:pointer;overflow:hidden;width:100%}
.progress-line .bar:before{display:none}
.progress-line .bar i{display:block;width:0;height:100%;background:#b65b0c;border-radius:99px;pointer-events:none}
.disc.playing{animation:musicSpin 6s linear infinite}
@keyframes musicSpin{to{transform:rotate(360deg)}}

/* Right-side replacement personal card is intentionally more compact. */
.side-profile-card{padding:20px 18px 18px}
.side-profile-card .avatar-frame{width:72px;height:72px;margin-bottom:10px}
.side-profile-card h2{font-size:18px}
.side-profile-card .bio{font-size:10.5px;margin:6px auto 11px}
.side-profile-card .social-row{margin-bottom:12px}
.side-profile-card .social-row span{width:28px;height:28px}
.side-profile-card .profile-stats{padding-top:12px}
.side-profile-card .profile-stats b{font-size:16px}

/* Weather card: temperature only, no detailed condition/forecast. */
.weather-temp-only .weather-now{display:block;border-bottom:0;padding:26px 0 8px;text-align:center}
.weather-temp-only .weather-temp{font-size:62px;line-height:1}
.weather-temp-only .weather-title{justify-content:flex-start}

/* ===== 2026-08-28 weather reference + equal side cards ===== */
@media (min-width:981px){
  .home-grid{grid-template-columns:262px minmax(0,1fr) 262px;gap:23px}
}

/* Right personal card now matches the left personal card exactly. */
.side-profile-card{padding:25px 20px 22px}
.side-profile-card .avatar-frame{width:96px;height:96px;margin-bottom:16px;border-radius:19px}
.side-profile-card .avatar-frame img{border-radius:15px}
.side-profile-card h2{font-size:22px}
.side-profile-card .bio{font-size:12.5px;line-height:1.58;margin:8px auto 16px;max-width:220px}
.side-profile-card .social-row{gap:8px;margin-bottom:19px}
.side-profile-card .social-row span{width:31px;height:31px}
.side-profile-card .profile-stats{padding-top:17px}
.side-profile-card .profile-stats b{font-size:19px;margin-bottom:5px}

/* Full weather card based on the supplied reference. */
.weather-card{padding:21px 20px 20px}
.weather-title{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700}
.weather-location{display:flex;align-items:center;gap:5px}
.weather-location:first-letter{color:var(--orange)}
.weather-title small{font-size:8.5px;color:#aaa097;font-weight:400;background:rgba(255,255,255,.42);border:1px solid rgba(229,216,201,.62);padding:6px 9px;border-radius:999px}
.weather-now{display:grid;grid-template-columns:minmax(0,1fr) 78px;align-items:center;padding:26px 0 21px;border-bottom:1px solid var(--line)}
.weather-temp{font:700 53px/.92 "WendaoGalaxyNumber",Georgia,serif;letter-spacing:-1px;color:#2e2a27}
.weather-temp sup{font-size:20px;vertical-align:top;margin-left:2px;font-weight:500}
.weather-desc{font-size:13px;font-weight:700;margin-top:13px;color:#48413b}
.weather-range{font-size:9px;color:#8f857b;margin-top:8px}
.weather-icon{width:76px;height:76px;border-radius:23px;background:linear-gradient(145deg,#fff8e8,#fff2cb);display:grid;place-items:center;color:#ff9000;box-shadow:inset 0 0 0 1px rgba(245,215,155,.22)}
.weather-icon svg{width:45px;height:45px;filter:drop-shadow(0 3px 3px rgba(245,148,0,.12))}
.forecast-label{margin-top:16px;font-size:9.5px;color:#a59a90;font-weight:600}
.forecast{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}
.forecast div{display:flex;flex-direction:column;align-items:center;min-width:0;background:rgba(255,255,255,.31);border:1px solid rgba(255,255,255,.28);border-radius:15px;padding:11px 3px 10px;font-size:8.5px;color:#5d554e}
.forecast div.is-now span{color:#f07c08;font-weight:700}
.forecast i{font-style:normal;font-size:15px;line-height:1;margin:10px 0 7px;color:#66605a}
.forecast b{display:block;font:700 11px "WendaoGalaxyNumber",Georgia,serif;margin:0;color:#342f2b}
.forecast em{font-style:normal;color:#42a9e8;font:700 8px "WendaoGalaxyNumber",ui-monospace,monospace;margin-top:7px;min-height:10px}
.weather-extra{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:16px}
.weather-extra span{display:block;background:rgba(255,255,255,.28);border-radius:13px;text-align:center;padding:10px 3px 9px;font-size:8.5px;color:#999087;white-space:nowrap}
.weather-extra span>i{font-style:normal;color:#aba39b;margin-right:2px}
.weather-extra b{display:block;color:#4f4a45;font:700 10px "WendaoGalaxyNumber",Georgia,serif;margin-top:6px}

body:is([data-theme="night"],[data-theme="violet"]) .weather-title small{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.07);color:#9c958e}
body:is([data-theme="night"],[data-theme="violet"]) .weather-temp,body:is([data-theme="night"],[data-theme="violet"]) .weather-desc{color:#ebe5de}
body:is([data-theme="night"],[data-theme="violet"]) .weather-range{color:#918a83}
body:is([data-theme="night"],[data-theme="violet"]) .weather-icon{background:linear-gradient(145deg,#303541,#252a33);color:#ffa31a}
body:is([data-theme="night"],[data-theme="violet"]) .forecast div,body:is([data-theme="night"],[data-theme="violet"]) .weather-extra span{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.055)}
body:is([data-theme="night"],[data-theme="violet"]) .forecast i,body:is([data-theme="night"],[data-theme="violet"]) .forecast b,body:is([data-theme="night"],[data-theme="violet"]) .weather-extra b{color:#d8d2cb}

@media(max-width:720px){
  .side-profile-card{padding:15px;grid-template-columns:78px 1fr}
  .side-profile-card .avatar-frame{width:74px;height:74px;margin:0}
  .side-profile-card h2{font-size:20px}
}

/* 2026-08-28: force both desktop personal cards to use the exact same box model. */
@media (min-width:981px){
  .left-column > .profile-card,
  .right-column > .profile-card{
    width:100%;
    box-sizing:border-box;
    padding:25px 20px 22px;
  }
  .left-column > .profile-card .avatar-frame,
  .right-column > .profile-card .avatar-frame{width:96px;height:96px;margin-bottom:16px;border-radius:19px}
  .left-column > .profile-card .avatar-frame img,
  .right-column > .profile-card .avatar-frame img{border-radius:15px}
  .left-column > .profile-card h2,
  .right-column > .profile-card h2{font-size:22px}
  .left-column > .profile-card .bio,
  .right-column > .profile-card .bio{font-size:12.5px;line-height:1.58;margin:8px auto 16px;max-width:220px}
  .left-column > .profile-card .social-row,
  .right-column > .profile-card .social-row{gap:8px;margin-bottom:19px}
  .left-column > .profile-card .social-row span,
  .right-column > .profile-card .social-row span{width:34px;height:34px;border-radius:11px;font-size:13px}
  .left-column > .profile-card .profile-stats,
  .right-column > .profile-card .profile-stats{padding-top:17px}
  .left-column > .profile-card .profile-stats span,
  .right-column > .profile-card .profile-stats span{font-size:10px}
  .left-column > .profile-card .profile-stats b,
  .right-column > .profile-card .profile-stats b{font-size:19px;margin-bottom:5px}
}

/* ===== Realtime weather + realtime calendar + system-font small numerals ===== */
.weather-card .weather-title small,
.weather-card .weather-range,
.weather-card .forecast,
.weather-card .forecast span,
.weather-card .forecast b,
.weather-card .forecast em,
.weather-card .weather-extra,
.weather-card .weather-extra span,
.weather-card .weather-extra b,
.calendar-card .cal-week,
.calendar-card .cal-days,
.calendar-card .cal-days span{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif !important;
  font-variant-numeric:tabular-nums;
}
.weather-card .forecast b,
.weather-card .forecast em,
.weather-card .weather-extra b{font-weight:700}
.weather-icon{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:36px}
.weather-error .weather-icon{filter:grayscale(.35);opacity:.72}

/* ===== Smooth article enter / return transition ===== */
@view-transition { navigation: auto; }
.article-back{display:inline-flex;align-items:center;gap:7px;margin:0 0 22px;color:var(--muted);text-decoration:none;font-size:13px;transition:transform .2s ease,color .2s ease,opacity .2s ease}
.article-back:hover{transform:translateX(-3px);color:var(--text)}
.article-transition-content{min-width:0}
body.page-leaving main{opacity:0;transform: translateY(0);transition:opacity .18s ease,transform .18s cubic-bezier(.22,.61,.36,1)}
::view-transition-old(root),::view-transition-new(root){animation-duration:.36s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}
::view-transition-old(root){animation-name:frud-page-out}
::view-transition-new(root){animation-name:frud-page-in}
::view-transition-group(*){animation-duration:.40s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}
@keyframes frud-page-out{to{opacity:.15;transform:translateY(-4px)}}
@keyframes frud-page-in{from{opacity:.18;transform:translateY(7px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root),::view-transition-group(*){animation-duration:.01ms!important}.article-back,body.page-leaving main{transition:none!important}}

/* ===== Home content switcher: 动态 / 相册 / 心愿 / 计划 ===== */
.home-content-tabs{margin:0 0 15px;position:relative;z-index:2}
.content-tabs-inner{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto auto;gap:6px;padding:6px;background:var(--tab-grad);border:1px solid var(--tab-border);box-shadow:0 9px 28px rgba(91,65,38,.065);border-radius:19px;backdrop-filter:blur(14px);overflow:visible}
.content-tab{position:relative;z-index:2;min-width:0;border:0;background:transparent;color:var(--muted);border-radius:14px;padding:8px 5px 7px;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font:600 11px/1.1 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;transition:color .22s ease,transform .22s cubic-bezier(.22,.61,.36,1)}
.content-tab:hover{color:var(--text);transform:translateY(-1px)}
.content-tab.theme-switch,.content-tab.admin-tab{width:34px;height:34px;padding:0;margin:auto 0;border-radius:12px;background:var(--tab-grad);border:1px solid var(--tab-border);box-shadow:0 4px 12px rgba(150,110,40,.10);display:grid;place-items:center;flex:none;position:relative;transition:transform .2s ease,box-shadow .2s ease}
.content-tab.theme-switch:hover,.content-tab.admin-tab:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(150,110,40,.16)}
.content-tab.theme-switch svg.luc,.content-tab.admin-tab svg.luc{width:19px;height:19px;stroke:var(--btn-ink);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block}
.content-tab.theme-switch .theme-night-icon,.content-tab.theme-switch .theme-day-icon{position:absolute;inset:0;display:grid;place-items:center;transition:opacity .22s ease,transform .28s ease}
.content-tab.theme-switch .theme-night-icon{opacity:1;transform:scale(1) rotate(0deg)}
.content-tab.theme-switch .theme-day-icon{opacity:0;transform:scale(.7) rotate(-90deg)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab.theme-switch .theme-night-icon{opacity:0;transform:scale(.7) rotate(90deg)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab.theme-switch .theme-day-icon{opacity:1;transform:scale(1) rotate(0deg)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab.theme-switch,body:is([data-theme="night"],[data-theme="violet"]) .content-tab.admin-tab{background:var(--tab-grad);border-color:var(--tab-border);box-shadow:0 4px 12px rgba(0,0,0,.22)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab.theme-switch svg.luc,body:is([data-theme="night"],[data-theme="violet"]) .content-tab.admin-tab svg.luc{stroke:#e9cf9a}
.content-tab:nth-child(6) .i-bg{fill:#eceffb;stroke:#c6cdee}.content-tab:nth-child(6) .i-line{stroke:#6c74a8}.content-tab:nth-child(6) .i-dot{fill:#8f9ad6}
.content-tab:nth-child(7) .i-bg{fill:#fff3e0;stroke:#efd3ac}.content-tab:nth-child(7) .i-line{stroke:#a8793f}.content-tab:nth-child(7) .i-dot{fill:#d9a055}
.content-tab.active{color:var(--text)}
.cute-tab-icon{width:29px;height:29px;display:block;flex:0 0 auto;transform-origin:50% 70%;transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.content-tab:hover .cute-tab-icon{transform:translateY(-1px) rotate(-2deg)}
.content-tab.active .cute-tab-icon{transform:translateY(-1px) scale(1.05)}
.cute-tab-icon svg{width:100%;height:100%;display:block;overflow:visible}
.cute-tab-icon .i-bg{fill:#fff1df;stroke:#f3c58f;stroke-width:1.1}
.cute-tab-icon .i-line{fill:none;stroke:#9d6a43;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}
.cute-tab-icon .i-dot{fill:#e78b54}
.content-tab:nth-child(2) .i-bg{fill:#eaf5ff;stroke:#bcd9ef}.content-tab:nth-child(2) .i-line{stroke:#6488a0}.content-tab:nth-child(2) .i-dot{fill:#73afd2}
.content-tab:nth-child(3) .i-bg{fill:#fff0f3;stroke:#efc0cb}.content-tab:nth-child(3) .i-line{stroke:#a86575}.content-tab:nth-child(3) .i-dot{fill:#df8698}
.content-tab:nth-child(4) .i-bg{fill:#f2edff;stroke:#d3c4ef}.content-tab:nth-child(4) .i-line{stroke:#8069a8}.content-tab:nth-child(4) .i-dot{fill:#a18bd1}
.content-tab:nth-child(5) .i-bg{fill:#edfaef;stroke:#c5e3c8}.content-tab:nth-child(5) .i-line{stroke:#63866a}.content-tab:nth-child(5) .i-dot{fill:#7faf85}
.content-tab-indicator{position:absolute;z-index:1;left:0;top:6px;height:calc(100% - 12px);border-radius:14px;background:var(--tab-grad);border:1px solid var(--tab-border);box-shadow:0 5px 15px rgba(104,75,47,.075);pointer-events:none;transition:transform .34s cubic-bezier(.22,.72,.2,1),width .34s cubic-bezier(.22,.72,.2,1)}

/* cards shown by non-article tabs */
.switch-card{min-height:146px;box-sizing:border-box;display:grid;grid-template-columns:150px minmax(0,1fr);overflow:hidden;text-decoration:none;color:inherit;position:relative;transition:transform .22s cubic-bezier(.22,.61,.36,1),box-shadow .22s ease}
.switch-card:hover{transform: translateY(0);box-shadow:0 16px 38px rgba(91,65,38,.105)}
.switch-card-copy{padding:20px 22px;min-width:0;display:flex;flex-direction:column;justify-content:center}
.switch-card-copy small{font:700 8.5px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.12em;color:#b0a59b}
.switch-card-copy h2{font-size:17px;line-height:1.35;margin:7px 0 8px}
.switch-card-copy p{font:400 10.8px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#847970;margin:0}
.switch-card-more{margin-top:12px;font-size:9.5px;color:#d57b2b;font-weight:700}
.switch-card-kicker{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;font:10px -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;color:#9b9188}
.switch-card-kicker b{color:#5b5149;font-size:11.5px}

.message-switch-card{grid-template-columns:108px minmax(0,1fr)}
.message-avatar{align-self:stretch;display:grid;place-items:center;font:bold 28px/1 Georgia,serif;color:#b36e77;background:radial-gradient(circle at 35% 30%,#fff8fa 0 18%,transparent 19%),linear-gradient(145deg,#fcecef,#f8dedf);border-right:1px solid rgba(220,167,177,.16)}
.message-avatar:after{content:"";width:50px;height:50px;border:2px solid rgba(168,102,116,.55);border-radius:50% 46% 48% 44%;position:absolute}
.message-text{font-size:12px!important;color:#5c534d!important;line-height:1.72!important}
.message-foot{font-size:9px;color:#aaa097;margin-top:11px}.message-foot i{color:#d891a2;font-style:normal}

.wish-switch-card{grid-template-columns:124px minmax(0,1fr)}
.wish-orb{display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.95) 0 14%,transparent 15%),linear-gradient(145deg,#f3edff,#e9def9);position:relative;overflow:hidden}
.wish-orb:before,.wish-orb:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:25px -18px 0 -2px #fff,34px 21px 0 -3px #fff,-28px 24px 0 -2px #fff,-34px -17px 0 -3px #fff}
.wish-orb span{font-size:43px;color:#8d76ba;filter:drop-shadow(0 4px 6px rgba(93,72,135,.10));position:relative;z-index:1}
.mini-progress{height:5px;margin-top:13px;background:rgba(121,101,160,.10);border-radius:999px;overflow:hidden}.mini-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#cab9eb,#9e88ca)}
.progress-caption{display:flex;justify-content:space-between;margin-top:6px;font:8.5px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#aaa0b7}.progress-caption b{color:#8b76ac}

.plan-switch-card{grid-template-columns:112px minmax(0,1fr)}
.plan-date{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#edf8ef,#dceedd);color:#66806a;border-right:1px solid rgba(112,148,119,.13)}
.plan-date span{font:700 36px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.04em}.plan-date small{margin-top:5px;font:700 8px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.14em}
.plan-status{padding:4px 8px;border-radius:999px;background:#edf5ed;color:#6f8e73;font-size:9px;font-weight:700}.plan-checks{display:flex;gap:6px;margin-top:13px}.plan-checks span{width:17px;height:17px;border-radius:6px;background:rgba(106,137,111,.10);display:grid;place-items:center;font:700 9px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#a8b2a8}.plan-checks span.done{background:#dfeee1;color:#6a8a6e}

.tab-card-enter{opacity:0;transform:translateY(8px) scale(.995);transition:opacity .36s ease var(--enter-delay,0ms),transform .42s cubic-bezier(.22,.61,.36,1) var(--enter-delay,0ms)}
.tab-card-enter.is-in{opacity:1;transform:none}

body:is([data-theme="night"],[data-theme="violet"]) .content-tabs-inner{background:var(--tab-grad);border-color:var(--tab-border);box-shadow:0 10px 28px rgba(0,0,0,.20)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab{color:var(--muted)}body:is([data-theme="night"],[data-theme="violet"]) .content-tab:hover,body:is([data-theme="night"],[data-theme="violet"]) .content-tab.active{color:var(--text)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab-indicator{background:var(--tab-grad);border-color:var(--tab-border);box-shadow:0 5px 15px rgba(0,0,0,.18)}
body:is([data-theme="night"],[data-theme="violet"]) .switch-card-copy p,body:is([data-theme="night"],[data-theme="violet"]) .message-text{color:#aaa39c!important}body:is([data-theme="night"],[data-theme="violet"]) .switch-card-kicker b{color:#ded8d1}
body:is([data-theme="night"],[data-theme="violet"]) .message-avatar{background:linear-gradient(145deg,#3b3035,#302a2e);color:#d99aab}.body:is([data-theme="night"],[data-theme="violet"]) .wish-orb{background:#302c38}
body:is([data-theme="night"],[data-theme="violet"]) .wish-orb{background:linear-gradient(145deg,#35303f,#2b2833)}body:is([data-theme="night"],[data-theme="violet"]) .plan-date{background:linear-gradient(145deg,#2e3830,#293229);color:#91b397}
body:is([data-theme="night"],[data-theme="violet"]) .plan-status{background:#303c32;color:#9cc0a1}

@media(max-width:720px){
  .content-tabs-inner{gap:2px;padding:5px;border-radius:16px;overflow-x:auto;grid-template-columns:repeat(5,minmax(60px,1fr)) auto auto;scrollbar-width:none}.content-tabs-inner::-webkit-scrollbar{display:none}
  .content-tab{flex-direction:column;gap:2px;padding:6px 2px 5px;font-size:9px}.cute-tab-icon{width:27px;height:27px}.content-tab-indicator{top:5px;height:calc(100% - 10px)}
  .switch-card,.message-switch-card,.wish-switch-card,.plan-switch-card{grid-template-columns:88px minmax(0,1fr);min-height:132px}.switch-card-copy{padding:15px 14px}.switch-card-copy h2{font-size:15px}.switch-card-copy p{font-size:10px}.message-avatar{font-size:22px}.wish-orb span{font-size:34px}.plan-date span{font-size:29px}
}
@media (prefers-reduced-motion:reduce){.content-tab,.cute-tab-icon,.content-tab-indicator,.switch-card,.tab-card-enter{transition:none!important}}

/* ===== No-flash content tab transition ===== */
.post-feed{position:relative}
.post-feed.tab-crossfading{
  overflow:hidden;
  transition:height .34s cubic-bezier(.22,.72,.2,1);
  contain:layout paint;
}
.tab-transition-layer{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:inherit;
  will-change:opacity,transform;
  backface-visibility:hidden;
  transform:translateZ(0);
}
.tab-transition-old{
  position:absolute;
  z-index:2;
  left:0;
  top:0;
  opacity:1;
  transform:translate3d(0,0,0);
  pointer-events:none;
  transition:opacity .20s ease,transform .28s cubic-bezier(.22,.61,.36,1);
}
.tab-transition-old.is-out{opacity:0;transform:translate3d(0,-3px,0)}
.tab-transition-new{
  position:relative;
  z-index:1;
  opacity:.18;
  transform:translate3d(0,5px,0);
  transition:opacity .28s ease .035s,transform .34s cubic-bezier(.22,.72,.2,1) .02s;
}
.tab-transition-new.is-in{opacity:1;transform:translate3d(0,0,0)}
/* The previous per-card entrance + root View Transition created a visible flash.
   Crossfade the whole prepared group instead, without a blank frame. */
.tab-crossfading .tab-card-enter{opacity:1!important;transform:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){
  .post-feed.tab-crossfading,.tab-transition-old,.tab-transition-new{transition:none!important}
}

/* ===== Instant-response home tabs: pre-rendered panels ===== */
.post-feed.home-tab-panels{display:block;position:relative;transition:height .22s cubic-bezier(.22,.72,.2,1)}
.home-tab-panel{display:flex;flex-direction:column;gap:15px;width:100%;opacity:0;transform:translate3d(0,4px,0);pointer-events:none;visibility:hidden;position:absolute;inset:0 auto auto 0;will-change:opacity,transform;backface-visibility:hidden;transition:opacity .16s ease,transform .20s cubic-bezier(.22,.72,.2,1)}
.home-tab-panel.is-active{position:relative;inset:auto;opacity:1;transform:translate3d(0,0,0);pointer-events:auto;visibility:visible;z-index:2}
.home-tab-panel.is-leaving{position:absolute;inset:0 auto auto 0;opacity:0;transform:translate3d(0,-3px,0);visibility:visible;z-index:1;pointer-events:none}
.post-feed.home-tab-panels.is-switching{overflow:hidden}
.content-tab{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.content-tab.is-pressing{transform:translateY(0) scale(.985)}
.content-tab-indicator{transition-duration:.20s,.20s}
@media(min-width:721px){.home-tab-panel{gap:15px}}
@media(max-width:720px){.home-tab-panel{gap:22px}}
@media(prefers-reduced-motion:reduce){.post-feed.home-tab-panels,.home-tab-panel{transition:none!important}}

/* Dual independent profile cards */
.profile-card{position:relative}
.profile-gender{position:absolute;top:14px;right: 20px;display:grid;place-items:center;width:25px;height:25px;border-radius:9px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:11px;font-weight:800;background:rgba(116,167,255,.12);color:#6f9fe8;border:1px solid rgba(116,167,255,.18)}
.profile-gender.female{background:rgba(255,139,178,.12);color:#df7d9e;border-color:rgba(255,139,178,.18)}
.level-row{display:flex;justify-content:center;align-items:center;margin:2px 0 14px;min-height:30px;overflow:visible}
.level-group{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:30px;padding:3px 7px;border-radius:10px;border:1px solid rgba(214,139,66,.14);background:linear-gradient(145deg,rgba(255,251,242,.9),rgba(255,239,216,.66));box-shadow:0 5px 14px rgba(151,91,34,.08);cursor:default;outline:none;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}
.level-group:hover,.level-group:focus-visible{transform: translateY(0);background:linear-gradient(145deg,#fffdf8,#fff0d9);border-color:rgba(239,127,19,.24);box-shadow:0 8px 20px rgba(151,91,34,.12)}
.level-icon{width:auto;height:22px;max-width:25px;display:block;object-fit:contain;flex:0 0 auto}
.level-group[data-tooltip]::before{content:attr(data-tooltip);position:absolute;left:50%;top:calc(100% + 9px);z-index:30;transform:translate(-50%,-5px);padding:7px 10px;border:1px solid rgba(217,153,85,.24);border-radius:9px;background:linear-gradient(145deg,rgba(255,252,246,.98),rgba(255,241,221,.98));box-shadow:0 10px 28px rgba(91,61,33,.16);color:#665346;font:600 11px/1.3 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,transform .16s ease,visibility .16s ease}
.level-group[data-tooltip]::after{content:"";position:absolute;left:50%;top:calc(100% + 5px);z-index:31;width:8px;height:8px;background:#fff1de;border-left:1px solid rgba(217,153,85,.22);border-top:1px solid rgba(217,153,85,.22);transform:translateX(-50%) rotate(45deg);opacity:0;visibility:hidden;transition:opacity .16s ease,visibility .16s ease}
.level-group[data-tooltip]:hover::before,.level-group[data-tooltip]:focus-visible::before{opacity:1;visibility:visible;transform:translate(-50%,0)}
.level-group[data-tooltip]:hover::after,.level-group[data-tooltip]:focus-visible::after{opacity:1;visibility:visible}
.level-empty{font-size:11px;opacity:.5}

.profile-reactions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 14px}
.profile-reaction{border:1px solid rgba(105,91,78,.08);background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(255,248,240,.5));box-shadow:0 5px 12px rgba(80,60,40,.05);border-radius:12px;min-height:42px;padding:5px 4px;cursor:pointer;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease}
.profile-reaction span{font-size:10px;font-weight:700;line-height:1.25;white-space:nowrap}.profile-reaction b{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;line-height:1.05}
.profile-reaction:hover{transform: translateY(0);background:rgba(255,255,255,.68)}.profile-reaction.reacted{animation:profileReact .3s ease}
.profile-reaction.egg{background:linear-gradient(145deg,#fffaf1,#f5ead9)}.profile-reaction.egg:hover{border-color:rgba(177,139,91,.35);box-shadow:0 8px 22px rgba(177,139,91,.12)}
@keyframes profileReact{50%{transform:scale(1.035)}}
.profile-stats.four{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.profile-stats.four span{min-width:0}.profile-stats.four b{font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
body:is([data-theme="night"],[data-theme="violet"]) .level-group{background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(239,127,19,.045));border-color:rgba(239,170,99,.12)}
body:is([data-theme="night"],[data-theme="violet"]) .level-group:hover,body:is([data-theme="night"],[data-theme="violet"]) .level-group:focus-visible{background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(239,127,19,.08));border-color:rgba(239,170,99,.22)}
body:is([data-theme="night"],[data-theme="violet"]) .level-group[data-tooltip]::before{background:linear-gradient(145deg,rgba(47,40,35,.98),rgba(37,31,28,.98));border-color:rgba(239,170,99,.18);color:#f7e8d7;box-shadow:0 12px 30px rgba(0,0,0,.28)}
body:is([data-theme="night"],[data-theme="violet"]) .level-group[data-tooltip]::after{background:#29221e;border-color:rgba(239,170,99,.16)}
body:is([data-theme="night"],[data-theme="violet"]) .profile-reaction{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.06)}
body:is([data-theme="night"],[data-theme="violet"]) .profile-reaction:hover{background:rgba(255,255,255,.065)}
@media(max-width:760px){.profile-reactions{grid-column:1/-1}.level-row{grid-column:1/-1}.profile-stats.four{grid-column:1/-1}}

/* Author identity shown on every user-owned content card */
.content-author{display:flex;align-items:center;gap:6px;margin:0 0 7px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:12px;line-height:1.2;color:var(--muted,#8e8790)}
.content-author b{font-size:12px;font-weight:700;color:var(--text,#4b4248)}
.content-author small{font:inherit;color:inherit}
.author-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:0 0 auto;background:#86a8e7;box-shadow:0 0 0 3px rgba(134,168,231,.12)}
.author-dot.female{background:#e7a2bd;box-shadow:0 0 0 3px rgba(231,162,189,.13)}
.dark-mode .content-author b{color:#eee8ec}
.message-switch-card .switch-card-kicker time{margin-left:0}

/* 2026-08 card interaction: card stays fixed, content pulls closer */
@media (hover:hover) and (pointer:fine){
  
  .music-card:hover .disc{transform:scale(1.045) rotate(2deg)!important}
  .post-main,.profile-card>*:not(.avatar-frame),.music-card>*:not(.disc){
    transition:filter .34s ease,opacity .34s ease;
  }
}

/* Keep level tooltip solid instead of glass/transparent. */
.level-group{isolation:isolate}
.level-group[data-tooltip]::before{background:#fff6e8!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}
.level-group[data-tooltip]::after{background:#fff1de!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}
body:is([data-theme="night"],[data-theme="violet"]) .level-group[data-tooltip]::before{background:#2f2823!important}
body:is([data-theme="night"],[data-theme="violet"]) .level-group[data-tooltip]::after{background:#29221e!important}

/* Embedded guestbook shown directly inside the home content area. */
.home-guestbook-shell{width:100%;overflow:hidden;border-radius:24px;background:transparent}
.home-guestbook-frame{display:block;width:100%;height:520px;border:0;background:transparent;border-radius:24px;overflow:hidden}
@media(max-width:720px){.home-guestbook-frame{border-radius:18px}}

/* final layout fixes */
.level-row{position:relative;z-index:5;margin-bottom:10px;}
.level-group{z-index:6;}
.profile-reactions{position:relative;z-index:1;}
.profile-stats.four{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));white-space:nowrap;}
.profile-stats.four span{overflow:hidden;text-overflow:ellipsis;}

/* final layout fixes */
.profile-stats{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  flex-wrap:nowrap!important;
  white-space:nowrap;
  overflow:visible;
}
.profile-stats span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.profile-stats b{
  font-size:14px!important;
}
.profile-reaction{
  min-height:34px!important;
  padding:3px 4px!important;
  border-radius:10px!important;
}
.profile-reaction span{
  font-size:9px!important;
}
.profile-reaction b{
  font-size:13px!important;
}
.profile-reactions{gap:5px!important;}
.level-group,.level-group:hover,.level-group:focus-visible{
  transform:none!important;
  transition:none!important;
}
.level-group[data-tooltip]:hover::before,
.level-group[data-tooltip]:focus-visible::before{
  transform:translate(-50%,0)!important;
}

/* gift click effects：特效层跟随个人卡片（滚动/缩放同步定位），尺寸随卡片大小 */
/* 黑金嘉年华：点击鸡蛋后播放视频特效，跟随个人卡片（宽度=卡片宽度、居中于卡片、滚动同步） */

/* 礼物行：星级下方 左右数据卡 + 中间礼物图标（点击化身礼物栏） */
.gift-row{display:flex;justify-content:center;align-items:center;margin:0 0 14px}
.gift-row.hidden{visibility:hidden;pointer-events:none}
.gift-btn{position:relative;width:54px;height:54px;border-radius:50%;border:1px solid color-mix(in srgb,var(--gift) 34%,transparent);background:var(--card-strong);box-shadow:0 7px 18px color-mix(in srgb,var(--gift) 22%,transparent),inset 0 0 0 3px color-mix(in srgb,var(--gift) 8%,transparent);cursor:pointer;display:grid;place-items:center;padding:0;transition:transform .16s ease,box-shadow .16s ease}
.gift-tip{position:absolute;left:50%;top:calc(100% + 9px);z-index:30;transform:translate(-50%,-5px);padding:7px 10px;border:1px solid color-mix(in srgb,var(--gift) 30%,transparent);border-radius:9px;background:var(--card-strong);box-shadow:0 10px 28px color-mix(in srgb,var(--gift) 18%,transparent);color:var(--text);font:600 11px/1.3 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:7}
.gift-btn:hover .gift-tip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.gift-btn img{width:32px;height:32px;display:block;pointer-events:none}
.gift-btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px color-mix(in srgb,var(--gift) 32%,transparent)}
.gift-btn:hover img{animation:giftSwing .5s ease-in-out}
@keyframes giftSwing{0%,100%{transform:rotate(0)}25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}
/* 礼物栏（点击礼物图标后化身展开：浅粉底+红框圆角） */
.gift-panel{display:none;position:absolute;left:0;right:0;margin:0;box-sizing:border-box;padding:6px 6px 5px;border:2px solid color-mix(in srgb,var(--gift) 55%,transparent);border-radius:16px;background:var(--card-strong);box-shadow:0 12px 28px color-mix(in srgb,var(--gift) 22%,transparent);animation:giftPanelIn .32s ease-out;overflow:visible;z-index:12}
.gift-panel.open{display:block}
.gift-panel-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 4px;padding:0}
.gift-points{display:flex;align-items:center;gap:3px;font-size:10px;font-weight:800;color:var(--gift);font-family:system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif}
.gift-points b{font-size:12px}
.gift-info{position:relative;width:16px;height:16px;border-radius:50%;background:color-mix(in srgb,var(--gift) 14%,transparent);color:var(--gift);font-size:10px;font-weight:800;display:grid;place-items:center;cursor:help;flex:0 0 auto}
.gift-info::after{content:attr(data-tip);position:absolute;right:0;bottom:calc(100% + 8px);z-index:32;padding:8px 10px;border:1px solid color-mix(in srgb,var(--gift) 30%,transparent);border-radius:9px;background:var(--card-strong);box-shadow:0 12px 30px color-mix(in srgb,var(--gift) 20%,transparent);color:var(--text);font:600 10px/1.6 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;width:172px;max-width:172px;text-align:left;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,visibility .16s}
.gift-info:hover::after,.gift-info:focus-visible::after{opacity:1;visibility:visible}
.gift-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(2,1fr);gap:3px;width:100%}
.gift-item{position:relative;border:0;background:none;cursor:pointer;padding:0;display:grid;place-items:center;min-width:0;height:27px;border-radius:8px;transition:background .16s ease}
.gift-item:hover{background:color-mix(in srgb,var(--gift) 10%,transparent)}
.gift-item img.gift-ico{width:20px;height:20px;transition:transform .18s ease;display:block}
.gift-item:hover img.gift-ico{transform:scale(1.3)}
.gift-item:active img.gift-ico{transform:scale(1.12)}
.gift-price{position:absolute;right:0;bottom:0;font-style:normal;font-size:7.5px;font-weight:800;color:#fff;background:color-mix(in srgb,var(--gift) 88%,transparent);border-radius:5px;padding:0 3px;line-height:11px;pointer-events:none}
.gift-item.no-points img.gift-ico{animation:giftShake .4s ease}
@keyframes giftShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
@keyframes giftPanelIn{0%{opacity:0;transform:translateY(12px) scale(.95)}100%{opacity:1;transform:translateY(0) scale(1)}}
.gift-big-preview{position:fixed;z-index:9996;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--gift) 30%,transparent);border-radius:12px;background:var(--card-strong);box-shadow:0 16px 38px color-mix(in srgb,var(--gift) 24%,transparent);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease,visibility .16s}
.gift-big-preview.show{opacity:1;visibility:visible;transform:translateY(0)}
.gift-big-preview img{width:118px;height:118px;object-fit:contain;display:block}
.gift-big-preview b{font-size:12px;font-weight:800;color:#665346}
.gift-big-preview span{font-size:10px;font-weight:700;color:#b06a2f}
.gift-toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(12px);z-index:9999;padding:10px 18px;border:1px solid rgba(217,153,85,.24);border-radius:10px;background:linear-gradient(145deg,rgba(255,252,246,.99),rgba(255,241,221,.99));box-shadow:0 14px 34px rgba(91,61,33,.22);color:#665346;font:600 12px/1.4 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,transform .2s ease,visibility .2s}
.gift-toast.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.gift-toast.anchored{left:auto;right:auto;bottom:auto;transform:none}
.gift-toast.anchored.show{transform:none}
.gift-video-fx{position:fixed;z-index:9995;pointer-events:none;border-radius:20px;overflow:hidden;opacity:0;transform:scale(.4);animation:giftVideoIn .5s cubic-bezier(.18,1.25,.35,1) forwards}
.gift-video-fx video{display:block;width:100%;height:100%;object-fit:cover}
.gift-video-fx.leaving{animation:giftVideoOut .36s ease forwards}
@keyframes giftVideoIn{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
@keyframes giftVideoOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.88)}}
body:is([data-theme="night"],[data-theme="violet"]) .gift-tip,body:is([data-theme="night"],[data-theme="violet"]) .gift-big-preview,body:is([data-theme="night"],[data-theme="violet"]) .gift-toast{background:linear-gradient(145deg,rgba(56,38,30,.97),rgba(66,44,32,.97));border-color:rgba(217,153,85,.3);color:#f2d9bd}
body:is([data-theme="night"],[data-theme="violet"]) .gift-big-preview b{color:#f2d9bd}
body:is([data-theme="night"],[data-theme="violet"]) .gift-info::after,body:is([data-theme="night"],[data-theme="violet"]) .gift-info:hover::after{background:linear-gradient(145deg,rgba(56,38,30,.97),rgba(66,44,32,.97));border-color:rgba(217,153,85,.3);color:#f2d9bd}

/* 留言板2：隐藏右侧滚动条，但保留鼠标/触摸滚动功能 */
body.guestbook-panel-2:not(.guestbook-embed) .note-grid{
    scrollbar-width:none!important;
    -ms-overflow-style:none!important;
}
body.guestbook-panel-2:not(.guestbook-embed) .note-grid::-webkit-scrollbar{
    display:none!important;
    width:0!important;
    height:0!important;
}

/* user requested: restore guestbook decorations + align composer */
body.guestbook-embed .pin{
    width:21px!important;
    height:21px!important;
    top:5px!important;
}
body.guestbook-embed .note-top-decor{
    width:44px!important;
    height:44px!important;
}

/* keep message card aligned with clock area */
body.guestbook-embed .form-card{
    box-sizing:border-box!important;
    transform:translateY(2px)!important;
    box-shadow:none!important;
}

/* name and message input same row */
body.guestbook-embed .form-row{
    display:grid!important;
    grid-template-columns:180px minmax(0,1fr)!important;
    gap:12px!important;
    align-items:center!important;
}

body.guestbook-embed .form-name-wrap{
    width:180px!important;
}

body.guestbook-embed .form-msg textarea{
    min-height:48px!important;
}

/* remove homepage embedded guestbook seam shadow */
body.guestbook-embed .board-wrapper{
    box-shadow:none!important;
}
/* 留言板便签与写留言卡片 */
.guestbook-board{display:grid;gap:18px}
.guest-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.guest-note-card{position:relative;padding:22px 18px;background:#fff6c9;border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.08);transform:rotate(-1deg);transition:transform .35s ease,box-shadow .35s ease,filter .35s ease}
.guest-note-card:hover{transform:rotate(-1deg) scale(1.06) translateY(-4px);box-shadow:0 0 18px rgba(255,230,150,.7),0 14px 35px rgba(0,0,0,.14);filter:drop-shadow(0 0 8px rgba(255,245,190,.75));z-index:30}
.guest-note-card:nth-child(even):hover{transform:rotate(1deg) scale(1.06) translateY(-4px)}
.guest-note-card:nth-child(even){background:#e8f7ff;transform:rotate(1deg)}
.note-pin{position:absolute;right: 20px;top:10px}
.guest-note-card h3{margin:0 0 10px}.guest-note-card p{line-height:1.7}.guest-note-card small{color:#999}
/* 留言板便签与写留言卡片 */
.guestbook-board{display:grid;gap:18px}.guest-write-card h2{margin:0;font-size:20px;color:var(--text)}.guest-write-card input,.guest-write-card textarea{width:100%;box-sizing:border-box;border:1px solid var(--line-strong);border-radius:14px;padding:12px;background:var(--card-strong);color:var(--text);font:inherit}.guest-write-card textarea{min-height:90px;resize:vertical}.guest-write-card button{border:0;border-radius:999px;padding:12px;background:var(--orange);color:#fff;cursor:pointer}.guest-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.guest-note-card{position:relative;padding:22px 18px;background:#fff6c9;border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.08);transform:rotate(-1deg);transition:transform .35s ease,box-shadow .35s ease,filter .35s ease}
.guest-note-card:hover{transform:rotate(-1deg) scale(1.06) translateY(-4px);box-shadow:0 0 18px rgba(255,230,150,.7),0 14px 35px rgba(0,0,0,.14);filter:drop-shadow(0 0 8px rgba(255,245,190,.75));z-index:30}
.guest-note-card:nth-child(even):hover{transform:rotate(1deg) scale(1.06) translateY(-4px)}.guest-note-card:nth-child(even){background:#e8f7ff;transform:rotate(1deg)}.note-pin{position:absolute;right: 20px;top:10px}.guest-note-card h3{margin:0 0 10px}.guest-note-card p{line-height:1.7}.guest-note-card small{color:#999}
/* SVG便签留言板新版 */
.guest-notes-card{background:rgba(255,255,255,.42);backdrop-filter:blur(10px);border-radius:24px;padding:20px;overflow:visible}
.guest-notes{display:grid;grid-template-columns:repeat(3,190px);grid-auto-rows:160px;gap:16px;max-height:540px;overflow-y:auto;scrollbar-width:none;justify-content:center}
.guest-notes::-webkit-scrollbar{display:none}
.guest-note-card{position:relative;width:190px;height:160px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent!important;box-shadow:none!important;transform:none!important;overflow:visible}
.note-svg{position:absolute;inset:0;width:190px;height:160px;z-index:0}
.note-content{position:relative;z-index:1;width:82%;height:126px;padding-top:4px;display:flex;flex-direction:column;box-sizing:border-box;color:#4f5358}
.note-content .note-message{font-size:13px;line-height:1.55;margin:0;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}
.note-content .note-meta{position:absolute;top:103px;left:0;right:0;height:36px;box-sizing:border-box;padding-top:5px;border-top:1px dashed rgba(180,150,150,.45);display:flex;flex-direction:column;justify-content:flex-start;gap:3px;font-size:12px;font-weight:400;line-height:1;color:#8f6e6e}
.note-content .note-author,.note-content .note-time{display:flex;align-items:center;gap:5px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:0}
.note-content .note-author{color:#8f6e6e;font-size:12px;font-weight:400}
.note-content .note-time{font-size:11px;color:#a58b8b;font-weight:400}
.note-meta-icon{width:11px;height:11px;display:block;object-fit:contain;flex:0 0 11px;opacity:.8}
.note-calendar-icon{width:11px;height:11px}
@media(max-width:700px){.guest-notes{grid-template-columns:repeat(2,190px);max-height:540px}}

/* 便签分界线中央固定随机 SVG 装饰 */
.note-corner-decor{
    position:absolute;
    left:76%;
    top:118px;
    width:40px;
    height:auto;
    object-fit:contain;
    opacity:.92;
    transform:translate(-50%,-100%);
    z-index:2;
    pointer-events:none;
    -webkit-user-select:none;
    user-select:none;
    -webkit-user-drag:none;
}

/* note decorations */
.note-decor{position:absolute;z-index:3;pointer-events:none;}
.note-decor.pin{width:32px;height:32px;top:-22px;left:50%;transform:translateX(-50%);}
.note-decor.tape{width:52px;height:29px;top:-14px;left:50%;transform:translateX(-50%);}

/* 第一排便签装饰置顶：钉子/胶带层级高于留言板其它元素 */
.guest-notes > .guest-note-card:nth-child(-n+3){
    position:relative;
    z-index:20;
}
.guest-notes > .guest-note-card:nth-child(-n+3) .note-decor{
    z-index:9999;
    position:absolute;
    pointer-events:none;
}
.guest-notes > .guest-note-card:nth-child(-n+3) .note-decor.pin{
    z-index:10000;
}

/* 修复第一排便签装饰被滚动容器裁剪 */
.guest-notes{
    padding-top:24px!important;
    margin-top:-24px!important;
}
.guest-notes > .guest-note-card:nth-child(-n+3){
    z-index:50!important;
}
.guest-notes > .guest-note-card:nth-child(-n+3) .note-decor{
    z-index:99999!important;
}
.guest-notes > .guest-note-card:nth-child(-n+3) .note-decor.pin,
.guest-notes > .guest-note-card:nth-child(-n+3) .note-decor.tape{
    transform:translateX(-50%) translateY(-4px);
}

/* 留言板选择行为：便签纸与装饰不可选中，仅文字可框选复制 */
.guest-note-card,
.guest-note-card .note-svg,
.guest-note-card .note-decor,
.guest-note-card .note-corner-decor{
    -webkit-user-select:none;
    user-select:none;
}
.guest-note-card .note-svg,
.guest-note-card .note-decor,
.guest-note-card .note-corner-decor{
    -webkit-user-drag:none;
    pointer-events:none;
}
.guest-note-card .note-content,
.guest-note-card .note-content *{
    -webkit-user-select:text;
    user-select:text;
}

/* 修复：SVG便签悬停交互（覆盖前面的 transform:none 规则） */
.guest-note-card{
    transition:transform .35s cubic-bezier(.22,.61,.36,1), filter .35s ease;
}
.guest-note-card:hover{
    transform:scale(1.025) translateY(-2px)!important;
    filter:drop-shadow(0 0 7px var(--note-glow, rgba(255,235,150,.5)))!important;
    z-index:100!important;
}
/* 根据便签纸颜色匹配微光 */
.guest-note-card:nth-child(4n+1){--note-glow:rgba(255,220,120,.55)}
.guest-note-card:nth-child(4n+2){--note-glow:rgba(135,210,255,.55)}
.guest-note-card:nth-child(4n+3){--note-glow:rgba(255,170,200,.5)}
.guest-note-card:nth-child(4n+4){--note-glow:rgba(170,235,180,.5)}
.guest-note-card:hover .note-svg{
    filter:drop-shadow(0 0 5px var(--note-glow, rgba(255,220,120,.3)));
}

/* 调整留言便签网格容器宽度：只扩展容器，不改变便签排列位置 */
.guest-notes{
    width:calc(100% + 40px);
    margin-left:-20px;
    box-sizing:border-box;
}

/* 新留言贴上动画 */
.guest-note-card.paste-in{
  animation: notePasteIn .75s cubic-bezier(.2,1.35,.45,1);
  transform-origin: 50% 0%;
}
@keyframes notePasteIn{
  0%{
    opacity:0;
    transform:translateY(-55px) rotate(-8deg) scale(.88);
    filter:drop-shadow(0 18px 18px rgba(0,0,0,.22));
  }
  45%{
    opacity:1;
    transform:translateY(6px) rotate(3deg) scale(1.04);
    filter:drop-shadow(0 6px 8px rgba(0,0,0,.18));
  }
  70%{
    transform:translateY(-3px) rotate(-1deg) scale(.99);
  }
  100%{
    transform:translateY(0) rotate(var(--note-rotate,0deg)) scale(1);
    filter:none;
  }
}

/* ==== guestbook composer redesign ==== */
body.guestbook-embed .guestbook-board{
  display:grid!important;
  grid-template-rows:1fr auto!important;
  gap:20px!important;
  height:100%!important;
}

/* ==== HOME guestbook composer: compact card aligned with left clock ==== */




/* ===== 2026-09-06 guestbook composer: exact clock-bottom alignment ===== */



/* ===== guestbook alignment v3: authoritative desktop override ===== */


/* ===== guestbook composer v4: submit button lives inside expanding message editor ===== */




/* ===== guestbook composer v5: horizontal drawer reveal ===== */


/* ===== guestbook composer v5: horizontal pull-back reveal ===== */


/* ===== guestbook composer v6: svg submit + 30-char input ===== */



/* ===== guestbook composer v7: icon-only submit control ===== */




/* ===== guestbook composer v8: 80px name field + uploaded send icon ===== */



/* ===== guestbook composer v9: smaller field text ===== */

/* ===== guestbook composer v10: collapsed ellipsis + count + emoji picker ===== */



/* ===== guestbook composer v11: natural dot preview + fixed editor tools ===== */
.home-tab-panel[data-home-panel="guestbook"] .guest-collapsed-preview{
  position:absolute!important;
  left:14px!important;
  right:12px!important;
  top:50%!important;
  z-index:3!important;
  display:none!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  transform:translateY(-50%)!important;
  pointer-events:none!important;
  font-size:12px!important;
  line-height:1.35!important;
  color:#655b58!important;
  letter-spacing:0!important;
}

/* ===== guestbook composer: emoji support without changing the original send-button anchor ===== */



/* ===== guestbook emoji anchor v13: same positioning model as send button ===== */

/* Visibility changes only opacity/pointer state; coordinates never change. */

/* Picker is also anchored to the editor, independent of the toggle button. */



/* ===== desktop guestbook emoji/send baseline fix =====
   Desktop only: keep the send button untouched. Anchor the emoji wrapper to
   the same editor centerline, then keep the emoji button static inside it.
   This avoids display:contents changing the absolute-position containing block.
*/


/* guestbook emoji SVG icon */

/* ===== guestbook desktop action size tune ===== */


/* ===== SVG emoji picker: large preview + tooltip ===== */
/* ===== guestbook composer v16: SVG emoji editor (contenteditable) ===== */

/* disable the old per-button scale tooltip; hover preview panel replaces it */
/* 表情按钮必须回到 picker 网格的自动排列（6 列 × 多行）。
   同时重置旧规则继承的 top/right/bottom/left 偏移（否则按钮在格子里被推到右下、位置不对），
   并把整个表情网格往面板右上角靠拢（减少上/右内边距，增加下/左内边距） */
/* ===== guestbook emoji hover preview: big emoji + label ===== */
/* emoji rendered inside note cards (front page + admin) */
.emoji-inline{
  display:inline-block!important;width:1.35em!important;height:1.35em!important;
  min-width:16px!important;min-height:16px!important;
  vertical-align:-0.22em!important;margin:0 1px!important;object-fit:contain!important;
}

/* ==== 地图轨迹 MapTrack ==== */
.map-mini-card{padding:18px;display:flex;flex-direction:column;gap:14px}
.map-mini-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.map-mini-title{font-size:15px;font-weight:700;color:#5d4943;display:flex;align-items:center;gap:6px}
.map-mini-icon{font-size:18px}
.map-mini-btn{font-size:12px;color:#d895a5;text-decoration:none;white-space:nowrap;font-weight:600}
.map-mini-btn:hover{color:#c97a8e}
.map-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.map-mini-stat{background:rgba(216,149,165,.08);border-radius:10px;padding:8px 4px}
.map-mini-stat b{display:block;font-size:20px;font-weight:800;color:#d895a5;line-height:1.2}
.map-mini-stat span{font-size:11px;color:#999}
.map-mini-list{display:flex;flex-direction:column;gap:6px;max-height:140px;overflow-y:auto}
.map-mini-item{display:flex;align-items:center;gap:8px;font-size:12px;padding:5px 8px;background:rgba(255,255,255,.5);border-radius:8px}
.map-mini-dot{width:7px;height:7px;border-radius:50%;background:#e8788a;flex-shrink:0}
.map-mini-name{font-weight:600;color:#5d4943;flex-shrink:0}
.map-mini-prov{color:#999;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-mini-date{color:#bbb;flex-shrink:0;font-size:11px}
.map-mini-empty{font-size:12px;color:#bbb;text-align:center;padding:12px 0}

/* 完整地图页 */
.map-page-layout{display:grid;grid-template-columns:1fr 300px;gap:18px;margin-top:18px}
@media(max-width:900px){.map-page-layout{grid-template-columns:1fr}}
.map-container{padding:16px;border-radius:20px;position:relative}
.map-main{width:100%;height:560px;border-radius:14px;overflow:hidden}
@media(max-width:600px){.map-main{height:400px}}
.map-legend{display:flex;gap:18px;margin-top:12px;justify-content:center;font-size:12px;color:#888}
.legend-dot{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:middle}
.legend-province{background:#f7c5a8;border:1px solid #e89b6e}
.legend-marker{background:#e8788a;border-radius:50%}
.map-sidebar{padding:18px;border-radius:20px;max-height:640px;overflow-y:auto}
.map-sidebar h3{margin:0 0 14px;font-size:16px;color:#5d4943}
.map-marker-list{display:flex;flex-direction:column;gap:12px}
.map-list-item{background:rgba(255,255,255,.6);border-radius:12px;padding:12px;transition:box-shadow .3s,transform .3s;cursor:pointer}
.map-list-item:hover{box-shadow:0 4px 16px rgba(232,120,138,.15);transform:translateX(4px)}
.map-list-item.flash{box-shadow:0 0 0 3px rgba(232,120,138,.4);transform:scale(1.02)}
.map-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.map-list-name{font-weight:700;color:#5d4943;font-size:14px}
.map-list-date{font-size:11px;color:#aaa}
.map-list-prov{font-size:12px;color:#d895a5;margin-bottom:4px}
.map-list-text{font-size:12px;color:#777;line-height:1.6;margin-bottom:8px}
.map-list-photos{display:flex;flex-wrap:wrap;gap:6px}
.map-list-photo{width:60px;height:60px;object-fit:cover;border-radius:8px;cursor:pointer;transition:transform .2s}
.map-list-photo:hover{transform:scale(1.08)}
.map-list-empty{text-align:center;color:#bbb;font-size:13px;padding:30px 0}

/* ECharts 弹窗 */
.map-popup{padding:12px 14px;max-width:280px}
.map-popup-title{font-size:15px;font-weight:700;color:#5d4943;margin-bottom:6px}
.map-popup-date{font-size:12px;color:#999;margin-bottom:2px}
.map-popup-prov{font-size:12px;color:#d895a5;margin-bottom:6px}
.map-popup-text{font-size:13px;color:#666;line-height:1.6;margin-bottom:8px}
.map-popup-photos{display:flex;flex-wrap:wrap;gap:6px}
.map-popup-photo{width:72px;height:72px;object-fit:cover;border-radius:8px;cursor:pointer;transition:transform .2s,opacity .2s;box-shadow:0 2px 8px rgba(0,0,0,0.1)}
.map-popup-photo:hover{transform:scale(1.06);opacity:0.9}
.map-list-photo-count{font-size:11px;color:#b8a898;margin-top:4px}

/* 照片 Hover 预览（悬停放大，移走回缩） */
.map-photo-preview{display:none;position:fixed;z-index:2147483647;pointer-events:none}
.map-photo-preview.show{display:block;animation:mapPreviewFadeIn .15s ease}
@keyframes mapPreviewFadeIn{from{opacity:0;transform:scale(0.92)}to{opacity:1;transform:scale(1)}}
.map-photo-preview-img{border-radius:12px;box-shadow:0 12px 48px rgba(0,0,0,0.35);border:3px solid rgba(255,255,255,0.92);object-fit:contain;display:block;background:#fff}

/* ===================== 主题系统 v2：多主题换肤 ===================== */
/* 薄荷清新 */
body[data-theme="mint"]{
  --bg:#eef6ef;--bg2:#e3efe6;
  --card:rgba(202,234,210,.94);--card-strong:rgba(228,244,233,.97);
  --line:rgba(60,120,85,.12);--line-strong:rgba(60,120,85,.18);
  --text:#28312c;--muted:#74887c;--muted2:#97ab9e;
  --orange:#3fae74;--orange2:#63c78f;--blue:#4a86c9;--red:#e86a7a;
  --shadow:0 16px 42px rgba(50,90,70,.09);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.70),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(214,240,222,.85),transparent 68%),linear-gradient(180deg,#f2f9f2 0,#e6f2e8 48%,#d9eadc 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.14),transparent 15%,transparent 85%,rgba(255,255,255,.15)),radial-gradient(circle at 10% 55%,rgba(63,174,116,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(74,134,201,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(214,240,222,.92),rgba(186,226,200,.78));
  --tab-border:rgba(255,255,255,.82);--tab-indicator:linear-gradient(145deg,rgba(210,238,220,.98),rgba(182,224,198,.88));;--tab-indicator-border:rgba(255,255,255,.88);
  --btn-grad:linear-gradient(145deg,#f5fff8,#e7f4eb);--btn-border:rgba(90,160,125,.32);--btn-ink:#3d9c6b;
  --gift:#3fa76b;
}
/* 蜜桃甜心 */
body[data-theme="peach"]{
  --bg:#fdf1ee;--bg2:#f8e6e2;
  --card:rgba(255,222,216,.94);--card-strong:rgba(255,235,231,.97);
  --line:rgba(170,95,85,.12);--line-strong:rgba(170,95,85,.18);
  --text:#382b2a;--muted:#9a7f7b;--muted2:#b29f9b;
  --orange:#ef6a7e;--orange2:#ff8fa0;--blue:#c97b8f;--red:#e04a5a;
  --shadow:0 16px 42px rgba(150,80,70,.10);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.72),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(255,233,228,.90),transparent 68%),linear-gradient(180deg,#fdf5f2 0,#f9eae6 48%,#f5e0dc 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.14),transparent 15%,transparent 85%,rgba(255,255,255,.15)),radial-gradient(circle at 10% 55%,rgba(239,106,126,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(201,123,143,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(255,233,228,.92),rgba(250,214,208,.78));
  --tab-border:rgba(255,255,255,.82);--tab-indicator:linear-gradient(145deg,rgba(255,231,226,.98),rgba(252,214,208,.88));;--tab-indicator-border:rgba(255,255,255,.88);
  --btn-grad:linear-gradient(145deg,#fff8f6,#f9eae7);--btn-border:rgba(226,120,136,.32);--btn-ink:#d95f74;
  --gift:#e0697f;
}
/* 海盐蓝 */
/* 暗夜（原夜间模式） */
body[data-theme="night"]{
  --bg:#232028;--bg2:#1d1a22;
  --card:rgba(31,34,40,.86);--card-strong:rgba(41,44,52,.94);
  --line:rgba(255,255,255,.08);--line-strong:rgba(255,255,255,.13);
  --text:#e8e4da;--muted:#9a948a;--muted2:#7d7a74;
  --orange:#e9a94f;--orange2:#f2c078;--blue:#8aa8e8;--red:#e87878;
  --shadow:0 16px 42px rgba(0,0,0,.30);
  --tab-grad:linear-gradient(145deg,rgba(48,51,60,.90),rgba(38,41,48,.78));
  --tab-border:rgba(255,255,255,.10);--tab-indicator:rgba(255,255,255,.08);--tab-indicator-border:rgba(255,255,255,.14);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.05),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(150,130,230,.05),transparent 68%),linear-gradient(180deg,#242129 0,#1d1a22 48%,#171419 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.05),transparent 15%,transparent 85%,rgba(255,255,255,.06)),radial-gradient(circle at 10% 55%,rgba(239,127,19,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(107,93,205,.06) 0 2px,transparent 3px);
  --btn-grad:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.05));--btn-border:rgba(255,255,255,.14);--btn-ink:#e9cf9a;
  --gift:#e8b44d;
}
/* 紫罗兰夜 */
body[data-theme="violet"]{
  --bg:#1d1729;--bg2:#231b31;
  --card:rgba(44,35,66,.86);--card-strong:rgba(52,42,78,.94);
  --line:rgba(255,255,255,.10);--line-strong:rgba(255,255,255,.16);
  --text:#ece6f6;--muted:#a99fc0;--muted2:#8f85a8;
  --orange:#b794f6;--orange2:#cdb0ff;--blue:#9a8ce0;--red:#ef8fa8;
  --shadow:0 16px 42px rgba(0,0,0,.30);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(183,148,246,.08),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(140,110,220,.06),transparent 68%),linear-gradient(180deg,#282040 0,#211a35 48%,#1a1428 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.05),transparent 15%,transparent 85%,rgba(255,255,255,.06)),radial-gradient(circle at 10% 55%,rgba(183,148,246,.06) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(154,140,224,.06) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(52,42,78,.90),rgba(44,35,66,.78));
  --tab-border:rgba(255,255,255,.10);--tab-indicator:rgba(255,255,255,.08);--tab-indicator-border:rgba(255,255,255,.14);
  --btn-grad:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.05));--btn-border:rgba(255,255,255,.14);--btn-ink:#cdb0ff;
  --gift:#b18cff;
}
/* 主题面板 */
.theme-panel{position:fixed;right:20px;bottom:78px;z-index:1200;width:268px;padding:14px 14px 12px;border-radius:18px;background:var(--card-strong);border:1px solid var(--line-strong);box-shadow:0 24px 60px rgba(40,25,15,.20);backdrop-filter:blur(16px);opacity:0;visibility:hidden;transform:translateY(12px) scale(.96);transition:opacity .22s ease,transform .26s cubic-bezier(.22,.72,.2,1),visibility .22s}
.theme-panel.open{opacity:1;visibility:visible;transform:none}
.theme-panel-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 11px;font:700 13px/1 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--text)}
.theme-panel-close{width:24px;height:24px;border:0;border-radius:8px;background:rgba(128,120,110,.12);color:var(--muted);cursor:pointer;font-size:15px;line-height:1;display:grid;place-items:center;transition:background .2s ease}
.theme-panel-close:hover{background:rgba(128,120,110,.22)}
.theme-panel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px 8px}
.theme-opt{position:relative;border:0;border-radius:12px;padding:7px 3px 5px;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;font:600 10px/1 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--muted);transition:color .2s ease,transform .2s ease}
.theme-opt:hover{color:var(--text);transform:translateY(-1px)}
.theme-opt .theme-swatch{width:100%;height:42px;border-radius:9px;border:1px solid var(--line-strong);box-shadow:0 3px 8px rgba(40,25,15,.07);background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.theme-opt.active{color:var(--text)}
.theme-opt.active .theme-swatch{outline:2px solid var(--orange);outline-offset:2px}
.theme-opt.active::after{content:"✓";position:absolute;top:3px;right:4px;z-index:1;width:15px;height:15px;border-radius:50%;background:var(--orange);color:#fff;font-size:9px;font-weight:800;display:grid;place-items:center}
.sw-default{background:linear-gradient(135deg,#f8f1e8,#efe2d2)}
.sw-mint{background:linear-gradient(135deg,#f0f7f0,#d9eadc)}
.sw-peach{background:linear-gradient(135deg,#fdf3f1,#f5e0dc)}
.sw-night{background:linear-gradient(135deg,#2a2530,#17141b)}
.sw-violet{background:linear-gradient(135deg,#2c2340,#1a1428)}
/* ============ 主题配套：hero 背景图随主题变化 ============ */

body[data-theme="mint"] .hero-search{background:rgba(250,255,251,.94)}
body[data-theme="peach"] .hero-search{background:rgba(255,250,248,.94)}
/* ===== 入场性别选择 + 开场动画 ===== */
.role-gate{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(120% 90% at 50% 18%,rgba(255,241,224,.16),transparent 52%),linear-gradient(160deg,rgba(46,33,24,.82),rgba(28,21,28,.9));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overflow:hidden;transition:opacity .5s ease,visibility .5s ease}
.role-gate.gate-out{opacity:0;visibility:hidden;pointer-events:none}
.role-gate.gate-out .gate-card{transform:translateY(26px) scale(.97);opacity:0}
.gate-orb{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none}
.gate-orb-a{width:420px;height:420px;left:-80px;top:-110px;background:radial-gradient(circle,rgba(255,168,86,.34),transparent 66%);animation:gateOrbA 11s ease-in-out infinite alternate}
.gate-orb-b{width:460px;height:460px;right:-110px;bottom:-130px;background:radial-gradient(circle,rgba(178,126,235,.30),transparent 66%);animation:gateOrbB 13s ease-in-out infinite alternate}
@keyframes gateOrbA{from{transform:translate(0,0) scale(1)}to{transform:translate(60px,40px) scale(1.12)}}
@keyframes gateOrbB{from{transform:translate(0,0) scale(1)}to{transform:translate(-55px,-35px) scale(1.1)}}
.gate-hearts{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.gh-heart{position:absolute;bottom:-6%;color:rgba(255,214,170,.5);opacity:0;animation-name:gateHeartRise;animation-timing-function:linear;animation-iteration-count:infinite;text-shadow:0 0 12px rgba(255,180,100,.35)}
@keyframes gateHeartRise{0%{transform:translateY(0) rotate(0deg);opacity:0}12%{opacity:.7}85%{opacity:.45}100%{transform:translateY(-108vh) rotate(28deg);opacity:0}}
.gate-card{position:relative;width:min(560px,100%);background:linear-gradient(150deg,rgba(255,253,249,.97),rgba(255,247,237,.94));border:1px solid rgba(255,255,255,.85);border-radius:26px;padding:42px 40px 30px;text-align:center;box-shadow:0 34px 90px rgba(30,18,10,.4),inset 0 1px 0 rgba(255,255,255,.9);animation:gateIn .8s cubic-bezier(.2,.8,.24,1) both;transition:transform .45s ease,opacity .45s ease}
@keyframes gateIn{from{transform:translateY(34px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
.gate-logo{width:64px;height:64px;margin:0 auto 16px;display:grid;place-items:center;border-radius:20px;font-size:30px;color:#fff;background:linear-gradient(140deg,#ffb14d,#ef7f13 60%,#d66ae0);box-shadow:0 14px 34px rgba(239,127,19,.32);animation:gateLogoPulse 2.4s ease-in-out infinite}
@keyframes gateLogoPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.gate-card h1{margin:0 0 6px;font-size:27px;letter-spacing:-.02em;color:#33281f}
.gate-card p{margin:0 0 26px;font-size:13px;color:#97897c}
.gate-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.gate-opt{border:0;border-radius:18px;padding:22px 14px 18px;cursor:pointer;color:#fff;display:flex;flex-direction:column;align-items:center;gap:9px;transition:transform .22s cubic-bezier(.2,.8,.24,1),box-shadow .22s ease;position:relative;overflow:hidden}
.gate-opt:hover{transform:translateY(-5px)}
.gate-male{background:linear-gradient(150deg,#5b7cf0,#7c5ce0 70%)}
.gate-male:hover{box-shadow:0 18px 40px rgba(92,110,235,.38)}
.gate-female{background:linear-gradient(150deg,#ff7e9d,#f0667c 60%,#e04e8f)}
.gate-female:hover{box-shadow:0 18px 40px rgba(240,102,124,.38)}
.gate-avatar{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:28px;background:rgba(255,255,255,.22);border:1.5px solid rgba(255,255,255,.4);box-shadow:inset 0 2px 8px rgba(255,255,255,.28)}
.gate-opt b{font-size:17px;letter-spacing:.02em}
.gate-opt small{font-size:11px;line-height:1.6;color:rgba(255,255,255,.86)}
.gate-skip{display:inline-block;border:0;background:none;color:#a89a8c;font-size:12px;cursor:pointer;padding:8px 14px;border-radius:999px;transition:.18s ease}
.gate-skip:hover{color:#5c4c3e;background:rgba(239,127,19,.07)}
.gate-card.gate-welcome-anim .gate-logo{animation:none}
@media(max-width:560px){.gate-card{padding:32px 22px 24px;border-radius:20px}.gate-options{grid-template-columns:1fr;gap:10px}.gate-opt{padding:16px 12px 14px;flex-direction:row;justify-content:flex-start;text-align:left}.gate-avatar{width:44px;height:44px;font-size:22px}.gate-opt b{font-size:15px}.gate-card h1{font-size:22px}}

/* 身份徽章：我 / TA */
.avatar-frame{position:relative}

.gate-confirm{display:inline-block;border:0;border-radius:999px;padding:12px 34px;background:linear-gradient(140deg,#ffb14d,#ef7f13);color:#fff;font:700 14px/1 system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;cursor:pointer;margin-bottom:8px;box-shadow:0 10px 26px rgba(239,127,19,.3);transition:transform .2s ease,box-shadow .2s ease}
.gate-confirm:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(239,127,19,.38)}

/* ===== 留言板跟随主题 ===== */
.guest-notes-card{background:var(--card-strong);border:1px solid var(--line-strong)}

/* ===== 浪漫开场 Splash ===== */
.splash-screen{position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(130% 130% at 50% 18%,#332a5c 0%,#1d1740 48%,#100d26 100%);transition:opacity .7s ease;cursor:pointer;-webkit-user-select:none;user-select:none}
.splash-screen.is-leaving{opacity:0;pointer-events:none}
.splash-glow{position:absolute;border-radius:50%;filter:blur(6px);pointer-events:none}
.splash-glow-a{width:70vmin;height:70vmin;left:50%;top:42%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,105,180,.32),transparent 65%);animation:splashGlowA 4s ease-in-out infinite}
.splash-glow-b{width:52vmin;height:52vmin;left:50%;top:42%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(142,120,255,.30),transparent 62%);animation:splashGlowB 3.4s ease-in-out infinite}
@keyframes splashGlowA{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.16)}}
@keyframes splashGlowB{0%,100%{opacity:.45;transform:translate(-50%,-50%) scale(1)}50%{opacity:.9;transform:translate(-50%,-50%) scale(.84)}}
.splash-heart-wrap{position:relative;display:grid;place-items:center;margin-bottom:26px}
.splash-heart{font-size:64px;line-height:1;color:#ff6b9d;text-shadow:0 0 26px rgba(255,107,157,.85),0 0 60px rgba(255,107,157,.4);animation:splashHeart 1.5s ease-in-out infinite;position:relative;z-index:2}
.splash-halo{position:absolute;width:150px;height:150px;border-radius:50%;border:2px solid rgba(255,150,190,.35);animation:splashHalo 2.2s ease-out infinite;z-index:1}
.splash-halo::after{content:"";position:absolute;inset:-18px;border-radius:50%;border:1.5px solid rgba(190,160,255,.28);animation:splashHalo 2.2s .5s ease-out infinite}
@keyframes splashHeart{0%,100%{transform:scale(1)}14%{transform:scale(1.22)}28%{transform:scale(1)}42%{transform:scale(1.14)}58%{transform:scale(1)}}
@keyframes splashHalo{0%{opacity:0;transform:scale(.6)}45%{opacity:1}100%{opacity:0;transform:scale(1.35)}}
.splash-title{position:relative;z-index:2;margin:0;font:700 34px/1.4 system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#fff;letter-spacing:.04em;text-align:center;opacity:0;transform:translateY(22px);animation:splashFadeUp .9s .35s ease-out forwards;text-shadow:0 4px 24px rgba(0,0,0,.35)}
.splash-sub{position:relative;z-index:2;margin:12px 0 0;font:400 16px/1.6 system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:rgba(255,214,230,.88);text-align:center;letter-spacing:.14em;opacity:0;transform:translateY(18px);animation:splashFadeUp .9s 1.05s ease-out forwards}
.splash-sub::before,.splash-sub::after{content:"·";margin:0 10px;color:rgba(255,170,200,.6)}
@keyframes splashFadeUp{to{opacity:1;transform:translateY(0)}}
.splash-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.splash-particles i{position:absolute;bottom:-8%;color:rgba(255,150,190,.9);opacity:0;font-style:normal;animation:splashRise linear infinite}
.splash-particles i:nth-child(1){left:6%;font-size:16px;animation-duration:6.5s;animation-delay:.2s}
.splash-particles i:nth-child(2){left:14%;font-size:11px;color:rgba(200,175,255,.85);animation-duration:8s;animation-delay:1.1s}
.splash-particles i:nth-child(3){left:24%;font-size:19px;animation-duration:7.2s;animation-delay:.6s}
.splash-particles i:nth-child(4){left:34%;font-size:10px;color:rgba(255,220,170,.9);animation-duration:9s;animation-delay:1.8s}
.splash-particles i:nth-child(5){left:45%;font-size:15px;animation-duration:6.8s;animation-delay:.1s}
.splash-particles i:nth-child(6){left:57%;font-size:12px;color:rgba(200,175,255,.85);animation-duration:8.4s;animation-delay:2.2s}
.splash-particles i:nth-child(7){left:68%;font-size:18px;animation-duration:7s;animation-delay:.9s}
.splash-particles i:nth-child(8){left:79%;font-size:10px;color:rgba(255,220,170,.9);animation-duration:9.2s;animation-delay:1.4s}
.splash-particles i:nth-child(9){left:90%;font-size:15px;animation-duration:7.6s;animation-delay:.4s}
@keyframes splashRise{0%{transform:translateY(0) rotate(0deg);opacity:0}12%{opacity:.95}100%{transform:translateY(-112vh) rotate(30deg);opacity:0}}
.splash-skip{position:absolute;right:18px;bottom:16px;z-index:3;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:rgba(255,255,255,.72);font:400 12px/1 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;padding:8px 16px;border-radius:999px;cursor:pointer;transition:.18s ease;letter-spacing:.08em}
.splash-skip:hover{background:rgba(255,255,255,.14);color:#fff}
.role-gate.gate-in .gate-card{animation:gateIn .55s cubic-bezier(.2,.8,.3,1) both}
@keyframes gateIn{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:560px){.splash-title{font-size:25px}.splash-heart{font-size:52px}.splash-sub{font-size:13px;letter-spacing:.1em}}

/* ===== 导航图标按钮：跟随主题 + 美化气泡提示 ===== */
.content-tab.theme-switch .nav-ico,.content-tab.admin-tab .nav-ico{width:20px;height:20px;display:block;pointer-events:none}
.content-tab.theme-switch[data-tip]::after,.content-tab.admin-tab[data-tip]::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 9px);transform:translate(-50%,5px);padding:7px 13px;border-radius:10px;background:var(--card-strong);border:1px solid var(--line-strong);box-shadow:0 8px 22px rgba(20,15,30,.16);color:var(--text);font:600 11px/1 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;letter-spacing:.03em;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:60}
.content-tab.theme-switch[data-tip]::before,.content-tab.admin-tab[data-tip]::before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--line-strong);opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s;z-index:60}
.content-tab.theme-switch[data-tip]:hover::after,.content-tab.admin-tab[data-tip]:hover::after{opacity:1;visibility:visible;transform:translate(-50%,0)}
.content-tab.theme-switch[data-tip]:hover::before,.content-tab.admin-tab[data-tip]:hover::before{opacity:1;visibility:visible}
.theme-panel-head{justify-content:center}

/* 图标底跟随主题（覆盖各 tab 固定底色） */
.content-tabs-inner .content-tab .cute-tab-icon .i-bg{fill:var(--card);stroke:var(--line-strong);stroke-width:1.1}

/* ===================== 玻璃主题 ===================== */

/* ===================== 整页完整背景大图（跟随主题） ===================== */
body[data-theme="default"]{background-image:linear-gradient(180deg,rgba(250,240,226,.10),rgba(250,240,226,.14));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="mint"]{background-image:linear-gradient(180deg,rgba(230,245,234,.08),rgba(230,245,234,.12));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="peach"]{background-image:linear-gradient(180deg,rgba(255,240,236,.08),rgba(255,240,236,.12));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="night"]{background-image:linear-gradient(180deg,rgba(16,14,24,.10),rgba(16,14,24,.16));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="violet"]{background-image:linear-gradient(180deg,rgba(22,14,38,.10),rgba(22,14,38,.16));background-size:cover;background-position:center top;background-attachment:fixed}

/* hero 文字可读遮罩（背景为整页大图） */
.hero-stage{background-image:linear-gradient(180deg,rgba(18,16,30,.42) 0%,rgba(18,16,30,.16) 45%,rgba(18,16,30,.02) 78%,transparent 100%)!important}
body[data-theme="mint"] .hero-stage,body[data-theme="peach"] .hero-stage,body[data-theme="spring"] .hero-stage,body[data-theme="summer"] .hero-stage{background-image:linear-gradient(180deg,rgba(18,16,30,.36) 0%,rgba(18,16,30,.12) 45%,rgba(18,16,30,.02) 78%,transparent 100%)!important}

/* 春 · 新生 */
body[data-theme="spring"]{
  --bg:#f2f7ec;--bg2:#e9f0e0;
  --card:rgba(228,242,216,.92);--card-strong:rgba(240,248,232,.97);
  --line:rgba(90,140,80,.12);--line-strong:rgba(90,140,80,.18);
  --text:#2c3527;--muted:#7d8d72;--muted2:#9dad91;
  --orange:#58b368;--orange2:#7ccb84;--blue:#6a9bd4;--red:#ef7a92;
  --shadow:0 16px 42px rgba(70,110,60,.09);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.72),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(228,242,216,.85),transparent 68%),linear-gradient(180deg,#f4f9ef 0,#e9f2e4 48%,#dfebd8 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.14),transparent 15%,transparent 85%,rgba(255,255,255,.15)),radial-gradient(circle at 10% 55%,rgba(88,179,104,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(106,155,212,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(232,246,220,.92),rgba(206,234,194,.80));
  --tab-border:rgba(255,255,255,.82);--tab-indicator:linear-gradient(145deg,rgba(224,242,210,.98),rgba(198,232,184,.90));;--tab-indicator-border:rgba(255,255,255,.88);
  --btn-grad:linear-gradient(145deg,#f6fff3,#e6f4e2);--btn-border:rgba(100,160,90,.32);--btn-ink:#4c9a5e;
  --gift:#6bbf59;
}
/* 夏 · 活力 */
body[data-theme="summer"]{
  --bg:#eef6fb;--bg2:#e2f0f8;
  --card:rgba(216,238,248,.92);--card-strong:rgba(232,244,252,.97);
  --line:rgba(60,130,180,.12);--line-strong:rgba(60,130,180,.18);
  --text:#26333a;--muted:#7a8f9c;--muted2:#97aab5;
  --orange:#f2a13d;--orange2:#ffbe66;--blue:#4a9fd6;--red:#ef6a5a;
  --shadow:0 16px 42px rgba(50,110,150,.09);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.72),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(220,240,250,.85),transparent 68%),linear-gradient(180deg,#f0f8fc 0,#e2f0f8 48%,#d6e8f2 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.14),transparent 15%,transparent 85%,rgba(255,255,255,.15)),radial-gradient(circle at 10% 55%,rgba(242,161,61,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(74,159,214,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(220,242,252,.92),rgba(190,228,246,.80));
  --tab-border:rgba(255,255,255,.82);--tab-indicator:linear-gradient(145deg,rgba(214,240,252,.98),rgba(186,224,246,.90));;--tab-indicator-border:rgba(255,255,255,.88);
  --btn-grad:linear-gradient(145deg,#f4fbff,#e3f1fa);--btn-border:rgba(80,155,205,.32);--btn-ink:#3c8fc0;
  --gift:#4f9fd6;
}
/* 秋 · 丰收 */
body[data-theme="autumn"]{
  --bg:#faf1e4;--bg2:#f3e3cd;
  --card:linear-gradient(155deg,rgba(255,232,178,.93),rgba(253,196,112,.80));--card-strong:linear-gradient(155deg,rgba(255,240,204,.97),rgba(255,214,148,.88));
  --line:rgba(200,130,40,.16);--line-strong:rgba(200,130,40,.26);
  --text:#3a2e22;--muted:#8d745a;--muted2:#a88e72;
  --orange:#e8842e;--orange2:#f7a04a;--blue:#7a92b8;--red:#d95b2b;
  --shadow:0 16px 42px rgba(130,85,40,.10);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.66),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(250,236,212,.88),transparent 68%),linear-gradient(180deg,#faf2e6 0,#f3e5d0 48%,#ecd9c0 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.13),transparent 15%,transparent 85%,rgba(255,255,255,.14)),radial-gradient(circle at 10% 55%,rgba(232,132,46,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(122,146,184,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(252,238,216,.92),rgba(246,224,192,.80));
  --tab-border:rgba(255,255,255,.80);--tab-indicator:linear-gradient(145deg,rgba(252,234,206,.98),rgba(244,218,178,.90));;--tab-indicator-border:rgba(255,255,255,.86);
  --btn-grad:linear-gradient(145deg,#fffaf2,#f6ead8);--btn-border:rgba(200,140,70,.32);--btn-ink:#c8742a;
  --gift:#d98e3a;
}
/* 冬 · 宁静 */
body[data-theme="winter"]{
  --bg:#f2f7fb;--bg2:#e6eef6;
  --card:linear-gradient(180deg,rgba(249,253,255,.93),rgba(222,238,250,.88));--card-strong:linear-gradient(180deg,rgba(252,254,255,.97),rgba(232,244,252,.93));
  --line:rgba(120,170,215,.14);--line-strong:rgba(120,170,215,.22);
  --text:#26333d;--muted:#7f93a3;--muted2:#9db0be;
  --orange:#6aa8e0;--orange2:#8abce8;--blue:#5a9fd6;--red:#e06a8a;
  --shadow:0 16px 42px rgba(70,120,170,.09);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.74),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(228,240,250,.86),transparent 68%),linear-gradient(180deg,#f4f9fc 0,#e6eef6 48%,#dbe7f2 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.15),transparent 15%,transparent 85%,rgba(255,255,255,.16)),radial-gradient(circle at 10% 55%,rgba(106,168,224,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(90,159,214,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(228,242,252,.92),rgba(200,228,246,.80));
  --tab-border:rgba(255,255,255,.84);--tab-indicator:linear-gradient(145deg,rgba(222,240,252,.98),rgba(194,226,246,.90));;--tab-indicator-border:rgba(255,255,255,.90);
  --btn-grad:linear-gradient(145deg,#f6fbff,#e4effa);--btn-border:rgba(90,160,215,.32);--btn-ink:#4a86c9;
  --gift:#5aa7d9;
}

body[data-theme="spring"]{background-image:linear-gradient(180deg,rgba(244,252,238,.06),rgba(244,252,238,.10));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="summer"]{background-image:linear-gradient(180deg,rgba(238,248,252,.06),rgba(238,248,252,.10));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="autumn"]{background-image:linear-gradient(180deg,rgba(250,240,228,.06),rgba(250,240,228,.10));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="winter"]{background-image:linear-gradient(180deg,rgba(240,248,252,.06),rgba(240,248,252,.10));background-size:cover;background-position:center top;background-attachment:fixed}

/* ===================== 季节粒子：枫叶 / 雪花 ===================== */



/* ===================== 秋季：卡片金色夕阳效果 ===================== */
body[data-theme="autumn"] .left-column [class$="-card"]:not(.switch-card-copy):not(.switch-card-kicker):not(.switch-card-more),
body[data-theme="autumn"] .center-column [class$="-card"]:not(.switch-card-copy):not(.switch-card-kicker):not(.switch-card-more){
  border:1px solid rgba(255,206,120,.50)!important;
  box-shadow:0 16px 40px rgba(198,108,28,.22),inset 0 1px 0 rgba(255,255,255,.50)!important;
}
body[data-theme="winter"] .left-column [class$="-card"]:not(.switch-card-copy):not(.switch-card-kicker):not(.switch-card-more),
body[data-theme="winter"] .center-column [class$="-card"]:not(.switch-card-copy):not(.switch-card-kicker):not(.switch-card-more){
  position:relative;
  border:1px solid rgba(210,235,252,.55)!important;
  box-shadow:0 14px 34px rgba(90,140,190,.14),inset 0 1px 0 rgba(255,255,255,.6)!important;
}
/* ===================== 冬季：扫把 ===================== */

/* ===================== 秋日枫叶飘落（真实素材） ===================== */
.leaf-fx{position:fixed;top:0;left:0;z-index:6;pointer-events:none;will-change:transform;filter:drop-shadow(0 2px 3px rgba(120,50,10,.20))}
.leaf-fx img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}

:root{
  --gift:#e07a3f;
  --bg:#f3eadf;
  --bg2:#efe3d5;
  --card:rgba(255,251,245,.76);
  --card-strong:rgba(255,252,247,.9);
  --line:rgba(125,92,54,.10);
  --line-strong:rgba(125,92,54,.16);
  --text:#2f2b27;
  --muted:#8b8177;
  --muted2:#aaa097;
  --orange:#ef7f13;
  --orange2:#ff9d18;
  --blue:#567fd7;
  --red:#ef4a5a;
  --shadow:0 16px 42px rgba(91,65,38,.08);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.68),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(255,246,233,.9),transparent 68%),linear-gradient(180deg,#f8f1e8 0,#f2e8dc 48%,#efe2d2 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.12),transparent 15%,transparent 85%,rgba(255,255,255,.13)),radial-gradient(circle at 10% 55%,rgba(239,127,19,.025) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(107,93,205,.03) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(255,252,247,.84),rgba(255,249,240,.70));
  --tab-border:rgba(255,255,255,.78);
  --tab-indicator:linear-gradient(145deg,rgba(255,232,196,.98),rgba(252,214,160,.92));
  --tab-indicator-border:rgba(230,180,110,.55);
  --btn-grad:linear-gradient(145deg,#fffdf8,#f9f0e2);
  --btn-border:rgba(230,174,86,.30);
  --btn-ink:#c98a2e;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;color:var(--text);font-family:inherit,Georgia,"Times New Roman","Songti SC","SimSun",serif;background:var(--bg-grad);background-attachment:fixed}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:var(--deco-grad);background-size:auto,38px 38px,50px 50px}
a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.wrap{width:min(1120px,calc(100% - 26px));margin:auto}.top{height:66px;display:flex;align-items:center;gap:22px}.site-header{position:sticky;top:0;z-index:100;background:rgba(250,246,240,.72);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.45);transform: translateY(0);opacity:1;transition:transform .46s cubic-bezier(.22,.61,.36,1),opacity .34s ease;will-change:transform,opacity}.site-header.nav-hidden{transform:translateY(calc(-100% - 8px));opacity:.15}.site-header.nav-visible{transform: translateY(0);opacity:1}

.hero-stage{position:relative;height:clamp(430px,60vh,620px);min-height:430px;background-image:linear-gradient(90deg,rgba(31,25,25,.42) 0%,rgba(46,36,31,.14) 43%,rgba(255,236,211,.03) 100%),url(../images/hero-bg.jpg);background-size:cover;background-position:center 46%;overflow:visible;border-bottom:0}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,32,.40) 0%,rgba(20,18,32,.14) 46%,rgba(20,18,32,.02) 74%,transparent 100%);pointer-events:none}
.hero-copy{position:absolute;z-index:4;top:32%;left:50%;transform:translate(-50%,-50%);width:min(760px,88vw);text-align:center;color:white;text-shadow:0 3px 20px rgba(43,29,21,.28)}
.hero-copy h1{margin:0;font-size:clamp(48px,6vw,82px);line-height:.95;letter-spacing:-.035em;font-weight:800}
.hero-copy p{margin:18px 0 0;font-size:clamp(14px,1.5vw,19px);letter-spacing:.12em;color:rgba(255,255,255,.88)}
.hero-wave{position:absolute;z-index:3;left:0;bottom:-1px;width:100%;height:60px;overflow:hidden;pointer-events:none;display:none}.hero-wave svg{display:block;flex:0 0 calc(50% + 1px);width:calc(50% + 1px);height:100%;margin-right:-1px}.hero-wave path{fill:#f7efe5}.wave-track{display:flex;width:200%;height:100%;will-change:transform;transform:translateZ(0)}.wave-track-front{animation:waveFlowFront 12s linear infinite}.wave-track-back{animation:waveFlowBack 18s linear infinite}.wave-back{bottom:3px;height:54px;opacity:.76}.wave-back path{fill:rgba(255,255,255,.70)}.wave-front{z-index:4;bottom:-2px}@keyframes waveFlowFront{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}@keyframes waveFlowBack{from{transform:translate3d(-50%,0,0)}to{transform:translate3d(0,0,0)}}@media(prefers-reduced-motion:reduce){.wave-track{animation:none!important}}
.hero-search{position:absolute;z-index:8;left:50%;bottom:-24px;transform:translateX(-50%);width:min(650px,calc(100% - 32px));height:58px;border-radius:22px;display:flex;align-items:center;gap:12px;padding:0 20px;background:rgba(255,252,248,.93);box-shadow:0 16px 38px rgba(98,72,47,.13)}
.hero-search>span{font:700 28px/1 "WendaoGalaxyNumber",Arial,sans-serif;color:#a6a09a;transform:rotate(-16deg)}.hero-search input{flex:1;border:0;outline:0;background:transparent;color:#4b4540;font-size:14px}.hero-search input::placeholder{color:#b1aaa3}
.hero-search-results{display:none;position:absolute;left:0;right:0;top:68px;padding:8px;background:rgba(255,252,248,.98);border:1px solid rgba(135,104,74,.11);border-radius:16px;box-shadow:0 18px 45px rgba(82,58,34,.14)}.hero-search-results.open{display:block}.hero-search-results a{display:block;padding:10px 12px;border-radius:11px}.hero-search-results a:hover{background:rgba(239,127,19,.06)}.hero-search-results strong{display:block;font-size:12px}.hero-search-results small{display:block;margin-top:4px;color:#9c9289;font-size:9px}
.home-wrap{padding-top:54px!important}
@media(max-width:720px){.hero-stage{height:52vh;min-height:390px;background-position:54% center}.hero-copy{top:33%}.hero-copy h1{font-size:44px}.hero-copy p{font-size:12px}.hero-wave{height:44px}.wave-back{bottom:2px;height:42px}.hero-search{height:54px;bottom:-20px}.home-wrap{padding-top:46px!important}}
.brand{font-weight:800;font-size:21px;letter-spacing:.01em}.brand .apost{color:var(--orange);font-size:24px}.top nav{margin-left:auto;display:flex;align-items:center;gap:20px}.top nav a{position:relative;font-size:13px;font-weight:700;color:#504943;padding:24px 0 19px}.top nav a:hover,.top nav a.active{color:var(--orange)}.top nav a.active:after{content:"";position:absolute;left:50%;bottom:10px;width:4px;height:4px;border-radius:50%;background:var(--orange);transform:translateX(-50%)}.header-actions{display:flex;align-items:center;gap:10px}.round-btn{width:30px;height:30px;border-radius:50%;border:1px solid rgba(230,174,86,.35);background:linear-gradient(#fff8e8,#fff0c8);color:#b87919;display:grid;place-items:center;box-shadow:0 5px 16px rgba(150,110,40,.12);font-size:11px}.moon-btn{border:0;background:transparent;color:#4f4c48;font-size:18px;cursor:pointer}
.home-wrap{padding-top:6px;padding-bottom:50px}.home-grid{display:grid;grid-template-columns:245px minmax(0,1fr) 250px;gap:18px;align-items:start}.left-column,.right-column{display:flex;flex-direction:column;gap:16px}.soft-card{background:linear-gradient(145deg,rgba(255,252,247,.86),rgba(255,249,240,.72));border:1px solid rgba(255,255,255,.76);box-shadow:var(--shadow);border-radius:20px;backdrop-filter:blur(14px)}
.profile-card{position:relative;padding:23px 18px 20px;text-align:center;overflow:hidden}.avatar-frame{width:90px;height:90px;margin:0 auto 14px;border-radius:17px;padding:4px;background:linear-gradient(145deg,#ffb92b,#ef8b0b);box-shadow:0 10px 22px rgba(239,127,19,.16)}.avatar-frame img{width:100%;height:100%;object-fit:cover;border-radius:13px;background:#eee}.profile-card h2{margin:0;font-size:20px}.profile-card .bio{font-size:11px;line-height:1.55;color:#746d66;margin:7px auto 14px;max-width:205px}.social-row{display:flex;justify-content:center;gap:8px;margin-bottom:17px}.social-row span{width:31px;height:31px;border-radius:10px;background:rgba(255,255,255,.78);border:1px solid var(--line);display:grid;place-items:center;font-size:12px;color:#5d5a56;box-shadow:0 4px 10px rgba(80,60,40,.05)}.profile-stats{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);padding-top:13px}.profile-stats span{font-size:9px;color:#7f756c}.profile-stats b{display:block;font:700 13px/1.1 "WendaoGalaxyNumber",Georgia,serif;margin-bottom:3px}.profile-stats span:nth-child(1) b{color:#427bd3}.profile-stats span:nth-child(2) b{color:#ee6b18}.profile-stats span:nth-child(3) b{color:#e83c61}.profile-stats span:nth-child(4) b{color:#8b6cd9}.profile-stats span:nth-child(5) b{color:#d99a55}.profile-stats span:nth-child(5) b{color:#d99a55}.stat-gift{cursor:help}
.nav-card{padding:16px 14px}.nav-card h3{font-size:14px;margin:0 0 10px 5px}.nav-list{display:flex;flex-direction:column}.nav-list a{display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;font-size:12px;color:#4f4a46}.nav-list a:hover{background:rgba(239,127,19,.06);color:var(--orange)}.nav-icon{width:18px;color:#9a8f85;text-align:center}.clock-card{padding:19px;text-align:center}.clock-card strong{display:block;font:700 31px/1.1 "WendaoGalaxyNumber",ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:2px;color:#2e3641}.clock-card small{display:block;margin-top:7px;color:#aaa097;font-size:9px}
.center-column{min-width:0}.post-feed{display:flex;flex-direction:column;gap:15px}.post-main{padding:22px 24px;min-width:0}.post-main h2{font-size:18px;line-height:1.35;margin:0 0 12px;font-weight:700}.post-main p{font-size:11px;color:#837a72;line-height:1.55;margin:0 0 19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-meta{display:flex;align-items:center;gap:10px;color:#aba198;font:10px "WendaoGalaxyNumber",ui-monospace,Menlo,monospace}.post-meta .views:before{content:"◉";margin-right: 20px;color:#a69a8e}.post-tags{margin-left:auto;display:flex;gap:5px}.post-tags span{font:700 9px "WendaoGalaxyNumber",Georgia,serif;color:#ef7f13;background:rgba(255,249,228,.8);padding:2px 6px;border-radius:9px}
.music-card{padding:25px 20px 21px}.music-head{display:flex;gap:14px;align-items:center}.disc{width:70px;height:70px;border-radius:50%;background:conic-gradient(#0d3645,#5c2e28,#0d3645,#ba762e,#0d3645);position:relative;box-shadow:0 5px 15px rgba(0,0,0,.13)}.disc:after{content:"";position:absolute;inset:24px;border-radius:50%;background:#e7e1d4;border:8px solid #dfe5e8}.music-label{font:700 9px "WendaoGalaxyNumber",ui-monospace,Menlo,monospace;color:#e27008;background:#fffaf0;border:1px solid #f3e9db;padding:2px 7px;border-radius:99px}.music-card h3{font-size:20px;margin:4px 0 2px}.music-card p{margin:0;color:#665e57;font-size:11px}.author{font-size:10px;color:#ef7f13;font-weight:700;margin:15px 0}.progress-line{display:grid;grid-template-columns:38px 1fr 38px;gap:8px;align-items:center;font:700 9px "WendaoGalaxyNumber",ui-monospace,monospace;color:#536578}.bar{height:5px;background:#e8d5bf;border-radius:99px;position:relative}.bar:before{content:"";position:absolute;left:0;top:0;bottom:0;width:9%;background:#b65b0c;border-radius:99px}.controls{display:flex;align-items:center;justify-content:space-between;padding:14px 6px 0;color:#4e4a46}.play{width:45px;height:45px;border:0;border-radius:50%;background:#ff9208;color:white;box-shadow:0 7px 18px rgba(239,127,19,.25);font-size:17px;cursor:pointer}
.weather-card{padding:18px}.weather-title{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700}.weather-title small{font-size:8px;color:#aaa097;font-weight:400}.weather-now{display:grid;grid-template-columns:1fr 72px;align-items:center;padding:24px 0 17px;border-bottom:1px solid var(--line)}.weather-temp{font-size:48px;line-height:.9}.weather-temp sup{font-size:20px}.weather-desc{font-size:11px;margin-top:13px}.weather-icon{width:70px;height:70px;border-radius:22px;background:#fff5d7;display:grid;place-items:center;font-size:35px}.forecast{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:14px}.forecast div{background:rgba(255,255,255,.34);border-radius:14px;padding:10px 4px;text-align:center;font-size:8px}.forecast b{display:block;font-size:10px;margin-top:5px}.weather-extra{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}.weather-extra span{display:block;background:rgba(255,255,255,.3);border-radius:12px;text-align:center;padding:9px 3px;font-size:8px;color:#8f857b}.weather-extra b{display:block;color:#4f4a45;font-size:9px;margin-top:4px}
.calendar-card{padding:15px 17px}.calendar-card h3{font-size:12px;margin:0 0 12px}.cal-week,.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.cal-week span{font-size:8px;color:#7990b4}.cal-days span{font-size:9px;color:#756e68;padding:4px 0}.cal-days .today{background:#ff930d;color:#fff;border-radius:50%}
.pagehead,.glass,.card,.article,.archive,.gallery figure{background:linear-gradient(145deg,rgba(255,252,247,.86),rgba(255,249,240,.72));border:1px solid rgba(255,255,255,.76);box-shadow:var(--shadow);border-radius:20px}.pagehead{padding:28px;margin:14px 0}.pagehead h1{margin:0}.pagehead p{color:var(--muted)}.archive{padding:10px 18px}.archive a{display:grid;grid-template-columns:110px 1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.archive time,.archive span{font-size:9px;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.card{padding:20px}.card p{color:var(--muted);font-size:11px;line-height:1.7}.gallery{columns:3 240px;column-gap:12px}.gallery figure{break-inside:avoid;padding:8px;margin:0 0 12px}.gallery img{width:100%;display:block;border-radius:14px}.gallery figcaption{padding:8px 4px;color:var(--muted);font-size:10px}.article{padding:34px;margin-top:16px}.article h1{font-size:clamp(36px,6vw,58px);line-height:1.05}.article .lead{font-size:14px;color:var(--muted)}.markdown{line-height:1.9;color:#5f5852}.markdown h2{color:var(--text);margin-top:32px}.markdown pre{overflow:auto;background:#2f2b27;color:#fff7ec;padding:14px;border-radius:11px}.footer{text-align:center;color:#9d9388;font-size:10px;padding:28px 0 44px}.empty{padding:40px;text-align:center;color:var(--muted)}
#fxCanvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:9999}.petal{position:fixed;top:-30px;z-index:6;pointer-events:none;width:9px;height:15px;border-radius:80% 20% 75% 25%;background:linear-gradient(135deg,#f28bc1,#f5b4d4);opacity:.65;filter:blur(.1px);animation:petalFall linear forwards}.petal.purple{background:linear-gradient(135deg,#a996ff,#806ee8)}.petal.orange{background:linear-gradient(135deg,#ffc46b,#f08a25)}@keyframes petalFall{0%{transform:translate3d(0,-30px,0) rotate(0deg)}50%{transform:translate3d(var(--drift),50vh,0) rotate(190deg)}100%{transform:translate3d(calc(var(--drift)*-.45),105vh,0) rotate(390deg);opacity:.15}}

.mobile{display:none}
@media(max-width:980px){.home-grid{grid-template-columns:220px 1fr}.right-column{display:none}}
@media(max-width:720px){.wrap{width:calc(100% - 14px)}.top{height:56px}.top nav{display:none}.home-grid{grid-template-columns:1fr}.left-column{order:1}.center-column{order:2}.nav-card,.clock-card{display:none}.profile-card{display:grid;grid-template-columns:78px 1fr;gap:5px 12px;text-align:left;padding:15px}.avatar-frame{grid-row:1/4;width:74px;height:74px;margin:0}.profile-card h2{align-self:end}.profile-card .bio{margin:0;max-width:none}.social-row{justify-content:flex-start;margin:3px 0}.profile-stats{grid-column:1/-1}.post-main{padding:17px}.post-main h2{font-size:16px}.post-main p{white-space:normal}.cards{grid-template-columns:1fr}.archive a{grid-template-columns:80px 1fr}.archive span{display:none}.article{padding:22px 17px}.chat-box{right: 20px;width:calc(100% - 20px)}.mobile{display:flex;position:fixed;left:50%;bottom:10px;transform:translateX(-50%);z-index:60;background:rgba(255,252,247,.94);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:14px;padding:5px;box-shadow:var(--shadow)}.mobile a{padding:9px 10px;font-size:9px}.footer{padding-bottom:80px}}

/* Card depth hover — desktop pointer devices */
@media (hover:hover) and (pointer:fine){
  .soft-card,
  .card,
  .gallery figure,
  .archive,
  .pagehead{
    position:relative;
    transition:transform .34s cubic-bezier(.22,.61,.36,1),
               box-shadow .34s ease,
               border-color .34s ease;
    will-change:transform;
  }

  .soft-card:hover,
  .card:hover,
  .gallery figure:hover{
    transform:translateY(-7px) scale(1.012);
    border-color:rgba(255,255,255,.98);
    background:linear-gradient(145deg,rgba(255,254,251,.96),rgba(255,249,239,.84));
    box-shadow:
      0 28px 58px rgba(91,65,38,.16),
      0 10px 20px rgba(239,127,19,.055),
      inset 0 1px 0 rgba(255,255,255,.92);
    z-index:5;
  }
  

  .music-card:hover .disc{transform:rotate(8deg) scale(1.03)}
  .disc{transition:transform .4s cubic-bezier(.22,.61,.36,1)}
}

/* === Desktop scale tuning: match the larger reference layout === */
@media (min-width:981px){
  .wrap{width:min(1205px,calc(100% - 32px))}
  .home-grid{grid-template-columns:262px minmax(0,1fr) 282px;gap:23px}
  .left-column,.right-column{gap:23px}

  .soft-card{border-radius:22px}

  .profile-card{padding:25px 20px 22px}
  .avatar-frame{width:96px;height:96px;margin-bottom:16px;border-radius:19px}
  .avatar-frame img{border-radius:15px}
  .profile-card h2{font-size:22px}
  .profile-card .bio{font-size:12.5px;line-height:1.58;margin:8px auto 16px;max-width:220px}
  .social-row{gap:8px;margin-bottom:19px}
  .social-row span{width:34px;height:34px;border-radius:11px;font-size:13px}
  .profile-stats{padding-top:17px}
  .profile-stats span{font-size:10px}
  .profile-stats b{font-size:19px;margin-bottom:5px}

  .nav-card{padding:18px 16px 19px}
  .nav-card h3{font-size:15px;margin:0 0 11px 5px}
  .nav-list a{gap:13px;padding:11px 10px;font-size:13px}
  .nav-icon{width:19px}

  .clock-card{padding:21px 18px}
  .clock-card strong{font-size:33px;letter-spacing:2.4px}
  .clock-card small{margin-top:7px;font-size:9px}

  .post-feed{gap:22px}
  .post-main{padding:19px 25px 16px;display:flex;flex-direction:column;overflow:hidden}
  .post-main h2{font-size:20px;line-height:1.25;margin:0 0 7px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  .post-main p{font-size:13px;line-height:1.45;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .post-meta{gap:11px;font-size:11px;margin-top:auto;font-family:inherit,Georgia,"Times New Roman","Songti SC","SimSun",serif;font-variant-numeric:lining-nums tabular-nums}
  .post-tags{gap:6px}
  .post-tags span{font-size:10px;padding:2px 7px}

  .music-card{padding:27px 22px 23px}
  .music-head{gap:15px}
  .disc{width:76px;height:76px}
  .disc:after{inset:26px}
  .music-label{font-size:9px;padding:2px 7px}
  .music-card h3{font-size:22px;margin:5px 0 2px}
  .music-card p{font-size:12px}
  .author{font-size:11px;margin:17px 0}
  .progress-line{grid-template-columns:40px 1fr 40px;gap:9px;font-size:10px}
  .controls{padding:16px 7px 0;font-size:15px}
  .play{width:47px;height:47px;font-size:18px}

  .weather-card{padding:21px 20px 19px}
  .weather-title{font-size:13px}
  .weather-title small{font-size:8.5px}
  .weather-now{grid-template-columns:1fr 78px;padding:27px 0 21px}
  .weather-temp{font-size:52px}
  .weather-temp sup{font-size:21px}
  .weather-desc{font-size:12px;margin-top:13px}
  .weather-icon{width:76px;height:76px;border-radius:23px;font-size:37px}
  .forecast-label{margin-top:17px;font-size:10px;color:#a59a90}
  .forecast{gap:8px;margin-top:10px}
  .forecast div{border-radius:15px;padding:13px 4px 12px;font-size:8.5px;min-height:73px}
  .forecast b{font-size:10.5px;margin-top:7px}
  .weather-extra{gap:7px;margin-top:16px}
  .weather-extra span{border-radius:13px;padding:11px 3px;font-size:8.5px}
  .weather-extra b{font-size:9.5px;margin-top:5px}

  .calendar-card{padding:18px 19px 20px}
  .calendar-card h3{font-size:13px;margin-bottom:14px}
  .cal-week,.cal-days{gap:6px}
  .cal-week span{font-size:8.5px}
  .cal-days span{font-size:9.5px;padding:5px 0}
}

/* === Text clarity fix ===
   Avoid promoting every card to a transformed compositor layer: Chrome can
   rasterize the whole card (including text) at a fractional scale, which
   makes small Chinese text look soft. Keep transforms on demand only and
   use native UI fonts for CJK body copy. */
html,body{
  text-rendering:optimizeLegibility;
  -webkit-text-size-adjust:100%;
}
body{
  font-family:inherit,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC","Segoe UI",Arial,sans-serif;
}

/* Headings keep the editorial serif look, while body/meta text stays crisp. */
.profile-card h2,
.post-main h2,
.music-card h3,
.article h1,
.article h2,
.pagehead h1{
  font-family:inherit,Georgia,"Times New Roman","Songti SC","STSong",serif;
}

@media (hover:hover) and (pointer:fine){
  .soft-card,
  .card,
  .gallery figure,
  .archive,
  .pagehead{
    will-change:auto;
  }
  .soft-card:hover,
  .card:hover,
  .gallery figure:hover{
    transform: translateY(0);
  }
}

@media (min-width:981px){
  /* Integer font sizes avoid half-pixel glyph rasterization. */
  .profile-card .bio{font-size:13px}
  .weather-title small{font-size:9px}
  .forecast div{font-size:9px}
  .forecast b{font-size:11px}
  .weather-extra span{font-size:9px}
  .weather-extra b{font-size:10px}
  .cal-week span{font-size:9px}
  .cal-days span{font-size:10px}

  .post-main p{
    font-family:inherit,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC","Segoe UI",Arial,sans-serif;
    font-weight:400;
    color:#746c65;
  }
  .post-meta{
    font-family:inherit,Georgia,"Times New Roman",serif;
    font-size:11px;
    color:#938980;
    font-variant-numeric:lining-nums tabular-nums;
  }
  .post-tags span{
    font-family:inherit,Georgia,"Times New Roman","PingFang SC","Microsoft YaHei",sans-serif;
  }
}

/* Latin/digit readability boost: enlarge only glyphs supplied by WendaoGalaxyNumber.
   Element font-size and card geometry stay unchanged; CJK keeps the fallback font. */

/* ===== 顶部主题切换：两个图标完全重叠，只显示“可切换到”的模式 ===== */

body:is([data-theme="night"],[data-theme="violet"]){
  --bg:#17191d;
  --bg2:#1d2025;
  --card:rgba(31,34,40,.86);
  --card-strong:rgba(37,40,47,.94);
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.13);
  --text:#ece7df;
  --muted:#aaa39b;
  --muted2:#817b75;
  --shadow:0 18px 46px rgba(0,0,0,.30);
  color:var(--text);
  color-scheme:dark;
  background:var(--bg-grad);
  background-attachment:fixed;
}
body:is([data-theme="night"],[data-theme="violet"]):before{background:
  linear-gradient(90deg,rgba(255,255,255,.018),transparent 15%,transparent 85%,rgba(255,255,255,.018)),
  radial-gradient(circle at 10% 55%,rgba(239,127,19,.035) 0 2px,transparent 3px),
  radial-gradient(circle at 85% 70%,rgba(141,131,245,.025) 0 2px,transparent 3px);background-size:auto,38px 38px,50px 50px}
body:is([data-theme="night"],[data-theme="violet"]) .site-header{background:rgba(21,23,27,.82);border-bottom-color:rgba(255,255,255,.055);box-shadow:0 8px 28px rgba(0,0,0,.12)}
body:is([data-theme="night"],[data-theme="violet"]) .brand,body:is([data-theme="night"],[data-theme="violet"]) .top nav a{color:#ded8d0}
body:is([data-theme="night"],[data-theme="violet"]) .top nav a:hover,body:is([data-theme="night"],[data-theme="violet"]) .top nav a.active{color:var(--orange)}
body:is([data-theme="night"],[data-theme="violet"]) .round-btn{background:linear-gradient(#33291f,#29231e);border-color:rgba(239,127,19,.28);color:#efa248;box-shadow:0 5px 16px rgba(0,0,0,.18)}

body:is([data-theme="night"],[data-theme="violet"]) .hero-search{background:rgba(34,37,43,.94);box-shadow:0 16px 38px rgba(0,0,0,.28)}
body:is([data-theme="night"],[data-theme="violet"]) .hero-search input{color:#e9e4dd}
body:is([data-theme="night"],[data-theme="violet"]) .hero-search input::placeholder{color:#827c76}
body:is([data-theme="night"],[data-theme="violet"]) .hero-search-results{background:rgba(34,37,43,.98);border-color:rgba(255,255,255,.08);box-shadow:0 18px 45px rgba(0,0,0,.32)}
body:is([data-theme="night"],[data-theme="violet"]) .hero-search-results a:hover{background:rgba(239,127,19,.10)}
body:is([data-theme="night"],[data-theme="violet"]) .soft-card,body:is([data-theme="night"],[data-theme="violet"]) .glass,body:is([data-theme="night"],[data-theme="violet"]) .card{background:var(--card);border-color:rgba(255,255,255,.065);box-shadow:var(--shadow)}
body:is([data-theme="night"],[data-theme="violet"]) .profile-card .bio,body:is([data-theme="night"],[data-theme="violet"]) .nav-list a,body:is([data-theme="night"],[data-theme="violet"]) .post-main p,body:is([data-theme="night"],[data-theme="violet"]) .author,body:is([data-theme="night"],[data-theme="violet"]) .music-card p,body:is([data-theme="night"],[data-theme="violet"]) .weather-desc,body:is([data-theme="night"],[data-theme="violet"]) .forecast-label,body:is([data-theme="night"],[data-theme="violet"]) .lead,body:is([data-theme="night"],[data-theme="violet"]) .markdown{color:#aaa39b}
body:is([data-theme="night"],[data-theme="violet"]) .social-row span{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.07);color:#c7c0b8;box-shadow:none}
body:is([data-theme="night"],[data-theme="violet"]) .nav-list a:hover{background:rgba(239,127,19,.10)}
body:is([data-theme="night"],[data-theme="violet"]) .nav-icon{color:#8f8982}
body:is([data-theme="night"],[data-theme="violet"]) .clock-card strong{color:#e7e2dc}
body:is([data-theme="night"],[data-theme="violet"]) .clock-card small,body:is([data-theme="night"],[data-theme="violet"]) .profile-stats span,body:is([data-theme="night"],[data-theme="violet"]) .post-meta{color:#8f8881}
body:is([data-theme="night"],[data-theme="violet"]) .post-tags span,body:is([data-theme="night"],[data-theme="violet"]) .music-label{background:rgba(239,127,19,.11);border-color:rgba(239,127,19,.16)}
body:is([data-theme="night"],[data-theme="violet"]) .weather-icon{background:linear-gradient(145deg,#303541,#252a33);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
body:is([data-theme="night"],[data-theme="violet"]) .forecast div{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.055)}
body:is([data-theme="night"],[data-theme="violet"]) .weather-extra{border-top-color:rgba(255,255,255,.07)}
body:is([data-theme="night"],[data-theme="violet"]) .weather-extra span{color:#969089}
body:is([data-theme="night"],[data-theme="violet"]) .weather-extra b{color:#d8d2cb}
body:is([data-theme="night"],[data-theme="violet"]) .cal-week{color:#77716b}
body:is([data-theme="night"],[data-theme="violet"]) .cal-days span{color:#bcb5ad}
body:is([data-theme="night"],[data-theme="violet"]) .cal-days .today{color:#fff;background:linear-gradient(145deg,#ef7f13,#d96e09);box-shadow:0 5px 14px rgba(239,127,19,.24)}
body:is([data-theme="night"],[data-theme="violet"]) .progress-line .bar{background:rgba(255,255,255,.10)}
body:is([data-theme="night"],[data-theme="violet"]) .controls{color:#b8b1aa}
body:is([data-theme="night"],[data-theme="violet"]) .play{background:#ef7f13;color:#fff;box-shadow:0 8px 22px rgba(239,127,19,.25)}
body:is([data-theme="night"],[data-theme="violet"]) .pagehead h1,body:is([data-theme="night"],[data-theme="violet"]) .article h1,body:is([data-theme="night"],[data-theme="violet"]) h1,body:is([data-theme="night"],[data-theme="violet"]) h2,body:is([data-theme="night"],[data-theme="violet"]) h3{color:#eee9e3}
body:is([data-theme="night"],[data-theme="violet"]) .archive a,body:is([data-theme="night"],[data-theme="violet"]) .cards a{border-color:rgba(255,255,255,.07)}
body:is([data-theme="night"],[data-theme="violet"]) .archive a:hover,body:is([data-theme="night"],[data-theme="violet"]) .cards a:hover{background:rgba(255,255,255,.035)}
body:is([data-theme="night"],[data-theme="violet"]) input,body:is([data-theme="night"],[data-theme="violet"]) textarea,body:is([data-theme="night"],[data-theme="violet"]) select{background:#24272d!important;color:#e8e3dc!important;border-color:rgba(255,255,255,.10)!important}
body:is([data-theme="night"],[data-theme="violet"]) input::placeholder,body:is([data-theme="night"],[data-theme="violet"]) textarea::placeholder{color:#77716b}
body:is([data-theme="night"],[data-theme="violet"]) .chat-box{background:#25282e;border-color:rgba(255,255,255,.08);box-shadow:0 20px 55px rgba(0,0,0,.38)}
body:is([data-theme="night"],[data-theme="violet"]) .chat-head{border-bottom-color:rgba(255,255,255,.07)}
body:is([data-theme="night"],[data-theme="violet"]) .chat-bubble{background:#30343b;color:#dcd6cf}
body:is([data-theme="night"],[data-theme="violet"]) .chat-input{border-top-color:rgba(255,255,255,.07)}
body:is([data-theme="night"],[data-theme="violet"]) .footer{color:#77716c}
body:is([data-theme="night"],[data-theme="violet"]) .mobile{background:rgba(24,26,31,.94);border-top-color:rgba(255,255,255,.07)}
body:is([data-theme="night"],[data-theme="violet"]) .mobile a{color:#aaa39b}

/* ===== 2026-08-28 layout & interaction refinements ===== */
.hero-search{display:none!important}
.home-wrap{padding-top:34px!important}

/* Reference-video style hover: subtle lift, no card zoom. */
@media (hover:hover){
  
  .music-card:hover .disc{transform:rotate(3deg) scale(1.008)}
}

/* Smaller day/night switch frame. */
.theme-switch{width:38px;height:38px;border-radius:11px;box-shadow:0 3px 10px rgba(80,60,40,.05)}
.theme-switch img.nav-ico{width:20px;height:20px}
.theme-switch:hover{transform: translateY(0);box-shadow:0 5px 14px rgba(80,60,40,.08)}

/* Clock: time only, larger numerals. */
.clock-card{padding:20px 14px}
.clock-card strong{font-size:40px;letter-spacing:2.6px}
@media (min-width:981px){.clock-card strong{font-size:43px;letter-spacing:3px}}

/* Music controls are real buttons now. */
.controls .music-control{border:0;background:transparent;color:inherit;cursor:pointer;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;padding:0;transition:background .18s ease,transform .18s ease}
.controls .music-control:hover{background:rgba(239,127,19,.08);transform:translateY(-1px)}
.controls .music-control.active{color:var(--orange);background:rgba(239,127,19,.10)}
.progress-line .bar{border:0;padding:0;cursor:pointer;overflow:hidden;width:100%}
.progress-line .bar:before{display:none}
.progress-line .bar i{display:block;width:0;height:100%;background:#b65b0c;border-radius:99px;pointer-events:none}
.disc.playing{animation:musicSpin 6s linear infinite}
@keyframes musicSpin{to{transform:rotate(360deg)}}

/* Right-side replacement personal card is intentionally more compact. */
.side-profile-card{padding:20px 18px 18px}
.side-profile-card .avatar-frame{width:72px;height:72px;margin-bottom:10px}
.side-profile-card h2{font-size:18px}
.side-profile-card .bio{font-size:10.5px;margin:6px auto 11px}
.side-profile-card .social-row{margin-bottom:12px}
.side-profile-card .social-row span{width:28px;height:28px}
.side-profile-card .profile-stats{padding-top:12px}
.side-profile-card .profile-stats b{font-size:16px}

/* Weather card: temperature only, no detailed condition/forecast. */
.weather-temp-only .weather-now{display:block;border-bottom:0;padding:26px 0 8px;text-align:center}
.weather-temp-only .weather-temp{font-size:62px;line-height:1}
.weather-temp-only .weather-title{justify-content:flex-start}

/* ===== 2026-08-28 weather reference + equal side cards ===== */
@media (min-width:981px){
  .home-grid{grid-template-columns:262px minmax(0,1fr) 262px;gap:23px}
}

/* Right personal card now matches the left personal card exactly. */
.side-profile-card{padding:25px 20px 22px}
.side-profile-card .avatar-frame{width:96px;height:96px;margin-bottom:16px;border-radius:19px}
.side-profile-card .avatar-frame img{border-radius:15px}
.side-profile-card h2{font-size:22px}
.side-profile-card .bio{font-size:12.5px;line-height:1.58;margin:8px auto 16px;max-width:220px}
.side-profile-card .social-row{gap:8px;margin-bottom:19px}
.side-profile-card .social-row span{width:31px;height:31px}
.side-profile-card .profile-stats{padding-top:17px}
.side-profile-card .profile-stats b{font-size:19px;margin-bottom:5px}

/* Full weather card based on the supplied reference. */
.weather-card{padding:21px 20px 20px}
.weather-title{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700}
.weather-location{display:flex;align-items:center;gap:5px}
.weather-location:first-letter{color:var(--orange)}
.weather-title small{font-size:8.5px;color:#aaa097;font-weight:400;background:rgba(255,255,255,.42);border:1px solid rgba(229,216,201,.62);padding:6px 9px;border-radius:999px}
.weather-now{display:grid;grid-template-columns:minmax(0,1fr) 78px;align-items:center;padding:26px 0 21px;border-bottom:1px solid var(--line)}
.weather-temp{font:700 53px/.92 "WendaoGalaxyNumber",Georgia,serif;letter-spacing:-1px;color:#2e2a27}
.weather-temp sup{font-size:20px;vertical-align:top;margin-left:2px;font-weight:500}
.weather-desc{font-size:13px;font-weight:700;margin-top:13px;color:#48413b}
.weather-range{font-size:9px;color:#8f857b;margin-top:8px}
.weather-icon{width:76px;height:76px;border-radius:23px;background:linear-gradient(145deg,#fff8e8,#fff2cb);display:grid;place-items:center;color:#ff9000;box-shadow:inset 0 0 0 1px rgba(245,215,155,.22)}
.weather-icon svg{width:45px;height:45px;filter:drop-shadow(0 3px 3px rgba(245,148,0,.12))}
.forecast-label{margin-top:16px;font-size:9.5px;color:#a59a90;font-weight:600}
.forecast{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}
.forecast div{display:flex;flex-direction:column;align-items:center;min-width:0;background:rgba(255,255,255,.31);border:1px solid rgba(255,255,255,.28);border-radius:15px;padding:11px 3px 10px;font-size:8.5px;color:#5d554e}
.forecast div.is-now span{color:#f07c08;font-weight:700}
.forecast i{font-style:normal;font-size:15px;line-height:1;margin:10px 0 7px;color:#66605a}
.forecast b{display:block;font:700 11px "WendaoGalaxyNumber",Georgia,serif;margin:0;color:#342f2b}
.forecast em{font-style:normal;color:#42a9e8;font:700 8px "WendaoGalaxyNumber",ui-monospace,monospace;margin-top:7px;min-height:10px}
.weather-extra{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:16px}
.weather-extra span{display:block;background:rgba(255,255,255,.28);border-radius:13px;text-align:center;padding:10px 3px 9px;font-size:8.5px;color:#999087;white-space:nowrap}
.weather-extra span>i{font-style:normal;color:#aba39b;margin-right:2px}
.weather-extra b{display:block;color:#4f4a45;font:700 10px "WendaoGalaxyNumber",Georgia,serif;margin-top:6px}

body:is([data-theme="night"],[data-theme="violet"]) .weather-title small{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.07);color:#9c958e}
body:is([data-theme="night"],[data-theme="violet"]) .weather-temp,body:is([data-theme="night"],[data-theme="violet"]) .weather-desc{color:#ebe5de}
body:is([data-theme="night"],[data-theme="violet"]) .weather-range{color:#918a83}
body:is([data-theme="night"],[data-theme="violet"]) .weather-icon{background:linear-gradient(145deg,#303541,#252a33);color:#ffa31a}
body:is([data-theme="night"],[data-theme="violet"]) .forecast div,body:is([data-theme="night"],[data-theme="violet"]) .weather-extra span{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.055)}
body:is([data-theme="night"],[data-theme="violet"]) .forecast i,body:is([data-theme="night"],[data-theme="violet"]) .forecast b,body:is([data-theme="night"],[data-theme="violet"]) .weather-extra b{color:#d8d2cb}

@media(max-width:720px){
  .side-profile-card{padding:15px;grid-template-columns:78px 1fr}
  .side-profile-card .avatar-frame{width:74px;height:74px;margin:0}
  .side-profile-card h2{font-size:20px}
}

/* 2026-08-28: force both desktop personal cards to use the exact same box model. */
@media (min-width:981px){
  .left-column > .profile-card,
  .right-column > .profile-card{
    width:100%;
    box-sizing:border-box;
    padding:25px 20px 22px;
  }
  .left-column > .profile-card .avatar-frame,
  .right-column > .profile-card .avatar-frame{width:96px;height:96px;margin-bottom:16px;border-radius:19px}
  .left-column > .profile-card .avatar-frame img,
  .right-column > .profile-card .avatar-frame img{border-radius:15px}
  .left-column > .profile-card h2,
  .right-column > .profile-card h2{font-size:22px}
  .left-column > .profile-card .bio,
  .right-column > .profile-card .bio{font-size:12.5px;line-height:1.58;margin:8px auto 16px;max-width:220px}
  .left-column > .profile-card .social-row,
  .right-column > .profile-card .social-row{gap:8px;margin-bottom:19px}
  .left-column > .profile-card .social-row span,
  .right-column > .profile-card .social-row span{width:34px;height:34px;border-radius:11px;font-size:13px}
  .left-column > .profile-card .profile-stats,
  .right-column > .profile-card .profile-stats{padding-top:17px}
  .left-column > .profile-card .profile-stats span,
  .right-column > .profile-card .profile-stats span{font-size:10px}
  .left-column > .profile-card .profile-stats b,
  .right-column > .profile-card .profile-stats b{font-size:19px;margin-bottom:5px}
}

/* ===== Realtime weather + realtime calendar + system-font small numerals ===== */
.weather-card .weather-title small,
.weather-card .weather-range,
.weather-card .forecast,
.weather-card .forecast span,
.weather-card .forecast b,
.weather-card .forecast em,
.weather-card .weather-extra,
.weather-card .weather-extra span,
.weather-card .weather-extra b,
.calendar-card .cal-week,
.calendar-card .cal-days,
.calendar-card .cal-days span{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif !important;
  font-variant-numeric:tabular-nums;
}
.weather-card .forecast b,
.weather-card .forecast em,
.weather-card .weather-extra b{font-weight:700}
.weather-icon{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:36px}
.weather-error .weather-icon{filter:grayscale(.35);opacity:.72}

/* ===== Smooth article enter / return transition ===== */
@view-transition { navigation: auto; }
.article-back{display:inline-flex;align-items:center;gap:7px;margin:0 0 22px;color:var(--muted);text-decoration:none;font-size:13px;transition:transform .2s ease,color .2s ease,opacity .2s ease}
.article-back:hover{transform:translateX(-3px);color:var(--text)}
.article-transition-content{min-width:0}
body.page-leaving main{opacity:0;transform: translateY(0);transition:opacity .18s ease,transform .18s cubic-bezier(.22,.61,.36,1)}
::view-transition-old(root),::view-transition-new(root){animation-duration:.36s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}
::view-transition-old(root){animation-name:frud-page-out}
::view-transition-new(root){animation-name:frud-page-in}
::view-transition-group(*){animation-duration:.40s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}
@keyframes frud-page-out{to{opacity:.15;transform:translateY(-4px)}}
@keyframes frud-page-in{from{opacity:.18;transform:translateY(7px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root),::view-transition-group(*){animation-duration:.01ms!important}.article-back,body.page-leaving main{transition:none!important}}

/* ===== Home content switcher: 动态 / 相册 / 心愿 / 计划 ===== */
.home-content-tabs{margin:0 0 15px;position:relative;z-index:2}
.content-tabs-inner{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto auto;gap:6px;padding:6px;background:var(--tab-grad);border:1px solid var(--tab-border);box-shadow:0 9px 28px rgba(91,65,38,.065);border-radius:19px;backdrop-filter:blur(14px);overflow:visible}
.content-tab{position:relative;z-index:2;min-width:0;border:0;background:transparent;color:var(--muted);border-radius:14px;padding:8px 5px 7px;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font:600 11px/1.1 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;transition:color .22s ease,transform .22s cubic-bezier(.22,.61,.36,1)}
.content-tab:hover{color:var(--text);transform:translateY(-1px)}
.content-tab.theme-switch,.content-tab.admin-tab{width:34px;height:34px;padding:0;margin:auto 0;border-radius:12px;background:var(--tab-grad);border:1px solid var(--tab-border);box-shadow:0 4px 12px rgba(150,110,40,.10);display:grid;place-items:center;flex:none;position:relative;transition:transform .2s ease,box-shadow .2s ease}
.content-tab.theme-switch:hover,.content-tab.admin-tab:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(150,110,40,.16)}
.content-tab.theme-switch svg.luc,.content-tab.admin-tab svg.luc{width:19px;height:19px;stroke:var(--btn-ink);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block}
.content-tab.theme-switch .theme-night-icon,.content-tab.theme-switch .theme-day-icon{position:absolute;inset:0;display:grid;place-items:center;transition:opacity .22s ease,transform .28s ease}
.content-tab.theme-switch .theme-night-icon{opacity:1;transform:scale(1) rotate(0deg)}
.content-tab.theme-switch .theme-day-icon{opacity:0;transform:scale(.7) rotate(-90deg)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab.theme-switch .theme-night-icon{opacity:0;transform:scale(.7) rotate(90deg)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab.theme-switch .theme-day-icon{opacity:1;transform:scale(1) rotate(0deg)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab.theme-switch,body:is([data-theme="night"],[data-theme="violet"]) .content-tab.admin-tab{background:var(--tab-grad);border-color:var(--tab-border);box-shadow:0 4px 12px rgba(0,0,0,.22)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab.theme-switch svg.luc,body:is([data-theme="night"],[data-theme="violet"]) .content-tab.admin-tab svg.luc{stroke:#e9cf9a}
.content-tab:nth-child(6) .i-bg{fill:#eceffb;stroke:#c6cdee}.content-tab:nth-child(6) .i-line{stroke:#6c74a8}.content-tab:nth-child(6) .i-dot{fill:#8f9ad6}
.content-tab:nth-child(7) .i-bg{fill:#fff3e0;stroke:#efd3ac}.content-tab:nth-child(7) .i-line{stroke:#a8793f}.content-tab:nth-child(7) .i-dot{fill:#d9a055}
.content-tab.active{color:var(--text)}
.cute-tab-icon{width:29px;height:29px;display:block;flex:0 0 auto;transform-origin:50% 70%;transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.content-tab:hover .cute-tab-icon{transform:translateY(-1px) rotate(-2deg)}
.content-tab.active .cute-tab-icon{transform:translateY(-1px) scale(1.05)}
.cute-tab-icon svg{width:100%;height:100%;display:block;overflow:visible}
.cute-tab-icon .i-bg{fill:#fff1df;stroke:#f3c58f;stroke-width:1.1}
.cute-tab-icon .i-line{fill:none;stroke:#9d6a43;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}
.cute-tab-icon .i-dot{fill:#e78b54}
.content-tab:nth-child(2) .i-bg{fill:#eaf5ff;stroke:#bcd9ef}.content-tab:nth-child(2) .i-line{stroke:#6488a0}.content-tab:nth-child(2) .i-dot{fill:#73afd2}
.content-tab:nth-child(3) .i-bg{fill:#fff0f3;stroke:#efc0cb}.content-tab:nth-child(3) .i-line{stroke:#a86575}.content-tab:nth-child(3) .i-dot{fill:#df8698}
.content-tab:nth-child(4) .i-bg{fill:#f2edff;stroke:#d3c4ef}.content-tab:nth-child(4) .i-line{stroke:#8069a8}.content-tab:nth-child(4) .i-dot{fill:#a18bd1}
.content-tab:nth-child(5) .i-bg{fill:#edfaef;stroke:#c5e3c8}.content-tab:nth-child(5) .i-line{stroke:#63866a}.content-tab:nth-child(5) .i-dot{fill:#7faf85}
.content-tab-indicator{position:absolute;z-index:1;left:0;top:6px;height:calc(100% - 12px);border-radius:14px;background:var(--tab-grad);border:1px solid var(--tab-border);box-shadow:0 5px 15px rgba(104,75,47,.075);pointer-events:none;transition:transform .34s cubic-bezier(.22,.72,.2,1),width .34s cubic-bezier(.22,.72,.2,1)}

/* cards shown by non-article tabs */
.switch-card{min-height:146px;box-sizing:border-box;display:grid;grid-template-columns:150px minmax(0,1fr);overflow:hidden;text-decoration:none;color:inherit;position:relative;transition:transform .22s cubic-bezier(.22,.61,.36,1),box-shadow .22s ease}
.switch-card:hover{transform: translateY(0);box-shadow:0 16px 38px rgba(91,65,38,.105)}
.switch-card-copy{padding:20px 22px;min-width:0;display:flex;flex-direction:column;justify-content:center}
.switch-card-copy small{font:700 8.5px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.12em;color:#b0a59b}
.switch-card-copy h2{font-size:17px;line-height:1.35;margin:7px 0 8px}
.switch-card-copy p{font:400 10.8px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#847970;margin:0}
.switch-card-more{margin-top:12px;font-size:9.5px;color:#d57b2b;font-weight:700}
.switch-card-kicker{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;font:10px -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;color:#9b9188}
.switch-card-kicker b{color:#5b5149;font-size:11.5px}

.message-switch-card{grid-template-columns:108px minmax(0,1fr)}
.message-avatar{align-self:stretch;display:grid;place-items:center;font:bold 28px/1 Georgia,serif;color:#b36e77;background:radial-gradient(circle at 35% 30%,#fff8fa 0 18%,transparent 19%),linear-gradient(145deg,#fcecef,#f8dedf);border-right:1px solid rgba(220,167,177,.16)}
.message-avatar:after{content:"";width:50px;height:50px;border:2px solid rgba(168,102,116,.55);border-radius:50% 46% 48% 44%;position:absolute}
.message-text{font-size:12px!important;color:#5c534d!important;line-height:1.72!important}
.message-foot{font-size:9px;color:#aaa097;margin-top:11px}.message-foot i{color:#d891a2;font-style:normal}

.wish-switch-card{grid-template-columns:124px minmax(0,1fr)}
.wish-orb{display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.95) 0 14%,transparent 15%),linear-gradient(145deg,#f3edff,#e9def9);position:relative;overflow:hidden}
.wish-orb:before,.wish-orb:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:25px -18px 0 -2px #fff,34px 21px 0 -3px #fff,-28px 24px 0 -2px #fff,-34px -17px 0 -3px #fff}
.wish-orb span{font-size:43px;color:#8d76ba;filter:drop-shadow(0 4px 6px rgba(93,72,135,.10));position:relative;z-index:1}
.mini-progress{height:5px;margin-top:13px;background:rgba(121,101,160,.10);border-radius:999px;overflow:hidden}.mini-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#cab9eb,#9e88ca)}
.progress-caption{display:flex;justify-content:space-between;margin-top:6px;font:8.5px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#aaa0b7}.progress-caption b{color:#8b76ac}

.plan-switch-card{grid-template-columns:112px minmax(0,1fr)}
.plan-date{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#edf8ef,#dceedd);color:#66806a;border-right:1px solid rgba(112,148,119,.13)}
.plan-date span{font:700 36px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.04em}.plan-date small{margin-top:5px;font:700 8px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.14em}
.plan-status{padding:4px 8px;border-radius:999px;background:#edf5ed;color:#6f8e73;font-size:9px;font-weight:700}.plan-checks{display:flex;gap:6px;margin-top:13px}.plan-checks span{width:17px;height:17px;border-radius:6px;background:rgba(106,137,111,.10);display:grid;place-items:center;font:700 9px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#a8b2a8}.plan-checks span.done{background:#dfeee1;color:#6a8a6e}

.tab-card-enter{opacity:0;transform:translateY(8px) scale(.995);transition:opacity .36s ease var(--enter-delay,0ms),transform .42s cubic-bezier(.22,.61,.36,1) var(--enter-delay,0ms)}
.tab-card-enter.is-in{opacity:1;transform:none}

body:is([data-theme="night"],[data-theme="violet"]) .content-tabs-inner{background:var(--tab-grad);border-color:var(--tab-border);box-shadow:0 10px 28px rgba(0,0,0,.20)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab{color:var(--muted)}body:is([data-theme="night"],[data-theme="violet"]) .content-tab:hover,body:is([data-theme="night"],[data-theme="violet"]) .content-tab.active{color:var(--text)}
body:is([data-theme="night"],[data-theme="violet"]) .content-tab-indicator{background:var(--tab-grad);border-color:var(--tab-border);box-shadow:0 5px 15px rgba(0,0,0,.18)}
body:is([data-theme="night"],[data-theme="violet"]) .switch-card-copy p,body:is([data-theme="night"],[data-theme="violet"]) .message-text{color:#aaa39c!important}body:is([data-theme="night"],[data-theme="violet"]) .switch-card-kicker b{color:#ded8d1}
body:is([data-theme="night"],[data-theme="violet"]) .message-avatar{background:linear-gradient(145deg,#3b3035,#302a2e);color:#d99aab}.body:is([data-theme="night"],[data-theme="violet"]) .wish-orb{background:#302c38}
body:is([data-theme="night"],[data-theme="violet"]) .wish-orb{background:linear-gradient(145deg,#35303f,#2b2833)}body:is([data-theme="night"],[data-theme="violet"]) .plan-date{background:linear-gradient(145deg,#2e3830,#293229);color:#91b397}
body:is([data-theme="night"],[data-theme="violet"]) .plan-status{background:#303c32;color:#9cc0a1}

@media(max-width:720px){
  .content-tabs-inner{gap:2px;padding:5px;border-radius:16px;overflow-x:auto;grid-template-columns:repeat(5,minmax(60px,1fr)) auto auto;scrollbar-width:none}.content-tabs-inner::-webkit-scrollbar{display:none}
  .content-tab{flex-direction:column;gap:2px;padding:6px 2px 5px;font-size:9px}.cute-tab-icon{width:27px;height:27px}.content-tab-indicator{top:5px;height:calc(100% - 10px)}
  .switch-card,.message-switch-card,.wish-switch-card,.plan-switch-card{grid-template-columns:88px minmax(0,1fr);min-height:132px}.switch-card-copy{padding:15px 14px}.switch-card-copy h2{font-size:15px}.switch-card-copy p{font-size:10px}.message-avatar{font-size:22px}.wish-orb span{font-size:34px}.plan-date span{font-size:29px}
}
@media (prefers-reduced-motion:reduce){.content-tab,.cute-tab-icon,.content-tab-indicator,.switch-card,.tab-card-enter{transition:none!important}}

/* ===== No-flash content tab transition ===== */
.post-feed{position:relative}
.post-feed.tab-crossfading{
  overflow:hidden;
  transition:height .34s cubic-bezier(.22,.72,.2,1);
  contain:layout paint;
}
.tab-transition-layer{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:inherit;
  will-change:opacity,transform;
  backface-visibility:hidden;
  transform:translateZ(0);
}
.tab-transition-old{
  position:absolute;
  z-index:2;
  left:0;
  top:0;
  opacity:1;
  transform:translate3d(0,0,0);
  pointer-events:none;
  transition:opacity .20s ease,transform .28s cubic-bezier(.22,.61,.36,1);
}
.tab-transition-old.is-out{opacity:0;transform:translate3d(0,-3px,0)}
.tab-transition-new{
  position:relative;
  z-index:1;
  opacity:.18;
  transform:translate3d(0,5px,0);
  transition:opacity .28s ease .035s,transform .34s cubic-bezier(.22,.72,.2,1) .02s;
}
.tab-transition-new.is-in{opacity:1;transform:translate3d(0,0,0)}
/* The previous per-card entrance + root View Transition created a visible flash.
   Crossfade the whole prepared group instead, without a blank frame. */
.tab-crossfading .tab-card-enter{opacity:1!important;transform:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){
  .post-feed.tab-crossfading,.tab-transition-old,.tab-transition-new{transition:none!important}
}

/* ===== Instant-response home tabs: pre-rendered panels ===== */
.post-feed.home-tab-panels{display:block;position:relative;transition:height .22s cubic-bezier(.22,.72,.2,1)}
.home-tab-panel{display:flex;flex-direction:column;gap:15px;width:100%;opacity:0;transform:translate3d(0,4px,0);pointer-events:none;visibility:hidden;position:absolute;inset:0 auto auto 0;will-change:opacity,transform;backface-visibility:hidden;transition:opacity .16s ease,transform .20s cubic-bezier(.22,.72,.2,1)}
.home-tab-panel.is-active{position:relative;inset:auto;opacity:1;transform:translate3d(0,0,0);pointer-events:auto;visibility:visible;z-index:2}
.home-tab-panel.is-leaving{position:absolute;inset:0 auto auto 0;opacity:0;transform:translate3d(0,-3px,0);visibility:visible;z-index:1;pointer-events:none}
.post-feed.home-tab-panels.is-switching{overflow:hidden}
.content-tab{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.content-tab.is-pressing{transform:translateY(0) scale(.985)}
.content-tab-indicator{transition-duration:.20s,.20s}
@media(min-width:721px){.home-tab-panel{gap:15px}}
@media(max-width:720px){.home-tab-panel{gap:22px}}
@media(prefers-reduced-motion:reduce){.post-feed.home-tab-panels,.home-tab-panel{transition:none!important}}

/* Dual independent profile cards */
.profile-card{position:relative}
.profile-gender{position:absolute;top:14px;right: 20px;display:grid;place-items:center;width:25px;height:25px;border-radius:9px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:11px;font-weight:800;background:rgba(116,167,255,.12);color:#6f9fe8;border:1px solid rgba(116,167,255,.18)}
.profile-gender.female{background:rgba(255,139,178,.12);color:#df7d9e;border-color:rgba(255,139,178,.18)}
.level-row{display:flex;justify-content:center;align-items:center;margin:2px 0 14px;min-height:30px;overflow:visible}
.level-group{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:30px;padding:3px 7px;border-radius:10px;border:1px solid rgba(214,139,66,.14);background:linear-gradient(145deg,rgba(255,251,242,.9),rgba(255,239,216,.66));box-shadow:0 5px 14px rgba(151,91,34,.08);cursor:default;outline:none;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}
.level-group:hover,.level-group:focus-visible{transform: translateY(0);background:linear-gradient(145deg,#fffdf8,#fff0d9);border-color:rgba(239,127,19,.24);box-shadow:0 8px 20px rgba(151,91,34,.12)}
.level-icon{width:auto;height:22px;max-width:25px;display:block;object-fit:contain;flex:0 0 auto}
.level-group[data-tooltip]::before{content:attr(data-tooltip);position:absolute;left:50%;top:calc(100% + 9px);z-index:30;transform:translate(-50%,-5px);padding:7px 10px;border:1px solid rgba(217,153,85,.24);border-radius:9px;background:linear-gradient(145deg,rgba(255,252,246,.98),rgba(255,241,221,.98));box-shadow:0 10px 28px rgba(91,61,33,.16);color:#665346;font:600 11px/1.3 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,transform .16s ease,visibility .16s ease}
.level-group[data-tooltip]::after{content:"";position:absolute;left:50%;top:calc(100% + 5px);z-index:31;width:8px;height:8px;background:#fff1de;border-left:1px solid rgba(217,153,85,.22);border-top:1px solid rgba(217,153,85,.22);transform:translateX(-50%) rotate(45deg);opacity:0;visibility:hidden;transition:opacity .16s ease,visibility .16s ease}
.level-group[data-tooltip]:hover::before,.level-group[data-tooltip]:focus-visible::before{opacity:1;visibility:visible;transform:translate(-50%,0)}
.level-group[data-tooltip]:hover::after,.level-group[data-tooltip]:focus-visible::after{opacity:1;visibility:visible}
.level-empty{font-size:11px;opacity:.5}

.profile-reactions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 14px}
.profile-reaction{border:1px solid rgba(105,91,78,.08);background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(255,248,240,.5));box-shadow:0 5px 12px rgba(80,60,40,.05);border-radius:12px;min-height:42px;padding:5px 4px;cursor:pointer;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease}
.profile-reaction span{font-size:10px;font-weight:700;line-height:1.25;white-space:nowrap}.profile-reaction b{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;line-height:1.05}
.profile-reaction:hover{transform: translateY(0);background:rgba(255,255,255,.68)}.profile-reaction.reacted{animation:profileReact .3s ease}
.profile-reaction.egg{background:linear-gradient(145deg,#fffaf1,#f5ead9)}.profile-reaction.egg:hover{border-color:rgba(177,139,91,.35);box-shadow:0 8px 22px rgba(177,139,91,.12)}
@keyframes profileReact{50%{transform:scale(1.035)}}
.profile-stats.four{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.profile-stats.four span{min-width:0}.profile-stats.four b{font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
body:is([data-theme="night"],[data-theme="violet"]) .level-group{background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(239,127,19,.045));border-color:rgba(239,170,99,.12)}
body:is([data-theme="night"],[data-theme="violet"]) .level-group:hover,body:is([data-theme="night"],[data-theme="violet"]) .level-group:focus-visible{background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(239,127,19,.08));border-color:rgba(239,170,99,.22)}
body:is([data-theme="night"],[data-theme="violet"]) .level-group[data-tooltip]::before{background:linear-gradient(145deg,rgba(47,40,35,.98),rgba(37,31,28,.98));border-color:rgba(239,170,99,.18);color:#f7e8d7;box-shadow:0 12px 30px rgba(0,0,0,.28)}
body:is([data-theme="night"],[data-theme="violet"]) .level-group[data-tooltip]::after{background:#29221e;border-color:rgba(239,170,99,.16)}
body:is([data-theme="night"],[data-theme="violet"]) .profile-reaction{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.06)}
body:is([data-theme="night"],[data-theme="violet"]) .profile-reaction:hover{background:rgba(255,255,255,.065)}
@media(max-width:760px){.profile-reactions{grid-column:1/-1}.level-row{grid-column:1/-1}.profile-stats.four{grid-column:1/-1}}

/* Author identity shown on every user-owned content card */
.content-author{display:flex;align-items:center;gap:6px;margin:0 0 7px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:12px;line-height:1.2;color:var(--muted,#8e8790)}
.content-author b{font-size:12px;font-weight:700;color:var(--text,#4b4248)}
.content-author small{font:inherit;color:inherit}
.author-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:0 0 auto;background:#86a8e7;box-shadow:0 0 0 3px rgba(134,168,231,.12)}
.author-dot.female{background:#e7a2bd;box-shadow:0 0 0 3px rgba(231,162,189,.13)}
.dark-mode .content-author b{color:#eee8ec}
.message-switch-card .switch-card-kicker time{margin-left:0}

/* 2026-08 card interaction: card stays fixed, content pulls closer */
@media (hover:hover) and (pointer:fine){
  
  .music-card:hover .disc{transform:scale(1.045) rotate(2deg)!important}
  .post-main,.profile-card>*:not(.avatar-frame),.music-card>*:not(.disc){
    transition:filter .34s ease,opacity .34s ease;
  }
}

/* Keep level tooltip solid instead of glass/transparent. */
.level-group{isolation:isolate}
.level-group[data-tooltip]::before{background:#fff6e8!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}
.level-group[data-tooltip]::after{background:#fff1de!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}
body:is([data-theme="night"],[data-theme="violet"]) .level-group[data-tooltip]::before{background:#2f2823!important}
body:is([data-theme="night"],[data-theme="violet"]) .level-group[data-tooltip]::after{background:#29221e!important}

/* Embedded guestbook shown directly inside the home content area. */
.home-guestbook-shell{width:100%;overflow:hidden;border-radius:24px;background:transparent}
.home-guestbook-frame{display:block;width:100%;height:520px;border:0;background:transparent;border-radius:24px;overflow:hidden}
@media(max-width:720px){.home-guestbook-frame{border-radius:18px}}

/* final layout fixes */
.level-row{position:relative;z-index:5;margin-bottom:10px;}
.level-group{z-index:6;}
.profile-reactions{position:relative;z-index:1;}
.profile-stats.four{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));white-space:nowrap;}
.profile-stats.four span{overflow:hidden;text-overflow:ellipsis;}

/* final layout fixes */
.profile-stats{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  flex-wrap:nowrap!important;
  white-space:nowrap;
  overflow:visible;
}
.profile-stats span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.profile-stats b{
  font-size:14px!important;
}
.profile-reaction{
  min-height:34px!important;
  padding:3px 4px!important;
  border-radius:10px!important;
}
.profile-reaction span{
  font-size:9px!important;
}
.profile-reaction b{
  font-size:13px!important;
}
.profile-reactions{gap:5px!important;}
.level-group,.level-group:hover,.level-group:focus-visible{
  transform:none!important;
  transition:none!important;
}
.level-group[data-tooltip]:hover::before,
.level-group[data-tooltip]:focus-visible::before{
  transform:translate(-50%,0)!important;
}

/* gift click effects：特效层跟随个人卡片（滚动/缩放同步定位），尺寸随卡片大小 */
/* 黑金嘉年华：点击鸡蛋后播放视频特效，跟随个人卡片（宽度=卡片宽度、居中于卡片、滚动同步） */

/* 礼物行：星级下方 左右数据卡 + 中间礼物图标（点击化身礼物栏） */
.gift-row{display:flex;justify-content:center;align-items:center;margin:0 0 14px}
.gift-row.hidden{visibility:hidden;pointer-events:none}
.gift-btn{position:relative;width:54px;height:54px;border-radius:50%;border:1px solid color-mix(in srgb,var(--gift) 34%,transparent);background:var(--card-strong);box-shadow:0 7px 18px color-mix(in srgb,var(--gift) 22%,transparent),inset 0 0 0 3px color-mix(in srgb,var(--gift) 8%,transparent);cursor:pointer;display:grid;place-items:center;padding:0;transition:transform .16s ease,box-shadow .16s ease}
.gift-tip{position:absolute;left:50%;top:calc(100% + 9px);z-index:30;transform:translate(-50%,-5px);padding:7px 10px;border:1px solid color-mix(in srgb,var(--gift) 30%,transparent);border-radius:9px;background:var(--card-strong);box-shadow:0 10px 28px color-mix(in srgb,var(--gift) 18%,transparent);color:var(--text);font:600 11px/1.3 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:7}
.gift-btn:hover .gift-tip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.gift-btn img{width:32px;height:32px;display:block;pointer-events:none}
.gift-btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px color-mix(in srgb,var(--gift) 32%,transparent)}
.gift-btn:hover img{animation:giftSwing .5s ease-in-out}
@keyframes giftSwing{0%,100%{transform:rotate(0)}25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}
/* 礼物栏（点击礼物图标后化身展开：浅粉底+红框圆角） */
.gift-panel{display:none;position:absolute;left:0;right:0;margin:0;box-sizing:border-box;padding:6px 6px 5px;border:2px solid color-mix(in srgb,var(--gift) 55%,transparent);border-radius:16px;background:var(--card-strong);box-shadow:0 12px 28px color-mix(in srgb,var(--gift) 22%,transparent);animation:giftPanelIn .32s ease-out;overflow:visible;z-index:12}
.gift-panel.open{display:block}
.gift-panel-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 4px;padding:0}
.gift-points{display:flex;align-items:center;gap:3px;font-size:10px;font-weight:800;color:var(--gift);font-family:system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif}
.gift-points b{font-size:12px}
.gift-info{position:relative;width:16px;height:16px;border-radius:50%;background:color-mix(in srgb,var(--gift) 14%,transparent);color:var(--gift);font-size:10px;font-weight:800;display:grid;place-items:center;cursor:help;flex:0 0 auto}
.gift-info::after{content:attr(data-tip);position:absolute;right:0;bottom:calc(100% + 8px);z-index:32;padding:8px 10px;border:1px solid color-mix(in srgb,var(--gift) 30%,transparent);border-radius:9px;background:var(--card-strong);box-shadow:0 12px 30px color-mix(in srgb,var(--gift) 20%,transparent);color:var(--text);font:600 10px/1.6 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;width:172px;max-width:172px;text-align:left;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,visibility .16s}
.gift-info:hover::after,.gift-info:focus-visible::after{opacity:1;visibility:visible}
.gift-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(2,1fr);gap:3px;width:100%}
.gift-item{position:relative;border:0;background:none;cursor:pointer;padding:0;display:grid;place-items:center;min-width:0;height:27px;border-radius:8px;transition:background .16s ease}
.gift-item:hover{background:color-mix(in srgb,var(--gift) 10%,transparent)}
.gift-item img.gift-ico{width:20px;height:20px;transition:transform .18s ease;display:block}
.gift-item:hover img.gift-ico{transform:scale(1.3)}
.gift-item:active img.gift-ico{transform:scale(1.12)}
.gift-price{position:absolute;right:0;bottom:0;font-style:normal;font-size:7.5px;font-weight:800;color:#fff;background:color-mix(in srgb,var(--gift) 88%,transparent);border-radius:5px;padding:0 3px;line-height:11px;pointer-events:none}
.gift-item.no-points img.gift-ico{animation:giftShake .4s ease}
@keyframes giftShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
@keyframes giftPanelIn{0%{opacity:0;transform:translateY(12px) scale(.95)}100%{opacity:1;transform:translateY(0) scale(1)}}
.gift-big-preview{position:fixed;z-index:9996;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--gift) 30%,transparent);border-radius:12px;background:var(--card-strong);box-shadow:0 16px 38px color-mix(in srgb,var(--gift) 24%,transparent);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease,visibility .16s}
.gift-big-preview.show{opacity:1;visibility:visible;transform:translateY(0)}
.gift-big-preview img{width:118px;height:118px;object-fit:contain;display:block}
.gift-big-preview b{font-size:12px;font-weight:800;color:#665346}
.gift-big-preview span{font-size:10px;font-weight:700;color:#b06a2f}
.gift-toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(12px);z-index:9999;padding:10px 18px;border:1px solid rgba(217,153,85,.24);border-radius:10px;background:linear-gradient(145deg,rgba(255,252,246,.99),rgba(255,241,221,.99));box-shadow:0 14px 34px rgba(91,61,33,.22);color:#665346;font:600 12px/1.4 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,transform .2s ease,visibility .2s}
.gift-toast.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.gift-toast.anchored{left:auto;right:auto;bottom:auto;transform:none}
.gift-toast.anchored.show{transform:none}
.gift-video-fx{position:fixed;z-index:9995;pointer-events:none;border-radius:20px;overflow:hidden;opacity:0;transform:scale(.4);animation:giftVideoIn .5s cubic-bezier(.18,1.25,.35,1) forwards}
.gift-video-fx video{display:block;width:100%;height:100%;object-fit:cover}
.gift-video-fx.leaving{animation:giftVideoOut .36s ease forwards}
@keyframes giftVideoIn{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
@keyframes giftVideoOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.88)}}
body:is([data-theme="night"],[data-theme="violet"]) .gift-tip,body:is([data-theme="night"],[data-theme="violet"]) .gift-big-preview,body:is([data-theme="night"],[data-theme="violet"]) .gift-toast{background:linear-gradient(145deg,rgba(56,38,30,.97),rgba(66,44,32,.97));border-color:rgba(217,153,85,.3);color:#f2d9bd}
body:is([data-theme="night"],[data-theme="violet"]) .gift-big-preview b{color:#f2d9bd}
body:is([data-theme="night"],[data-theme="violet"]) .gift-info::after,body:is([data-theme="night"],[data-theme="violet"]) .gift-info:hover::after{background:linear-gradient(145deg,rgba(56,38,30,.97),rgba(66,44,32,.97));border-color:rgba(217,153,85,.3);color:#f2d9bd}

/* 留言板2：隐藏右侧滚动条，但保留鼠标/触摸滚动功能 */
body.guestbook-panel-2:not(.guestbook-embed) .note-grid{
    scrollbar-width:none!important;
    -ms-overflow-style:none!important;
}
body.guestbook-panel-2:not(.guestbook-embed) .note-grid::-webkit-scrollbar{
    display:none!important;
    width:0!important;
    height:0!important;
}

/* user requested: restore guestbook decorations + align composer */
body.guestbook-embed .pin{
    width:21px!important;
    height:21px!important;
    top:5px!important;
}
body.guestbook-embed .note-top-decor{
    width:44px!important;
    height:44px!important;
}

/* keep message card aligned with clock area */
body.guestbook-embed .form-card{
    box-sizing:border-box!important;
    transform:translateY(2px)!important;
    box-shadow:none!important;
}

/* name and message input same row */
body.guestbook-embed .form-row{
    display:grid!important;
    grid-template-columns:180px minmax(0,1fr)!important;
    gap:12px!important;
    align-items:center!important;
}

body.guestbook-embed .form-name-wrap{
    width:180px!important;
}

body.guestbook-embed .form-msg textarea{
    min-height:48px!important;
}

/* remove homepage embedded guestbook seam shadow */
body.guestbook-embed .board-wrapper{
    box-shadow:none!important;
}
/* 留言板便签与写留言卡片 */
.guestbook-board{display:grid;gap:18px}
.guest-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.guest-note-card{position:relative;padding:22px 18px;background:#fff6c9;border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.08);transform:rotate(-1deg);transition:transform .35s ease,box-shadow .35s ease,filter .35s ease}
.guest-note-card:hover{transform:rotate(-1deg) scale(1.06) translateY(-4px);box-shadow:0 0 18px rgba(255,230,150,.7),0 14px 35px rgba(0,0,0,.14);filter:drop-shadow(0 0 8px rgba(255,245,190,.75));z-index:30}
.guest-note-card:nth-child(even):hover{transform:rotate(1deg) scale(1.06) translateY(-4px)}
.guest-note-card:nth-child(even){background:#e8f7ff;transform:rotate(1deg)}
.note-pin{position:absolute;right: 20px;top:10px}
.guest-note-card h3{margin:0 0 10px}.guest-note-card p{line-height:1.7}.guest-note-card small{color:#999}
/* 留言板便签与写留言卡片 */
.guestbook-board{display:grid;gap:18px}.guest-write-card h2{margin:0;font-size:20px;color:var(--text)}.guest-write-card input,.guest-write-card textarea{width:100%;box-sizing:border-box;border:1px solid var(--line-strong);border-radius:14px;padding:12px;background:var(--card-strong);color:var(--text);font:inherit}.guest-write-card textarea{min-height:90px;resize:vertical}.guest-write-card button{border:0;border-radius:999px;padding:12px;background:var(--orange);color:#fff;cursor:pointer}.guest-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.guest-note-card{position:relative;padding:22px 18px;background:#fff6c9;border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.08);transform:rotate(-1deg);transition:transform .35s ease,box-shadow .35s ease,filter .35s ease}
.guest-note-card:hover{transform:rotate(-1deg) scale(1.06) translateY(-4px);box-shadow:0 0 18px rgba(255,230,150,.7),0 14px 35px rgba(0,0,0,.14);filter:drop-shadow(0 0 8px rgba(255,245,190,.75));z-index:30}
.guest-note-card:nth-child(even):hover{transform:rotate(1deg) scale(1.06) translateY(-4px)}.guest-note-card:nth-child(even){background:#e8f7ff;transform:rotate(1deg)}.note-pin{position:absolute;right: 20px;top:10px}.guest-note-card h3{margin:0 0 10px}.guest-note-card p{line-height:1.7}.guest-note-card small{color:#999}
/* SVG便签留言板新版 */
.guest-notes-card{background:rgba(255,255,255,.42);backdrop-filter:blur(10px);border-radius:24px;padding:20px;overflow:visible}
.guest-notes{display:grid;grid-template-columns:repeat(3,190px);grid-auto-rows:160px;gap:16px;max-height:540px;overflow-y:auto;scrollbar-width:none;justify-content:center}
.guest-notes::-webkit-scrollbar{display:none}
.guest-note-card{position:relative;width:190px;height:160px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent!important;box-shadow:none!important;transform:none!important;overflow:visible}
.note-svg{position:absolute;inset:0;width:190px;height:160px;z-index:0}
.note-content{position:relative;z-index:1;width:82%;height:126px;padding-top:4px;display:flex;flex-direction:column;box-sizing:border-box;color:#4f5358}
.note-content .note-message{font-size:13px;line-height:1.55;margin:0;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}
.note-content .note-meta{position:absolute;top:103px;left:0;right:0;height:36px;box-sizing:border-box;padding-top:5px;border-top:1px dashed rgba(180,150,150,.45);display:flex;flex-direction:column;justify-content:flex-start;gap:3px;font-size:12px;font-weight:400;line-height:1;color:#8f6e6e}
.note-content .note-author,.note-content .note-time{display:flex;align-items:center;gap:5px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:0}
.note-content .note-author{color:#8f6e6e;font-size:12px;font-weight:400}
.note-content .note-time{font-size:11px;color:#a58b8b;font-weight:400}
.note-meta-icon{width:11px;height:11px;display:block;object-fit:contain;flex:0 0 11px;opacity:.8}
.note-calendar-icon{width:11px;height:11px}
@media(max-width:700px){.guest-notes{grid-template-columns:repeat(2,190px);max-height:540px}}

/* 便签分界线中央固定随机 SVG 装饰 */
.note-corner-decor{
    position:absolute;
    left:76%;
    top:118px;
    width:40px;
    height:auto;
    object-fit:contain;
    opacity:.92;
    transform:translate(-50%,-100%);
    z-index:2;
    pointer-events:none;
    -webkit-user-select:none;
    user-select:none;
    -webkit-user-drag:none;
}

/* note decorations */
.note-decor{position:absolute;z-index:3;pointer-events:none;}
.note-decor.pin{width:32px;height:32px;top:-22px;left:50%;transform:translateX(-50%);}
.note-decor.tape{width:52px;height:29px;top:-14px;left:50%;transform:translateX(-50%);}

/* 第一排便签装饰置顶：钉子/胶带层级高于留言板其它元素 */
.guest-notes > .guest-note-card:nth-child(-n+3){
    position:relative;
    z-index:20;
}
.guest-notes > .guest-note-card:nth-child(-n+3) .note-decor{
    z-index:9999;
    position:absolute;
    pointer-events:none;
}
.guest-notes > .guest-note-card:nth-child(-n+3) .note-decor.pin{
    z-index:10000;
}

/* 修复第一排便签装饰被滚动容器裁剪 */
.guest-notes{
    padding-top:24px!important;
    margin-top:-24px!important;
}
.guest-notes > .guest-note-card:nth-child(-n+3){
    z-index:50!important;
}
.guest-notes > .guest-note-card:nth-child(-n+3) .note-decor{
    z-index:99999!important;
}
.guest-notes > .guest-note-card:nth-child(-n+3) .note-decor.pin,
.guest-notes > .guest-note-card:nth-child(-n+3) .note-decor.tape{
    transform:translateX(-50%) translateY(-4px);
}

/* 留言板选择行为：便签纸与装饰不可选中，仅文字可框选复制 */
.guest-note-card,
.guest-note-card .note-svg,
.guest-note-card .note-decor,
.guest-note-card .note-corner-decor{
    -webkit-user-select:none;
    user-select:none;
}
.guest-note-card .note-svg,
.guest-note-card .note-decor,
.guest-note-card .note-corner-decor{
    -webkit-user-drag:none;
    pointer-events:none;
}
.guest-note-card .note-content,
.guest-note-card .note-content *{
    -webkit-user-select:text;
    user-select:text;
}

/* 修复：SVG便签悬停交互（覆盖前面的 transform:none 规则） */
.guest-note-card{
    transition:transform .35s cubic-bezier(.22,.61,.36,1), filter .35s ease;
}
.guest-note-card:hover{
    transform:scale(1.025) translateY(-2px)!important;
    filter:drop-shadow(0 0 7px var(--note-glow, rgba(255,235,150,.5)))!important;
    z-index:100!important;
}
/* 根据便签纸颜色匹配微光 */
.guest-note-card:nth-child(4n+1){--note-glow:rgba(255,220,120,.55)}
.guest-note-card:nth-child(4n+2){--note-glow:rgba(135,210,255,.55)}
.guest-note-card:nth-child(4n+3){--note-glow:rgba(255,170,200,.5)}
.guest-note-card:nth-child(4n+4){--note-glow:rgba(170,235,180,.5)}
.guest-note-card:hover .note-svg{
    filter:drop-shadow(0 0 5px var(--note-glow, rgba(255,220,120,.3)));
}

/* 调整留言便签网格容器宽度：只扩展容器，不改变便签排列位置 */
.guest-notes{
    width:calc(100% + 40px);
    margin-left:-20px;
    box-sizing:border-box;
}

/* 新留言贴上动画 */
.guest-note-card.paste-in{
  animation: notePasteIn .75s cubic-bezier(.2,1.35,.45,1);
  transform-origin: 50% 0%;
}
@keyframes notePasteIn{
  0%{
    opacity:0;
    transform:translateY(-55px) rotate(-8deg) scale(.88);
    filter:drop-shadow(0 18px 18px rgba(0,0,0,.22));
  }
  45%{
    opacity:1;
    transform:translateY(6px) rotate(3deg) scale(1.04);
    filter:drop-shadow(0 6px 8px rgba(0,0,0,.18));
  }
  70%{
    transform:translateY(-3px) rotate(-1deg) scale(.99);
  }
  100%{
    transform:translateY(0) rotate(var(--note-rotate,0deg)) scale(1);
    filter:none;
  }
}

/* ==== guestbook composer redesign ==== */
body.guestbook-embed .guestbook-board{
  display:grid!important;
  grid-template-rows:1fr auto!important;
  gap:20px!important;
  height:100%!important;
}

/* ==== HOME guestbook composer: compact card aligned with left clock ==== */




/* ===== 2026-09-06 guestbook composer: exact clock-bottom alignment ===== */



/* ===== guestbook alignment v3: authoritative desktop override ===== */


/* ===== guestbook composer v4: submit button lives inside expanding message editor ===== */




/* ===== guestbook composer v5: horizontal drawer reveal ===== */


/* ===== guestbook composer v5: horizontal pull-back reveal ===== */


/* ===== guestbook composer v6: svg submit + 30-char input ===== */



/* ===== guestbook composer v7: icon-only submit control ===== */




/* ===== guestbook composer v8: 80px name field + uploaded send icon ===== */



/* ===== guestbook composer v9: smaller field text ===== */

/* ===== guestbook composer v10: collapsed ellipsis + count + emoji picker ===== */



/* ===== guestbook composer v11: natural dot preview + fixed editor tools ===== */
.home-tab-panel[data-home-panel="guestbook"] .guest-collapsed-preview{
  position:absolute!important;
  left:14px!important;
  right:12px!important;
  top:50%!important;
  z-index:3!important;
  display:none!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  transform:translateY(-50%)!important;
  pointer-events:none!important;
  font-size:12px!important;
  line-height:1.35!important;
  color:#655b58!important;
  letter-spacing:0!important;
}

/* ===== guestbook composer: emoji support without changing the original send-button anchor ===== */



/* ===== guestbook emoji anchor v13: same positioning model as send button ===== */

/* Visibility changes only opacity/pointer state; coordinates never change. */

/* Picker is also anchored to the editor, independent of the toggle button. */



/* ===== desktop guestbook emoji/send baseline fix =====
   Desktop only: keep the send button untouched. Anchor the emoji wrapper to
   the same editor centerline, then keep the emoji button static inside it.
   This avoids display:contents changing the absolute-position containing block.
*/


/* guestbook emoji SVG icon */

/* ===== guestbook desktop action size tune ===== */


/* ===== SVG emoji picker: large preview + tooltip ===== */
/* ===== guestbook composer v16: SVG emoji editor (contenteditable) ===== */

/* disable the old per-button scale tooltip; hover preview panel replaces it */
/* 表情按钮必须回到 picker 网格的自动排列（6 列 × 多行）。
   同时重置旧规则继承的 top/right/bottom/left 偏移（否则按钮在格子里被推到右下、位置不对），
   并把整个表情网格往面板右上角靠拢（减少上/右内边距，增加下/左内边距） */
/* ===== guestbook emoji hover preview: big emoji + label ===== */
/* emoji rendered inside note cards (front page + admin) */
.emoji-inline{
  display:inline-block!important;width:1.35em!important;height:1.35em!important;
  min-width:16px!important;min-height:16px!important;
  vertical-align:-0.22em!important;margin:0 1px!important;object-fit:contain!important;
}

/* ==== 地图轨迹 MapTrack ==== */
.map-mini-card{padding:18px;display:flex;flex-direction:column;gap:14px}
.map-mini-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.map-mini-title{font-size:15px;font-weight:700;color:#5d4943;display:flex;align-items:center;gap:6px}
.map-mini-icon{font-size:18px}
.map-mini-btn{font-size:12px;color:#d895a5;text-decoration:none;white-space:nowrap;font-weight:600}
.map-mini-btn:hover{color:#c97a8e}
.map-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.map-mini-stat{background:rgba(216,149,165,.08);border-radius:10px;padding:8px 4px}
.map-mini-stat b{display:block;font-size:20px;font-weight:800;color:#d895a5;line-height:1.2}
.map-mini-stat span{font-size:11px;color:#999}
.map-mini-list{display:flex;flex-direction:column;gap:6px;max-height:140px;overflow-y:auto}
.map-mini-item{display:flex;align-items:center;gap:8px;font-size:12px;padding:5px 8px;background:rgba(255,255,255,.5);border-radius:8px}
.map-mini-dot{width:7px;height:7px;border-radius:50%;background:#e8788a;flex-shrink:0}
.map-mini-name{font-weight:600;color:#5d4943;flex-shrink:0}
.map-mini-prov{color:#999;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-mini-date{color:#bbb;flex-shrink:0;font-size:11px}
.map-mini-empty{font-size:12px;color:#bbb;text-align:center;padding:12px 0}

/* 完整地图页 */
.map-page-layout{display:grid;grid-template-columns:1fr 300px;gap:18px;margin-top:18px}
@media(max-width:900px){.map-page-layout{grid-template-columns:1fr}}
.map-container{padding:16px;border-radius:20px;position:relative}
.map-main{width:100%;height:560px;border-radius:14px;overflow:hidden}
@media(max-width:600px){.map-main{height:400px}}
.map-legend{display:flex;gap:18px;margin-top:12px;justify-content:center;font-size:12px;color:#888}
.legend-dot{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:middle}
.legend-province{background:#f7c5a8;border:1px solid #e89b6e}
.legend-marker{background:#e8788a;border-radius:50%}
.map-sidebar{padding:18px;border-radius:20px;max-height:640px;overflow-y:auto}
.map-sidebar h3{margin:0 0 14px;font-size:16px;color:#5d4943}
.map-marker-list{display:flex;flex-direction:column;gap:12px}
.map-list-item{background:rgba(255,255,255,.6);border-radius:12px;padding:12px;transition:box-shadow .3s,transform .3s;cursor:pointer}
.map-list-item:hover{box-shadow:0 4px 16px rgba(232,120,138,.15);transform:translateX(4px)}
.map-list-item.flash{box-shadow:0 0 0 3px rgba(232,120,138,.4);transform:scale(1.02)}
.map-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.map-list-name{font-weight:700;color:#5d4943;font-size:14px}
.map-list-date{font-size:11px;color:#aaa}
.map-list-prov{font-size:12px;color:#d895a5;margin-bottom:4px}
.map-list-text{font-size:12px;color:#777;line-height:1.6;margin-bottom:8px}
.map-list-photos{display:flex;flex-wrap:wrap;gap:6px}
.map-list-photo{width:60px;height:60px;object-fit:cover;border-radius:8px;cursor:pointer;transition:transform .2s}
.map-list-photo:hover{transform:scale(1.08)}
.map-list-empty{text-align:center;color:#bbb;font-size:13px;padding:30px 0}

/* ECharts 弹窗 */
.map-popup{padding:12px 14px;max-width:280px}
.map-popup-title{font-size:15px;font-weight:700;color:#5d4943;margin-bottom:6px}
.map-popup-date{font-size:12px;color:#999;margin-bottom:2px}
.map-popup-prov{font-size:12px;color:#d895a5;margin-bottom:6px}
.map-popup-text{font-size:13px;color:#666;line-height:1.6;margin-bottom:8px}
.map-popup-photos{display:flex;flex-wrap:wrap;gap:6px}
.map-popup-photo{width:72px;height:72px;object-fit:cover;border-radius:8px;cursor:pointer;transition:transform .2s,opacity .2s;box-shadow:0 2px 8px rgba(0,0,0,0.1)}
.map-popup-photo:hover{transform:scale(1.06);opacity:0.9}
.map-list-photo-count{font-size:11px;color:#b8a898;margin-top:4px}

/* 照片 Hover 预览（悬停放大，移走回缩） */
.map-photo-preview{display:none;position:fixed;z-index:2147483647;pointer-events:none}
.map-photo-preview.show{display:block;animation:mapPreviewFadeIn .15s ease}
@keyframes mapPreviewFadeIn{from{opacity:0;transform:scale(0.92)}to{opacity:1;transform:scale(1)}}
.map-photo-preview-img{border-radius:12px;box-shadow:0 12px 48px rgba(0,0,0,0.35);border:3px solid rgba(255,255,255,0.92);object-fit:contain;display:block;background:#fff}

/* ===================== 主题系统 v2：多主题换肤 ===================== */
/* 薄荷清新 */
body[data-theme="mint"]{
  --bg:#eef6ef;--bg2:#e3efe6;
  --card:rgba(202,234,210,.94);--card-strong:rgba(228,244,233,.97);
  --line:rgba(60,120,85,.12);--line-strong:rgba(60,120,85,.18);
  --text:#28312c;--muted:#74887c;--muted2:#97ab9e;
  --orange:#3fae74;--orange2:#63c78f;--blue:#4a86c9;--red:#e86a7a;
  --shadow:0 16px 42px rgba(50,90,70,.09);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.70),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(214,240,222,.85),transparent 68%),linear-gradient(180deg,#f2f9f2 0,#e6f2e8 48%,#d9eadc 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.14),transparent 15%,transparent 85%,rgba(255,255,255,.15)),radial-gradient(circle at 10% 55%,rgba(63,174,116,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(74,134,201,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(214,240,222,.92),rgba(186,226,200,.78));
  --tab-border:rgba(255,255,255,.82);--tab-indicator:linear-gradient(145deg,rgba(210,238,220,.98),rgba(182,224,198,.88));;--tab-indicator-border:rgba(255,255,255,.88);
  --btn-grad:linear-gradient(145deg,#f5fff8,#e7f4eb);--btn-border:rgba(90,160,125,.32);--btn-ink:#3d9c6b;
  --gift:#3fa76b;
}
/* 蜜桃甜心 */
body[data-theme="peach"]{
  --bg:#fdf1ee;--bg2:#f8e6e2;
  --card:rgba(255,222,216,.94);--card-strong:rgba(255,235,231,.97);
  --line:rgba(170,95,85,.12);--line-strong:rgba(170,95,85,.18);
  --text:#382b2a;--muted:#9a7f7b;--muted2:#b29f9b;
  --orange:#ef6a7e;--orange2:#ff8fa0;--blue:#c97b8f;--red:#e04a5a;
  --shadow:0 16px 42px rgba(150,80,70,.10);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.72),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(255,233,228,.90),transparent 68%),linear-gradient(180deg,#fdf5f2 0,#f9eae6 48%,#f5e0dc 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.14),transparent 15%,transparent 85%,rgba(255,255,255,.15)),radial-gradient(circle at 10% 55%,rgba(239,106,126,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(201,123,143,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(255,233,228,.92),rgba(250,214,208,.78));
  --tab-border:rgba(255,255,255,.82);--tab-indicator:linear-gradient(145deg,rgba(255,231,226,.98),rgba(252,214,208,.88));;--tab-indicator-border:rgba(255,255,255,.88);
  --btn-grad:linear-gradient(145deg,#fff8f6,#f9eae7);--btn-border:rgba(226,120,136,.32);--btn-ink:#d95f74;
  --gift:#e0697f;
}
/* 海盐蓝 */
/* 暗夜（原夜间模式） */
body[data-theme="night"]{
  --bg:#232028;--bg2:#1d1a22;
  --card:rgba(31,34,40,.86);--card-strong:rgba(41,44,52,.94);
  --line:rgba(255,255,255,.08);--line-strong:rgba(255,255,255,.13);
  --text:#e8e4da;--muted:#9a948a;--muted2:#7d7a74;
  --orange:#e9a94f;--orange2:#f2c078;--blue:#8aa8e8;--red:#e87878;
  --shadow:0 16px 42px rgba(0,0,0,.30);
  --tab-grad:linear-gradient(145deg,rgba(48,51,60,.90),rgba(38,41,48,.78));
  --tab-border:rgba(255,255,255,.10);--tab-indicator:rgba(255,255,255,.08);--tab-indicator-border:rgba(255,255,255,.14);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.05),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(150,130,230,.05),transparent 68%),linear-gradient(180deg,#242129 0,#1d1a22 48%,#171419 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.05),transparent 15%,transparent 85%,rgba(255,255,255,.06)),radial-gradient(circle at 10% 55%,rgba(239,127,19,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(107,93,205,.06) 0 2px,transparent 3px);
  --btn-grad:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.05));--btn-border:rgba(255,255,255,.14);--btn-ink:#e9cf9a;
  --gift:#e8b44d;
}
/* 紫罗兰夜 */
body[data-theme="violet"]{
  --bg:#1d1729;--bg2:#231b31;
  --card:rgba(44,35,66,.86);--card-strong:rgba(52,42,78,.94);
  --line:rgba(255,255,255,.10);--line-strong:rgba(255,255,255,.16);
  --text:#ece6f6;--muted:#a99fc0;--muted2:#8f85a8;
  --orange:#b794f6;--orange2:#cdb0ff;--blue:#9a8ce0;--red:#ef8fa8;
  --shadow:0 16px 42px rgba(0,0,0,.30);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(183,148,246,.08),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(140,110,220,.06),transparent 68%),linear-gradient(180deg,#282040 0,#211a35 48%,#1a1428 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.05),transparent 15%,transparent 85%,rgba(255,255,255,.06)),radial-gradient(circle at 10% 55%,rgba(183,148,246,.06) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(154,140,224,.06) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(52,42,78,.90),rgba(44,35,66,.78));
  --tab-border:rgba(255,255,255,.10);--tab-indicator:rgba(255,255,255,.08);--tab-indicator-border:rgba(255,255,255,.14);
  --btn-grad:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.05));--btn-border:rgba(255,255,255,.14);--btn-ink:#cdb0ff;
  --gift:#b18cff;
}
/* 主题面板 */
.theme-panel{position:fixed;right:20px;bottom:78px;z-index:1200;width:268px;padding:14px 14px 12px;border-radius:18px;background:var(--card-strong);border:1px solid var(--line-strong);box-shadow:0 24px 60px rgba(40,25,15,.20);backdrop-filter:blur(16px);opacity:0;visibility:hidden;transform:translateY(12px) scale(.96);transition:opacity .22s ease,transform .26s cubic-bezier(.22,.72,.2,1),visibility .22s}
.theme-panel.open{opacity:1;visibility:visible;transform:none}
.theme-panel-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 11px;font:700 13px/1 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--text)}
.theme-panel-close{width:24px;height:24px;border:0;border-radius:8px;background:rgba(128,120,110,.12);color:var(--muted);cursor:pointer;font-size:15px;line-height:1;display:grid;place-items:center;transition:background .2s ease}
.theme-panel-close:hover{background:rgba(128,120,110,.22)}
.theme-panel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px 8px}
.theme-opt{position:relative;border:0;border-radius:12px;padding:7px 3px 5px;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;font:600 10px/1 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--muted);transition:color .2s ease,transform .2s ease}
.theme-opt:hover{color:var(--text);transform:translateY(-1px)}
.theme-opt .theme-swatch{width:100%;height:42px;border-radius:9px;border:1px solid var(--line-strong);box-shadow:0 3px 8px rgba(40,25,15,.07);background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.theme-opt.active{color:var(--text)}
.theme-opt.active .theme-swatch{outline:2px solid var(--orange);outline-offset:2px}
.theme-opt.active::after{content:"✓";position:absolute;top:3px;right:4px;z-index:1;width:15px;height:15px;border-radius:50%;background:var(--orange);color:#fff;font-size:9px;font-weight:800;display:grid;place-items:center}
.sw-default{background:linear-gradient(135deg,#f8f1e8,#efe2d2)}
.sw-mint{background:linear-gradient(135deg,#f0f7f0,#d9eadc)}
.sw-peach{background:linear-gradient(135deg,#fdf3f1,#f5e0dc)}
.sw-night{background:linear-gradient(135deg,#2a2530,#17141b)}
.sw-violet{background:linear-gradient(135deg,#2c2340,#1a1428)}
/* ============ 主题配套：hero 背景图随主题变化 ============ */

body[data-theme="mint"] .hero-search{background:rgba(250,255,251,.94)}
body[data-theme="peach"] .hero-search{background:rgba(255,250,248,.94)}
/* ===== 入场性别选择 + 开场动画 ===== */
.role-gate{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(120% 90% at 50% 18%,rgba(255,241,224,.16),transparent 52%),linear-gradient(160deg,rgba(46,33,24,.82),rgba(28,21,28,.9));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overflow:hidden;transition:opacity .5s ease,visibility .5s ease}
.role-gate.gate-out{opacity:0;visibility:hidden;pointer-events:none}
.role-gate.gate-out .gate-card{transform:translateY(26px) scale(.97);opacity:0}
.gate-orb{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none}
.gate-orb-a{width:420px;height:420px;left:-80px;top:-110px;background:radial-gradient(circle,rgba(255,168,86,.34),transparent 66%);animation:gateOrbA 11s ease-in-out infinite alternate}
.gate-orb-b{width:460px;height:460px;right:-110px;bottom:-130px;background:radial-gradient(circle,rgba(178,126,235,.30),transparent 66%);animation:gateOrbB 13s ease-in-out infinite alternate}
@keyframes gateOrbA{from{transform:translate(0,0) scale(1)}to{transform:translate(60px,40px) scale(1.12)}}
@keyframes gateOrbB{from{transform:translate(0,0) scale(1)}to{transform:translate(-55px,-35px) scale(1.1)}}
.gate-hearts{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.gh-heart{position:absolute;bottom:-6%;color:rgba(255,214,170,.5);opacity:0;animation-name:gateHeartRise;animation-timing-function:linear;animation-iteration-count:infinite;text-shadow:0 0 12px rgba(255,180,100,.35)}
@keyframes gateHeartRise{0%{transform:translateY(0) rotate(0deg);opacity:0}12%{opacity:.7}85%{opacity:.45}100%{transform:translateY(-108vh) rotate(28deg);opacity:0}}
.gate-card{position:relative;width:min(560px,100%);background:linear-gradient(150deg,rgba(255,253,249,.97),rgba(255,247,237,.94));border:1px solid rgba(255,255,255,.85);border-radius:26px;padding:42px 40px 30px;text-align:center;box-shadow:0 34px 90px rgba(30,18,10,.4),inset 0 1px 0 rgba(255,255,255,.9);animation:gateIn .8s cubic-bezier(.2,.8,.24,1) both;transition:transform .45s ease,opacity .45s ease}
@keyframes gateIn{from{transform:translateY(34px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
.gate-logo{width:64px;height:64px;margin:0 auto 16px;display:grid;place-items:center;border-radius:20px;font-size:30px;color:#fff;background:linear-gradient(140deg,#ffb14d,#ef7f13 60%,#d66ae0);box-shadow:0 14px 34px rgba(239,127,19,.32);animation:gateLogoPulse 2.4s ease-in-out infinite}
@keyframes gateLogoPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.gate-card h1{margin:0 0 6px;font-size:27px;letter-spacing:-.02em;color:#33281f}
.gate-card p{margin:0 0 26px;font-size:13px;color:#97897c}
.gate-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.gate-opt{border:0;border-radius:18px;padding:22px 14px 18px;cursor:pointer;color:#fff;display:flex;flex-direction:column;align-items:center;gap:9px;transition:transform .22s cubic-bezier(.2,.8,.24,1),box-shadow .22s ease;position:relative;overflow:hidden}
.gate-opt:hover{transform:translateY(-5px)}
.gate-male{background:linear-gradient(150deg,#5b7cf0,#7c5ce0 70%)}
.gate-male:hover{box-shadow:0 18px 40px rgba(92,110,235,.38)}
.gate-female{background:linear-gradient(150deg,#ff7e9d,#f0667c 60%,#e04e8f)}
.gate-female:hover{box-shadow:0 18px 40px rgba(240,102,124,.38)}
.gate-avatar{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:28px;background:rgba(255,255,255,.22);border:1.5px solid rgba(255,255,255,.4);box-shadow:inset 0 2px 8px rgba(255,255,255,.28)}
.gate-opt b{font-size:17px;letter-spacing:.02em}
.gate-opt small{font-size:11px;line-height:1.6;color:rgba(255,255,255,.86)}
.gate-skip{display:inline-block;border:0;background:none;color:#a89a8c;font-size:12px;cursor:pointer;padding:8px 14px;border-radius:999px;transition:.18s ease}
.gate-skip:hover{color:#5c4c3e;background:rgba(239,127,19,.07)}
.gate-card.gate-welcome-anim .gate-logo{animation:none}
@media(max-width:560px){.gate-card{padding:32px 22px 24px;border-radius:20px}.gate-options{grid-template-columns:1fr;gap:10px}.gate-opt{padding:16px 12px 14px;flex-direction:row;justify-content:flex-start;text-align:left}.gate-avatar{width:44px;height:44px;font-size:22px}.gate-opt b{font-size:15px}.gate-card h1{font-size:22px}}

/* 身份徽章：我 / TA */
.avatar-frame{position:relative}

.gate-confirm{display:inline-block;border:0;border-radius:999px;padding:12px 34px;background:linear-gradient(140deg,#ffb14d,#ef7f13);color:#fff;font:700 14px/1 system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;cursor:pointer;margin-bottom:8px;box-shadow:0 10px 26px rgba(239,127,19,.3);transition:transform .2s ease,box-shadow .2s ease}
.gate-confirm:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(239,127,19,.38)}

/* ===== 留言板跟随主题 ===== */
.guest-notes-card{background:var(--card-strong);border:1px solid var(--line-strong)}

/* ===== 浪漫开场 Splash ===== */
.splash-screen{position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(130% 130% at 50% 18%,#332a5c 0%,#1d1740 48%,#100d26 100%);transition:opacity .7s ease;cursor:pointer;-webkit-user-select:none;user-select:none}
.splash-screen.is-leaving{opacity:0;pointer-events:none}
.splash-glow{position:absolute;border-radius:50%;filter:blur(6px);pointer-events:none}
.splash-glow-a{width:70vmin;height:70vmin;left:50%;top:42%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,105,180,.32),transparent 65%);animation:splashGlowA 4s ease-in-out infinite}
.splash-glow-b{width:52vmin;height:52vmin;left:50%;top:42%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(142,120,255,.30),transparent 62%);animation:splashGlowB 3.4s ease-in-out infinite}
@keyframes splashGlowA{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.16)}}
@keyframes splashGlowB{0%,100%{opacity:.45;transform:translate(-50%,-50%) scale(1)}50%{opacity:.9;transform:translate(-50%,-50%) scale(.84)}}
.splash-heart-wrap{position:relative;display:grid;place-items:center;margin-bottom:26px}
.splash-heart{font-size:64px;line-height:1;color:#ff6b9d;text-shadow:0 0 26px rgba(255,107,157,.85),0 0 60px rgba(255,107,157,.4);animation:splashHeart 1.5s ease-in-out infinite;position:relative;z-index:2}
.splash-halo{position:absolute;width:150px;height:150px;border-radius:50%;border:2px solid rgba(255,150,190,.35);animation:splashHalo 2.2s ease-out infinite;z-index:1}
.splash-halo::after{content:"";position:absolute;inset:-18px;border-radius:50%;border:1.5px solid rgba(190,160,255,.28);animation:splashHalo 2.2s .5s ease-out infinite}
@keyframes splashHeart{0%,100%{transform:scale(1)}14%{transform:scale(1.22)}28%{transform:scale(1)}42%{transform:scale(1.14)}58%{transform:scale(1)}}
@keyframes splashHalo{0%{opacity:0;transform:scale(.6)}45%{opacity:1}100%{opacity:0;transform:scale(1.35)}}
.splash-title{position:relative;z-index:2;margin:0;font:700 34px/1.4 system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#fff;letter-spacing:.04em;text-align:center;opacity:0;transform:translateY(22px);animation:splashFadeUp .9s .35s ease-out forwards;text-shadow:0 4px 24px rgba(0,0,0,.35)}
.splash-sub{position:relative;z-index:2;margin:12px 0 0;font:400 16px/1.6 system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:rgba(255,214,230,.88);text-align:center;letter-spacing:.14em;opacity:0;transform:translateY(18px);animation:splashFadeUp .9s 1.05s ease-out forwards}
.splash-sub::before,.splash-sub::after{content:"·";margin:0 10px;color:rgba(255,170,200,.6)}
@keyframes splashFadeUp{to{opacity:1;transform:translateY(0)}}
.splash-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.splash-particles i{position:absolute;bottom:-8%;color:rgba(255,150,190,.9);opacity:0;font-style:normal;animation:splashRise linear infinite}
.splash-particles i:nth-child(1){left:6%;font-size:16px;animation-duration:6.5s;animation-delay:.2s}
.splash-particles i:nth-child(2){left:14%;font-size:11px;color:rgba(200,175,255,.85);animation-duration:8s;animation-delay:1.1s}
.splash-particles i:nth-child(3){left:24%;font-size:19px;animation-duration:7.2s;animation-delay:.6s}
.splash-particles i:nth-child(4){left:34%;font-size:10px;color:rgba(255,220,170,.9);animation-duration:9s;animation-delay:1.8s}
.splash-particles i:nth-child(5){left:45%;font-size:15px;animation-duration:6.8s;animation-delay:.1s}
.splash-particles i:nth-child(6){left:57%;font-size:12px;color:rgba(200,175,255,.85);animation-duration:8.4s;animation-delay:2.2s}
.splash-particles i:nth-child(7){left:68%;font-size:18px;animation-duration:7s;animation-delay:.9s}
.splash-particles i:nth-child(8){left:79%;font-size:10px;color:rgba(255,220,170,.9);animation-duration:9.2s;animation-delay:1.4s}
.splash-particles i:nth-child(9){left:90%;font-size:15px;animation-duration:7.6s;animation-delay:.4s}
@keyframes splashRise{0%{transform:translateY(0) rotate(0deg);opacity:0}12%{opacity:.95}100%{transform:translateY(-112vh) rotate(30deg);opacity:0}}
.splash-skip{position:absolute;right:18px;bottom:16px;z-index:3;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:rgba(255,255,255,.72);font:400 12px/1 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;padding:8px 16px;border-radius:999px;cursor:pointer;transition:.18s ease;letter-spacing:.08em}
.splash-skip:hover{background:rgba(255,255,255,.14);color:#fff}
.role-gate.gate-in .gate-card{animation:gateIn .55s cubic-bezier(.2,.8,.3,1) both}
@keyframes gateIn{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:560px){.splash-title{font-size:25px}.splash-heart{font-size:52px}.splash-sub{font-size:13px;letter-spacing:.1em}}

/* ===== 导航图标按钮：跟随主题 + 美化气泡提示 ===== */
.content-tab.theme-switch .nav-ico,.content-tab.admin-tab .nav-ico{width:20px;height:20px;display:block;pointer-events:none}
.content-tab.theme-switch[data-tip]::after,.content-tab.admin-tab[data-tip]::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 9px);transform:translate(-50%,5px);padding:7px 13px;border-radius:10px;background:var(--card-strong);border:1px solid var(--line-strong);box-shadow:0 8px 22px rgba(20,15,30,.16);color:var(--text);font:600 11px/1 system-ui,-apple-system,"Segoe UI","PingFang SC",sans-serif;letter-spacing:.03em;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:60}
.content-tab.theme-switch[data-tip]::before,.content-tab.admin-tab[data-tip]::before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--line-strong);opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s;z-index:60}
.content-tab.theme-switch[data-tip]:hover::after,.content-tab.admin-tab[data-tip]:hover::after{opacity:1;visibility:visible;transform:translate(-50%,0)}
.content-tab.theme-switch[data-tip]:hover::before,.content-tab.admin-tab[data-tip]:hover::before{opacity:1;visibility:visible}
.theme-panel-head{justify-content:center}

/* 图标底跟随主题（覆盖各 tab 固定底色） */
.content-tabs-inner .content-tab .cute-tab-icon .i-bg{fill:var(--card);stroke:var(--line-strong);stroke-width:1.1}

/* ===================== 玻璃主题 ===================== */

/* ===================== 整页完整背景大图（跟随主题） ===================== */
body[data-theme="default"]{background-image:linear-gradient(180deg,rgba(250,240,226,.10),rgba(250,240,226,.14));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="mint"]{background-image:linear-gradient(180deg,rgba(230,245,234,.08),rgba(230,245,234,.12));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="peach"]{background-image:linear-gradient(180deg,rgba(255,240,236,.08),rgba(255,240,236,.12));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="night"]{background-image:linear-gradient(180deg,rgba(16,14,24,.10),rgba(16,14,24,.16));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="violet"]{background-image:linear-gradient(180deg,rgba(22,14,38,.10),rgba(22,14,38,.16));background-size:cover;background-position:center top;background-attachment:fixed}

/* hero 文字可读遮罩（背景为整页大图） */
.hero-stage{background-image:linear-gradient(180deg,rgba(18,16,30,.42) 0%,rgba(18,16,30,.16) 45%,rgba(18,16,30,.02) 78%,transparent 100%)!important}
body[data-theme="mint"] .hero-stage,body[data-theme="peach"] .hero-stage,body[data-theme="spring"] .hero-stage,body[data-theme="summer"] .hero-stage{background-image:linear-gradient(180deg,rgba(18,16,30,.36) 0%,rgba(18,16,30,.12) 45%,rgba(18,16,30,.02) 78%,transparent 100%)!important}

/* 春 · 新生 */
body[data-theme="spring"]{
  --bg:#f2f7ec;--bg2:#e9f0e0;
  --card:rgba(228,242,216,.92);--card-strong:rgba(240,248,232,.97);
  --line:rgba(90,140,80,.12);--line-strong:rgba(90,140,80,.18);
  --text:#2c3527;--muted:#7d8d72;--muted2:#9dad91;
  --orange:#58b368;--orange2:#7ccb84;--blue:#6a9bd4;--red:#ef7a92;
  --shadow:0 16px 42px rgba(70,110,60,.09);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.72),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(228,242,216,.85),transparent 68%),linear-gradient(180deg,#f4f9ef 0,#e9f2e4 48%,#dfebd8 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.14),transparent 15%,transparent 85%,rgba(255,255,255,.15)),radial-gradient(circle at 10% 55%,rgba(88,179,104,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(106,155,212,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(232,246,220,.92),rgba(206,234,194,.80));
  --tab-border:rgba(255,255,255,.82);--tab-indicator:linear-gradient(145deg,rgba(224,242,210,.98),rgba(198,232,184,.90));;--tab-indicator-border:rgba(255,255,255,.88);
  --btn-grad:linear-gradient(145deg,#f6fff3,#e6f4e2);--btn-border:rgba(100,160,90,.32);--btn-ink:#4c9a5e;
  --gift:#6bbf59;
}
/* 夏 · 活力 */
body[data-theme="summer"]{
  --bg:#eef6fb;--bg2:#e2f0f8;
  --card:rgba(216,238,248,.92);--card-strong:rgba(232,244,252,.97);
  --line:rgba(60,130,180,.12);--line-strong:rgba(60,130,180,.18);
  --text:#26333a;--muted:#7a8f9c;--muted2:#97aab5;
  --orange:#f2a13d;--orange2:#ffbe66;--blue:#4a9fd6;--red:#ef6a5a;
  --shadow:0 16px 42px rgba(50,110,150,.09);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.72),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(220,240,250,.85),transparent 68%),linear-gradient(180deg,#f0f8fc 0,#e2f0f8 48%,#d6e8f2 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.14),transparent 15%,transparent 85%,rgba(255,255,255,.15)),radial-gradient(circle at 10% 55%,rgba(242,161,61,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(74,159,214,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(220,242,252,.92),rgba(190,228,246,.80));
  --tab-border:rgba(255,255,255,.82);--tab-indicator:linear-gradient(145deg,rgba(214,240,252,.98),rgba(186,224,246,.90));;--tab-indicator-border:rgba(255,255,255,.88);
  --btn-grad:linear-gradient(145deg,#f4fbff,#e3f1fa);--btn-border:rgba(80,155,205,.32);--btn-ink:#3c8fc0;
  --gift:#4f9fd6;
}
/* 秋 · 丰收 */
body[data-theme="autumn"]{
  --bg:#faf1e4;--bg2:#f3e3cd;
  --card:linear-gradient(155deg,rgba(255,232,178,.93),rgba(253,196,112,.80));--card-strong:linear-gradient(155deg,rgba(255,240,204,.97),rgba(255,214,148,.88));
  --line:rgba(200,130,40,.16);--line-strong:rgba(200,130,40,.26);
  --text:#3a2e22;--muted:#8d745a;--muted2:#a88e72;
  --orange:#e8842e;--orange2:#f7a04a;--blue:#7a92b8;--red:#d95b2b;
  --shadow:0 16px 42px rgba(130,85,40,.10);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.66),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(250,236,212,.88),transparent 68%),linear-gradient(180deg,#faf2e6 0,#f3e5d0 48%,#ecd9c0 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.13),transparent 15%,transparent 85%,rgba(255,255,255,.14)),radial-gradient(circle at 10% 55%,rgba(232,132,46,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(122,146,184,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(252,238,216,.92),rgba(246,224,192,.80));
  --tab-border:rgba(255,255,255,.80);--tab-indicator:linear-gradient(145deg,rgba(252,234,206,.98),rgba(244,218,178,.90));;--tab-indicator-border:rgba(255,255,255,.86);
  --btn-grad:linear-gradient(145deg,#fffaf2,#f6ead8);--btn-border:rgba(200,140,70,.32);--btn-ink:#c8742a;
  --gift:#d98e3a;
}
/* 冬 · 宁静 */
body[data-theme="winter"]{
  --bg:#f2f7fb;--bg2:#e6eef6;
  --card:linear-gradient(180deg,rgba(249,253,255,.93),rgba(222,238,250,.88));--card-strong:linear-gradient(180deg,rgba(252,254,255,.97),rgba(232,244,252,.93));
  --line:rgba(120,170,215,.14);--line-strong:rgba(120,170,215,.22);
  --text:#26333d;--muted:#7f93a3;--muted2:#9db0be;
  --orange:#6aa8e0;--orange2:#8abce8;--blue:#5a9fd6;--red:#e06a8a;
  --shadow:0 16px 42px rgba(70,120,170,.09);
  --bg-grad:radial-gradient(700px 440px at 77% 16%,rgba(255,255,255,.74),transparent 60%),radial-gradient(620px 420px at 20% 35%,rgba(228,240,250,.86),transparent 68%),linear-gradient(180deg,#f4f9fc 0,#e6eef6 48%,#dbe7f2 100%);
  --deco-grad:linear-gradient(90deg,rgba(255,255,255,.15),transparent 15%,transparent 85%,rgba(255,255,255,.16)),radial-gradient(circle at 10% 55%,rgba(106,168,224,.05) 0 2px,transparent 3px),radial-gradient(circle at 85% 70%,rgba(90,159,214,.05) 0 2px,transparent 3px);
  --tab-grad:linear-gradient(145deg,rgba(228,242,252,.92),rgba(200,228,246,.80));
  --tab-border:rgba(255,255,255,.84);--tab-indicator:linear-gradient(145deg,rgba(222,240,252,.98),rgba(194,226,246,.90));;--tab-indicator-border:rgba(255,255,255,.90);
  --btn-grad:linear-gradient(145deg,#f6fbff,#e4effa);--btn-border:rgba(90,160,215,.32);--btn-ink:#4a86c9;
  --gift:#5aa7d9;
}

body[data-theme="spring"]{background-image:linear-gradient(180deg,rgba(244,252,238,.06),rgba(244,252,238,.10));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="summer"]{background-image:linear-gradient(180deg,rgba(238,248,252,.06),rgba(238,248,252,.10));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="autumn"]{background-image:linear-gradient(180deg,rgba(250,240,228,.06),rgba(250,240,228,.10));background-size:cover;background-position:center top;background-attachment:fixed}
body[data-theme="winter"]{background-image:linear-gradient(180deg,rgba(240,248,252,.06),rgba(240,248,252,.10));background-size:cover;background-position:center top;background-attachment:fixed}

/* ===================== 季节粒子：枫叶 / 雪花 ===================== */



/* ===================== 秋季：卡片金色夕阳效果 ===================== */
body[data-theme="autumn"] .left-column [class$="-card"]:not(.switch-card-copy):not(.switch-card-kicker):not(.switch-card-more),
body[data-theme="autumn"] .center-column [class$="-card"]:not(.switch-card-copy):not(.switch-card-kicker):not(.switch-card-more){
  border:1px solid rgba(255,206,120,.50)!important;
  box-shadow:0 16px 40px rgba(198,108,28,.22),inset 0 1px 0 rgba(255,255,255,.50)!important;
}
body[data-theme="winter"] .left-column [class$="-card"]:not(.switch-card-copy):not(.switch-card-kicker):not(.switch-card-more),
body[data-theme="winter"] .center-column [class$="-card"]:not(.switch-card-copy):not(.switch-card-kicker):not(.switch-card-more){
  position:relative;
  border:1px solid rgba(210,235,252,.55)!important;
  box-shadow:0 14px 34px rgba(90,140,190,.14),inset 0 1px 0 rgba(255,255,255,.6)!important;
}
/* ===================== 冬季：扫把 ===================== */

/* ===================== 秋日枫叶飘落（真实素材） ===================== */
.leaf-fx{position:fixed;top:0;left:0;z-index:6;pointer-events:none;will-change:transform;filter:drop-shadow(0 2px 3px rgba(120,50,10,.20))}
.leaf-fx img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}

/* ===================== 三类卡片半透明（0.74 实底可读） ===================== */
.profile-card,.music-card,.map-mini-card{
  background:rgba(255,255,255,.74)!important;
  border:1px solid rgba(255,255,255,.5)!important;
  box-shadow:0 10px 34px rgba(0,0,0,.10)!important;
}
body[data-theme="night"] .profile-card,body[data-theme="night"] .music-card,body[data-theme="night"] .map-mini-card,
body[data-theme="violet"] .profile-card,body[data-theme="violet"] .music-card,body[data-theme="violet"] .map-mini-card{
  background:rgba(26,28,44,.72)!important;
  border-color:rgba(255,255,255,.14)!important;
}
body[data-theme="autumn"] .profile-card,body[data-theme="autumn"] .music-card,body[data-theme="autumn"] .map-mini-card{
  background:rgba(255,228,182,.74)!important;
  border-color:rgba(255,240,214,.6)!important;
}
body[data-theme="winter"] .profile-card,body[data-theme="winter"] .music-card,body[data-theme="winter"] .map-mini-card{
  background:rgba(226,240,250,.74)!important;
  border-color:rgba(255,255,255,.55)!important;
}
body[data-theme="mint"] .profile-card,body[data-theme="mint"] .music-card,body[data-theme="mint"] .map-mini-card{background:rgba(222,240,231,.74)!important;border-color:rgba(255,255,255,.5)}
body[data-theme="peach"] .profile-card,body[data-theme="peach"] .music-card,body[data-theme="peach"] .map-mini-card{background:rgba(255,235,231,.74)!important;border-color:rgba(255,255,255,.5)}
body[data-theme="spring"] .profile-card,body[data-theme="spring"] .music-card,body[data-theme="spring"] .map-mini-card{background:rgba(235,245,226,.74)!important;border-color:rgba(255,255,255,.5)}
body[data-theme="summer"] .profile-card,body[data-theme="summer"] .music-card,body[data-theme="summer"] .map-mini-card{background:rgba(228,242,251,.74)!important;border-color:rgba(255,255,255,.5)}

/* ===================== 地图卡片文字跟随主题（去灰色） ===================== */
.map-mini-card .map-mini-title,.map-mini-card .map-mini-name{color:var(--text)!important}
.map-mini-card .map-mini-stat span,.map-mini-card .map-mini-prov{color:var(--text)!important}
.guest-note-card small,.map-popup-date,.map-legend,.map-list-text,.music-card p{color:var(--text)!important}

.profile-card .bio,.profile-card .profile-stats span,.weather-extra span{color:var(--text)!important}

/* ===================== 地图卡片全部文字深色（含按钮/数字/空状态/列表） ===================== */
.map-mini-card *,.map-popup *{color:var(--text)!important}

/* ===================== 修复：秋冬主题导航图标变黑 ===================== */
/* 原因：--card 在秋冬主题下为渐变值，SVG fill 不接受渐变，声明失效后回退为黑色。
   修复：为秋冬主题指定纯色图标底色（颜色取自对应主题 --card 渐变的上层色）。 */
body[data-theme="autumn"] .content-tabs-inner .content-tab .cute-tab-icon .i-bg{fill:rgba(255,232,178,.92);stroke:rgba(200,130,40,.26)}
body[data-theme="winter"] .content-tabs-inner .content-tab .cute-tab-icon .i-bg{fill:rgba(240,249,255,.92);stroke:rgba(120,170,215,.22)}

/* ===================== 背景图独立层（情侣上移对齐标题区） ===================== */
.bg-layer{position:fixed;inset:0;z-index:0;pointer-events:none;background-size:cover;background-position:center;will-change:transform}
body[data-theme="default"] .bg-layer{background-image:url(../images/bg-default.jpg)}
body[data-theme="mint"] .bg-layer{background-image:url(../images/bg-mint.jpg)}
body[data-theme="peach"] .bg-layer{background-image:url(../images/bg-peach.jpg)}
body[data-theme="night"] .bg-layer{background-image:url(../images/bg-night.jpg)}
body[data-theme="violet"] .bg-layer{background-image:url(../images/bg-violet.jpg)}
body[data-theme="spring"] .bg-layer{background-image:url(../images/bg-spring.jpg)}
body[data-theme="summer"] .bg-layer{background-image:url(../images/bg-summer.jpg)}
body[data-theme="autumn"] .bg-layer{background-image:url(../images/bg-autumn.jpg)}
body[data-theme="winter"] .bg-layer{background-image:url(../images/bg-winter.jpg)}
@media (max-width:720px){
  .bg-layer{background-position:center}
}

/* ===================== 海盐主题视频背景 ===================== */

/* ===================== 相册照片墙（平铺拼图 + 悬停大图） ===================== */
.album-grid{background:var(--card-strong);border:1px solid var(--line-strong);border-radius:22px;padding:18px 16px 14px;box-shadow:0 12px 34px rgba(0,0,0,.07)}
.album-grid-head{display:flex;align-items:center;gap:10px;margin-bottom:15px;padding:0 4px}
.album-grid-head b{font-size:15px;letter-spacing:2.5px;color:var(--text);position:relative;font-weight:800}
.album-grid-head b::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2.5px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--text),transparent);opacity:.5}
.album-grid-head span{font-size:11px;color:var(--text);opacity:.9;background:var(--card-strong);border:1px solid var(--line);padding:2px 10px;border-radius:999px;margin-left:auto}
.photo-grid{position:relative;z-index:40;display:grid;grid-template-columns:repeat(7,1fr);gap:2px;overflow:visible}
.photo-cell{position:relative;display:block;aspect-ratio:1;border-radius:0;overflow:visible;text-decoration:none}
.photo-cell>img{width:100%;height:100%;object-fit:cover;border-radius:0;display:block;box-shadow:0 2px 6px rgba(0,0,0,.12);transition:transform .3s ease,box-shadow .3s ease,z-index 0s;position:relative}
.photo-cell:hover>img{transform:scale(1.09);box-shadow:0 10px 24px rgba(0,0,0,.28);z-index:5;border-radius:10px}
.ct-tl>img{border-top-left-radius:14px}
.ct-tr>img{border-top-right-radius:14px}
.ct-bl>img{border-bottom-left-radius:14px}
.ct-br>img{border-bottom-right-radius:14px}
.photo-preview{position:absolute;left:50%;top:50%;width:min(330px,66vw);transform:translate(-50%,-50%) scale(.5);opacity:0;pointer-events:none;z-index:9998;transition:opacity .24s ease,transform .32s cubic-bezier(.22,.72,.2,1)}
.photo-cell:hover .photo-preview{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:.5s}
.pv-img{display:block;background:linear-gradient(170deg,#ffffff,#faf6f0);border-radius:18px;padding:8px 8px 13px;box-shadow:0 2px 0 rgba(255,255,255,.9) inset,0 24px 54px rgba(0,0,0,.38);text-align:left;position:relative}
.pv-img::after{content:'✦';position:absolute;right:14px;top:12px;color:#e0a75e;font-size:13px;text-shadow:0 1px 2px rgba(0,0,0,.15)}
.pv-img img{width:100%;height:auto;max-height:300px;object-fit:cover;border-radius:12px;display:block;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.pv-img em{display:block;font-style:normal;font-size:13.5px;font-weight:800;color:#1a1a1a;margin:10px 6px 3px;letter-spacing:.5px}
.pv-img i{display:block;font-style:normal;font-size:11px;color:#444;margin:0 6px;letter-spacing:.3px}
.album-grid-hint{font-size:11px;color:var(--text);opacity:.62;letter-spacing:1.5px;margin:13px 0 4px;text-align:center}
@media (max-width:720px){.photo-grid{grid-template-columns:repeat(5,1fr)}}

/* ===================== 主题天气特效（流星 / 雨滴 / 飘雪） ===================== */
.fx-layer{position:fixed;inset:0;pointer-events:none;z-index:998;overflow:hidden;display:none}
body[data-theme="night"] .fx-meteor,
body[data-theme="violet"] .fx-meteor{display:block}
body[data-theme="summer"] .fx-rain{display:block}
body[data-theme="winter"] .fx-snow{display:block}
.fx-layer i{position:absolute;display:block}
/* 流星：亮线 + 渐变尾巴，右上往左下划过 */
.shooting-star{width:240px;height:2.5px;border-radius:2px;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(195,220,255,.28) 48%,rgba(220,235,255,.55) 76%,rgba(255,255,255,.98) 100%);transform:rotate(var(--rot,28deg));opacity:0;animation-name:meteorFly;animation-timing-function:linear;animation-iteration-count:infinite}
.shooting-star::after{content:'';position:absolute;right:-2px;top:50%;transform:translateY(-50%);width:4px;height:4px;border-radius:50%;background:#ffffff;box-shadow:0 0 10px 3px rgba(255,255,255,.95),0 0 26px 10px rgba(180,210,255,.5),0 0 52px 20px rgba(150,190,255,.25)}
@keyframes meteorFly{
  0%{transform:translate3d(0,0,0) rotate(var(--rot,28deg));opacity:0}
  5%{opacity:.95}
  12%{opacity:1}
  32%{opacity:.72}
  56%{opacity:1}
  70%{transform:translate3d(92vw,92vh,0) rotate(var(--rot,28deg));opacity:0}
  100%{transform:translate3d(92vw,92vh,0) rotate(var(--rot,28deg));opacity:0}
}
/* 雨滴：细长斜线，斜落 */
.rain-drop{width:1.6px;height:15px;border-radius:2px;background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(100,170,220,.85) 100%);opacity:0;animation-name:rainFall;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes rainFall{
  0%{transform:translate3d(0,-12vh,0) rotate(16deg);opacity:0}
  8%{opacity:.85}
  90%{opacity:.55}
  100%{transform:translate3d(-7vw,114vh,0) rotate(16deg);opacity:0}
}
/* 雪花：白点 + 光晕，缓慢飘落轻微摇摆 */
.snow-flake{border-radius:50%;background:#ffffff;box-shadow:0 0 9px 2.5px rgba(255,255,255,.45);opacity:0;animation-name:snowFall;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes snowFall{
  0%{transform:translate3d(0,-10vh,0);opacity:0}
  10%{opacity:.95}
  48%{transform:translate3d(-3.5vw,46vh,0);opacity:.9}
  82%{opacity:.7}
  100%{transform:translate3d(-9vw,114vh,0);opacity:0}
}

/* ===================== 手机端适配（≤720px 增强） ===================== */
@media(max-width:720px){
  /* 右列（地图卡片）在手机单列中恢复显示 */
  .right-column{display:flex}
  .home-grid .right-column{margin-top:2px}

  /* 关键文字放大，保证手机可读 */
  .profile-card .bio{font-size:13px;line-height:1.6}
  .profile-stats span{font-size:11px}
  .profile-stats b{font-size:20px;margin-bottom:6px}
  .content-tab{font-size:12px;gap:5px}
  .content-tab-indicator{border-radius:12px}
  .post-body,.post-text,.guestbook-board,.wish-switch-card,.plan-switch-card{font-size:13.5px;line-height:1.62}
  .album-grid-head b{font-size:15px}
  .album-grid-head span{font-size:12px}
  .map-mini-card{font-size:13px}
  .map-mini-title{font-size:15px}
  .music-card,.music-box{font-size:13px}

  /* 礼物按钮更大好点 */
  .gift-btn{width:52px;height:52px}
  .gift-panel{padding:8px 6px 7px}
  .gift-item img{width:34px;height:34px}
  .gift-price{font-size:11px;padding:2px 7px}

  /* 手机端隐藏横排导航（功能全部收进底部圆球扇形菜单） */
  .content-tabs-inner{display:none}

  /* 手机端卡片信息整理：头像顶部居中 → 名字 → 签名；隐藏等级/统计 */
  .left-column .profile-card,.right-column .profile-card{display:flex!important;flex-direction:column;align-items:center;text-align:center}
  .left-column .profile-card .avatar-frame,.right-column .profile-card .avatar-frame{position:relative!important;grid-column:auto!important;justify-self:auto!important;margin:2px auto 8px}
  .left-column .profile-card .avatar-frame img,.right-column .profile-card .avatar-frame img{margin:0 auto}

  /* 手机端 我/TA 角标右上 */

  .left-column .profile-card h2,.right-column .profile-card h2{order:1;width:100%;text-align:center!important;margin:0 0 5px}
  .left-column .profile-card .bio,.right-column .profile-card .bio{order:2;text-align:center}

  /* 恢复等级/统计显示：头像→名字→签名→等级→统计 */
  .left-column .profile-card .level-row,.right-column .profile-card .level-row{order:3;display:flex;justify-content:center;margin:4px 0 0}
  .left-column .profile-card .profile-stats,.right-column .profile-card .profile-stats{order:4;display:flex;justify-content:center;gap:8px!important}
  .left-column .profile-card .gift-row,.right-column .profile-card .gift-row{order:5}
  .left-column .profile-card .gift-panel,.right-column .profile-card .gift-panel{order:6}

  .left-column .profile-card .gift-row,.right-column .profile-card .gift-row{order:3;grid-column:auto!important;width:100%!important;display:flex;justify-content:center;margin:8px auto 0}
  .left-column .profile-card .gift-panel,.right-column .profile-card .gift-panel{order:4}
  /* 男女个人卡片并排一人一半；音乐卡跨双列全宽（与 PC 端一致完整显示） */
  .home-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:'left right' 'music music' 'content content';
    gap:12px 10px;
  }
  .left-column{display:contents}
  .left-column > .profile-card{grid-area:left}
  .left-column > .music-card{grid-area:music;width:100%}
  .right-column{grid-area:right}
  .center-column{grid-area:content}
  .left-column > .profile-card,.right-column > .profile-card{padding:14px 10px 12px}
  .left-column > .profile-card .avatar-frame,.right-column > .profile-card .avatar-frame{width:56px;height:56px;margin-bottom:8px;border-radius:15px}
  .left-column > .profile-card .avatar-frame img,.right-column > .profile-card .avatar-frame img{border-radius:12px}
  .left-column > .profile-card h2,.right-column > .profile-card h2{font-size:15px;margin-bottom:2px}
  .left-column > .profile-card .bio,.right-column > .profile-card .bio{font-size:10.5px;line-height:1.42;margin:4px auto 8px;max-width:100%}
  .left-column > .profile-card .level-row,.right-column > .profile-card .level-row{margin-bottom:6px}
  .left-column > .profile-card .profile-stats,.right-column > .profile-card .profile-stats{padding-top:8px;gap:2px}
  .left-column > .profile-card .profile-stats span,.right-column > .profile-card .profile-stats span{font-size:8.5px}
  .left-column > .profile-card .profile-stats b,.right-column > .profile-card .profile-stats b{font-size:14px;margin-bottom:3px}
  .left-column > .profile-card .gift-row,.right-column > .profile-card .gift-row{margin-bottom:2px}
  .music-card,.map-mini-card{padding:10px}
  /* 导航点击区域 */
  .content-tab{min-height:44px}
  .content-tab.theme-switch,.content-tab.admin-tab{width:40px;height:40px}
}
@media(max-width:380px){
  .content-tabs-inner{gap:4px;padding:5px}
  .content-tab{font-size:11px;padding:8px 3px 7px}
  .content-tab svg.luc{width:16px;height:16px}
}

/* ===== 手机端底部玻璃圆球扇形菜单 ===== */
@media(max-width:720px){
  .fab-ball{position:fixed;left:50%;bottom:26px;z-index:1310;width:60px;height:60px;margin-left:-30px;border-radius:50%;border:1px solid rgba(255,255,255,.6);background:linear-gradient(145deg,rgba(255,255,255,.5),rgba(255,255,255,.14));backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);box-shadow:0 12px 34px rgba(30,20,10,.16),inset 0 1px 1px rgba(255,255,255,.7),inset 0 -8px 16px rgba(255,255,255,.25);display:grid;place-items:center;cursor:pointer;transition:transform .32s cubic-bezier(.22,.72,.2,1)}
  .fab-ball:active{transform:translateY(1px) scale(.96)}
  .fab-plus{font-size:27px;font-weight:200;color:var(--text);line-height:1;transition:transform .34s cubic-bezier(.2,.9,.3,1.2)}
  .fab-ball-ico{width:26px;height:26px;display:block;pointer-events:none;transition:transform .34s cubic-bezier(.2,.9,.3,1.2)}
  .fab-ball.open .fab-ball-ico{transform:rotate(45deg)}
  .fab-ball.open .fab-plus{transform:rotate(135deg)}
  .fab-ball::before,.fab-ball::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid rgba(255,255,255,.5);opacity:0;animation:fabWave 3s ease-out infinite;pointer-events:none}
  .fab-ball::after{animation-delay:1.5s}
  @keyframes fabWave{0%{transform:scale(.72);opacity:.85}75%{transform:scale(1.45);opacity:0}100%{opacity:0}}
  .fab-menu{position:fixed;left:50%;bottom:56px;z-index:1305;pointer-events:none}
  .fab-item{position:absolute;left:0;top:0;width:50px;height:50px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:linear-gradient(145deg,rgba(255,255,255,.66),rgba(255,255,255,.28));backdrop-filter:blur(12px) saturate(1.4);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:7px;gap:1px;opacity:0;transform:translate(-50%,-50%) scale(.4);pointer-events:none;transition:transform .38s cubic-bezier(.34,1.56,.64,1),opacity .22s ease}
  .fab-menu.open .fab-item{opacity:1;transform:translate(calc(var(--tx,0px) - 50%),calc(var(--ty,0px) - 50%)) scale(1);pointer-events:auto}
  .fab-item svg{width:21px;height:21px}
  .fab-item img.fab-ico-img{width:20px;height:20px;display:block;margin:0 auto}
  .fab-item em{position:static;transform:none;font-style:normal;font-size:8.5px;line-height:1;white-space:nowrap;color:#5a4630;background:transparent;padding:0;border:none;box-shadow:none;font-weight:800;text-shadow:0 1px 2px rgba(255,255,255,.6)}
}

  /* 手机版顶部阴影删除：hero 遮罩/渐变去掉，波浪隐藏 */
  .hero-stage{background-image:none!important}
  .hero-shade{display:none!important}
  .hero-wave{display:none!important}
  .hero-copy{color:#6b543f;text-shadow:0 2px 12px rgba(255,255,255,.7)}
  .hero-copy p{color:rgba(107,84,63,.92)}
  body[data-theme="night"] .hero-copy,body[data-theme="violet"] .hero-copy{color:#fff;text-shadow:0 3px 20px rgba(0,0,0,.5)}
  body[data-theme="night"] .hero-copy p,body[data-theme="violet"] .hero-copy p{color:rgba(255,255,255,.9)}
    .left-column .profile-card .gift-row,.right-column .profile-card .gift-row{grid-column:1/-1!important;justify-self:stretch;width:100%!important;display:flex;justify-content:center;margin:0 auto}

  /* 手机端留言板单列大卡片 */
  .guestbook-board{grid-template-columns:1fr!important;gap:10px}

/* v91 扇形图标强制尺寸 */
.fab-item img.fab-ico-img{width:20px!important;height:20px!important;display:block;margin:0 auto}




/* ===== 新动态板块（聊天卡片 v96） ===== */
.moment-empty{text-align:center;padding:34px 10px;color:var(--muted);font-size:13px;letter-spacing:.05em}
.moment-card{display:flex;gap:12px;padding:13px 0;position:relative}
.moment-avatar{flex:0 0 40px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:17px;font-weight:800;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.moment-avatar.male{background:linear-gradient(140deg,#6ea8ff,#3f74d8)}
.moment-avatar.female{background:linear-gradient(140deg,#ff9ac2,#e8639b)}
.moment-main{flex:1;min-width:0}
.moment-bubble{background:var(--card);border:1px solid var(--line-strong);border-radius:14px;padding:12px 14px;box-shadow:0 6px 18px rgba(80,50,30,.06)}
.moment-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}
.moment-head b{font-size:13px;font-weight:800}
.moment-head b.male{color:#3f74d8}
.moment-head b.female{color:#e8639b}
.moment-head time{font-size:10.5px;color:var(--muted);white-space:nowrap}
.moment-text{margin:0;font-size:13.5px;line-height:1.7;color:var(--text);word-break:break-word}
.moment-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.moment-tags i{font-style:normal;font-size:10px;font-weight:700;color:#c2547f;background:rgba(232,99,155,.12);border:1px solid rgba(232,99,155,.22);padding:2px 8px;border-radius:999px}
.moment-photos{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.moment-photo{width:86px;height:86px;border-radius:10px;overflow:hidden;cursor:zoom-in;border:1px solid var(--line)}
.moment-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.moment-actions{display:flex;gap:4px;margin-top:9px}
.moment-actions button{display:flex;align-items:center;gap:4px;border:0;background:transparent;font-size:12px;color:var(--muted);cursor:pointer;padding:5px 11px;border-radius:999px;transition:all .18s ease;line-height:1}
.moment-actions button:hover{background:var(--line-strong);color:var(--text)}
.moment-actions .act-like.liked{color:#e8639b;font-weight:800}
.moment-actions span{font-variant-numeric:tabular-nums}
.moment-actions button svg{width:15px;height:15px;flex:0 0 auto}
.moment-actions .act-like.liked svg path[fill="#FFDE55"]{fill:#ff5d8f}
@media(max-width:560px){.moment-actions button svg{width:13px;height:13px}}
.moment-cmts{display:none;margin-top:9px;background:var(--card-strong);border:1px solid var(--line);border-radius:12px;padding:9px 11px}
.moment-cmts.open{display:block}
.moment-cmt{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:12px}
.moment-cmt:last-child{border-bottom:0}
.moment-cmt b{font-size:11.5px;font-weight:800}
.moment-cmt b.male{color:#3f74d8}
.moment-cmt b.female{color:#e8639b}
.moment-cmt p{margin:0;color:var(--text);flex:1;min-width:120px;word-break:break-word}
.moment-cmt time{font-size:9.5px;color:var(--muted2)}
.cmt-input-row{display:flex;gap:6px;margin-top:8px}
.cmt-input{flex:1;min-width:0;border:1px solid var(--line-strong);border-radius:999px;background:var(--bg2);color:var(--text);font-size:12px;padding:6px 12px;outline:0}
.cmt-input:focus{border-color:rgba(232,99,155,.45)}
.cmt-send{border:0;border-radius:999px;padding:6px 15px;font-size:12px;font-weight:700;color:#fff;background:linear-gradient(135deg,#ff9a76,#e8639b);cursor:pointer}
.moment-peek{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.66);display:flex;align-items:center;justify-content:center;padding:24px}
.moment-peek img{max-width:92vw;max-height:86vh;border-radius:12px;box-shadow:0 24px 64px rgba(0,0,0,.45)}
.peek-close{position:fixed;top:18px;right:18px;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.22);color:#fff;font-size:19px;cursor:pointer;line-height:1}
@media (min-width:721px){
  .moment-card{max-width:640px;margin:0 auto}
}
@media (max-width:720px){
  .moment-card{padding:11px 0;gap:10px}
  .moment-avatar{flex-basis:36px;width:36px;height:36px;font-size:15px}
  .moment-bubble{padding:11px 12px}
  .moment-photo{width:72px;height:72px}
  .moment-text{font-size:13px}
}

/* ===== 动态分享面板 v97 ===== */
.share-sheet{position:fixed;inset:0;z-index:99990;display:none}
.share-sheet.open{display:block}
.share-mask{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.share-panel{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(440px,94vw);background:var(--card-strong,#fff);border-radius:20px 20px 0 0;padding:18px 16px 22px;box-shadow:0 -12px 40px rgba(0,0,0,.18)}
.share-head{text-align:center;font-size:14px;font-weight:800;color:var(--text);margin-bottom:16px}
.share-grid{display:flex;justify-content:space-around;gap:8px}
.share-btn{display:flex;flex-direction:column;align-items:center;gap:7px;border:0;background:transparent;cursor:pointer;padding:4px 8px}
.share-btn .sq{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:17px;font-weight:900;color:#fff;box-shadow:0 5px 14px rgba(0,0,0,.14)}
.sq.qq{background:linear-gradient(140deg,#5bb5f5,#1e8ff0)}
.sq.wx{background:linear-gradient(140deg,#58d68d,#1faa53)}
.sq.dy{background:linear-gradient(140deg,#2b2b2b,#111)}
.sq.ks{background:linear-gradient(140deg,#ff7a2f,#ff4e00)}
.sq.xhs{background:linear-gradient(140deg,#ff6b81,#f7415b)}
.share-btn span{font-size:11.5px;color:var(--muted);font-weight:700}
.share-cancel{display:block;width:100%;margin-top:16px;padding:10px;border:0;border-radius:12px;background:var(--line-strong,#eee);color:var(--muted);font-size:13px;cursor:pointer}
.share-qr{position:fixed;inset:0;z-index:99995;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center}
.share-qr-box{background:#fff;border-radius:16px;padding:22px 26px;text-align:center}
.share-qr-box img{width:220px;height:220px;border-radius:8px}
.share-qr-box p{margin:10px 0 4px;font-size:12.5px;color:#333}
.share-qr-close{margin-top:10px;padding:7px 26px;border:0;border-radius:999px;background:#eee;color:#555;font-size:12.5px;cursor:pointer}
/* ===== 评论表情 v97 ===== */
.cmt-input-row{display:flex;gap:6px;margin-top:8px;align-items:center;position:relative}
.cmt-emoji-toggle{flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--line-strong,#eee);color:var(--text);display:grid;place-items:center;font-size:15px;cursor:pointer;user-select:none}
.cmt-input{flex:1;min-width:0;border:1px solid var(--line-strong);border-radius:999px;background:var(--bg2,#f6f1e9);color:var(--text);font-size:12px;padding:6px 12px;outline:0;min-height:30px;line-height:1.5;display:flex;align-items:center;flex-wrap:wrap;gap:2px;cursor:text;max-height:88px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}
.cmt-input:empty::before{content:attr(data-ph);color:var(--muted2,#aaa);pointer-events:none}
.cmt-input .g-emoji{display:inline-flex;width:18px;height:18px;vertical-align:-3px;flex:0 0 auto}
.cmt-input .g-emoji img{width:100%;height:100%;object-fit:contain;display:block}
.cmt-emoji-picker{position:absolute;bottom:38px;left:0;z-index:50;display:none;flex-wrap:wrap;gap:2px;width:230px;background:var(--card-strong,#fff);border:1px solid var(--line-strong);border-radius:12px;padding:8px;box-shadow:0 12px 30px rgba(0,0,0,.16)}
.cmt-emoji-picker.open{display:flex}
.cmt-emoji-picker button{width:34px;height:34px;border:0;background:transparent;border-radius:8px;cursor:pointer;padding:3px}
.cmt-emoji-picker button:hover{background:var(--line-strong,#eee)}
.cmt-emoji-picker img{width:100%;height:100%;object-fit:contain;display:block}
/* ===== 动态头像图片 v97 ===== */
.moment-avatar{overflow:hidden;border:2px solid rgba(255,255,255,.75)}
.moment-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.moment-cmt time{font-size:9.5px;color:var(--muted2)}

/* ===== 动态3列网格 v97b ===== */
.moment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.moment-card{background:var(--card);border-radius:16px;padding:14px 14px 10px;display:flex;flex-direction:column;gap:9px;box-shadow:0 6px 18px rgba(0,0,0,.06);position:relative}
.moment-top{display:flex;align-items:center;gap:9px}
.moment-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;flex:0 0 34px;border:2px solid rgba(255,255,255,.8);display:grid;place-items:center;background:var(--line-strong,#eee)}
.moment-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.moment-who{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.moment-who b{font-size:12.5px;font-weight:800}
.moment-who b.male{color:#5a8dee}.moment-who b.female{color:#f47fb0}
.moment-who time{font-size:10px;color:var(--muted2,#999)}
.moment-text{font-size:12px;color:var(--text);line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.moment-tags{display:flex;gap:5px;flex-wrap:wrap}
.moment-tags i{font-style:normal;font-size:10px;padding:2px 8px;border-radius:999px;background:var(--line-strong,#eee);color:var(--muted)}
.moment-photos{display:flex;gap:6px;flex-wrap:wrap}
.moment-photo{width:72px;height:72px;border-radius:10px;overflow:hidden;cursor:zoom-in;position:relative;flex:0 0 auto}
.moment-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.moment-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:auto;padding-top:8px;border-top:1px dashed var(--line-strong,#eee)}
.moment-actions button{border:0;background:transparent;font-size:11.5px;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:3px;padding:3px 5px;border-radius:999px;transition:color .2s}
.moment-actions button:hover{color:var(--text)}
.moment-actions button.liked{color:#ff5d8f}
.moment-cmts{display:none;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--line-strong,#eee)}
.moment-cmts.open{display:flex}
@media(max-width:1100px){.moment-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.moment-grid{grid-template-columns:repeat(2,1fr)}.moment-photo{width:52px;height:52px}.moment-text{font-size:11px;-webkit-line-clamp:2}}
@media(max-width:560px){.moment-grid{grid-template-columns:1fr}.moment-photo{width:64px;height:64px}}

.moment-name{font-size:12.5px;font-weight:800;flex:0 0 auto;line-height:1.2}
.moment-name.male{color:#5a8dee}.moment-name.female{color:#f47fb0}
.moment-time{margin-left:auto;font-size:10px;color:var(--muted2,#999);line-height:1.2}

.moment-card{min-height:236px}
.moment-tags-ph{display:block;min-height:0}
.moment-photos{min-height:72px}
.moment-more{grid-column:1/-1;text-align:center;padding:14px 0 4px;font-size:12px;color:var(--muted2,#999)}
.moment-more span{display:inline-block;padding:6px 22px;border-radius:999px;background:var(--line-strong,#eee);color:var(--muted)}

.moment-grid{grid-template-columns:repeat(2,1fr)!important;gap:12px}
.moment-card{min-height:186px;padding:10px 10px 8px;gap:7px;border-radius:14px}
.moment-avatar{width:30px;height:30px;flex:0 0 30px;border-width:1.5px}
.moment-name{font-size:12px}
.moment-time{font-size:9.5px}
.moment-text{font-size:11.5px;line-height:1.55;-webkit-line-clamp:2}
.moment-photo{width:56px;height:56px;border-radius:8px}
.moment-photos{min-height:56px;gap:5px;height:56px;overflow:hidden}
.moment-photos-ph{display:block;height:56px}
.moment-actions{font-size:11px;gap:8px;padding-top:6px}
.moment-actions button{font-size:11px}
.moment-cmt{font-size:11px}
.moment-cmt p{font-size:10.5px;line-height:1.45}
.moment-cmt time{font-size:9px}
@media(max-width:480px){.moment-photo{width:48px;height:48px}.moment-photos{min-height:48px;height:48px}.moment-photos-ph{height:48px}.moment-text{font-size:10.5px;-webkit-line-clamp:2}.moment-card{min-height:158px}}

.moment-text{min-height:36px}
@media(max-width:480px){.moment-text{min-height:33px}}

.moment-time{margin-left:0!important;font-size:9.5px;color:var(--muted2,#999);margin-top:2px;display:block;text-align:left}
.moment-name{display:block;text-align:left}

.moment-photos-ph{margin-top:10px}

.moment-card{height:195px;overflow:hidden}
.moment-card.expanded{height:auto;overflow:visible}
@media(max-width:480px){.moment-card{height:176px}}

/* ===== 前台签到 ===== */
.sign-area{margin:6px 0 4px;min-height:28px;display:flex;justify-content:center;align-items:center}
.sign-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 18px;border:none;border-radius:999px;background:var(--gift,#e07a3f);color:#fff;font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;box-shadow:0 3px 12px color-mix(in srgb,var(--gift,#e07a3f) 35%,transparent);transition:transform .18s,filter .18s}
.sign-btn:hover{filter:brightness(1.09);transform:translateY(-1px)}
.sign-btn:active{transform:translateY(0) scale(.97)}
.sign-btn:disabled{opacity:.55;cursor:default}
.sign-btn b{font-size:13px;font-weight:800}
.signed-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 14px;border-radius:999px;font-size:11px;font-weight:600;background:color-mix(in srgb,var(--gift,#7aaf7a) 12%,transparent);color:color-mix(in srgb,var(--gift,#5a8f5a) 78%,#222);border:1px solid color-mix(in srgb,var(--gift,#7aaf7a) 32%,transparent)}

/* ===== 全局美化 v149 ===== */
/* 主题化提示框气泡 */
.cus-tip{position:fixed;z-index:99999;padding:8px 14px;border-radius:9px;font-size:12px;line-height:1.75;background:var(--card-strong,rgba(255,255,255,.96));color:var(--text,#333);border:1px solid var(--line,rgba(0,0,0,.08));box-shadow:0 6px 20px rgba(0,0,0,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none;opacity:0;visibility:hidden;transform:translateY(4px) scale(.97);transition:opacity .16s ease,transform .16s ease,visibility .16s;max-width:240px;white-space:pre-line;letter-spacing:.2px}
.cus-tip.show{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
/* 动态按钮图标放大 */
.moment-actions button svg{width:19px;height:19px}
@media(max-width:560px){.moment-actions button svg{width:16px;height:16px}}
/* 评论表情按钮统一尺寸 */
.cmt-emoji-toggle img{width:16px;height:16px;display:block}
/* 全局滚动条主题化 */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted,#bbb) 38%,transparent);border-radius:99px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--gift,#ff6b9d) 45%,transparent);background-clip:content-box;border:2px solid transparent}
*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted,#bbb) 45%,transparent) transparent}
/* 键盘焦点美化 */
:focus-visible{outline:2px solid color-mix(in srgb,var(--gift,#ff6b9d) 55%,transparent);outline-offset:2px;border-radius:6px}


/* ===== 动态卡片固定尺寸 v153 ===== */
.moment-card{height:238px;overflow:hidden;display:flex;flex-direction:column;gap:8px;padding:14px 14px 10px;box-sizing:border-box}
.moment-top{flex:none}
.moment-text{flex:none;min-height:44px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.moment-photos{flex:1 1 auto;min-height:0;display:flex;gap:6px;margin:0}
.moment-photo{width:auto;flex:none;height:80px;min-height:0;border-radius:10px;overflow:hidden;cursor:zoom-in;border:1px solid var(--line);position:relative}
.moment-photo img{width:100%;height:100%;object-fit:cover;display:block}
.moment-photo:hover img{transform:none}
.moment-actions{flex:none}
@media(max-width:480px){
  .moment-card{height:198px;padding:10px 10px 8px;gap:7px}
  .moment-text{min-height:38px;font-size:12px;-webkit-line-clamp:2}
  .moment-photo{width:auto;flex:none;height:64px}
}
@media(max-width:560px){
  .moment-photo{width:auto;flex:none;height:64px}
}


/* ===== v156 动态卡片强制等宽 ===== */
.moment-card{width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;justify-self:stretch!important}


/* ===== v159 关闭按钮跟随图片右上角 ===== */
.moment-peek .peek-stage{position:relative;display:inline-flex;line-height:0}
.moment-peek .peek-close{position:absolute;top:-16px;right:-16px;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.24);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;font-size:19px;cursor:pointer;line-height:1;box-shadow:0 4px 14px rgba(0,0,0,.28);transition:transform .15s ease,background .15s ease}
.moment-peek .peek-close:hover{transform:scale(1.12);background:rgba(255,80,80,.55)}

/* ===== v173 手机版留言板：高度自适应 + 名字时间不被挤出 ===== */
@media(max-width:700px){
  .guest-notes{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:auto!important;
    gap:12px!important;
    justify-content:stretch!important;
    max-height:none!important;
    overflow:visible!important;
    padding:20px 6px 0!important;
  }
  .guest-notes > .guest-note-card{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    min-height:150px!important;
    margin:0!important;
    transform:none!important;
  }
  .guest-notes > .guest-note-card:nth-child(even){transform:none!important}
  .guest-notes > .guest-note-card .note-svg{width:100%!important;height:100%!important;left:0!important;right:0!important;inset:0!important}
  .guest-notes > .guest-note-card .note-content{height:100%!important;min-height:0!important;width:84%!important;display:flex!important;flex-direction:column!important;padding-bottom:0!important}
  .guest-notes > .guest-note-card .note-content .note-meta{position:static!important;top:auto!important;bottom:auto!important;left:auto!important;right:auto!important;margin-top:auto!important;padding-top:6px!important}

}
/* ===== v183 手机版写留言卡：底部工具条 明确分列不重叠 ===== */


/* ===== v185 编辑器 padding 清零，工具条贴真底 ===== */

/* ===== v186 工具条 transform 贴底（最终修正） ===== */

/* ===== v187 去掉多余 transform，工具条保持贴底 ===== */

/* ===== v188 写留言卡：工具条移到编辑框右上角（参考图布局） ===== */

/* ===== v189 emoji-wrap 宽度恢复，按钮不重叠 ===== */

/* ===== v190 emoji-wrap 固定尺寸不塌陷，picker 相对定位 ===== */

/* ===== v191 emoji-wrap order 修正（count→emoji→send） ===== */

/* ===== v193 写留言卡全端统一：编辑器108px + 工具条右上角 + 表情面板上方弹出 ===== */

/* ===== v194b 内容区修正：覆盖旧 height:52px!important 与 nowrap 单行 ===== */

/* ===== v194c 高优先级覆盖：对抗 media 查询内隐藏规则（specificity 对齐 + 后声明胜出） ===== */

/* ===== v194d 表情按钮始终可见（覆盖 :not(:focus-within) 隐藏规则，ID 级 specificity 对齐+后声明） ===== */

/* ===== v195 写卡布局：按用户参考图——名字+内容+工具一行式、矮扁、手机适配 ===== */

/* ===== v196 表情面板不被编辑器裁剪：编辑器 overflow visible + 面板 z-index 提高 ===== */

/* ===== v196b 表情面板 z-index 拉满（ID 级对齐旧规则后声明胜出） ===== */

/* ===== v199 去除移动端点击蓝色高亮方块（tap-highlight） ===== */
.gift-btn,.fab-ball,.fab-item,.fab-menu,.fab-item *,.gift-btn *,.fab-ball *,
button,a,input,textarea,select,[role="button"],.content-tab,.mob-nav *{
  -webkit-tap-highlight-color:transparent!important;
  tap-highlight-color:transparent!important;
}
button:focus,a:focus,input:focus,textarea:focus,.gift-btn:focus,.fab-ball:focus,.fab-item:focus,[role="button"]:focus{
  outline:none!important;
  -webkit-tap-highlight-color:transparent!important;
}

/* ===== v206b PC端写卡恢复参考图一行式（flex，与手机端 v195 同款布局：标题 + 名字/内容/工具 同行；升级特异性对抗旧 grid 规则） ===== */

/* ===== v220 表情图标常驻显示（覆盖旧 focus-within / not(:focus-within) 隐藏规则） ===== */

/* ===== v221 写卡全量重做：清除全部历史补丁后统一重写（PC+手机一体，不依赖 JS 补丁） ===== */
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  align-content:flex-start!important;
  justify-content:flex-start!important;
  gap:0!important;
  column-gap:0!important;
  row-gap:0!important;
  padding:12px 12px 14px!important;
  position:relative!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  box-sizing:border-box!important;
  width:auto!important;
  background:transparent!important;
  border:0!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card h2{
  flex:0 0 100%!important;
  width:100%!important;
  margin:0 0 8px!important;
  padding:0!important;
  font-size:15px!important;
  font-weight:600!important;
  line-height:1.4!important;
  text-align:left!important;
  position:static!important;
  color:inherit!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card #guestName{
  flex:0 0 88px!important;
  width:88px!important;
  min-width:88px!important;
  max-width:88px!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  box-sizing:border-box!important;
  padding:0 10px!important;
  margin:0!important;
  position:static!important;
  font-size:13px!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-message-editor{
  flex:1 1 0!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  box-sizing:border-box!important;
  padding:0!important;
  margin:0 0 0 8px!important;
  position:relative!important;
  overflow:visible!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-content-editor{
  position:absolute!important;
  top:0!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  width:auto!important;
  height:auto!important;
  padding:9px 118px 6px 12px!important;
  box-sizing:border-box!important;
  overflow-y:auto!important;
  font-size:13px!important;
  line-height:1.4!important;
  text-align:left!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-editor-tools{
  position:absolute!important;
  top:50%!important;
  right:6px!important;
  left:auto!important;
  bottom:auto!important;
  transform:translateY(-50%)!important;
  height:28px!important;
  z-index:100!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:3px!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-char-count{
  position:static!important;
  display:inline-flex!important;
  align-items:center!important;
  font-size:10px!important;
  line-height:1!important;
  color:#a08d88!important;
  white-space:nowrap!important;
  user-select:none!important;
  margin:0 1px!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-wrap{
  position:static!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:28px!important;
  height:26px!important;
  flex:0 0 28px!important;
  margin:0!important;
  padding:0!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-toggle{
  position:static!important;
  display:grid!important;
  place-items:center!important;
  width:26px!important;
  height:26px!important;
  min-width:26px!important;
  min-height:26px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  font-size:16px!important;
  line-height:1!important;
  cursor:pointer!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card #guestSend{
  position:static!important;
  display:grid!important;
  place-items:center!important;
  width:26px!important;
  height:26px!important;
  min-width:26px!important;
  min-height:26px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  cursor:pointer!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card #guestSend img{
  width:16px!important;
  height:16px!important;
  max-width:16px!important;
  max-height:16px!important;
  object-fit:contain!important;
  pointer-events:none!important;
}
/* 表情面板：编辑器上方弹出，默认隐藏，is-open 显示 */
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker{
  position:absolute!important;
  right:-32px!important;
  bottom:36px!important;
  width:154px!important;
  padding:7px!important;
  display:grid!important;
  grid-template-columns:repeat(6,1fr)!important;
  gap:3px!important;
  border:1px solid rgba(180,150,130,.20)!important;
  border-radius:12px!important;
  background:rgba(255,252,248,.98)!important;
  box-shadow:0 12px 30px rgba(80,58,50,.14)!important;
  z-index:999!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translateY(5px) scale(.97)!important;
  transform-origin:bottom right!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker.is-open{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:translateY(0) scale(1)!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker button{
  width:22px!important;
  height:22px!important;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  font-size:15px!important;
  line-height:1!important;
  cursor:pointer!important;
  border-radius:5px!important;
  opacity:1!important;
  visibility:visible!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker button:hover{
  background:rgba(217,141,157,.12)!important;
}

/* ===== v223 写卡卡片/编辑框/表情气泡 跟随主题（覆盖 v221 透明样式，全主题生效） ===== */
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card{
  background:linear-gradient(145deg,var(--card-strong,var(--card)),var(--card))!important;
  border:1px solid var(--tab-border, rgba(255,255,255,.76))!important;
  border-radius:20px!important;
  box-shadow:var(--shadow)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card #guestName{
  background:var(--card-strong,var(--card))!important;
  border:1px solid var(--tab-border, rgba(255,255,255,.76))!important;
  border-radius:14px!important;
  color:var(--text)!important;
  outline:none!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card #guestName::placeholder{
  color:var(--muted,#8b8177)!important;
  opacity:1!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-message-editor{
  background:var(--card-strong,var(--card))!important;
  border:1px solid var(--tab-border, rgba(255,255,255,.76))!important;
  border-radius:14px!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-content-editor{
  color:var(--text)!important;
  caret-color:var(--orange,#ef7f13)!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-content-editor:empty:before{
  content:attr(data-placeholder)!important;
  color:var(--muted,#8b8177)!important;
  opacity:.85!important;
  pointer-events:none!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-char-count{
  color:var(--muted,#8b8177)!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-toggle img,
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card #guestSend img{
  opacity:.92!important;
}
/* 表情气泡：跟随主题 + 圆角 + 阴影 + 小三角 */
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker{
  background:linear-gradient(145deg,var(--card-strong,var(--card)),var(--card))!important;
  border:1px solid var(--tab-border, rgba(255,255,255,.76))!important;
  border-radius:14px!important;
  box-shadow:0 14px 34px rgba(60,45,35,.18)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker:before{
  content:""!important;
  position:absolute!important;
  right:30px!important;
  bottom:-6px!important;
  width:13px!important;
  height:13px!important;
  background:var(--card-strong,var(--card))!important;
  border-right:1px solid var(--tab-border, rgba(255,255,255,.76))!important;
  border-bottom:1px solid var(--tab-border, rgba(255,255,255,.76))!important;
  transform:rotate(45deg)!important;
  border-radius:3px!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker button:hover{
  background:color-mix(in srgb,var(--orange,#ef7f13) 14%,transparent)!important;
}

/* ===== v223b 写卡容器边框显式跟随主题（修复 border-color 被旧规则抢占） ===== */
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card{
  border-color:var(--tab-border, rgba(255,255,255,.76))!important;
}

/* ===== v224 表情 hover 大图预览（跟随格子：上方大图 + 下方文字，跟随主题） ===== */
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker .guest-emoji-preview{
  position:absolute!important;
  z-index:99!important;
  transform:translateX(-50%) scale(.92)!important;
  transform-origin:bottom center!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:2px!important;
  padding:6px 10px 5px!important;
  background:linear-gradient(145deg,var(--card-strong,var(--card)),var(--card))!important;
  border:1px solid var(--tab-border, rgba(255,255,255,.76))!important;
  border-radius:12px!important;
  box-shadow:0 12px 28px rgba(40,30,25,.20)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker .guest-emoji-preview.is-show{
  opacity:1!important;
  visibility:visible!important;
  transform:translateX(-50%) scale(1)!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker .guest-emoji-preview img{
  width:44px!important;
  height:44px!important;
  object-fit:contain!important;
  display:block!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker .guest-emoji-preview span{
  font-size:11px!important;
  line-height:1.2!important;
  color:var(--text)!important;
  white-space:nowrap!important;
}
/* hover 时格子内图标也放大 */
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker button img{
  transition:transform .16s ease!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-emoji-picker button:hover img{
  transform:scale(1.35)!important;
}

/* ===== v225 输入后的表情适当缩小（编辑框 + 留言卡片，与评论一致 18px） ===== */
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-content-editor .g-emoji{
  display:inline-flex!important;
  width:18px!important;
  height:18px!important;
  vertical-align:-3px!important;
  flex:0 0 auto!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-write-card .guest-content-editor .g-emoji img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  display:block!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-note-card .g-emoji{
  display:inline-flex!important;
  width:18px!important;
  height:18px!important;
  vertical-align:-3px!important;
  flex:0 0 auto!important;
}
.home-tab-panel[data-home-panel="guestbook"] .guest-note-card .g-emoji img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  display:block!important;
}

/* ===== v225b 留言卡片上渲染的表情同样缩小（emoji-inline 固定 18px） ===== */
.home-tab-panel[data-home-panel="guestbook"] .guest-note-card .emoji-inline{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  vertical-align:-3px!important;
}


/* ===== v230 主题卡片显示主题背景图缩略图 ===== */
