@font-face{font-family:'LatteSong';src:url(fonts/latte-song.woff2) format('woff2');font-display:swap}
@font-face{font-family:'LatteMarks';src:url(fonts/latte-marks.woff2) format('woff2');unicode-range:U+0030-0039,U+0300-036F,U+25CC;font-display:swap}
@font-face{font-family:'LatteSongExt';src:url(fonts/latte-song-ext.woff2) format('woff2');unicode-range:U+4E00-9FFF;font-display:swap}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:#3a6ea5 linear-gradient(#5a8fd0,#2d5e9e);font-family:"SimSun","宋体",LatteSong,LatteMarks,LatteSongExt,serif;color:#333;cursor:none}
body *{cursor:none!important}
.win{max-width:720px;height:100vh;height:100dvh;margin:0 auto;display:flex;flex-direction:column;background:#fffbe9;box-shadow:0 0 30px #0006;overflow:hidden}
.titlebar{background:linear-gradient(#3d8cf0,#1258d6 45%,#0a49c4);color:#fff;font:bold 18px/1 "Microsoft YaHei",Tahoma,sans-serif;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;text-shadow:1px 1px #0a2a80;padding-top:max(8px,env(safe-area-inset-top))}
.tb{display:flex;gap:5px}.tb i{font-style:normal;width:30px;height:28px;border:1.5px solid #fff;border-radius:4px;background:linear-gradient(#5aa0ff,#2468e0);display:grid;place-items:center;font-size:14px}
.tb i.x{background:linear-gradient(#f07050,#c42a10)}
.menubar{font-size:14px;padding:6px 8px;display:flex;gap:16px;flex-wrap:wrap;color:#222}
.addr{display:flex;align-items:center;gap:8px;padding:2px 8px 10px;font-size:14px;border-bottom:1px solid #d8d0b0}
.addr input{flex:1;min-width:0;height:32px;border:1px solid #7f9db9;padding:0 8px;font:14px Tahoma,sans-serif;background:#fff}
.addr button{background:#3cb043;color:#fff;border:1px solid #2a8a30;height:34px;padding:0 12px;font:15px "Microsoft YaHei",sans-serif}
.page{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;
 background-color:#fff0fa;background-image:radial-gradient(#ffd1ec 2px,transparent 2.5px);background-size:22px 22px}
.banner{position:relative;line-height:0}.banner img{width:100%;display:block}
#stars{position:absolute;inset:0;pointer-events:none}
#stars i{position:absolute;color:#fff;font-style:normal;font-size:12px;line-height:1;animation:tw 1.6s infinite ease-in-out;text-shadow:0 0 4px #fff}
@keyframes tw{0%,100%{opacity:.1;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}}
.marquee{background:linear-gradient(#ff5cb5,#ff3fa8);color:#fff;font:18px/38px "Microsoft YaHei",LatteMarks,sans-serif;overflow:hidden;white-space:nowrap}
.mq{display:inline-flex;animation:mq 40s linear infinite;will-change:transform}.mq span{white-space:pre;flex:none}
@keyframes mq{to{transform:translateX(-50%)}}
.playerwrap{background:linear-gradient(#6a1a6a,#4a1050);padding:12px 4% 10px}
.player{background:#1a0c22;border:2px solid #ff4fae;display:flex;align-items:center;gap:12px;padding:6px 12px;height:62px}
#play{background:none;border:0;color:#5f5;font-size:28px;padding:0 4px;width:36px}
.pinfo{flex:1;color:#fff;font:16px "Microsoft YaHei",sans-serif;min-width:0}.pinfo div:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.time{color:#6ad0ff;font:13px monospace}.prog{height:3px;background:#333;margin-top:3px}.prog i{display:block;height:100%;width:0;background:#3f3}
.eq{display:flex;align-items:flex-end;gap:3px;height:42px}.eq i{width:8px;background:linear-gradient(#ff3fa8,#ff9a40);height:20%;transition:height .15s}
.box{margin:22px 3.5% 0;border:2px dashed #f06ab0;border-top:0;background:#fff}
.box h2{margin:0 -2px;background:linear-gradient(90deg,#ff7ccf,#c98bf5);color:#fff;font:18px/36px "SimSun","宋体",LatteSong,LatteMarks,LatteSongExt,serif;padding:0 14px;letter-spacing:1px;text-shadow:1px 1px #c24a9a}
.inner{padding:18px 20px 22px}.center{text-align:center}
.mood{color:#a0186a;font-size:19px;margin:6px 0 14px}.stat{color:#666;font-size:16px;margin:0 0 22px}
.visitors{display:flex;justify-content:space-between;gap:6px}
.visitors div{flex:1;max-width:92px;text-align:center}
.visitors img{width:100%;aspect-ratio:1;border:2px solid #f39acb;image-rendering:pixelated;display:block}
.visitors b{display:block;font-weight:normal;margin-top:10px;font-size:15px;color:#555}.visitors small{color:#aaa;font-size:12px}
.hearts{height:24px;margin-top:4px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='24'%3E%3Ctext x='4' y='17' font-size='13' fill='%23ffc0e0'%3E♥%3C/text%3E%3Ctext x='29' y='17' font-size='12' fill='%23f0c8ff'%3E✦%3C/text%3E%3C/svg%3E") repeat-x center}
.selfie{position:relative;display:inline-block;width:80%;max-width:532px;margin:4px 0 70px;line-height:0}
.selfie img{width:100%;display:block}
.fl{position:absolute;font:bold 22px "Microsoft YaHei",sans-serif;color:#fff;text-shadow:0 0 3px #ff3fa8,0 0 6px #ff3fa8;line-height:1.2;animation:fl 3s ease-in-out infinite}
.f1{left:-6%;top:12%}.f2{right:-8%;bottom:-12%;animation-delay:1.5s}
@keyframes fl{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-12px) rotate(4deg)}}
.album{display:grid;grid-template-columns:1fr 1fr;gap:34px 26px}
.album a{border:2px solid #f3b3d6;padding:6px 6px 0;display:block;text-align:center;background:#fff}
.album img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.album span{display:block;color:#a0186a;font-size:16px;padding:10px 0}
.hint{display:grid;place-items:center;color:#ff3fa8;font:20px "Microsoft YaHei",sans-serif;letter-spacing:4px}
.gbform{border:2px solid #c99bf0;padding:12px 14px;margin-bottom:22px;position:relative}
.gbform textarea{width:100%;border:0;resize:none;height:52px;font:20px "Microsoft YaHei",sans-serif;outline:0}
.gbform > button{display:block;margin-left:auto;background:#ff4fae;color:#fff;border:0;font:bold 18px "Microsoft YaHei",sans-serif;padding:4px 26px}
.gb{display:flex;gap:12px;border:1px solid #f3cce3;padding:10px 12px;margin-bottom:10px;background:#fff}
.gb img{width:60px;height:60px;image-rendering:pixelated;flex:none}
.gb .c{flex:1;min-width:0}.gb .h{display:flex;justify-content:space-between;font-size:15px;color:#2d5dbf;margin:4px 0 8px}
.gb .h small{color:#aaa;font:12px "SimSun","宋体",LatteSong,LatteMarks,LatteSongExt,serif}
.gb p{margin:0;font:19px "Microsoft YaHei",sans-serif;color:#222;word-break:break-all}
.gb.new{border:2px solid #f0389c}
@keyframes pin{from{opacity:0;transform:translateY(-10px)}}
.glit{font:900 24px "Microsoft YaHei",sans-serif;background:linear-gradient(90deg,#ff3fa8,#ff9ade,#b04cff,#ff3fa8);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-stroke:.6px #c0157a;animation:gl 1.2s linear infinite;filter:drop-shadow(0 0 2px #fff)}
@keyframes gl{to{background-position:300% 0}}
.foot{text-align:center;color:#c58;font-size:12px;padding:24px 0 40px}
.status{border-top:1px solid #d8d0b0;font-size:14px;padding:6px 10px;padding-bottom:max(6px,env(safe-area-inset-bottom))}
.mask{position:fixed;inset:0;background:#7a1a6a88;display:none;z-index:50}.mask.on{display:block}
.pop{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,94vw);background:#fff;box-shadow:0 6px 30px #0006}
.pt{background:linear-gradient(90deg,#ff8fd0,#d39bff);color:#fff;font:15px "SimSun","宋体",LatteSong,LatteMarks,LatteSongExt,serif;padding:6px 10px;display:flex;justify-content:space-between;align-items:center;touch-action:none;user-select:none}
.pt button{background:#e02a2a;color:#fff;border:1px solid #fff;width:30px;height:26px;font-weight:bold}
.pb{padding:12px 12px 4px}.ph{position:relative;aspect-ratio:4/3;background:#f6f6f6;display:grid;place-items:center;color:#aaa}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}.ph.ok img{display:block}
#pcap{text-align:center;color:#a0186a;font-size:19px;margin:16px 0 18px}
#cursor{position:fixed;left:0;top:0;width:26px;height:30px;pointer-events:none;z-index:99;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='30'%3E%3Cpath d='M2 2 L2 22 L7 17 L11 26 L14 24.5 L10 16 L17 16 Z' fill='%23fff' stroke='%23e0409a' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M15 4 l4 3 -4 3 z M23 4 l-4 3 4 3 z' fill='%23ff5cb5' stroke='%23c0157a' stroke-width='.8'/%3E%3Ccircle cx='19' cy='7' r='1.6' fill='%23ff9ade'/%3E%3C/svg%3E") no-repeat}
.spk{position:fixed;pointer-events:none;z-index:98;color:#ff8fd0;font-size:14px;animation:spk .8s forwards;text-shadow:0 0 4px #fff}
@keyframes spk{to{opacity:0;transform:translate(var(--dx),18px) scale(.3) rotate(90deg)}}
@media (hover:none){body,body *{cursor:auto!important}#cursor{display:none}}
@media (max-width:480px){
 .titlebar{font-size:15px}.tb i{width:24px;height:22px;font-size:12px}
 .menubar{font-size:12px;gap:10px}.addr{font-size:12px}.addr input{font-size:12px;height:28px}.addr button{height:30px;font-size:13px}
 .marquee{font-size:15px;line-height:32px}.player{height:54px;gap:8px}.pinfo{font-size:13px}.eq i{width:5px}.eq{gap:2px}
 .box h2{font-size:15px;line-height:30px}.inner{padding:14px 12px 16px}.mood{font-size:15px}.stat{font-size:13px}
 .visitors b{font-size:12px}.visitors small{font-size:10px}.album{gap:18px 12px}.album span{font-size:13px}.hint{font-size:15px;letter-spacing:2px}
 .fl{font-size:16px}.gb img{width:46px;height:46px}.gb p{font-size:15px}.gb .h{font-size:12px}.gb .h small{font-size:10px}.glit{font-size:19px}
 .gbform textarea{font-size:16px}#pcap{font-size:16px}}
@media (min-width:481px){
 .menubar{font-size:16px;gap:20px}.addr{font-size:16px}.addr input{font-size:16px;height:36px}
 .box h2{font-size:20px;line-height:40px}.mood{font-size:22px}.stat{font-size:18px}.visitors b{font-size:17px}.visitors small{font-size:14px}
 .pinfo{font-size:18px}.time{font-size:15px}.player{height:64px}}
@media (min-width:481px){
 .pop{width:min(694px,96vw)}.pt{font-size:18px;padding:8px 12px}.pt button{width:36px;height:30px}#pcap{font-size:23px}
 .gb{padding:12px 14px}.gb img{width:72px;height:72px}.gb p{font-size:22px}.gb .h{font-size:18px}.gb .h small{font-size:14px}
 .gbform textarea{font-size:23px;height:60px}.gbform > button{font-size:21px;padding:6px 30px}.glit{font-size:28px}
 .album span{font-size:19px}.hint{font-size:23px}.menubar{font-size:17px}.titlebar{font-size:20px}}
.foot{text-align:center;color:#b0408a;font-size:12px;line-height:1.7;padding:22px 16px 34px;letter-spacing:.5px;text-shadow:0 0 3px #fff,0 0 6px #ffc8ea}
.foot p{margin:0}.foot .fdeco{color:#ff6fbf;margin-bottom:4px}
@media (min-width:481px){.foot{font-size:14px}}
.menubar .help{cursor:pointer!important;padding:0 4px;border-radius:2px}.menubar .help:hover{background:#316ac5;color:#fff}
.hpop{width:min(420px,92vw)!important}.hb{padding:18px 18px 22px;text-align:center;color:#a0186a;font-size:16px;line-height:1.9}
.hb p{margin:0}.hb .fdeco{color:#ff6fbf}.wx{user-select:all;-webkit-user-select:all;background:#ffe3f3;padding:0 6px;border:1px dashed #f06ab0;color:#c0157a;cursor:text!important}
.menubar{position:relative;z-index:2}
.menubar .help{animation:blink .6s steps(1,end) infinite}
.menubar .help:hover{animation:none}
@keyframes blink{0%{color:#f00;font-weight:bold}50%{color:inherit;font-weight:normal}}
.gb .pin{display:inline-block;margin-left:6px;padding:0 5px;font:bold 11px/16px "Microsoft YaHei",sans-serif;color:#fff;background:linear-gradient(#ff5cb5,#e0207a);border:1px solid #fff;box-shadow:0 0 0 1px #f06ab0;animation:blink .6s steps(1,end) infinite}
.gb.pinned{border:2px dashed #f06ab0;background:#fff5fb}
.gbname{width:100%;border:0;border-bottom:1px dashed #e3b6f5;font:15px "Microsoft YaHei",sans-serif;padding:2px 0 6px;margin-bottom:6px;outline:0;color:#2d5dbf}
.gberr{color:#e0207a;font-size:14px;margin:-12px 0 14px;min-height:0}
.gbanim .gb{opacity:0}.gbanim .gb.in{animation:gbin .45s cubic-bezier(.3,1.6,.5,1) var(--d,0ms) both}
@keyframes gbin{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.gbanim .gb{opacity:1}.gbanim .gb.in{animation:none}}
.pop.pop-in{animation:popin .25s cubic-bezier(.3,1.5,.6,1) both}
@keyframes popin{from{scale:.3;opacity:0}to{scale:1;opacity:1}}
.mask.closing .pop{animation:popout .15s ease-in both}.mask.closing{background:transparent;transition:background .15s}
@keyframes popout{to{scale:.6;opacity:0}}
.ph.ok{background:#c8c8c8}
@media (prefers-reduced-motion:reduce){.pop.pop-in,.mask.closing .pop{animation:none}}
.ph.ok span{visibility:hidden}
.avpick{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.avpick button{padding:2px;border:2px solid transparent;background:none;border-radius:4px;line-height:0;opacity:.6}
.avpick button[aria-checked=true]{border-color:#ff3fa8;background:#ffe3f3;opacity:1}
.avpick img{width:34px;height:34px;image-rendering:pixelated}
.gbform{position:relative}.gbform > button:disabled{opacity:.6}
.toast{position:fixed;left:50%;bottom:calc(70px + env(safe-area-inset-bottom));transform:translate(-50%,6px);white-space:nowrap;background:linear-gradient(#ff8fd0,#ff4fae);color:#fff;font:bold 15px "Microsoft YaHei",sans-serif;padding:6px 14px;border:2px solid #fff;border-radius:14px;box-shadow:0 0 0 1px #f06ab0,0 0 10px #ff9ade;text-shadow:0 0 4px #ff3fa8;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:120}
.toast.on{opacity:1;transform:translate(-50%,0)}.toast.bad{background:linear-gradient(#ff8a8a,#e0303a);box-shadow:0 0 0 1px #c0152a}
.toast::after{content:'✦';position:absolute;right:-8px;top:-10px;color:#ffd84f;font-size:16px;animation:tw 1s infinite}
.gb.hl{background:#fff3b8!important;transition:background 1.2s}
@media (max-width:480px){.toast{font-size:12px}.avpick img{width:30px;height:30px}}
.cpy{font:12px "Microsoft YaHei",sans-serif;background:#ff4fae;color:#fff;border:1px solid #fff;box-shadow:0 0 0 1px #f06ab0;padding:1px 8px;vertical-align:middle;cursor:pointer!important}.wx{cursor:pointer!important}
