:root{--brand-900:#0a2540;--brand-800:#0d2e57;--brand-700:#14365d;--brand-600:#1e4e8a;--accent-500:#0ea5e9;--accent-400:#38bdf8;--accent-soft:#0ea5e91f;--ink-900:#0f1e33;--ink-700:#334155;--ink-600:#475569;--ink-400:#94a3b8;--surface:#fff;--surface-soft:#f6f8fb;--line:#e2e8f0;--on-brand:#fff;--on-brand-soft:#ffffffc7;--on-brand-line:#ffffff24;--font-display:"Plus Jakarta Sans", "Poppins", system-ui, sans-serif;--font-body:"Inter", "Poppins", system-ui, sans-serif;--space-section:100px;--radius-lg:20px;--radius-md:14px;--radius-sm:8px;--shadow-sm:0 2px 8px #0a25400f;--shadow-md:0 8px 24px #0a25401a;--shadow-lg:0 16px 40px #0a254024;--ease-smooth:cubic-bezier(.16, 1, .3, 1);--duration-reveal:.6s;--duration-hover:.3s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink-900);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.6}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700;line-height:1.15}.section-title{text-align:center;color:var(--ink-900);margin-bottom:10px;font-size:clamp(1.875rem,4vw,2.5rem);font-weight:700}.section-subtitle{text-align:center;color:var(--ink-600);margin-bottom:55px;font-size:1.05rem}.on-dark .section-title{color:var(--on-brand)}.on-dark .section-subtitle{color:var(--on-brand-soft)}a{color:var(--accent-500);transition:color var(--duration-hover) ease;text-decoration:none}a:hover{color:var(--accent-400)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html{scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}body::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}html::-webkit-scrollbar-track{background:0 0;border:none;display:none}html::-webkit-scrollbar-track-piece{background:0 0;border:none;display:none}html::-webkit-scrollbar-thumb{background:0 0;border:none;display:none}html::-webkit-scrollbar-button{background:0 0;border:none;display:none}html::-webkit-scrollbar-corner{background:0 0;border:none;display:none}body::-webkit-scrollbar-track{background:0 0;border:none;display:none}body::-webkit-scrollbar-track-piece{background:0 0;border:none;display:none}body::-webkit-scrollbar-thumb{background:0 0;border:none;display:none}body::-webkit-scrollbar-button{background:0 0;border:none;display:none}body::-webkit-scrollbar-corner{background:0 0;border:none;display:none}::-webkit-scrollbar-track{background:0 0;border:none;display:none}::-webkit-scrollbar-track-piece{background:0 0;border:none;display:none}::-webkit-scrollbar-thumb{background:0 0;border:none;display:none}::-webkit-scrollbar-button{background:0 0;border:none;display:none}::-webkit-scrollbar-corner{background:0 0;border:none;display:none}body{font-family:var(--font-body);background:var(--surface);color:var(--ink-900);margin:0;overflow-x:hidden}.osb{z-index:9999;pointer-events:none;opacity:0;width:7px;transition:opacity .35s;position:fixed;top:0;bottom:0;right:3px}.osb.is-active{opacity:1;pointer-events:auto}.osb-thumb{background:linear-gradient(180deg, var(--accent-500) 0%, var(--accent-400) 100%);cursor:pointer;border-radius:4px;width:100%;min-height:32px;position:absolute;left:0}.container{max-width:1200px;margin:auto;padding:60px 20px}h2{font-family:var(--font-display);text-align:center;color:var(--ink-900);letter-spacing:-.02em;margin-bottom:25px;font-size:clamp(1.875rem,4vw,2.375rem);font-weight:700}:root{--motion-ease:cubic-bezier(.16, 1, .3, 1);--motion-duration:.7s;--skel-bg:#e9edf3;--skel-bg-dark:#ffffff14}.reveal{opacity:0;transition:opacity var(--motion-duration) var(--motion-ease), transform var(--motion-duration) var(--motion-ease);will-change:opacity, transform}.reveal-up{transform:translateY(18px)}.reveal-fade{transform:none}.reveal-scale{transform:translateY(8px)scale(.97)}.reveal.is-visible{opacity:1;will-change:auto;transform:none}.smart-img{background-color:var(--skel-bg);transition:background-color .45s;display:block;position:relative;overflow:hidden}.smart-img.on-dark{background-color:var(--skel-bg-dark)}.smart-img-el{opacity:0;max-width:100%;transition:opacity .5s;display:block}.smart-img.is-loaded{background-color:#0000}.smart-img.is-loaded .smart-img-el{opacity:1}.smart-img-skel{pointer-events:none;position:absolute;inset:0;overflow:hidden}.smart-img-skel:after{content:"";background:linear-gradient(100deg,#0000 30%,#fff9 50%,#0000 70%) 0 0/200% 100%;animation:1.6s ease-in-out infinite skel-sweep;position:absolute;inset:0}.smart-img.on-dark .smart-img-skel:after{background:linear-gradient(100deg,#0000 30%,#ffffff24 50%,#0000 70%) 0 0/200% 100%}@keyframes skel-sweep{0%{background-position:120% 0}to{background-position:-120% 0}}.smart-img.is-loaded .smart-img-skel{opacity:0;transition:opacity .45s}.smart-img-lqip{object-fit:cover;filter:blur(12px)saturate(1.1);opacity:1;pointer-events:none;width:100%;height:100%;transition:opacity .5s;position:absolute;inset:0;transform:scale(1.08)}.smart-img.is-loaded .smart-img-lqip{opacity:0}.avatar .smart-img{background-color:var(--skel-bg);border-radius:50%;width:100%;height:100%}.avatar .smart-img-el{object-fit:cover;border-radius:50%;width:100%;height:100%}.logo-box .smart-img{vertical-align:top;border-radius:18px;display:inline-block}.logo .smart-img{background-color:#ffffff26;border-radius:8px;flex:none;width:30px;height:30px}.logo .smart-img-el{object-fit:contain;width:100%;height:100%}.portfolio-img-wrap{width:100%;display:block}.features-grid>.reveal,.services-grid>.reveal,.portfolio-grid>.reveal,.contact-wrapper>.reveal{min-width:0}.features-grid>.reveal>.feature-card,.services-grid>.reveal>.service-card,.portfolio-grid>.reveal>.portfolio-card,.contact-wrapper>.reveal>.contact-box{height:100%}.hero-skeleton{z-index:0;background:linear-gradient(135deg, var(--brand-900) 0%, var(--brand-800) 100%);pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-skeleton:after{content:"";background:linear-gradient(100deg,#0000 30%,#ffffff14 50%,#0000 70%) 0 0/200% 100%;animation:1.8s ease-in-out infinite skel-sweep;position:absolute;inset:0}#hero.is-ready .hero-skeleton{opacity:0;visibility:hidden;transition:opacity .6s,visibility 0s .6s}.hero-enter{opacity:0;visibility:hidden}#hero.is-ready .hero-enter{animation:hero-rise .8s var(--motion-ease) forwards}@keyframes hero-rise{0%{opacity:0;visibility:hidden;transform:translateY(22px)}to{opacity:1;visibility:visible;transform:none}}@media (max-width:768px){.reveal-up{transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){.reveal{opacity:1!important;transition:none!important;transform:none!important}.smart-img-el{opacity:1!important;transition:none!important}.smart-img-skel,.hero-skeleton{display:none!important}.hero-enter{opacity:1!important;animation:none!important}.hero-slide{transition:none!important}}#about{background:linear-gradient(135deg, var(--brand-900) 0%, var(--brand-800) 100%);padding:var(--space-section) 20px;position:relative;overflow:hidden}#about:before,#about:after{content:"";z-index:0;background:radial-gradient(circle,#38bdf824,#0000 70%);border-radius:50%;position:absolute}#about:before{width:350px;height:350px;top:-120px;left:-120px}#about:after{width:450px;height:450px;bottom:-180px;right:-150px}.about-container{z-index:2;text-align:center;max-width:1000px;margin:auto;position:relative}.about-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--on-brand-line);background:#ffffff0f;padding:60px 40px}.logo-box{margin-bottom:30px}.logo-box img{background:var(--surface);border-radius:var(--radius-md);width:150px;height:auto;box-shadow:var(--shadow-md);margin:0 auto;padding:15px;display:block}#about h2{font-family:var(--font-display);color:var(--on-brand);margin-bottom:18px;font-size:clamp(1.875rem,4.5vw,2.5rem);font-weight:700}#about h2:after{content:"";background:var(--accent-500);border-radius:999px;width:72px;height:4px;margin:16px auto 0;display:block}#about p{max-width:850px;color:var(--on-brand-soft);margin:35px auto 0;font-size:1.125rem;line-height:1.9}@media (max-width:768px){#about{padding:80px 20px}.about-panel{padding:45px 25px}#about p{font-size:1rem}.logo-box img{width:120px}}nav{-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow-sm);border-bottom:1px solid var(--on-brand-line);z-index:1000;transition:padding var(--duration-hover) ease, background var(--duration-hover) ease, box-shadow var(--duration-hover) ease;background:#0a2540d9;padding:16px 0;position:sticky;top:0}nav.scrolled{box-shadow:var(--shadow-md);background:#0a2540f2;padding:12px 0}.nav-container{justify-content:space-between;align-items:center;max-width:1200px;margin:auto;padding:0 25px;display:flex}.logo{font-family:var(--font-display);color:var(--on-brand);letter-spacing:-.01em;align-items:center;gap:8px;font-size:1.5rem;font-weight:700;text-decoration:none;display:inline-flex}.logo:hover{color:var(--on-brand)}.logo-img{object-fit:contain;border-radius:2px;width:21px;height:21px}nav ul{gap:28px;margin:0;padding:0;list-style:none;display:flex}nav ul li a{color:var(--on-brand-soft);transition:color var(--duration-hover) ease;font-size:1rem;font-weight:500;text-decoration:none;position:relative}nav ul li a:after{content:"";background:var(--accent-400);width:0;height:2px;transition:width var(--duration-hover) ease;position:absolute;bottom:-6px;left:0}nav ul li a:hover,nav ul li a.active{color:var(--on-brand)}nav ul li a:hover:after,nav ul li a.active:after{width:100%}.menu-btn{color:var(--on-brand);cursor:pointer;font-size:1.6rem;display:none}@media (max-width:768px){nav ul{-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--on-brand-line);width:100%;box-shadow:var(--shadow-lg);background:#0a2540f2;flex-direction:column;align-items:center;gap:18px;padding:25px 0;display:none;position:absolute;top:70px;left:0}nav ul.open{animation:slideDown var(--duration-hover) ease;display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.menu-btn{display:block}}section{scroll-margin-top:90px}.contact{padding:var(--space-section) 20px;background:var(--surface)}.contact-title{font-family:var(--font-display);text-align:center;color:var(--ink-900);margin-bottom:12px;font-size:clamp(1.875rem,4vw,2.5rem);font-weight:700}.contact-subtitle{text-align:center;color:var(--ink-600);margin-bottom:50px;font-size:1.0625rem}.contact-wrapper{grid-template-columns:1fr 1fr;gap:35px;max-width:900px;margin:auto;display:grid}.contact-box{background:var(--surface-soft);border-radius:var(--radius-md);border:1px solid var(--line);box-shadow:var(--shadow-sm);padding:25px}.contact-box h3{font-family:var(--font-display);color:var(--ink-900);margin-bottom:15px;font-size:1.25rem;font-weight:700}.contact-item{align-items:center;margin-bottom:12px;display:flex}.contact-icon{color:var(--accent-500);margin-right:12px;font-size:1.5rem}.contact-item span{color:var(--ink-700);font-size:1rem}.contact-email-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.contact-email-icon{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line);color:var(--accent-500);justify-content:center;align-items:center;margin-bottom:24px;padding:16px;display:inline-flex}.contact-email-icon ion-icon{font-size:2rem}.contact-email-title{font-family:var(--font-display);color:var(--ink-900);margin-bottom:12px;font-size:1.25rem;font-weight:700}.contact-email-text{color:var(--ink-600);max-width:24rem;margin:0 0 32px;font-size:.875rem;line-height:1.625}.contact-email-button{border-radius:var(--radius-sm);background:var(--accent-500);width:100%;color:var(--on-brand);transition:background var(--duration-hover) ease, transform var(--duration-hover) var(--ease-smooth);justify-content:center;align-items:center;gap:8px;padding:14px 32px;font-weight:600;text-decoration:none;display:inline-flex}.contact-email-button:hover{color:var(--on-brand);background:var(--accent-400);transform:translateY(-2px)}.contact-email-button ion-icon{font-size:1.125rem}@media (max-width:780px){.contact-wrapper{grid-template-columns:1fr}}@media (min-width:640px){.contact-email-button{width:auto}}#hero{width:100%;height:100vh;color:var(--on-brand);position:relative;overflow:hidden}.hero-slide{opacity:0;width:100%;height:100%;transition:opacity 1.5s ease-in-out;position:absolute;top:0;left:0}.hero-slide img{object-fit:cover;width:100%;height:100%}.hero-slide.active{opacity:1}.hero-overlay{background:#0a2540b8;width:100%;height:100%;position:absolute;top:0;left:0}.hero-content{text-align:center;border-radius:24px;width:90%;max-width:900px;padding:45px 35px;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.hero-welcome{opacity:.85;letter-spacing:.06em;margin-bottom:10px;font-size:1.25rem;animation:1s ease-in-out fadeText}.hero-title{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:15px;font-size:clamp(2rem,6vw,3.375rem);font-weight:700;line-height:1.1}.hero-innovation{opacity:.9;min-height:40px;margin-bottom:25px;font-size:clamp(1rem,2.5vw,1.5rem);animation:1s ease-in-out fadeText}@keyframes fadeText{0%{opacity:0}to{opacity:1}}.hero-btn a{background:var(--on-brand);color:var(--brand-900);transition:transform var(--duration-hover) var(--ease-smooth), box-shadow var(--duration-hover) ease;border-radius:10px;padding:14px 34px;font-size:1.125rem;font-weight:600;text-decoration:none;display:inline-block;box-shadow:0 5px 15px #ffffff40}.hero-btn a:hover{color:var(--brand-900);transform:translateY(-2px);box-shadow:0 8px 22px #ffffff59}footer{background:var(--brand-900);color:var(--on-brand);margin-top:60px;padding:45px 20px 20px}.footer-container{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:30px;max-width:1100px;margin:auto;display:grid}.footer-box h3{font-family:var(--font-display);color:var(--on-brand);margin-bottom:15px;font-size:1.25rem;font-weight:700}.footer-box p,.footer-box a{color:var(--on-brand-soft);transition:color var(--duration-hover) ease;font-size:.9375rem;line-height:1.7;text-decoration:none}.footer-box a:hover{color:var(--on-brand)}.footer-social{gap:15px;margin-top:12px;font-size:1.375rem;display:flex}.footer-social a{color:var(--on-brand-soft);transition:color var(--duration-hover) ease, transform var(--duration-hover) var(--ease-smooth)}.footer-social a:hover{color:var(--accent-400);transform:translateY(-2px)}.footer-bottom{text-align:center;color:var(--on-brand-soft);border-top:1px solid var(--on-brand-line);margin-top:40px;padding-top:15px;font-size:.9375rem}#features{padding:var(--space-section) 0;background:var(--surface-soft)}#features .section-title{color:var(--ink-900)}#features .section-subtitle{color:var(--ink-600)}.features-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px;max-width:1200px;margin:auto;display:grid}.feature-card{background:var(--surface);border-radius:var(--radius-lg);text-align:center;border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:transform var(--duration-hover) var(--ease-smooth), box-shadow var(--duration-hover) ease;padding:30px 25px;position:relative;overflow:hidden}.feature-card:before{content:"";background:var(--accent-500);width:0;height:3px;transition:width var(--duration-hover) var(--ease-smooth);border-radius:999px;position:absolute;top:0;left:50%;transform:translate(-50%)}.feature-card:hover:before{width:60%}.feature-card:hover{box-shadow:var(--shadow-md);transform:translateY(-6px)}.feature-icon{background:var(--brand-900);color:var(--on-brand);border-radius:var(--radius-md);width:70px;height:70px;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;margin-bottom:18px;margin-left:auto;margin-right:auto;font-size:2rem;display:flex}.feature-card h3{color:var(--ink-900);margin-bottom:10px;font-size:1.375rem;font-weight:700}.feature-card p{color:var(--ink-600);font-size:1rem;line-height:1.6}@media (max-width:768px){.feature-icon{width:60px;height:60px;font-size:1.5rem}}#services{padding:var(--space-section) 0;background:var(--surface)}#services .services-title{font-family:var(--font-display);text-align:center;color:var(--ink-900);margin-bottom:10px;font-size:clamp(1.875rem,4vw,2.5rem);font-weight:700}#services .services-subtitle{text-align:center;color:var(--ink-600);margin-bottom:55px;font-size:1.0625rem}.services-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px;max-width:1200px;margin:auto;display:grid}.service-card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:var(--shadow-sm);text-align:center;transition:transform var(--duration-hover) var(--ease-smooth), box-shadow var(--duration-hover) ease;padding:35px 28px;position:relative;overflow:hidden}.service-card:before{content:"";background:var(--accent-500);width:0;height:3px;transition:width var(--duration-hover) var(--ease-smooth);border-radius:999px;position:absolute;top:0;left:50%;transform:translate(-50%)}.service-card:hover:before{width:60%}.service-card:hover{box-shadow:var(--shadow-md);transform:translateY(-6px)}.service-icon{background:var(--brand-900);border-radius:var(--radius-md);width:70px;height:70px;color:var(--on-brand);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;margin:0 auto 20px;font-size:2.25rem;display:flex}.service-card h3{color:var(--ink-900);margin-bottom:12px;font-size:1.375rem;font-weight:700}.service-card p{color:var(--ink-600);font-size:1rem;line-height:1.7}@media (max-width:768px){.service-icon{width:60px;height:60px;font-size:1.75rem}}.developers{padding:var(--space-section) 0;background:linear-gradient(160deg, var(--brand-900) 0%, var(--brand-800) 45%, var(--brand-700) 100%);position:relative;overflow:hidden}.developers:before,.developers:after{content:"";z-index:1;background:radial-gradient(circle,#38bdf81f,#0000 70%);border-radius:50%;width:500px;height:500px;position:absolute}.developers:before{top:-150px;left:-150px}.developers:after{bottom:-200px;right:-150px}.container{z-index:2;width:90%;max-width:1200px;margin:auto;position:relative}.dev-header{text-align:center;margin-bottom:55px}.dev-header h2{font-family:var(--font-display);letter-spacing:-.02em;color:var(--on-brand);margin-bottom:14px;font-size:clamp(1.875rem,4.5vw,2.5rem);font-weight:700}.dev-header h2:after{content:"";background:var(--accent-500);border-radius:999px;width:72px;height:4px;margin:14px auto 0;display:block}.subtitle{color:var(--on-brand-soft);max-width:620px;margin:auto;font-size:1.0625rem}.dev-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;display:grid}.dev-card{background:var(--surface);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-md);transition:transform var(--duration-hover) var(--ease-smooth), box-shadow var(--duration-hover) ease;padding:32px 18px;position:relative;overflow:hidden}.dev-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-6px)}.avatar{background:linear-gradient(135deg, var(--accent-500), var(--brand-600));border-radius:50%;width:120px;height:120px;margin:0 auto 16px;padding:4px}.avatar img{object-fit:cover;background:var(--surface);border-radius:50%;width:100%;height:100%}.dev-card h3{color:var(--ink-900);margin-bottom:6px;font-size:1.0625rem}.role{color:var(--accent-500);background:var(--accent-soft);border-radius:999px;padding:6px 14px;font-size:.8125rem;font-weight:600;display:inline-block}.animate{opacity:0;transform:translateY(20px)}.animate.show{opacity:1;transition:opacity var(--duration-reveal) var(--ease-smooth), transform var(--duration-reveal) var(--ease-smooth);transform:none}@media (max-width:768px){.developers{padding:70px 0}}.dev-slider{scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;cursor:grab;gap:28px;padding:24px 12px 44px;display:flex;overflow:auto hidden}.dev-slider::-webkit-scrollbar{width:0;height:0;display:none}.dev-slider:active{cursor:grabbing}.dev-slider .dev-card{border-radius:var(--radius-lg);flex:none;min-width:260px;padding:22px 20px}.dev-slider .dev-card:hover{transform:translateY(-6px)}.dev-slider .dev-card img{pointer-events:none;-webkit-user-select:none;user-select:none}@media (max-width:768px){.dev-slider{gap:18px;padding-bottom:32px}.dev-slider .dev-card{min-width:220px;padding:18px 16px}}.dev-footer{text-align:center;margin-top:40px}.btn-view-all{font-family:var(--font-body);color:var(--on-brand);background:var(--accent-500);transition:transform var(--duration-hover) var(--ease-smooth), box-shadow var(--duration-hover) ease, background var(--duration-hover) ease;border-radius:999px;align-items:center;gap:12px;padding:14px 34px;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 8px 22px #0ea5e959}.btn-view-all:hover{color:var(--on-brand);background:var(--accent-400);transform:translateY(-2px);box-shadow:0 12px 28px #0ea5e973}.btn-view-all .arrow{transition:transform var(--duration-hover) ease;font-size:1.125rem}.btn-view-all:hover .arrow{transform:translate(6px)}@media (max-width:768px){.btn-view-all{padding:13px 26px;font-size:.875rem}}#portfolio{padding:var(--space-section) 0;background:var(--surface-soft)}.portfolio-title{font-family:var(--font-display);text-align:center;color:var(--ink-900);margin-bottom:12px;font-size:clamp(1.875rem,4vw,2.5rem);font-weight:700}.portfolio-sub{text-align:center;color:var(--ink-600);margin-bottom:50px;font-size:1.0625rem}.portfolio-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:30px;width:90%;max-width:1200px;margin:auto;display:grid}.portfolio-card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:transform var(--duration-hover) var(--ease-smooth), box-shadow var(--duration-hover) ease;overflow:hidden}.portfolio-card:hover{box-shadow:var(--shadow-md);transform:translateY(-6px)}.portfolio-img{object-fit:cover;border-bottom:1px solid var(--line);width:100%;height:180px}.portfolio-content{padding:22px}.portfolio-card h3{color:var(--ink-900);margin-bottom:10px;font-size:1.375rem;font-weight:700}.portfolio-card p{color:var(--ink-600);margin-bottom:5px;font-size:.9375rem;line-height:1.6}
