/* Preloader, scroll progress, back-to-top, modal */
#preloader{position:fixed;inset:0;z-index:9999;background:#07070f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;transition:opacity .6s ease,transform .6s ease}
#preloader.hide{opacity:0;transform:scale(1.04);pointer-events:none}
.pre-name{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,#f59e0b,#22d3ee);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:6px}
.pre-sub{font-size:.82rem;font-weight:500;color:#3d3d55;letter-spacing:.18em;text-transform:uppercase}
.pre-bar{width:220px;height:2px;background:rgba(255,255,255,.05);border-radius:2px;overflow:hidden}
#preBar{height:100%;width:0;background:linear-gradient(90deg,#d97706,#22d3ee);transition:width .1s ease}
.pre-pct{font-size:.75rem;color:#3d3d55;letter-spacing:.1em;font-weight:600;margin-top:-16px}
#scrollProgress{position:fixed;top:0;left:0;right:0;height:3px;z-index:2000;pointer-events:none}
#scrollBar{height:100%;width:0;background:linear-gradient(90deg,#d97706,#22d3ee,#7c3aed);box-shadow:0 0 12px rgba(217,119,6,.6)}
.back-to-top{position:fixed;bottom:92px;right:28px;z-index:998;width:44px;height:44px;border-radius:50%;background:rgba(13,13,26,.95);border:1px solid rgba(217,119,6,.3);color:#f59e0b;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(12px);transition:all .3s ease;opacity:0;transform:translateY(16px);pointer-events:none}
.back-to-top.show{opacity:1;transform:none;pointer-events:all}
.back-to-top:hover{background:rgba(217,119,6,.15);border-color:#d97706}
.modal-overlay{position:fixed;inset:0;z-index:3000;background:rgba(4,4,8,.8);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s ease}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal-box{position:relative;width:100%;max-width:560px;max-height:92vh;overflow-y:auto;padding:36px;border-radius:20px;background:#0d0d1a;border:1px solid var(--border-accent);transform:translateY(20px);transition:transform .3s ease}
.modal-overlay.open .modal-box{transform:none}
.modal-close{position:absolute;top:12px;right:16px;font-size:1.8rem;color:#8888aa;line-height:1}
.modal-close:hover{color:#f59e0b}
@media(max-width:480px){.modal-box{padding:24px 18px}}
.type-cursor{display:inline-block;width:2px;height:1em;background:#d97706;margin-left:3px;vertical-align:text-bottom;animation:cursorBlink .9s steps(1) infinite}
@keyframes cursorBlink{0%,100%{opacity:1}50%{opacity:0}}
.filter-pill{padding:7px 16px;border-radius:100px;font-size:.8rem;font-weight:600;border:1px solid rgba(255,255,255,.07);color:#6b6b8a;transition:all .2s ease}
.filter-pill.active{border-color:#d97706;background:rgba(217,119,6,.12);color:#f59e0b}
.project-card.hidden{display:none}
.testimonials-slider .testimonial-card{opacity:1;transform:none}
.pre-name{background:linear-gradient(135deg,#FA7E0E,#064DED);-webkit-background-clip:text;background-clip:text}
#preBar{background:linear-gradient(90deg,#FA7E0E,#064DED)}
#scrollBar{background:linear-gradient(90deg,#FA7E0E,#064DED,#DE8A41);box-shadow:0 0 12px rgba(250,126,14,.6)}
.back-to-top{border-color:rgba(250,126,14,.4);color:#FA7E0E}
.back-to-top:hover{background:rgba(250,126,14,.14);border-color:#FA7E0E}
.type-cursor{background:#FA7E0E}
.filter-pill.active{border-color:#FA7E0E;background:rgba(250,126,14,.14);color:#FA7E0E}
.modal-box{background:#0d0d1a}
.modal-close:hover{color:#FA7E0E}
