*{margin:0;padding:0;box-sizing:border-box}:root{--accent: #2f6fed;--accent-light: #5b8ef8;--bg: #ffffff;--bg-soft: #f5f7fb;--text: #111111;--text-soft: #555555;--card-bg: #ffffff;--border: #e7e9ee;--shadow: 0 10px 30px rgba(17, 17, 17, .06)}body[data-theme=dark]{--bg: #0d1117;--bg-soft: #131a24;--text: #f2f4f8;--text-soft: #b3bac6;--card-bg: #161d29;--border: #232c3a;--shadow: 0 10px 30px rgba(0, 0, 0, .4)}html{overflow-x:hidden;width:100%}body{font-family:Poppins,sans-serif;background-color:var(--bg);color:var(--text);transition:background-color .3s ease,color .3s ease;scroll-behavior:smooth;overflow-x:hidden;width:100%}a{text-decoration:none;color:inherit}ul{list-style:none}img{max-width:100%;display:block}.section{padding:100px 8% 60px}.section-loading{text-align:center;padding:60px 0;color:var(--text-soft);font-size:.95rem}.section-title{font-size:2.4rem;font-weight:800;margin-bottom:40px;text-align:center}.btn{display:inline-block;padding:12px 30px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-3px);box-shadow:0 10px 20px #2f6fed4d}@media(max-width:768px){.section{padding:80px 6% 50px}.section-title{font-size:1.9rem}}@media(max-width:380px){.section{padding:70px 5% 40px}.section-title{font-size:1.55rem}.btn{padding:11px 22px;font-size:.9rem}}.theme-toggle-fixed{position:fixed;top:24px;right:5%;z-index:999;background:var(--bg-soft);border:1px solid var(--border);border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow)}.theme-toggle-fixed img{width:20px;height:20px}@media(max-width:768px){.theme-toggle-fixed{top:16px;right:6%}}.hero{min-height:100vh;display:flex;align-items:center;justify-content:space-between;padding:90px 8% 60px;gap:40px;flex-wrap:wrap}.hero-text{flex:1 1 460px;max-width:600px}.socials{display:flex;gap:14px;margin-bottom:24px}.socials a{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--accent);color:#fff;font-size:1.1rem;transition:transform .2s ease}.socials a:hover{transform:translateY(-4px)}.greet{font-size:1.2rem;color:var(--text-soft);margin-bottom:6px}.hero h1{font-size:3.4rem;font-weight:800;margin-bottom:14px}.role-line{font-size:1.6rem;font-weight:500;color:var(--text-soft);margin-bottom:20px;min-height:2.2rem}.role-text{color:var(--accent);font-weight:700}.cursor{display:inline-block;margin-left:2px;color:var(--accent);animation:blink .9s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.tagline{font-size:1.05rem;line-height:1.7;color:var(--text-soft);margin-bottom:32px}.hero-buttons{display:flex;gap:16px}.btn-outline{background:transparent;border:2px solid var(--accent);color:var(--accent)}.hero-image{position:relative;flex:1 1 380px;max-width:560px;display:flex;align-items:center;justify-content:center;overflow:visible}.blob{position:absolute;width:380px;height:380px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-light));opacity:.9;z-index:0}.hero-image img{position:relative;z-index:1;width:480px;max-width:100%;height:auto;object-fit:contain;margin:0 auto}@media(max-width:768px){.hero{padding-top:80px;text-align:center;justify-content:center}.socials,.hero-buttons{justify-content:center}.hero h1{font-size:2.4rem}.blob{width:min(260px,65vw);height:min(260px,65vw)}.hero-image img{width:min(300px,75vw);height:auto}}.about{display:flex;align-items:center;gap:60px;flex-wrap:wrap}.about-image{position:relative;flex:0 0 340px;width:340px;height:340px}.about-image-bg{position:absolute;top:-24px;left:-24px;width:100%;height:100%;background:var(--accent);border-radius:50%;opacity:.85}.about-image img{position:relative;width:100%;height:100%;object-fit:cover;border-radius:50%;box-shadow:var(--shadow)}.about-content{flex:1 1 420px}.section-title.left{text-align:left;margin-bottom:20px}.about-content p{color:var(--text-soft);line-height:1.8;margin-bottom:18px;font-size:1.02rem}.about-skills-summary{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.tag{padding:8px 18px;border-radius:30px;background:var(--bg-soft);border:1px solid var(--border);font-size:.9rem;font-weight:500;color:var(--accent)}@media(max-width:768px){.about{flex-direction:column}.about-image{width:min(260px,70vw);height:min(260px,70vw);margin:0 auto}.section-title.left{text-align:center;width:100%}}.skills-subtitle{text-align:center;color:var(--text-soft);margin:-20px auto 40px;font-size:.98rem}.skills-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:34px}.skills-tab{display:flex;align-items:center;gap:10px;padding:12px 22px;border-radius:30px;border:1px solid var(--border);background:var(--card-bg);color:var(--text-soft);font-weight:600;font-size:.92rem;cursor:pointer;transition:all .25s ease}.skills-tab svg{font-size:1rem;color:var(--accent)}.skills-tab:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.skills-tab.active{background:linear-gradient(135deg,var(--accent),var(--accent-light));border-color:transparent;color:#fff}.skills-tab.active svg{color:#fff}.skills-panel{max-width:900px;margin:0 auto;background:var(--card-bg);border:1px solid var(--border);border-radius:20px;padding:36px 40px 40px;box-shadow:var(--shadow)}.skills-blurb{color:var(--text-soft);font-size:.98rem;margin-bottom:26px;padding-bottom:20px;border-bottom:1px dashed var(--border)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.skill-badge{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;background:var(--bg-soft);border:1px solid var(--border);opacity:0;transform:translateY(10px);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.skills-grid.revealed .skill-badge{animation:badgeFadeIn .5s ease forwards;animation-delay:calc(var(--i) * .05s)}@keyframes badgeFadeIn{to{opacity:1;transform:translateY(0)}}.skill-badge:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 10px 22px #2f6fed26}.skill-badge-icon{width:34px;height:34px;flex-shrink:0;border-radius:10px;background:var(--card-bg);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:1rem}.skill-badge-name{font-size:.86rem;font-weight:600;color:var(--text);line-height:1.3}.skill-badge.learning{background:transparent;border:1.5px dashed var(--accent)}.skill-badge.learning .skill-badge-icon{background:#2f6fed1a;color:var(--accent);animation:seedlingPulse 2s ease-in-out infinite}@keyframes seedlingPulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.skill-badge-tag{position:absolute;top:-9px;right:10px;background:var(--accent);color:#fff;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;border-radius:10px}@media(max-width:640px){.skills-panel{padding:28px 22px 30px}.skills-tab{padding:10px 16px;font-size:.85rem}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.gallery-subtitle{text-align:center;color:var(--text-soft);max-width:520px;margin:-20px auto 30px;font-size:.95rem}.gallery-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:34px}.gallery-filter{padding:9px 20px;border-radius:30px;border:1px solid var(--border);background:var(--card-bg);color:var(--text-soft);font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s ease}.gallery-filter:hover{border-color:var(--accent);color:var(--accent)}.gallery-filter.active{background:linear-gradient(135deg,var(--accent),var(--accent-light));border-color:transparent;color:#fff}.gallery-grid{max-width:1100px;margin:0 auto;column-count:3;column-gap:18px}.gallery-item{display:block;width:100%;border:none;padding:0;margin:0 0 18px;border-radius:14px;overflow:hidden;cursor:pointer;position:relative;break-inside:avoid;background:var(--bg-soft);box-shadow:var(--shadow)}.gallery-grid.revealed .gallery-item{animation:galleryFadeIn .6s ease both;animation-delay:calc(var(--i) * .08s)}@keyframes galleryFadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.gallery-item img{width:100%;height:auto;display:block;transition:transform .4s ease}.gallery-item:hover img{transform:scale(1.04)}.gallery-badge{position:absolute;top:12px;left:12px;padding:5px 12px;border-radius:20px;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.6px}.gallery-caption{position:absolute;left:0;right:0;bottom:0;padding:20px 16px 16px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent 80%);display:flex;flex-direction:column;align-items:flex-start;gap:4px;opacity:0;transform:translateY(10px);transition:opacity .25s ease,transform .25s ease}.gallery-item:hover .gallery-caption{opacity:1;transform:translateY(0)}.gallery-caption-title{color:#fff;font-size:1.05rem;font-weight:700;font-style:italic}.gallery-caption-credit{display:inline-flex;align-items:center;gap:6px;color:#fffc;font-size:.72rem;letter-spacing:.3px}.gallery-caption-credit svg{font-size:.7rem;color:var(--accent-light)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:30px}.lightbox-content{max-width:720px;width:100%;text-align:center}.lightbox-content img{width:100%;border-radius:12px;max-height:75vh;object-fit:contain}.lightbox-info{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:18px;color:#fff}.lightbox-info svg{color:var(--accent-light)}.lightbox-title{font-weight:600}.lightbox-category{color:#fff9;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;border-left:1px solid rgba(255,255,255,.3);padding-left:10px}.lightbox-close{position:absolute;top:24px;right:5%;background:#ffffff1a;border:none;color:#fff;width:42px;height:42px;border-radius:50%;font-size:1.1rem;cursor:pointer}@media(max-width:900px){.gallery-grid{column-count:2}}@media(max-width:560px){.gallery-grid{column-count:1}}.clients-subtitle{text-align:center;color:var(--text-soft);margin:-20px auto 44px;font-size:.98rem}.clients-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px;max-width:1100px;margin:0 auto}.client-card{position:relative;background:var(--card-bg);border:1px solid var(--border);border-radius:18px;padding:34px 28px 28px;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease;overflow:hidden}.client-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-light))}.client-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px #2f6fed26}.quote-icon{font-size:1.6rem;color:var(--accent);opacity:.25;margin-bottom:14px}.client-rating{display:flex;gap:4px;color:#f5b301;font-size:.85rem;margin-bottom:16px}.client-feedback{color:var(--text-soft);line-height:1.7;font-size:.98rem;margin-bottom:26px;min-height:110px}.client-identity{display:flex;align-items:center;gap:14px;padding-top:18px;border-top:1px dashed var(--border)}.client-photo{width:52px;height:52px;border-radius:50%;object-fit:cover;border:3px solid var(--accent)}.client-initials{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-light))}.client-identity h3{font-size:1rem;margin-bottom:2px}.client-role{font-size:.82rem;color:var(--text-soft)}@media(max-width:640px){.client-feedback{min-height:unset}}.title-icon{color:var(--accent);margin-right:12px;font-size:.85em}.faq-subtitle{text-align:center;color:var(--text-soft);max-width:520px;margin:-20px auto 44px;font-size:.95rem}.faq-thread{max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:8px}.faq-exchange{display:flex;flex-direction:column;gap:0}.faq-question-bubble{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--card-bg);border:1px solid var(--border);border-radius:18px 18px 18px 4px;padding:16px 20px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.faq-exchange.open .faq-question-bubble{border-color:var(--accent);box-shadow:var(--shadow);border-radius:18px 18px 4px 4px}.faq-q-icon{width:36px;height:36px;flex-shrink:0;border-radius:50%;background:var(--bg-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.95rem}.faq-exchange.open .faq-q-icon{background:var(--accent);color:#fff}.faq-q-text{flex:1;font-weight:600;font-size:.96rem;color:var(--text)}.faq-chevron{color:var(--text-soft);font-size:.8rem;flex-shrink:0;transition:transform .25s ease}.faq-exchange.open .faq-chevron{transform:rotate(180deg);color:var(--accent)}.faq-answer-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}.faq-exchange.open .faq-answer-collapse{grid-template-rows:1fr}.faq-answer-row{display:flex;align-items:flex-start;gap:12px;margin-left:20px;padding-left:20px;border-left:2px dashed var(--border);overflow:hidden;min-height:0}.faq-exchange.open .faq-answer-row{padding-top:14px;padding-bottom:2px}.faq-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--accent);opacity:0;transition:opacity .3s ease .1s}.faq-exchange.open .faq-avatar{opacity:1}.faq-answer-bubble{background:linear-gradient(135deg,var(--accent),var(--accent-light));color:#fff;border-radius:4px 18px 18px;padding:0 18px;max-height:0;opacity:0;overflow:hidden;transition:all .35s ease}.faq-exchange.open .faq-answer-bubble{padding:14px 18px;max-height:300px;opacity:1}.faq-answer-bubble p{font-size:.92rem;line-height:1.65}.faq-cta{text-align:center;margin-top:44px}.faq-cta p{color:var(--text-soft);font-size:.95rem;margin-bottom:14px}.faq-cta-btn{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--accent),var(--accent-light));color:#fff;padding:12px 28px;border-radius:30px;font-weight:600;font-size:.92rem;transition:transform .2s ease,box-shadow .2s ease}.faq-cta-btn:hover{transform:translateY(-3px);box-shadow:0 12px 24px #2f6fed4d}@media(max-width:640px){.faq-question-bubble{padding:14px 16px;gap:10px}.faq-q-text{font-size:.88rem}.faq-answer-row{margin-left:10px;padding-left:12px}}.contact-subtitle{text-align:center;color:var(--text-soft);max-width:480px;margin:-20px auto 40px;font-size:.95rem}.contact-card{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}.contact-info{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--accent),#1d4fc4);color:#fff;padding:44px 38px;display:flex;flex-direction:column}.availability-badge{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;background:#ffffff26;padding:7px 14px;border-radius:30px;font-size:.8rem;font-weight:600;margin-bottom:22px}.pulse-dot{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 #4ade80b3;animation:pulse 1.8s infinite}@keyframes pulse{0%{box-shadow:0 0 #4ade8099}70%{box-shadow:0 0 0 8px #4ade8000}to{box-shadow:0 0 #4ade8000}}.contact-info h2{font-size:1.9rem;font-weight:800;line-height:1.3;margin-bottom:16px}.contact-story{font-size:.92rem;line-height:1.7;opacity:.9;margin-bottom:32px}.info-item{display:flex;align-items:center;gap:14px;margin-bottom:18px;font-size:.95rem}.info-icon{width:38px;height:38px;border-radius:50%;background:#ffffff26;display:flex;align-items:center;justify-content:center;flex-shrink:0}.contact-socials{display:flex;gap:12px;margin-top:auto;padding-top:30px}.contact-socials a{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff26;color:#fff;transition:transform .2s ease,background .2s ease}.contact-socials a:hover{background:#ffffff4d;transform:translateY(-3px)}.contact-form{background:var(--card-bg);padding:44px 38px;display:flex;flex-direction:column;gap:26px}.field-group{position:relative;display:flex;align-items:center;border:1.5px solid var(--border);border-radius:12px;background:var(--bg-soft);transition:border-color .25s ease,box-shadow .25s ease}.field-group:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px #2f6fed1f}.field-icon{display:flex;align-items:center;justify-content:center;width:44px;color:var(--accent);font-size:.95rem;flex-shrink:0}.field-icon-textarea{align-self:flex-start;margin-top:18px}.field-group input,.field-group textarea{width:100%;min-width:0;padding:20px 14px 8px 0;border:none;background:transparent;color:var(--text);font-family:inherit;font-size:.98rem;resize:none}.field-group input:focus,.field-group textarea:focus{outline:none}.field-group label{position:absolute;left:44px;top:16px;color:var(--text-soft);font-size:.98rem;pointer-events:none;transition:all .2s ease}.field-group input:focus+label,.field-group input:not(:placeholder-shown)+label,.field-group textarea:focus+label,.field-group textarea:not(:placeholder-shown)+label{top:5px;font-size:.68rem;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.4px}.char-counter{position:absolute;right:12px;bottom:8px;font-size:.72rem;color:var(--text-soft)}.contact-oneliner{margin-top:6px;padding-top:22px;border-top:1px solid rgba(255,255,255,.18);font-size:.92rem;font-style:italic;color:#ffffffd9;line-height:1.6;position:relative;z-index:1}.contact-watermark{position:absolute;right:-20px;bottom:-20px;font-size:9rem;color:#ffffff0f;transform:rotate(-15deg);pointer-events:none;z-index:-1}.submit-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;padding:13px 28px;background:linear-gradient(135deg,var(--accent),var(--accent-light));color:#fff;border:none;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.submit-btn:hover{transform:translateY(-3px);box-shadow:0 12px 24px #2f6fed4d}.submit-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.form-status{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:500}.form-status.success{color:#1fa463}.form-status.error{color:#e5484d}@media(max-width:800px){.contact-card{grid-template-columns:1fr;border-radius:20px}.contact-info,.contact-form{padding:34px 26px}}.footer{display:flex;align-items:center;justify-content:space-between;padding:26px 8%;border-top:1px solid var(--border);flex-wrap:wrap;gap:18px}.footer-left{display:flex;flex-direction:column;gap:8px}.footer-left p{color:var(--text-soft);font-size:.9rem}.made-with{display:inline-block;margin-left:4px}.heart-icon{color:#ef4444;font-size:.8rem;margin:0 1px}.footer-email{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--accent);font-weight:500}.footer-email:hover{text-decoration:underline}.footer-right{display:flex;align-items:center;gap:20px}.footer-status{font-size:.85rem;color:var(--text-soft);animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.back-to-top{width:42px;height:42px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--accent),var(--accent-light));color:#fff;font-size:.95rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s ease,box-shadow .2s ease;flex-shrink:0}.back-to-top:hover{transform:translateY(-4px);box-shadow:0 10px 20px #2f6fed4d}@media(max-width:640px){.footer{justify-content:center;text-align:center}.footer-left{align-items:center}.footer-right{justify-content:center}}
