:root{--color-text:#fff;--color-text-light:#ffffffb3;--color-background:#032989;--color-accent:#fff;--color-border:#ffffff26;--font-heading:"Libre Baskerville", serif;--font-body:"Source Sans 3", sans-serif;--font-nav:"Raleway", sans-serif;--max-width:1200px;--spacing-xs:.5rem;--spacing-sm:1rem;--spacing-md:2rem;--spacing-lg:4rem;--spacing-xl:6rem}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-background);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.75}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none;transition:opacity .3s}a:hover{opacity:.7}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:400;line-height:1.3}h1{font-size:clamp(2rem,5vw,3.5rem)}h2{font-size:clamp(1.75rem,4vw,2.5rem)}h3{font-size:clamp(1.25rem,3vw,1.875rem)}h4{font-size:1.25rem;font-weight:700}.container{max-width:var(--max-width);padding:0 var(--spacing-md);margin:0 auto}section{padding:var(--spacing-xl) 0}.nav{padding:var(--spacing-md) 0;background:var(--color-background);z-index:1000;position:sticky;top:0}.nav .container{justify-content:space-between;align-items:center;display:flex}.logo{line-height:0}.nav-links{gap:var(--spacing-md);display:flex}.nav-link{font-family:var(--font-nav);letter-spacing:.05em;font-size:1rem;font-weight:600;position:relative}.nav-link.active:after{content:"";background:var(--color-accent);height:2px;position:absolute;bottom:-4px;left:0;right:0}.mobile-menu-toggle{cursor:pointer;padding:var(--spacing-xs);background:0 0;border:none;flex-direction:column;gap:4px;display:none}.mobile-menu-toggle span{background:var(--color-accent);width:22px;height:2px;transition:all .3s}.hero{padding:var(--spacing-xl) 0 var(--spacing-lg) 0;text-align:center}.hero-title{max-width:1050px;margin:0 auto var(--spacing-md) auto;font-family:var(--font-body);letter-spacing:.06em;font-size:clamp(2rem,5vw,3.75rem);font-weight:600;line-height:1.42}.portfolio{background:0 0}.portfolio-grid{gap:var(--spacing-lg) var(--spacing-md);grid-template-columns:repeat(3,1fr);display:grid}.portfolio-item{text-align:center;transition:transform .3s;display:block;overflow:hidden}.portfolio-item:hover{opacity:1;transform:translateY(-8px)}.portfolio-item:active{transform:translateY(-2px)scale(.97)}.portfolio-item img{aspect-ratio:1;object-fit:cover;width:100%;height:auto;margin-bottom:var(--spacing-sm);border-radius:4px;transition:filter .3s,transform .3s}.portfolio-item:hover img{filter:brightness(1.1);transform:scale(1.03)}.portfolio-item h3{font-size:clamp(1.25rem,2.5vw,2rem);font-style:italic;font-weight:400;text-decoration:none;transition:text-decoration .2s}.portfolio-item:hover h3{text-underline-offset:4px;text-decoration:underline}.experience-header{max-width:700px;margin-bottom:var(--spacing-lg)}.experience-header h2{margin-bottom:var(--spacing-sm)}.experience-header p{color:var(--color-text-light);font-size:1.125rem}.experience-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.job h4{margin-bottom:var(--spacing-xs)}.job-title{margin-bottom:4px;font-weight:600}.job-date{color:var(--color-text-light);font-size:.875rem}.contact{text-align:center;background:#ffffff0d}.contact h3{max-width:600px;margin:0 auto var(--spacing-lg) auto}.contact-form{max-width:600px;margin:0 auto}.form-grid{gap:var(--spacing-md);margin-bottom:var(--spacing-md);grid-template-columns:repeat(2,1fr);display:grid}.form-group{text-align:left}.form-group-full{grid-column:1/-1}.form-group label{margin-bottom:var(--spacing-xs);font-size:.875rem;font-weight:600;display:block}.form-group input,.form-group textarea{width:100%;padding:var(--spacing-sm);border:1px solid var(--color-border);font-family:var(--font-body);color:var(--color-text);background:#ffffff1a;border-radius:4px;font-size:1rem;transition:border-color .3s}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-light)}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-accent);outline:none}.form-group textarea{resize:vertical;min-height:120px}.btn{background:var(--color-accent);color:var(--color-background);padding:var(--spacing-sm) var(--spacing-lg);font-family:var(--font-body);cursor:pointer;border:none;border-radius:4px;font-size:1rem;font-weight:600;transition:transform .2s,opacity .3s}.btn:hover{opacity:.85;transform:translateY(-2px)}.footer{padding:var(--spacing-lg) 0;text-align:center;border-top:1px solid var(--color-border);background:var(--color-background);color:var(--color-text)}.footer img{margin:0 auto var(--spacing-md) auto}.footer-links{justify-content:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.footer-links a{font-weight:600;text-decoration:underline}.blog-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.blog-card{border:1px solid var(--color-border);border-radius:8px;transition:transform .3s,box-shadow .3s;display:block;overflow:hidden}.blog-card:hover{opacity:1;transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.blog-card-image{aspect-ratio:16/9;object-fit:cover;width:100%}.blog-card-content{padding:var(--spacing-md)}.blog-card-meta{color:var(--color-text-light);margin-bottom:var(--spacing-xs);font-size:.875rem}.blog-card h3{margin-bottom:var(--spacing-sm)}.blog-card p{color:var(--color-text-light);line-height:1.6}.blog-post-header{max-width:800px;margin:0 auto var(--spacing-lg) auto;text-align:center}.blog-post-date{color:var(--color-text-light);margin-bottom:var(--spacing-sm);font-size:.875rem}.blog-post-title{margin-bottom:var(--spacing-md)}.blog-post-content{max-width:700px;margin:0 auto;font-size:1.125rem;line-height:1.8}.blog-post-content p{margin-bottom:var(--spacing-md)}.blog-post-content h2{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-md)}.blog-post-content img{margin:var(--spacing-lg) 0;border-radius:8px}@media (width<=768px){.nav-links{background:var(--color-background);padding:var(--spacing-md);border-bottom:1px solid var(--color-border);flex-direction:column;display:none;position:absolute;top:100%;left:0;right:0}.nav-links.active,.mobile-menu-toggle{display:flex}.portfolio-grid{gap:var(--spacing-md);grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.experience-grid{gap:var(--spacing-md);grid-template-columns:1fr}}@media (width<=480px){section{padding:var(--spacing-lg) 0}.hero{padding:var(--spacing-lg) 0 var(--spacing-md) 0}}.portfolio-item h3 .lock-icon{vertical-align:baseline;opacity:.85;width:auto;height:.74em;margin-left:.3em;display:inline-block}.gate{min-height:70vh;padding:var(--spacing-xl) var(--spacing-md);text-align:center;background:var(--color-background);color:var(--color-text);justify-content:center;align-items:center;display:flex}.gate-card{width:100%;max-width:460px}.gate-card h1{font-family:var(--font-body);letter-spacing:.04em;margin-bottom:var(--spacing-sm);font-size:clamp(2rem,6vw,2.75rem);font-weight:700}.gate-card p{color:var(--color-text-light);margin-bottom:var(--spacing-md)}.gate-form{gap:var(--spacing-xs);display:flex}.gate-label{position:absolute;left:-9999px}.gate-form input{border:1px solid var(--color-border);color:#fff;min-width:0;font:inherit;background:#ffffff1a;border-radius:8px;flex:1;padding:.85rem 1rem}.gate-form input:focus{outline-offset:2px;outline:2px solid #fff}.gate-form button{color:var(--color-background);font:inherit;cursor:pointer;background:#fff;border:0;border-radius:8px;padding:.85rem 1.5rem;font-weight:700}.gate-error{min-height:1.5em;margin-top:var(--spacing-sm);color:#ffd9fe}.portfolio-group+.portfolio-group{padding-top:0}.portfolio-group-header{max-width:700px;margin-bottom:var(--spacing-lg)}.portfolio-group-header h2{margin-bottom:var(--spacing-sm)}.portfolio-group-header p{color:var(--color-text-light);font-size:1.125rem}.portfolio-grid--two{grid-template-columns:repeat(2,1fr)}@media (width<=768px){.portfolio-grid--two{grid-template-columns:1fr}}.job-previous{margin-top:var(--spacing-xs);color:var(--color-text-light);font-size:.875rem;line-height:1.5}.brand{align-items:flex-end;gap:.6em;line-height:1;display:inline-flex}.brand-mark{width:auto;height:46px}.brand-name{font-family:var(--font-nav);letter-spacing:.08em;text-transform:uppercase;color:#fff;padding-bottom:6px;font-size:.875rem;font-weight:600}.brand--footer .brand-mark{height:34px}.brand--footer .brand-name{padding-bottom:4px;font-size:.75rem}.footer-logo{margin-bottom:var(--spacing-md);display:inline-block}.hero-subtitle{max-width:640px;margin:0 auto var(--spacing-md) auto;color:var(--color-text-light);font-size:1.25rem;line-height:1.6}.hero-actions{justify-content:center;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.button{border:2px solid #fff;border-radius:999px;align-items:center;gap:.5em;padding:.8rem 1.5rem;font-size:1rem;font-weight:600;transition:background .2s,color .2s;display:inline-flex}.button:hover{opacity:1}.button--primary{color:var(--color-background);background:#fff}.button--primary:hover{background:#ffffffd9}.button--secondary{color:#fff}.button--secondary:hover{background:#ffffff1f}.button svg{width:18px;height:18px}.text-link{text-underline-offset:4px;padding:.8rem .5rem;font-weight:600;text-decoration:underline}.hero--home{text-align:left}.hero--home .hero-title{max-width:900px;margin-left:0;margin-right:0}.hero--home .hero-subtitle{margin-left:0;margin-right:0}.hero--home .hero-actions{justify-content:flex-start;gap:var(--spacing-md)}
