.weather-badge{color:var(--foreground);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:9999px;align-items:center;gap:8px;width:fit-content;padding:6px 14px;font-size:.75rem;line-height:1rem;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative}.weather-badge:hover{background:#ffffff1f;border-color:#ffffff40;transform:translateY(-1px);box-shadow:0 4px 16px #0003}.weather-badge:active{transform:translateY(0)}.weather-badge-pulse{background-color:#10b981;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:2s cubic-bezier(.4,0,.6,1) infinite weather-pulse;box-shadow:0 0 8px #10b981}.weather-badge-time{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:#f3f4f6}.weather-badge-sep{opacity:.4;color:var(--text)}.weather-badge-icon{align-items:center;font-size:.85rem;line-height:1;display:inline-flex}.weather-badge-temp{font-variant-numeric:tabular-nums;color:#f3f4f6}.weather-badge-city{color:var(--text)}@keyframes weather-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}
.strava-card{color:inherit;border-radius:16px;flex-direction:column;gap:12px;width:100%;max-width:480px;padding:16px;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.strava-card:hover{border-color:#fc4c0259;transform:translateY(-2px);box-shadow:0 12px 30px #fc4c0226}.strava-header{justify-content:space-between;align-items:center;display:flex}.strava-icon-badge{background:linear-gradient(135deg,#fc4c02 0%,#e84d00 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 4px 12px #fc4c024d}.strava-title{color:#f3f4f6;line-height:1.2;transition:color .15s}.strava-card:hover .strava-title{color:#fc4c02}.strava-external-icon{opacity:.4;color:#f3f4f6;transition:all .15s}.strava-card:hover .strava-external-icon{opacity:1;color:#fc4c02;transform:translate(1px,-1px)}.strava-map-container{background:#00000059;border:1px solid #ffffff0f;border-radius:12px;justify-content:center;align-items:center;width:100%;height:140px;display:flex;position:relative;overflow:hidden}.strava-map-svg{width:100%;height:100%;display:block}.strava-route-path{stroke-dasharray:2000;stroke-dashoffset:0;transition:filter .25s}.strava-card:hover .strava-route-path{filter:drop-shadow(0 0 4px #fc4c02)}.strava-no-map{color:var(--text);flex-direction:column;align-items:center;gap:6px;display:flex}.strava-metrics-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.strava-metric{background:#ffffff08;border:1px solid #ffffff0d;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.strava-metric-label{line-height:1}.strava-metric-value{color:#f3f4f6;font-variant-numeric:tabular-nums}@media (max-width:480px){.strava-metrics-grid{grid-template-columns:repeat(2,1fr)}}
.music-card-container{border-radius:14px;flex-direction:column;width:100%;max-width:480px;display:flex}.music-card-item{color:inherit;border-radius:10px;align-items:center;width:100%;padding:4px;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.music-card-item:hover{background:#ffffff0d;transform:translate(4px)}.music-art-container{background:#0006;border:1px solid #ffffff1a;border-radius:10px;flex-shrink:0;width:48px;height:48px;position:relative;overflow:hidden}.music-art-img{object-fit:cover;width:100%;height:100%;display:block}.music-art-fallback{background:linear-gradient(135deg,#2a2a2a 0%,#151515 100%);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.music-art-pulse{pointer-events:none;border-radius:10px;position:absolute;inset:0;box-shadow:inset 0 0 0 1.5px #ff2d5580}.music-status-dot{background-color:#6b7280;border-radius:50%;flex-shrink:0;width:6px;height:6px}.music-status-dot.is-playing{background-color:#ff2d55;animation:2s cubic-bezier(.4,0,.6,1) infinite music-dot-pulse;box-shadow:0 0 6px #ff2d55}.music-status-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.music-track-title{color:#f3f4f6;line-height:1.2;transition:color .15s}.music-card-item:hover .music-track-title{color:#ff2d55}.music-artist-name{line-height:1.2}.music-equalizer-container{flex-direction:column;align-items:flex-end;gap:8px;padding-left:4px;display:flex}.music-equalizer{align-items:flex-end;gap:2.5px;height:18px;padding-bottom:1px;display:flex}.eq-bar{transform-origin:bottom;background:linear-gradient(#fa2d48,#ff2d55);border-radius:2px;width:3px;display:inline-block}.music-equalizer.is-paused .eq-bar{opacity:.4;background:#9ca3af;height:4px}.music-equalizer.is-animated .eq-bar-1{height:100%;animation:1.2s ease-in-out infinite alternate soundwave-1}.music-equalizer.is-animated .eq-bar-2{height:100%;animation:.8s ease-in-out .15s infinite alternate soundwave-2}.music-equalizer.is-animated .eq-bar-3{height:100%;animation:1.4s ease-in-out .3s infinite alternate soundwave-3}.music-equalizer.is-animated .eq-bar-4{height:100%;animation:.9s ease-in-out .1s infinite alternate soundwave-4}@keyframes soundwave-1{0%{height:4px}to{height:16px}}@keyframes soundwave-2{0%{height:16px}to{height:6px}}@keyframes soundwave-3{0%{height:6px}to{height:18px}}@keyframes soundwave-4{0%{height:14px}to{height:4px}}@keyframes music-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.music-external-icon{opacity:.3;color:#f3f4f6;transition:all .15s}.music-card-item:hover .music-external-icon{opacity:.9;color:#ff2d55;transform:translate(1px,-1px)}
.socials-page{isolation:isolate;--glass-bg:#00000073;--glass-border:#ffffff1f;--glass-shadow:0 12px 34px #00000047;--stacked-link-card-hover-bg:#0009}.socials-header{flex-direction:column;align-items:center;animation:.5s both socials-fade-in;display:flex}.socials-page-title,.socials-page-subtitle{color:#fafafa;mix-blend-mode:difference}.socials-avatar{border:2px solid var(--border-color);border-radius:50%;flex-shrink:0;width:88px;height:88px;position:relative;overflow:hidden}.socials-avatar:after{content:"";border-radius:50%;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #ffffff0f}.socials-avatar img{object-fit:cover;width:100%;height:100%;display:block}@keyframes socials-fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes socials-badge-enter{0%{opacity:0;transform:translateY(14px)scale(.88)}to{opacity:1;transform:translateY(0)scale(1)}}.socials-link-badge{animation:.42s cubic-bezier(.16,1,.3,1) both socials-badge-enter;animation-delay:var(--card-delay,0s);border-radius:11px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.stacked-link-badge{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s,filter .22s;display:flex;box-shadow:0 2px 8px #0006}.socials-link-badge:hover .stacked-link-badge{box-shadow:0 8px 24px var(--card-glow,#fff3), 0 2px 8px #0006;filter:brightness(1.12);transform:translateY(-3px)scale(1.1)}.socials-link-badge:active .stacked-link-badge{transition-duration:80ms;transform:translateY(0)scale(.96)}.socials-link-badge svg{transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.socials-link-badge:hover svg{transform:scale(1.08)}@media (prefers-reduced-motion:reduce){.socials-header,.socials-link-badge{animation:none}.stacked-link-badge,.socials-link-badge svg{transition:none}}
