:root{--primary: #9812AD;--primary-dark: #7a0e8a;--primary-light: #b83fd6;--white: #ffffff;--black: #000000;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--info: #3b82f6;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out;--max-width: 1280px;--container-padding: var(--spacing-lg);font-family:var(--font-family);line-height:1.6;font-weight:400;color:var(--gray-900);background-color:var(--white);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:var(--text-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg);color:var(--gray-900)}h2{font-size:var(--text-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg);color:var(--gray-900)}h3{font-size:var(--text-3xl);font-weight:600;line-height:1.3;margin-bottom:var(--spacing-md);color:var(--gray-900)}h4{font-size:var(--text-2xl);font-weight:600;line-height:1.4;margin-bottom:var(--spacing-md);color:var(--gray-900)}h5{font-size:var(--text-xl);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--gray-900)}h6{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--gray-900)}p{margin-bottom:var(--spacing-md);color:var(--gray-700);font-size:var(--text-base)}a{color:var(--primary);text-decoration:none;font-weight:500;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark);text-decoration:underline}button{font-family:var(--font-family);font-size:var(--text-base);font-weight:600;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.btn-primary{background-color:var(--primary);color:var(--white);box-shadow:0 4px 15px #9812ad66;font-weight:700;letter-spacing:.5px}.btn-primary:hover{background-color:var(--primary-light);box-shadow:0 8px 25px #9812ad99;transform:translateY(-3px)}.btn-primary:active{transform:translateY(-1px);box-shadow:0 4px 15px #9812ad66}.btn-primary-outline{background-color:var(--white);color:var(--primary);border:3px solid var(--primary);font-weight:700;letter-spacing:.5px}.btn-primary-outline:hover{background-color:var(--primary);color:var(--white);box-shadow:0 8px 25px #9812ad99;transform:translateY(-3px)}.btn-primary-outline:active{transform:translateY(-1px)}.btn-secondary{background-color:var(--gray-100);color:var(--primary);border:2px solid var(--primary)}.btn-secondary:hover{background-color:var(--primary);color:var(--white);box-shadow:var(--shadow-lg)}.btn-outline{background-color:transparent;color:var(--primary);border:2px solid var(--primary)}.btn-outline:hover{background-color:var(--primary);color:var(--white)}.btn-ghost{background-color:transparent;color:var(--primary)}.btn-ghost:hover{background-color:var(--gray-100)}.btn-sm{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm)}.btn-lg{padding:var(--spacing-lg) var(--spacing-2xl);font-size:var(--text-lg)}button:focus,button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}code{font-family:var(--font-mono);background-color:var(--gray-100);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.9em;color:var(--primary)}pre{background-color:var(--gray-900);color:var(--gray-100);padding:var(--spacing-lg);border-radius:var(--radius-lg);overflow-x:auto;margin-bottom:var(--spacing-lg)}pre code{background-color:transparent;color:inherit;padding:0}ul,ol{margin-left:var(--spacing-lg);margin-bottom:var(--spacing-md)}li{margin-bottom:var(--spacing-sm)}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--container-padding)}.text-primary{color:var(--primary)}.text-white{color:var(--white)}.text-gray{color:var(--gray-600)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mt-2xl{margin-top:var(--spacing-2xl)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mb-2xl{margin-bottom:var(--spacing-2xl)}.py-lg{padding:var(--spacing-lg) 0}.py-xl{padding:var(--spacing-xl) 0}.py-2xl{padding:var(--spacing-2xl) 0}.py-3xl{padding:var(--spacing-3xl) 0}.px-lg{padding:0 var(--spacing-lg)}.px-xl{padding:0 var(--spacing-xl)}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.grid{display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media(max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}}#root{width:100%;min-height:100vh}.header{background-color:var(--white);border-bottom:1px solid var(--gray-200);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}.header-content{max-width:var(--max-width);margin:0 auto;padding:.25rem var(--container-padding);display:flex;align-items:center;justify-content:space-between}.logo-link{display:flex;align-items:center;text-decoration:none;transition:transform var(--transition-fast)}.logo-link:hover{transform:scale(1.05)}.logo-image{height:70px;width:auto;object-fit:contain;transition:height .3s ease}.project-image{width:100%;height:200px;overflow:hidden;object-fit:cover}.project-image img{width:100%;height:100%;object-fit:cover;transform:scale(.8)}.nav-links{display:flex;gap:var(--spacing-xl);list-style:none;margin:0;padding:0}.nav-links a{color:var(--gray-700);font-weight:500;transition:color var(--transition-fast)}.nav-links a:hover{color:var(--primary);text-decoration:none}.hero{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:var(--white);padding:var(--spacing-3xl) var(--container-padding);text-align:center;animation:fadeInDown .8s ease-out,gradientShift 15s ease infinite;position:relative;overflow:hidden;min-height:600px;display:flex;align-items:center;justify-content:center}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 20% 50%,rgba(184,63,214,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(122,14,138,.15) 0%,transparent 50%);animation:pulseGradient 8s ease-in-out infinite;z-index:0}@keyframes pulseGradient{0%,to{opacity:.5}50%{opacity:1}}.hero:after{content:"";position:absolute;inset:0;z-index:1}.hero-content:before{content:"";position:absolute;width:120px;height:120px;background:linear-gradient(45deg,#ffffff1f,#b83fd62e);border-radius:50%;top:8%;left:12%;animation:float1 20s ease-in-out infinite;z-index:0;box-shadow:0 0 40px #b83fd64d}.hero-content:after{content:"";position:absolute;width:100px;height:100px;background:linear-gradient(135deg,#b83fd626,#ffffff1a);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);top:65%;right:10%;animation:float2 25s ease-in-out infinite,rotateSquare 30s linear infinite;z-index:0;box-shadow:0 0 30px #fff3}@keyframes rotateSquare{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float1{0%,to{transform:translate(0) rotate(0) scale(1)}25%{transform:translate(80px,-40px) rotate(90deg) scale(1.1)}50%{transform:translate(40px,80px) rotate(180deg) scale(.9)}75%{transform:translate(-60px,40px) rotate(270deg) scale(1.05)}}@keyframes float2{0%,to{transform:translate(0) rotate(0) scale(1)}25%{transform:translate(-70px,60px) rotate(-90deg) scale(.95)}50%{transform:translate(-100px,-40px) rotate(-180deg) scale(1.1)}75%{transform:translate(50px,-80px) rotate(-270deg) scale(.9)}}.hero:before{box-shadow:100px 150px 0 2px #ffffff26,250px 80px 0 1px #b83fd633,380px 250px 0 3px #ffffff1f,80px 350px 0 2px #7a0e8a2e,450px 120px 0 1px #ffffff1a,200px 450px 0 2px #b83fd626,320px 180px 0 1px #ffffff21,150px 280px 0 2px #7a0e8a29,420px 380px 0 3px #b83fd624,280px 320px 0 1px #ffffff1c;animation:floatParticles 40s ease-in-out infinite,twinkle 3s ease-in-out infinite;border-radius:50%}@keyframes floatParticles{0%,to{transform:translate(0) scale(1)}25%{transform:translate(40px,-50px) scale(1.2)}50%{transform:translate(-30px,60px) scale(.8)}75%{transform:translate(50px,30px) scale(1.1)}}@keyframes twinkle{0%,to{opacity:.6}50%{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.hero-content{max-width:var(--max-width);margin:0 auto;position:relative;z-index:2}.hero h1{color:var(--white);margin-bottom:var(--spacing-lg);font-size:4rem;font-weight:800;letter-spacing:-1px;animation:slideInUp .8s ease-out .2s both}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.hero p{color:#ffffffe6;font-size:1.25rem;line-height:1.8;margin-bottom:var(--spacing-2xl);max-width:700px;margin-left:auto;margin-right:auto;animation:slideInUp .8s ease-out .4s both}.hero-buttons{display:flex;gap:var(--spacing-lg);justify-content:center;flex-wrap:wrap;animation:slideInUp .8s ease-out .6s both}.card{background-color:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--spacing-xl);transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:var(--primary)}.card-header{margin-bottom:var(--spacing-lg)}.card-title{font-size:var(--text-xl);font-weight:600;color:var(--gray-900);margin-bottom:var(--spacing-sm)}.card-description{color:var(--gray-600);font-size:var(--text-sm)}.card-body{margin-bottom:var(--spacing-lg)}.card-footer{padding-top:var(--spacing-lg);border-top:1px solid var(--gray-200)}.features-section{padding:var(--spacing-3xl) var(--container-padding);background-color:var(--gray-50)}.features-content{max-width:var(--max-width);margin:0 auto}.section-title{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title h2{color:var(--gray-900);margin-bottom:var(--spacing-md)}.section-title p{color:var(--gray-600);font-size:var(--text-lg);max-width:500px;margin-left:auto;margin-right:auto}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-xl)}.feature-card{background-color:var(--white);padding:var(--spacing-xl);border-radius:var(--radius-lg);text-align:center;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.feature-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-8px)}.feature-icon{font-size:var(--text-5xl);margin-bottom:var(--spacing-lg);display:block}.feature-card h3{color:var(--gray-900);margin-bottom:var(--spacing-md)}.feature-card p{color:var(--gray-600);margin-bottom:0}.cta-section{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:var(--white);padding:var(--spacing-3xl) var(--container-padding);text-align:center}.cta-content{max-width:var(--max-width);margin:0 auto}.cta-section h2{color:var(--white);margin-bottom:var(--spacing-lg)}.cta-section p{color:#ffffffe6;font-size:var(--text-lg);margin-bottom:var(--spacing-2xl)}.footer{background-color:var(--gray-900);color:var(--white);padding:var(--spacing-3xl) var(--container-padding)}.footer-content{max-width:var(--max-width);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{color:var(--white);margin-bottom:var(--spacing-lg)}.footer-section p{color:var(--gray-300)}.footer-section ul{list-style:none;margin:0;padding:0}.footer-section li{margin-bottom:var(--spacing-md)}.footer-section a{color:var(--gray-400);transition:color var(--transition-fast)}.footer-section a:hover{color:var(--primary);text-decoration:none}.footer-bottom{border-top:1px solid var(--gray-800);padding-top:var(--spacing-2xl);text-align:center;color:var(--gray-400)}.hamburger{display:none;flex-direction:column;background:none;border:none;cursor:pointer;padding:0;gap:6px}.hamburger-line{width:25px;height:3px;background-color:var(--primary);border-radius:2px;transition:all .3s ease}.hamburger-line.open:nth-child(1){transform:rotate(45deg) translate(8px,8px)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:rotate(-45deg) translate(7px,-7px)}.nav{display:flex}@media(max-width:768px){.logo-image{height:50px}.hamburger{display:flex}.nav{position:absolute;top:100%;left:0;right:0;background-color:var(--white);flex-direction:column;border-bottom:1px solid var(--gray-200);max-height:0;overflow:hidden;transition:max-height .3s ease}.nav.open{max-height:400px}.nav-links{flex-direction:column;gap:0;padding:var(--spacing-lg) var(--container-padding)}.nav-links li{padding:var(--spacing-md) 0;border-bottom:1px solid var(--gray-100)}.nav-links li:last-child{border-bottom:none}.nav-links a{font-size:var(--text-base)}.hero{min-height:400px;padding:var(--spacing-2xl) var(--container-padding)}.hero h1{font-size:2rem;margin-bottom:var(--spacing-md)}.hero p{font-size:1rem;line-height:1.6;margin-bottom:var(--spacing-lg)}.hero-buttons{flex-direction:column;align-items:center;gap:var(--spacing-md)}.hero-buttons button{width:100%;max-width:280px;font-size:var(--text-base)}.section-title h2{font-size:var(--text-3xl)}.section-title p{font-size:var(--text-base)}.features-grid{grid-template-columns:1fr}.feature-card{padding:var(--spacing-lg)}.feature-icon{font-size:var(--text-3xl)}.feature-card h3{font-size:var(--text-lg)}.feature-card p{font-size:var(--text-sm)}.card{padding:var(--spacing-lg)}.card-title{font-size:var(--text-lg)}.cta-section{padding:var(--spacing-2xl) var(--container-padding)}.cta-section h2{font-size:var(--text-2xl);margin-bottom:var(--spacing-md)}.cta-section p{font-size:var(--text-base);margin-bottom:var(--spacing-lg)}.footer-content{grid-template-columns:1fr;gap:var(--spacing-xl)}.footer-section h4{font-size:var(--text-lg)}.footer-section p,.footer-section a{font-size:var(--text-sm)}.footer-bottom p{font-size:var(--text-xs)}}@media(max-width:480px){.header-content{padding:var(--spacing-sm) var(--container-padding)}.logo-image{height:40px}.hero{min-height:350px;padding:var(--spacing-xl) var(--container-padding)}.hero h1{font-size:1.5rem}.hero p{font-size:.9rem}.section-title h2{font-size:var(--text-2xl)}.btn-primary,.btn-secondary,.btn-primary-outline{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--text-sm)}.features-grid{gap:var(--spacing-lg)}.footer-section{text-align:center}}.about-section{padding:var(--spacing-3xl) var(--container-padding)}.about-content{max-width:var(--max-width);margin:0 auto}.about-hero{text-align:center;margin-bottom:var(--spacing-3xl)}.about-hero h1{color:var(--gray-900);margin-bottom:var(--spacing-lg)}.about-hero p{font-size:var(--text-lg);color:var(--gray-600);max-width:600px;margin:0 auto}.contact-info-card{background-color:var(--white);padding:var(--spacing-xl);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.contact-info-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.contact-icon{font-size:var(--text-5xl);display:block;margin-bottom:var(--spacing-lg)}.contact-info-card h3{color:var(--gray-900);margin-bottom:var(--spacing-md)}.contact-info-card p{color:var(--gray-700);margin-bottom:var(--spacing-sm)}.contact-info-card a{color:var(--primary);font-weight:600;text-decoration:none}.contact-info-card a:hover{text-decoration:underline}.contact-form{background-color:var(--white);padding:var(--spacing-2xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;font-weight:600;color:var(--gray-900);margin-bottom:var(--spacing-sm);font-size:var(--text-sm)}.form-group input,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--text-base);color:var(--gray-900);transition:all var(--transition-fast)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--gray-400)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #9812ad1a}.form-group textarea{resize:vertical;min-height:150px}.success-message{background-color:#d1fae5;border:1px solid #6ee7b7;border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);color:#065f46;font-weight:500;text-align:center;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fall{to{transform:translateY(100vh) rotate(360deg);opacity:0}}.faq-item{background-color:var(--white);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border-radius:var(--radius-lg);border-left:4px solid var(--primary);box-shadow:var(--shadow-sm)}.faq-item h4{color:var(--gray-900);margin-bottom:var(--spacing-md);font-size:var(--text-lg)}.faq-item p{color:var(--gray-700);margin-bottom:0;line-height:1.8}@media(max-width:768px){.contact-form{padding:var(--spacing-lg)}.faq-item{padding:var(--spacing-md)}}.curriculum-preview{padding:var(--spacing-3xl) var(--container-padding);background-color:var(--white)}.curriculum-preview-content{max-width:var(--max-width);margin:0 auto}.curriculum-preview-title{text-align:center;margin-bottom:var(--spacing-2xl)}.curriculum-preview-title h2{color:var(--gray-900);margin-bottom:var(--spacing-md)}.curriculum-preview-title p{color:var(--gray-600);font-size:var(--text-lg);max-width:500px;margin:0 auto}.curriculum-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-2xl)}.curriculum-card{background-color:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--spacing-xl);transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.curriculum-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:var(--primary)}.curriculum-view-all{text-align:center}.curriculum-view-all a{text-decoration:none}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg);animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background-color:var(--white);border-radius:var(--radius-xl);padding:var(--spacing-2xl);max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-2xl);position:relative;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);background:none;border:none;font-size:var(--text-2xl);color:var(--gray-600);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast)}.modal-close:hover{color:var(--primary)}@media(max-width:768px){.modal-content{padding:var(--spacing-lg);max-height:95vh}.modal-overlay{padding:var(--spacing-sm)}}.faq-item{padding:var(--spacing-xl);background:var(--white);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);box-shadow:0 1px 3px #0000001a;transition:transform .2s ease,box-shadow .2s ease}.faq-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.faq-item h4{color:var(--primary);margin-bottom:var(--spacing-md);font-size:var(--text-xl)}.faq-item p{color:var(--gray-700);line-height:1.6}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--spacing-2xl);margin-top:var(--spacing-2xl)}.project-card{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 4px 6px #0000001a;transition:transform .3s ease,box-shadow .3s ease}.project-card:hover{transform:translateY(-8px);box-shadow:0 12px 24px #00000026}.project-image{position:relative;width:100%;height:250px;overflow:hidden}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card:hover .project-image img{transform:scale(1.05)}.project-overlay{position:absolute;top:var(--spacing-md);right:var(--spacing-md)}.project-category{background:var(--primary);color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.project-content{padding:var(--spacing-xl)}.project-content h3{color:var(--gray-900);font-size:var(--text-2xl);margin-bottom:var(--spacing-md)}.project-description{color:var(--gray-600);line-height:1.6;margin-bottom:var(--spacing-lg);font-size:var(--text-base)}.project-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.tag{background:var(--gray-100);color:var(--gray-700);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500}.project-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.project-actions button{flex:1;min-width:120px}.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.review-card{background:var(--white);padding:var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:0 2px 8px #0000001a;transition:transform .3s ease,box-shadow .3s ease}.review-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000026}.review-stars{color:#f59e0b;font-size:var(--text-xl);margin-bottom:var(--spacing-md);letter-spacing:2px}.review-text{color:var(--gray-700);line-height:1.7;font-size:var(--text-base);margin-bottom:var(--spacing-lg);font-style:italic}.review-author{display:flex;flex-direction:column;gap:var(--spacing-xs);padding-top:var(--spacing-md);border-top:2px solid var(--gray-200)}.review-author strong{color:var(--gray-900);font-size:var(--text-base)}.review-author span{color:var(--gray-600);font-size:var(--text-sm)}@media(max-width:768px){.portfolio-grid{grid-template-columns:1fr}.project-image{height:200px}.reviews-grid{grid-template-columns:1fr}}.back-button{background:transparent;border:none;color:var(--primary);font-size:var(--text-base);cursor:pointer;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-lg);transition:opacity .2s ease}.back-button:hover{opacity:.7}.iframe-container{position:relative;width:100%;max-width:1200px;margin:0 auto;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 8px 24px #00000026;background:var(--white)}.project-iframe{width:100%;height:600px;border:none;display:block}.iframe-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 50%,transparent 100%);padding:var(--spacing-2xl);display:flex;justify-content:center;align-items:flex-end;opacity:0;transition:opacity .3s ease}.iframe-container:hover .iframe-overlay{opacity:1}.iframe-link{text-decoration:none}@media(max-width:768px){.project-iframe{height:400px}.iframe-overlay{opacity:1;background:linear-gradient(to top,rgba(0,0,0,.9) 0%,rgba(0,0,0,.6) 70%,transparent 100%)}}.tech-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:center}.tech-tag{background:var(--primary);color:var(--white);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600}.features-list{list-style:none;padding:0}.features-list li{padding:var(--spacing-md) 0;border-bottom:1px solid var(--gray-200);font-size:var(--text-base);color:var(--gray-700);position:relative;padding-left:var(--spacing-xl)}.features-list li:last-child{border-bottom:none}.features-list li:before{content:"✓";position:absolute;left:0;color:var(--primary);font-weight:700;font-size:var(--text-lg)}
