.sky-btn{position:relative;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fffc;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.sky-btn:hover{background:#ffffff1a;border-color:#3b82f64d;color:#fffffff2;transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.effect-base{position:relative;display:inline-block;color:#fff;transition:all .3s ease}.moment-card,.moment-floating-card{transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.moment-floating-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px color-mix(in srgb,var(--color-primary) 30%,transparent),0 0 20px color-mix(in srgb,var(--color-primary) 20%,transparent)}.moment-card-with-glow{position:relative;overflow:hidden}.moment-glow-container{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.moment-glow{position:absolute;width:200px;height:200px;border-radius:50%;opacity:0;transition:opacity .3s ease-out;background:radial-gradient(circle,color-mix(in oklch,var(--color-primary) 50%,transparent),color-mix(in oklch,var(--color-primary) 30%,transparent),color-mix(in oklch,var(--color-primary) 10%,transparent),transparent 70%);filter:blur(20px);transform:translate(-50%,-50%)}.moment-card-content{position:relative;z-index:10}.moment-card-with-glow:hover{transform:translateY(-2px);border-color:color-mix(in oklch,var(--color-primary) 20%,transparent);box-shadow:0 8px 32px color-mix(in oklch,var(--color-primary) 50%,transparent),0 0 20px color-mix(in oklch,var(--color-primary) 20%,transparent),}.moment-floating-card-with-glow{position:relative;overflow:hidden}.moment-floating-card-with-glow .moment-glow-container{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.moment-floating-card-with-glow .moment-glow{position:absolute;width:150px;height:150px;border-radius:50%;opacity:0;transition:opacity .3s ease-out;background:radial-gradient(circle,color-mix(in oklch,var(--color-primary) 50%,transparent),color-mix(in oklch,var(--color-primary) 30%,transparent),color-mix(in oklch,var(--color-primary) 10%,transparent),transparent 70%);filter:blur(15px);transform:translate(-50%,-50%)}.wave-container{position:relative;width:100%;height:120px;overflow:hidden}.wave{position:absolute;bottom:0;left:0;width:100%;height:100%}.wave-1{animation:wave-animation 18s linear infinite}.wave-2{animation:wave-animation 12s linear infinite reverse}.wave-3{animation:wave-animation 8s linear infinite}.wave-base{position:absolute;bottom:0}@keyframes wave-animation{0%{transform:translate(0)}50%{transform:translate(-25%)}to{transform:translate(0)}}.wave-dot{position:absolute;background:radial-gradient(circle,#fffc,#fff0 70%);border-radius:50%;opacity:.6;filter:blur(1px);animation:dot-float 8s ease-in-out infinite}.wave-dot-1{width:12px;height:12px;bottom:40%;left:10%;animation-delay:0s}.wave-dot-2{width:8px;height:8px;bottom:30%;left:30%;animation-delay:1s}.wave-dot-3{width:15px;height:15px;bottom:50%;left:50%;animation-delay:2s}.wave-dot-4{width:10px;height:10px;bottom:25%;left:70%;animation-delay:3s}.wave-dot-5{width:6px;height:6px;bottom:45%;left:85%;animation-delay:4s}@keyframes dot-float{0%,to{transform:translateY(0) scale(1);opacity:.6}50%{transform:translateY(-15px) scale(1.2);opacity:.9}}@media(prefers-reduced-motion:reduce){.wave,.wave-dot{animation:none}}.gallery-card-3d{perspective:1000px}.gallery-card-3d .gallery-card-inner{position:relative;width:100%;height:100%;transition:transform .6s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.gallery-card-3d:hover .gallery-card-inner{transform:rotateY(180deg)}.gallery-card-3d .gallery-card-front,.gallery-card-3d .gallery-card-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}.gallery-card-3d .gallery-card-back{transform:rotateY(180deg)}.doc-tilt-card{perspective:1000px}.doc-tilt-inner{transition:transform .1s ease-out,box-shadow .3s ease;transform-style:preserve-3d}.doc-tilt-card:hover .doc-tilt-inner{box-shadow:0 20px 40px -10px color-mix(in oklch,var(--color-primary) 20%,transparent),0 0 20px color-mix(in oklch,var(--color-primary) 10%,transparent)}.doc-glow-spot{position:absolute;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,color-mix(in oklch,var(--color-primary) 40%,transparent) 0%,color-mix(in oklch,var(--color-primary) 20%,transparent) 30%,transparent 70%);pointer-events:none;opacity:0;transition:opacity .3s ease;transform:translate(-50%,-50%);filter:blur(20px);z-index:1}.doc-tilt-card:hover .doc-glow-spot{opacity:1}.friend-avatar-wrap{perspective:500px}.friend-avatar{transition:transform .5s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.friend-card:hover .friend-avatar{transform:rotateY(360deg) scale(1.1)}.friend-halo{position:absolute;inset:-4px;border-radius:50%;background:conic-gradient(from 0deg,var(--color-primary),var(--color-secondary),var(--color-accent),var(--color-primary));opacity:0;transition:opacity .3s ease;z-index:-1;animation:halo-spin 3s linear infinite paused}.friend-card:hover .friend-halo{opacity:1;animation-play-state:running}@keyframes halo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.friend-ripple{position:absolute;inset:0;border-radius:50%;border:2px solid var(--color-primary);opacity:0;transform:scale(1);pointer-events:none;z-index:-2}.friend-card:hover .friend-ripple{animation:ripple-expand 1.5s ease-out infinite}.friend-card:hover .friend-ripple.delay-1{animation-delay:.5s}@keyframes ripple-expand{0%{transform:scale(1);opacity:.6}to{transform:scale(2);opacity:0}}.heatmap-card{position:relative;overflow:hidden;transition:box-shadow .3s ease}[data-theme=dark] .heatmap-card,[data-color-scheme=dark] .heatmap-card{box-shadow:0 0 30px color-mix(in oklch,var(--color-primary) 12%,transparent),0 4px 20px #0006}.heatmap-skeleton{position:relative;min-height:120px;aspect-ratio:53 / 7;display:flex;align-items:center;justify-content:center;background:var(--color-base-100);border-radius:.5rem}.heatmap-skeleton-row{display:flex;gap:3px;margin-bottom:3px}.heatmap-skeleton-cell{width:11px;height:11px;border-radius:2px;background:linear-gradient(90deg,oklch(from var(--color-base-content) l c h / .05) 25%,oklch(from var(--color-base-content) l c h / .1),oklch(from var(--color-base-content) l c h / .05) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.heatmap-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:oklch(from var(--color-base-content) l c h / .5)}.heatmap-error-icon{width:3rem;height:3rem;margin-bottom:.75rem;opacity:.4}.heatmap-error-text{font-size:.875rem;margin-bottom:1rem}.heatmap-retry-btn{padding:.5rem 1rem;font-size:.75rem;border-radius:9999px;background:oklch(from var(--color-primary) l c h / .1);color:var(--color-primary);border:1px solid oklch(from var(--color-primary) l c h / .2);cursor:pointer;transition:all .2s ease}.heatmap-retry-btn:hover{background:oklch(from var(--color-primary) l c h / .2);transform:translateY(-1px)}.article-heatmap-svg{width:100%;height:auto;display:block}.article-heatmap-cell{cursor:pointer;transition:all .15s ease;transform-origin:center}.article-heatmap-cell:hover{filter:brightness(1.15);transform:scale(1.15)}.article-heatmap-cell.has-posts:hover{filter:brightness(1.2) drop-shadow(0 0 6px var(--color-primary));transform:scale(1.2)}.heatmap-cell-animated{opacity:0;animation:heatmap-cell-enter .4s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes heatmap-cell-enter{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.heatmap-label{font-size:9px;fill:oklch(from var(--color-base-content) l c h / .4);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-user-select:none;-moz-user-select:none;user-select:none}.heatmap-month-label{font-size:10px;fill:oklch(from var(--color-base-content) l c h / .5);font-weight:500}.heatmap-tooltip{position:fixed;z-index:9999;padding:.5rem .75rem;background:var(--color-base-100);border:1px solid oklch(from var(--color-base-content) l c h / .1);border-radius:.5rem;box-shadow:0 4px 12px oklch(from var(--color-base-content) l c h / .1);font-size:.75rem;color:var(--color-base-content);max-width:250px;pointer-events:none;opacity:0;transform:translateY(5px);transition:all .15s ease}.heatmap-tooltip.visible{opacity:1;transform:translateY(0)}.heatmap-tooltip-date{font-weight:600;margin-bottom:.25rem;color:var(--color-primary)}.heatmap-tooltip-count{color:oklch(from var(--color-base-content) l c h / .7)}.heatmap-tooltip-posts{margin-top:.5rem;padding-top:.5rem;border-top:1px solid oklch(from var(--color-base-content) l c h / .1)}.heatmap-tooltip-post{display:block;padding:.25rem 0;color:oklch(from var(--color-base-content) l c h / .8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heatmap-tooltip-post:before{content:"•";margin-right:.5rem;color:var(--color-primary)}.heatmap-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.heatmap-empty-icon{width:4rem;height:4rem;margin-bottom:1rem;color:oklch(from var(--color-base-content) l c h / .2)}.heatmap-empty-text{font-size:.875rem;color:oklch(from var(--color-base-content) l c h / .4)}@media(max-width:640px){.heatmap-legend{display:none}.heatmap-footer{justify-content:center}.heatmap-cell-animated{animation-duration:.15s}}@media(max-width:768px){.heatmap-label{font-size:8px}.heatmap-month-label{font-size:9px}}.github-heatmap-img{width:100%;height:auto;border-radius:.5rem;transition:opacity .3s ease;padding:.5rem;background:var(--color-base-100)}
