:root{--white:#fff;--black:#000;--gray-100:#efefef;--gray-200:#d5d5d5;--gray-300:#aaa;--gray-400:#8a8a8a;--gray-500:#636363;--gray-600:#4a4a4a;--gray-700:#242424;--gray-800:#141414;--red-100:#dfdada;--red-200:#edb8b8;--red-300:#de8a8a;--red-400:#cb5c5c;--red-500:#a83030;--red-600:#8c2222;--red-700:#420f0f;--red-800:#0e0202;--green-100:#f3f8de;--green-200:#deeea0;--green-300:#c8e169;--green-400:#b4d249;--green-500:#a1be2c;--green-600:#7d9420;--green-700:#485612;--green-800:#0d1003;--blue-100:#dadcdf;--blue-200:#b7cded;--blue-300:#89abde;--blue-400:#5b88cb;--blue-500:#305fa8;--blue-600:#214c8c;--blue-700:#0f2342;--blue-800:#030b18;--grid-unit:8px;--font-sans-serif:"Jost", sans-serif;--font-serif:"Bona Nova", serif;--font-monospace:Menlo, Monaco, Consolas, "Courier New", monospace;--font-size-100:12px;--font-size-200:14px;--font-size-300:16px;--font-size-400:20px;--font-size-500:24px;--font-size-600:32px;--font-size-700:40px;--font-size-800:48px;--font-weight-100:300;--font-weight-200:400;--font-weight-300:500;--font-weight-400:600;--font-weight-500:700;--font-weight-600:800;--font-weight-700:900;--color-bg-primary:var(--red-300);--color-bg-secondary:var(--gray-800);--color-bg-secondary-inverse:var(--white);--color-bg-tertiary:var(--gray-700);--color-bg-tertiary-inverse:var(--white);--color-surface-primary:var(--red-400);--color-surface-primary-hover:var(--red-400);--color-surface-secondary:var(--gray-600);--color-surface-secondary-inverse:var(--gray-200);--color-surface-accent:var(--green-700);--color-surface-tertiary:var(--gray-700);--color-surface-tertiary-inverse:var(--gray-100);--color-text-primary:var(--red-400);--color-text-secondary:var(--red-100);--color-text-secondary-hover:var(--red-300);--color-text-secondary-inverse:var(--gray-800);--color-text-accent:var(--green-400);--color-text-tertiary:var(--gray-400);--color-icon-primary:var(--red-300);--color-icon-secondary:var(--gray-200);--color-icon-accent:var(--green-400);--color-border-primary:var(--red-100);--color-border-secondary:var(--gray-600);--color-border-tertiary:var(--gray-700);--color-border-secondary-hover:var(--gray-300);--text-style-display:var(--font-serif);--text-style-base:var(--font-sans-serif);--text-size-xs:var(--font-size-100);--text-size-sm:var(--font-size-200);--text-size-md:var(--font-size-300);--text-size-lg:var(--font-size-400);--text-size-xl:var(--font-size-600);--text-size-xxl:var(--font-size-800);--text-weight-normal:var(--font-weight-200);--text-weight-semibold:var(--font-weight-400);--text-weight-bold:var(--font-weight-600);--radius-sm:calc(var(--grid-unit) * 2);--radius-xs:var(--grid-unit);--radius-md:calc(var(--grid-unit) * 4);--radius-lg:calc(var(--grid-unit) * 8);--radius-full:calc(var(--grid-unit) * 50);--spacing-xxs:calc(var(--grid-unit) / 2);--spacing-xs:var(--grid-unit);--spacing-sm:calc(var(--grid-unit) * 2);--spacing-md:calc(var(--grid-unit) * 4);--spacing-lg:calc(var(--grid-unit) * 8);--spacing-xl:calc(var(--grid-unit) * 16);--spacing-xxl:calc(var(--grid-unit) * 32);--shadow-none:none;--shadow-xs:0 1px 2px #00000029;--shadow-sm:0 2px 4px #00000029, 0 1px 2px #0000001f;--shadow-md:0 6px 12px #0000002e, 0 2px 4px #0000001f;--shadow-lg:0 12px 24px #0003, 0 4px 8px #0000001f;--shadow-xl:0 24px 48px #00000038, 0 8px 16px #00000024}[data-theme=light]{--color-bg-primary:var(--red-200);--color-bg-secondary:var(--white);--color-surface-primary:var(--red-400);--color-surface-primary-hover:var(--red-400);--color-surface-secondary:var(--gray-200);--color-surface-accent:var(--green-200);--color-surface-tertiary:var(--gray-100);--color-surface-tertiary-inverse:var(--white);--color-text-primary:var(--red-400);--color-text-secondary:var(--gray-600);--color-text-secondary-hover:var(--red-400);--color-text-secondary-inverse:var(--gray-100);--color-text-accent:var(--green-700);--color-text-tertiary:var(--gray-400);--color-icon-primary:var(--red-500);--color-icon-secondary:var(--gray-600);--color-icon-accent:var(--green-500);--color-border-primary:var(--red-300);--color-border-secondary:var(--gray-200);--color-border-tertiary:var(--gray-100);--color-border-secondary-hover:var(--gray-400)}.flex{display:flex}.inline-flex{display:inline-flex}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.flex-center{justify-content:center;align-items:center;display:flex}html,body{font-size:var(--text-size-lg);background-color:var(--color-bg-secondary);font-family:var(--text-style-base);color:var(--color-text-secondary);-webkit-font-smoothing:antialiased;margin:0;padding:0}h1{font-family:var(--text-style-display);font-size:var(--text-size-xxl);color:var(--color-text-primary);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-xl);margin-top:0}h2{font-family:var(--text-style-base);font-size:var(--text-size-xl);font-weight:var(--text-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);margin-top:0;line-height:1.2}h3{font-family:var(--text-style-base);font-size:var(--text-size-lg);font-weight:var(--text-weight-semibold);color:var(--color-text-secondary);margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}h4{font-family:var(--text-style-base);font-weight:var(--text-weight-semibold);font-size:var(--text-size-xs);text-transform:uppercase;color:var(--color-text-primary);margin-top:0}p{font-family:var(--text-style-base);color:var(--color-text-secondary);margin-bottom:var(--spacing-md);line-height:1.6}a{cursor:pointer;color:var(--color-surface-primary);text-decoration:none}a:hover{color:var(--color-surface-primary-hover);text-decoration:none}.btn{font-size:var(--text-size-sm);font-weight:var(--text-weight-semibold);font-family:var(--text-style-base);letter-spacing:1px;border-radius:var(--radius-xs);transition:all .4s;display:inline-block}.btn.btn-primary{text-transform:uppercase;padding:var(--spacing-sm) var(--spacing-sm);background-color:var(--color-surface-primary);color:var(--color-text-secondary);box-shadow:0 4px 14px color-mix(in srgb, var(--color-surface-primary) 40%, transparent)}.btn.btn-primary:hover{background-color:var(--color-surface-primary-hover);box-shadow:0 6px 20px color-mix(in srgb, var(--color-surface-primary) 60%, transparent);transform:translateY(-2px)}.btn.btn-secondary{padding:var(--spacing-xs) var(--spacing-sm);color:var(--color-text-secondary);font-weight:var(--text-weight-semibold);border:1px solid var(--color-border-secondary)}.btn.btn-secondary:hover{border:1px solid var(--color-border-secondary-hover);transform:translateY(-2px)}.social-link{text-transform:capitalize;letter-spacing:0;font-weight:var(--text-weight-semibold);transition:all .3s ease-in-out}.social-link:hover{text-decoration:underline}.main-menu{max-width:1200px;padding:var(--spacing-md) var(--spacing-lg);margin:0 auto var(--spacing-lg) auto;justify-content:space-between;align-items:center;display:flex}.main-menu .main-logo{opacity:.8;transition:opacity .3s}.main-menu .main-logo:hover{opacity:1}.main-nav{align-items:center;display:flex}.main-nav .nav-links{gap:var(--spacing-md);margin-right:var(--spacing-md);align-items:center;display:flex}.main-nav .nav-links a{color:var(--color-text-secondary);font-family:var(--text-style-base);font-size:var(--text-size-sm);font-weight:var(--text-weight-bold);letter-spacing:1.5px;text-transform:uppercase;transition:color .3s}.main-nav .nav-links a:hover{color:var(--color-text-secondary-hover);text-decoration:none}.hero-section{text-align:center;max-width:1200px;min-height:80vh;padding:var(--spacing-sm) 0;justify-content:center;align-items:center;margin:0 auto;display:flex;position:relative;overflow:hidden}.hero-section:before{content:"";background:radial-gradient(ellipse at center, color-mix(in srgb, var(--color-surface-primary) 15%, transparent) 0%, color-mix(in srgb, var(--color-bg-primary) 0%, transparent) 100%);filter:blur(60px);z-index:0;pointer-events:none;width:80vw;max-width:800px;height:400px;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.hero-section .hero-content{margin-top:var(--spacing-lg);z-index:1;max-width:800px;position:relative}.hero-section .hero-content .avatar{width:80px;height:auto;margin-bottom:var(--spacing-sm);border-radius:80px;animation:6s ease-in-out infinite pulsoSombra}@keyframes pulsoSombra{0%{box-shadow:0px 0px 15px #0003, -15px -7px 0 color-mix(in srgb, var(--color-bg-primary) 40%, transparent), 10px 20px 0 color-mix(in srgb, var(--color-bg-primary) 20%, transparent)}50%{box-shadow:0px 0px 15px #0003, 3px -25px 0 color-mix(in srgb, var(--color-bg-primary) 40%, transparent), -12px 35px 0 color-mix(in srgb, var(--color-bg-primary) 20%, transparent)}to{box-shadow:0px 0px 15px #0003, -15px -7px 0 color-mix(in srgb, var(--color-bg-primary) 40%, transparent), 10px 20px 0 color-mix(in srgb, var(--color-bg-primary) 20%, transparent)}}.hero-section .hero-content h1{letter-spacing:-.02em;margin:var(--spacing-md) 0;font-size:3rem;line-height:1.1}.hero-section .hero-content .subtitle{font-size:var(--text-size-md);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);text-transform:uppercase}.hero-section .hero-content .description{font-size:var(--text-size-lg);max-width:600px;margin:0 auto var(--spacing-lg) auto;color:var(--color-text-secondary);padding:0 var(--spacing-md)}.hero-section .hero-content .status-badge{align-items:center;gap:var(--spacing-xs);color:var(--color-text-accent);border-radius:var(--radius-xs);font-size:var(--text-size-sm);font-weight:var(--text-weight-normal);display:inline-flex}.hero-section .hero-content .status-badge .dot{background-color:var(--color-icon-accent);border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #22c55e99}.hero-section .hero-content .scroll-indicator{width:fit-content;margin:var(--spacing-md) auto 0;color:var(--color-text-tertiary);transition:color .2s;animation:1.8s ease-in-out infinite scroll-indicator-bounce;display:flex}.hero-section .hero-content .scroll-indicator:hover{color:var(--color-text-accent)}.hero-section .hero-content .scroll-indicator:focus-visible{outline-offset:4px;border-radius:var(--radius-xs);outline:2px solid}.hero-section .hero-content .scroll-indicator svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:32px;height:32px}@keyframes scroll-indicator-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.hero-section .hero-content .scroll-indicator{animation:none}}.work{max-width:1800px;padding:0 var(--spacing-lg);margin:var(--spacing-xl) auto 0 auto;flex-direction:column;align-items:center;display:flex}.work h2{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-lg)}.projects-filter{gap:var(--spacing-xs);margin:var(--spacing-md) 0;flex-wrap:wrap;display:flex}.filter-btn{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border-secondary);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);font-size:var(--text-size-sm);background-color:#0000;transition:all .2s}.filter-btn:hover{color:var(--color-text-secondary);border:1px solid var(--color-border-secondary-hover);background-color:#0000}.filter-btn.active{background-color:var(--color-surface-primary);color:var(--color-text-secondary);border:1px solid #0000}.projects-section{padding:var(--spacing-lg) 0}.projects-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(600px,1fr));width:100%;display:grid}.project-card{background:linear-gradient(to bottom, var(--color-bg-tertiary), var(--color-bg-secondary));border:2px solid var(--color-border-tertiary);border-radius:var(--radius-md);flex-direction:row;width:100%;height:320px;text-decoration:none;transition:all .4s;display:flex;overflow:hidden}.project-card h2{margin-bottom:var(--spacing-md)}.project-card:hover{border-color:var(--color-border-primary-hover);box-shadow:0 12px 32px color-mix(in srgb, var(--color-surface-primary) 15%, transparent);transform:translateY(-6px)}.project-card:hover h2{color:var(--color-text-primary)}.project-card .card-image-placeholder{background-position:0;background-size:cover;justify-content:center;align-items:center;width:50%;display:flex}.project-card .card-content{padding:var(--spacing-md);flex-direction:column;flex-grow:1;width:50%;display:flex}.project-card .card-content h2{margin-bottom:var(--spacing-xs)}.project-card .card-content p{font-size:var(--text-size-md);color:var(--color-text-secondary);margin-bottom:var(--spacing-xs);flex-grow:1}.project-card .card-content .tags{gap:var(--spacing-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.project-card .card-content .tags li{font-size:var(--text-size-xs);font-weight:var(--text-weight-semibold);color:var(--color-text-secondary);background-color:var(--color-surface-secondary);padding:var(--spacing-xxs) var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--color-border-secondary)}.about-summary{margin-top:var(--spacing-xxl);text-align:center}.about-summary .about-content{max-width:800px;margin:var(--spacing-lg) auto 0 auto;text-align:left;gap:var(--spacing-md);flex-direction:row;display:flex}.about-summary .photo-about img{border-radius:var(--radius-md)}.about-summary .social{margin:var(--spacing-lg) 0;gap:var(--spacing-sm);flex-direction:row;align-items:center;display:flex}.highlighted-points{font-weight:var(--text-weight-semibold);font-size:var(--text-size-md);margin-bottom:var(--spacing-md);color:var(--color-text-primary);line-height:var(--text-size-md);border-left:1px solid var(--color-border-tertiary);flex-direction:row;display:flex}.highlighted-points span{text-align:center;padding:var(--spacing-xs) var(--spacing-sm);border-right:1px solid var(--color-border-tertiary);align-items:center;display:flex}.project-detail{padding:var(--spacing-sm) var(--spacing-md);max-width:1200px;margin:0 auto}.project-detail .project-header{margin:var(--spacing-md) 0}.project-detail .project-header h1{margin-bottom:var(--spacing-sm)}.project-detail .project-header .description{font-size:var(--text-size-lg);color:var(--color-text-tertiary)}.project-detail .hero-image-container{margin-bottom:var(--spacing-lg)}.project-detail .hero-image-container .hero-image{border-radius:var(--radius-md);width:100%;height:auto;box-shadow:0 10px 40px color-mix(in srgb, var(--color-surface-primary) 30%, transparent);display:block}.project-detail .markdown-content{column-gap:var(--spacing-lg);row-gap:var(--spacing-sm);grid-template-columns:minmax(180px,1fr) minmax(0,2fr);display:grid}.project-detail .markdown-content>h2{grid-column:1;align-self:start;margin-bottom:0}.project-detail .markdown-content>:not(h2):not(hr):not(table):not(img):not(figure):not(div){grid-column:2}.project-detail .markdown-content hr{margin:var(--spacing-md) 0;border:1px solid var(--color-border-tertiary);grid-column:1/-1}.project-detail .markdown-content table{text-align:left;width:100%;margin-bottom:var(--spacing-lg);grid-column:1/-1}.project-detail .markdown-content table th,.project-detail .markdown-content table td{vertical-align:top;width:25%}.project-detail .markdown-content table th{color:var(--color-text-primary)}.project-detail .markdown-content div{gap:var(--spacing-md);flex-direction:row;grid-column:1/-1;justify-content:center;align-items:center;display:flex}.project-detail .markdown-content p{margin:0 0 var(--spacing-xs) 0}.project-detail .markdown-content img{border-radius:var(--radius-md);max-width:100%;height:auto}.project-detail .markdown-content figure{max-width:100%;height:auto;margin:var(--spacing-md) 0 var(--spacing-md) 0;grid-column:1/-1}.project-detail .markdown-content figure video{border-radius:var(--radius-md);width:100%;height:auto}.project-detail .markdown-content figure img{width:100%;height:auto}.project-detail .markdown-content figcaption{margin-top:var(--spacing-xs);font-size:var(--text-size-xs);color:var(--color-text-tertiary);text-align:center}.project-detail .markdown-content blockquote{padding:var(--spacing-md) var(--spacing-lg);border-left:4px solid var(--color-surface-primary);background-color:color-mix(in srgb, var(--color-surface-primary) 5%, transparent);margin-left:0}.project-detail .markdown-content blockquote p{color:var(--color-text-primary);margin-bottom:0;font-style:italic}.project-detail .markdown-content ul,.project-detail .markdown-content ol{padding-left:var(--spacing-lg);color:var(--color-text-secondary);line-height:1.8}.project-detail .markdown-content ul li,.project-detail .markdown-content ol li{margin-bottom:var(--spacing-xs)}.project-footer{margin-top:var(--spacing-xl)}.project-footer .project-navigation{justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.project-footer .nav-item{flex:1;min-width:200px}.project-footer .nav-item.next{text-align:right}.project-footer .nav-item a{padding:var(--spacing-xs);color:var(--color-text-secondary);flex-direction:column;transition:transform .2s,color .2s;display:inline-flex}.project-footer .nav-item a:hover{color:var(--color-text-secondary-hover);transform:translateY(-2px)}.project-footer .label{margin-bottom:var(--spacing-xxs);font-size:var(--text-size-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary)}.project-footer .title{font-size:var(--text-size-md);font-weight:var(--text-weight-semibold)}.project-footer .all-projects{text-align:center;flex:1;min-width:150px}.project-footer .view-all{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border-secondary);border-radius:var(--radius-full);font-size:var(--text-size-sm);font-weight:var(--text-weight-semibold);color:var(--color-text-secondary);transition:transform .2s,border-color .2s,color .2s;display:inline-block}.project-footer .view-all:hover{border-color:var(--color-border-secondary-hover);color:var(--color-text-secondary-hover);transform:translateY(-2px)}.about-page{padding:var(--spacing-md) var(--spacing-md) var(--spacing-xl) var(--spacing-md);max-width:1200px;margin:0 auto}.about-page .about-hero{gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);grid-template-columns:minmax(240px,320px) minmax(0,1fr);align-items:start;display:grid}.about-page .about-hero__media{align-items:flex-start;gap:var(--spacing-md);flex-direction:column;align-self:start;display:flex}.about-page .about-hero__media img{border-radius:var(--radius-md);width:100%;height:auto;box-shadow:var(--shadow-lg);border:none;display:block}.about-page .about-hero__eyebrow{font-size:var(--text-size-xs);font-weight:var(--text-weight-semibold);text-transform:uppercase;color:var(--color-text-primary);margin:0 0 var(--spacing-xs)}.about-page .about-section{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.about-page .about-section:last-of-type{border-bottom:none}.about-page .about-section h2{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-md);max-width:28ch}.about-page .about-section__intro{max-width:60ch;margin-bottom:var(--spacing-lg)}.about-page .about-prose{max-width:68ch}.about-page .about-prose p:last-child{margin-bottom:0}.about-page .experience-grid{gap:var(--spacing-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.about-page .experience-group{padding:var(--spacing-md);border-radius:var(--radius-md);background-color:var(--color-surface-tertiary)}.about-page .experience-group h3{font-size:var(--text-size-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-primary);margin:0 0 var(--spacing-sm)}.about-page .experience-list{gap:var(--spacing-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.about-page .experience-list li{gap:var(--spacing-xxs);flex-direction:column;display:flex}.about-page .experience-name{font-weight:var(--text-weight-semibold);color:var(--color-text-secondary)}.about-page .experience-desc{font-size:var(--text-size-sm);color:var(--color-text-tertiary);line-height:1.5}.about-page .about-section--highlight{border:1px solid var(--color-border-tertiary);padding:var(--spacing-lg);border-radius:var(--radius-md)}.about-page .portfolio-stack{margin:var(--spacing-lg) 0;gap:var(--spacing-sm);grid-template-columns:repeat(4,minmax(0,1fr));padding:0;list-style:none;display:grid}.about-page .portfolio-stack__item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-sm);border-radius:var(--radius-md);background-color:var(--color-surface-tertiary);text-align:center;flex-direction:column;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.about-page .portfolio-stack__item:hover{box-shadow:var(--shadow-sm);transform:translateY(-4px)}.about-page .portfolio-stack__icon{border-radius:var(--radius-sm);background-color:var(--color-bg-secondary-inverse);width:56px;height:56px;color:var(--color-text-secondary);justify-content:center;align-items:center;display:flex}.about-page .portfolio-stack__icon img{width:32px;height:32px;display:block}.about-page .portfolio-stack__label{font-size:var(--text-size-xs);font-weight:var(--text-weight-semibold);color:var(--color-text-secondary);line-height:1.4}.about-page .about-portfolio__note{font-size:var(--text-size-sm);color:var(--color-text-tertiary);max-width:80ch;margin-bottom:0}.about-page .about-cta{text-align:center;padding-top:var(--spacing-md)}.about-page .about-cta h2{margin-bottom:var(--spacing-sm)}.about-page .about-cta p{max-width:40ch;margin:0 auto var(--spacing-md)}.about-page .about-cta__actions{margin-bottom:var(--spacing-md)}.about-page .about-cta__social{justify-content:center;align-items:center;gap:var(--spacing-sm);font-size:var(--text-size-sm);color:var(--color-text-tertiary);flex-wrap:wrap;display:flex}.site-footer{max-width:1200px;margin:var(--spacing-xl) auto 0 auto;padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border-tertiary);justify-content:space-between;align-items:center;gap:var(--spacing-md);font-size:var(--text-size-sm);display:flex}.footer-identity,.footer-links{align-items:center;gap:var(--spacing-sm);display:flex}.footer-identity img{opacity:.8}@media (width<=576px){.site-footer{flex-direction:column;align-items:flex-start}}.error404{text-align:center;min-height:60vh;padding:var(--spacing-xl) 0;justify-content:center;align-items:center;display:flex}.error404 .error404-content{max-width:560px}.error404 .error404-code{font-family:var(--text-style-display);font-size:var(--text-size-xxl);font-weight:var(--text-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm);opacity:.5;line-height:1}.error404 h1{margin-top:0;margin-bottom:var(--spacing-sm)}.error404 .description{font-size:var(--text-size-lg);color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.error404 .error404-actions{gap:var(--spacing-sm);flex-wrap:wrap;justify-content:center;display:flex}[data-theme=light] .btn-primary,[data-theme=light] .filter-btn.active{color:var(--color-text-secondary-inverse)}[data-theme=light] .project-card{background-color:var(--color-bg-secondary-inverse);background:linear-gradient(to bottom right, var(--color-surface-tertiary-inverse), var(--color-surface-secondary))}@media screen and (width<=992px){.projects-grid{gap:var(--spacing-md);grid-template-columns:1fr}.project-card{flex-direction:column;width:100%;max-width:100%;height:auto}.project-card .card-image-placeholder{order:-1;width:100%;min-height:200px}.project-card .card-content{width:100%}.about-page .about-hero{grid-template-columns:1fr}.about-page .about-hero__media{max-width:280px;margin:0 auto}.about-page .experience-grid{grid-template-columns:1fr}.about-page .portfolio-stack{grid-template-columns:repeat(2,minmax(0,1fr))}}@media screen and (width<=768px){.container{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.main-menu{padding:var(--spacing-sm);gap:var(--spacing-sm);flex-wrap:wrap}.main-nav{gap:var(--spacing-xs);flex-wrap:wrap}.main-nav .nav-links{gap:var(--spacing-sm);margin-right:0}.hero-section{min-height:auto;padding:var(--spacing-lg) 0}.hero-section .hero-content{margin-top:var(--spacing-sm)}.hero-section .hero-content h1{font-size:var(--text-size-xl)}.hero-section .hero-content .description{font-size:var(--text-size-sm)}.work{padding:0 var(--spacing-md)}.about-summary{margin-top:var(--spacing-xl)}.about-summary .about-content{text-align:center;flex-direction:column;align-items:center}.about-summary .photo-about img{border-radius:var(--radius-md);width:100%;max-width:140px;height:auto}.about-summary .highlighted-points{flex-direction:column;align-items:stretch}.about-summary .highlighted-points span{border-right:none;border-bottom:1px solid var(--color-border-secondary);justify-content:center}.about-summary .highlighted-points span:last-child{border-bottom:none}.about-summary .social{flex-wrap:wrap;justify-content:center}.project-detail .markdown-content{grid-template-columns:1fr;column-gap:0}.project-detail .markdown-content>h2,.project-detail .markdown-content>:not(h2):not(hr):not(table):not(img):not(figure):not(div){grid-column:1}.project-detail .markdown-content div{flex-direction:column}.project-detail .markdown-content table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.project-detail .markdown-content table th,.project-detail .markdown-content table td{min-width:120px}.project-detail .markdown-content blockquote{padding:var(--spacing-sm) var(--spacing-md)}.project-footer .project-navigation{flex-direction:column;align-items:stretch}.project-footer .nav-item{min-width:0}.project-footer .nav-item.next{text-align:left}.project-footer .all-projects{text-align:center;order:-1}}@media screen and (width<=576px){html,body{font-size:var(--text-size-md)}h2{font-size:var(--text-size-lg)}.main-menu{justify-content:center}.main-menu .main-nav{justify-content:center;width:100%}.main-menu .btn-primary{font-size:var(--text-size-xs);padding:var(--spacing-xs);letter-spacing:.5px}.hero-section{padding:var(--spacing-md) 0}.hero-section .hero-content h1{padding:0 var(--spacing-xs)}.projects-filter{justify-content:center}.project-card .card-image-placeholder{min-height:160px}.project-card .card-content{padding:var(--spacing-sm)}.about-page .portfolio-stack{grid-template-columns:1fr}.about-page .about-hero h1{font-size:var(--text-size-lg)}.about-page .about-section--highlight{padding:var(--spacing-md)}.error404{padding:var(--spacing-lg) var(--spacing-sm)}}.theme-toggle[data-astro-cid-l6lhmie6]{cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;margin-left:1rem;padding:0;display:flex}.theme-toggle[data-astro-cid-l6lhmie6] .toggle-track[data-astro-cid-l6lhmie6]{background-color:var(--color-surface-secondary);border-radius:12px;justify-content:space-between;align-items:center;width:38px;height:24px;padding:0 5px;transition:background-color .3s;display:flex;position:relative;box-shadow:inset 0 2px 4px #0003}.theme-toggle[data-astro-cid-l6lhmie6] .toggle-thumb[data-astro-cid-l6lhmie6]{z-index:2;background-color:#fff;border-radius:50%;width:20px;height:20px;transition:transform .4s;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0003}.theme-toggle[data-astro-cid-l6lhmie6] .icon-sun[data-astro-cid-l6lhmie6],.theme-toggle[data-astro-cid-l6lhmie6] .icon-moon[data-astro-cid-l6lhmie6]{color:var(--color-icon-primary);z-index:1;justify-content:center;align-items:center;transition:opacity .3s,color .3s;display:flex}[data-theme=light] .theme-toggle[data-astro-cid-l6lhmie6] .toggle-track[data-astro-cid-l6lhmie6]{background-color:var(--color-surface-secondary)}[data-theme=light] .theme-toggle[data-astro-cid-l6lhmie6] .toggle-thumb[data-astro-cid-l6lhmie6]{background-color:#fff;transform:translate(24px)}
