:root,[data-theme=light]{--primary:#f59e0b;--primary-light:#fbbf24;--primary-lighter:#fde68a;--primary-bg:#fffbeb;--accent-blue:#7dd3fc;--accent-blue-light:#bae6fd;--accent-blue-lighter:#e0f2fe;--accent-pink:#f9a8d4;--bg:#fffbeb;--bg-card:#ffffffd9;--bg-card-hover:#fffffff2;--bg-overlay:#fffbebb3;--text:#4a3728;--text-secondary:#78716c;--text-muted:#a8a29e;--border:#f59e0b33;--border-hover:#f59e0b80;--shadow:0 4px 24px #f59e0b1f;--shadow-hover:0 8px 32px #f59e0b33;--tag-bg:#f59e0b1a;--tag-text:#b45309;--gradient-1:linear-gradient(135deg, #fbbf24, #f59e0b);--gradient-2:linear-gradient(135deg, #fde68a, #fbbf24);--gradient-3:linear-gradient(135deg, #7dd3fc, #fbbf24);--gradient-tab:linear-gradient(135deg, #7dd3fc, #f59e0b);--card-backdrop:blur(16px) saturate(180%);--color-white:#fff;--particle-colors:#fbbf24, #f59e0b, #fcd34d, #7dd3fc, #fde68a;--particle-link-color:#fbbf24;--github-calendar-light:#ebedf0, #fef3c7, #fde68a, #fbbf24, #f59e0b;--github-calendar-dark:#161b22, #451a03, #92400e, #d97706, #fbbf24;--name-gradient:linear-gradient(90deg, #7dd3fc 0%, #38bdf8 25%, #fbbf24 50%, #f59e0b 75%, #7dd3fc 100%);--tab-indicator-bg:radial-gradient(circle at 30% 50%, #7dd3fc 0%, transparent 55%), radial-gradient(circle at 70% 40%, #fbbf24 0%, transparent 55%), radial-gradient(circle at 50% 70%, #38bdf8 0%, transparent 50%), radial-gradient(circle at 40% 30%, #f59e0b 0%, transparent 50%), radial-gradient(circle at 60% 60%, #7dd3fc 0%, transparent 60%);--card-hover-bg:radial-gradient(circle at 25% 45%, #fde68a33 0%, transparent 50%), radial-gradient(circle at 70% 35%, #fbbf2433 0%, transparent 55%), radial-gradient(circle at 45% 70%, #fcd34d33 0%, transparent 45%), radial-gradient(circle at 65% 55%, #fef3c733 0%, transparent 50%), radial-gradient(circle at 35% 65%, #f59e0b33 0%, transparent 55%);--shimmer-gradient:linear-gradient(120deg, transparent 0%, transparent 30%, #fffbeb40 45%, #fff 50%, #fffbeb40 55%, transparent 70%, transparent 100%)}[data-theme=dark]{--primary:#fbbf24;--primary-light:#f59e0b;--primary-lighter:#b45309;--primary-bg:#1c1917;--accent-blue:#38bdf8;--accent-blue-light:#7dd3fc;--accent-blue-lighter:#1e3a5f;--accent-pink:#f472b6;--bg:#1c1917;--bg-card:#292524d9;--bg-card-hover:#292524f2;--bg-overlay:#1c1917b3;--text:#e7e5e4;--text-secondary:#a8a29e;--text-muted:#78716c;--border:#f59e0b26;--border-hover:#f59e0b66;--shadow:0 4px 24px #0000004d;--shadow-hover:0 8px 32px #0006;--tag-bg:#f59e0b26;--tag-text:#fbbf24;--gradient-1:linear-gradient(135deg, #fbbf24, #f59e0b);--gradient-2:linear-gradient(135deg, #fde68a, #fbbf24);--gradient-3:linear-gradient(135deg, #7dd3fc, #fbbf24);--gradient-tab:linear-gradient(135deg, #7dd3fc, #f59e0b);--card-backdrop:blur(16px) saturate(120%);--color-white:#fff;--particle-colors:#fbbf24, #f59e0b, #fcd34d, #7dd3fc, #fde68a;--particle-link-color:#fbbf24;--github-calendar-light:#ebedf0, #fef3c7, #fde68a, #fbbf24, #f59e0b;--github-calendar-dark:#161b22, #451a03, #92400e, #d97706, #fbbf24;--name-gradient:linear-gradient(90deg, #7dd3fc 0%, #38bdf8 25%, #fbbf24 50%, #f59e0b 75%, #7dd3fc 100%);--tab-indicator-bg:radial-gradient(circle at 30% 50%, #7dd3fc 0%, transparent 55%), radial-gradient(circle at 70% 40%, #fbbf24 0%, transparent 55%), radial-gradient(circle at 50% 70%, #38bdf8 0%, transparent 50%), radial-gradient(circle at 40% 30%, #f59e0b 0%, transparent 50%), radial-gradient(circle at 60% 60%, #7dd3fc 0%, transparent 60%);--card-hover-bg:radial-gradient(circle at 25% 45%, #fde68a 0%, transparent 50%), radial-gradient(circle at 70% 35%, #fbbf24 0%, transparent 55%), radial-gradient(circle at 45% 70%, #fcd34d 0%, transparent 45%), radial-gradient(circle at 65% 55%, #fef3c7 0%, transparent 50%), radial-gradient(circle at 35% 65%, #f59e0b 0%, transparent 55%);--shimmer-gradient:linear-gradient(120deg, transparent 0%, transparent 30%, #b453091f 40%, #92400e59 50%, #b453091f 60%, transparent 70%, transparent 100%)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Ubuntu,Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif;line-height:1.6;overflow:hidden}a{color:inherit;text-decoration:none}ul,ol{list-style:none}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background:var(--bg);color:var(--text);font-family:Ubuntu,Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif;line-height:1.6;transition:background .3s,color .3s;overflow-x:hidden}body:before{content:"";opacity:.12;z-index:-2;pointer-events:none;background:url(https://r.dreamgary.cn/images/hanser2025.jpg) 50%/cover no-repeat;width:100%;height:100%;position:fixed;top:0;left:0}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-light)}ul{list-style:none}img{max-width:100%;height:auto}.page svg{color:var(--accent-blue)}.particles-bg{z-index:0;pointer-events:none;width:100%;height:100%;top:0;left:0;position:fixed!important}.app{z-index:1;flex-direction:column;height:100vh;transition:background .3s;display:flex;position:relative;overflow:hidden}.app-body{flex-flow:row;flex:1;width:100%;max-width:90%;margin:0;padding:0 20px;display:flex}.snap-container{scrollbar-width:none;scroll-snap-type:y mandatory;scroll-behavior:smooth;z-index:1;flex:1;min-width:0;height:calc(100vh - 69px);position:relative;overflow:hidden auto}.snap-container::-webkit-scrollbar{display:none}.auth-snap-wrapper{z-index:1;flex:1;min-width:0;height:calc(100vh - 69px);position:relative;overflow:hidden}.auth-snap-wrapper .snap-section{scroll-snap-align:none}.snap-section{scroll-snap-align:start;min-height:calc(100vh - 69px);padding:32px 32px 40px;position:relative}.global-sidebar{z-index:2;flex-direction:column;flex:0 0 380px;align-items:flex-start;width:480px;padding:160px 20px 60px;display:flex;position:relative}.sidebar-top{align-items:center;gap:10px;display:flex}.sidebar-top .avatar-wrapper{flex-shrink:0;width:170px;height:170px;position:relative}.sidebar-top .avatar{object-fit:cover;border:3px solid var(--primary-light);border-radius:50%;width:170px;height:170px;transition:transform .3s;display:block}.sidebar-top .avatar:hover{transform:scale(1.05)}.sidebar-top .avatar-ring{border:2px dashed var(--accent-blue-light);pointer-events:none;border-radius:50%;width:180px;height:180px;animation:20s linear infinite spin;position:absolute;top:-5px;left:-5px}@keyframes spin{to{transform:rotate(360deg)}}.sidebar-top .profile-name{flex-direction:column;line-height:1.3;display:flex}.sidebar-top .profile-greeting{background:var(--gradient-1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Pacifico,cursive;font-size:2.25rem}.sidebar-top .profile-name-main{background:var(--name-gradient);-webkit-text-fill-color:transparent;will-change:background-position;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;font-family:Pacifico,cursive;font-size:3rem;line-height:1.8;animation:8s linear infinite nameGradientShift}@keyframes nameGradientShift{0%{background-position:0%}to{background-position:200%}}.global-sidebar .lyrics-section{background:0 0;border-radius:0;width:100%;min-height:3em;margin:12px 0 0;padding:0}.global-sidebar .lyrics-typewriter{color:var(--text-secondary);word-break:break-all;text-align:left;font-size:.85rem}.global-sidebar .lyrics-cursor{color:var(--primary);font-weight:700;animation:1s infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.lyrics-gradient-bar{background:linear-gradient(90deg,#3b82f6,#facc15);border-radius:2px;height:4px;margin-top:4px;transition:width 80ms linear}.top-bar{box-sizing:border-box;z-index:100;-webkit-backdrop-filter:none;border-bottom:1px solid var(--border);background:0 0;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;padding:18px 20px;transition:border-color .3s;display:grid;position:sticky;top:0}[data-theme=dark] .top-bar{background:0 0}.tab-item.dimmed{pointer-events:auto;color:var(--text-secondary)!important;font-weight:400!important;animation:none!important;transform:none!important}.tab-item.dimmed:hover{opacity:1;color:var(--primary)!important}.top-bar-left{white-space:nowrap;align-items:center;gap:8px;display:flex}.site-title{background:var(--name-gradient);-webkit-text-fill-color:transparent;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;font-family:Pacifico,Ubuntu,cursive;font-size:1.5rem;line-height:1.8;animation:8s linear infinite nameGradientShift;display:inline-block}.site-subtitle{color:var(--text-secondary);white-space:nowrap;font-size:.85rem;transition:color .3s}.theme-toggle{border:2px solid var(--border);width:36px;height:36px;color:var(--primary);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;justify-self:end;align-items:center;font-size:1rem;transition:all .35s cubic-bezier(.22,.61,.36,1);display:flex}.theme-toggle:hover{border-color:var(--primary);box-shadow:0 0 20px var(--primary);transform:rotate(25deg)scale(1.1)}.theme-toggle:active{transform:scale(.85)rotate(0)}::view-transition-old(root){animation:none}::view-transition-new(root){clip-path:circle(0 at var(--vt-x,50%) var(--vt-y,50%));animation:.6s cubic-bezier(.22,.61,.36,1) forwards vt-reveal}@keyframes vt-reveal{to{clip-path:circle(150% at var(--vt-x,50%) var(--vt-y,50%))}}body{transition:background .3s,color .3s}.tab-bar{flex-wrap:nowrap;justify-content:center;gap:2px;display:flex;position:relative;overflow:visible}.tab-bar::-webkit-scrollbar{height:0}.tab-indicator{background:var(--tab-indicator-bg);background-blend-mode:screen, normal, overlay, normal, screen;z-index:0;pointer-events:none;height:100%;box-shadow:0 4px 20px var(--accent-blue), 0 0 0 2px var(--primary-light);will-change:transform, width, background-position;background-size:200% 200%;border-radius:12px;transition:transform .6s cubic-bezier(.34,1.56,.64,1),width .55s cubic-bezier(.34,1.56,.64,1),opacity .6s;animation:6s ease-in-out infinite gradientBlend;position:absolute;top:0;left:0}@keyframes gradientBlend{0%{background-position:30%,70% 40%,50% 70%,40% 30%,60% 60%}15%{background-position:55% 35%,45% 65%,75% 45%,25% 55%,40% 70%}30%{background-position:70% 60%,30% 30%,40% 80%,60% 40%,55% 35%}45%{background-position:45% 75%,65%,30%,70% 60%,35% 45%}60%{background-position:35% 45%,55% 70%,60% 35%,45% 65%,70% 55%}75%{background-position:60% 55%,40% 35%,55% 60%,35% 45%,50% 40%}90%{background-position:50% 40%,50% 55%,45% 65%,55% 35%,65%}to{background-position:30%,70% 40%,50% 70%,40% 30%,60% 60%}}.tab-item{color:var(--text-secondary);cursor:pointer;white-space:nowrap;z-index:1;background:0 0;border:none;border-radius:8px;flex-shrink:0;align-items:center;padding:6px 10px;font-family:inherit;font-size:1rem;transition:color .3s,transform .3s cubic-bezier(.22,.61,.36,1);display:flex;position:relative}.tab-item:hover{background:var(--tag-bg);color:var(--primary);transform:translateY(-3px)}.tab-item.active{color:var(--color-white);box-shadow:none;background:0 0;border-radius:12px;font-weight:600;animation:.5s cubic-bezier(.34,1.56,.64,1) jellyPop;transform:translateY(-1px)}@keyframes jellyPop{0%{transform:translateY(-1px)scale(.85)}40%{transform:translateY(-2px)scale(1.08)}70%{transform:translateY(-1px)scale(.96)}to{transform:translateY(-1px)scale(1)}}.tab-item:active{transform:scale(.92)}.snap-section:not(.entered) .page,.snap-section .animate-el{opacity:0}.snap-section.entered .animate-el{animation:.5s ease-out both elFloatUp}@keyframes elFloatUp{0%{opacity:0;transform:translateY(32px)}55%{opacity:1;transform:translateY(-9px)}to{opacity:1;transform:translateY(0)}}.page{padding:32px;transition:opacity .3s,transform .3s}.page h2{color:var(--primary);align-items:center;gap:8px;margin-bottom:20px;font-size:1.5rem;transition:color .3s;display:flex}.page h3{color:var(--text);margin:20px 0 12px;font-size:1.15rem;transition:color .3s}.page p{transition:color .3s}.home-page{text-align:left;padding:40px 32px}.profile-title{color:var(--text-secondary);margin:4px 0;font-size:1rem}.profile-mbti{color:var(--text-muted);font-size:.9rem}.profile-quote{color:var(--accent-pink);margin-top:8px;font-size:.95rem;font-style:italic}.quick-stats{flex-wrap:wrap;gap:16px;margin-top:20px;display:flex}.stat-item{background:var(--tag-bg);color:var(--tag-text);z-index:1;border-radius:30px;align-items:center;gap:8px;padding:10px 20px;font-size:.9rem;font-weight:500;transition:transform .3s cubic-bezier(.22,.61,.36,1);display:flex;position:relative;overflow:hidden}.stat-item:after{content:"";background:var(--shimmer-gradient);pointer-events:none;z-index:-1;background-position:150% 0;background-size:250% 100%;border-radius:30px;width:100%;height:100%;transition:background-position 1s;position:absolute;top:0;left:0}.stat-item:hover{transform:translateY(-2px)}.stat-item:hover:after{background-position:-50% 0}.stat-item svg{font-size:1.1rem;transition:transform .2s}.stat-item:hover svg{transform:scale(1.15)}.about-section{transition:opacity .3s}.about-content p{margin-bottom:10px;line-height:1.8;transition:color .3s}.tag-list{flex-wrap:wrap;gap:8px;display:flex}.tag{background:var(--tag-bg);color:var(--tag-text);z-index:1;border-radius:20px;padding:6px 16px;font-size:.9rem;font-weight:500;transition:transform .3s cubic-bezier(.22,.61,.36,1);position:relative;overflow:hidden}.tag:after{content:"";background:var(--shimmer-gradient);pointer-events:none;z-index:-1;background-position:150% 0;background-size:250% 100%;border-radius:20px;width:100%;height:100%;transition:background-position 1s;position:absolute;top:0;left:0}.tag:hover{transform:translateY(-2px)scale(1.03)}.tag:hover:after{background-position:-50% 0}.friendly{font-size:1.1rem;font-weight:600}.contact-cards{flex-direction:column;gap:6px;display:flex}.contact-card{cursor:pointer;border-bottom:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;padding:12px 16px;transition:all .3s cubic-bezier(.22,.61,.36,1);display:flex;position:relative;overflow:hidden}.contact-card:hover{color:var(--primary);padding-left:24px;transform:translateY(-2px)}.contact-card:last-child{border-bottom:none}.contact-icon{font-size:1.4rem}.contact-value{flex:1;font-size:.95rem}.copy-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:1rem;transition:color .2s}.copy-btn:hover{color:var(--primary)}.game-cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.game-card{border-radius:12px;align-items:center;gap:14px;padding:14px 18px;transition:all .3s cubic-bezier(.22,.61,.36,1);display:flex;position:relative;overflow:hidden}.game-card:hover{color:var(--primary);padding-left:24px;transform:translateY(-2px)}.game-icon{font-size:2rem}.game-info h3{margin:0 0 4px;font-size:1rem}.game-info p{color:var(--text-secondary);font-size:.9rem}.game-level{background:var(--gradient-1);color:var(--color-white);border-radius:10px;margin-top:4px;padding:2px 10px;font-size:.8rem;font-weight:600;display:inline-block}.anime-section{margin-bottom:24px}.character-grid{flex-wrap:wrap;gap:10px;display:flex}.char-card{color:var(--text);border-radius:10px;align-items:center;gap:8px;padding:8px 16px;transition:all .2s;display:flex;position:relative;overflow:hidden}.char-card:hover{color:var(--primary);transform:translateY(-2px)}.char-icon{font-size:1.3rem}.char-name{font-size:.95rem;font-weight:500}.project-card{color:var(--text);border-radius:12px;align-items:center;gap:14px;margin-bottom:6px;padding:14px 18px;transition:all .3s cubic-bezier(.22,.61,.36,1);display:flex;position:relative;overflow:hidden}.project-card:hover{color:var(--primary);padding-left:24px;transform:translateY(-2px)}.project-icon{color:var(--text);font-size:1.5rem}.project-info h4{margin:0;font-size:1rem}.project-info p{color:var(--text-secondary);font-size:.85rem}.project-arrow{color:var(--text-muted);font-size:.85rem}.github-calendar{margin:24px 0;padding:16px 0}.github-calendar h3{margin-top:0}.calendar-wrapper{padding:10px 0}.calendar-wrapper svg{max-width:100%}.calendar-wrapper rect[data-level]{outline:none;transition:stroke .15s}.calendar-wrapper rect[data-level]:hover{stroke:var(--primary);stroke-width:1.5px}.github-link{text-align:center;margin-top:10px}.react-activity-calendar__tooltip{z-index:1001;background:var(--bg-overlay);width:max-content;max-width:calc(100vw - 20px);color:var(--text);border-radius:8px;padding:6px 12px;font-size:.8rem;font-weight:500;box-shadow:0 4px 12px #0000004d}.react-activity-calendar__tooltip[data-color-scheme=dark]{background:var(--color-white,#fff);color:var(--dark-bg,#1c1917)}.react-activity-calendar__tooltip-arrow{fill:var(--dark-bg,#1c1917)}.react-activity-calendar__tooltip[data-color-scheme=dark] .react-activity-calendar__tooltip-arrow{fill:var(--color-white,#fff)}.links-grid{flex-direction:column;gap:6px;display:flex}.link-card{color:var(--text);border-radius:12px;align-items:center;gap:14px;padding:14px 18px;transition:all .3s cubic-bezier(.22,.61,.36,1);display:flex;position:relative;overflow:hidden}.link-card:hover{color:var(--primary);padding-left:24px;transform:translateY(-2px)}.link-icon{font-size:1.5rem}.link-info{flex:1}.link-name{font-size:.95rem;font-weight:600;display:block}.link-desc{color:var(--text-secondary);font-size:.8rem;display:block}.link-arrow{color:var(--text-muted);font-size:.85rem}.contact-card:after,.game-card:after,.char-card:after,.project-card:after,.link-card:after{content:"";border-radius:inherit;background:var(--card-hover-bg);background-blend-mode:screen, overlay, soft-light, overlay, screen;opacity:0;z-index:0;pointer-events:none;background-size:200% 200%;transition:opacity .35s;position:absolute;inset:0}.contact-card:hover:after,.game-card:hover:after,.char-card:hover:after,.project-card:hover:after,.link-card:hover:after{opacity:1}.app-footer{scroll-snap-align:start;text-align:center;color:var(--text-muted);box-sizing:border-box;z-index:2;border-top:1px solid var(--border);width:100%;padding:24px 20px;font-size:.85rem;position:relative}.app-footer p{margin:4px 0}.footer-quote{color:var(--accent-pink);font-style:italic}.back-to-top{border:2px solid var(--border);background:var(--bg);width:46px;height:46px;color:var(--primary);cursor:pointer;opacity:0;visibility:hidden;z-index:999;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;transition:all .3s;display:flex;position:fixed;bottom:30px;left:30px;transform:translateY(20px)}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background:var(--gradient-1);color:var(--color-white);box-shadow:0 8px 24px var(--primary);border-color:#0000;transform:translateY(-3px)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--primary-light)}.checkin-wrapper{z-index:10;width:fit-content;position:relative}.checkin-popup{background:var(--bg-overlay);border:1px solid var(--border);-webkit-backdrop-filter:blur(24px)saturate(160%);opacity:0;visibility:hidden;pointer-events:none;z-index:50;border-radius:18px;width:300px;padding:16px 18px;transition:opacity .25s,visibility .25s,transform .25s cubic-bezier(.22,.61,.36,1);position:absolute;bottom:calc(100% + 14px);left:0;transform:translateY(8px);box-shadow:0 12px 40px #00000026,0 4px 12px #00000014}.checkin-popup:after{content:"";border:8px solid #0000;border-top-color:var(--bg-overlay);filter:drop-shadow(0 2px 2px #0000000f);position:absolute;top:100%;left:32px}.checkin-popup.visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.checkin-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.checkin-title-row{align-items:center;gap:8px;display:flex}.checkin-title-icon{color:var(--primary);font-size:1.1rem}.checkin-title{color:var(--text);font-size:1rem;font-weight:600;transition:color .3s}.checkin-stats{align-items:center;gap:6px;display:flex}.checkin-streak{color:#f97316;background:#f973161f;border-radius:12px;align-items:center;gap:4px;padding:3px 10px;font-size:.85rem;font-weight:600;display:flex}.checkin-streak-icon{color:#f97316;animation:1.2s ease-in-out infinite firePulse}@keyframes firePulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.checkin-trophy{color:#eab308;font-size:1rem;animation:1s ease-in-out infinite trophyBounce}@keyframes trophyBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.checkin-month-nav{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.checkin-nav-btn{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;transition:all .2s;display:flex}.checkin-nav-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--tag-bg)}.checkin-month-label{color:var(--text);font-size:.85rem;font-weight:500;transition:color .3s}.checkin-month-count{color:var(--text-muted);margin-left:4px;font-size:.75rem}.checkin-weekdays{grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px;display:grid}.checkin-weekday{text-align:center;color:var(--text-muted);padding:4px 0;font-size:.7rem;font-weight:600}.checkin-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.checkin-cell{aspect-ratio:1;color:var(--text-secondary);cursor:default;background:0 0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;font-size:.8rem;transition:all .2s;display:flex;position:relative}.checkin-cell.empty{pointer-events:none}.checkin-cell.today{cursor:pointer;color:var(--primary);background:var(--tag-bg);border:1.5px solid var(--primary);font-weight:700}.checkin-cell.today:hover{box-shadow:0 0 12px var(--primary);transform:scale(1.12)}.checkin-cell.checked{background:var(--gradient-1);color:var(--color-white);border:none;font-weight:600}.checkin-cell.checked.today{border:2px solid var(--color-white);box-shadow:0 0 10px var(--primary)}.checkin-dot{margin-top:-2px;font-size:.55rem;line-height:1}.checkin-day-num{line-height:1}.checkin-btn{border:2px solid var(--border);background:var(--bg-overlay);-webkit-backdrop-filter:blur(12px)saturate(140%);width:64px;height:64px;color:var(--text);cursor:pointer;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:5px 0 0;font-family:inherit;font-size:.75rem;font-weight:600;transition:all .3s cubic-bezier(.22,.61,.36,1);display:flex;position:relative}.checkin-btn svg:first-child{font-size:1.2rem}.checkin-btn-label{font-size:.78rem;line-height:1.5}.checkin-btn:hover{border-color:var(--primary);color:var(--primary);box-shadow:0 6px 24px var(--primary);transform:translateY(-3px)scale(1.08)}.checkin-btn.checked{background:var(--gradient-1);color:var(--color-white);border-color:#0000}.checkin-btn.checked:hover{opacity:.9;box-shadow:0 6px 28px var(--primary)}.checkin-btn.animating{animation:.5s cubic-bezier(.34,1.56,.64,1) checkinPop}.checkin-btn.unauth{border:2px dashed var(--border);color:var(--text-muted);cursor:default;opacity:.65;background:0 0}.checkin-btn.unauth:hover{border-color:var(--border);color:var(--text-muted);box-shadow:none;transform:none}.checkin-btn-streak{color:#fff;background:#f97316;border-radius:10px;align-items:center;gap:2px;padding:2px 6px;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-6px;right:-6px}.checkin-row{flex-shrink:0;align-items:center;gap:12px;margin-top:48px;display:flex}.checkin-fortune{flex-direction:column;gap:2px;line-height:1.3;display:flex}.checkin-fortune-value{font-size:.85rem;font-weight:700}.checkin-fortune-luck{font-size:.8rem;font-weight:600}@keyframes checkinPop{0%{transform:scale(1)}40%{transform:scale(1.08)}70%{transform:scale(.96)}to{transform:scale(1)}}@media (width<=768px){.top-bar{text-align:center;grid-template-rows:auto auto auto;grid-template-columns:1fr;gap:8px;padding:12px 0}.top-bar-left{flex-direction:column;gap:2px}.top-bar-right{justify-content:center;gap:8px}.site-title{font-size:1.4rem}.tab-bar{flex-wrap:nowrap;gap:4px;padding:6px 0;overflow:visible}.tab-item{padding:8px 14px;font-size:.82rem}.page{padding:20px 16px}.snap-section{min-height:auto;padding:20px 16px}.snap-container{scroll-snap-type:none;height:auto;overflow-y:visible}.game-cards{grid-template-columns:1fr}.quick-stats{flex-direction:column;align-items:center}.back-to-top{width:40px;height:40px;bottom:20px;left:20px}.global-sidebar{display:none}.app-body{padding:0}}.top-bar-right{flex-shrink:0;justify-content:flex-end;align-items:center;gap:12px;display:flex}.top-bar-login-btn{border:2px solid var(--border);height:36px;color:var(--primary);cursor:pointer;white-space:nowrap;z-index:5;background:0 0;border-radius:18px;align-items:center;gap:6px;padding:0 16px;font-family:inherit;font-size:.88rem;font-weight:500;transition:all .35s cubic-bezier(.22,.61,.36,1);display:flex;position:relative}.top-bar-login-btn:hover{border-color:var(--primary);box-shadow:0 0 20px var(--primary);transform:scale(1.05)}.top-bar-user-pill{cursor:default;-webkit-user-select:none;user-select:none;gap:4px;padding-right:6px}.top-bar-user-pill:hover{box-shadow:none;transform:none}.top-bar-logout-btn{width:26px;height:26px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;font-size:.75rem;transition:color .2s,background .2s;display:flex}.top-bar-logout-btn:hover{color:#ef4444;background:#ef44441f}.auth-page{justify-content:center;align-items:flex-start;min-height:calc(100vh - 69px);padding:80px 20px 60px;display:flex;position:relative}.auth-back-btn{display:none}.auth-back-btn:hover{color:var(--text)}.auth-container{align-items:flex-start;gap:40px;width:100%;display:flex}.auth-form-side{width:100%;min-width:0;max-width:460px;box-shadow:none;background:0 0;border:none;border-radius:0;flex:1;margin:0 auto;padding:36px 32px 32px}.auth-tabs{z-index:5;background:0 0;border-radius:10px;gap:0;height:40px;margin-bottom:24px;padding:0;display:flex;position:relative;opacity:1!important;animation:none!important}.auth-tab-indicator{background:var(--primary);z-index:0;pointer-events:none;border-radius:8px;height:100%;transition:transform .3s,width .3s;position:absolute;top:0;left:0}.auth-tab{color:var(--text-secondary);cursor:pointer;z-index:1;background:0 0;border:none;border-radius:8px;flex:1;padding:8px 16px;font-family:inherit;font-size:.9rem;font-weight:500;transition:color .3s;position:relative}.auth-tab.active{color:var(--color-white);background:0 0}.auth-tab:hover:not(.active){color:var(--text)}.auth-info-side{display:none}.auth-info-card{background:0 0;border:none;border-radius:0;padding:24px 22px}.auth-info-icon{color:var(--primary);margin-bottom:10px;font-size:1.5rem}.auth-info-title{color:var(--text);margin:0 0 12px;font-size:1.1rem;font-weight:600}.auth-info-list{flex-direction:column;gap:8px;display:flex}.auth-info-list li{color:var(--text-secondary);align-items:center;gap:8px;font-size:.88rem;display:flex}.auth-info-list li svg{color:var(--primary);flex-shrink:0;font-size:.75rem}.auth-info-text{color:var(--text-secondary);font-size:.88rem;line-height:1.7}.auth-title{color:var(--text);margin:0 0 6px;font-size:1.5rem;font-weight:700}.auth-subtitle{color:var(--text-secondary);margin:0 0 20px;font-size:.88rem}.auth-form{flex-direction:column;gap:14px;min-height:320px;display:flex}.auth-field{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;padding:0 14px;transition:border-color .2s;display:flex}.auth-field:focus-within{border-color:var(--primary)}.auth-field-icon{color:var(--text-secondary);flex-shrink:0;font-size:.95rem}.auth-field input{color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:12px 0;font-family:inherit;font-size:.95rem}.auth-field input::placeholder{color:var(--text-muted)}.auth-error{color:#ef4444;text-align:center;margin:0;font-size:.85rem}.auth-success{color:#22c55e;text-align:center;background:#22c55e1a;border-radius:8px;margin:0;padding:8px 12px;font-size:.85rem}.auth-submit{background:var(--gradient-1);color:var(--color-white);cursor:pointer;border:none;border-radius:10px;margin-top:4px;padding:12px;font-family:inherit;font-size:1rem;font-weight:600;transition:opacity .2s,transform .15s}.auth-submit:hover{opacity:.9;transform:translateY(-1px)}.auth-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.turnstile-container{justify-content:center;min-height:65px;margin:4px 0;display:flex}.checkin-login-hint{background:var(--bg-card);border:2px dashed var(--border);width:68px;height:68px;color:var(--text-secondary);cursor:default;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:.7rem;display:flex}.checkin-login-hint-icon{color:var(--primary);opacity:.5;font-size:1.2rem}@media (width<=768px){.auth-container{flex-direction:column;gap:20px}.auth-info-side{flex-direction:row;gap:12px}.auth-info-card{flex:1;padding:16px 14px}.auth-back-btn{padding:6px 12px;font-size:.82rem;top:12px;left:12px}}.top-bar-user-wrap{position:relative}.logout-confirm-bar{background:var(--bg-card);-webkit-backdrop-filter:var(--card-backdrop);border:1px solid var(--border);box-shadow:var(--shadow-hover);z-index:1000;color:var(--text);white-space:nowrap;border-radius:10px;align-items:center;gap:16px;padding:10px 16px;font-size:.85rem;animation:.2s confirmSlideUp;display:flex;position:absolute;top:calc(100% + 8px);right:0}@keyframes confirmSlideUp{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.logout-confirm-actions{gap:10px;display:flex}.logout-confirm-cancel,.logout-confirm-ok{cursor:pointer;border:none;border-radius:8px;padding:6px 18px;font-family:inherit;font-size:.85rem;font-weight:500;transition:all .2s}.logout-confirm-cancel{background:var(--tag-bg);color:var(--text-secondary)}.logout-confirm-cancel:hover{background:var(--border);color:var(--text)}.logout-confirm-ok{color:#fff;background:#ef4444}.logout-confirm-ok:hover{background:#dc2626}
