@keyframes tpSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes tpIconPulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.15);filter:brightness(1.4) drop-shadow(0 0 6px rgba(55,108,117,0.8))}}
@keyframes tpScanline{0%{top:-4px}100%{top:100%}}
@keyframes tpContract{0%{transform:scale(1);filter:brightness(1)}30%{filter:brightness(1.3)}100%{transform:scale(0.92);filter:brightness(0.3) blur(3px)}}
#tpBtn{position:fixed;bottom:25px;left:25px;z-index:9998;width:52px;height:52px;border-radius:50%;background:rgba(10,10,10,0.75);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;transition:all 0.4s cubic-bezier(0.4,0,0.2,1);border:none;}
#tpBtn::before{content:'';position:absolute;inset:-2px;border-radius:50%;background:conic-gradient(from 0deg, #376C75, #C9E0C8, transparent 40%, transparent 60%, #376C75);animation:tpSpin 3s linear infinite;z-index:-1;}
#tpBtn::after{content:'';position:absolute;inset:2px;border-radius:50%;background:rgba(10,10,10,0.85);z-index:-1;}
#tpBtn:hover{transform:scale(1.1);box-shadow:0 0 30px rgba(55,108,117,0.5),0 0 60px rgba(55,108,117,0.2);}
#tpBtn:active{transform:scale(0.9);}
.tp-icon{color:#C9E0C8;font-size:1.2em;animation:tpIconPulse 2.5s ease-in-out infinite;transition:all 0.3s;pointer-events:none;position:relative;z-index:2;}
#tpBtn:hover .tp-icon{color:#fff;animation:none;filter:drop-shadow(0 0 8px rgba(201,224,200,0.8));}
.tp-scanline{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg, transparent, rgba(55,108,117,0.6), transparent);opacity:0;pointer-events:none;z-index:3;}
#tpBtn:hover .tp-scanline{opacity:1;animation:tpScanline 1s linear infinite;}
.tp-label{position:absolute;left:calc(100% + 16px);top:50%;transform:translateY(-50%) translateX(-12px);pointer-events:none;opacity:0;transition:all 0.4s cubic-bezier(0.4,0,0.2,1);z-index:10;}
#tpBtn:hover .tp-label{opacity:1;transform:translateY(-50%) translateX(0);}
#tpLabelText{font-family:'Oswald',sans-serif;font-weight:700;font-size:1em;color:#C9E0C8;letter-spacing:1.5px;text-transform:uppercase;background:rgba(10,10,10,0.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(55,108,117,0.4);border-radius:10px;padding:10px 16px;position:relative;box-shadow:0 8px 30px rgba(0,0,0,0.5),0 0 15px rgba(55,108,117,0.15);white-space:nowrap;display:block;}
#tpLabelText::before{content:'';position:absolute;left:-6px;top:50%;transform:translateY(-50%) rotate(45deg);width:10px;height:10px;background:rgba(10,10,10,0.9);border-left:1px solid rgba(55,108,117,0.4);border-bottom:1px solid rgba(55,108,117,0.4);}
#tpLabelText::after{content:'';position:absolute;bottom:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg, transparent, #376C75, #C9E0C8, #376C75, transparent);border-radius:1px;opacity:0.6;}
#tpWarp{position:fixed;inset:0;z-index:99999;pointer-events:none;opacity:0;background:radial-gradient(circle at var(--tp-x, 50%) var(--tp-y, 50%),#0a0a0a 0%, rgba(26,11,46,0.95) 15%, rgba(15,23,42,0.97) 40%, #0a0a0a 70%);transition:opacity 0.15s ease;}
#tpWarp.active{opacity:1;transition:opacity 0.1s ease;}
#tpWarp::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(55,108,117,0.03) 3px, rgba(55,108,117,0.03) 4px),repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(201,224,200,0.02) 3px, rgba(201,224,200,0.02) 4px);animation:tpSpin 0.5s linear infinite;}
#tpFlash{position:fixed;z-index:100000;width:60px;height:60px;border-radius:50%;background:radial-gradient(circle, rgba(201,224,200,0.9), transparent 70%);pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(0);transition:all 0.3s cubic-bezier(0.4,0,0.2,1);}
#tpFlash.bang{opacity:1;transform:translate(-50%,-50%) scale(1);transition:all 0.15s ease-out;}
#tpFlash.fade{opacity:0;transform:translate(-50%,-50%) scale(6);transition:all 0.4s ease-in;}
body.tp-warping{animation:tpContract 0.45s cubic-bezier(0.6,0,0.4,1) forwards;will-change:transform, filter;}
@media(prefers-reduced-motion:reduce){#tpBtn::before,.tp-icon,.tp-scanline,#tpWarp::before{animation:none!important;}body.tp-warping{animation:none!important;}}
@media(max-width:768px){#tpBtn{bottom:20px;left:20px;width:48px;height:48px;}.tp-icon{font-size:1.1em;}.tp-label{left:calc(100% + 12px);}#tpLabelText{padding:8px 12px;border-radius:8px;font-size:0.9em;}}
