/* ══════════════════════════════════ THEME CONFIG — change instantly ══════════════════════════════════ */ :root { --primary: #0A0A0A; --primary-light: #141414; --primary-mid: #111111; --accent: #CC2222; --accent-bright: #E63333; --accent-dark: #991A1A; --white: #FFFFFF; --text: #E8E8E8; --text-muted: #888888; --text-dim: #444444; --border: rgba(204,34,34,0.18); --border-white: rgba(255,255,255,0.08); --card-bg: rgba(20,20,20,0.9); --font: 'Helvetica Neue', Helvetica, Arial, sans-serif; --font-serif: 'Cormorant Garamond', Georgia, serif; --radius: 3px; --ease: 0.35s cubic-bezier(0.4,0,0.2,1); } *,*::before,*::after{box-sizing:border-box;margin:0;padding:0} html{scroll-behavior:smooth;font-size:16px} body{font-family:var(--font);background:var(--primary);color:var(--text);line-height:1.6;overflow-x:hidden} img{max-width:100%;display:block} a{color:inherit;text-decoration:none} ul{list-style:none} button{cursor:pointer;border:none;background:none;font-family:inherit} ::-webkit-scrollbar{width:4px} ::-webkit-scrollbar-track{background:var(--primary)} ::-webkit-scrollbar-thumb{background:var(--accent);border-radius:2px} /* ── PAGES ── */ .page{display:none;min-height:100vh} .page.active{display:block} /* ── NAV ── */ nav{ position:fixed;top:0;left:0;right:0;z-index:1000; height:70px;padding:0 5%; display:flex;align-items:center;justify-content:space-between; background:rgba(10,10,10,0.95); backdrop-filter:blur(20px); border-bottom:1px solid var(--border); transition:var(--ease); } nav.scrolled{box-shadow:0 2px 30px rgba(0,0,0,0.6)} .nav-logo{display:flex;align-items:center;gap:10px} .nav-logo-img{ height:38px;width:auto; filter:brightness(1); transition:opacity var(--ease); } .nav-logo-img:hover{opacity:0.85} .nav-links{display:flex;gap:2.2rem;align-items:center} .nav-links a{ font-size:0.72rem;font-weight:500; letter-spacing:0.16em;text-transform:uppercase; color:var(--text-muted); position:relative;transition:color var(--ease); } .nav-links a::after{ content:'';position:absolute;bottom:-4px;left:0;right:0; height:1px;background:var(--accent); transform:scaleX(0);transform-origin:left; transition:transform var(--ease); } .nav-links a:hover,.nav-links a.active{color:var(--white)} .nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)} .nav-cta{ padding:9px 22px; border:1px solid var(--accent) !important; color:var(--accent) !important; border-radius:var(--radius); font-size:0.72rem !important; letter-spacing:0.16em !important; transition:all var(--ease) !important; } .nav-cta:hover{background:var(--accent);color:var(--white)!important} .nav-cta::after{display:none!important} .hamburger{display:none;flex-direction:column;gap:5px;width:26px;padding:4px 0} .hamburger span{display:block;height:1.5px;background:var(--text);transition:var(--ease)} .mobile-menu{ display:none;position:fixed; top:70px;left:0;right:0;bottom:0; background:rgba(10,10,10,0.98); backdrop-filter:blur(24px); z-index:999; flex-direction:column;align-items:center;justify-content:center;gap:2.5rem; } .mobile-menu.open{display:flex} .mobile-menu a{ font-size:1.3rem;font-weight:300; letter-spacing:0.2em;text-transform:uppercase; color:var(--text-muted);transition:color var(--ease); } .mobile-menu a:hover{color:var(--white)} /* ── BUTTONS ── */ .btn-primary{ padding:13px 32px; background:var(--accent);color:var(--white); font-size:0.75rem;font-weight:600; letter-spacing:0.14em;text-transform:uppercase; border-radius:var(--radius); transition:all var(--ease);position:relative;overflow:hidden; } .btn-primary:hover{background:var(--accent-bright);transform:translateY(-2px);box-shadow:0 10px 35px rgba(204,34,34,0.4)} .btn-outline{ padding:13px 32px; border:1px solid rgba(255,255,255,0.15); color:var(--text); font-size:0.75rem;font-weight:500; letter-spacing:0.14em;text-transform:uppercase; border-radius:var(--radius); transition:all var(--ease); } .btn-outline:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)} /* ── HERO ── */ .hero{ min-height:100vh; display:flex;align-items:center; position:relative;overflow:hidden; padding:0 5%; } .hero-bg{ position:absolute;inset:0; background: radial-gradient(ellipse 70% 60% at 65% 50%, rgba(204,34,34,0.1) 0%, transparent 60%), radial-gradient(ellipse 40% 50% at 10% 80%, rgba(204,34,34,0.05) 0%, transparent 50%), var(--primary); } .hero-grid{ position:absolute;inset:0; background-image: linear-gradient(rgba(204,34,34,0.04) 1px,transparent 1px), linear-gradient(90deg,rgba(204,34,34,0.04) 1px,transparent 1px); background-size:70px 70px; } .hero-orb{ position:absolute; width:600px;height:600px;border-radius:50%; background:radial-gradient(circle,rgba(204,34,34,0.12) 0%,transparent 70%); right:-150px;top:50%;transform:translateY(-50%); animation:pulse 7s ease-in-out infinite; } @keyframes pulse{ 0%,100%{transform:translateY(-50%) scale(1);opacity:0.6} 50%{transform:translateY(-50%) scale(1.1);opacity:1} } .hero-content{position:relative;z-index:2;max-width:680px} .hero-eyebrow{ display:inline-flex;align-items:center;gap:12px; font-size:0.68rem;letter-spacing:0.24em;text-transform:uppercase; color:var(--accent);margin-bottom:2rem; animation:fadeUp 0.8s ease both; } .hero-eyebrow::before{content:'';width:28px;height:1px;background:var(--accent)} .hero-title{ font-family:var(--font); font-size:clamp(2.8rem,6.5vw,5.2rem); font-weight:700;line-height:1.05; letter-spacing:-0.02em;color:var(--white); margin-bottom:1.5rem; animation:fadeUp 0.8s 0.1s ease both; } .hero-title em{ color:var(--accent);font-style:italic; font-family:var(--font-serif);font-weight:300; } .hero-sub{ font-size:1rem;color:var(--text-muted); max-width:480px;line-height:1.85; margin-bottom:2.5rem; animation:fadeUp 0.8s 0.2s ease both; } .hero-actions{ display:flex;gap:1rem;flex-wrap:wrap; animation:fadeUp 0.8s 0.3s ease both; } .hero-stats{ position:absolute;bottom:60px;right:5%; display:flex;gap:3rem; animation:fadeUp 0.8s 0.4s ease both; } .stat-num{ font-size:2.2rem;font-weight:700;color:var(--white);line-height:1; } .stat-num span{color:var(--accent)} .stat-label{ font-size:0.65rem;letter-spacing:0.18em;text-transform:uppercase; color:var(--text-dim);margin-top:4px; } .scroll-indicator{ position:absolute;bottom:32px;left:50%;transform:translateX(-50%); display:flex;flex-direction:column;align-items:center;gap:8px; animation:fadeUp 1s 0.6s ease both; } .scroll-indicator span{font-size:0.6rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--text-dim)} .scroll-line{ width:1px;height:44px; background:linear-gradient(to bottom,var(--accent),transparent); animation:scrollDown 2s ease-in-out infinite; } @keyframes scrollDown{ 0%{transform:scaleY(0);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} 51%{transform:scaleY(1);transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} } @keyframes fadeUp{ from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} } /* ── SECTIONS ── */ section{padding:100px 5%} .divider{width:100%;height:1px;background:linear-gradient(to right,transparent,var(--border),transparent)} .section-eyebrow{ display:inline-flex;align-items:center;gap:10px; font-size:0.68rem;letter-spacing:0.24em;text-transform:uppercase; color:var(--accent);margin-bottom:1.2rem; } .section-eyebrow::before{content:'';width:22px;height:1px;background:var(--accent)} .section-title{ font-family:var(--font); font-size:clamp(1.9rem,3.8vw,2.9rem); font-weight:700;line-height:1.1; letter-spacing:-0.02em;color:var(--white); margin-bottom:1.2rem; } .section-title em{color:var(--accent);font-style:italic;font-family:var(--font-serif);font-weight:300} .section-sub{font-size:0.95rem;color:var(--text-muted);max-width:500px;line-height:1.85} /* ── SERVICES ── */ .services-grid{ display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:1px;background:var(--border); border:1px solid var(--border);border-radius:4px; overflow:hidden;margin-top:3.5rem; } .service-card{ background:var(--card-bg);padding:2.2rem; position:relative;overflow:hidden;transition:var(--ease); } .service-card::before{ content:'';position:absolute;top:0;left:0;right:0; height:2px;background:linear-gradient(to right,var(--accent),transparent); transform:scaleX(0);transform-origin:left;transition:transform var(--ease); } .service-card:hover::before{transform:scaleX(1)} .service-card:hover{background:rgba(25,25,25,0.98)} .service-icon{ width:48px;height:48px;border:1px solid var(--border); border-radius:6px;display:flex;align-items:center;justify-content:center; font-size:1.3rem;margin-bottom:1.4rem;transition:var(--ease); } .service-card:hover .service-icon{border-color:var(--accent);background:rgba(204,34,34,0.1)} .service-name{font-size:1rem;font-weight:600;color:var(--white);margin-bottom:0.65rem} .service-desc{font-size:0.85rem;color:var(--text-muted);line-height:1.75} .service-arrow{ display:inline-flex;align-items:center;gap:6px; font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase; color:var(--accent);margin-top:1.4rem;transition:gap var(--ease); } .service-card:hover .service-arrow{gap:10px} /* ── ABOUT ── */ .about-layout{ display:grid;grid-template-columns:1fr 1fr; gap:6rem;align-items:center;margin-top:4rem; } .about-img-frame{ aspect-ratio:4/5;background:var(--card-bg); border:1px solid var(--border);border-radius:4px; overflow:hidden;position:relative; } .about-img-frame::after{ content:'';position:absolute;inset:0; background:linear-gradient(135deg,rgba(204,34,34,0.12),transparent 60%); } .about-img-placeholder{ width:100%;height:100%; display:flex;align-items:center;justify-content:center; font-size:5rem;opacity:0.06; } .about-badge{ position:absolute;bottom:-1.5rem;right:-1.5rem; background:var(--accent);color:var(--white); padding:1.4rem 1.8rem;border-radius:3px;text-align:center; } .about-badge-num{font-size:1.9rem;font-weight:700;line-height:1} .about-badge-text{font-size:0.65rem;letter-spacing:0.16em;text-transform:uppercase;opacity:0.85;margin-top:4px} .about-tag{ position:absolute;top:-1rem;left:-1rem; border:1px solid var(--border);background:var(--primary-light); padding:0.7rem 1.1rem;border-radius:3px; font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent); } .value-item{ display:flex;gap:1rem;align-items:flex-start; padding:1.1rem 1.4rem;border:1px solid var(--border-white); border-radius:var(--radius);background:var(--card-bg); transition:var(--ease);margin-bottom:0.8rem; } .value-item:hover{border-color:var(--accent)} .value-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:7px;flex-shrink:0} .value-text strong{display:block;font-size:0.85rem;color:var(--white);margin-bottom:2px;font-weight:600} .value-text span{font-size:0.78rem;color:var(--text-muted)} /* ── PORTFOLIO ── */ .portfolio-filter{display:flex;gap:0.6rem;flex-wrap:wrap;margin-top:3rem;margin-bottom:2.5rem} .filter-btn{ padding:7px 18px;font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase; border:1px solid var(--border-white);border-radius:50px; color:var(--text-muted);transition:all var(--ease); } .filter-btn:hover,.filter-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(204,34,34,0.08)} .portfolio-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:0.8rem} .portfolio-item{ border-radius:3px;overflow:hidden; background:var(--card-bg);border:1px solid var(--border-white); position:relative;cursor:pointer; transition:transform var(--ease),box-shadow var(--ease); } .portfolio-item:hover{transform:translateY(-4px);box-shadow:0 16px 50px rgba(0,0,0,0.5)} .portfolio-item.large{grid-column:span 7;aspect-ratio:16/9} .portfolio-item.med{grid-column:span 5;aspect-ratio:16/9} .portfolio-item.wide{grid-column:span 5;aspect-ratio:4/3} .portfolio-item.tall{grid-column:span 7;aspect-ratio:4/3} .portfolio-thumb{ width:100%;height:100%; display:flex;align-items:center;justify-content:center; font-size:3rem;opacity:0.06; background:linear-gradient(135deg,var(--primary-light),var(--primary-mid)); } .portfolio-overlay{ position:absolute;inset:0; background:linear-gradient(to top,rgba(10,10,10,0.96) 0%,transparent 55%); display:flex;align-items:flex-end;padding:1.4rem; opacity:0;transition:opacity var(--ease); } .portfolio-item:hover .portfolio-overlay{opacity:1} .portfolio-cat{font-size:0.62rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent);margin-bottom:3px} .portfolio-name{font-size:0.92rem;font-weight:600;color:var(--white)} /* ── CLIENTS ── */ .clients-row{ display:flex;align-items:center;gap:3rem;flex-wrap:wrap; margin-top:3.5rem;padding:2rem 0; border-top:1px solid var(--border-white);border-bottom:1px solid var(--border-white); } .client-logo{ flex:1;min-width:130px;max-width:170px; text-align:center;padding:0.8rem; transition:var(--ease);opacity:0.35; } .client-logo:hover{opacity:1} .client-logo-text{ font-family:var(--font);font-size:0.95rem;font-weight:700; letter-spacing:0.08em;text-transform:uppercase;color:var(--text); } .testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.2rem;margin-top:4rem} .testimonial-card{ background:var(--card-bg);border:1px solid var(--border-white); border-radius:3px;padding:2rem;position:relative; transition:border-color var(--ease); } .testimonial-card:hover{border-color:var(--accent)} .testimonial-card::before{ content:'"';position:absolute;top:0.8rem;right:1.2rem; font-family:var(--font-serif);font-size:5rem;line-height:1; color:var(--accent);opacity:0.12; } .testimonial-text{font-size:0.88rem;color:var(--text-muted);line-height:1.85;margin-bottom:1.5rem;font-style:italic} .testimonial-author{display:flex;align-items:center;gap:0.9rem} .author-avatar{ width:42px;height:42px;border-radius:50%; background:var(--accent);display:flex;align-items:center;justify-content:center; font-size:0.8rem;font-weight:700;color:var(--white);flex-shrink:0; } .author-name{font-size:0.85rem;font-weight:600;color:var(--white)} .author-role{font-size:0.7rem;color:var(--text-dim);letter-spacing:0.08em} /* ── CONTACT ── */ .contact-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:5rem;margin-top:4rem} .contact-detail{display:flex;gap:1rem;align-items:center;margin-bottom:1.1rem} .detail-icon{ width:40px;height:40px;border-radius:var(--radius); border:1px solid var(--border-white); display:flex;align-items:center;justify-content:center; font-size:0.95rem;flex-shrink:0;background:var(--card-bg); } .detail-text small{display:block;font-size:0.62rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-dim);margin-bottom:2px} .detail-text span{font-size:0.88rem;color:var(--text)} .detail-text a{font-size:0.88rem;color:var(--text);transition:color var(--ease)} .detail-text a:hover{color:var(--accent)} .social-links{display:flex;gap:0.6rem;margin-top:0.5rem} .social-link{ width:38px;height:38px;border:1px solid var(--border-white); border-radius:var(--radius);display:flex;align-items:center;justify-content:center; font-size:0.8rem;color:var(--text-muted);transition:all var(--ease);font-weight:600; } .social-link:hover{border-color:var(--accent);color:var(--accent);background:rgba(204,34,34,0.1)} .contact-form-wrap{background:var(--card-bg);border:1px solid var(--border-white);border-radius:6px;padding:2.5rem} .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem} .form-group{display:flex;flex-direction:column;gap:0.45rem;margin-bottom:1rem} .form-group label{font-size:0.66rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-muted)} .form-group input,.form-group select,.form-group textarea{ background:rgba(10,10,10,0.7);border:1px solid var(--border-white); border-radius:var(--radius);padding:11px 15px; color:var(--text);font-family:var(--font);font-size:0.88rem; transition:border-color var(--ease);outline:none;width:100%; } .form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-dim)} .form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent)} .form-group select{appearance:none;cursor:pointer} .form-group select option{background:var(--primary-light)} .form-group textarea{resize:vertical;min-height:110px} .form-submit{ width:100%;padding:13px;background:var(--accent);color:var(--white); font-family:var(--font);font-size:0.75rem;font-weight:600; letter-spacing:0.14em;text-transform:uppercase;border-radius:var(--radius); transition:all var(--ease);margin-top:0.4rem; } .form-submit:hover{background:var(--accent-bright);transform:translateY(-2px);box-shadow:0 8px 28px rgba(204,34,34,0.35)} .form-success{display:none;text-align:center;padding:2rem;color:var(--accent)} .form-success .ck{font-size:2.5rem;margin-bottom:1rem} /* ── INNER PAGE HERO ── */ .inner-hero{ padding:155px 5% 75px; position:relative;overflow:hidden;text-align:center; } .inner-hero-bg{ position:absolute;inset:0; background:radial-gradient(ellipse 60% 80% at 50% 0%,rgba(204,34,34,0.09),transparent 70%),var(--primary); } .inner-hero-content{position:relative;z-index:1} .inner-hero .section-eyebrow{justify-content:center} .inner-hero .section-title{max-width:580px;margin:0 auto 1.2rem} .inner-hero .section-sub{margin:0 auto;text-align:center} /* ── FOOTER ── */ footer{ background:var(--primary-mid);border-top:1px solid var(--border-white); padding:4rem 5% 2rem; } .footer-grid{ display:grid;grid-template-columns:2fr 1fr 1fr 1fr; gap:3rem;padding-bottom:3rem;border-bottom:1px solid var(--border-white); } .footer-logo-img{height:34px;width:auto;margin-bottom:1rem;filter:brightness(1)} .footer-desc{font-size:0.82rem;color:var(--text-muted);line-height:1.8;max-width:270px;margin-bottom:1.4rem} .footer-col-title{font-size:0.66rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-dim);margin-bottom:1.1rem} .footer-links{display:flex;flex-direction:column;gap:0.65rem} .footer-links a{font-size:0.82rem;color:var(--text-muted);transition:color var(--ease)} .footer-links a:hover{color:var(--white)} .footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:2rem;flex-wrap:wrap;gap:1rem} .footer-copy{font-size:0.75rem;color:var(--text-dim)} .footer-copy span{color:var(--accent)} .footer-socials{display:flex;gap:0.6rem} /* ── COLOR CONFIG FAB ── */ .config-fab{position:fixed;bottom:2rem;right:2rem;z-index:2000} .config-btn{ width:48px;height:48px;background:var(--accent);border-radius:50%; display:flex;align-items:center;justify-content:center;font-size:1.2rem; box-shadow:0 4px 18px rgba(204,34,34,0.5);transition:var(--ease);cursor:pointer;border:none; } .config-btn:hover{transform:scale(1.1)} .config-panel{ position:absolute;bottom:58px;right:0;width:250px; background:var(--primary-light);border:1px solid var(--border-white); border-radius:6px;padding:1.2rem;display:none; box-shadow:0 16px 50px rgba(0,0,0,0.6); } .config-panel.open{display:block} .config-title{font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:1rem} .config-item{margin-bottom:0.75rem} .config-item label{display:flex;justify-content:space-between;align-items:center;font-size:0.72rem;color:var(--text-muted);margin-bottom:0.3rem} .config-item input[type=color]{width:100%;height:30px;border:1px solid var(--border-white);border-radius:3px;background:none;cursor:pointer;padding:2px} .config-presets{display:flex;gap:0.4rem;flex-wrap:wrap;margin-top:0.8rem} .preset-btn{ padding:4px 9px;border-radius:3px;font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase; border:1px solid var(--border-white);color:var(--text-muted);cursor:pointer;transition:all 0.2s; } .preset-btn:hover{border-color:var(--accent);color:var(--accent)} /* ── RESPONSIVE ── */ @media(max-width:1024px){ .footer-grid{grid-template-columns:1fr 1fr} .about-layout{grid-template-columns:1fr;gap:3rem} .contact-layout{grid-template-columns:1fr;gap:3rem} .portfolio-item.large{grid-column:span 12} .portfolio-item.med{grid-column:span 12} .portfolio-item.wide{grid-column:span 6} .portfolio-item.tall{grid-column:span 6} } @media(max-width:768px){ .nav-links{display:none} .hamburger{display:flex} .hero-stats{position:static;flex-direction:row;flex-wrap:wrap;gap:2rem;margin-top:3rem} section{padding:70px 5%} .form-row{grid-template-columns:1fr} .footer-grid{grid-template-columns:1fr;gap:2rem} .portfolio-item.wide,.portfolio-item.tall{grid-column:span 12} } @media(max-width:480px){ .hero-actions{flex-direction:column} .clients-row{gap:2rem} .hero-title{font-size:2.4rem} }

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!


function showPage(id){ document.querySelectorAll('.page').forEach(p=>p.classList.remove('active')); document.getElementById('page-'+id).classList.add('active'); document.querySelectorAll('.nav-links a').forEach(a=>a.classList.remove('active')); const el=document.getElementById('nav-'+id); if(el)el.classList.add('active'); window.scrollTo({top:0,behavior:'smooth'}); } function toggleMobile(){document.getElementById('mobileMenu').classList.toggle('open')} window.addEventListener('scroll',()=>{ document.getElementById('navbar').classList.toggle('scrolled',window.scrollY>40); }); function filterPortfolio(btn,cat){ document.querySelectorAll('.filter-btn').forEach(b=>b.classList.remove('active')); btn.classList.add('active'); document.querySelectorAll('.portfolio-item').forEach(item=>{ const show=cat==='all'||item.dataset.cat===cat; item.style.opacity=show?'1':'0.15'; item.style.pointerEvents=show?'auto':'none'; }); } function submitForm(){ const fname=document.getElementById('fname').value.trim(); const email=document.getElementById('email').value.trim(); const message=document.getElementById('message').value.trim(); if(!fname||!email||!message){alert('Please fill in Name, Email and Message.');return;} document.querySelectorAll('#contactFormWrap .form-group,#contactFormWrap .form-row,.form-submit,#contactFormWrap>div:first-child').forEach(el=>el.style.display='none'); document.getElementById('formSuccess').style.display='block'; } function toggleConfig(){document.getElementById('configPanel').classList.toggle('open')} function updateColor(prop,val){ document.documentElement.style.setProperty(prop,val); if(prop==='--primary'){ document.documentElement.style.setProperty('--primary-light',shadeColor(val,5)); document.documentElement.style.setProperty('--primary-mid',shadeColor(val,3)); } if(prop==='--accent'){ document.documentElement.style.setProperty('--accent-bright',shadeColor(val,12)); document.documentElement.style.setProperty('--accent-dark',shadeColor(val,-15)); } } function applyPreset(bg,accent){updateColor('--primary',bg);updateColor('--accent',accent)} function shadeColor(color,pct){ const num=parseInt(color.replace('#',''),16); const amt=Math.round(2.55*pct); const R=Math.min(255,Math.max(0,(num>>16)+amt)); const G=Math.min(255,Math.max(0,((num>>8)&0xFF)+amt)); const B=Math.min(255,Math.max(0,(num&0xFF)+amt)); return'#'+((1<<24)+(R<<16)+(G<<8)+B).toString(16).slice(1); } document.addEventListener('click',e=>{ const fab=document.querySelector('.config-fab'); if(fab&&!fab.contains(e.target))document.getElementById('configPanel').classList.remove('open'); const mm=document.getElementById('mobileMenu'); const hb=document.querySelector('.hamburger'); if(mm&&mm.classList.contains('open')&&!mm.contains(e.target)&&!hb.contains(e.target))mm.classList.remove('open'); });