@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:700;color:var(--secondary, #432DD7);text-decoration:none;transition:color .2s ease}a:hover{color:var(--secondary-dark, #3320B0)}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:Inter,sans-serif;font-weight:800;line-height:1.15;color:var(--heading-color, #1C293C)}button,input,textarea{font-family:Inter,sans-serif}.navbar{position:fixed;top:0;left:0;z-index:100;width:100%;background:var(--bg-white);border-bottom:3px solid var(--border-color)}.navbar-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;max-width:1228px;height:84px;margin:0 auto;padding:0 24px}.navbar-logo{display:inline-block;flex-shrink:0;padding:.28rem .8rem;background:var(--primary);border:3px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);color:var(--text-dark);font-family:var(--font-heading);font-size:20px;font-weight:900;letter-spacing:-.03em;line-height:1.25;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}.navbar-logo:hover{background:var(--primary-dark);color:var(--text-dark);transform:translate(-2px,-2px);box-shadow:var(--shadow-md)}.navbar-right{display:flex;align-items:center;gap:26px}.navbar-links{display:flex;align-items:center;gap:22px}.navbar-links a{position:relative;padding:6px 0;color:var(--text-dark);font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}.navbar-links a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:3px;background:var(--primary);border:1px solid var(--border-color);transform:scaleX(0);transform-origin:left;transition:transform .15s ease}.navbar-links a:hover{color:var(--text-dark)}.navbar-links a:hover:after{transform:scaleX(1)}.btn.nav-cta{flex-shrink:0;min-height:42px;padding:.55rem 1rem;background:var(--secondary);color:#fff;border-color:var(--border-color);font-size:11px;letter-spacing:.05em;box-shadow:var(--shadow-sm)}.btn.nav-cta:hover{background:var(--secondary-dark);color:#fff;box-shadow:var(--shadow-md)}.hamburger{display:none;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;background:var(--primary);color:var(--text-dark);border:3px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);font-size:1.15rem;cursor:pointer}.hamburger:active{transform:translate(2px,2px);box-shadow:var(--cartoon-shadow-active)}.mobile-menu{display:none}@media screen and (max-width: 900px){.navbar-inner{height:66px;padding:0 18px}.navbar-right{display:none}.hamburger{display:flex}.mobile-menu{display:flex;flex-direction:column;padding:10px 18px 20px;background:var(--bg-white);border-bottom:3px solid var(--border-color);box-shadow:0 8px #1c293c14}.mobile-menu>a:not(.mobile-cta){padding:12px 4px;border-bottom:1px solid var(--border-light);color:var(--text-dark);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.mobile-menu>a:not(.mobile-cta):hover{color:var(--secondary)}.btn.mobile-cta{margin-top:16px;width:100%;background:var(--secondary);color:#fff}.btn.mobile-cta:hover{background:var(--secondary-dark);color:#fff}}@media (hover: none),(pointer: coarse){.navbar-logo:hover{transform:none;background:var(--primary);box-shadow:var(--shadow-sm)}.navbar-links a:hover:after{transform:none}}.landing-page{text-align:left;background:var(--surface);overflow-x:clip}.landing-container{width:100%;max-width:1228px;margin:0 auto;padding:0 24px}.landing-page section[id]{scroll-margin-top:104px}.landing-page .btn{text-transform:none;letter-spacing:0;font-size:var(--text-15);font-weight:700;padding:.7rem 1.3rem}.landing-page .btn-sm{padding:.55rem 1rem;font-size:var(--text-13);flex-shrink:0}.hero{background:var(--surface);padding:152px 0 48px}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;align-items:center;gap:56px}.badge-pill{display:inline-flex;align-items:center;gap:8px;background:var(--bg-white);border:2px solid var(--border-color);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);padding:6px 14px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text-dark)}.badge-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--success);border:1px solid var(--border-color);flex-shrink:0}.hero h1{margin:22px 0 20px;font-size:clamp(1.75rem,5.2vw,4.05rem);line-height:1.02;letter-spacing:-.045em;text-transform:uppercase;font-weight:900;color:var(--text-dark)}.hero-highlight{display:inline;background:var(--primary);padding:0 .08em;-webkit-box-decoration-break:clone;box-decoration-break:clone}.hero-desc{max-width:560px;font-size:var(--text-17);line-height:1.65;color:var(--text-body)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.hero-stats{display:flex;flex-wrap:wrap;gap:clamp(26px,5vw,64px);margin-top:34px;padding-top:18px;border-top:2px solid var(--border-color)}.hero-stat{display:flex;flex-direction:column;gap:2px}.stat-value{font-size:clamp(1.5rem,2.4vw,1.85rem);font-weight:900;line-height:1.1;letter-spacing:-.03em;color:var(--text-dark);font-family:var(--font-heading)}.stat-label{font-family:var(--font-mono);font-size:11px;color:var(--text-light);line-height:1.4}.hero-visual{display:flex;justify-content:flex-end}.portrait-card{position:relative;display:block;width:100%;max-width:420px;aspect-ratio:416 / 486;margin:26px 10px 10px 0;background:var(--secondary);border:3px solid var(--border-color);box-shadow:8px 8px 0 var(--border-color);border-radius:var(--radius-md);color:#fff;transition:transform .18s ease,box-shadow .18s ease}.portrait-card:hover{transform:translate(-3px,-3px);box-shadow:11px 11px 0 var(--border-color);color:#fff}.portrait-photo{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border-radius:calc(var(--radius-md) - 3px);overflow:hidden;background:var(--bg-white)}.portrait-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%}.portrait-tag,.portrait-sticker,.portrait-chip{position:absolute;z-index:3;background:var(--bg-white);color:var(--text-dark);border:2px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.portrait-tag{top:18px;left:18px;padding:4px 9px}.portrait-open{position:absolute;top:-30px;right:-18px;z-index:4;width:92px;height:92px;display:flex;align-items:center;justify-content:center;text-align:center;border-radius:50%;background:var(--primary);color:var(--text-dark);border:3px solid var(--border-color);box-shadow:var(--shadow-sm);font-family:var(--font-body);font-size:10px;font-weight:900;line-height:1.05;letter-spacing:.02em;text-transform:uppercase;transform:rotate(8deg)}.portrait-sparkle{position:absolute;top:21%;right:9%;z-index:3;color:var(--primary);font-size:30px;line-height:1}.portrait-sticker{bottom:24px;left:-18px;padding:5px 10px;transform:rotate(-7deg)}.portrait-chip{bottom:28px;right:-20px;padding:5px 10px;transform:rotate(-3deg);font-weight:800}.marquee{overflow:hidden;background:var(--primary);border-top:3px solid var(--border-color);border-bottom:3px solid var(--border-color);padding:14px 0}.marquee-track{display:flex;width:max-content;animation:marquee-scroll 26s linear infinite}.marquee-group{display:flex;align-items:center;gap:26px;padding-right:26px}.marquee-item{display:flex;align-items:center;gap:26px;white-space:nowrap;font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dark)}.marquee-item:after{content:"◆";font-size:9px}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.landing-section{background:var(--surface);padding:78px 0}.section-badge{display:inline-flex;align-items:center;background:var(--primary);color:var(--text-dark);border:2px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:4px 10px;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.landing-heading{margin:16px 0 0;font-size:clamp(2rem,4.6vw,3.15rem);line-height:1.02;letter-spacing:-.04em;text-transform:uppercase;color:var(--text-dark)}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:34px}.section-head .landing-heading{margin-bottom:0}.section-foot{display:flex;justify-content:center;margin-top:36px}.card{background:var(--bg-white);border:3px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.about-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:24px;align-items:start;margin-top:34px}.about-main{padding:30px}.about-lead{font-size:20px;font-weight:700;line-height:1.35;color:var(--text-dark);margin-bottom:18px}.about-main p{font-size:var(--text-15);line-height:1.7;color:var(--text-body);margin-bottom:12px}.about-main p:last-of-type{margin-bottom:0}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.chip{padding:4px 9px;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-white);color:var(--text-dark);font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.about-side{display:flex;flex-direction:column;gap:20px}.about-note{padding:22px;border:3px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.note-purple{background:var(--secondary);color:#fff}.note-yellow{background:var(--primary);color:var(--text-dark)}.note-label{display:inline-block;padding:3px 8px;border:2px solid currentColor;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;opacity:.85}.about-note h3{margin:12px 0 8px;font-size:22px;line-height:1.1;letter-spacing:-.02em;color:inherit}.about-note p{font-size:var(--text-13);line-height:1.6;color:inherit;opacity:.86}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.featured-project{display:flex;flex-direction:column;overflow:hidden;background:var(--bg-white);border:3px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md);transition:transform .18s ease,box-shadow .18s ease}.featured-project:hover{transform:translate(-3px,-4px);box-shadow:var(--shadow-lg)}.featured-project-head{display:flex;flex-direction:column;justify-content:space-between;gap:26px;min-height:186px;padding:18px 20px;border-bottom:3px solid var(--border-color);background:var(--secondary);color:#fff}.accent-yellow .featured-project-head{background:var(--primary);color:var(--text-dark)}.accent-green .featured-project-head{background:var(--success)}.project-no{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;opacity:.8}.featured-project-head h3{font-size:clamp(1.6rem,2.9vw,2.35rem);line-height:.95;letter-spacing:-.045em;text-transform:uppercase;color:inherit}.featured-project-body{display:flex;flex-direction:column;flex-grow:1;padding:18px 20px 20px}.mini-tag{padding:3px 8px;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-white);color:var(--text-dark);font-family:var(--font-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.featured-project-body h4{margin:12px 0 8px;font-size:17px;line-height:1.25;letter-spacing:-.02em;color:var(--text-dark)}.featured-project-body p{flex-grow:1;margin-bottom:16px;font-size:13.5px;line-height:1.6;color:var(--text-body)}.featured-project-body a{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--secondary)}.featured-project-body a:hover{color:var(--secondary-dark)}.cert-teaser-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.skills-section{background:var(--secondary);border-top:3px solid var(--border-color);border-bottom:3px solid var(--border-color);padding:78px 0 84px}.skills-section .landing-heading{color:#fff}.skills-tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:36px}.tool-card{background:var(--bg-white);border:3px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:18px}.tool-category{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light)}.tool-card h3{margin:8px 0 14px;font-size:18px;line-height:1.15;letter-spacing:-.02em;color:var(--text-dark)}.skill-bar{height:10px;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-white);overflow:hidden}.skill-bar span{display:block;height:100%;background:var(--primary);border-right:2px solid var(--border-color)}.timeline{display:flex;flex-direction:column;gap:16px;margin-top:34px}.timeline-row{display:grid;grid-template-columns:190px minmax(0,1fr);gap:28px;align-items:start;padding:22px 26px;background:var(--bg-white);border:3px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.timeline-period{justify-self:start;padding:5px 10px;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--primary);color:var(--text-dark);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.timeline-row:nth-child(n+2) .timeline-period{background:var(--bg-white)}.timeline-body h3{margin-bottom:4px;font-size:20px;line-height:1.2;letter-spacing:-.02em;color:var(--text-dark)}.timeline-sub{margin-bottom:6px;font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--secondary)}.timeline-body>p:last-child{font-size:13.5px;line-height:1.6;color:var(--text-body)}.contact-section{background:var(--primary);border-top:3px solid var(--border-color);padding:72px 0}.contact-card{background:var(--bg-white);border:3px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:clamp(28px,5vw,52px)}.contact-card h2{max-width:760px;margin:18px 0 16px;font-size:clamp(2.1rem,4.4vw,3.3rem);line-height:1;letter-spacing:-.04em;text-transform:uppercase;color:var(--text-dark)}.contact-card>p{max-width:620px;font-size:var(--text-15);line-height:1.7;color:var(--text-body)}.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:26px}.site-footer{background:var(--text-dark);border-top:3px solid var(--border-color);padding:48px 0 24px}.footer-inner{display:grid;grid-template-columns:minmax(0,1.5fr) auto auto;gap:40px;align-items:start}.footer-logo{display:inline-block;font-family:var(--font-heading);font-weight:900;font-size:20px;letter-spacing:-.02em;color:var(--text-dark);background:var(--primary);border:3px solid var(--border-color);box-shadow:4px 4px #00000059;padding:6px 12px;margin-bottom:14px;transform:rotate(-1.5deg);transition:transform .15s ease,box-shadow .15s ease}.footer-logo:hover{transform:rotate(-1.5deg) translate(-2px,-2px);box-shadow:6px 6px #00000059}.footer-brand p{font-size:12.5px;line-height:1.6;color:#ffffffa8;max-width:300px}.footer-links{display:flex;flex-direction:column;gap:10px;padding-top:6px}.footer-links a{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#ffffffb8}.footer-links a:hover{color:var(--primary)}.footer-socials{display:flex;gap:10px;padding-top:4px}.footer-socials a{display:grid;place-items:center;width:42px;height:42px;font-size:1.05rem;color:var(--text-dark);background:var(--bg-white);border:3px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:4px 4px #00000059;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.footer-socials a:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #00000059;background:var(--primary);color:var(--text-dark)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:36px;padding-top:18px;padding-right:100px;border-top:2px solid rgba(255,255,255,.14)}.footer-bottom p{font-size:11.5px;color:#ffffff94}.footer-top{font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary)}.footer-top:hover{text-decoration:underline}@media (max-width: 860px){.footer-inner{grid-template-columns:1fr auto;gap:28px}.footer-brand{grid-column:1 / -1}.site-footer{padding-bottom:92px}.footer-bottom{flex-direction:column;align-items:flex-start;padding-right:0}}@media (max-width: 1024px){.hero-grid{grid-template-columns:minmax(0,1fr) 360px;gap:40px}.about-grid{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr)}.skills-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.hero{padding-top:132px}.hero-grid{grid-template-columns:1fr;gap:44px}.hero-copy{max-width:640px}.hero-visual{justify-content:center}.portrait-card{max-width:380px;margin-left:0}.about-grid{grid-template-columns:1fr}.about-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid,.cert-teaser-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.landing-container{padding:0 18px}.landing-section{padding:56px 0}.hero{padding-top:118px;padding-bottom:36px}.hero h1{margin-top:18px}.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stat-value{font-size:1.4rem}.stat-label{font-size:10px}.portrait-card{max-width:340px;margin-top:34px}.portrait-sticker{left:-10px}.portrait-chip{right:-10px}.portrait-open{right:-10px;width:82px;height:82px}.section-head{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:26px}.about-main{padding:22px}.about-lead{font-size:18px}.about-side,.project-grid,.cert-teaser-grid,.skills-tool-grid{grid-template-columns:1fr}.timeline-row{grid-template-columns:1fr;gap:12px;padding:20px}.contact-section{padding:48px 0}.contact-card h2{font-size:clamp(1.8rem,8vw,2.4rem)}.footer-inner{flex-direction:column;align-items:flex-start}}@media (hover: none),(pointer: coarse){.portrait-card:hover{transform:none;box-shadow:8px 8px 0 var(--border-color)}.featured-project:hover{transform:none;box-shadow:var(--shadow-md)}}@media (prefers-reduced-motion: reduce){.marquee-track{animation:none}}.certificate-card{background:var(--card-bg);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-md);transition:transform .18s ease,box-shadow .18s ease;z-index:1;position:relative;border:3px solid var(--border-color)}.certificate-card:before{display:none}.certificate-card:hover{transform:translate(-3px,-4px);z-index:10;box-shadow:var(--shadow-lg)}.certificate-card-image-wrapper{height:220px;overflow:hidden;position:relative;border-bottom:3px solid var(--border-color)}.certificate-card-image-wrapper:after{display:none}.certificate-card-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.certificate-card:hover .certificate-card-image{transform:scale(1.05)}.certificate-card-date{position:absolute;top:.75rem;right:.75rem;z-index:4;background:var(--success-strong);color:#fff;padding:.3rem .65rem;border-radius:var(--radius-sm);font-size:var(--text-13);font-weight:700;border:2px solid var(--border-color);box-shadow:2px 2px 0 var(--border-color);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em}.certificate-content{padding:1.5rem;flex-grow:1;display:flex;flex-direction:column;position:relative;z-index:1}.certificate-course{color:var(--secondary);font-size:var(--text-13);font-weight:700;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-mono);background:none;-webkit-background-clip:unset;-webkit-text-fill-color:unset;background-clip:unset}.certificate-content h3{font-size:var(--text-21);margin-bottom:.5rem;color:var(--text-dark);font-weight:800;line-height:1.25;letter-spacing:-.02em;font-family:var(--font-heading)}.certificate-content p{color:var(--text-body);font-size:var(--text-15);margin-bottom:1.25rem;line-height:1.65;flex-grow:1;font-weight:400}.certificate-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:1.25rem;border-top:2px solid var(--border-light)}.list-item{background:var(--success-soft);color:var(--success-strong);padding:.25rem .6rem;border-radius:var(--radius-sm);font-size:var(--text-13);font-weight:500;transition:all .15s ease;border:2px solid var(--success-strong);font-family:var(--font-mono)}.list-item:hover{background:var(--success-strong);color:#fff;transform:translateY(-2px);box-shadow:2px 2px 0 var(--border-color);border-color:var(--border-color)}@media (hover: none),(pointer: coarse){.certificate-card:hover{transform:none;box-shadow:var(--shadow-md);z-index:1}.certificate-card:hover .certificate-card-image{transform:none}.list-item:hover{background:var(--success-soft);color:var(--success-strong);transform:none;box-shadow:none;border-color:var(--success-strong)}}.project-page-container{padding:120px 2rem 4rem}@media (max-width: 768px){.project-page-container{padding:96px 1rem 3rem}}.project-page-header{max-width:800px;margin:0 auto 4rem;text-align:center}.project-page-title{font-size:clamp(1.6875rem,5vw,2.1875rem);font-weight:900;letter-spacing:-.03em;margin-bottom:1rem;color:var(--text-dark);font-family:var(--font-heading);text-transform:uppercase}.project-page-title span{color:var(--text-dark);background:var(--primary);padding:0 .2em;position:relative;display:inline-block;box-shadow:4px 4px 0 var(--border-color);transform:rotate(-1deg)}.project-page-title span:after{display:none}.project-page-subtitle{font-size:var(--text-17);line-height:1.65;color:var(--text-body);max-width:650px;margin:0 auto;font-weight:400}.projects-grid{display:grid;grid-template-columns:1fr;gap:2rem;max-width:1200px;margin:0 auto}@media (min-width: 768px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 992px){.projects-grid{grid-template-columns:repeat(3,1fr)}}.project-card{background:var(--card-bg);border-radius:var(--radius-md);border:3px solid var(--border-color);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-md);transition:transform .18s ease,box-shadow .18s ease;z-index:1;position:relative}.project-card:before{display:none}.project-card:hover{transform:translate(-3px,-4px);z-index:10;box-shadow:var(--shadow-lg)}.project-card-image-wrapper{height:220px;overflow:hidden;position:relative;border-bottom:3px solid var(--border-color)}.project-card-image-wrapper:after{display:none}.project-card-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card:hover .project-card-image{transform:scale(1.05)}.project-card-date{position:absolute;top:.75rem;right:.75rem;z-index:4;background:var(--primary);color:var(--text-dark);padding:.3rem .65rem;border-radius:var(--radius-sm);font-size:var(--text-13);font-weight:700;border:2px solid var(--border-color);box-shadow:2px 2px 0 var(--border-color);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em}.project-content{padding:1.5rem;flex-grow:1;display:flex;flex-direction:column;background:var(--card-bg);position:relative;z-index:1}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem;min-height:70px;align-content:flex-start;margin-bottom:1rem}.tag{padding:.25rem .6rem;border-radius:var(--radius-sm);font-size:var(--text-13);font-weight:500;border:2px solid var(--border-color);transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease;color:var(--text-dark);font-family:var(--font-mono);background:var(--primary-soft)}.tag:nth-child(2){background:var(--secondary-soft)}.tag:nth-child(3){background:var(--success-soft)}.tag:nth-child(4){background:var(--warning-soft)}.tag:nth-child(5){background:var(--surface-alt)}.tag:nth-child(6){background:var(--danger-soft)}.tag:nth-child(7){background:var(--primary-soft)}.tag:hover{transform:translateY(-2px);box-shadow:2px 2px 0 var(--border-color)}.project-content h3{font-size:var(--text-21);margin-bottom:.5rem;color:var(--text-dark);font-weight:800;line-height:1.25;letter-spacing:-.02em;font-family:var(--font-heading)}.project-content p{color:var(--text-body);font-size:var(--text-15);margin-bottom:1.25rem;line-height:1.65;flex-grow:1;font-weight:400}.project-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:auto;padding-top:1.25rem;min-height:60px;align-items:center;border-top:2px solid var(--border-light)}.project-card .btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem 1rem;min-height:44px;border-radius:var(--radius-sm);font-size:var(--text-13);font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:all .15s ease;position:relative;overflow:hidden;font-family:var(--font-body)}.project-card .btn-primary{background:var(--primary);color:var(--text-dark);border:2.5px solid var(--border-color);box-shadow:var(--shadow-sm)}.project-card .btn-primary:hover{background:var(--primary-dark);color:var(--text-dark);transform:translate(-2px,-2px);box-shadow:var(--shadow-md)}.project-card .btn-secondary{background:var(--bg-white);color:var(--text-dark);border:2.5px solid var(--border-color);box-shadow:var(--shadow-sm)}.project-card .btn-secondary:hover{background:var(--primary);color:var(--text-dark);transform:translate(-2px,-2px);box-shadow:var(--shadow-md)}.project-card .btn-secondary svg,.project-card .btn-secondary span{position:relative;z-index:1}@media (hover: none),(pointer: coarse){.project-card:hover{transform:none;box-shadow:var(--shadow-md)}.project-card:hover .project-card-image{transform:none}.tag:hover{transform:none;box-shadow:none}.project-card .btn:hover{transform:none;box-shadow:var(--shadow-sm);background:var(--bg-white);color:var(--text-dark)}.project-card .btn-primary:hover{background:var(--primary)}.project-card:hover{z-index:1}}.profile-page-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:120px 1rem 2rem;position:relative}.profile-container{width:100%;max-width:500px;margin:0 auto}.profile-card{background:var(--bg-white);border-radius:var(--radius-lg);border:3px solid var(--border-color);padding:3.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow-lg);position:relative;overflow:visible;transition:transform .18s ease,box-shadow .18s ease}.profile-card:hover{transform:translate(-2px,-4px);box-shadow:10px 12px 0 var(--border-color)}.profile-image-wrapper{width:170px;height:170px;border-radius:50%;margin-top:-105px;margin-bottom:1.75rem;border:4px solid var(--border-color);box-shadow:6px 6px 0 var(--secondary);transition:transform .2s ease;position:relative;background:var(--bg-white);overflow:hidden}.profile-image-wrapper:before{display:none}.profile-image-wrapper:hover{transform:scale(1.04) rotate(-2deg)}.profile-image{width:100%;height:100%;object-fit:cover;border-radius:50%;position:relative;z-index:1}.profile-name{font-size:clamp(1.6875rem,5vw,2.1875rem);font-weight:900;letter-spacing:-.03em;color:var(--text-dark);line-height:1.15;margin:0;font-family:var(--font-heading)}.profile-title{font-size:var(--text-13);font-weight:700;color:var(--secondary);margin:.6rem 0 1.75rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;background:none;-webkit-background-clip:unset;-webkit-text-fill-color:unset;background-clip:unset}.about-me-text{font-size:var(--text-15);line-height:1.75;color:var(--text-body);margin-bottom:2rem;max-width:90%;font-weight:400}.profile-social-links{display:flex;gap:.75rem;margin-bottom:2rem}.profile-social-links a{color:var(--text-dark);font-size:1.5rem;transition:all .15s ease;display:flex;align-items:center;justify-content:center;padding:.65rem;border-radius:var(--radius-md);border:3px solid var(--border-color);background:var(--bg-white);box-shadow:var(--shadow-sm);width:48px;height:48px}.profile-social-links a:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-md);color:var(--text-dark);background:var(--primary)}.profile-social-links a.linkedin:hover,.profile-social-links a.github:hover,.profile-social-links a.instagram:hover{color:var(--text-dark);background:var(--primary);border-color:var(--border-color)}.profile-cta-btn{display:inline-flex;align-items:center;gap:.6rem;background:var(--secondary);color:#fff;font-weight:800;padding:.9rem 2rem;border-radius:var(--radius-md);text-decoration:none;transition:all .15s ease;border:3px solid var(--border-color);box-shadow:var(--shadow-md);font-family:var(--font-body);font-size:var(--text-13);text-transform:uppercase;letter-spacing:.06em;position:relative;overflow:hidden}.profile-cta-btn:before{display:none}.profile-cta-btn:hover{transform:translate(-2px,-2px);color:#fff;box-shadow:var(--shadow-lg);background:var(--secondary-dark)}.profile-cta-btn:active{transform:translate(2px,2px);box-shadow:var(--cartoon-shadow-active)}.profile-cta-btn svg,.profile-cta-btn span{position:relative;z-index:1}@media (max-width: 600px){.profile-page-wrapper{align-items:flex-start;padding-top:130px}.profile-card{padding:3rem 1.25rem 2.5rem}.profile-image-wrapper{width:150px;height:150px;margin-top:-95px}.about-me-text{max-width:100%}.profile-social-links{gap:.75rem}.profile-social-links a{width:48px;height:48px;font-size:1.4rem}}@media (hover: none),(pointer: coarse){.profile-card:hover{transform:none;box-shadow:var(--shadow-lg)}.profile-social-links a:hover,.profile-social-links a.linkedin:hover,.profile-social-links a.github:hover,.profile-social-links a.instagram:hover{transform:none;box-shadow:var(--shadow-sm);background:var(--bg-white);color:var(--text-dark)}.profile-cta-btn:hover{transform:none;box-shadow:var(--shadow-md);background:var(--secondary);color:#fff}}.project-detail-wrapper{min-height:100vh;padding:0}.project-detail-container{max-width:1150px;margin:0 auto;padding:140px 1.5rem 4rem}@media (max-width: 768px){.project-detail-container{padding:96px 1rem 3rem}}.detail-page-header{text-align:center;margin-bottom:4rem}.detail-kicker{display:inline-block;font-size:var(--text-13);font-weight:700;color:var(--text-dark);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--primary);border:2.5px solid var(--border-color);padding:.3rem .75rem;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);margin-bottom:1.25rem}.detail-page-title{font-size:clamp(1.6875rem,6vw,2.1875rem);font-weight:900;letter-spacing:-.03em;line-height:1.15;color:var(--text-dark);margin-bottom:1rem;font-family:var(--font-heading);background:none;-webkit-background-clip:unset;-webkit-text-fill-color:unset;background-clip:unset}.detail-page-date{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-dark);margin-bottom:1.75rem;font-size:var(--text-13);font-weight:700;background:var(--primary);border:2px solid var(--border-color);box-shadow:2px 2px 0 var(--border-color);padding:.35rem .8rem;border-radius:var(--radius-sm);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em}.detail-page-tags{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.detail-page-tag{background:var(--primary-soft);color:var(--text-dark);padding:.3rem .7rem;border-radius:var(--radius-sm);font-size:var(--text-13);font-weight:500;border:2px solid var(--border-color);transition:all .15s ease;font-family:var(--font-mono)}.detail-page-tag:nth-child(2){background:var(--secondary-soft)}.detail-page-tag:nth-child(3){background:var(--success-soft)}.detail-page-tag:nth-child(4){background:var(--warning-soft)}.detail-page-tag:nth-child(5){background:var(--surface-alt)}.detail-page-tag:nth-child(6){background:var(--danger-soft)}.detail-page-tag:hover{transform:translateY(-2px);box-shadow:2px 2px 0 var(--border-color)}.detail-page-content{display:grid;grid-template-columns:1fr;gap:3rem;align-items:flex-start}.section-subtitle{font-size:var(--text-21);font-weight:800;color:var(--text-dark);margin-bottom:1rem;font-family:var(--font-heading)}.detail-page-description{background:var(--bg-white);padding:2rem;border-radius:var(--radius-md);border:3px solid var(--border-color);box-shadow:var(--shadow-md);border-top:6px solid var(--secondary)}.detail-page-description p{font-size:var(--text-15);line-height:1.75;color:var(--text-body);margin:0;text-align:left;font-weight:400}.detail-page-image-wrapper{border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md);transition:all .18s ease;position:relative;border:3px solid var(--border-color)}.detail-page-image-wrapper:before{display:none}.detail-page-image-wrapper:hover{transform:translate(-2px,-3px);box-shadow:var(--shadow-lg)}.detail-page-image{width:100%;height:auto;display:block;cursor:zoom-in;transition:transform .25s ease}.detail-page-image-wrapper:hover .detail-page-image{transform:scale(1.02)}.features-section,.documentation-section{margin-top:4rem;padding-top:4rem;border-top:3px solid var(--border-color)}.section-heading{font-size:clamp(1.3125rem,5vw,1.6875rem);font-weight:900;letter-spacing:-.02em;color:var(--text-dark);text-align:center;margin-bottom:1rem;font-family:var(--font-heading);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem}.doc-count{font-size:var(--text-13);font-weight:600;color:var(--secondary);background:var(--secondary-soft);border:2px solid var(--secondary);padding:.2rem .6rem;border-radius:var(--radius-sm);font-family:var(--font-mono)}.documentation-description{text-align:center;color:var(--text-body);font-size:var(--text-15);line-height:1.65;max-width:700px;margin:0 auto 3rem;font-weight:400}.features-grid{display:grid;gap:1rem;grid-template-columns:1fr;margin-top:2.5rem}.feature-card{background:var(--bg-white);padding:1.25rem 1.5rem;border-radius:var(--radius-md);border:3px solid var(--border-color);box-shadow:var(--shadow-sm);transition:all .15s ease;display:flex;align-items:center;gap:1rem}.feature-card:nth-child(odd){background:var(--primary-soft)}.feature-card:nth-child(2n){background:var(--success-soft)}.feature-card:hover{transform:translate(-2px,-3px);box-shadow:var(--shadow-md)}.feature-icon{flex-shrink:0;width:34px;height:34px;border-radius:var(--radius-sm);background:var(--primary);color:var(--text-dark);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:var(--text-13);border:2px solid var(--border-color);box-shadow:2px 2px 0 var(--border-color);font-family:var(--font-mono)}.feature-card:nth-child(3n+1) .feature-icon{background:var(--primary);color:var(--text-dark)}.feature-card:nth-child(3n+2) .feature-icon{background:var(--secondary);color:#fff}.feature-card:nth-child(3n) .feature-icon{background:var(--success-strong);color:#fff}.feature-card p{font-size:var(--text-15);line-height:1.65;color:var(--text-body);margin:0;flex:1;font-weight:400}.documentation-grid{display:grid;gap:2rem;grid-template-columns:1fr;margin-top:2.5rem}.documentation-image-wrapper{border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);position:relative;transition:all .18s ease;border:3px solid var(--border-color)}.documentation-image-wrapper:hover{transform:translate(-2px,-3px);box-shadow:var(--shadow-md)}.documentation-image{width:100%;height:100%;display:block;object-fit:cover;aspect-ratio:16 / 10;cursor:zoom-in;transition:transform .25s ease}.documentation-image-wrapper:hover .documentation-image{transform:scale(1.03)}.documentation-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(28,41,60,.85);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s ease}.documentation-overlay span{color:#fff;font-weight:800;font-size:var(--text-17);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;transform:scale(.9);transition:transform .25s ease}.documentation-image-wrapper:hover .documentation-overlay{opacity:1}.documentation-image-wrapper:hover .documentation-overlay span{transform:scale(1)}.detail-back-button-wrapper{text-align:center;margin-top:2.5rem}.detail-social-buttons{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:4rem;padding-top:3rem;border-top:3px solid var(--border-color)}.detail-social-btn{padding:.6rem 1.2rem;border-radius:var(--radius-sm);font-size:var(--text-13);font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;border:3px solid var(--border-color);box-shadow:var(--shadow-sm);transition:all .15s ease;background:var(--bg-white);color:var(--text-dark)}.detail-social-btn:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-md);background:var(--primary);color:var(--text-dark)}.back-btn{padding:.75rem 1.75rem;border-radius:var(--radius-sm);font-size:var(--text-13);font-weight:800;text-transform:uppercase;letter-spacing:.04em;display:inline-flex;align-items:center;gap:.5rem;border:3px solid var(--border-color);box-shadow:var(--shadow-md);transition:all .15s ease}.back-btn:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-lg)}.back-btn:active{transform:translate(2px,2px);box-shadow:var(--cartoon-shadow-active)}.image-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#1c293cf0;display:flex;flex-direction:column;z-index:1000;padding:4rem 2rem;cursor:zoom-out;overflow-y:auto;align-items:center;justify-content:center}.image-modal-content{max-width:95vw;max-height:90vh;width:auto;height:auto;border-radius:var(--radius-md);border:3px solid #FFFFFF;object-fit:contain}.modal-counter{position:fixed;top:1rem;left:50%;transform:translate(-50%);color:#fff;font-size:var(--text-13);font-weight:600;background:var(--secondary);padding:.35rem .8rem;border-radius:var(--radius-sm);border:2px solid #FFFFFF;z-index:1010;font-family:var(--font-mono)}.modal-close-btn{position:fixed;top:1rem;right:1.5rem;width:44px;height:44px;padding:0;margin:0;border-radius:var(--radius-md);background:var(--primary);color:var(--text-dark);border:3px solid var(--border-color);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;font-size:1.6rem;line-height:1;cursor:pointer;z-index:1010;transition:all .15s ease}.modal-close-btn:hover{transform:translate(-2px,-2px);background:var(--primary-dark);box-shadow:var(--shadow-md)}.modal-nav-btn{position:fixed;top:50%;transform:translateY(-50%);width:52px;height:52px;padding:0;margin:0;border-radius:var(--radius-md);background:var(--primary);color:var(--text-dark);border:3px solid var(--border-color);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1010;transition:background .15s ease,box-shadow .15s ease}.modal-nav-btn:hover{background:var(--primary-dark);box-shadow:var(--shadow-lg)}.modal-nav-btn:active{transform:translateY(-50%) scale(.95);box-shadow:2px 2px 0 var(--border-color)}.modal-prev{left:1.25rem}.modal-next{right:1.25rem}@media (max-width: 768px){.modal-nav-btn{width:44px;height:44px}.modal-prev{left:.5rem}.modal-next{right:.5rem}.modal-close-btn{top:.5rem;right:.5rem;width:40px;height:40px}}@media (min-width: 640px){.features-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.documentation-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 992px){.detail-page-content{grid-template-columns:1.2fr 1fr;gap:3.5rem}.documentation-grid{grid-template-columns:repeat(3,1fr)}}@media (hover: none),(pointer: coarse){.detail-page-image-wrapper:hover,.documentation-image-wrapper:hover{transform:none;box-shadow:var(--shadow-md)}.detail-page-image-wrapper:hover .detail-page-image,.documentation-image-wrapper:hover .documentation-image{transform:none}.detail-page-tag:hover{transform:none;box-shadow:none}.feature-card:hover{transform:none;box-shadow:var(--shadow-sm)}}.chatbot-container{position:fixed;bottom:2rem;right:2rem;z-index:1000}.chatbot-toggle-btn{background-color:var(--primary);color:var(--text-dark);border:3px solid var(--border-color);width:60px;height:60px;padding:0;border-radius:var(--radius-lg);display:flex;justify-content:center;align-items:center;cursor:pointer;box-shadow:var(--shadow-md);transition:all .15s ease}.chatbot-toggle-btn:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-lg);background-color:var(--primary-dark)}.chatbot-toggle-btn:active{transform:translate(2px,2px);box-shadow:var(--cartoon-shadow-active)}.chat-window{background-color:var(--bg-white);width:370px;height:550px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;position:absolute;bottom:80px;right:0;border:3px solid var(--border-color)}.chat-header{background-color:var(--secondary);padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:center;color:#fff;flex-shrink:0;border-bottom:3px solid var(--border-color)}.chat-header h3{margin:0;font-size:var(--text-17);font-weight:800;font-family:var(--font-heading);letter-spacing:-.01em;color:#fff}.close-btn{background:none;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;opacity:.9;transition:all .15s ease;box-shadow:none;padding:.3rem}.close-btn:hover{opacity:1;transform:scale(1.1);box-shadow:none}.chat-body{flex-grow:1;padding:1.25rem;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;background-color:var(--surface-alt)}.chat-body::-webkit-scrollbar{width:6px}.chat-body::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:var(--radius-sm)}.message{display:flex;max-width:85%}.message.user{align-self:flex-end}.message.bot{align-self:flex-start}.message>p,.bot-message-content{padding:.75rem 1rem;border-radius:var(--radius-md);line-height:1.55;margin:0;font-size:var(--text-15);word-wrap:break-word;font-weight:400;font-family:var(--font-body)}.message.user>p{background-color:var(--secondary);color:#fff;border-bottom-right-radius:0;border:2px solid var(--border-color);box-shadow:2px 2px 0 var(--border-color)}.message.bot .bot-message-content,.message.bot>p{background-color:var(--bg-white);color:var(--text-body);border-bottom-left-radius:0;border:2px solid var(--border-color);box-shadow:2px 2px 0 var(--border-color)}.chat-footer{padding:1rem;background-color:var(--bg-white);display:flex;gap:.75rem;align-items:center;flex-shrink:0;border-top:3px solid var(--border-color)}.chat-footer input{flex-grow:1;background-color:var(--surface);border:2px solid var(--border-color);border-radius:var(--radius-md);padding:.65rem 1rem;color:var(--text-dark);font-size:var(--text-15);font-family:var(--font-body);font-weight:400}.chat-footer input:focus{outline:none;border-color:var(--secondary);box-shadow:0 0 0 3px #432dd72e}.chat-footer input::placeholder{color:var(--text-light);font-weight:400}.send-btn{background-color:var(--primary);border:2.5px solid var(--border-color);color:var(--text-dark);border-radius:var(--radius-md);width:44px;height:44px;padding:0;display:flex;justify-content:center;align-items:center;cursor:pointer;flex-shrink:0;transition:all .15s ease;box-shadow:2px 2px 0 var(--border-color)}.send-btn:hover{transform:translate(-1px,-1px);box-shadow:var(--shadow-sm);background-color:var(--primary-dark)}.send-btn:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--border-color)}.send-btn:disabled{background-color:var(--surface-alt);border-color:var(--text-light);color:var(--text-light);transform:none;cursor:not-allowed;box-shadow:2px 2px 0 var(--text-light)}.typing-indicator{display:flex;align-items:center;padding:.75rem 1rem}.typing-indicator span{height:8px;width:8px;background-color:var(--secondary);border-radius:50%;display:inline-block;margin:0 2px;animation:wave 1.3s linear infinite}.typing-indicator span:nth-child(2){animation-delay:-1.1s}.typing-indicator span:nth-child(3){animation-delay:-.9s}@keyframes wave{0%,60%,to{transform:initial}30%{transform:translateY(-10px)}}@media (max-width: 768px){.chatbot-container{bottom:1rem;right:1rem}.chat-window{width:90vw;max-width:370px;height:70vh;max-height:550px;bottom:75px}}:root{--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Inter", "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", monospace;--text-13: .8125rem;--text-15: .9375rem;--text-17: 1.0625rem;--text-21: 1.3125rem;--text-27: 1.6875rem;--text-35: 2.1875rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--primary: #FDC800;--primary-dark: #E5B400;--primary-soft: #FFF4C2;--secondary: #432DD7;--secondary-dark: #3320B0;--secondary-soft: #E9E5FB;--success: #16A34A;--success-strong: #15803D;--success-soft: #E3F7EA;--warning: #D97706;--warning-soft: #FFF0DE;--danger: #DC2626;--danger-soft: #FBE4E4;--surface: #FBFBF9;--surface-alt: #F3F1EA;--text-dark: #1C293C;--heading-color: #1C293C;--text-body: #24364B;--text-light: #5A6B80;--border-color: #1C293C;--border-light: #D9D5C7;--bg-cream: var(--surface);--bg-white: #FFFFFF;--bg-pattern: var(--surface-alt);--coral: var(--primary);--coral-dark: var(--primary-dark);--coral-text: var(--secondary);--sky-blue: var(--secondary);--sky-blue-dark: var(--secondary-dark);--lavender: var(--secondary);--lavender-dark: var(--secondary-dark);--mint: var(--success);--mint-dark: var(--success-strong);--sunny: var(--primary);--sunny-dark: var(--primary-dark);--peach: var(--warning);--bubblegum: var(--danger);--shadow-sm: 3px 3px 0 var(--border-color);--shadow-md: 5px 5px 0 var(--border-color);--shadow-lg: 8px 8px 0 var(--border-color);--cartoon-shadow: var(--shadow-md);--cartoon-shadow-sm: var(--shadow-sm);--cartoon-shadow-lg: var(--shadow-lg);--cartoon-shadow-hover: var(--shadow-lg);--cartoon-shadow-active: 2px 2px 0 var(--border-color);--card-bg: #FFFFFF;--card-border: 3px solid var(--border-color);--card-radius: 4px;--component-bg: #FFFFFF;--component-border: var(--border-light);--navbar-bg: #FFFFFF;--icon-color-default: var(--text-light);--icon-color-hover: var(--secondary);--icon-bg-active: rgba(67, 45, 215, .12);--tag-text: var(--text-dark);--tag-border: var(--border-color);--primary-btn-text: var(--text-dark);--btn-secondary-bg: #FFFFFF;--btn-secondary-text: var(--text-dark);--btn-secondary-border: var(--border-color);--btn-secondary-bg-hover: var(--primary);--btn-secondary-text-hover: var(--text-dark);--cert-course-text: var(--secondary);--cert-list-item-bg: var(--success-soft);--cert-list-item-text: var(--success-strong);--title-color: var(--text-dark);--card-date-bg: var(--primary);--card-date-text: var(--text-dark);--spacing-xs: var(--space-1);--spacing-sm: var(--space-2);--spacing-md: var(--space-4);--spacing-lg: var(--space-5);--spacing-xl: var(--space-6);--spacing-2xl: 48px;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px}*{margin:0;padding:0;box-sizing:border-box}*{-webkit-tap-highlight-color:transparent}::selection{background:var(--primary);color:var(--text-dark)}button,a,.btn{touch-action:manipulation}.zoom-badge{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:.45rem;background:var(--primary);color:var(--text-dark);padding:.4rem .75rem;border-radius:var(--radius-sm);border:2.5px solid var(--border-color);box-shadow:var(--shadow-sm);font-size:var(--text-13);font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease}.project-card-image-wrapper .zoom-badge,.certificate-card-image-wrapper .zoom-badge{bottom:.75rem;right:.75rem}.detail-page-image-wrapper .zoom-badge,.documentation-image-wrapper .zoom-badge{top:.9rem;right:.9rem}.project-card-image-wrapper:hover .zoom-badge,.certificate-card-image-wrapper:hover .zoom-badge,.detail-page-image-wrapper:hover .zoom-badge,.documentation-image-wrapper:hover .zoom-badge{opacity:1}@media (hover: none){.zoom-badge{opacity:1}}html{scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--surface);color:var(--text-body);position:relative;min-height:100vh;line-height:1.6;font-size:var(--text-15);font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(to right,rgba(28,41,60,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(28,41,60,.06) 1px,transparent 1px);background-size:32px 32px;opacity:1;z-index:-1;pointer-events:none}#root{width:100%;min-height:100vh;text-align:left}html{scroll-padding-top:92px}@media (max-width: 768px){html{scroll-padding-top:82px}}.btn{padding:.85rem 1.75rem;min-height:44px;border-radius:var(--radius-md);text-decoration:none;font-weight:800;font-size:var(--text-13);font-family:var(--font-body);text-transform:uppercase;letter-spacing:.06em;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease;border:3px solid var(--border-color);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;position:relative;overflow:hidden}.btn-primary{background:var(--primary);color:var(--text-dark);box-shadow:var(--shadow-md)}.btn-primary:hover{background:var(--primary-dark);transform:translate(-2px,-2px);color:var(--text-dark);box-shadow:var(--shadow-lg)}.btn-primary:active{transform:translate(2px,2px);box-shadow:var(--cartoon-shadow-active)}.btn-secondary{background:var(--bg-white);color:var(--text-dark);box-shadow:var(--shadow-md)}.btn-secondary:hover{background:var(--primary);color:var(--text-dark);transform:translate(-2px,-2px);box-shadow:var(--shadow-lg)}.btn-secondary:active{transform:translate(2px,2px);box-shadow:var(--cartoon-shadow-active)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:900;line-height:1.12;letter-spacing:-.02em;color:var(--heading-color)}h1{font-size:var(--text-35)}h2{font-size:var(--text-27)}h3{font-size:var(--text-21)}p{font-size:var(--text-15)}a{font-weight:700;color:var(--secondary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--secondary-dark)}button{border-radius:var(--radius-md);border:3px solid var(--border-color);padding:.6em 1.2em;font-size:var(--text-15);font-weight:800;font-family:var(--font-body);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease;position:relative;background:var(--bg-white);color:var(--text-dark);box-shadow:var(--shadow-sm)}button:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-md)}button:active{transform:translate(2px,2px);box-shadow:var(--cartoon-shadow-active)}:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:3px solid var(--secondary);outline-offset:2px}button:focus-visible{outline:3px solid var(--secondary);outline-offset:2px}.notfound{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:7rem 1.5rem 4rem;text-align:center}.notfound-code{font-family:var(--font-heading);font-size:clamp(5rem,22vw,10rem);font-weight:900;line-height:1;letter-spacing:-.05em;color:var(--primary);text-shadow:5px 5px 0 var(--border-color)}.notfound-title{font-size:var(--text-27);color:var(--heading-color)}.notfound-text{color:var(--text-body);font-size:var(--text-17);max-width:420px;margin-bottom:1.5rem;font-weight:400}@media (hover: none),(pointer: coarse){button:hover{transform:none;box-shadow:var(--shadow-sm)}a:hover{color:var(--secondary)}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
