: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-1:"Rethink Sans", sans-serif;--font-sans-2:"Jost", sans-serif;--font-monospace-1:"IBM Plex Mono", 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:64px;--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(--gray-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(--gray-400);--color-surface-primary-hover:var(--gray-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(--white);--color-text-secondary:var(--gray-200);--color-text-secondary-hover:var(--gray-300);--color-text-secondary-inverse:var(--gray-800);--color-text-tertiary:var(--gray-500);--color-text-accent:var(--green-400);--color-icon-primary:var(--gray-300);--color-icon-secondary:var(--gray-200);--color-icon-accent:var(--green-400);--color-border-primary:var(--gray-100);--color-border-secondary:var(--gray-600);--color-border-tertiary:var(--gray-700);--color-border-secondary-hover:var(--gray-300);--color-border-accent:var(--green-700);--text-style-display:var(--font-sans-1);--text-style-base:var(--font-sans-1);--text-style-decor:var(--font-monospace-1);--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-700);--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(--gray-200);--color-bg-secondary:var(--white);--color-surface-primary:var(--gray-400);--color-surface-primary-hover:var(--gray-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(--gray-700);--color-text-secondary:var(--gray-700);--color-text-secondary-hover:var(--gray-400);--color-text-secondary-inverse:var(--gray-100);--color-text-accent:var(--green-700);--color-text-tertiary:var(--gray-400);--color-icon-primary:var(--gray-500);--color-icon-secondary:var(--gray-600);--color-icon-accent:var(--green-500);--color-border-primary:var(--gray-300);--color-border-secondary:var(--gray-300);--color-border-tertiary:var(--gray-200);--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}*{box-sizing:border-box;margin:0;padding:0}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;line-height:1.5}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;line-height:1.1}h2{font-family:var(--text-style-display);font-size:var(--text-size-xl);font-weight:var(--text-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-lg);margin-top:0;line-height:1.2}h3{font-family:var(--text-style-display);font-size:var(--text-size-lg);font-weight:var(--text-weight-semibold);color:var(--color-text-primary);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}.decor{font-size:var(--text-size-sm);font-family:var(--text-style-decor);color:var(--color-text-tertiary);letter-spacing:.08em;text-transform:uppercase}a{cursor:pointer;color:var(--color-text-secondary);text-decoration:underline}a:hover{color:var(--color-text-secondary-hover);text-decoration:underline}.btn{font-size:var(--text-size-sm);font-weight:var(--text-weight-semibold);font-family:var(--text-style-base);letter-spacing:1px;border:1px solid var(--color-border-secondary);text-decoration:none;transition:all .4s;display:inline-block}.btn.btn-primary{text-transform:uppercase;padding:var(--spacing-xs) var(--spacing-xs);color:var(--color-text-secondary)}.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);text-decoration:none;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);text-decoration:none;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{width:100%;padding:var(--spacing-lg) 0;flex-direction:column;justify-content:center;align-items:center;margin:0 auto;display:flex;position:relative}.main-menu .menu-bar,.main-menu .mobile-menu-panel{display:none}.main-menu .main-logo{opacity:.8;transition:opacity .3s}.main-menu .main-logo:hover{opacity:1}.page-home .main-menu{z-index:100;position:absolute}.main-nav{align-items:center;margin-left:40px;display:flex}.main-nav .nav-theme{position:absolute;top:50%;right:64px;transform:translateY(-50%)}.main-nav .nav-links{gap:var(--spacing-lg);align-items:center;display:flex}.main-nav .nav-links a{color:var(--color-text-secondary);font-family:var(--text-style-display);font-size:var(--text-size-sm);font-weight:var(--text-weight-semibold);letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;transition:color .3s}.main-nav .nav-links a:hover{color:var(--color-text-secondary-hover);text-decoration:none}.hero-section{text-align:left;justify-content:center;width:100%;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-section .hero-content{z-index:1;align-content:center;width:90%;max-width:1200px;position:relative}.hero-section .hero-content h1{letter-spacing:-.02em;margin:var(--spacing-xs) 0 var(--spacing-md) 0;font-size:4rem;line-height:1.1}.hero-section .hero-content .subtitle{font-size:var(--text-size-lg);color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.hero-section .hero-content .description{font-size:var(--text-size-lg);max-width:600px;margin:var(--spacing-md) 0;color:var(--color-text-secondary)}.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{width:100%;padding:var(--spacing-xl) 0;flex-direction:column;align-items:center;margin:0 auto;display:flex}.work h2{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-lg)}.projects-section{padding:var(--spacing-lg) 0}.projects-grid{gap:var(--spacing-md);grid-template-columns:repeat(3,1fr);width:90%;display:grid}.project-card{background:color-mix(in srgb, var(--color-bg-secondary) 60%, transparent);border:2px solid var(--color-border-tertiary);flex-direction:column;width:100%;height:40vh;min-height:320px;text-decoration:none;transition:all .4s;display:flex;overflow:hidden}.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);text-decoration:none;transform:translateY(-6px)}.project-card .card-image-placeholder{background-position:0;background-repeat:no-repeat;background-size:cover;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.project-card .card-content{box-sizing:border-box;padding:var(--spacing-md);flex-direction:column;width:100%;text-decoration:none;display:flex;position:relative}.project-card .card-content h3{margin-top:0;margin-bottom:0}.project-card .card-content p{font-size:var(--text-size-md);color:var(--color-text-secondary);margin-bottom:0;margin-top:var(--spacing-xs);flex-grow:1;width:90%}.project-card .card-content .arrow-right{width:32px;height:32px;right:var(--spacing-md);bottom:var(--spacing-md);fill:var(--color-text-secondary);transition:fill .2s;position:absolute}.project-card:first-child,.project-card:nth-child(4),.project-card:nth-child(5),.project-card:nth-child(6),.project-card:nth-child(7),.project-card:nth-child(8){grid-column:span 2}.highlight{border-top:1px solid var(--color-border-tertiary);border-bottom:1px solid var(--color-border-tertiary);flex-direction:column;justify-content:center;align-items:center;width:100%;height:60vh;display:flex}.highlight h2{margin-top:0;margin-bottom:var(--spacing-md)}.highlight-content__img{width:128px;height:128px;margin-bottom:var(--spacing-md);background-image:url(/brand/ai-assisted-dark.png);background-position:50%;background-repeat:no-repeat;background-size:cover}.highlight-content{text-align:center;justify-content:center;align-items:center;gap:var(--spacing-xs);flex-direction:column;max-width:60%;display:flex}.about-summary{width:100%;margin:0 auto;margin-top:var(--spacing-xl);text-align:center;border:1px solid var(--color-border-tertiary)}.about-summary .about-content{text-align:left;gap:var(--spacing-md);border-left:1px solid var(--color-border-tertiary);border-right:1px solid var(--color-border-tertiary);width:60%;height:auto;padding:var(--spacing-lg) var(--spacing-lg);flex-direction:row;margin:0 auto;display:flex}.about-summary .about-content .about-content__header{gap:var(--spacing-xs);flex-direction:column;justify-content:flex-start;align-items:flex-start;width:40%;display:flex}.about-summary .about-content .about-content__header h4{margin-top:0;margin-bottom:0}.about-summary .about-content .about-content__header h2{margin-top:0;margin-bottom:var(--spacing-md)}.about-summary .about-content .about-content__header img{width:100%;max-width:400px;height:auto}.about-summary .about-content .about-content__content{gap:var(--spacing-xs);font-size:var(--text-size-md);flex-direction:column;justify-content:flex-start;align-items:flex-start;width:60%;display:flex}.about-summary .about-content .about-content__content>p{margin-bottom:var(--spacing-md);font-size:var(--text-size-md);margin-top:0}.summary-points{gap:var(--spacing-sm);border-bottom:1px solid var(--color-border-tertiary);width:100%;margin-bottom:var(--spacing-md);flex-direction:column;align-items:flex-start;display:flex}.summary-points p{border-bottom:1px solid var(--color-border-tertiary);width:100%;font-family:var(--text-style-decor);font-size:var(--text-size-xs);letter-spacing:.08em;color:var(--color-text-tertiary);padding:var(--spacing-xs) 0;text-transform:uppercase;flex-direction:row;justify-content:space-between;align-items:end;margin:0;display:flex}.summary-points p span{font-weight:var(--text-weight-semibold);color:var(--color-text-primary)}.summary-points p:last-child{border-bottom:none}.project-detail{padding:var(--spacing-sm) 0;width:90%;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{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(img):not(figure):not(div){grid-column:2}.project-detail .markdown-content hr{margin:var(--spacing-xl) 0;border:1px solid var(--color-border-tertiary);grid-column:1/-1}.project-detail .markdown-content .project-meta{gap:var(--spacing-md);width:100%;margin-bottom:var(--spacing-lg);text-align:left;grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.project-detail .markdown-content .project-meta .project-meta__item{gap:var(--spacing-xxs);flex-direction:column;min-width:0;display:flex}.project-detail .markdown-content .project-meta .project-meta__label{color:var(--color-text-primary)}.project-detail .markdown-content .project-meta .project-meta__value{color:var(--color-text-secondary)}.project-detail .markdown-content>div:not(.project-meta){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{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) var(--spacing-sm);color:var(--color-text-secondary);border:1px solid var(--color-border-secondary);flex-direction:column;width:100%;text-decoration:none;transition:transform .2s,color .2s;display:inline-flex}.project-footer .nav-item a:hover{color:var(--color-text-secondary-hover);border:1px solid var(--color-border-secondary-hover);text-decoration:none;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{width:100%;padding:var(--spacing-xl) 0;margin:0 auto}.about-page .about-hero{align-items:center;gap:var(--spacing-md);width:60%;margin:0 auto;margin-bottom:var(--spacing-lg);flex-direction:column;align-items:start;display:flex}.about-page .about-hero .about-hero__header{align-items:start;gap:var(--spacing-xs);width:100%;margin:0 auto;margin-bottom:var(--spacing-sm);flex-direction:column;align-items:start;display:flex}.about-page .about-hero .about-hero__header h1{margin-top:0;margin-bottom:var(--spacing-md)}.about-page .about-hero .about-hero__content{justify-content:start;align-items:start;gap:var(--spacing-lg);flex-direction:row;width:100%;display:flex}.about-page .about-hero .about-hero__content .summary-points{width:50%}.about-page .about-hero .about-hero__content .summary-points img{width:100%;max-width:320px;height:auto;margin-bottom:var(--spacing-md)}.about-page .about-hero .about-hero__content .about-prose{width:50%}.about-page .highlighted-points{width:100%;height:var(--spacing-xxl);font-weight:var(--text-weight-semibold);font-size:var(--text-size-md);color:var(--color-text-primary);line-height:var(--text-size-md);border-top:1px solid var(--color-border-tertiary);border-bottom:1px solid var(--color-border-tertiary);flex-direction:row;justify-content:center;margin:0 auto;display:flex}.about-page .highlighted-points>div{text-align:center;width:33.33%;padding:var(--spacing-sm) var(--spacing-lg);border-right:1px solid var(--color-border-tertiary);flex-direction:column;justify-content:center;align-items:center;display:flex}.about-page .highlighted-points>div:last-child{border-right:none}.about-page .highlighted-points>div p{font-size:var(--text-size-md);color:var(--color-text-tertiary);margin-top:var(--spacing-xs)}.about-page .about-section{width:60%;padding:var(--spacing-xl) 0;margin:0 auto}.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)}.about-page .about-section ol{padding-left:var(--spacing-lg)}.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:1px solid var(--color-border-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)}.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:1px solid var(--color-border-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-xl);padding-bottom:var(--spacing-md)}.about-page .about-cta h2{margin-bottom:var(--spacing-sm)}.about-page .about-cta p{max-width:40%;margin:0 auto var(--spacing-md)}.about-page .about-cta__actions{margin-bottom:var(--spacing-md)}.site-footer{width:100%;margin:var(--spacing-xl) 0 0;font-size:var(--text-size-sm);padding:0;position:relative}.footer-inner{max-width:1200px;padding:var(--spacing-lg);justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);margin:0 auto;display:flex}.footer-brand{align-items:flex-start;gap:var(--spacing-md);flex-direction:column;display:flex}.footer-identity{align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary);display:flex}.footer-identity img{opacity:.8}.footer-nav ul{align-items:flex-end;gap:var(--spacing-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.footer-nav a{color:var(--color-text-secondary);font-weight:var(--text-weight-semibold);text-decoration:none;transition:color .2s}.footer-nav a:hover{color:var(--color-text-primary);text-decoration:underline}.footer-social{justify-content:flex-start;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.footer-social__link{background-color:var(--color-icon-secondary);width:1.125rem;height:1.125rem;mask:var(--footer-social-icon) center/contain no-repeat;-webkit-mask:var(--footer-social-icon) center/contain no-repeat;opacity:.85;transition:background-color .2s,opacity .2s;display:inline-flex}.footer-social__link:hover{background-color:var(--color-icon-accent);opacity:1}.footer-edge{pointer-events:none;background-image:url(/brand/footer-edge-dark.png);background-position:bottom;background-repeat:repeat-x;background-size:auto 100%;width:100%;height:1.5rem}@media (width<=768px){.footer-inner{gap:var(--spacing-md);flex-direction:column}.footer-nav ul{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}.articles-home{width:100%;padding:var(--spacing-xl) 0;flex-direction:column;align-items:center;margin:0 auto;display:flex}.articles-home>h2{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-lg)}.article-meta{align-items:center;gap:var(--spacing-xs);font-size:var(--text-size-xs);font-weight:var(--text-weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-tertiary);margin-bottom:var(--spacing-sm);flex-wrap:wrap;display:flex}.article-meta time,.article-meta .reading-time{color:inherit}.article-meta .meta-separator{opacity:.6}.article-tags{margin:var(--spacing-sm) 0 0 0;gap:var(--spacing-xs);flex-wrap:wrap;padding:0;list-style:none;display:flex}.article-tags li{font-size:var(--text-size-xs);font-weight:var(--text-weight-semibold);color:var(--color-text-accent);padding:var(--spacing-xxs) var(--spacing-xs);border:1px solid var(--color-border-accent);background-color:#0000;border-radius:0}.articles-grid{gap:var(--spacing-md);flex-direction:column;width:80%;display:flex}.articles-grid .article-card{background:color-mix(in srgb, var(--color-bg-secondary) 60%, transparent);border:2px solid var(--color-border-tertiary);flex-direction:row;justify-content:space-between;align-items:center;width:100%;height:45vh;min-height:320px;text-decoration:none;transition:all .4s;display:flex;overflow:hidden}.articles-grid .article-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)}.articles-grid .article-card .card-content{box-sizing:border-box;padding:var(--spacing-lg);border-right:1px solid var(--color-border-tertiary);flex-direction:column;width:60%;height:100%;display:flex;position:relative}.articles-grid .article-card .card-content .article-meta{margin-bottom:var(--spacing-xs)}.articles-grid .article-card .card-content h2{margin-bottom:var(--spacing-sm);margin-top:var(--spacing-sm)}.articles-grid .article-card .card-content p{font-size:var(--text-size-md);color:var(--color-text-secondary);margin-bottom:0;margin-top:var(--spacing-xs);flex-grow:1;width:90%}.articles-grid .article-card .card-content .article-tags{margin-top:var(--spacing-sm);padding-right:calc(32px + var(--spacing-md))}.articles-grid .article-card .card-content .arrow-right{width:32px;height:32px;right:var(--spacing-md);bottom:var(--spacing-md);fill:var(--color-text-secondary);transition:fill .2s;position:absolute}.articles-grid .article-card .card-image-placeholder{background-position:50%;background-repeat:no-repeat;background-size:cover;background-color:var(--color-surface-tertiary);width:100%;height:100%}.article-cover{background-color:var(--color-surface-tertiary);border-top:1px solid var(--color-border-tertiary);border-bottom:1px solid var(--color-border-tertiary);width:100%;height:min(36vh,360px);min-height:180px;overflow:hidden}.article-cover img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}code{background-color:var(--color-surface-tertiary);padding:var(--spacing-xxs) var(--spacing-xs);border-radius:var(--radius-md);border:1px solid var(--color-border-tertiary);font-size:var(--text-size-xs);font-weight:var(--text-weight-semibold);color:var(--color-text-secondary);letter-spacing:.04em;text-transform:uppercase}.article-detail__inner{padding:var(--spacing-md) 0;max-width:40%;margin:0 auto}.article-detail__inner .article-header{margin:var(--spacing-md) 0 var(--spacing-lg)}.article-detail__inner .article-header h1{margin-bottom:var(--spacing-sm)}.article-detail__inner .article-header .description{font-size:var(--text-size-lg);color:var(--color-text-tertiary);margin-bottom:var(--spacing-sm)}.article-detail__inner .article-body{margin-bottom:var(--spacing-xl)}.article-detail__inner .article-body h2{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.article-detail__inner .article-body p{margin:0 0 var(--spacing-sm) 0}.article-detail__inner .article-body ol,.article-detail__inner .article-body ul{padding-left:var(--spacing-lg);color:var(--color-text-secondary);margin:0 0 var(--spacing-sm) 0;line-height:1.8}.article-detail__inner .article-body ol li,.article-detail__inner .article-body ul li{margin-bottom:var(--spacing-xs)}.article-detail__inner .article-body img{max-width:100%;height:auto;margin:var(--spacing-md) 0}.article-detail__inner .article-body 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:var(--spacing-md) 0}.article-detail__inner .article-body blockquote p{color:var(--color-text-primary);margin-bottom:0;font-style:italic}[data-theme=light] .highlight-content__img{background-image:url(/brand/ai-assisted-light.png)}[data-theme=light] .btn-primary,[data-theme=light] .filter-btn.active{color:var(--color-text-secondary-inverse)}[data-theme=light] .project-card{background:color-mix(in srgb, var(--color-bg-secondary-inverse) 60%, transparent)}[data-theme=light] .footer-edge{background-image:url(/brand/footer-edge-light.png)}@media screen and (width<=1600px){.about-page .about-hero,.about-page .about-section{width:90%}}@media screen and (width<=992px){.main-nav{display:none}.main-menu{width:100vw;padding:0;padding:var(--spacing-md) 0;align-items:stretch}.main-menu .menu-bar{z-index:101;justify-content:space-between;align-items:center;width:90vw;margin:0 auto;display:flex;position:relative}.main-logo--mobile{align-items:center;display:flex}.main-menu .menu-open,.main-menu .menu-close{border:1px solid var(--color-border-secondary);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background-color .3s,border-color .3s,color .3s;display:flex}.main-menu .menu-open:hover,.main-menu .menu-close:hover{color:var(--color-text-secondary-hover);border-color:var(--color-border-secondary-hover)}.main-menu .menu-open svg,.main-menu .menu-close svg{width:24px;height:24px;display:block}.main-menu .mobile-menu-panel{opacity:0;visibility:hidden;background:color-mix(in srgb, var(--color-bg-secondary) 90%, transparent);backdrop-filter:blur(8px);z-index:999;width:100%;height:100vh;max-height:0;transition:max-height .35s,opacity .25s,visibility 0s linear .35s;display:block;position:fixed;top:0;overflow:hidden}.main-menu .mobile-menu-panel__header{width:90vw;padding:var(--spacing-md) 0;justify-content:flex-end;margin:0 auto;display:flex}.main-menu .mobile-menu-panel .mobile-nav-links{width:90vw;padding:0 var(--spacing-md) 0;flex-direction:column;align-items:stretch;margin:0 auto;display:flex}.main-menu .mobile-menu-panel .mobile-nav-links a{padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border-tertiary);color:var(--color-text-secondary);font-family:var(--text-style-display);font-size:var(--text-size-sm);font-weight:var(--text-weight-semibold);letter-spacing:1.5px;text-transform:uppercase;text-align:center;text-decoration:none;transition:color .3s}.main-menu .mobile-menu-panel .mobile-nav-links a:hover{color:var(--color-text-secondary-hover)}.main-menu .mobile-menu-panel .mobile-nav-links a:last-of-type{border-bottom:none}.main-menu .mobile-menu-panel .mobile-nav-links .nav-theme{padding:var(--spacing-md) 0 0;margin-top:var(--spacing-xs);justify-content:center;display:flex;position:static;transform:none}.main-menu.is-open .mobile-menu-panel{opacity:1;visibility:visible;max-height:100vh;transition:max-height .35s,opacity .25s,visibility linear}.projects-grid{gap:var(--spacing-md);grid-template-columns:1fr}.project-card{flex-direction:column;width:100%;max-width:100%;height:auto;grid-column:1/-1!important}.project-card .card-image-placeholder{order:-1;width:100%;min-height:200px}.project-card .card-content{width:100%}.articles-grid{width:90vw}.articles-grid .article-card{flex-direction:column;height:auto;min-height:0}.articles-grid .article-card .card-image-placeholder{border-bottom:1px solid var(--color-border-tertiary);order:-1;min-height:200px}.articles-grid .article-card .card-content{border:none;width:100%}.articles-grid .article-card .card-content .article-tags{padding-right:0}.articles-grid .article-card .card-content .article-meta{margin-top:var(--spacing-sm)}.article-detail{width:100%;margin:0 auto}.article-detail .article-content img{width:100%;height:auto}.article-detail__inner{max-width:90%;margin:0 auto}.articles-intro{font-size:var(--text-size-md)}.article-cover{width:100%;min-height:120px;max-height:120px}.about-summary{width:100%}.about-summary .about-content{width:90%;padding:var(--spacing-md) var(--spacing-sm);flex-direction:column}.about-summary .about-content .about-content__header{justify-content:center;align-items:center;width:100%}.about-summary .about-content .about-content__header h4{font-size:var(--text-size-xs)}.about-summary .about-content .about-content__content{justify-content:center;align-items:center;width:100%}.about-page .about-hero .about-hero__content{flex-direction:column}.about-page .about-hero .about-hero__content .summary-points,.about-page .about-hero .about-hero__content .about-prose{width:100%}.about-page .highlighted-points{border-bottom:none;border-top:1px solid var(--color-border-tertiary);flex-direction:column;height:auto}.about-page .highlighted-points>div{width:100%;padding:var(--spacing-md) 0;border-bottom:1px solid var(--color-border-tertiary)}.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)}.hero-section{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-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{border:none;flex-direction:column;align-items:stretch}.about-summary .highlighted-points span{border:none;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(img):not(figure):not(div){grid-column:1}.project-detail .markdown-content>div:not(.project-meta){flex-direction:column}.project-detail .markdown-content .project-meta{gap:var(--spacing-sm);grid-template-columns:1fr}.project-detail .markdown-content hr{margin:var(--spacing-md) 0}.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)}.hero-section{padding:var(--spacing-md) 0}.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-xl)}.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;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:48px;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:4px;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(22px)}
