@import url("https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@0,300;0,400;0,700;1,400&family=Montserrat:wght@400;500;600;700&display=swap");*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}:root{--color-primary: #2563eb;--color-primary-dark: #1e40af;--color-primary-light: #60a5fa;--color-text: #292524;--color-text-light: #57534e;--color-text-muted: #78716c;--color-background: #fafaf9;--color-surface: #ffffff;--color-border: #e7e5e4;--color-accent: #f59e0b;--color-success: #059669;--color-muted: #a8a29e;--font-sans: 'Montserrat', system-ui, -apple-system, sans-serif;--font-serif: 'Merriweather', Georgia, serif;--font-mono: 'Courier New', monospace;--text-xs: 0.75rem;--text-sm: 0.875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--space-xs: 0.5rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--space-3xl: 6rem;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--radius-sm: 0.25rem;--radius-md: 0.5rem;--radius-lg: 0.75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);--transition-fast: 150ms ease-in-out;--transition-base: 250ms ease-in-out;--transition-slow: 350ms ease-in-out}body{font-family:var(--font-serif);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text);font-weight:var(--font-normal)}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:var(--font-bold);line-height:var(--leading-tight);color:var(--color-text);margin-bottom:var(--space-md)}h1{font-size:var(--text-5xl);letter-spacing:-0.025em}h2{font-size:var(--text-4xl);letter-spacing:-0.025em}h3{font-size:var(--text-3xl)}h4{font-size:var(--text-2xl)}h5{font-size:var(--text-xl)}h6{font-size:var(--text-lg);font-weight:var(--font-semibold)}p{margin-bottom:var(--space-md)}a{color:var(--color-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark)}.lead{font-size:var(--text-xl);font-family:var(--font-sans);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--color-text-light)}small{font-size:var(--text-sm);color:var(--color-text-muted)}strong{font-weight:var(--font-bold)}.text-sans{font-family:var(--font-sans)}.text-serif{font-family:var(--font-serif)}.text-muted{color:var(--color-text-muted)}html{font-size:16px}body{background-color:var(--color-background);color:var(--color-text)}::selection{background-color:var(--color-primary-light);color:var(--color-surface)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}ul,ol{margin-bottom:var(--space-md);padding-left:var(--space-lg)}li{margin-bottom:var(--space-xs)}hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-xl) 0}code{font-family:var(--font-mono);font-size:0.9em;background-color:var(--color-border);padding:0.125rem 0.25rem;border-radius:var(--radius-sm)}pre{background-color:var(--color-text);color:var(--color-surface);padding:var(--space-md);border-radius:var(--radius-md);overflow-x:auto;margin-bottom:var(--space-md)}pre code{background-color:transparent;padding:0}blockquote{border-left:4px solid var(--color-primary);padding-left:var(--space-md);margin-left:0;margin-bottom:var(--space-md);font-style:italic;color:var(--color-text-light)}.container{width:100%;max-width:var(--container-lg);margin-left:auto;margin-right:auto;padding-left:var(--space-md);padding-right:var(--space-md)}@media (min-width: 768px){.container{padding-left:var(--space-lg);padding-right:var(--space-lg)}}.container-sm{max-width:var(--container-sm)}.container-md{max-width:var(--container-md)}.section{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl)}@media (min-width: 768px){.section{padding-top:var(--space-3xl);padding-bottom:var(--space-3xl)}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.grid{display:grid;gap:var(--space-md)}.grid-cols-1{grid-template-columns:repeat(1, 1fr)}@media (min-width: 768px){.grid-cols-2{grid-template-columns:repeat(2, 1fr)}.grid-cols-3{grid-template-columns:repeat(3, 1fr)}}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.site-main{min-height:60vh;padding:var(--space-2xl) 0}.hero{background:linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);color:var(--color-surface);padding:var(--space-3xl) 0;text-align:center}.hero-content{max-width:800px;margin:0 auto}.hero-title{font-size:var(--text-5xl);font-weight:var(--font-bold);margin-bottom:var(--space-md);color:var(--color-surface)}@media (max-width: 767px){.hero-title{font-size:var(--text-4xl)}}.hero-subtitle{font-size:var(--text-2xl);font-weight:var(--font-medium);font-family:var(--font-sans);margin-bottom:var(--space-lg);color:rgba(255,255,255,0.9)}@media (max-width: 767px){.hero-subtitle{font-size:var(--text-xl)}}.hero-description{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:rgba(255,255,255,0.85);max-width:600px;margin:0 auto}.intro-content{text-align:center}.intro-content h2{margin-bottom:var(--space-lg)}.intro-content p{max-width:70ch;margin-left:auto;margin-right:auto}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-md);transition:box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg)}.card-title{font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-sm);color:var(--color-text)}.card-content{color:var(--color-text-light);line-height:var(--leading-relaxed)}.btn{display:inline-block;padding:var(--space-sm) var(--space-lg);font-family:var(--font-sans);font-weight:var(--font-semibold);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;border:none}.btn-primary{background-color:var(--color-primary);color:var(--color-surface)}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-secondary{background-color:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}.btn-secondary:hover{background-color:var(--color-primary);color:var(--color-surface)}.badge{display:inline-block;padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm);font-weight:var(--font-medium);font-family:var(--font-sans);background-color:var(--color-primary-light);color:var(--color-primary-dark);border-radius:var(--radius-sm)}.page-title{font-size:var(--text-5xl);font-weight:var(--font-bold);margin-bottom:var(--space-md);line-height:var(--leading-tight)}@media (max-width: 767px){.page-title{font-size:var(--text-4xl)}}.page-subtitle{font-size:var(--text-xl);font-family:var(--font-sans);color:var(--color-text-light);margin-bottom:var(--space-xl)}.site-header{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-lg) 0}.header-content{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}@media (max-width: 767px){.header-content{flex-direction:column;align-items:flex-start}}.site-brand .site-title{font-size:var(--text-2xl);font-weight:var(--font-bold);font-family:var(--font-sans);color:var(--color-text);text-decoration:none;display:block}.site-brand .site-title:hover{color:var(--color-primary)}.site-brand .site-tagline{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;font-family:var(--font-sans)}.site-nav{display:flex;gap:var(--space-lg)}@media (max-width: 767px){.site-nav{gap:var(--space-md)}}.nav-link{font-family:var(--font-sans);font-weight:var(--font-medium);color:var(--color-text);text-decoration:none;padding:var(--space-xs) 0;border-bottom:2px solid transparent;transition:all var(--transition-fast)}.nav-link:hover{color:var(--color-primary);border-bottom-color:var(--color-primary)}.site-footer{background-color:var(--color-text);color:var(--color-surface);padding:var(--space-2xl) 0 var(--space-lg);margin-top:var(--space-3xl)}.footer-content{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-xl)}@media (max-width: 767px){.footer-content{flex-direction:column;gap:var(--space-lg)}}.footer-info{flex:1}.footer-text{font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-sm)}.footer-text a{color:var(--color-surface);text-decoration:underline}.footer-text a:hover{color:var(--color-primary-light)}.footer-links{display:flex;gap:var(--space-lg)}@media (max-width: 767px){.footer-links{flex-direction:column;gap:var(--space-sm)}}.footer-link{color:var(--color-surface);text-decoration:none;font-weight:var(--font-medium);font-family:var(--font-sans);font-size:var(--text-sm)}.footer-link:hover{color:var(--color-primary-light)}.page .page-header{margin-bottom:var(--space-xl);text-align:center}.page .page-content{max-width:70ch;margin:0 auto}.page .page-content>*+*{margin-top:var(--space-md)}.page .page-content h2{margin-top:var(--space-2xl)}.page .page-content h3{margin-top:var(--space-xl)}.post .post-header{margin-bottom:var(--space-xl)}.post .post-title{margin-bottom:var(--space-sm)}.post .post-meta{font-size:var(--text-sm);color:var(--color-text-muted);font-family:var(--font-sans)}.post .post-content{max-width:70ch;margin:0 auto}.post .post-content>*+*{margin-top:var(--space-md)}.post .post-content h2{margin-top:var(--space-2xl)}.post .post-content h3{margin-top:var(--space-xl)}.post .post-content img{border-radius:var(--radius-lg);margin-top:var(--space-lg);margin-bottom:var(--space-lg)}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}a{transition:color var(--transition-fast)}.card{transition:transform var(--transition-base),box-shadow var(--transition-base)}.card:hover{transform:translateY(-2px)}.btn:focus-visible{outline:3px solid var(--color-primary-light);outline-offset:2px}a:focus-visible{outline:3px solid var(--color-primary-light);outline-offset:2px;border-radius:var(--radius-sm)}.portfolio-case-study{padding:var(--space-2xl) 0}.case-study-header{margin-bottom:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--color-border)}.breadcrumb{margin-bottom:var(--space-md)}.breadcrumb a{font-size:var(--text-sm);color:var(--color-text-light);text-decoration:none;transition:color 0.2s}.breadcrumb a:hover{color:var(--color-primary)}.case-study-meta{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);font-size:var(--text-sm);color:var(--color-text-muted)}.case-study-intro{margin-top:var(--space-lg)}.case-study-intro .role,.case-study-intro .company-context{font-size:var(--text-base);color:var(--color-text-light);margin-bottom:var(--space-xs)}.case-study-intro .lead{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--color-text);margin-top:var(--space-md);font-weight:var(--font-medium)}.case-study-content h2{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text);margin-top:var(--space-2xl);margin-bottom:var(--space-md);font-family:var(--font-sans)}.case-study-content h3{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text);margin-top:var(--space-xl);margin-bottom:var(--space-sm);font-family:var(--font-sans)}.case-study-content p{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text);margin-bottom:var(--space-md)}.case-study-content ul,.case-study-content ol{margin:var(--space-md) 0;padding-left:var(--space-xl)}.case-study-content ul li,.case-study-content ol li{margin-bottom:var(--space-sm);line-height:var(--leading-relaxed)}.case-study-content blockquote{border-left:4px solid var(--color-primary);padding-left:var(--space-lg);margin:var(--space-xl) 0;font-style:italic;color:var(--color-text-light)}.case-study-footer{display:flex;gap:var(--space-md);align-items:center;margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border)}@media (max-width: 767px){.case-study-footer{flex-direction:column;align-items:stretch}.case-study-footer .btn{width:100%;text-align:center}}.timeline{position:relative;max-width:var(--container-md);margin:0 auto;padding:var(--space-2xl) var(--space-md)}.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--color-border);transform:translateX(-50%);z-index:0}.timeline-year{position:relative;text-align:center;margin:var(--space-2xl) 0 var(--space-xl)}.timeline-year h2{display:inline-block;background:var(--color-background);padding:0 var(--space-md);font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-primary);position:relative;z-index:2}.timeline-year::before{content:'';position:absolute;left:50%;top:50%;width:20px;height:20px;background:var(--color-primary);border:4px solid var(--color-background);border-radius:50%;transform:translate(-50%, -50%);z-index:1}.timeline-list{list-style:none;padding:0;margin:0}.timeline-item{display:flex;margin-bottom:var(--space-2xl)}.timeline-item:nth-child(odd){justify-content:flex-end}.timeline-item:nth-child(odd) .timeline-card{width:calc(50% - 40px);margin-right:40px}.timeline-item:nth-child(odd) .timeline-card::before{right:-46px}.timeline-item:nth-child(even){justify-content:flex-start}.timeline-item:nth-child(even) .timeline-card{width:calc(50% - 40px);margin-left:40px}.timeline-item:nth-child(even) .timeline-card::before{left:-46px}.timeline-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);position:relative;z-index:1;transition:transform 0.2s, box-shadow 0.2s}.timeline-card::before{content:'';position:absolute;top:24px;width:12px;height:12px;background:var(--color-primary);border:3px solid var(--color-background);border-radius:50%;z-index:2}.timeline-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.timeline-card time{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);margin-bottom:var(--space-xs)}.timeline-card h3{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text);margin:0 0 var(--space-xs);font-family:var(--font-sans)}.timeline-card .company-context{font-size:var(--text-sm);color:var(--color-text-light);margin-bottom:var(--space-sm)}.timeline-card .role{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-primary);margin-bottom:var(--space-sm)}.timeline-card .card-meta{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.timeline-card .summary{font-size:var(--text-base);color:var(--color-text);line-height:var(--leading-relaxed);margin-bottom:var(--space-md)}.timeline-card .card-link{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-primary);text-decoration:none;transition:color 0.2s}.timeline-card .card-link:hover{color:var(--color-primary-dark)}.timeline-card .card-link::after{content:'→'}@media (max-width: 767px){.timeline{padding:var(--space-xl) var(--space-md)}.timeline::before{left:20px;transform:translateX(0)}.timeline-year{text-align:left;padding-left:60px;margin:var(--space-xl) 0 var(--space-md)}.timeline-year h2{background:transparent;padding:0}.timeline-year::before{left:20px;transform:translate(-50%, -50%)}.timeline-item:nth-child(odd),.timeline-item:nth-child(even){justify-content:flex-start}.timeline-item:nth-child(odd) .timeline-card,.timeline-item:nth-child(even) .timeline-card{width:calc(100% - 60px);margin-left:60px;margin-right:0}.timeline-item:nth-child(odd) .timeline-card::before,.timeline-item:nth-child(even) .timeline-card::before{left:-46px;right:auto}}
