:root{--bg:#fff7ef;--ink:#2f2623;--muted:#7e685f;--pri:#ff7568;--pri2:#ffb36b;--pink:#ff6fae;--purple:#8d6bff;--safe:#36b77d;--line:rgba(80,55,45,.12);--card:rgba(255,255,255,.74);--shadow:0 24px 80px rgba(112,70,52,.16)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:radial-gradient(circle at 10% 10%,rgba(255,179,107,.42),transparent 26%),radial-gradient(circle at 90% 8%,rgba(141,107,255,.22),transparent 25%),radial-gradient(circle at 75% 75%,rgba(255,111,174,.18),transparent 25%),linear-gradient(135deg,#fffaf5,#fff0e6);min-height:100vh;overflow-x:hidden}.hidden{display:none!important}.heart-layer,.weather-layer{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}.fall-heart,.weather-particle{position:absolute;top:-40px;animation:drop linear forwards;filter:drop-shadow(0 8px 10px rgba(255,117,104,.18))}@keyframes drop{to{transform:translateY(110vh) rotate(360deg);opacity:0}}@keyframes floatUp{to{transform:translateY(-120px) scale(1.5);opacity:0}}.nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;background:rgba(255,247,239,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.88)}.brand{display:flex;align-items:center;gap:10px}.brand b{letter-spacing:-.5px}.logo{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--pri),var(--pri2));color:white;box-shadow:0 12px 30px rgba(255,117,104,.25)}.nav-actions,.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.badge{padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid var(--line);font-weight:800;color:var(--muted);font-size:13px}button{border:0;cursor:pointer;font-family:inherit;transition:.18s ease}.primary,.ghost,.danger{padding:12px 16px;border-radius:999px;font-weight:900}.primary{color:white;background:linear-gradient(135deg,var(--pri),var(--pri2));box-shadow:0 12px 30px rgba(255,117,104,.25)}.primary:hover,.ghost:hover,.game:hover{transform:translateY(-2px)}.ghost{background:rgba(255,255,255,.68);border:1px solid var(--line);color:var(--ink)}.danger{background:#ff5f7a;color:white}.big{font-size:16px;padding:15px 20px}.hero{width:min(1200px,calc(100% - 32px));margin:0 auto;min-height:calc(100vh - 72px);display:grid;grid-template-columns:1fr 430px;gap:36px;align-items:center;padding:74px 0}.pill{display:inline-flex;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.68);border:1px solid rgba(255,255,255,.92);color:#8d5d51;font-weight:900}.hero h1{font-size:clamp(44px,6vw,82px);line-height:.96;letter-spacing:-3px;margin:22px 0}.hero h1 span{display:block;color:transparent;background:linear-gradient(135deg,#ff665a,#ff9d3f,#8d6bff);-webkit-background-clip:text;background-clip:text}.hero p{font-size:18px;color:var(--muted);line-height:1.85}.cute-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}.cute-grid div,.hero-card,.room,.card,.price,.result-card,.lock-card{background:var(--card);border:1px solid rgba(255,255,255,.86);border-radius:26px;padding:18px;box-shadow:var(--shadow);backdrop-filter:blur(18px)}.cute-grid b{display:block}.cute-grid small,.muted{color:var(--muted);line-height:1.6}.hero-card input,input,select,textarea{width:100%;padding:13px 14px;border-radius:16px;border:1px solid var(--line);outline:none;background:rgba(255,255,255,.86);margin:8px 0}.live-feed{margin-top:16px;color:var(--muted);line-height:1.8}.room{width:min(1260px,calc(100% - 24px));margin:20px auto 60px;padding:0;overflow:hidden}.room-head{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.54)}.room-head b{font-size:22px}.room-head small{display:block;color:var(--muted);margin-top:5px}.room-grid{display:grid;grid-template-columns:260px 1fr;min-height:760px}.side{padding:16px;border-right:1px solid var(--line);background:rgba(255,248,242,.58)}.tab{display:block;width:100%;padding:13px 14px;margin-bottom:8px;border-radius:18px;background:transparent;text-align:left;font-weight:900;color:var(--muted)}.tab.active{background:linear-gradient(135deg,var(--pri),var(--pri2));color:white}.content{padding:20px}.panel{display:none}.panel.active{display:block}.panel-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:16px}.panel h2{font-size:32px;margin:0 0 8px}.panel p{margin:0;color:var(--muted);line-height:1.65}.chatbox{height:430px;overflow:auto;background:rgba(255,255,255,.68);border:1px solid var(--line);border-radius:26px;padding:16px}.chatbox.small{height:300px}.msg{margin:9px 0;display:flex}.msg.me{justify-content:flex-end}.bubble{max-width:82%;padding:12px 14px;border-radius:18px;background:white;border:1px solid var(--line);line-height:1.55;box-shadow:0 8px 20px rgba(80,55,45,.06)}.msg.me .bubble{background:linear-gradient(135deg,var(--pri),var(--pri2));color:white}.msg.system .bubble,.invite-card{background:rgba(54,183,125,.13);color:#27684d}.invite-card{border:1px solid rgba(54,183,125,.18);border-radius:18px;padding:12px;margin-top:8px}.invite-card h4{margin:0 0 5px}.invite-card .actions{margin-top:10px}.composer{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:12px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.chips button{padding:8px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:800;color:#6b5249}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.slot{display:block;width:100%;margin:5px 0;padding:9px;border-radius:13px;background:#fff;border:1px solid var(--line);font-weight:800}.slot.selected{background:linear-gradient(135deg,var(--safe),#78d8a9);color:white}.movie-layout{display:grid;grid-template-columns:1fr 360px;gap:18px}video{width:100%;border-radius:24px;background:#111;min-height:360px}.game{background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:22px;padding:18px;font-weight:900;color:var(--ink);text-align:left}.game-stage{margin:14px 0}.game-stage .card{box-shadow:none}canvas{width:100%;max-width:760px;background:white;border:1px solid var(--line);border-radius:22px;margin-top:14px;touch-action:none}.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.pricing.single{grid-template-columns:minmax(240px,380px)}.price{text-align:center;font-size:24px}.price.hot{background:linear-gradient(135deg,#2f2623,#5d463e);color:white}.price small{display:block;font-size:13px;margin-top:8px;color:rgba(255,255,255,.75)}.modal{position:fixed;inset:0;background:rgba(47,38,35,.45);backdrop-filter:blur(8px);display:grid;place-items:center;z-index:99}.modal-card{position:relative;width:min(560px,calc(100% - 24px));max-height:90vh;overflow:auto;background:rgba(255,255,255,.96);border-radius:30px;padding:24px;box-shadow:var(--shadow)}.x{position:absolute;right:16px;top:14px;border-radius:14px;background:rgba(0,0,0,.08);width:36px;height:36px}.form-grid{display:grid;gap:8px}.weather-stage{min-height:160px;margin-top:18px;position:relative;overflow:hidden}.sun-orb{width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,#fff3a8,#ffb36b);box-shadow:0 0 60px rgba(255,179,107,.65);margin:20px auto}.star-field{height:180px;border-radius:24px;background:radial-gradient(circle at 20% 20%,#fff 1px,transparent 2px),radial-gradient(circle at 70% 30%,#fff 1px,transparent 2px),linear-gradient(135deg,#241b3d,#0f1022)}.snow-card,.rain-card,.heart-card,.candy-card{text-align:center;font-size:42px;padding:35px}@media(max-width:980px){.hero{grid-template-columns:1fr;padding:36px 0}.cute-grid,.cards,.pricing,.two,.movie-layout{grid-template-columns:1fr}.room-grid{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line)}.calendar{grid-template-columns:1fr 1fr}.nav{display:block}.nav-actions{margin-top:12px}.hero h1{letter-spacing:-2px}.chatbox{height:62vh}.panel-head{display:block}}@media(max-width:560px){.nav,.content,.side{padding:12px}.brand b{font-size:14px}.hero,.room{width:calc(100% - 14px)}.hero h1{font-size:42px}.calendar{grid-template-columns:1fr}.room-head{display:block}.actions{margin-top:10px}.bubble{max-width:94%}}


/* V13 richer warm homepage and invitation polish */
.love-ribbon{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.love-ribbon span{padding:10px 13px;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.95);box-shadow:0 10px 26px rgba(112,70,52,.08);font-weight:900;color:#8b5d51}.hero:before{content:"💗";position:absolute;left:6%;top:16%;font-size:38px;opacity:.35;animation:floatUp 4s ease-in-out infinite alternate}.hero:after{content:"🧸";position:absolute;right:7%;bottom:8%;font-size:46px;opacity:.24;animation:floatUp 5s ease-in-out infinite alternate}.hero{position:relative}.gift-card{position:relative;overflow:hidden}.gift-card:after{content:"🎁";position:absolute;right:14px;top:12px;font-size:28px;opacity:.35}.result-card pre{white-space:pre-wrap;word-break:break-word;background:rgba(255,255,255,.6);border-radius:18px;padding:12px}.weather-particle{z-index:2}.rain-card,.snow-card,.heart-card,.candy-card{animation:pulseSoft 1.8s ease-in-out infinite alternate}@keyframes pulseSoft{to{transform:scale(1.04);filter:drop-shadow(0 16px 30px rgba(255,117,104,.22))}}.invite-card small{display:block;margin:6px 0;color:#6b806b;font-weight:800}.fall-heart{z-index:1}.hero-card{position:relative}.hero-card:before{content:"💕";position:absolute;right:22px;top:-20px;font-size:34px;filter:drop-shadow(0 12px 20px rgba(255,117,104,.18))}.live-feed{max-height:150px;overflow:hidden}.live-feed div{padding:4px 0}



/* V14 exchange-card, love-heart and game improvements */
.love-meter-card{display:grid;grid-template-columns:92px 1fr;gap:16px;align-items:center;margin-bottom:14px;background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(255,241,236,.8));border:1px solid rgba(255,117,104,.16);border-radius:26px;padding:15px;box-shadow:0 14px 36px rgba(255,117,104,.12)}
.love-heart-wrap{position:relative;width:82px;height:82px;display:grid;place-items:center;filter:drop-shadow(0 14px 22px rgba(255,95,122,.22))}.love-heart-base,.love-heart-fill{position:absolute;font-size:76px;line-height:1}.love-heart-base{color:rgba(255,117,104,.18);-webkit-text-stroke:1px rgba(255,117,104,.38)}.love-heart-fill{color:#ff3f65;clip-path:inset(calc(100% - var(--love,0%)) 0 0 0);animation:heartBeat 1.45s ease-in-out infinite;transition:clip-path .7s ease}@keyframes heartBeat{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}.love-meter-info b{font-size:18px}.love-meter-info small{display:block;color:var(--muted);line-height:1.5;margin:5px 0 10px}.love-bar{height:10px;border-radius:999px;background:rgba(255,117,104,.12);overflow:hidden}.love-bar i{display:block;width:var(--w,0%);height:100%;background:linear-gradient(90deg,#ff5f7a,#ffb36b);border-radius:999px;transition:width .7s ease}
.exchange-card{background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,246,241,.92));border:1px solid rgba(255,117,104,.20);border-radius:22px;padding:16px;box-shadow:0 14px 36px rgba(112,70,52,.12);min-width:min(420px,100%)}.exchange-card .top{display:flex;align-items:center;gap:12px}.exchange-card .icon{width:48px;height:48px;border-radius:18px;display:grid;place-items:center;font-size:24px;background:linear-gradient(135deg,var(--pri),var(--pri2));color:#fff}.exchange-card h4{margin:0 0 4px;font-size:18px}.exchange-card p{margin:0;color:var(--muted);line-height:1.55}.exchange-card button{margin-top:12px}.soft-tip{box-shadow:none;background:rgba(255,255,255,.58);color:var(--muted);font-weight:800}.info-list{display:grid;gap:9px}.info-row{padding:11px 12px;border-radius:16px;background:rgba(255,248,242,.86);border:1px solid var(--line)}.info-row b{display:block;margin-bottom:4px}.game-controls{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.game-controls button{padding:12px 14px;border-radius:999px;background:linear-gradient(135deg,var(--purple),var(--pink));color:#fff;font-weight:900}.partner-card{background:linear-gradient(135deg,rgba(141,107,255,.12),rgba(255,111,174,.12));border:1px solid rgba(141,107,255,.18);border-radius:26px;padding:18px;margin-bottom:14px;box-shadow:var(--shadow)}.date-warning{color:#bd4d2f;font-weight:900}.msg .exchange-card{max-width:520px}.modal-card .exchange-card{box-shadow:none}.love-pop{animation:lovePop .65s ease}@keyframes lovePop{0%{transform:scale(.9)}50%{transform:scale(1.18)}100%{transform:scale(1)}}


/* V15: 房间恢复、邀请同步、见面时间展示、爱情值降速 */
.date-status-mini{margin-top:10px;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid rgba(255,117,104,.14);color:#8b5d51;font-weight:900;line-height:1.45}.date-status-mini b{color:#ff5f7a}.date-status-mini.confirmed{background:linear-gradient(135deg,rgba(54,183,125,.13),rgba(255,255,255,.78));border-color:rgba(54,183,125,.24);color:#27704d}.invite-card.v15-alert{background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,241,236,.92));border-color:rgba(255,117,104,.22);box-shadow:0 14px 34px rgba(255,117,104,.13)}.sync-state{display:inline-flex;gap:8px;align-items:center;margin:8px 0;padding:9px 12px;border-radius:999px;background:rgba(141,107,255,.12);border:1px solid rgba(141,107,255,.18);color:#6d55c9;font-weight:950}.restore-tip{padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.64);border:1px solid rgba(255,255,255,.9);color:var(--muted);font-weight:800;margin:10px 0}.game-stage .sync-state{margin-top:10px}.love-meter-card.slow-love{background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(255,248,242,.82))}

/* V16 acceptance, synced game cards, outfit chooser */
.game-chat-card{background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(247,241,255,.92));border:1px solid rgba(141,107,255,.18);border-radius:20px;padding:14px;box-shadow:0 12px 30px rgba(141,107,255,.10)}
.game-chat-card .game-card-title{display:flex;align-items:center;gap:9px;font-size:17px}.game-chat-card .game-card-title span{font-size:24px}.game-chat-card p{font-size:16px;font-weight:850;color:#5f4a42;margin:9px 0}.game-chat-card small,.game-card-stage small{display:block;color:var(--muted);font-weight:800;margin-top:8px}.game-card-stage{background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(255,247,252,.9))}.outfit-list{grid-template-columns:1fr}.outfit-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;width:100%}.outfit-panel h3,.outfit-panel p{grid-column:1/-1}.outfit-entry{border-color:rgba(255,111,174,.28);background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(255,241,248,.72))}.outfit-entry:after{content:"👗"}@media(max-width:980px){.outfit-panel{grid-template-columns:1fr}}

/* V17 首页动态播报与注册体验修复 */
.live-feed{position:relative;max-height:168px;overflow:hidden;border-radius:22px;background:rgba(255,255,255,.46);border:1px solid rgba(255,255,255,.75);padding:8px 10px}
.live-feed:before,.live-feed:after{content:"";position:absolute;left:0;right:0;height:26px;z-index:2;pointer-events:none}
.live-feed:before{top:0;background:linear-gradient(to bottom,rgba(255,250,245,.96),rgba(255,250,245,0))}
.live-feed:after{bottom:0;background:linear-gradient(to top,rgba(255,250,245,.96),rgba(255,250,245,0))}
.feed-track{animation:feedScroll 18s linear infinite;will-change:transform}
.live-feed:hover .feed-track{animation-play-state:paused}
.feed-item{display:flex;align-items:center;min-height:34px;margin:5px 0;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.76);border:1px solid rgba(255,117,104,.10);box-shadow:0 8px 18px rgba(112,70,52,.06);font-weight:900;color:#8b5d51;white-space:nowrap}
@keyframes feedScroll{0%{transform:translateY(0)}100%{transform:translateY(-50%)}}
.primary:disabled,button:disabled{opacity:.58;cursor:not-allowed;transform:none!important;filter:grayscale(.15)}
#authMsg{min-height:24px;color:#bd4d2f;font-weight:900;line-height:1.55;margin-top:10px}
#authMsg:empty{display:block}
@media(max-width:560px){.feed-item{font-size:13px;white-space:normal;border-radius:18px}.live-feed{max-height:150px}}

.gift-addon-preview{margin:14px 0}.mystery-card,.gift-free-addon{border:1px dashed rgba(255,117,104,.35);background:linear-gradient(135deg,rgba(255,245,250,.9),rgba(255,249,238,.92));border-radius:24px;padding:16px;box-shadow:0 14px 38px rgba(255,117,104,.12)}.mystery-card b,.gift-free-addon b{font-size:18px}.mystery-card p,.gift-free-addon p{margin:8px 0;color:var(--muted);line-height:1.65}.mystery-card small,.gift-free-addon small{display:block;color:#9a6b60;font-weight:800;line-height:1.55}.addon-check{display:flex;align-items:center;gap:10px;font-weight:900;color:var(--ink);background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.88);border-radius:18px;padding:12px;margin-bottom:10px}.addon-check input{width:auto;margin:0}.mini-task-list{display:grid;gap:8px;margin:10px 0}.mini-task{background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:16px;padding:10px}.mini-task b{display:block;font-size:14px;margin-bottom:4px}.mini-task span{display:block;color:var(--muted);font-size:13px;line-height:1.55}
