body{color:#4a3728;-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;background:#fdf6ec;margin:0;font-family:system-ui,Segoe UI,sans-serif}#root{min-height:100svh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}button{-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}button{font-family:inherit}:root{--bg:#f6ecd7;--bg-soft:#fbf3e0;--card:#fff7e5;--card-2:#fbedd0;--line:#e6d2a8;--line-soft:#f0e0bc;--ink:#3d2e1e;--ink-2:#6b5235;--ink-3:#9b8460;--ink-mute:#b8a47c;--brand:#e89b4e;--brand-2:#d17f2f;--brand-soft:#f8d9a8;--pink:#e99bb1;--pink-soft:#fad3de;--blue:#7fb9d9;--blue-soft:#c8e4f2;--green:#9dc57d;--green-soft:#dcedc2;--purple:#b89ae0;--purple-soft:#e4d6f5;--red:#d97070;--red-soft:#f8d3d3;--gold:#e0b040;--wall:#f5e4c3;--wall-2:#ead3a0;--floor:#b98860;--floor-2:#9f6d45;--shadow-card:0 1px 0 #ffffffb3 inset, 0 2px 0 #d6b36c59, 0 8px 24px #78501e0f;--shadow-btn:0 1px 0 #ffffff80 inset, 0 2px 0 #0000000f;--r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-pill:999px;--font-display:"M PLUS Rounded 1c", "Noto Sans TC", system-ui, sans-serif;--font-body:"Noto Sans TC", "M PLUS Rounded 1c", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background:var(--bg);background-image:radial-gradient(1200px 500px at 50% -80px, color-mix(in srgb, var(--brand) 15%, transparent), transparent 60%), repeating-linear-gradient(45deg, transparent 0 22px, color-mix(in srgb, var(--brand) 3%, transparent) 22px 23px);-webkit-font-smoothing:antialiased;min-height:100vh}button{cursor:pointer;font-family:inherit}.shell{max-width:1280px;padding:0 16px max(32px, env(safe-area-inset-bottom));padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));margin:0 auto;overflow-x:hidden}.topbar{justify-content:space-between;align-items:center;padding:12px 4px 16px;display:flex}.brand-mark{font-family:var(--font-display);color:var(--ink);align-items:center;gap:10px;font-weight:800;text-decoration:none;display:flex}.brand-mark .logo{background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;border-radius:10px;place-items:center;width:36px;height:36px;font-size:18px;display:grid;position:relative;box-shadow:0 2px #00000014}.brand-mark .logo:before,.brand-mark .logo:after{content:"";background:var(--brand-2);clip-path:polygon(0 100%,50% 0,100% 100%);width:10px;height:10px;position:absolute;top:-3px}.brand-mark .logo:before{left:4px}.brand-mark .logo:after{right:4px}.brand-mark .brand-title{font-size:19px;line-height:1}.brand-mark .brand-sub{color:var(--ink-3);letter-spacing:.04em;margin-top:2px;font-size:11px}.topbar-right{align-items:center;gap:8px;display:flex}.notif-bell-wrap{position:relative}.notif-bell-btn{cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;padding:2px 4px;font-size:20px;line-height:1;transition:background .15s;position:relative}.notif-bell-btn:hover{background:#00000012}.notif-badge{color:#fff;border-radius:var(--r-sm);pointer-events:none;background:#e03030;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:-4px;right:-6px}.notif-panel{border:1px solid var(--line-soft);z-index:300;background:#fff;border-radius:14px;flex-direction:column;width:min(300px,100vw - 24px);max-height:420px;animation:.15s fadeIn;display:flex;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 24px #0000001f}.notif-panel-header{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:12px 14px 10px;display:flex}.notif-panel-title{color:var(--ink);font-size:14px;font-weight:800}.notif-count{color:var(--ink-3);font-size:11px}.notif-list{flex:1;overflow-y:auto}.notif-empty{text-align:center;color:var(--ink-3);padding:28px;font-size:13px}.notif-item{border-bottom:1px solid var(--line-soft);background:#fffbf0;align-items:flex-start;gap:10px;padding:10px 14px;transition:background .15s;display:flex}.notif-item.notif-read{background:#fff}.notif-icon{flex-shrink:0;font-size:18px;line-height:1.4}.notif-body{flex:1;min-width:0}.notif-text{color:var(--ink);margin:0 0 2px;font-size:12px;line-height:1.4}.notif-time{color:var(--ink-3);margin:0;font-size:11px}.main-grid{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.main-grid .left-col,.main-grid .right-col{flex-direction:column;gap:12px;min-width:0;display:flex}@media (width<=940px){.main-grid{grid-template-columns:1fr}.shell{padding-left:12px;padding-right:12px}.main-grid .right-col{order:-1}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}.card-pad{padding:16px}.card.card-quiet{border-style:dashed;border-color:var(--line-soft);box-shadow:none;background:0 0}.card+.card{margin-top:12px}.card-title{font-family:var(--font-display);color:var(--ink);justify-content:space-between;align-items:center;margin:0 0 12px;font-size:14px;font-weight:800;display:flex}.card-title .hint{font-family:var(--font-body);color:var(--ink-3);font-size:11px;font-weight:500}.scene-card{padding:10px}.canvas-wrapper{border-radius:var(--r-md);border:1px solid var(--line);background:var(--wall);-webkit-user-select:none;user-select:none;width:100%;overflow:hidden}#phaser-container{touch-action:none}.tag{border-radius:var(--r-pill);border:1px solid #0000;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.tag-breed{background:var(--brand-soft);color:var(--brand-2);border-color:color-mix(in srgb, var(--brand) 30%, transparent)}.tag-mood{background:var(--pink-soft);color:#b14e6e;border-color:color-mix(in srgb, var(--pink) 40%, transparent)}.tag-age{background:var(--green-soft);color:#4f7a36;border-color:color-mix(in srgb, var(--green) 40%, transparent)}.tag-blue{background:var(--blue-soft);color:#3a7fa8;border-color:color-mix(in srgb, var(--blue) 40%, transparent)}.tag-purple{background:var(--purple-soft);color:#6b4a9b;border-color:color-mix(in srgb, var(--purple) 40%, transparent)}.tag-warn{background:var(--red-soft);color:#963838;border-color:color-mix(in srgb, var(--red) 40%, transparent)}.tag-rebirth{color:#7a36b8;background:#f0e0ff;border-color:#d4b8f8}.tag-yellow{color:#854d0e;background:#fef9c3;border-color:#fde047}.tag-element{color:#00796b;background:#e0f7fa;border-color:#80cbc4}.tag-resonance{color:#6a1b9a;background:#f3e5f5;border-color:#ce93d8;font-weight:600}.tag-talent{color:#e65100;background:#fff8e1;border-color:#ffb74d}.bars{gap:8px;display:grid}.ds-bar{color:var(--ink-2);grid-template-columns:52px 1fr 52px;align-items:center;gap:8px;font-size:12px;font-weight:600;display:grid}.ds-bar .label{align-items:center;gap:4px;display:flex}.ds-bar .label.urgent{color:var(--red)}.ds-bar .track{background:var(--line-soft);border-radius:var(--r-pill);border:1px solid color-mix(in srgb, var(--line) 80%, transparent);height:10px;position:relative;overflow:hidden}.ds-bar .fill{border-radius:var(--r-pill);background:linear-gradient(180deg, #ffffff73, #fff0 40%), var(--bar-color,var(--brand));width:0%;transition:width .5s cubic-bezier(.4,1.6,.5,1);position:absolute;inset:0}.ds-bar .val{color:var(--ink-3);text-align:right;font-size:11px}.ds-bar.ds-hunger .fill{--bar-color:var(--green)}.ds-bar.ds-mood .fill{--bar-color:var(--pink)}.ds-bar.ds-energy .fill{--bar-color:var(--blue)}.ds-bar.ds-exp .fill{--bar-color:var(--brand)}.ds-bar .fill.fill-mid{--bar-color:#e09020}.ds-bar .fill.fill-low{--bar-color:#d03020}@keyframes urgent-pulse{0%,to{opacity:1}50%{opacity:.6}}.ds-bar .track.track-urgent{animation:1.2s ease-in-out infinite urgent-pulse}.ds-bar .val.urgent{color:var(--red);font-weight:800}.resources{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.res{background:var(--card-2);border:1px solid var(--line-soft);border-radius:var(--r-md);color:var(--ink);align-items:center;gap:6px;padding:8px 10px;font-weight:700;display:flex}.res .res-ic{border-radius:var(--r-xs);flex-shrink:0;place-items:center;width:22px;height:22px;font-size:13px;display:grid}.res.coin .res-ic{background:linear-gradient(#ffe6a0,#e0b040)}.res.heart .res-ic{background:linear-gradient(#ffd0dc,#e99bb1)}.res.gem .res-ic{background:linear-gradient(#c8e4f2,#7fb9d9)}.res .res-num{color:var(--ink);font-size:13px;font-weight:700}.actions-wrap{position:relative}.float-label{color:var(--brand-2);white-space:nowrap;pointer-events:none;z-index:10;font-size:13px;font-weight:800;animation:.9s forwards floatUp;position:absolute;top:-4px;left:50%}.actions{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px;display:grid}@media (width<=540px){.actions{grid-template-columns:repeat(2,1fr)}}.act{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);text-align:center;box-shadow:var(--shadow-btn);cursor:pointer;touch-action:manipulation;flex-direction:column;align-items:center;gap:4px;padding:12px 8px 10px;transition:transform .12s,box-shadow .12s,opacity .15s;display:flex;position:relative}.act:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #78501e2e}.act:active:not(:disabled){box-shadow:none;transform:scale(.94)translateY(1px)}.act:disabled{opacity:.45;cursor:not-allowed}.act .act-ic{border-radius:10px;place-items:center;width:36px;height:36px;margin-bottom:2px;font-size:18px;display:grid}.act .act-name{color:var(--ink);font-size:12px;font-weight:700;font-family:var(--font-display)}.act .act-cost{color:var(--ink-3);font-size:10px;font-weight:500}.act.act-feed .act-ic{background:var(--green-soft)}.act.act-play .act-ic{background:var(--pink-soft)}.act.act-groom .act-ic{background:var(--purple-soft)}.act.act-calm .act-ic{background:#fae1b8}.act.act-primary{background:linear-gradient(180deg, #f4c070, var(--brand));border-color:var(--brand-2);box-shadow:0 2px 0 var(--brand-2), 0 4px 12px #d97f2f4d}.act.act-primary .act-name,.act.act-primary .act-cost{color:#fff}.act.act-primary .act-ic{background:#ffffff47}.menu-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.mtile{background:var(--card-2);border:1px solid var(--line-soft);border-radius:var(--r-md);color:var(--ink-2);text-align:center;cursor:pointer;box-shadow:none;touch-action:manipulation;border:none;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;font-size:11px;font-weight:700;transition:transform .12s,background .12s;display:flex}.mtile:hover{background:var(--card);transform:translateY(-2px)}.mtile:active{transform:translateY(0)}.daily-info-card{margin-top:10px}.dic-row{color:var(--ink-2);justify-content:space-between;margin-bottom:6px;font-size:13px;font-weight:700;display:flex}.dic-bar{background:var(--line-soft);border-radius:4px;height:8px;margin-bottom:10px;overflow:hidden}.dic-bar-fill{background:#70b840;border-radius:4px;height:100%;transition:width .4s}.dic-event{border-top:1px solid var(--line-soft);color:var(--ink-2);padding-top:8px;font-size:12px}.dic-effects{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.dic-effects span{border-radius:var(--r-xs);color:#8b6a30;background:#fff3d0;border:1px solid #e8c870;padding:2px 8px;font-size:11px}.bottom-panel{margin-top:16px;display:block}.bp-main{padding:16px}.bp-tabs{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.bp-tab{border:1px solid var(--line-soft);border-radius:var(--r-md);background:var(--card-2);min-width:76px;font-family:var(--font-body);cursor:pointer;color:var(--ink-2);white-space:nowrap;touch-action:manipulation;flex:auto;padding:8px 4px;font-size:12px;font-weight:700;transition:background .15s,color .15s}.bp-tab.active{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 2px 8px #f0a03059}.bp-tab:hover:not(.active){background:var(--card);color:var(--ink)}.bp-tab:active{transform:scale(.96)}.bp-content{max-height:460px;padding-right:4px;overflow-y:auto}.bp-section-heading{color:var(--ink-2);align-items:center;gap:6px;margin:0 0 8px;font-size:13px;font-weight:700;display:flex}.bp-week-label{color:var(--ink-3);font-size:11px;font-weight:400}.bp-loading{text-align:center;color:var(--ink-2);padding:16px 0;font-size:13px}@keyframes skeleton-shimmer{0%{background-position:-300px 0}to{background-position:300px 0}}.skeleton-list{flex-direction:column;gap:10px;padding:6px 0;display:flex}.skeleton-row{background:var(--card-2);border:1px solid var(--line-soft);border-radius:10px;align-items:center;gap:10px;padding:8px;display:flex}.skeleton-icon{border-radius:var(--r-sm);background:linear-gradient(90deg,#e8e8e8 25%,#f4f4f4 50%,#e8e8e8 75%) 0 0/600px 100%;flex-shrink:0;width:36px;height:36px;animation:1.4s ease-in-out infinite skeleton-shimmer}.skeleton-lines{flex-direction:column;flex:1;gap:6px;display:flex}.skeleton-line{border-radius:var(--r-pill);background:linear-gradient(90deg,#e8e8e8 25%,#f4f4f4 50%,#e8e8e8 75%) 0 0/600px 100%;height:10px;animation:1.4s ease-in-out infinite skeleton-shimmer}.skeleton-line-wide{width:70%}.skeleton-line-narrow{width:45%}@media (width<=940px){.bp-content{max-height:380px}}.mtile .mtile-ic{background:var(--brand-soft);border-radius:10px;place-items:center;width:30px;height:30px;margin-bottom:2px;font-size:15px;display:grid}.warn-row{background:var(--red-soft);border:1px solid color-mix(in srgb, var(--red) 30%, transparent);border-radius:var(--r-md);align-items:center;gap:10px;margin-top:10px;padding:10px 12px;display:flex}.warn-row .warn-ic{background:var(--red);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:16px;display:grid}.warn-row .warn-txt{flex:1}.warn-row .warn-ttl{color:#7a2020;font-size:13px;font-weight:800}.warn-row .warn-dsc{color:#963838;opacity:.8;margin-top:2px;font-size:11px}.warn-row .warn-cure{background:var(--red);color:#fff;border-radius:var(--r-pill);white-space:nowrap;border:0;padding:8px 14px;font-size:12px;font-weight:800;box-shadow:0 2px #8b3333}.warn-row .warn-cure:disabled{opacity:.5;cursor:not-allowed}.section-label{font-family:var(--font-display);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;margin:14px 0 8px;font-size:12px;font-weight:800}.app{background:var(--bg);min-height:100svh;font-family:var(--font-body);flex-direction:column;align-items:center;display:flex}.app-header{width:100%;padding:10px 16px;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));background:var(--card);border-bottom:1px solid var(--line);box-sizing:border-box;justify-content:space-between;align-items:center;gap:8px;display:flex}.header-title{font-family:var(--font-display);color:var(--ink);letter-spacing:.03em;font-size:18px;font-weight:800}.event-ribbon{background:linear-gradient(120deg, var(--brand) 0%, #f1b870 60%, var(--brand) 100%);color:#fff;border-radius:var(--r-lg);box-shadow:0 2px 0 var(--brand-2), 0 8px 24px #d97f2f33;align-items:center;gap:12px;margin-bottom:16px;padding:10px 14px;display:flex;overflow:hidden}.event-ribbon-icon{filter:drop-shadow(0 1px #0000001a);flex-shrink:0;font-size:24px}.event-ribbon-text{flex:1;min-width:0}.event-ribbon-name{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:800;overflow:hidden}.event-ribbon-desc{opacity:.9;white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:12px;overflow:hidden}.event-ribbon-meta{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;display:flex}.event-ribbon-pill{border-radius:var(--r-pill);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff38;padding:3px 9px;font-size:11px;font-weight:700}.event-ribbon-cta{color:var(--brand-2);border-radius:var(--r-pill);white-space:nowrap;cursor:pointer;background:#fff;border:0;padding:7px 13px;font-size:12px;font-weight:800;box-shadow:0 2px #00000014}.user-badge{flex-shrink:0;align-items:center;gap:6px;display:flex}.user-badge--google{background:var(--card);border:1px solid var(--line);border-radius:var(--r-pill);box-shadow:var(--shadow-btn);padding:5px 12px 5px 5px}.user-badge--guest{gap:8px}.guest-label{color:var(--ink-3);background:var(--card-2);border:1px solid var(--line-soft);border-radius:var(--r-pill);padding:5px 12px;font-size:12px;font-weight:700}.user-avatar{object-fit:cover;border-radius:50%;width:26px;height:26px}.user-name{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:13px;font-weight:700;overflow:hidden}.app-body{width:100%;max-width:480px;padding:12px;padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right));box-sizing:border-box;flex-direction:column;gap:12px;display:flex}.seasonal-banner{background:linear-gradient(90deg, var(--brand), #f8c060);color:#fff;align-items:center;gap:10px;width:100%;padding:8px 16px;display:flex}.seasonal-emoji{flex-shrink:0;font-size:22px;line-height:1}.seasonal-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.seasonal-name{white-space:nowrap;font-size:13px;font-weight:700}.seasonal-desc{opacity:.9;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.seasonal-meta{flex-shrink:0;align-items:center;gap:5px;display:flex}.seasonal-tag{border-radius:var(--r-pill);white-space:nowrap;background:#ffffff40;padding:2px 7px;font-size:11px;font-weight:700}.seasonal-days{opacity:.85;white-space:nowrap;font-size:11px}.seasonal-quest-btn{border-radius:var(--r-xs);color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff40;border:1px solid #ffffff80;padding:3px 8px;font-size:12px;transition:background .15s}.seasonal-quest-btn:hover{background:#fff6}.event-quest-modal{width:92%;max-width:420px}.event-quest-toast{border-radius:var(--r-sm);color:#7a4f2e;text-align:center;background:#fff8e8;border:1px solid #e8c89a;margin-bottom:10px;padding:8px 12px;font-size:13px}.event-quest-list{flex-direction:column;gap:10px;display:flex}.event-quest-card{background:#fff8f0;border:1px solid #e8c89a;border-radius:10px;padding:10px 12px}.event-quest-card.claimed{opacity:.6;background:#f5f0ea}.event-quest-top{align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.event-quest-icon{flex-shrink:0;font-size:22px}.event-quest-info{flex:1}.event-quest-title{color:#5a3a1a;font-size:14px;font-weight:700;display:block}.event-quest-desc{color:#8b6a50;font-size:12px;display:block}.event-quest-progress-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.event-quest-track{background:#ede0d0;border-radius:4px;flex:1;height:8px;overflow:hidden}.event-quest-fill{background:#f0a030;border-radius:4px;height:100%;transition:width .3s}.event-quest-count{color:#8b6a50;white-space:nowrap;font-size:11px}.event-quest-bottom{justify-content:space-between;align-items:center;display:flex}.event-quest-reward{color:#7a4f2e;font-size:12px}.event-quest-claim-btn{border-radius:var(--r-xs);color:#fff;cursor:pointer;background:#f0a030;border:none;padding:4px 12px;font-size:12px;font-weight:700;transition:background .15s}.event-quest-claim-btn:hover:not(:disabled){background:#d88020}.event-quest-claim-btn:disabled{opacity:.5}.event-quest-claimed-badge{color:#3a8a3a;background:#d8f0d8;border-radius:4px;padding:2px 6px;font-size:11px}.event-quest-empty{color:#a08060;text-align:center;padding:20px 0;font-size:13px}.event-quest-milestone{background:#fff8e8;border:1.5px solid #f0c060;border-radius:10px;align-items:flex-start;gap:10px;margin-top:10px;padding:10px 12px;display:flex}.event-quest-milestone-icon{flex-shrink:0;font-size:22px}.event-quest-milestone-title{color:#5a3a1a;font-size:13px;font-weight:700}.event-quest-milestone-desc{color:#8b6a50;margin-top:3px;font-size:11px}.event-quest-milestone-done{color:#3a8a3a;margin-top:4px;font-size:12px;font-weight:700}.offline-bar{color:#fff;text-align:center;background:#c0392b;width:100%;padding:8px 16px;font-size:13px;font-weight:700}.error-boundary{justify-content:center;align-items:center;height:100svh;padding:20px;display:flex}.error-boundary-card{background:var(--card-bg);border-radius:var(--r-lg);text-align:center;width:100%;max-width:320px;padding:32px 24px;box-shadow:0 4px 20px #0000001a}.error-boundary-emoji{margin-bottom:12px;font-size:48px}.error-boundary-card h2{color:var(--ink);margin-bottom:8px;font-size:18px}.error-boundary-msg{color:var(--ink-2);word-break:break-all;max-height:60px;margin-bottom:20px;font-size:12px;overflow:hidden}.canvas-error{aspect-ratio:480/320;border-radius:var(--r-md);width:100%;color:var(--ink-2);background:#f5e6d3;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.canvas-error-emoji{font-size:32px}.canvas-error-btn{background:var(--brand);color:#fff;border-radius:var(--r-pill);cursor:pointer;border:none;margin-top:4px;padding:5px 14px;font-size:12px}.panel-error{text-align:center;color:var(--ink-2);padding:16px;font-size:13px}.welcome-screen{background:linear-gradient(160deg,#fff5ee 0%,#fff0f5 100%);justify-content:center;align-items:center;min-height:100svh;padding:24px 16px;display:flex}.welcome-inner{text-align:center;width:100%;max-width:340px}.welcome-logo{margin-bottom:12px;font-size:56px;line-height:1}.welcome-title{font-family:var(--font-display);color:var(--brand);margin:0 0 6px;font-size:26px;font-weight:900}.welcome-sub{color:var(--ink-2);margin:0 0 28px;font-size:14px}.welcome-google{justify-content:center;margin-bottom:12px;display:flex}.welcome-divider{color:var(--ink-3);margin-bottom:12px;font-size:12px}.welcome-guest-btn{border:1.5px solid var(--border);background:var(--card);width:100%;color:var(--ink-2);cursor:pointer;border-radius:10px;margin-bottom:16px;padding:12px 0;font-size:14px;font-weight:700;transition:background .15s}.welcome-guest-btn:hover{background:var(--brand-soft);color:var(--brand-2)}.welcome-note{color:var(--ink-3);margin:0;font-size:11px;line-height:1.5}.welcome-error{color:#e05555;background:#fff0f0;border-radius:8px;margin-bottom:12px;padding:8px 12px;font-size:13px}.welcome-loading{color:var(--brand);padding:24px 0;font-size:16px;font-weight:700}.loading{height:100svh;font-size:20px;font-family:var(--font-display);color:var(--brand);justify-content:center;align-items:center;display:flex}.init-error{height:100svh;font-family:var(--font-display);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.init-error-emoji{font-size:52px}.init-error-msg{color:var(--ink-2);margin:0;font-size:16px}.init-error-btn{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:10px;margin-top:4px;padding:10px 28px;font-size:15px;font-weight:700}.canvas-wrapper{border-radius:var(--r-md);background:#f5e6d3;border:2px solid #e8c89a;width:100%;overflow:hidden}.pet-panel-root{flex-direction:column;display:flex}.pet-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:14px 16px}.pet-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.pet-header h3{color:#7a4f2e;margin:0;font-size:16px}.pet-name{cursor:pointer;align-items:center;gap:4px;display:flex}.pet-name:hover .pet-name-edit-icon{opacity:1}.pet-name-edit-icon{opacity:0;font-size:12px;transition:opacity .15s}.pet-bio-display{border-radius:var(--r-xs);border:1.5px dashed var(--line);cursor:pointer;min-height:28px;margin:6px 0 8px;padding:5px 8px;transition:border-color .15s,background .15s}.pet-bio-display:hover{border-color:var(--brand);background:var(--brand-soft)}.pet-bio-text{color:var(--ink-2);white-space:pre-wrap;word-break:break-all;font-size:12px;line-height:1.5}.pet-bio-placeholder{color:var(--ink-mute);font-size:12px}.pet-bio-edit{flex-direction:column;gap:4px;margin:6px 0 8px;display:flex}.pet-bio-input{border-radius:var(--r-xs);width:100%;color:var(--ink);resize:none;box-sizing:border-box;background:#fffdf8;border:1.5px solid #c8a87a;outline:none;padding:5px 8px;font-family:inherit;font-size:12px;line-height:1.5}.pet-bio-input:focus{border-color:var(--brand)}.pet-bio-actions{align-items:center;gap:6px;display:flex}.pet-bio-counter{color:var(--ink-mute);flex:1;font-size:10px}.pet-bio-save{border-radius:var(--r-xs);background:var(--brand);color:#fff;cursor:pointer;border:none;padding:2px 10px;font-size:11px;font-weight:700}.pet-bio-save:hover{background:var(--brand-2)}.pet-bio-cancel{border:1px solid var(--line);border-radius:var(--r-xs);color:var(--ink-3);cursor:pointer;background:0 0;padding:2px 8px;font-size:11px}.visit-pet-bio{color:var(--ink-3);margin:2px 0 4px;font-size:11px;font-style:italic;line-height:1.45}.pet-name-edit{align-items:center;gap:4px;display:flex}.pet-name-input{border-radius:var(--r-xs);color:#5a3a1a;background:#fffdf8;border:1.5px solid #c8a87a;outline:none;width:120px;padding:2px 6px;font-family:inherit;font-size:14px}.pet-name-input:focus{border-color:#e0903a}.pet-name-confirm,.pet-name-cancel{border-radius:var(--r-xs);cursor:pointer;border:none;padding:2px 6px;font-family:inherit;font-size:13px}.pet-name-confirm{color:#fff;background:#6cba5a}.pet-name-cancel{color:#fff;background:#d06060}.badge{border-radius:var(--r-pill);padding:2px 8px;font-size:11px;font-weight:700}.badge-warning{color:#92400e;background:#fde68a}.badge-sad{color:#9d174d;background:#fce7f3}.badge-personality{color:#3730a3;background:#e0e7ff}.badge-stage{color:#065f46;background:#d1fae5}.badge-sick{color:#991b1b;background:#fee2e2}.pet-switcher{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.pet-switcher-tab{font-family:var(--font-display);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--card-2);color:var(--ink-2);cursor:pointer;touch-action:manipulation;padding:4px 10px;font-size:12px;font-weight:700;transition:background .15s}.pet-switcher-tab:hover{background:var(--brand-soft)}.pet-switcher-tab.active{background:var(--brand);border-color:var(--brand-2);color:#fff}.pet-level-row{align-items:center;gap:6px;margin-bottom:10px;display:flex}.pet-level-badge{color:#7a4f2e;white-space:nowrap;min-width:36px;font-size:12px;font-weight:700}.exp-bar-track{background:#e8d8c4;border-radius:4px;flex:1;height:8px;overflow:hidden}.exp-bar-fill{background:linear-gradient(90deg,#a0d060,#70b030);border-radius:4px;height:100%;transition:width .4s}.pet-exp-text{color:#a08060;white-space:nowrap;font-size:11px}.stat-bars{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.stat-bar{grid-template-columns:36px 1fr 28px;align-items:center;gap:8px;display:grid}.stat-label{color:#8b6a50;text-align:right;font-size:12px}.stat-label.urgent{color:#e05555;font-weight:700}.bar-track{border-radius:var(--r-pill);background:#ede0d0;height:10px;overflow:hidden}.bar-fill{border-radius:var(--r-pill);height:100%;transition:width .4s,background .4s}.stat-value{color:#a08060;font-size:11px}.currency-row{color:#a07030;gap:16px;margin-bottom:12px;font-size:14px;font-weight:700;display:flex}.feed-btn{color:#fff;cursor:pointer;touch-action:manipulation;background:#f0a030;border:none;border-radius:10px;width:100%;padding:14px;font-size:16px;font-weight:700;transition:background .2s}.feed-btn:hover:not(:disabled),.feed-btn:active:not(:disabled){background:#d88020}.feed-btn:disabled{cursor:not-allowed;background:#d5c5b0}.interact-row{gap:6px;margin-bottom:6px;display:flex}.interact-btn{border-radius:var(--r-sm);color:#5a3a1a;cursor:pointer;background:#fffdf8;border:1.5px solid #c8a87a;flex:1;min-height:44px;padding:8px 4px;font-family:inherit;font-size:12px;transition:background .15s,border-color .15s}.interact-btn:hover:not(:disabled){background:#f5e6d0}.interact-btn:disabled{opacity:.45;cursor:not-allowed}.interact-play{border-color:#80c060}.interact-play:hover:not(:disabled){background:#eafad8}.interact-groom{border-color:#c080e0}.interact-groom:hover:not(:disabled){background:#f5e0ff}.interact-comfort{border-color:#e08080}.interact-comfort:hover:not(:disabled){background:#ffe8e8}.interact-msg{text-align:center;color:#6a9a50;margin:0 0 6px;font-size:12px;animation:.2s fadeIn}.share-btn{color:#a07030;cursor:pointer;touch-action:manipulation;background:0 0;border:2px solid #e8c89a;border-radius:10px;width:100%;margin-top:8px;padding:11px;font-size:15px;font-weight:700;transition:background .2s}.share-btn:hover,.share-btn:active{background:#fdecd0}.panel-row{gap:8px;margin-top:8px;display:flex}.panel-row .share-btn{flex:1;margin-top:0}.visit-link-btn{color:#a07030;cursor:pointer;touch-action:manipulation;background:0 0;border:2px solid #e8c89a;border-radius:10px;flex:1;padding:11px;font-size:15px;font-weight:700;transition:background .2s}.visit-link-btn:hover,.visit-link-btn:active{background:#fdecd0}.visit-history-btn{border-radius:var(--r-sm);color:#8b6a50;cursor:pointer;touch-action:manipulation;background:0 0;border:1px solid #e8c89a;width:100%;margin-top:8px;padding:10px;font-size:13px;transition:background .2s}.visit-history-btn:hover,.visit-history-btn:active{background:#fdecd0}.visit-modal{max-width:360px}.visit-host-header{align-items:center;gap:10px;margin-bottom:14px;display:flex}.visit-host-avatar{object-fit:cover;border-radius:50%;width:40px;height:40px}.visit-host-name{color:#7a4f2e;font-size:16px;font-weight:700}.visit-self-note{color:#a08060;margin-top:2px;font-size:12px}.visit-pets{flex-direction:column;gap:8px;max-height:40svh;margin-bottom:14px;display:flex;overflow-y:auto}.visit-pet-card{border-radius:var(--r-sm);background:#fdf6ec;border:1px solid #e8c89a;align-items:center;gap:10px;padding:8px 10px;display:flex}.visit-pet-emoji{font-size:26px;line-height:1}.visit-pet-info{flex:1}.visit-pet-name{color:#7a4f2e;align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.visit-rarity-badge{border-radius:var(--r-pill);padding:1px 6px;font-size:10px;font-weight:700}.visit-pet-sub{color:#a08060;margin-top:2px;font-size:11px}.visit-pet-stats{gap:8px;margin-top:3px;display:flex}.visit-stat{color:#8b6a50;font-size:11px}.visit-stat.urgent{color:#e05555;font-weight:700}.visit-empty{text-align:center;color:#a08060;padding:16px 0;font-size:14px}.visit-action{text-align:center;margin-bottom:12px}.visit-error{color:#e05555;margin:4px 0;font-size:13px}.visit-cooldown{color:#a08060;margin-top:4px;font-size:12px}.visit-stroke-btn{border-radius:var(--r-sm);color:#fff;cursor:pointer;background:#9d7ae8;border:none;min-height:36px;padding:8px 14px;font-size:13px;font-weight:700;transition:background .15s}.visit-stroke-btn:disabled{opacity:.5;cursor:not-allowed}.visit-stroke-btn:hover:not(:disabled){background:#7c5cc4}.visit-stroked{color:#7c5cc4;margin:4px 0;font-size:14px;font-weight:700}.visit-encourage-btn{color:#fff;cursor:pointer;background:#e8558a;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;transition:background .15s}.visit-encourage-btn:disabled{opacity:.5;cursor:not-allowed}.visit-encourage-btn:hover:not(:disabled){background:#c93d70}.visit-gift-btn{color:#fff;cursor:pointer;background:#d08030;border:none;border-radius:8px;padding:6px 14px;font-size:13px}.visit-gift-btn:hover{background:#b06010}.visit-gift-menu{flex-direction:column;gap:4px;display:flex}.visit-gift-option{cursor:pointer;text-align:left;background:#fff8ee;border:1.5px solid #e8c870;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.visit-gift-option:hover:not(:disabled){background:#fff0cc}.visit-gift-option:disabled{opacity:.45;cursor:not-allowed}.visit-gift-effect{color:#308040;flex:1;font-weight:700}.visit-gift-cost{color:#6040c0;margin-left:auto;font-size:11px}.visit-gift-cancel{cursor:pointer;color:#806050;background:#f0e8e0;border:1px solid #d0b090;border-radius:6px;padding:4px 10px;font-size:11px}.visit-challenge-btn{color:#fff;cursor:pointer;background:#5060c0;border:none;border-radius:8px;padding:6px 14px;font-size:13px}.visit-challenge-btn:hover:not(:disabled){background:#3040a0}.visit-challenge-btn:disabled{opacity:.5;cursor:not-allowed}.visit-challenge-result{border-radius:8px;padding:6px 12px;font-size:13px;font-weight:700}.visit-challenge-result.won{color:#307030;background:#e8f4e8;border:1.5px solid #70b070}.visit-challenge-result.lost{color:#903030;background:#f4e8e8;border:1.5px solid #c07070}.guestbook{border-top:1px solid #e8d8c4;margin-top:12px;padding-top:12px}.guestbook-title{color:#7a4f2e;margin-bottom:8px;font-size:13px;font-weight:700}.guestbook-input-row{gap:6px;margin-bottom:6px;display:flex}.guestbook-input{border-radius:var(--r-sm);color:#3a2a1a;background:#fffdf8;border:1px solid #d8c8b0;outline:none;flex:1;padding:6px 10px;font-size:13px}.guestbook-input:focus{border-color:#c09060}.guestbook-send-btn{border-radius:var(--r-sm);color:#fff;cursor:pointer;white-space:nowrap;background:#e07830;border:none;min-height:36px;padding:6px 14px;font-size:13px;font-weight:700}.guestbook-send-btn:disabled{opacity:.5;cursor:not-allowed}.guestbook-send-btn:hover:not(:disabled){background:#c96820}.guestbook-error{color:#e05555;margin:2px 0 6px;font-size:12px}.guestbook-empty{color:#a08060;text-align:center;padding:12px 0;font-size:13px}.guestbook-list{flex-direction:column;gap:6px;display:flex}.guestbook-msg{border-radius:var(--r-sm);background:#fffdf8;border:1px solid #e8d8c4;padding:8px 10px}.guestbook-msg-meta{align-items:center;gap:6px;margin-bottom:3px;display:flex}.guestbook-author{color:#7a4f2e;flex:1;font-size:12px;font-weight:700}.guestbook-time{color:#b09070;font-size:11px}.guestbook-delete-btn{color:#c08060;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:11px;line-height:1}.guestbook-delete-btn:hover{color:#e05555}.guestbook-content{color:#3a2a1a;word-break:break-word;margin:0;font-size:13px}.visit-gold-btn{color:#fff;cursor:pointer;touch-action:manipulation;background:#f0a030;border:none;border-radius:10px;width:100%;padding:12px;font-size:15px;font-weight:700;transition:background .2s}.visit-gold-btn:hover:not(:disabled),.visit-gold-btn:active:not(:disabled){background:#d88020}.visit-gold-btn:disabled{cursor:not-allowed;background:#d5c5b0}.visit-action-row{align-items:center;gap:8px;display:flex}.visit-action-row .visit-gold-btn{flex:1}.visit-like-btn{color:#c2185b;border-radius:var(--r-sm);cursor:pointer;touch-action:manipulation;background:#fce4ec;border:none;flex-shrink:0;padding:10px 16px;font-size:14px;font-weight:700}.visit-like-btn:hover:not(:disabled){background:#f48fb1}.visit-like-btn:disabled{opacity:.6;cursor:not-allowed}.visit-liked{color:#c2185b;margin:0;font-size:14px;font-weight:700}.visit-done{color:#4caf50;margin:0;font-size:14px;font-weight:700}.friend-modal{max-width:360px}.friend-title{color:#5a3a1a;margin:0 0 10px;font-size:16px}.friend-add-row{gap:6px;margin-bottom:6px;display:flex}.friend-add-input{border-radius:var(--r-sm);background:#fffbf5;border:1px solid #c8a87a;flex:1;padding:7px 10px;font-size:13px}.friend-add-btn{color:#fff;border-radius:var(--r-sm);cursor:pointer;background:#7ba87b;border:none;padding:7px 14px;font-size:13px}.friend-add-btn:disabled{opacity:.5;cursor:not-allowed}.friend-error{color:#e05555;margin:0 0 6px;font-size:12px}.friend-list{flex-direction:column;gap:6px;max-height:240px;margin:8px 0;display:flex;overflow-y:auto}.friend-row{border-radius:var(--r-sm);background:#fdf6ec;align-items:center;gap:8px;padding:6px 8px;display:flex}.friend-avatar{object-fit:cover;border-radius:50%;width:28px;height:28px}.friend-avatar-anon{font-size:20px}.friend-name{color:#5a3a1a;flex:1;font-size:13px}.friend-actions{gap:4px;display:flex}.friend-visit-btn{color:#fff;border-radius:var(--r-xs);cursor:pointer;background:#f0a030;border:none;padding:4px 10px;font-size:12px}.friend-remove-btn{color:#7a5c3a;border-radius:var(--r-xs);cursor:pointer;background:#f0e0d0;border:none;padding:4px 8px;font-size:12px}.friend-search-input{box-sizing:border-box;border-radius:var(--r-sm);background:#fffbf5;border:1px solid #c8a87a;width:100%;margin-bottom:6px;padding:7px 10px;font-size:13px}.friend-search-results{margin-bottom:4px}.friend-search-label{color:#a08060;margin:0 0 4px;font-size:11px}.friend-search-row{border-radius:var(--r-sm);background:#f0f8f0;align-items:center;gap:8px;margin-bottom:4px;padding:5px 8px;display:flex}.friend-search-divider{border:none;border-top:1px solid #e0d0c0;margin:6px 0}.friend-open-btn{color:#2e7d32;border-radius:var(--r-sm);cursor:pointer;touch-action:manipulation;background:#e8f5e9;border:none;flex:1;padding:8px 4px;font-size:13px;font-weight:700}.friend-open-btn:hover{background:#c8e6c9}.modal-close-btn{color:#fff;cursor:pointer;touch-action:manipulation;background:#f0a030;border:none;border-radius:10px;width:100%;padding:12px;font-size:15px;font-weight:700;transition:background .2s}.modal-close-btn:hover,.modal-close-btn:active{background:#d88020}.visit-history-modal{max-width:340px}.visit-history-summary{color:#8b6a50;margin:4px 0 12px;font-size:14px}.visit-history-list{flex-direction:column;gap:8px;max-height:50svh;margin-bottom:12px;display:flex;overflow-y:auto}.visit-history-item{border-radius:var(--r-sm);background:#fdf6ec;border:1px solid #e8c89a;align-items:center;gap:10px;padding:8px 10px;display:flex}.visit-history-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:32px;height:32px}.visit-history-anon{flex-shrink:0;font-size:20px}.visit-history-info{flex-direction:column;flex:1;gap:2px;display:flex}.visit-history-name{color:#7a4f2e;font-size:13px;font-weight:700}.visit-history-time{color:#a08060;font-size:11px}.visit-history-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.visit-history-gold{color:#a07030;font-size:13px;font-weight:700}.visit-reply-btn{color:#7a4f2e;cursor:pointer;background:#fff8ee;border:1px solid #c0956a;border-radius:6px;padding:3px 8px;font-size:12px}.visit-reply-btn:disabled{opacity:.5;cursor:not-allowed}.visit-reply-btn:hover:not(:disabled){background:#fde9cc}.visit-replied-badge{color:#a08060;font-size:11px}.visit-reply-msg{text-align:center;color:#5a7a50;margin:4px 0;font-size:13px}.feed-btn .cost{opacity:.85;margin-left:6px;font-size:13px}.modal-overlay,.modal-backdrop{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:16px;animation:.2s backdropFadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);text-align:center;width:100%;max-width:320px;box-shadow:var(--shadow-card);padding:28px 32px;animation:.22s modalSlideIn}.modal h2{color:var(--ink);font-size:20px;font-family:var(--font-display);margin:0 0 8px;font-weight:800}.modal p{color:var(--ink-2);margin:4px 0;font-size:15px}.modal .income{color:var(--brand);margin:16px 0;font-size:32px;font-weight:700}.modal button{color:#fff;cursor:pointer;touch-action:manipulation;background:#f0a030;border:none;border-radius:10px;width:100%;margin-top:8px;padding:14px;font-size:16px;font-weight:700;transition:background .2s}.modal button:hover,.modal button:active{background:#d88020}.shop-btn{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink-2);font-size:14px;font-weight:700;font-family:var(--font-display);cursor:pointer;touch-action:manipulation;box-shadow:var(--shadow-btn);flex:1;padding:12px 16px;transition:background .15s,transform .12s}.shop-btn:hover,.shop-btn:active{background:var(--brand-soft);transform:translateY(-1px)}.shop-modal{max-width:360px;max-height:80svh;padding:20px;overflow-y:auto}.shop-catalog{flex-direction:column;gap:10px;margin:12px 0;display:flex}.shop-item{border-radius:var(--r-sm);background:#fdf6ec;border:1px solid #e8c89a;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.shop-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.shop-item-name{color:#7a4f2e;font-size:14px;font-weight:700}.shop-item-desc{color:#a08060;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.shop-item-action{flex-direction:column;flex-shrink:0;align-items:center;gap:4px;display:flex}.shop-item-price{color:#a07030;font-size:12px;font-weight:700}.shop-item-owned{color:#70b070;font-size:12px;font-weight:700}.shop-item-btn{border-radius:var(--r-xs);color:#fff;cursor:pointer;touch-action:manipulation;background:#f0a030;border:none;padding:5px 12px;font-size:13px;font-weight:700;transition:background .2s}.shop-item-btn:hover:not(:disabled),.shop-item-btn:active:not(:disabled){background:#d88020}.shop-item-btn:disabled{cursor:not-allowed;background:#d5c5b0}.shop-close-btn{color:#fff;cursor:pointer;touch-action:manipulation;background:#f0a030;border:none;border-radius:10px;width:100%;margin-top:4px;padding:12px;font-size:15px;font-weight:700;transition:background .2s}.shop-close-btn:hover,.shop-close-btn:active{background:#d88020}.collection-modal{max-width:400px}.collection-progress{color:#8b6a50;margin:4px 0 12px;font-size:14px}.collection-milestones{margin:4px 0 20px;padding-bottom:18px;position:relative}.cm-track{background:#e8d8c4;border-radius:4px;height:8px;margin:0 12px;position:relative}.cm-fill{background:#e07830;border-radius:4px;height:100%;transition:width .4s;position:absolute;top:0;left:0}.cm-node{cursor:default;color:#a08060;background:#fffdf8;border:2px solid #c8a888;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:9px;font-weight:700;transition:background .2s,border-color .2s,box-shadow .2s;display:flex;position:absolute;top:50%;transform:translate(-50%,-50%)}.cm-node.claimable{color:#e07830;cursor:pointer;background:#fff3c8;border-color:#e07830;animation:1.2s ease-in-out infinite cm-pulse}.cm-node.claimed{color:#40904a;cursor:default;background:#e8f8e8;border-color:#60b060}.cm-node:disabled{cursor:not-allowed;opacity:.6}@keyframes cm-pulse{0%,to{box-shadow:0 0 #e0783066}50%{box-shadow:0 0 0 5px #e0783000}}.cm-labels{height:16px;margin:4px 12px 0;position:relative}.cm-label{color:#a08060;white-space:nowrap;font-size:10px;position:absolute;transform:translate(-50%)}.collection-grid{grid-template-columns:repeat(3,1fr);gap:8px;max-height:55svh;margin-bottom:12px;display:grid;overflow-y:auto}.collection-card{text-align:center;background:#fdf6ec;border:2px solid #0000;border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;transition:border-color .2s;display:flex}.collection-card.locked{opacity:.45;filter:grayscale(.6)}.collection-card.rarity-common{border-color:#d0ccc0}.collection-card.rarity-uncommon{border-color:#70c080}.collection-card.rarity-rare{border-color:#60a0e0}.collection-card.rarity-epic{background:#faf5ff;border-color:#b070e0}.collection-emoji{font-size:28px;line-height:1}.collection-name{color:#7a4f2e;font-size:12px;font-weight:700}.collection-rarity{border-radius:var(--r-pill);padding:1px 6px;font-size:10px;font-weight:700}.rarity-badge-common{color:#6b5a45;background:#e8e4dc}.rarity-badge-uncommon{color:#2d6e3a;background:#d4f0d8}.rarity-badge-rare{color:#1a5a8a;background:#d0e8f8}.rarity-badge-epic{color:#6a30a0;background:#ead8f8}.collection-desc{color:#a08060;margin-top:2px;font-size:10px;line-height:1.3}.collection-card.expanded{text-align:left;grid-column:span 2;align-items:flex-start}.collection-lore{color:#5a4a7a;border-left:2px solid #c8b4e8;margin-top:6px;padding-left:8px;font-size:11px;font-style:italic;line-height:1.5}.collection-hint{color:#508040;background:#f0ffe8;border-radius:6px;margin-top:4px;padding:4px 6px;font-size:11px}.event-modal{text-align:center;max-width:320px}.event-emoji{margin-bottom:4px;font-size:48px;line-height:1}.event-desc{color:#6b5040;margin:8px 0 4px;font-size:15px;line-height:1.5}.event-reward{color:#f0a030;margin:12px 0;font-size:28px;font-weight:700}.event-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.event-decline-btn{color:#a08060;cursor:pointer;touch-action:manipulation;background:0 0;border:2px solid #e8c89a;border-radius:10px;width:100%;padding:11px;font-size:15px;font-weight:700;transition:background .2s}.event-decline-btn:hover,.event-decline-btn:active{background:#fdecd0}.merchant-item-name{color:#7a4f2e;margin:6px 0 4px;font-size:16px;font-weight:700}.original-price{color:#c0a080;font-size:14px}.discount-price{color:#e05020;font-size:18px}.gacha-open-btn{color:#fff;cursor:pointer;touch-action:manipulation;background:linear-gradient(135deg,#b060e0,#7030c0);border:none;border-radius:10px;flex:1;padding:10px;font-size:14px;font-weight:700;transition:opacity .2s}.gacha-open-btn:hover,.gacha-open-btn:active{opacity:.85}.visit-history-btn--inline{flex:1;width:auto;margin-top:0}.gacha-modal{text-align:left;max-width:400px;max-height:88svh;padding:20px;overflow-y:auto}.gacha-tabs{gap:4px;margin-bottom:14px;display:flex}.gacha-tab{border-radius:var(--r-sm);color:#a08060;cursor:pointer;touch-action:manipulation;background:0 0;border:2px solid #e8c89a;flex:1;padding:8px;font-size:14px;font-weight:700;transition:background .2s,color .2s}.gacha-tab.active{color:#fff;background:#f0a030;border-color:#f0a030}.gacha-pull-panel{flex-direction:column;gap:12px;display:flex}.gacha-gem-row{text-align:center}.gacha-gem-count{color:#7030c0;font-size:20px;font-weight:700}.gacha-results{border-radius:var(--r-sm);background:#fdf6ec;border:1px solid #e8c89a;flex-direction:column;gap:6px;max-height:220px;padding:8px;display:flex;overflow-y:auto}.gacha-result-item{border-radius:var(--r-xs);border-left:4px solid #d0ccc0;align-items:center;gap:10px;padding:6px 10px;display:flex}.gacha-result-icon{flex-shrink:0;font-size:20px;line-height:1}.gacha-result-name{color:#7a4f2e;flex:1;font-size:14px;font-weight:700}.gacha-pull-btns{gap:8px;display:flex}.gacha-pull-btn{color:#fff;cursor:pointer;touch-action:manipulation;background:linear-gradient(135deg,#b060e0,#7030c0);border:none;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:14px 10px;font-size:15px;font-weight:700;transition:opacity .2s;display:flex}.gacha-pull-btn:hover:not(:disabled),.gacha-pull-btn:active:not(:disabled){opacity:.85}.gacha-pull-btn:disabled{cursor:not-allowed;background:#d5c5b0}.gacha-pull-btn--ten{background:linear-gradient(135deg,#e08040,#c05020)}.gacha-pull-btn--ten:hover:not(:disabled),.gacha-pull-btn--ten:active:not(:disabled){opacity:.85}.gacha-pull-cost{opacity:.9;font-size:12px}.gacha-rates{text-align:center;color:#a08060;margin:0;font-size:12px}.gacha-seasonal-section{border-top:1px dashed #d4a96a;margin-top:12px;padding-top:8px}.gacha-seasonal-title{color:#c47b20;text-align:center;margin-bottom:6px;font-size:12px;font-weight:700}.gacha-seasonal-list{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.gacha-seasonal-item{border-radius:var(--r-md);border:1px solid #d4a96a;align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:flex}.gacha-seasonal-item.available{background:#fff8e8}.gacha-seasonal-item.unavailable{opacity:.6;background:#f0f0f0}.badge-limited{color:#fff;border-radius:var(--r-sm);background:#f59e0b;padding:1px 5px;font-size:10px}.badge-limited-off{color:#fff;border-radius:var(--r-sm);background:#9ca3af;padding:1px 5px;font-size:10px}.gacha-inventory{padding-top:4px}.cosmetic-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.cosmetic-card{text-align:center;background:#fdf6ec;border:2px solid #d0ccc0;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;display:flex}.cosmetic-card.equipped{background:#fff8e8;border-color:#f0a030}.cosmetic-icon{font-size:26px;line-height:1}.cosmetic-emoji{font-size:26px}.cosmetic-theme-swatch{border:2px solid #0000001a;border-radius:50%;width:28px;height:28px;display:inline-block}.cosmetic-theme-swatch.small{width:20px;height:20px}.cosmetic-name{color:#7a4f2e;font-size:11px;font-weight:700;line-height:1.2}.cosmetic-rarity{border-radius:var(--r-pill);padding:1px 6px;font-size:10px;font-weight:700}.cosmetic-equip-btn{border-radius:var(--r-xs);color:#fff;cursor:pointer;touch-action:manipulation;background:#f0a030;border:none;width:100%;margin-top:2px;padding:4px;font-size:12px;font-weight:700;transition:background .2s}.cosmetic-equip-btn:hover,.cosmetic-equip-btn:active{background:#d88020}.cosmetic-equip-btn.unequip{background:#a08060}.cosmetic-equip-btn.unequip:hover,.cosmetic-equip-btn.unequip:active{background:#806040}.achievement-toast{z-index:200;pointer-events:none;flex-direction:column;gap:6px;width:90%;max-width:360px;display:flex;position:fixed;top:60px;left:50%;transform:translate(-50%)}.achievement-toast-item{color:#fff;background:#2d1a4a;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;animation:.3s toastIn;display:flex;box-shadow:0 4px 16px #0000004d}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.achievement-toast-icon{flex-shrink:0;font-size:18px}.achievement-toast-text{flex:1}.achievement-open-btn{color:#fff;cursor:pointer;touch-action:manipulation;background:linear-gradient(135deg,#f0a030,#c07010);border:none;border-radius:10px;flex:1;padding:10px;font-size:14px;font-weight:700;transition:opacity .2s}.achievement-open-btn:hover,.achievement-open-btn:active{opacity:.85}.quest-open-btn{color:#fff;border-radius:var(--r-sm);cursor:pointer;background:#5ba87c;border:none;flex:1;padding:7px 10px;font-family:inherit;font-size:13px;transition:opacity .15s}.quest-open-btn:hover{opacity:.85}.quest-modal{max-width:360px}.quest-title{color:#5a3a1a;text-align:center;margin:0 0 4px;font-size:17px}.quest-subtitle{text-align:center;color:#a08060;margin:0 0 12px;font-size:12px}.quest-list{flex-direction:column;gap:8px;display:flex}.quest-row{background:#fffdf8;border:1px solid #e8d8c4;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:flex}.quest-row.quest-done{background:#f0fce8;border-color:#80c070}.quest-row.quest-claimed{opacity:.55}.quest-icon{text-align:center;min-width:28px;font-size:22px}.quest-info{flex:1}.quest-name{color:#5a3a1a;font-size:13px;font-weight:700}.quest-desc{color:#a08060;margin-bottom:4px;font-size:11px}.quest-progress-bar{background:#e8d8c4;border-radius:3px;height:6px;margin-bottom:2px;overflow:hidden}.quest-progress-fill{background:#70b840;border-radius:3px;height:100%;transition:width .3s}.quest-progress-text{color:#a08060;font-size:10px}.quest-right{flex-direction:column;align-items:flex-end;gap:4px;min-width:54px;display:flex}.quest-reward{color:#8060a0;white-space:nowrap;font-size:11px}.quest-claim-btn{color:#fff;border-radius:var(--r-xs);cursor:pointer;background:#70b840;border:none;padding:3px 10px;font-family:inherit;font-size:12px}.quest-claim-btn:hover{opacity:.85}.quest-claimed-badge{color:#90a880;font-size:11px}.leaderboard-open-btn{color:#fff;border-radius:var(--r-sm);cursor:pointer;background:#7c5cbf;border:none;flex:1;padding:7px 10px;font-family:inherit;font-size:13px;transition:opacity .15s}.leaderboard-open-btn:hover{opacity:.85}.leaderboard-modal{max-width:360px}.leaderboard-title{color:#5a3a1a;text-align:center;margin:0 0 8px;font-size:17px}.leaderboard-subtitle{text-align:center;color:#a08060;margin:0 0 10px;font-size:12px}.lb-tabs{gap:6px;margin-bottom:10px;display:flex}.lb-tab{border-radius:var(--r-sm);color:#8b6a50;cursor:pointer;background:#fff8f0;border:1px solid #d8c8b0;flex:1;padding:6px 0;font-size:13px;transition:background .15s}.lb-tab.active{color:#fff;background:#e07830;border-color:#e07830;font-weight:700}.leaderboard-list{flex-direction:column;gap:6px;max-height:300px;display:flex;overflow-y:auto}.lb-self-rank{margin-top:4px}.lb-self-rank-sep{border:none;border-top:1px dashed #d8c8b0;margin:6px 0}.lb-self-rank-row{border-radius:var(--r-sm);background:#fff8e8;border:1px solid #e0a030;align-items:center;gap:8px;padding:7px 10px;display:flex}.lb-self-rank-badge{color:#c07820;min-width:40px;font-size:15px;font-weight:700}.lb-self-rank-you{color:#5a3a1a;flex:1;font-size:13px;font-weight:700}.lb-self-rank-score{color:#a08060;font-size:12px}.leaderboard-row{border-radius:var(--r-sm);background:#fffdf8;border:1px solid #e8d8c4;align-items:center;gap:8px;padding:7px 10px;display:flex}.leaderboard-self{background:#fff8e8;border-color:#e0a030}.lb-rank{text-align:center;min-width:28px;font-size:16px}.lb-avatar{object-fit:cover;border-radius:50%;width:28px;height:28px}.lb-info{flex-direction:column;flex:1;gap:1px;display:flex}.lb-name{color:#5a3a1a;font-size:13px;font-weight:700}.lb-you{color:#e0a030;font-weight:400}.lb-stats{color:#a08060;font-size:11px}.lb-visit-btn{color:#fff;border-radius:var(--r-xs);cursor:pointer;background:#e0903a;border:none;padding:3px 8px;font-family:inherit;font-size:12px}.lb-visit-btn:hover{opacity:.85}.display-name-row{align-items:center;gap:4px;margin-top:6px;display:flex}.display-name-edit-btn{background:var(--card-2);border:1px dashed var(--line);border-radius:var(--r-md);color:var(--ink-2);cursor:pointer;text-align:left;font-size:13px;font-weight:600;font-family:var(--font-body);flex:1;padding:7px 12px}.display-name-edit-btn:hover{background:var(--brand-soft)}.display-name-input{border:1px solid var(--line);border-radius:var(--r-md);font-size:13px;font-family:var(--font-body);background:var(--bg-soft);color:var(--ink);outline:none;flex:1;padding:7px 10px}.display-name-input:focus{border-color:var(--brand)}.cure-btn{color:#991b1b;cursor:pointer;touch-action:manipulation;background:#fee2e2;border:2px solid #fca5a5;border-radius:10px;width:100%;margin-bottom:6px;padding:12px;font-size:15px;font-weight:700;transition:background .2s}.cure-btn:hover:not(:disabled),.cure-btn:active:not(:disabled){background:#fecaca}.cure-btn:disabled{opacity:.5;cursor:not-allowed}.mute-btn{background:var(--card-2);border:1px solid var(--line-soft);border-radius:var(--r-md);color:var(--ink-2);cursor:pointer;padding:6px 12px;font-size:16px;transition:background .15s}.mute-btn:hover{background:var(--brand-soft)}.bgm-btn{padding:6px 10px;font-size:14px}.bgm-off{opacity:.45;filter:grayscale()}.bgm-on{opacity:1}.push-enable-btn{background:var(--blue);color:#fff;border-radius:var(--r-md);width:100%;font-family:var(--font-display);cursor:pointer;border:none;padding:8px 12px;font-size:13px;font-weight:700;transition:opacity .15s}.push-enable-btn:hover{opacity:.85}.push-enabled-note{text-align:center;color:#80a060;margin:6px 0 0;font-size:12px}.achievement-modal{text-align:left;max-width:400px;max-height:88svh;padding:20px;overflow-y:auto}.achievement-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.achievement-title{color:#7a4f2e;font-size:17px;font-weight:700}.achievement-progress{color:#a08060;font-size:13px;font-weight:700}.achievement-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px;display:grid}.achievement-card{text-align:center;background:#fdf6ec;border:2px solid #e8c89a;border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;display:flex;position:relative}.achievement-card.unlocked{background:#fff8e8;border-color:#f0a030}.achievement-card.locked{opacity:.45;filter:grayscale(.5)}.achievement-icon{font-size:28px;line-height:1}.achievement-card-title{color:#7a4f2e;font-size:13px;font-weight:700}.achievement-card-desc{color:#a08060;font-size:11px;line-height:1.3}.achievement-card-reward{color:#7030c0;margin-top:2px;font-size:12px;font-weight:700}.achievement-card-date{color:#a08060;font-size:10px}.achievement-check{color:#50a050;font-size:12px;font-weight:700;position:absolute;top:5px;right:7px}.daily-modal{text-align:left;max-width:360px;padding:24px 20px}.daily-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.daily-title{color:#7a4f2e;font-size:17px;font-weight:700}.daily-streak{color:#e07020;font-size:14px;font-weight:700}.daily-grid{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:16px;display:grid}.daily-day{border-radius:var(--r-sm);opacity:.55;background:#f5ede0;border:2px solid #0000;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;display:flex;position:relative}.daily-day.past{opacity:.7;background:#e8f5e8;border-color:#90c090}.daily-day.today{opacity:1;background:#fff3e0;border-color:#f0a030;box-shadow:0 0 0 2px #f0a03040}.daily-day.special.today{background:#faf0ff;border-color:#b060e0}.daily-day-label{color:#a08060;font-size:9px;font-weight:700}.daily-day-gem{color:#7030c0;font-size:10px;font-weight:700}.daily-day-gold{color:#a07030;font-size:9px}.daily-day-check{color:#50a050;font-size:9px;font-weight:700;position:absolute;top:2px;right:3px}.daily-action{flex-direction:column;gap:10px;display:flex}.daily-today-reward{text-align:center;color:#7a4f2e;font-size:15px;font-weight:700}.daily-claim-btn{color:#fff;cursor:pointer;touch-action:manipulation;background:linear-gradient(135deg,#f0a030,#d07010);border:none;border-radius:10px;width:100%;padding:14px;font-size:16px;font-weight:700;transition:opacity .2s}.daily-claim-btn:hover:not(:disabled),.daily-claim-btn:active:not(:disabled){opacity:.85}.daily-claim-btn:disabled{cursor:not-allowed;background:#d5c5b0}.daily-done{text-align:center;color:#8b6a50;font-size:14px}.daily-claimed{flex-direction:column;align-items:center;gap:10px;display:flex}.daily-claimed-title{color:#50a050;font-size:18px;font-weight:700}.daily-claimed-reward{color:#f0a030;font-size:24px;font-weight:700}.daily-milestone-reward{color:#e07830;font-size:14px;font-weight:700}.rarity-card-common{border-color:#d0ccc0}.rarity-card-uncommon{border-color:#70c080}.rarity-card-rare{border-color:#60a0e0}.rarity-card-epic{background:#faf5ff;border-color:#b070e0}.skill-unlock-toast{color:#78350f;background:linear-gradient(135deg,#fef9c3,#fde68a);border:2px solid #f59e0b;border-radius:10px;flex-direction:column;gap:2px;margin-bottom:6px;padding:10px 14px;font-size:14px;font-weight:700;animation:.3s toastIn;display:flex}.skill-unlock-desc{color:#92400e;font-size:11px;font-weight:400}.badge-rebirth{color:#3b1d8e;background:linear-gradient(90deg,#fde68a,#a78bfa)}.rebirth-btn{color:#4c1d95;cursor:pointer;background:linear-gradient(135deg,#ede9fe,#ddd6fe);border:2px dashed #a78bfa;border-radius:10px;width:100%;margin:6px 0;padding:10px;font-size:14px;font-weight:700;transition:background .15s}.rebirth-btn:hover{background:linear-gradient(135deg,#ddd6fe,#c4b5fd)}.rebirth-hint{opacity:.75;font-size:11px;font-weight:400}.awaken-btn{color:#78350f;cursor:pointer;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px dashed #f59e0b;border-radius:10px;width:100%;margin:6px 0;padding:10px;font-size:14px;font-weight:700;transition:background .15s}.awaken-btn:hover{background:linear-gradient(135deg,#fde68a,#fcd34d)}.awaken-badge{color:#713f12;text-align:center;background:linear-gradient(135deg,#fef9c3,#fef08a);border:1px solid #f59e0b;border-radius:10px;margin:6px 0;padding:8px 12px;font-size:13px;font-weight:700}.awaken-toast{color:#92400e;text-align:center;background:#fef3c7;border-radius:8px;margin:6px 0;padding:8px 12px;font-size:13px;animation:4s forwards fadeInOut}.story-modal{background:var(--surface);border-radius:16px;flex-direction:column;gap:14px;width:90%;max-width:360px;padding:20px;display:flex;box-shadow:0 8px 32px #0000004d}.story-modal-header{color:var(--ink);text-align:center;font-size:16px;font-weight:700}.story-prompt{color:var(--ink);text-align:center;margin:0;font-size:14px;line-height:1.6}.story-choices{flex-direction:column;gap:8px;display:flex}.story-choice-btn{border:2px solid var(--border);background:var(--surface-alt);color:var(--ink);cursor:pointer;text-align:left;border-radius:10px;padding:10px 14px;font-size:14px;transition:background .15s,border-color .15s}.story-choice-btn:hover:not(:disabled){background:var(--primary-light);border-color:var(--primary)}.story-choice-btn:disabled{opacity:.6;cursor:not-allowed}.story-result{flex-direction:column;align-items:center;gap:12px;display:flex}.story-result-desc{color:var(--ink);text-align:center;margin:0;font-size:14px;line-height:1.6}.story-result-rewards{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.story-reward-pos{color:#166534;background:#dcfce7;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.story-reward-neg{color:#991b1b;background:#fee2e2;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.story-close-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 24px;font-size:14px}.story-error{color:#dc2626;text-align:center;margin:0;font-size:13px}.rebirth-confirm{background:#f5f3ff;border:2px solid #a78bfa;border-radius:10px;margin:6px 0;padding:12px 14px}.rebirth-confirm-text{color:#4c1d95;margin:0 0 10px;font-size:12px;line-height:1.5}.rebirth-confirm-btns{gap:8px;display:flex}.rebirth-yes-btn{border-radius:var(--r-sm);color:#fff;cursor:pointer;background:#7c3aed;border:none;flex:1;padding:8px;font-size:13px;font-weight:700}.rebirth-yes-btn:hover{background:#6d28d9}.rebirth-no-btn{border-radius:var(--r-sm);color:#6d28d9;cursor:pointer;background:#fff;border:1px solid #c4b5fd;flex:1;padding:8px;font-size:13px}.rebirth-toast{color:#3b0764;background:linear-gradient(135deg,#ede9fe,#c4b5fd);border:2px solid #7c3aed;border-radius:10px;flex-direction:column;gap:2px;margin-bottom:6px;padding:10px 14px;font-size:14px;font-weight:700;animation:.3s toastIn;display:flex}.rebirth-toast-sub{color:#5b21b6;font-size:11px;font-weight:400}.skill-list{background:#fffdf8;border:1px solid #e8d8c4;border-radius:10px;margin-bottom:6px;padding:10px 12px}.skill-list-title{color:#a08060;margin-bottom:8px;font-size:12px;font-weight:700}.skill-row{border-top:1px solid #f0e8d8;align-items:center;gap:8px;padding:5px 0;display:flex}.skill-row:first-of-type{border-top:none}.skill-emoji{flex-shrink:0;font-size:18px}.skill-info{flex-direction:column;gap:1px;display:flex}.skill-name{color:#5a3a1a;font-size:13px;font-weight:700}.skill-desc{color:#a08060;font-size:11px}.diary-modal{flex-direction:column;width:90%;max-width:440px;max-height:82vh;display:flex}.diary-modal-heading{color:#5a3a1a;text-align:center;flex-shrink:0;margin:0 0 10px;font-size:17px}.diary-empty{text-align:center;color:#8b6a50;padding:24px 0;font-size:14px}.diary-sparkline-wrap{background:#fdf5e8;border:1px solid #ede0c8;border-radius:10px;flex-shrink:0;margin:0 0 12px;padding:8px 10px 6px}.diary-sparkline-labels{color:#a08060;justify-content:space-between;margin-bottom:4px;font-size:11px;display:flex}.diary-list{flex-direction:column;flex:1;gap:14px;margin-bottom:12px;padding-right:2px;display:flex;overflow-y:auto}.diary-date-group{flex-direction:column;gap:6px;display:flex}.diary-date-heading{color:#a08060;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #f0e4cc;padding:2px 0;font-size:11px;font-weight:700}.diary-entry{background:#fdf8f0;border-left:3px solid #e8c870;border-radius:0 8px 8px 0;padding:8px 10px;transition:border-left-color .2s}.diary-entry-header{align-items:center;gap:6px;margin-bottom:5px;display:flex}.diary-trigger-icon{flex-shrink:0;font-size:15px}.diary-trigger-badge{border-radius:10px;padding:1px 6px;font-size:11px;font-weight:700}.diary-mood-label{margin-left:auto;font-size:11px;font-weight:500}.diary-mood-value{color:#b09070;text-align:right;flex-shrink:0;min-width:20px;font-size:11px}.diary-content{color:#5a3a1a;margin:0;font-size:13px;line-height:1.6}.weekly-modal{width:90%;max-width:420px}.weekly-modal-heading{color:#5a3a1a;text-align:center;margin:0 0 4px;font-size:18px}.weekly-week-label{text-align:center;color:#a08060;margin-bottom:14px;font-size:12px}.weekly-quest-list{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.weekly-quest-card{background:#fdf8f0;border:1px solid #e0cca8;border-radius:10px;padding:10px 12px}.weekly-quest-card.completed{background:#fff8e8;border-color:#c8a870}.weekly-quest-card.claimed{opacity:.65}.wq-top{align-items:center;gap:10px;margin-bottom:8px;display:flex}.wq-icon{flex-shrink:0;font-size:22px}.wq-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.wq-title{color:#5a3a1a;font-size:13px;font-weight:700}.wq-desc{color:#a08060;font-size:11px}.wq-reward{color:#8b6a30;white-space:nowrap;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;display:flex}.wq-progress-row{align-items:center;gap:8px;display:flex}.wq-bar-wrap{background:#ead8b8;border-radius:4px;flex:1;height:7px;overflow:hidden}.wq-bar-fill{background:linear-gradient(90deg,#e8a020,#c87820);border-radius:4px;height:100%;transition:width .3s}.wq-progress-text{color:#a08060;white-space:nowrap;font-size:11px}.wq-claim-btn{color:#fff;border-radius:var(--r-xs);cursor:pointer;background:linear-gradient(135deg,#e8a020,#c87820);border:none;width:100%;margin-top:8px;padding:6px;font-size:13px;font-weight:700;transition:opacity .15s;display:block}.wq-claim-btn:disabled{opacity:.6;cursor:default}.wq-claim-btn:not(:disabled):hover{opacity:.9}.wq-claimed-badge{text-align:center;color:#8b6a50;margin-top:6px;font-size:12px}.world-event-card{background:linear-gradient(135deg,#e8f4ff 0%,#f8eeff 100%);border:1.5px solid #90b8e8;border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.world-event-header{align-items:flex-start;gap:8px;display:flex}.world-event-icon{flex-shrink:0;font-size:22px}.world-event-info{flex-direction:column;flex:1;gap:2px;display:flex}.world-event-title{color:#3050a0;font-size:13px;font-weight:700}.world-event-desc{color:#666;font-size:11px}.world-event-reward{color:#a06000;white-space:nowrap;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;font-weight:700;display:flex}.world-event-fill{background:linear-gradient(90deg,#4080d0,#8060d0)!important}.world-event-global{text-align:center;color:#7090c0;font-size:11px;font-style:italic}.onboarding-overlay{background:#000000a6}.onboarding-modal{text-align:center;width:88%;max-width:360px;padding:28px 24px 20px}.onboarding-step-indicator{justify-content:center;gap:7px;margin-bottom:20px;display:flex}.onboarding-dot{background:#d8c8a8;border-radius:50%;width:8px;height:8px;transition:background .2s,transform .2s}.onboarding-dot.done{cursor:pointer;background:#c8a870}.onboarding-dot.active{background:#e8a020;transform:scale(1.25)}.onboarding-body{flex-direction:column;align-items:center;gap:10px;min-height:160px;display:flex}.onboarding-emoji{margin-bottom:2px;font-size:48px;line-height:1}.onboarding-title{color:#5a3a1a;margin:0;font-size:18px}.onboarding-desc{color:#8b6a50;max-width:280px;margin:0;font-size:13px;line-height:1.55}.onboarding-name-wrap{width:100%;max-width:240px;margin-top:4px}.onboarding-name-input{border-radius:var(--r-sm);color:#5a3a1a;text-align:center;box-sizing:border-box;background:#fdf8f0;border:1.5px solid #c8a870;outline:none;width:100%;padding:8px 12px;font-size:14px}.onboarding-name-input:focus{border-color:#e8a020}.onboarding-actions{justify-content:center;align-items:center;gap:12px;margin-top:20px;display:flex}.onboarding-skip-btn{color:#a08060;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:13px;text-decoration:underline}.onboarding-next-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#e8a020,#c87820);border:none;border-radius:20px;padding:9px 24px;font-size:14px;font-weight:700;transition:opacity .15s}.onboarding-next-btn:disabled{opacity:.6;cursor:default}.onboarding-next-btn:not(:disabled):hover{opacity:.9}.title-modal{width:90%;max-width:420px}.title-modal-heading{color:#5a3a1a;text-align:center;margin:0 0 12px;font-size:18px}.title-new-banner{border-radius:var(--r-sm);color:#7a5800;text-align:center;background:linear-gradient(135deg,#fff3cd,#ffe69c);border:1px solid #ffc107;margin-bottom:12px;padding:8px 12px;font-size:13px}.title-section{margin-bottom:14px}.title-section-label{color:#a08060;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:11px;font-weight:700}.title-list{flex-direction:column;gap:6px;display:flex}.title-card{border-radius:var(--r-sm);cursor:pointer;background:#fdf8f0;border:1px solid #e8d8c0;align-items:center;gap:10px;padding:8px 10px;transition:background .15s,border-color .15s;display:flex}.title-card.unlocked:hover{background:#f5ead8;border-color:#c8a870}.title-card.equipped{background:#fff3dc;border-color:#e8a020}.title-card.locked{opacity:.55;cursor:default}.title-emoji{text-align:center;flex-shrink:0;min-width:28px;font-size:22px}.locked-icon{color:#c0a888;font-size:18px}.title-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.title-name{color:#5a3a1a;font-size:13px;font-weight:700}.locked-name{color:#a08060}.title-desc{color:#a08060;font-size:11px}.title-equip-badge{color:#8b6a30;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:700}.title-card.equipped .title-equip-badge{color:#d48000}.equipped-title-badge{color:#8b6a30;background:#fff3dc;border:1px solid #e8c870;border-radius:10px;align-items:center;gap:4px;margin-top:2px;margin-bottom:2px;padding:2px 8px;font-size:12px;display:inline-flex}.title-open-btn{border-radius:var(--r-xs);color:#7a5830;cursor:pointer;background:#f5e8c8;border:1px solid #c8a870;padding:4px 10px;font-size:13px;transition:background .15s}.title-open-btn:hover{background:#ead8a8}.battle-modal{width:92%;max-width:380px}.battle-challenge-area{text-align:center;padding:8px 0}.battle-vs-text{color:#5a3a1a;margin:0 0 6px;font-size:16px}.battle-reward-hint{color:#d08020;margin:0 0 10px;font-size:14px;font-weight:700}.battle-hint{color:#8b6a50;margin:0 0 14px;font-size:12px}.battle-error{color:#e05555;margin:0 0 10px;font-size:13px}.battle-items{text-align:left;margin:0 0 12px}.battle-items-title{color:#8b6a50;margin-bottom:6px;font-size:12px;font-weight:700}.battle-item-active{color:#5a3a8a;background:#f0eaff;border-radius:6px;padding:6px 10px;font-size:13px}.battle-item-btn{text-align:left;cursor:pointer;color:#5a3a1a;background:#fff8ee;border:1px solid #d0a060;border-radius:6px;width:100%;margin-bottom:4px;padding:5px 10px;font-size:13px;display:block}.battle-item-btn:hover:not(:disabled){background:#fed}.battle-item-btn:disabled{opacity:.5}.battle-item-desc{color:#8b6050;font-size:12px}.battle-start-btn{border-radius:var(--r-sm);color:#fff;cursor:pointer;background:#e04040;border:none;padding:10px 28px;font-size:15px;font-weight:700;transition:background .15s}.battle-start-btn:hover:not(:disabled){background:#c02020}.battle-start-btn:disabled{opacity:.5}.battle-result{flex-direction:column;align-items:center;gap:10px;padding:10px 0;display:flex}.battle-result-emoji{font-size:48px}.battle-result-title{color:#5a3a1a;font-size:20px;font-weight:700}.battle-power-row{background:#fff8f0;border:1px solid #e8c89a;border-radius:10px;align-items:center;gap:16px;padding:10px 20px;display:flex}.battle-power-item{flex-direction:column;align-items:center;gap:2px;display:flex}.battle-power-label{color:#8b6a50;font-size:12px}.battle-power-value{color:#5a3a1a;font-size:20px;font-weight:700}.battle-power-vs{color:#c08060;font-size:16px;font-weight:700}.battle-result-reward{color:#d08020;font-size:18px;font-weight:700}.battle-close-btn{border-radius:var(--r-xs);cursor:pointer;background:#e8c89a;border:none;padding:6px 20px;font-size:13px}.battle-history{border-top:1px solid #e8d0b0;margin-top:14px;padding-top:10px}.battle-history-title{color:#8b6a50;margin-bottom:6px;font-size:12px;font-weight:700}.battle-history-row{align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.battle-history-row.won .battle-history-result{color:#3a8a3a;font-weight:700}.battle-history-row.lost .battle-history-result{color:#a06060}.battle-history-icon{font-size:14px}.battle-history-name{color:#5a3a1a;flex:1}.lb-battle-btn{border-radius:var(--r-xs);cursor:pointer;color:#c03030;background:#ffe0e0;border:1px solid #e0a0a0;padding:3px 8px;font-size:12px;transition:background .15s}.lb-battle-btn:hover{background:#ffc8c8}.minigame-modal{width:96%;max-width:380px;padding:14px 16px}.minigame-sub{color:#8b6a50;text-align:center;margin:0 0 10px;font-size:12px}.minigame-loading{text-align:center;color:#8b6a50;font-size:13px}.minigame-list{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.minigame-card{background:#fdf6ec;border:1.5px solid #e8c89a;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.minigame-card.exhausted{opacity:.55}.minigame-card-icon{flex-shrink:0;font-size:28px}.minigame-card-info{flex:1;min-width:0}.minigame-card-title{color:#5a3a1a;font-size:14px;font-weight:700}.minigame-card-desc{color:#8b6a50;margin-top:2px;font-size:11px}.minigame-card-plays{color:#b08040;margin-top:3px;font-size:11px;font-weight:700}.minigame-start-btn{border-radius:var(--r-sm);color:#fff;cursor:pointer;background:#f0a030;border:none;flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:700;transition:background .15s}.minigame-start-btn:hover:not(:disabled){background:#d88020}.minigame-start-btn:disabled{cursor:default;background:#ccc}.minigame-result-banner{text-align:center;background:#fff8e8;border:1.5px solid #f0c060;border-radius:10px;margin-bottom:12px;padding:10px 14px}.minigame-result-title{color:#5a3a1a;font-size:15px;font-weight:700}.minigame-result-rewards{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}.minigame-result-rewards span{color:#d08020;font-size:13px;font-weight:700}.minigame-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.minigame-header span:first-child{color:#5a3a1a;font-size:15px;font-weight:700}.minigame-header span:nth-child(2){color:#8b6a50;font-size:13px}.minigame-cancel-btn{cursor:pointer;color:#a07050;background:0 0;border:none;padding:2px 4px;font-size:16px}.minigame-hint{color:#8b6a50;text-align:center;margin:4px 0 8px;font-size:12px}.minigame-done-overlay{color:#d08020;background:#fffff0cc;border-radius:10px;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex;position:absolute;inset:0}.minigame-progress-bar{background:#e8c89a;border-radius:3px;height:6px;margin-bottom:8px}.minigame-progress-fill{background:#f0a030;border-radius:3px;height:100%;transition:width .3s}.minigame-rhythm{flex-direction:column;display:flex}.minigame-field{background:#fdf6ec;border:1.5px solid #e8c89a;border-radius:10px;height:180px;position:relative;overflow:hidden}.rhythm-note{cursor:pointer;background:#fff0d0;border:2px solid #f0a030;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;transition:background .1s,transform .1s;animation:.2s noteAppear;display:flex;position:absolute;transform:translate(-50%,-50%)}.rhythm-note:hover{background:#ffe0a0;transform:translate(-50%,-50%)scale(1.1)}.rhythm-note.hit{background:#b0f0a0;border-color:#40c040}.rhythm-note.miss{background:#ffa0a0;border-color:#e04040}@keyframes noteAppear{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.minigame-score-row{justify-content:center;gap:20px;margin-top:8px;font-size:14px;font-weight:700;display:flex}.rhythm-hits{color:#40c040}.rhythm-misses{color:#e04040}.minigame-memory{flex-direction:column;display:flex}.memory-grid{grid-template-columns:repeat(4,1fr);gap:8px;width:100%;max-width:280px;margin:0 auto;display:grid}.memory-card{aspect-ratio:1;border-radius:var(--r-sm);cursor:pointer;background:#e8c89a;border:2px solid #e8c89a;justify-content:center;align-items:center;font-size:24px;transition:background .2s,transform .15s;display:flex}.memory-card.face-up{background:#fff8e8;border-color:#f0a030}.memory-card.matched{cursor:default;background:#d0f0c0;border-color:#60c060}.memory-card:hover:not(.matched){transform:scale(1.05)}.minigame-catch{flex-direction:column;display:flex}.catch-canvas{cursor:none;border:1.5px solid #e8c89a;border-radius:10px;width:100%;display:block}.daily-shop-modal{width:92%;max-width:420px}.daily-shop-date{color:#8b6a50;text-align:center;margin:0 0 8px;font-size:12px}.daily-shop-currency{text-align:right;color:#7a4f2e;margin-bottom:10px;font-size:14px;font-weight:700}.daily-shop-toast{border-radius:var(--r-sm);color:#7a4f2e;text-align:center;background:#fff8e8;border:1px solid #e8c89a;margin-bottom:10px;padding:8px 12px;font-size:13px}.daily-shop-list{flex-direction:column;gap:8px;display:flex}.shop-item-card{background:#fff8f0;border:1px solid #e8c89a;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.shop-item-card.owned{opacity:.6;background:#f5f0ea}.shop-item-emoji{flex-shrink:0;font-size:28px}.shop-item-info{flex:1;min-width:0}.shop-item-name{color:#5a3a1a;font-size:14px;font-weight:700;display:block}.shop-item-type{color:#8b6a50;font-size:11px;display:block}.shop-item-price-col{text-align:right}.shop-item-original{color:#a08060;font-size:11px;text-decoration:line-through;display:block}.shop-item-price{color:#d08020;font-size:14px;font-weight:700;display:block}.shop-item-owned-badge{color:#3a8a3a;white-space:nowrap;background:#d8f0d8;border-radius:4px;padding:3px 7px;font-size:11px}.shop-tab-row{align-items:center;gap:6px;margin-bottom:10px;display:flex}.shop-tab{border-radius:var(--r-xs);color:#8b6a50;cursor:pointer;background:0 0;border:1.5px solid #e8c89a;padding:4px 12px;font-size:13px;transition:background .15s,color .15s}.shop-tab.active{color:#fff;background:#f0a030;border-color:#f0a030;font-weight:700}.shop-item-buy-btn{border-radius:var(--r-xs);color:#fff;cursor:pointer;white-space:nowrap;background:#f0a030;border:none;padding:5px 12px;font-size:13px;font-weight:700;transition:background .15s}.shop-item-buy-btn:hover:not(:disabled){background:#d88020}.shop-item-buy-btn:disabled{opacity:.5;cursor:default}.shop-open-btn{border-radius:var(--r-xs);color:#7a5830;cursor:pointer;background:#f5e8c8;border:1px solid #c8a870;padding:4px 10px;font-size:13px;transition:background .15s}.shop-open-btn:hover{background:#ead8a8}.skill-training-modal{width:92%;max-width:440px}.skill-training-hint{color:#8b6a50;text-align:center;margin:0 0 12px;font-size:13px}.skill-training-toast{border-radius:var(--r-sm);text-align:center;margin-bottom:12px;padding:8px 12px;font-size:13px}.skill-training-toast.toast-ok{color:#2a6a2a;background:#edfded;border:1px solid #7db87d}.skill-training-toast.toast-err{color:#7a2e2e;background:#fff0f0;border:1px solid #e89a9a}.skill-tier-section{margin-bottom:16px}.skill-tier-section.locked{opacity:.55}.skill-tier-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.skill-tier-label{color:#5a3a1a;font-size:13px;font-weight:700}.skill-tier-req{color:#7a4f2e;background:#e8c89a;border-radius:4px;padding:1px 5px;font-size:11px}.skill-tier-cost{color:#8b6a50;margin-left:auto;font-size:12px}.skill-tier-balance{color:#3a7a3a;white-space:nowrap;background:#e8f8e8;border-radius:4px;padding:1px 6px;font-size:11px}.skill-tier-balance.insufficient{color:#9a3a3a;background:#faeaea}.skill-tier-grid{flex-direction:column;gap:6px;display:flex}.skill-train-card{border-radius:var(--r-sm);background:#fff8f0;border:1px solid #e8c89a;align-items:center;gap:10px;padding:8px 10px;display:flex}.skill-train-card.owned{background:#f0fff0;border-color:#7db87d}.skill-train-card.tier-locked{background:#f5f0ea}.skill-train-card.cant-afford{opacity:.65}.skill-train-emoji{flex-shrink:0;font-size:22px}.skill-train-info{flex:1;min-width:0}.skill-train-name{color:#5a3a1a;font-size:13px;font-weight:700;display:block}.skill-train-desc{color:#8b6a50;font-size:11px;display:block}.skill-train-owned-badge{color:#3a8a3a;white-space:nowrap;background:#d8f0d8;border-radius:4px;padding:2px 6px;font-size:11px}.skill-train-locked-badge{color:#8b6a50;white-space:nowrap;background:#e8d8c0;border-radius:4px;padding:2px 6px;font-size:11px}.skill-train-btn{border-radius:var(--r-xs);color:#fff;cursor:pointer;white-space:nowrap;background:#f0a030;border:none;padding:4px 10px;font-size:12px;font-weight:700;transition:background .15s}.skill-train-btn:hover:not(:disabled){background:#d88020}.skill-train-btn:disabled{opacity:.5;cursor:default}.skill-train-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.skill-upgrade-btn{border-radius:var(--r-xs);color:#fff;cursor:pointer;white-space:nowrap;background:#60a0e0;border:none;padding:3px 8px;font-size:11px;font-weight:700;transition:background .15s}.skill-upgrade-btn:hover:not(:disabled){background:#4080c0}.skill-upgrade-btn:disabled{opacity:.5;cursor:default}.skill-level-badge{color:#1a4880;vertical-align:middle;background:#a0c8f0;border-radius:6px;margin-left:5px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}.skill-level-badge.maxed{color:#806000;background:#f0d060}.skill-list-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.skill-training-open-btn{background:var(--brand-soft);border:1px solid color-mix(in srgb, var(--brand) 35%, transparent);border-radius:var(--r-pill);color:var(--brand-2);cursor:pointer;padding:4px 10px;font-size:11px;font-weight:700;transition:background .15s}.skill-training-open-btn:hover{background:var(--brand);color:#fff}.skill-list-empty{color:#a08060;margin:4px 0 0;font-size:12px}@media (width<=360px){.app-body{gap:8px;padding:8px}.pet-panel{padding:10px 12px}.header-title{font-size:15px}.modal{padding:20px 16px}.daily-grid{gap:2px}.daily-day{padding:4px 1px}.daily-day-label{font-size:8px}.daily-day-gem{font-size:9px}.daily-day-gold{font-size:8px}.collection-grid{grid-template-columns:repeat(2,1fr)}.achievement-grid{grid-template-columns:1fr}}@media (orientation:landscape) and (height<=480px){.app-body{gap:8px;padding:6px 12px}.canvas-wrapper{max-height:45vw}.modal-overlay,.modal-backdrop{align-items:flex-start;padding-top:8px}.modal{max-height:95svh;overflow-y:auto}.shop-modal,.gacha-modal,.achievement-modal{max-height:92svh}}.guild-open-btn{border-radius:var(--r-sm);cursor:pointer;background:#e8d5ff;border:1px solid #b090e0;padding:5px 10px;font-size:13px;transition:background .15s}.guild-open-btn:hover{background:#d8c0f8}.guild-modal{width:420px;max-width:96vw;max-height:80vh;overflow-y:auto}.guild-toast{color:#fff;border-radius:var(--r-sm);text-align:center;background:#333;margin-bottom:10px;padding:8px 14px;font-size:13px}.guild-tabs{gap:6px;margin-bottom:14px;display:flex}.guild-tab{border-radius:var(--r-sm);cursor:pointer;background:#f0e8ff;border:1px solid #c0a0e8;flex:1;padding:6px 0;font-size:13px;transition:background .15s}.guild-tab.active{color:#fff;background:#c090f0;border-color:#9060c8;font-weight:700}.guild-loading{text-align:center;color:#888;padding:20px}.contest-status-row{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.contest-status-hint{color:#888;font-size:12px}.contest-enter-btn{border-radius:var(--r-xs);color:#fff;cursor:pointer;background:#f0a030;border:none;padding:5px 14px;font-size:13px;font-weight:700}.contest-enter-btn:hover{background:#d88020}.contest-entered-badge{color:#3a8a3a;background:#d8f0d8;border-radius:6px;padding:3px 8px;font-size:12px}.contest-closed-banner{text-align:center;color:#888;padding:10px 0 14px;font-size:13px;font-style:italic}.contest-pet-picker{border-radius:var(--r-md);background:#faf5ff;border:1px solid #d8c8f8;margin-bottom:10px;padding:10px}.contest-picker-hint{color:#7050a0;margin-bottom:6px;font-size:13px}.contest-pet-row{border-radius:var(--r-xs);cursor:pointer;background:#fff;border:1px solid #d8c8f8;justify-content:space-between;align-items:center;width:100%;margin-bottom:4px;padding:6px 10px;font-size:13px;display:flex}.contest-pet-row:hover{background:#f0e8ff}.contest-pet-meta{color:#888;font-size:11px}.contest-cancel-btn{color:#888;cursor:pointer;background:0 0;border:none;margin-top:4px;font-size:12px}.contest-entry-list{flex-direction:column;gap:6px;display:flex}.contest-empty{text-align:center;color:#aaa;padding:20px 0;font-size:13px}.contest-entry-card{border-radius:var(--r-md);background:#faf5ff;border:1px solid #d8c8f8;align-items:center;gap:8px;padding:8px 10px;display:flex}.contest-entry-card.mine{background:#f5eeff;border-color:#a060e0}.contest-entry-card.voted{border-color:#e08030}.contest-rank{color:#7050a0;text-align:center;flex-shrink:0;width:20px;font-size:14px;font-weight:900}.contest-entry-info{flex-direction:column;flex:1;gap:1px;display:flex}.contest-entry-name{color:#444;font-size:13px;font-weight:700}.contest-entry-meta{color:#888;font-size:11px}.contest-votes{color:#c04040;white-space:nowrap;font-size:13px;font-weight:700}.contest-vote-btn{border-radius:var(--r-xs);color:#fff;cursor:pointer;white-space:nowrap;background:#e08030;border:none;padding:3px 10px;font-size:12px;font-weight:700}.contest-vote-btn:hover{background:#c06020}.contest-voted-badge{color:#e08030;background:#fff0d8;border-radius:6px;padding:2px 6px;font-size:11px}.contest-mine-badge{color:#a060e0;background:#f0e0ff;border-radius:6px;padding:2px 6px;font-size:11px}.market-wrap{flex-direction:column;gap:8px;display:flex}.market-type-tabs{gap:6px;margin-bottom:2px;display:flex}.market-type-tab{cursor:pointer;color:#555;background:#f0f0f0;border:1.5px solid #aaa;border-radius:8px;flex:1;padding:5px;font-size:12px;font-weight:700}.market-type-tab.active{color:#fff;background:#4f46e5;border-color:#4f46e5}.market-view-tabs{gap:6px;display:flex}.market-vtab{cursor:pointer;color:#6040a0;background:#f5eeff;border:1.5px solid #c8b4e8;border-radius:8px;flex:1;padding:5px;font-size:12px;font-weight:700}.market-vtab.active{color:#fff;background:#8060c0;border-color:#8060c0}.market-list{flex-direction:column;gap:6px;max-height:260px;display:flex;overflow-y:auto}.market-item{background:#faf7ff;border:1px solid #ddd;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;display:flex}.market-item-emoji{flex-shrink:0;font-size:20px}.market-item-info{flex-direction:column;flex:1;gap:2px;display:flex}.market-item-name{color:#444;font-size:13px;font-weight:700}.market-rarity{border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700}.market-rarity-common{color:#666;background:#eee}.market-rarity-rare{color:#2060a0;background:#d0e8ff}.market-rarity-epic{color:#6030a0;background:#e8d0ff}.market-rarity-legendary{color:#804000;background:#ffd8a0}.market-item-right{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.market-price{color:#a06000;white-space:nowrap;font-size:12px;font-weight:700}.market-buy-btn{color:#fff;cursor:pointer;background:#60a040;border:none;border-radius:6px;padding:3px 10px;font-size:12px}.market-buy-btn:hover{background:#408020}.market-cancel-btn{color:#fff;cursor:pointer;background:#c04040;border:none;border-radius:6px;padding:3px 10px;font-size:12px}.market-cancel-btn:hover{background:#902020}.market-own-tag{color:#8060c0;background:#f0e8ff;border-radius:4px;padding:2px 6px;font-size:11px}.market-status{border-radius:4px;padding:1px 5px;font-size:11px}.market-status-active{color:#306020;background:#d8f0d0}.market-status-sold{color:#606060;background:#e0e0e0}.market-status-cancelled{color:#904040;background:#ffe8e8}.market-pages{justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.market-pages button{cursor:pointer;background:#f5eeff;border:1px solid #c8b4e8;border-radius:6px;padding:2px 10px}.market-pages button:disabled{opacity:.4;cursor:default}.market-empty{text-align:center;color:#aaa;padding:16px 0;font-size:13px}.market-sell-form{flex-direction:column;gap:8px;display:flex}.market-sell-label{color:#6040a0;font-size:12px;font-weight:700}.market-sell-select{color:#444;background:#faf7ff;border:1.5px solid #c8b4e8;border-radius:8px;padding:6px 8px;font-size:13px}.market-sell-price{color:#444;box-sizing:border-box;background:#faf7ff;border:1.5px solid #c8b4e8;border-radius:8px;width:100%;padding:6px 8px;font-size:13px}.market-fee-note{color:#888;margin:0;font-size:11px}.market-list-btn{color:#fff;cursor:pointer;background:#7050b0;border:none;border-radius:8px;padding:8px;font-size:14px;font-weight:700}.market-list-btn:hover{background:#5030a0}.market-list-btn:disabled{opacity:.5;cursor:default}.market-toast{text-align:center;z-index:10;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:700;position:sticky;top:0}.market-toast.ok{color:#306020;background:#d8ffd8}.market-toast.err{color:#803030;background:#ffe0e0}.guild-info-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.guild-name{color:#5a3080;font-size:16px;font-weight:700}.guild-level-badge{color:#fff;vertical-align:middle;background:#c090f0;border-radius:8px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}.guild-xp-bar-wrap{background:#ede0fc;border-radius:7px;height:14px;margin:6px 0 10px;position:relative;overflow:hidden}.guild-xp-bar-fill{background:linear-gradient(90deg,#b070e8,#d0a0ff);border-radius:7px;height:100%;transition:width .5s}.guild-xp-label{color:#5a3080;pointer-events:none;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex;position:absolute;inset:0}.guild-desc{color:#888;margin-top:2px;font-size:12px}.guild-member-count{color:#666;white-space:nowrap;font-size:13px}.guild-section-title{color:#7050a0;border-bottom:1px solid #e0d0ff;margin-bottom:6px;padding-bottom:4px;font-size:13px;font-weight:700}.guild-quest-section,.guild-members-section{margin-bottom:16px}.guild-quest-card{background:#faf5ff;border:1px solid #d8c8f8;border-radius:10px;margin-bottom:8px;padding:8px 10px;transition:opacity .2s}.guild-quest-card.claimed{opacity:.5}.guild-quest-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.guild-quest-icon{flex-shrink:0;font-size:20px}.guild-quest-info{flex-direction:column;flex:1;gap:2px;display:flex}.guild-quest-title{color:#444;font-size:13px;font-weight:700}.guild-quest-desc{color:#888;font-size:11px}.guild-claim-btn{color:#fff;border-radius:var(--r-xs);cursor:pointer;white-space:nowrap;background:#a060e0;border:none;padding:4px 12px;font-size:12px;transition:background .15s}.guild-claim-btn:hover:not(:disabled){background:#8040c0}.guild-claim-btn:disabled{opacity:.6;cursor:default}.guild-claimed-badge{color:#888;border-radius:var(--r-xs);white-space:nowrap;background:#f0e8ff;padding:3px 8px;font-size:12px}.guild-quest-progress-row{align-items:center;gap:6px;display:flex}.guild-quest-track{background:#e8d8f8;border-radius:3px;flex:1;height:6px;overflow:hidden}.guild-quest-fill{background:#a060e0;border-radius:3px;height:100%;transition:width .4s}.guild-quest-count{color:#888;white-space:nowrap;font-size:11px}.guild-quest-reward{color:#7050a0;white-space:nowrap;font-size:12px}.guild-member-list{flex-direction:column;gap:4px;display:flex}.guild-member-row{border-radius:var(--r-sm);background:#f8f4ff;align-items:center;gap:6px;padding:5px 8px;font-size:13px;display:flex}.guild-member-name{color:#333;flex:1}.guild-member-you{color:#a060e0;font-size:11px}.guild-activity-rank{color:#7050a0;text-align:center;flex-shrink:0;width:22px;font-size:11px;font-weight:700}.guild-activity-contrib{color:#c04040;white-space:nowrap;margin-left:auto;font-size:11px}.guild-activity-load-btn{cursor:pointer;color:#6040a0;background:#f5eeff;border:1px solid #c8b4e8;border-radius:6px;padding:2px 8px;font-size:11px}.guild-kick-btn{border-radius:var(--r-xs);color:#c04040;cursor:pointer;opacity:0;background:0 0;border:1px solid #e09090;padding:2px 6px;font-size:11px;line-height:1;transition:opacity .15s}.guild-member-row:hover .guild-kick-btn{opacity:1}.guild-kick-btn:hover{background:#ffe0e0}.guild-kick-btn:disabled{opacity:.4;cursor:not-allowed}.guild-announce-section{margin-bottom:12px}.guild-announce-display{border-radius:var(--r-sm);cursor:default;background:#fffbf0;border:1px dashed #e8c870;align-items:flex-start;gap:6px;min-height:34px;padding:8px 10px;display:flex}.guild-announce-text{color:var(--ink);flex:1;font-size:12px;line-height:1.5}.guild-announce-empty{color:var(--ink-3);flex:1;font-size:12px;font-style:italic}.guild-announce-edit-hint{color:#c0a000;align-self:center;font-size:11px}.guild-announce-edit textarea{box-sizing:border-box;width:100%;margin-bottom:6px}.guild-announce-btns{gap:6px;display:flex}.guild-battle-panel{padding:4px 0 8px}.guild-battle-card{border-radius:var(--r-md);background:linear-gradient(135deg,#fff8e0,#fff0f8);border:1px solid #e8c870;margin-bottom:12px;padding:16px}.guild-battle-vs{align-items:center;gap:12px;margin-bottom:10px;display:flex}.guild-battle-side{text-align:center;flex:1}.guild-battle-guild-name{color:var(--ink);margin-bottom:4px;font-size:13px;font-weight:700}.guild-battle-score{color:#e07030;font-size:28px;font-weight:900;line-height:1}.guild-battle-label{color:var(--ink-3);margin-top:2px;font-size:11px}.guild-battle-sep{color:#c04040;flex-shrink:0;font-size:14px;font-weight:900}.guild-battle-hint{color:var(--ink-3);text-align:center;margin:0;font-size:11px}.guild-battle-result{border:1px solid #d0d0d0;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;display:flex}.guild-battle-result.won{background:#f0fff0;border-color:#70c070}.guild-battle-result.lost{background:#fff4f4;border-color:#d09090}.guild-battle-result-icon{font-size:24px}.guild-battle-result-label{margin-bottom:2px;font-size:14px;font-weight:800}.guild-battle-result-score{color:var(--ink-2);font-size:12px}.guild-leave-btn{border-radius:var(--r-sm);color:#c04040;cursor:pointer;background:#ffe0e0;border:1px solid #e09090;width:100%;padding:8px;font-size:13px;transition:background .15s}.guild-leave-btn:hover{background:#ffd0d0}.guild-feed-section{flex-direction:column;gap:8px;padding:4px 0;display:flex}.guild-feed-item{background:var(--surface-alt);border-radius:8px;flex-direction:column;gap:2px;padding:8px 12px;display:flex}.guild-feed-name{color:var(--ink);font-size:13px;font-weight:700}.guild-feed-action{color:var(--ink-mute);font-size:12px}.guild-feed-time{color:var(--ink-mute);opacity:.7;font-size:11px}.guild-chat-section{flex-direction:column;gap:8px;padding:4px 0;display:flex}.guild-chat-messages{flex-direction:column;gap:6px;max-height:280px;padding:4px 0;display:flex;overflow-y:auto}.guild-chat-msg{background:var(--surface-alt);border-radius:8px;flex-direction:column;gap:2px;max-width:90%;padding:6px 10px;display:flex}.guild-chat-msg-mine{background:#e8f4fd;align-self:flex-end}.guild-chat-sender{color:var(--brand);font-size:11px;font-weight:700}.guild-chat-content{color:var(--ink);font-size:13px}.guild-chat-time{color:var(--ink-mute);font-size:10px}.guild-chat-input-row{border-top:1px solid var(--line-soft);gap:6px;padding-top:4px;display:flex}.guild-chat-input{border:1px solid var(--line-soft);background:var(--surface);color:var(--ink);border-radius:8px;flex:1;padding:6px 10px;font-size:13px}.guild-chat-send-btn{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600}.guild-chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.guild-boss-section{margin:12px 0}.guild-boss-card{background:#fff7ed;border:1.5px solid #fed7aa;border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex}.guild-boss-dead{background:#f0fdf4;border-color:#86efac}.guild-boss-name{font-size:14px;font-weight:700}.guild-boss-hp-row{align-items:center;gap:8px;display:flex}.guild-boss-hp-track{background:#fecaca;border-radius:4px;flex:1;height:8px;overflow:hidden}.guild-boss-hp-fill{background:#ef4444;border-radius:4px;height:100%;transition:width .4s}.guild-boss-hp-label{color:var(--muted);white-space:nowrap;font-size:11px}.guild-boss-actions{flex-direction:column;gap:6px;display:flex}.guild-boss-attack-row{align-items:center;gap:8px;display:flex}.guild-boss-dmg-input{border:1px solid var(--border);text-align:center;border-radius:6px;width:52px;padding:4px 6px;font-size:13px}.guild-boss-attack-btn{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:700}.guild-boss-attack-btn:disabled{opacity:.5}.guild-boss-claim-btn{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:6px;padding:7px 14px;font-size:13px;font-weight:700}.guild-boss-claimed-badge{color:var(--muted);font-size:12px}.guild-vault-section{border-radius:var(--r-sm);border:1px solid #d0b8f0;margin:12px 0;overflow:hidden}.guild-section-toggle{cursor:pointer;text-align:left;width:100%;color:var(--text);background:#f5eeff;border:none;border-radius:0;padding:8px 12px;font-size:13px;font-weight:600}.guild-section-toggle:hover{background:#ece0ff}.guild-vault-body{padding:10px 12px}.guild-vault-header{color:var(--muted);margin-bottom:8px;font-size:12px}.guild-vault-empty{color:var(--muted);margin:4px 0 8px;font-size:13px}.guild-vault-list{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.guild-vault-row{border-radius:var(--r-sm);background:#f0e8ff;align-items:center;gap:4px;padding:3px 8px;font-size:13px;display:flex}.guild-vault-count{color:var(--purple);font-weight:600}.guild-vault-actions{flex-direction:column;gap:8px;display:flex}.guild-vault-action-row{align-items:center;gap:6px;display:flex}.guild-vault-select{border-radius:var(--r-sm);background:#fff;border:1px solid #c0a0e0;flex:1;padding:5px 8px;font-size:12px}.guild-vault-count-input{border-radius:var(--r-sm);text-align:center;border:1px solid #c0a0e0;width:52px;padding:5px 6px;font-size:12px}.guild-vault-deposit-btn{color:#fff;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;background:#7c5cbf;border:none;padding:5px 10px;font-size:12px}.guild-vault-deposit-btn:hover{background:#6a4aad}.guild-vault-withdraw-btn{color:#fff;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;background:#c57c30;border:none;padding:5px 10px;font-size:12px}.guild-vault-withdraw-btn:hover{background:#a86428}.guild-vault-withdraw-btn:disabled{cursor:not-allowed;background:#ccc}.merchant-section{border-radius:var(--r-sm);border:1px solid #b8d4f0;margin-top:16px;overflow:hidden}.merchant-toggle{width:100%;background:#eef4ff!important}.merchant-toggle:hover{background:#dde8ff!important}.merchant-weekly-label{color:var(--muted);margin-left:6px;font-size:11px;font-weight:400}.merchant-body{padding:10px 12px}.merchant-empty{color:var(--muted);margin:6px 0;font-size:13px}.guild-search-row{gap:6px;margin-bottom:12px;display:flex}.guild-search-input{border-radius:var(--r-sm);border:1px solid #c0a0e0;flex:1;padding:7px 10px;font-size:13px}.guild-search-btn{color:#fff;border-radius:var(--r-sm);cursor:pointer;background:#c090f0;border:none;padding:7px 14px;font-size:13px;transition:background .15s}.guild-search-btn:hover{background:#a060d0}.guild-search-card{background:#faf5ff;border:1px solid #d8c8f8;border-radius:10px;margin-bottom:8px;padding:10px 12px}.guild-search-name{color:#5a3080;margin-bottom:2px;font-size:14px;font-weight:700}.guild-search-desc{color:#888;margin-bottom:6px;font-size:12px}.guild-search-footer{justify-content:space-between;align-items:center;display:flex}.guild-search-count{color:#666;font-size:12px}.guild-join-btn{color:#fff;cursor:pointer;background:#a060e0;border:none;border-radius:7px;padding:5px 14px;font-size:12px;transition:background .15s}.guild-join-btn:hover{background:#8040c0}.guild-empty{text-align:center;color:#aaa;padding:20px 0;font-size:13px}.guild-create{flex-direction:column;gap:8px;display:flex}.guild-form-label{color:#7050a0;font-size:13px;font-weight:700}.guild-form-input{border-radius:var(--r-sm);border:1px solid #c0a0e0;padding:8px 10px;font-size:13px}.guild-form-textarea{border-radius:var(--r-sm);resize:none;border:1px solid #c0a0e0;padding:8px 10px;font-family:inherit;font-size:13px}.guild-create-btn{color:#fff;cursor:pointer;background:#a060e0;border:none;border-radius:9px;padding:10px;font-size:14px;font-weight:700;transition:background .15s}.guild-create-btn:hover{background:#8040c0}.gb-container{flex-direction:column;gap:12px;display:flex}.gb-week-label{color:var(--ink-3);text-align:center;font-size:12px}.gb-no-battle{text-align:center;color:var(--ink-2);padding:20px 0;font-size:14px}.gb-hint{color:var(--ink-3);text-align:center;font-size:11px}.gb-card{background:var(--card-2);border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex}.gb-matchup{justify-content:space-between;align-items:center;gap:8px;display:flex}.gb-side{text-align:center;flex:1}.gb-guild-name{color:var(--ink);margin-bottom:4px;font-size:13px;font-weight:700}.gb-score{color:var(--ink);font-size:28px;font-weight:900;line-height:1}.gb-score-label{color:var(--ink-3);font-size:11px}.gb-vs{color:var(--ink-3);font-size:16px;font-weight:900}.gb-mine .gb-score{color:#3070c0}.gb-opp .gb-score{color:#c03030}.gb-bar{border-radius:var(--r-xs);height:12px;display:flex;overflow:hidden}.gb-bar-mine{background:#3070c0;transition:width .4s}.gb-bar-opp{background:#c03030;transition:width .4s}.gb-bar-pcts{color:var(--ink-3);justify-content:space-between;font-size:11px;display:flex}.gb-result-badge{text-align:center;border-radius:var(--r-sm);padding:6px;font-size:15px;font-weight:700}.gb-win{color:#2a7020;background:#f0f8e0}.gb-draw{color:#706020;background:#f0f0e0}.gb-last-result{background:var(--bg-soft);border-radius:var(--r-sm);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.gb-last-title{color:var(--ink-3);font-size:11px}.gb-last-badge{font-size:13px;font-weight:700}.gb-won{color:#2a7020}.gb-lost{color:#902020}.gb-last-detail{color:var(--ink-2);font-size:12px}.act-academy{color:#fff;background:linear-gradient(135deg,#5a9be0,#3070c0)}.act-academy:hover{background:linear-gradient(135deg,#4a8bd0,#2060b0)}.academy-modal{text-align:left;width:94%;max-width:420px;max-height:90vh;overflow-y:auto}.academy-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.academy-icon{font-size:28px}.academy-header h2{color:var(--ink);margin:0;font-size:18px}.academy-hint{color:var(--ink-3);margin-bottom:10px;font-size:12px}.academy-active{background:var(--card-2);border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex}.academy-active-course{align-items:center;gap:10px;display:flex}.academy-course-emoji{font-size:32px}.academy-course-name{color:var(--ink);font-size:15px;font-weight:700}.academy-course-desc{color:var(--ink-2);margin-top:2px;font-size:12px}.academy-progress-bar{background:var(--line-soft);border-radius:5px;height:10px;overflow:hidden}.academy-progress-fill{background:linear-gradient(90deg,#5a9be0,#a0d0ff);border-radius:5px;height:100%;transition:width 1s linear}.academy-timer{color:var(--ink-2);text-align:center;font-size:13px;font-weight:600}.academy-claim-btn{border-radius:var(--r-sm);cursor:pointer;color:#fff;background:linear-gradient(135deg,#70b840,#a0d860);border:none;width:100%;padding:10px;font-size:15px;font-weight:700}.academy-claim-result{text-align:center;padding:16px}.academy-result-emoji{margin-bottom:8px;font-size:48px}.academy-result-rewards{flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0 16px;display:flex}.academy-result-rewards span{border-radius:var(--r-xs);background:#f0f8e8;border:1px solid #c0e090;padding:4px 10px;font-size:13px}.academy-levelup{font-weight:700;background:#fff3c0!important;border-color:#e0c060!important}.academy-course-list{flex-direction:column;gap:10px;display:flex}.academy-course-card{background:var(--card-2);border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex}.academy-course-header{align-items:flex-start;gap:10px;display:flex}.academy-course-info{flex:1}.academy-course-duration{color:var(--ink-3);white-space:nowrap;font-size:12px}.academy-course-rewards{flex-wrap:wrap;gap:6px;display:flex}.academy-course-rewards span{color:#7a5a00;background:#fff3c0;border:1px solid #e8d080;border-radius:5px;padding:2px 7px;font-size:11px}.academy-enroll-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#5a9be0,#3070c0);border:none;border-radius:7px;align-self:flex-end;padding:6px 14px;font-size:13px;font-weight:700;transition:opacity .15s}.academy-enroll-btn:disabled{opacity:.5;cursor:not-allowed}.modal-x-btn{cursor:pointer;color:var(--ink-3);background:0 0;border:none;font-size:16px;line-height:1;position:absolute;top:10px;right:12px}.academy-modal{position:relative}.sp-container{flex-direction:column;gap:8px;display:flex}.sp-header{justify-content:space-between;align-items:flex-start;display:flex}.sp-title{color:var(--ink);font-size:14px;font-weight:700}.sp-level-label{color:var(--ink-2);margin-top:2px;font-size:12px}.sp-premium-badge{color:#5a3a00;background:linear-gradient(135deg,#f0c040,#e8a020);border-radius:10px;padding:4px 10px;font-size:12px;font-weight:700}.sp-upgrade-btn{border-radius:var(--r-sm);color:#fff;cursor:pointer;text-align:center;background:linear-gradient(135deg,#b060e8,#8030c8);border:none;padding:5px 10px;font-size:11px;font-weight:700;line-height:1.4;transition:opacity .15s}.sp-upgrade-btn:hover:not(:disabled){opacity:.85}.sp-upgrade-btn:disabled{opacity:.5;cursor:not-allowed}.sp-upgrade-price{opacity:.9;font-size:10px}.sp-xp-row{align-items:center;gap:8px;display:flex}.sp-xp-bar{background:var(--line-soft);border-radius:5px;flex:1;height:10px;overflow:hidden}.sp-xp-fill{background:linear-gradient(90deg,#70b840,#a0e060);border-radius:5px;height:100%;transition:width .4s}.sp-xp-text{color:var(--ink-2);white-space:nowrap;font-size:11px}.sp-hint{color:var(--ink-3);font-size:11px}.sp-levels{flex-direction:column;gap:4px;max-height:300px;display:flex;overflow-y:auto}.sp-row{border-radius:var(--r-xs);background:var(--card-2);grid-template-columns:32px 1fr 36px;align-items:center;gap:6px;padding:5px 8px;display:grid}.sp-row.sp-unlocked{background:#f0f8e8}.sp-row.sp-claimed{opacity:.7;background:#e8e8e8}.sp-row.sp-locked{opacity:.55}.sp-lv-num{color:var(--ink-2);font-size:11px;font-weight:700}.sp-rewards{flex-wrap:wrap;gap:4px;display:flex}.sp-reward-pill{white-space:nowrap;border-radius:5px;padding:2px 6px;font-size:10px}.sp-free-pill{color:#7a5a00;background:#fff3c0;border:1px solid #e8d080}.sp-prem-pill{color:#5a2080;background:#e8d0f8;border:1px solid #c090e0}.sp-prem-dim{opacity:.4;filter:grayscale(.5)}.sp-action{justify-content:center;display:flex}.sp-check{color:#70b840;font-size:14px;font-weight:700}.sp-lock{font-size:12px}.sp-claim-btn{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:3px 8px;font-size:11px;font-weight:700}.sp-claim-btn:disabled{opacity:.5}.act-album{color:#fff;background:linear-gradient(135deg,#e06090,#b03060)}.act-album:hover{background:linear-gradient(135deg,#d05080,#a02050)}.album-modal{text-align:left;width:96%;max-width:560px;max-height:90vh;overflow-y:auto}.album-modal h2{color:var(--ink);margin-bottom:2px;font-size:17px}.album-subtitle{color:var(--ink-2);margin:0 0 14px;font-size:12px}.album-loading,.album-empty{color:var(--ink-2);text-align:center;padding:24px 0;font-size:13px;line-height:1.8}.album-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.album-card{border-radius:var(--r-md);border:1.5px solid #e0d8d0;flex-direction:column;align-items:center;gap:4px;padding:10px 8px 8px;display:flex;position:relative}.album-card-badge{font-size:16px;line-height:1;position:absolute;top:6px;left:8px}.album-sprite{image-rendering:pixelated;width:72px;height:72px;margin:4px 0 2px}.album-card-info{text-align:center;width:100%}.album-card-label{margin-bottom:1px;font-size:12px;font-weight:700}.album-card-level{color:var(--ink-2);font-size:11px}.album-card-date{color:var(--ink-2);opacity:.7;margin-top:2px;font-size:10px}.album-card-mood{background:#e0d8d0;border-radius:2px;height:4px;margin-top:5px;overflow:hidden}.album-mood-bar{border-radius:2px;height:100%;transition:width .3s;display:block}.album-note-display{cursor:pointer;justify-content:center;align-items:center;width:100%;min-height:24px;margin-top:4px;display:flex}.album-note-text{color:var(--ink);text-align:center;word-break:break-all;font-size:11px;line-height:1.4}.album-note-placeholder{color:var(--ink-3);opacity:.7;font-size:11px}.album-note-edit{flex-direction:column;gap:4px;width:100%;margin-top:4px;display:flex}.album-note-input{width:100%;color:var(--ink);box-sizing:border-box;background:#fffdf8;border:1px solid #c8b090;border-radius:6px;padding:4px 6px;font-size:11px}.album-note-actions{gap:4px;display:flex}.album-note-save-btn{color:#fff;cursor:pointer;background:#c8a87a;border:none;border-radius:5px;flex:1;padding:3px 0;font-size:11px;font-weight:700}.album-note-save-btn:disabled{color:#aaa;cursor:not-allowed;background:#ddd}.album-note-cancel-btn{color:var(--ink-2);cursor:pointer;background:#f0e8d8;border:none;border-radius:5px;flex:1;padding:3px 0;font-size:11px}.album-note-error{color:#e05555;text-align:center;margin:0;font-size:10px}.act-breed{color:#fff;background:linear-gradient(135deg,#e06090,#c04070)}.act-breed:hover{background:linear-gradient(135deg,#d05080,#b03060)}.act-together{color:#fff;background:linear-gradient(135deg,#60a0e0,#4070c0)}.act-together:hover{background:linear-gradient(135deg,#5090d0,#3060b0)}.companion-picker{background:#f0f6ff;border:1px solid #c0d8f0;border-radius:10px;margin-top:10px;padding:10px 12px;animation:.15s fadeIn}.companion-label{color:var(--ink-2);margin:0 0 8px;font-size:12px;font-weight:700}.companion-list{flex-wrap:wrap;gap:8px;display:flex}.companion-btn{border-radius:var(--r-sm);color:var(--ink);cursor:pointer;background:#fff;border:1px solid #a0c0e8;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:600;transition:background .15s;display:flex}.companion-btn:hover:not(:disabled){background:#def}.companion-btn:disabled{opacity:.5;cursor:not-allowed}.companion-sick{font-size:12px}.breeding-modal{text-align:left;width:96%;max-width:440px}.breeding-modal h2{color:var(--ink);margin-bottom:14px;font-size:17px}.breeding-parents{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.breeding-parent-block{flex:1}.breeding-parent-label{color:var(--ink-2);margin-bottom:6px;font-size:11px;font-weight:600}.breeding-plus{align-self:flex-start;padding-top:28px;font-size:22px}.breed-option{background:var(--card-bg);cursor:pointer;border:2px solid #0000;border-radius:10px;align-items:center;gap:6px;width:100%;margin-bottom:5px;padding:7px 10px;font-size:13px;transition:all .15s;display:flex}.breed-option:hover:not(:disabled){background:#fff0f4;border-color:#e07090}.breed-option-selected{background:#fff0f4!important;border-color:#e07090!important}.breed-option-static{cursor:default}.breed-option-disabled{opacity:.5;cursor:not-allowed}.breed-option-emoji{font-size:18px}.breed-option-name{color:var(--ink);text-align:left;flex:1;font-weight:600}.breed-option-lv{color:var(--ink-2);font-size:11px}.breed-option-cd{color:#e05050;margin-left:4px;font-size:10px}.breeding-candidates{max-height:180px;overflow-y:auto}.breeding-no-candidates{color:var(--ink-2);padding:8px 0;font-size:12px}.breeding-preview{color:var(--ink-2);border-radius:var(--r-sm);background:#fff8f0;margin-bottom:10px;padding:8px 12px;font-size:12px}.breeding-preview-row{margin-bottom:6px}.breeding-odds{flex-wrap:wrap;gap:6px;display:flex}.breeding-odds-item{background:var(--green-soft);color:#3a6a28;border-radius:var(--r-pill);padding:2px 8px;font-size:11px;font-weight:700}.breeding-odds-mutation{color:#6a28a8;background:#ede0ff}.breeding-error{color:#e05050;margin-bottom:8px;font-size:12px}.breeding-footer{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding-top:10px;display:flex}.breeding-cost{color:var(--ink-2);font-size:13px;font-weight:700}.breeding-success{text-align:center;padding:8px 0}.breeding-success-header{color:var(--ink);font-size:22px;font-weight:800;font-family:var(--font-display);margin-bottom:14px}.breeding-success-mutation{color:#7c28c8}.breeding-baby-card{text-align:left;background:#fff0f8;border:2px solid #f0c0d8;border-radius:14px;align-items:center;gap:14px;margin-bottom:12px;padding:14px 16px;display:flex}.breeding-baby-card--mutation{background:linear-gradient(135deg,#f5e8ff,#e8f0ff);border-color:#c090e8;animation:2s ease-in-out infinite breedingMutationPulse}.breeding-baby-card--boosted{background:linear-gradient(135deg,#fffbe8,#fff0e8);border-color:#e8c840}@keyframes breedingMutationPulse{0%,to{box-shadow:0 0 #a050dc00}50%{box-shadow:0 0 12px 4px #a050dc40}}.breeding-baby-sprite{flex-shrink:0}.breeding-baby-details{flex:1}.breeding-baby-name{color:var(--ink);font-size:16px;font-weight:800;font-family:var(--font-display)}.breeding-baby-info{color:var(--ink-2);margin-top:3px;font-size:12px}.breeding-baby-badges{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.breeding-mutation-badge{border-radius:var(--r-pill);color:#5a20a0;background:linear-gradient(90deg,#ede0ff,#d8c0ff);border:1px solid #b090e0;align-items:center;gap:3px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.breeding-boost-badge{border-radius:var(--r-pill);color:#8b6800;background:linear-gradient(90deg,#fff8d0,#ffe880);border:1px solid #d8b820;align-items:center;gap:3px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.breeding-baby-skill{border-radius:var(--r-sm);color:#8b6a30;background:#fff3d0;border:1px solid #e8c870;margin-top:6px;padding:3px 10px;font-size:12px;display:inline-block}.breeding-mutation-desc,.breeding-boost-desc{color:var(--ink-2);border-radius:var(--r-sm);background:var(--card-2);margin:0 0 12px;padding:8px 12px;font-size:12px}.link-account-btn{border-radius:var(--r-md);background:var(--accent,#e89b4e);color:#fff;cursor:pointer;white-space:nowrap;border:none;padding:4px 10px;font-size:12px;font-weight:600;transition:opacity .15s}.link-account-btn:hover{opacity:.85}.link-account-modal{text-align:center;width:92%;max-width:360px}.link-account-icon{margin-bottom:8px;font-size:44px}.link-account-desc{color:var(--ink-2);margin-bottom:12px;font-size:13px;line-height:1.6}.link-account-benefits{text-align:left;flex-direction:column;gap:6px;width:100%;margin-bottom:16px;display:flex}.link-benefit{color:var(--ink-1);border-radius:var(--r-xs);background:#f0f9e8;padding:6px 12px;font-size:13px}.link-account-google-btn{justify-content:center;margin-bottom:12px;display:flex}.retirement-btn{border-radius:var(--r-md);color:#7030b0;width:100%;font-family:var(--font-display);cursor:pointer;text-align:left;background:linear-gradient(135deg,#f8e8ff,#e8d0ff);border:1px solid #c090e0;margin-top:10px;padding:12px 16px;font-size:13px;font-weight:800;transition:background .15s,transform .12s}.retirement-btn:hover{background:linear-gradient(135deg,#f0d8ff,#dcc0ff);transform:translateY(-1px)}.retirement-modal{text-align:center;width:92%;max-width:360px}.retirement-icon{margin-bottom:8px;font-size:52px;line-height:1}.retirement-firework{margin-bottom:8px;font-size:52px;animation:.5s bounceIn}.retirement-intro{color:var(--ink-2);margin:8px 0 12px;font-size:14px;line-height:1.6}.retirement-hint{color:var(--ink-3);margin:0 0 14px;font-size:12px;line-height:1.5}.retirement-error{color:var(--red);margin:4px 0;font-size:12px}.retirement-card{background:var(--card-2);border:1px solid var(--line-soft);border-radius:var(--r-md);flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 12px;padding:10px 14px;display:flex}.retirement-stat{color:var(--ink-2);font-size:12px;font-weight:700}.retirement-btns{flex-direction:column;gap:8px;display:flex}.retirement-confirm-btn{border-radius:var(--r-md);color:#fff;width:100%;font-family:var(--font-display);cursor:pointer;background:linear-gradient(#d080ff,#a040d0);border:none;padding:13px;font-size:14px;font-weight:800;transition:opacity .15s}.retirement-confirm-btn:hover{opacity:.9}.retirement-descendant{border-radius:var(--r-lg);text-align:left;background:linear-gradient(135deg,#f8f0ff,#fff0fa);border:1px solid #d0a8f0;align-items:center;gap:14px;margin:12px 0 16px;padding:14px;display:flex}.retirement-desc-icon{flex-shrink:0;font-size:40px;line-height:1}.retirement-desc-name{color:var(--ink);font-size:16px;font-weight:800;font-family:var(--font-display)}.retirement-desc-gen{color:var(--ink-3);margin-top:2px;font-size:11px}.retirement-desc-skill{color:#7030b0;margin-top:4px;font-size:12px;font-weight:700}.retirement-desc-bonus{color:#3a7a36;margin-top:2px;font-size:12px}@keyframes bounceIn{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.15)}to{transform:scale(1)}}.anim-spin{animation:1.5s linear infinite spin;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=640px){.bp-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:4px;padding-bottom:2px;overflow-x:auto}.bp-tabs::-webkit-scrollbar{display:none}.bp-tab{flex:none;min-width:72px;min-height:44px;padding:10px 8px;font-size:12px}.bp-content{max-height:min(340px,45svh)}}@media (width<=480px){.topbar{padding:8px 0 10px}.brand-mark .logo{border-radius:var(--r-sm);width:28px;height:28px;font-size:14px}.brand-mark .brand-title{font-size:16px}.brand-mark .brand-sub{display:none}.shell{padding-left:10px;padding-right:10px}.actions{gap:6px}.act{min-height:68px;padding:10px 6px 8px}.act .act-ic{width:32px;height:32px;font-size:17px}.act .act-name{font-size:13px}.act .act-cost{font-size:11px}.mtile{min-height:60px;padding:12px 6px;font-size:12px}.mtile .mtile-ic{width:28px;height:28px;font-size:14px}.pet-switcher-tab{min-height:36px;padding:6px 12px}.ds-bar{font-size:12px}.ds-bar .val{font-size:11px}.res{padding:6px 8px}.res .res-num{font-size:12px}.modal-overlay,.modal-backdrop{align-items:flex-end;padding:0}.modal-overlay>*,.modal-backdrop>*{-webkit-overflow-scrolling:touch;width:100%;max-width:100%;max-height:92svh;padding-bottom:max(20px, env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation:.28s cubic-bezier(.32,.72,0,1) sheetSlideUp;overflow-y:auto}input,textarea,select{font-size:16px!important}.bp-main{padding:12px}.bottom-panel{margin-top:12px}.card-pad{padding:12px}.card+.card{margin-top:8px}.scene-card{padding:6px}}@media (width<=360px){.actions{grid-template-columns:repeat(2,1fr);gap:5px}.act{min-height:60px}.menu-grid{gap:5px}.mtile{min-height:52px;padding:10px 4px;font-size:11px}.resources{gap:5px}.res{padding:5px 6px}.res .res-num{font-size:11px}.bp-tab{min-width:62px;min-height:40px;padding:8px 6px;font-size:11px}}.tag-evolution-1{color:#92400e;background:#fef3c7;border:1.5px solid #f59e0b;font-weight:700}.tag-evolution-2{color:#78350f;background:linear-gradient(90deg,#fde68a,#fcd34d);border:1.5px solid #d97706;font-weight:700}.tag-evolution-3{color:#4c1d95;background:linear-gradient(90deg,#fde68a,#f0abfc,#a5f3fc,#fde68a) 0 0/200% 100%;border:1.5px solid #c084fc;font-weight:700;animation:3s linear infinite evo3-shimmer}@keyframes evo3-shimmer{0%{background-position:0%}to{background-position:200%}}.evolution-toast{border-radius:var(--r-md);text-align:center;margin-top:10px;padding:10px 14px;font-size:13px;font-weight:700;animation:.4s bounceIn}.evolution-toast-1{color:#78350f;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b}.evolution-toast-2{color:#451a03;background:linear-gradient(135deg,#fde68a,#fbbf24);border:2px solid #d97706}.evolution-toast-3{color:#1e1b4b;background:linear-gradient(135deg,#fde68a,#f0abfc,#a5f3fc);border:2px solid #c084fc}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes floatUp{0%{opacity:1;transform:translate(-50%)translateY(0)}60%{opacity:1}to{opacity:0;transform:translate(-50%)translateY(-36px)}}@keyframes numPop{0%{color:var(--brand);transform:scale(1.4)}to{transform:scale(1)}}.res-num-pop{animation:.35s numPop;display:inline-block}.float-label--level{color:#7c3aed;font-size:14px}.float-label--bond{color:#d97706;font-size:13px}.bond-bar-wrap{cursor:default;align-items:center;gap:8px;margin:6px 0 4px;display:flex}.bond-label{color:#b45309;white-space:nowrap;min-width:90px;font-size:11px;font-weight:700}.bond-bar-track{background:#fde68a;border-radius:3px;flex:1;height:5px;overflow:hidden}.bond-bar-fill{background:#f59e0b;border-radius:3px;height:100%;transition:width .4s}.bond-toast{border-radius:var(--r-md);color:#92400e;text-align:center;background:#fef3c7;border:1px solid #fbbf24;margin-top:8px;padding:8px 12px;font-size:13px;font-weight:700;animation:.3s toastIn}.weather-widget{border-radius:var(--r-sm);cursor:default;background:#f0f4ff;border:1px solid #c8d8ff;align-items:center;gap:6px;margin:6px 0;padding:5px 10px;font-size:12px;display:flex}.weather-icon{font-size:16px}.weather-name{color:var(--text);font-weight:600}.weather-effect{border-radius:3px;padding:1px 5px;font-size:11px;font-weight:600}.weather-effect.pos{color:#065f46;background:#d1fae5}.weather-effect.neg{color:#991b1b;background:#fee2e2}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bp-tab-content{animation:.15s fadeIn}.bp-panel-toast{border-radius:var(--r-sm);color:#7a4f2e;text-align:center;background:#fff8e8;border:1px solid #e8c89a;margin-bottom:10px;padding:7px 12px;font-size:13px;animation:.2s fadeIn}.bp-empty-state{text-align:center;color:var(--ink-3);padding:28px 16px;font-size:13px}.bp-empty-icon{opacity:.7;margin-bottom:8px;font-size:32px;display:block}.pet-action-toast{text-align:center;color:var(--red);margin:6px 0 0;font-size:12px;animation:.2s fadeIn}.minigame-error{border-radius:var(--r-sm);color:#c04040;text-align:center;background:#fff0f0;border:1px solid #e8a0a0;margin-bottom:10px;padding:8px 12px;font-size:13px;animation:.2s fadeIn}.profile-modal{width:460px;max-width:96vw;max-height:85vh;padding:24px 20px 20px;overflow-y:auto}.profile-loading{text-align:center;color:var(--ink-3);padding:20px 0;font-size:14px}.profile-header{border-bottom:1px solid var(--line-soft);align-items:center;gap:14px;margin-bottom:16px;padding-bottom:14px;display:flex}.profile-avatar{object-fit:cover;border:2px solid var(--line);border-radius:50%;flex-shrink:0;width:56px;height:56px}.profile-avatar-placeholder{background:var(--brand-soft);border:2px solid var(--line);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;display:flex}.profile-header-info{flex:1;min-width:0}.profile-name{color:var(--ink);font-size:18px;font-weight:800;font-family:var(--font-display)}.profile-title{color:var(--brand-2);margin-top:2px;font-size:13px;font-weight:700}.profile-joined{color:var(--ink-mute);margin-top:3px;font-size:11px}.profile-motto{color:var(--ink-2);font-size:12px;font-style:italic}.profile-motto-edit-btn{cursor:pointer;opacity:.7;background:0 0;border:none;padding:0 2px;font-size:12px}.profile-motto-edit-btn:hover{opacity:1}.profile-share-btn{background:var(--surface-alt);border:1px solid var(--line-soft);cursor:pointer;color:var(--brand);border-radius:8px;padding:3px 10px;font-size:12px;font-weight:600}.profile-section-heading{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line-soft);margin:14px 0 8px;padding-bottom:4px;font-size:11px;font-weight:700}.profile-pets{flex-direction:column;gap:8px;display:flex}.profile-pet-row{background:var(--card-2);border-radius:var(--r-md);border:1px solid var(--line-soft);align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.profile-pet-info{flex:1;min-width:0}.profile-pet-name{color:var(--ink);align-items:center;gap:5px;font-size:13px;font-weight:700;display:flex}.profile-pet-sub{color:var(--ink-3);margin-top:1px;font-size:11px}.profile-pet-bio{color:var(--ink-2);margin-top:3px;font-size:12px;font-style:italic;line-height:1.4}.profile-rebirth-badge{color:#7a36b8;border-radius:var(--r-pill);background:#f0e0ff;padding:1px 6px;font-size:10px;font-weight:500}.profile-achievements{flex-wrap:wrap;gap:6px;display:flex}.profile-ach-badge{background:var(--brand-soft);border-radius:var(--r-pill);border:1px solid color-mix(in srgb, var(--brand) 30%, transparent);color:var(--brand-2);align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.profile-ach-total{color:var(--ink-3);margin-top:6px;font-size:12px}.profile-stats-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:4px;display:grid}.profile-stat{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:10px;padding:8px 4px}.profile-stat-value{color:var(--brand-2);font-size:18px;font-weight:800;line-height:1.1}.profile-stat-label{color:var(--ink-3);margin-top:3px;font-size:10px}.profile-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.profile-visit-btn{background:var(--brand);border-radius:var(--r-md);color:#fff;cursor:pointer;touch-action:manipulation;border:none;flex:1;min-width:120px;padding:10px 14px;font-size:14px;font-weight:700;transition:background .15s}.profile-visit-btn:hover{background:var(--brand-2)}.profile-share-btn{background:var(--card-2);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink-2);cursor:pointer;touch-action:manipulation;padding:10px 16px;font-size:13px;font-weight:600;transition:background .15s}.profile-share-btn:hover{background:var(--card)}.profile-referral{background:var(--card-2);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:6px;margin-bottom:10px;padding:10px 12px;display:flex}.profile-referral-row{align-items:center;gap:10px;display:flex}.profile-referral-code{letter-spacing:.12em;color:var(--brand);background:var(--card);border:1px solid var(--line);border-radius:6px;padding:2px 10px;font-family:monospace;font-size:1.2rem;font-weight:700}.profile-referral-count{color:var(--text-2);font-size:.85rem}.profile-referral-hint{color:var(--text-2);margin:0;font-size:.78rem}.profile-ref-btn{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:8px;align-self:flex-start;padding:7px 14px;font-size:.85rem;transition:opacity .15s}.profile-ref-btn:hover{opacity:.85}.visit-profile-btn{background:var(--card-2);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--ink-2);cursor:pointer;touch-action:manipulation;flex-shrink:0;padding:5px 12px;font-size:12px;font-weight:700;transition:background .15s}.visit-profile-btn:hover{background:var(--brand-soft);color:var(--brand-2)}@media (orientation:landscape) and (height<=480px){.modal-overlay,.modal-backdrop{align-items:center;padding:8px}.modal-overlay>*,.modal-backdrop>*{border-radius:var(--r-xl);width:auto;max-width:min(90vw,480px);max-height:92svh;padding-bottom:20px}}.vw-root{flex-direction:column;align-items:center;gap:10px;margin:4px 0 12px;display:flex}.vw-stage{place-items:center;display:grid;position:relative}.vw-svg{filter:drop-shadow(0 4px 10px #78501e1f);display:block}.vw-root[data-low-hunger] .vw-svg{animation:1.4s ease-in-out infinite vw-breathe}.vw-root[data-sick] .vw-svg{filter:drop-shadow(0 0 10px #d970708c)}@keyframes vw-breathe{0%,to{filter:drop-shadow(0 4px 10px #78501e1f)}50%{filter:drop-shadow(0 0 14px #d97f2f73)}}.vw-arc-fill{transition:d .6s cubic-bezier(.4,1.6,.5,1)}.vw-center{pointer-events:none;place-items:center;gap:4px;display:grid;position:absolute;inset:0}.vw-center>span{image-rendering:pixelated}.vw-lv{font-family:var(--font-display);color:var(--brand-2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:var(--r-pill);border:1px solid var(--line-soft);letter-spacing:.02em;background:#ffffffd9;padding:2px 10px;font-size:13px;font-weight:800}.vw-callout{border:1.5px solid color-mix(in srgb, var(--accent) 50%, transparent);border-radius:var(--r-md);pointer-events:none;background:#fff;flex-direction:column;align-items:center;min-width:44px;padding:4px 9px;display:flex;position:absolute;box-shadow:0 4px 12px #78501e1a}.vw-callout .vw-em{font-size:14px;line-height:1}.vw-callout .vw-vl{font-family:var(--font-display);color:var(--accent);font-variant-numeric:tabular-nums;margin-top:2px;font-size:17px;font-weight:800;line-height:1}.vw-callout .vw-lb{color:var(--ink-3);letter-spacing:.06em;margin-top:2px;font-size:9px;font-weight:700}.vw-callout.vw-low{border-color:var(--red);background:var(--red-soft);animation:1.2s ease-in-out infinite vw-callout-pulse}.vw-callout.vw-low .vw-vl{color:var(--red)}@keyframes vw-callout-pulse{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 3px))}}.vw-exp{width:100%;color:var(--ink-3);grid-template-columns:36px 1fr 60px;align-items:center;gap:8px;margin-top:4px;font-size:11px;font-weight:700;display:grid}.vw-exp-lb{color:var(--ink-2)}.vw-exp-track{background:var(--line-soft);border-radius:var(--r-pill);border:1px solid color-mix(in srgb, var(--line) 80%, transparent);height:8px;overflow:hidden}.vw-exp-fill{border-radius:inherit;background:linear-gradient(180deg, #ffffff73, #fff0 40%), linear-gradient(90deg, var(--brand-soft), var(--brand));height:100%;transition:width .6s cubic-bezier(.4,1.6,.5,1)}.vw-exp-val{text-align:right;color:var(--ink-3);font-variant-numeric:tabular-nums}.act-section-lb{font-family:var(--font-display);color:var(--ink-3);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;margin:14px 0 8px;font-size:11px;font-weight:800;display:flex}.act-section-lb>span:first-child{white-space:nowrap}.act-section-lb:after{content:"";background:var(--line-soft);flex:1;order:99;height:1px}.act-section-lb .act-nudge{background:var(--brand);color:#fff;border-radius:var(--r-pill);letter-spacing:0;text-transform:none;box-shadow:0 2px 0 var(--brand-2);padding:2px 9px;font-size:10px;font-weight:800;animation:1.4s ease-in-out infinite vw-callout-pulse}.act[data-suggested]:after{content:"建議";color:var(--brand-2);font-family:var(--font-display);border-radius:var(--r-pill);box-shadow:0 2px 0 var(--brand-2);z-index:2;background:#fff;padding:2px 8px;font-size:10px;font-weight:800;position:absolute;top:-8px;right:-6px}[data-locale=en] .act[data-suggested]:after{content:"Suggested"}.actions-chips{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.act-chip{border-radius:var(--r-pill);border:1px solid var(--line);color:var(--ink-2);cursor:pointer;touch-action:manipulation;background:0 0;align-items:center;gap:6px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:background .15s,transform .12s,border-color .15s;display:inline-flex}.act-chip:hover:not(:disabled){background:var(--card-2);border-color:var(--brand);color:var(--ink);transform:translateY(-1px)}.act-chip:active:not(:disabled){transform:translateY(0)}.act-chip:disabled{opacity:.45;cursor:not-allowed}.act-chip .ac-em{font-size:14px}.act-chip .ac-meta{color:var(--ink-3);margin-left:2px;font-size:10px;font-weight:500}.pet-action-msg{text-align:center;color:var(--ink-2);margin:8px 0 0;font-size:12px;animation:.2s fadeIn}.adventure-modal{text-align:center;width:96%;max-width:360px}.modal-title{color:var(--ink);margin-bottom:4px;font-size:18px;font-weight:800}.adventure-sub{color:var(--ink-2);margin:0 0 14px;font-size:13px}.adventure-tiers{justify-content:center;gap:8px;margin-bottom:12px;display:flex}.adventure-tier{border:2px solid var(--line-soft);background:var(--card-2);cursor:pointer;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:10px 6px;transition:border-color .15s,background .15s;display:flex}.adventure-tier.selected{background:#fff8ee;border-color:#e8a020}.adventure-tier-label{color:var(--ink);font-size:14px;font-weight:700}.adventure-tier-gold{color:#c07820;font-size:11px;font-weight:600}.adventure-tier-extras{color:var(--ink-3);font-size:10px}.adventure-zones{justify-content:center;gap:8px;margin-bottom:12px;display:flex}.adventure-zone-card{border:2px solid var(--line-soft);background:var(--card-2);cursor:pointer;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 6px;transition:border-color .15s,background .15s;display:flex}.adventure-zone-card.selected{background:#fff8ee;border-color:#e8a020}.adventure-zone-card.locked{opacity:.55;cursor:not-allowed}.adventure-zone-card.weather-disabled{opacity:.55;cursor:not-allowed;background:#fffbeb;border-color:#f59e0b}.adventure-weather-warn{border-radius:var(--r-sm);color:#92400e;background:#fef3c7;border:1px solid #f59e0b;margin-bottom:8px;padding:6px 10px;font-size:12px}.az-icon{font-size:22px}.az-name{color:var(--ink);font-size:13px;font-weight:700}.az-duration{color:var(--ink-3);font-size:11px}.az-gold{color:#c07820;font-size:11px;font-weight:600}.az-extras{color:var(--ink-3);font-size:10px}.az-lock{color:#c04040;margin-top:2px;font-size:10px;font-weight:600}.adventure-req{color:var(--ink-3);margin:0 0 10px;font-size:12px}.adventure-error{color:#e05555;margin:6px 0;font-size:12px}.adventure-active{flex-direction:column;align-items:center;gap:8px;padding:16px 0;display:flex}.adventure-active-icon{font-size:40px}.adventure-active-label{color:var(--ink);font-size:15px;font-weight:700}.adventure-countdown{color:#e8a020;font-variant-numeric:tabular-nums;letter-spacing:2px;font-size:28px;font-weight:800}.adventure-active-hint{color:var(--ink-3);margin:0;font-size:12px}.adventure-reward-banner{text-align:center;background:linear-gradient(135deg,#fff8ee 0%,#fef3c7 100%);border:1.5px solid #f0c040;border-radius:12px;margin-bottom:12px;padding:10px 14px}.adventure-reward-title{color:#c07820;margin-bottom:6px;font-size:14px;font-weight:800}.adventure-reward-items{color:var(--ink);justify-content:center;gap:12px;font-size:15px;font-weight:700;display:flex}.adventure-event-desc{color:#7a5c20;margin-top:8px;font-size:12px;font-style:italic}.warn-row--adventure{background:#f4fdf0;border-color:#a8d08a}.warn-row--adventure .warn-ttl{color:#3a7d2a}.friend-subtabs{gap:6px;margin-bottom:10px;display:flex}.friend-subtab{border:1.5px solid var(--line-soft);background:var(--card-2);color:var(--ink-2);cursor:pointer;border-radius:8px;flex:1;padding:6px 0;font-size:12px;font-weight:600}.friend-subtab.active{color:#c07820;background:#fff8ee;border-color:#e8a020}.feed-list{flex-direction:column;gap:8px;display:flex}.feed-entry{background:var(--card-2);border:1px solid var(--line-soft);border-radius:10px;align-items:flex-start;gap:8px;padding:10px;display:flex}.feed-icon{flex-shrink:0;margin-top:2px;font-size:20px}.feed-body{flex:1;min-width:0}.feed-header{flex-wrap:wrap;align-items:baseline;gap:2px;margin-bottom:3px;display:flex}.feed-owner{color:var(--ink);font-size:12px;font-weight:700}.feed-pet{color:var(--ink-3);font-size:11px}.feed-content{color:var(--ink-2);margin:0 0 4px;font-size:12px;line-height:1.4}.feed-time{color:var(--ink-4,#bbb);font-size:10px}.memory-panel{flex-direction:column;gap:4px;display:flex}.memory-month{flex-direction:column;gap:0;display:flex}.memory-month-header{color:var(--muted);border-bottom:1px solid var(--border);letter-spacing:.05em;margin-bottom:4px;padding:8px 0 4px;font-size:11px;font-weight:700}.memory-item{border-bottom:1px solid #f0f0f0;align-items:flex-start;gap:8px;padding:6px 0;display:flex}.memory-item-icon{flex-shrink:0;margin-top:1px;font-size:14px}.memory-item-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.memory-item-date{color:var(--muted);font-size:10px}.memory-item-text{color:var(--ink);word-break:break-word;font-size:12px;line-height:1.4}.memory-item-bond .memory-item-icon{color:#f59e0b}.memory-item-photo .memory-item-icon{color:#6366f1}.farm-panel{flex-direction:column;gap:16px;display:flex}.farm-plots{grid-template-columns:1fr 1fr;gap:10px;display:grid}.farm-plot{background:#f8f4ee;border:2px solid #d0b080;border-radius:10px;flex-direction:column;gap:6px;min-height:100px;padding:10px;display:flex}.farm-plot-ready{background:#f0fff0;border-color:#70b840}.farm-plot-growing{border-color:#a0c080}.farm-plot-empty{border-color:#c0a060}.farm-plot-label{color:#8b6a50;font-size:11px;font-weight:700}.farm-crop{color:#5a3a1a;font-size:15px;font-weight:700}.farm-timer{color:#8b6050;font-size:12px}.farm-ready{color:#409840;font-size:12px;font-weight:700}.farm-harvest-btn{color:#fff;cursor:pointer;background:#70b840;border:none;border-radius:6px;margin-top:auto;padding:4px 10px;font-size:12px}.farm-harvest-btn:hover:not(:disabled){background:#509020}.farm-harvest-btn:disabled{opacity:.5}.farm-plant-select{flex-direction:column;gap:4px;display:flex}.farm-crop-btn{cursor:pointer;text-align:left;color:#5a3a1a;background:#fff8ee;border:1px solid #c0a060;border-radius:6px;padding:4px 8px;font-size:12px}.farm-crop-btn:hover:not(:disabled){background:#fed}.farm-crop-btn:disabled{opacity:.5}.farm-crop-time{color:#a08060;margin-left:4px;font-size:11px}.farm-upgrade-btn{cursor:pointer;color:#2d6a4f;background:#e0f7e9;border:1px solid #a8d8b0;border-radius:8px;padding:6px 14px;font-size:12px;font-weight:600}.farm-upgrade-btn:hover:not(:disabled){background:#b7e4c7}.farm-upgrade-btn:disabled{opacity:.5;cursor:not-allowed}.farm-materials{margin-top:4px}.farm-materials-title{color:#5a3a1a;margin-bottom:8px;font-size:13px;font-weight:700}.farm-materials-grid{flex-wrap:wrap;gap:8px;display:flex}.farm-material-item{color:#5a3a1a;background:#fff8ee;border:1px solid #d0b080;border-radius:8px;align-items:center;gap:4px;padding:4px 10px;font-size:13px;display:flex}.farm-material-count{color:#805030;font-weight:700}.craft-section{margin-top:8px}.craft-toggle-btn{color:#5a3a1a;cursor:pointer;text-align:left;background:#f0e8d8;border:1px solid #c0a060;border-radius:8px;width:100%;padding:8px;font-size:13px;font-weight:700}.craft-toggle-btn:hover{background:#e8ddc8}.craft-recipes{flex-direction:column;gap:8px;margin-top:8px;display:flex}.craft-recipe{background:#fdf8f0;border:2px solid #d0b080;border-radius:8px;padding:8px 10px}.craft-recipe.craft-can{border-color:#90c040}.craft-recipe.craft-no{opacity:.7}.craft-recipe-header{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.craft-recipe-name{color:#5a3a1a;font-size:13px;font-weight:700}.craft-recipe-desc{color:#8b6050;font-size:11px}.craft-materials{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.craft-mat{color:#5a3a1a;background:#f0e0c0;border-radius:4px;padding:2px 6px;font-size:12px}.craft-mat-ok{background:#d0f0c0}.craft-mat-miss{background:#f8d0c0}.craft-actions{gap:6px;display:flex}.craft-btn{color:#fff;cursor:pointer;background:#90c040;border:none;border-radius:6px;padding:4px 12px;font-size:12px}.craft-btn:hover:not(:disabled){background:#70a020}.craft-btn:disabled{opacity:.4}.craft-use-btn{color:#fff;cursor:pointer;background:#6080d0;border:none;border-radius:6px;padding:4px 8px;font-size:11px}.craft-use-btn:hover:not(:disabled){background:#4060b0}.craft-use-btn:disabled{opacity:.4}.forge-section{background:linear-gradient(135deg,#f8f0ff 0%,#fff8f0 100%);border:1px solid #a060e0;border-radius:8px;padding:4px}.forge-toggle{color:#fff!important;background:linear-gradient(135deg,#7c3aed,#d97706)!important;border-color:#7c3aed!important}.forge-btn{background:linear-gradient(90deg,#7c3aed,#d97706)!important}.forge-btn:hover:not(:disabled){opacity:.85}.forge-used-badge{color:#9ca3af;font-size:11px;font-style:italic}.forge-toast{border-radius:6px;margin-bottom:6px;padding:6px 10px;font-size:12px;font-weight:600}.forge-toast.ok{color:#15803d;background:#f0fdf4;border:1px solid #86efac}.forge-toast.err{color:#dc2626;background:#fef2f2;border:1px solid #fca5a5}@media (width<=480px){.bp-tab .tab-label{display:none}.bp-tab{min-width:36px;padding:5px 4px;font-size:14px}.game-canvas-wrap{width:100vw}.modal-box,.modal{width:95vw;max-height:88vh;overflow-y:auto}button{min-height:36px}.pet-stats-row{flex-direction:column}.bottom-panel{max-height:60vh}.lb-tabs{flex-wrap:wrap;gap:2px}.lb-tab{min-width:44px;padding:4px 6px;font-size:11px}.farm-plots{grid-template-columns:1fr}.craft-recipe-header{flex-direction:column;gap:2px}.world-map-grid{grid-template-columns:1fr 1fr 1fr}}.world-map-modal{width:95vw;max-width:460px}.world-map-modal .modal-header{align-items:center;gap:8px;display:flex}.world-map-weather{color:var(--muted);border-radius:var(--r-sm);background:#f0f4ff;margin-left:auto;padding:2px 8px;font-size:13px}.world-map-storm-warn{border-radius:var(--r-sm);color:#92400e;background:#fef3c7;border:1px solid #f59e0b;margin-bottom:10px;padding:7px 12px;font-size:12px}.world-map-error{color:var(--red);margin-bottom:8px;font-size:13px}.world-map-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;display:grid}.zone-card{border:2px solid var(--line-soft);background:var(--card-2);border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;transition:border-color .15s,background .15s,opacity .15s;display:flex}.zone-card-locked{opacity:.55;cursor:not-allowed}.zone-card-active{cursor:default;background:#eff6ff;border-color:#3b82f6}.zone-card-disabled{opacity:.55;cursor:not-allowed;background:#fffbeb;border-color:#f59e0b}.zone-card-available{cursor:pointer}.zone-card-available:hover{background:#f5eeff;border-color:#7c5cbf}.zone-card-icon{font-size:28px}.zone-card-name{color:var(--ink);font-size:14px;font-weight:700}.zone-card-level{color:var(--muted);font-size:11px}.zone-card-duration{color:var(--ink-3);font-size:11px}.zone-card-gold{color:#c07820;font-size:12px;font-weight:600}.zone-card-extras{color:var(--ink-3);font-size:11px}.zone-card-badge{color:#374151;background:#e5e7eb;border-radius:10px;margin-top:4px;padding:2px 8px;font-size:11px;font-weight:700}.zone-timer{color:#1e40af;background:#dbeafe}.zone-disabled-badge{color:#92400e;background:#fef3c7}.zone-start-badge{color:#065f46;background:#d1fae5}.world-map-collect-btn{background:var(--purple);color:#fff;border-radius:var(--r-sm);cursor:pointer;border:none;width:100%;margin-top:4px;padding:10px;font-size:14px;font-weight:700}.world-map-collect-btn:hover{background:#6a4aad}.world-map-collect-btn:disabled{opacity:.6;cursor:not-allowed}.world-map-on-adventure{text-align:center;color:#1e40af;margin-top:4px;font-size:13px}.world-map-hunger-warn{text-align:center;color:#c04040;margin-top:4px;font-size:12px}.pwa-banner{border-radius:var(--r-sm);color:#0c4a6e;background:#e0f2fe;align-items:center;gap:10px;margin:0 0 8px;padding:10px 16px;font-size:13px;display:flex}.pwa-banner span{flex:1}.pwa-install-btn{border-radius:var(--r-sm);color:#fff;cursor:pointer;background:#0284c7;border:none;padding:5px 14px;font-size:13px;font-weight:700}.pwa-install-btn:hover{background:#0369a1}.pwa-dismiss-btn{border-radius:var(--r-sm);color:#0c4a6e;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:14px}.dungeon-modal{background:var(--surface);border-radius:var(--r-lg);width:min(520px,95vw);max-height:85vh;box-shadow:var(--shadow-lg);overflow-y:auto}.dungeon-modal-header{color:var(--brand);border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:14px 16px;font-size:16px;font-weight:800;display:flex}.dungeon-list{flex-direction:column;gap:10px;padding:12px;display:flex}.dungeon-card{border:1px solid var(--line-soft);border-radius:var(--r-sm);cursor:pointer;padding:12px;transition:background .15s}.dungeon-card:hover{background:var(--hover-bg)}.dungeon-card-header{align-items:center;gap:12px;margin-bottom:8px;display:flex}.dungeon-card-icon{font-size:28px}.dungeon-card-name{color:var(--ink);font-size:15px;font-weight:700}.dungeon-card-meta{color:var(--ink-3);margin-top:2px;font-size:12px}.dungeon-card-progress{align-items:center;gap:4px;font-size:14px;display:flex}.dungeon-pip{color:var(--line-soft)}.dungeon-pip.done{color:#f59e0b}.dungeon-card-cooldown{color:#ef4444;margin-top:6px;font-size:12px}.dungeon-detail{padding:12px}.dungeon-back-btn{border-radius:var(--r-sm);background:var(--hover-bg);color:var(--ink);cursor:pointer;border:none;margin-bottom:12px;padding:6px 12px;font-size:13px}.dungeon-detail-title{color:var(--brand);margin-bottom:4px;font-size:18px;font-weight:800}.dungeon-detail-meta{color:var(--ink-3);margin-bottom:10px;font-size:12px}.dungeon-cooldown{border-radius:var(--r-sm);color:#ef4444;background:#fef2f2;border:1px solid #fca5a5;margin-bottom:10px;padding:8px 12px;font-size:13px}.dungeon-error{color:#ef4444;text-align:center;margin:8px 0;font-size:13px}.dungeon-stages{flex-direction:column;gap:8px;display:flex}.dungeon-stage{border:1px solid var(--line-soft);border-radius:var(--r-sm);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.dungeon-stage.cleared{background:#f0fdf4;border-color:#86efac}.dungeon-stage.available{background:#fefce8;border-color:#fde68a}.dungeon-stage.locked{opacity:.55}.dungeon-stage-boss{color:var(--ink);font-size:14px;font-weight:700}.dungeon-stage-info{color:var(--ink-3);flex:1;font-size:11px}.dungeon-stage-badge{color:var(--ink-3);font-size:12px}.dungeon-stage-badge.locked{color:#999}.dungeon-boss-skill-badge{color:#dc2626;white-space:nowrap;background:#ef44441f;border-radius:4px;margin-left:5px;padding:1px 5px;font-size:10px;font-weight:700}.dungeon-reflect-notice{color:#9333ea;margin-bottom:8px;font-size:13px;font-weight:700}.dungeon-challenge-btn{border-radius:var(--r-sm);color:#fff;cursor:pointer;white-space:nowrap;background:#ef4444;border:none;padding:6px 14px;font-size:13px;font-weight:700}.dungeon-challenge-btn:hover:not(:disabled){background:#dc2626}.dungeon-challenge-btn:disabled{opacity:.55;cursor:default}.dungeon-result{border-radius:var(--r-sm);text-align:center;margin-bottom:12px;padding:14px}.dungeon-result.won{background:#f0fdf4;border:1px solid #86efac}.dungeon-result.lost{background:#fef2f2;border:1px solid #fca5a5}.dungeon-result-title{margin-bottom:8px;font-size:18px;font-weight:800}.dungeon-result-powers{color:var(--ink-2);margin-bottom:8px;font-size:13px}.dungeon-result-rewards{color:#15803d;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:8px;font-size:14px;font-weight:700;display:flex}.dungeon-gem-reward{color:#7c3aed}.dungeon-all-clear{color:#d97706;margin-bottom:8px;font-size:14px;font-weight:700}.dungeon-continue-btn{border-radius:var(--r-sm);background:var(--brand);color:#fff;cursor:pointer;border:none;padding:8px 20px;font-size:13px;font-weight:700}.dungeon-open-btn{border-radius:var(--r-sm);color:#fff;cursor:pointer;background:#ef4444;border:none;padding:10px 24px;font-size:14px;font-weight:700}.dungeon-open-btn:hover{background:#dc2626}.dungeon-trial-row{border-radius:var(--r-sm);background:#f0f7ff;border:1px solid #bfdbfe;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:8px 12px;font-size:12px;display:flex}.dungeon-trial-badge{color:#2563eb;font-weight:700}.dungeon-trial-toggle{cursor:pointer;color:var(--ink-2);align-items:center;gap:4px;display:flex}.dungeon-trial-locked{color:#999;font-style:italic}.dungeon-trial-bonus{color:#16a34a;font-weight:700}.dungeon-trial-tag{color:#7c3aed;font-size:11px}.guild-war-section{padding:8px 0}.guild-war-status{text-align:center;color:var(--brand);margin-bottom:12px;font-size:14px;font-weight:700}.guild-war-scoreboard{background:var(--card-2);border-radius:var(--r-md);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:14px;display:flex}.guild-war-side{text-align:center;flex:1}.guild-war-name{color:var(--ink);margin-bottom:4px;font-size:13px;font-weight:700}.guild-war-score{color:var(--brand);font-size:22px;font-weight:900}.guild-war-vs{color:var(--ink-3);flex-shrink:0;font-size:16px;font-weight:900}.guild-war-contribute{text-align:center}.guild-war-btn-row{justify-content:center;gap:8px;margin-top:8px;display:flex}.guild-war-declare-row{gap:8px;margin-top:12px;display:flex}.guild-war-input{border:1px solid var(--line-soft);border-radius:var(--r-sm);background:var(--bg-card);color:var(--ink);flex:1;padding:8px 12px;font-size:13px}.contest-cat-tabs{gap:6px;margin-bottom:12px;display:flex}.contest-cat-tab{border:1px solid var(--line-soft);background:var(--card-2);color:var(--ink-2);cursor:pointer;border-radius:20px;padding:6px 14px;font-size:13px}.contest-cat-tab.active{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700}.farm-event-toast{border-radius:var(--r-sm);color:#92400e;text-align:center;background:#fef3c7;border:1px solid #fcd34d;margin-bottom:10px;padding:8px 14px;font-size:13px;font-weight:700;animation:.3s slideDown}.farm-crop-section-label{color:#7c3aed;text-transform:uppercase;letter-spacing:.05em;margin:4px 0 2px;font-size:11px;font-weight:700}.farm-crop-seasonal{color:#6d28d9!important;border-color:#c4b5fd!important}.minigame-score{color:#7c3aed;margin-left:8px;font-size:13px;font-weight:600}.league-tier-bronze{color:#92400e}.league-tier-silver{color:#6b7280}.league-tier-gold{color:#d97706}.league-tier-master{color:#7c3aed}
