@import url("https://fonts.googleapis.com/css2?family=Jost:wght@300;400;500&display=swap");*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:#F5F0E8;color:#2C2416;font-family:"Jost",system-ui,sans-serif;font-size:15px;font-weight:400;line-height:1.7;min-height:100vh;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}code,kbd,samp{font-family:monospace;font-size:1em}pre{font-family:monospace;font-size:1em;overflow-x:auto}.container{max-width:980px;margin:0 auto;padding:0 28px}.eyebrow{font-size:20px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#7A8C6E}.tag{display:inline-block;font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#536148;border:1px solid #7A8C6E;padding:2px 9px;border-radius:2px;white-space:nowrap}.section{padding:64px 0;border-bottom:1px solid #DDD7CC}.section-header{display:flex;align-items:baseline;gap:20px;margin-bottom:40px}.section-title{font-size:26px;font-weight:300;letter-spacing:-.01em;color:#2C2416}.section-line{flex:1;height:1px;background:#DDD7CC}.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 20px;font-family:"Jost",system-ui,sans-serif;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;border:1px solid #DDD7CC;background:transparent;color:#6B5E4A;cursor:pointer;transition:border-color .2s, color .2s, background .2s;border-radius:2px}.btn:hover{border-color:#7A8C6E;color:#536148}.btn--primary{background:#7A8C6E;color:#F5F0E8;border-color:#7A8C6E}.btn--primary:hover{background:#536148;border-color:#536148}.btn--terra{background:#C4714A;color:#F5F0E8;border-color:#C4714A}.btn--terra:hover{background:#9E5535;border-color:#9E5535}@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .5s ease both}.fade-up-1{animation-delay:.06s}.fade-up-2{animation-delay:.13s}.fade-up-3{animation-delay:.21s}.fade-up-4{animation-delay:.30s}.site-header{position:sticky;top:0;z-index:100;background:#2C2416;border-bottom:1px solid #3E3324}.header-inner{max-width:980px;margin:0 auto;padding:0 20px;height:150px;display:flex;align-items:last baseline;justify-content:space-between;gap:20px}.site-identity{display:flex;flex-direction:column;gap:20px;flex-shrink:0;text-decoration:none;padding-bottom:20px}.site-title{font-family:"Nunito",system-ui,sans-serif;font-size:64px;font-weight:300;letter-spacing:-.01em;color:#F5F0E8;line-height:1}.site-tagline{font-family:"DM Mono",monospace;font-size:24px;font-weight:500;letter-spacing:.30em;text-transform:lowercase;color:#C4714A;line-height:1}.nav-links{align-self:flex-end;padding-bottom:5px;display:flex;gap:4px;list-style:none;align-items:center;flex-shrink:0}.nav-links a{display:flex;align-items:center;gap:7px;padding:6px 14px;font-family:"Jost",system-ui,sans-serif;font-size:16px;font-weight:500;letter-spacing:.12em;text-transform:lowercase;color:#C8BFB0;border-radius:2px;transition:color .2s, background .2s;text-decoration:none;white-space:nowrap}.nav-links a .nav-icon{width:20px;height:20px;flex-shrink:0;opacity:.65;transition:opacity .2s}.nav-links a .nav-label{display:inline}.nav-links a:hover,.nav-links a.active{color:#F5F0E8;background:rgba(255,255,255,0.07)}.nav-links a:hover .nav-icon,.nav-links a.active .nav-icon{opacity:1}.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}.nav-toggle span{display:block;width:20px;height:1.5px;background:#C8BFB0;transition:.2s}@media (max-width: 560px){.nav-links a{padding:6px 8px}.nav-links a .nav-label{display:none}}@media (max-width: 680px){.header-inner{height:64px;gap:16px}.site-title{font-family:"Nunito",system-ui,sans-serif;font-size:26px}.site-tagline{font-family:"DM Mono",monospace;font-size:10px}.nav-toggle{display:flex}.nav-links{display:none;flex-direction:column;gap:0;position:absolute;top:300px;left:0;right:0;background:#2C2416;border-bottom:1px solid #3E3324;padding:8px 16px 16px}.nav-links.open{display:flex}.nav-links a{padding:11px 8px;border-bottom:1px solid #3E3324;border-radius:0;width:100%}.nav-links a .nav-label{display:inline !important}.nav-links a:last-child{border-bottom:none}}.site-footer{background:#2C2416;border-top:1px solid #3E3324;padding:28px 0}.footer-inner{max-width:980px;margin:0 auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}@media (max-width: 680px){.footer-inner{flex-direction:column;align-items:flex-start;gap:8px}}.footer-author{font-size:12px;font-weight:400;color:#C8BFB0}.footer-author a{color:#F5F0E8;border-bottom:1px solid transparent;transition:border-color .2s}.footer-author a:hover{border-color:#7A8C6E}.footer-copy{font-size:11px;color:#3E3324;letter-spacing:.04em}.hero{padding:80px 0 64px;border-bottom:1px solid #DDD7CC}.hero-grid{display:grid;grid-template-columns:1fr 260px;gap:64px;align-items:start}@media (max-width: 680px){.hero-grid{grid-template-columns:1fr;gap:36px}}.hero-eyebrow{font-size:20px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#7A8C6E;margin-bottom:12px}.hero-name{font-size:clamp(40px, 7vw, 68px);font-weight:300;line-height:1.0;letter-spacing:-.02em;color:#2C2416;margin-bottom:28px}.hero-jobtitle{font-size:clamp(14px, 2vw, 18px);font-weight:300;color:#6B5E4A;letter-spacing:.04em;margin-bottom:24px}.hero-bio{font-size:15px;font-weight:300;line-height:1.85;color:#6B5E4A;margin-bottom:32px}.pro-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.pro-link{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;font-size:12px;font-weight:500;letter-spacing:.08em;border:1px solid #DDD7CC;border-radius:2px;color:#6B5E4A;transition:border-color .2s, color .2s, background .2s;text-decoration:none}.pro-link svg{flex-shrink:0}.pro-link .pro-link__label{white-space:nowrap}.pro-link:hover{border-color:#7A8C6E;color:#536148;background:#EBF0E6}.pro-link--github:hover{border-color:#2C2416;color:#2C2416;background:#EDE8DF}.pro-link--linkedin:hover{border-color:#0A66C2;color:#0A66C2;background:#E8F1FB}.pro-link--email:hover{border-color:#7A8C6E;color:#536148;background:#EBF0E6}@media (max-width: 480px){.pro-link{padding:9px 11px}.pro-link .pro-link__label{display:none}}.hero-photo-wrap{display:flex;flex-direction:column;gap:8px}@media (max-width: 680px){.hero-photo-wrap{max-width:220px}}.hero-photo-frame{position:relative}.hero-photo-frame::before{content:'';position:absolute;top:-12px;left:0;right:0;height:2px;background:#C4714A}.hero-photo-frame img{width:100%;aspect-ratio:4 / 5;object-fit:cover;object-position:top;border-radius:2px;display:block}.photo-caption{font-size:11px;font-weight:400;color:#9C8E7C;text-align:center;font-style:italic;line-height:1.5}.pro-links--vertical{flex-direction:column;align-items:flex-start;gap:0}.pro-links--vertical .pro-link{width:100%;border-left:none;border-right:none;border-top:none;border-bottom:1px solid #DDD7CC;border-radius:0;padding:11px 4px}.pro-links--vertical .pro-link .pro-link__label{display:inline !important}.pro-links--vertical .pro-link:first-child{border-top:1px solid #DDD7CC}.pro-links--vertical .pro-link:hover{padding-left:10px;transition:padding-left .15s ease, color .2s, border-color .2s}.about-grid{display:grid;grid-template-columns:1fr 240px;gap:56px;align-items:start;padding:64px 0}@media (max-width: 680px){.about-grid{grid-template-columns:1fr;gap:40px;padding:48px 0}}.about-body{font-size:15px;font-weight:300;line-height:1.85;color:#6B5E4A}.about-body p{margin-bottom:18px}.about-body h2{font-size:20px;font-weight:400;color:#2C2416;margin:36px 0 12px;letter-spacing:-.01em}.about-photos{display:flex;flex-direction:column;gap:32px}.about-photo-wrap{display:flex;flex-direction:column;gap:7px}.about-photo-frame{position:relative}.about-photo-frame img{width:100%;border-radius:2px;display:block}.about-photo-frame--profile img{aspect-ratio:4 / 5;object-fit:cover;object-position:top}.about-photo-frame--dog img{aspect-ratio:1 / 1;object-fit:cover}.flip-card{perspective:900px;cursor:pointer}.flip-card__inner{position:relative;width:100%;transform-style:preserve-3d;transition:transform 0.55s cubic-bezier(0.4, 0, 0.2, 1)}.flip-card__inner.is-flipped{transform:rotateY(180deg)}.flip-card__front,.flip-card__back{backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:2px;overflow:hidden}.flip-card__front{width:100%}.flip-card__back{position:absolute;inset:0;transform:rotateY(180deg);background:#EBF0E6;border:1px solid #7A8C6E;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;text-align:center;gap:10px}.flip-card__back-emoji{font-size:32px;line-height:1}.flip-card__back-text{font-size:13px;font-weight:300;line-height:1.7;color:#6B5E4A}.flip-card__back-hint{font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:lowercase;color:#536148}.about-photo-caption{font-size:11px;font-weight:400;color:#9C8E7C;text-align:center;font-style:italic;line-height:1.5}.flip-hint{font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:lowercase;color:#7A8C6E;text-align:center}.about-name{font-size:48px;font-weight:300;color:#2C2416;margin-bottom:1px;letter-spacing:-.01em}.blog-layout{display:grid;grid-template-columns:1fr 220px;gap:48px;padding:64px 0;align-items:start}@media (max-width: 680px){.blog-layout{grid-template-columns:1fr;gap:40px;padding:48px 0}}.blog-headline{font-size:28px;font-weight:300;color:#2C2416;letter-spacing:-.01em;margin-bottom:32px}.blog-grid{display:flex;flex-direction:column;gap:1px;background:#DDD7CC;border:1px solid #DDD7CC}.blog-card{background:#F5F0E8;padding:28px;display:flex;flex-direction:column;gap:8px;transition:background .2s;text-decoration:none;color:inherit}.blog-card:hover{background:#EDE8DF}.blog-card:hover .blog-card__title{color:#536148}.blog-card__date{font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#9C8E7C}.blog-card__title{font-size:20px;font-weight:400;color:#2C2416;line-height:1.3;letter-spacing:-.01em;transition:color .2s}.blog-card__preview{font-size:13px;font-weight:300;line-height:1.65;color:#6B5E4A}.blog-card__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:4px}.blog-card__filed{font-size:10px;font-weight:400;color:#9C8E7C;letter-spacing:.04em}.blog-card__filed .blog-card__cat-link{color:#536148;border-bottom:1px solid transparent;transition:border-color .2s}.blog-card__filed .blog-card__cat-link:hover{border-color:#7A8C6E}.blog-card__cta{font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#7A8C6E;flex-shrink:0}.categories-sidebar{position:sticky;top:calc(300px + 24px)}.categories-sidebar__title{font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#9C8E7C;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid #DDD7CC}.category-list{list-style:none;display:flex;flex-direction:column;gap:2px}.category-list a{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;font-size:13px;font-weight:400;color:#6B5E4A;border-radius:2px;transition:background .15s, color .15s;text-decoration:none}.category-list a:hover,.category-list a.active{background:#EBF0E6;color:#536148}.category-list a.active{font-weight:500}.category-count{font-size:10px;font-weight:500;color:#9C8E7C;background:#EDE8DF;padding:1px 6px;border-radius:99px}.pagination{display:flex;justify-content:center;align-items:center;gap:4px;margin-top:40px}.page-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid #DDD7CC;font-size:12px;font-weight:400;color:#6B5E4A;background:#F5F0E8;border-radius:2px;text-decoration:none;transition:border-color .2s, color .2s, background .2s}.page-btn:hover{border-color:#7A8C6E;color:#536148}.page-btn.active{background:#7A8C6E;border-color:#7A8C6E;color:#F5F0E8}.page-btn[aria-disabled]{opacity:.3;cursor:default}.category-filter-header{padding:40px 0 0;margin-bottom:32px;border-bottom:1px solid #DDD7CC;padding-bottom:20px}.category-filter-label{font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#7A8C6E;margin-bottom:6px}.category-filter-title{font-size:26px;font-weight:300;color:#2C2416}.post-header{padding:56px 0 36px;border-bottom:1px solid #DDD7CC;margin-bottom:44px}.post-back{display:inline-flex;margin-bottom:24px}.post-title{font-size:clamp(26px, 4vw, 44px);font-weight:300;letter-spacing:-.02em;line-height:1.15;color:#2C2416;margin-bottom:14px}.post-meta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;font-size:11px;font-weight:400;letter-spacing:.08em;color:#9C8E7C}.post-meta__cats{display:flex;gap:6px;flex-wrap:wrap}.post-meta__cats a{color:#536148;border-bottom:1px solid transparent;transition:border-color .2s}.post-meta__cats a:hover{border-color:#7A8C6E}.post-body{max-width:620px;padding-bottom:72px}.post-body p,.post-body ul,.post-body ol{font-size:15px;font-weight:300;line-height:1.85;color:#6B5E4A;margin-bottom:20px}.post-body ul,.post-body ol{margin-left:20px}.post-body ul li,.post-body ol li{margin-bottom:6px}.post-body h2{font-size:22px;font-weight:400;color:#2C2416;margin:40px 0 12px}.post-body h3{font-size:17px;font-weight:500;color:#2C2416;margin:28px 0 10px}.post-body a{color:#536148;border-bottom:1px solid transparent;transition:border-color .2s}.post-body a:hover{border-color:#7A8C6E}.post-body strong{font-weight:500;color:#2C2416}.post-body blockquote{border-left:2px solid #C4714A;padding-left:20px;color:#9C8E7C;font-style:italic;margin:24px 0}.post-body img{max-width:100%;margin:32px 0;border-radius:2px}.post-body hr{border:none;border-top:1px solid #DDD7CC;margin:36px 0}.post-nav{display:flex;gap:16px;padding:32px 0 72px;border-top:1px solid #DDD7CC}@media (max-width: 680px){.post-nav{flex-direction:column}}.post-nav__item{flex:1;padding:18px;border:1px solid #DDD7CC;border-radius:2px;transition:border-color .2s, background .2s;display:block;text-decoration:none}.post-nav__item:hover{border-color:#7A8C6E;background:#EBF0E6}.post-nav__item--next{text-align:right}.post-nav__label{font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#9C8E7C;margin-bottom:6px}.post-nav__title{font-size:14px;font-weight:400;color:#2C2416;line-height:1.35}.construction-wrap{padding:64px 0;text-align:center;border-bottom:1px solid #DDD7CC;margin-bottom:56px}.construction-badge{display:inline-flex;align-items:center;gap:8px;background:#FFC184;border:1px solid #FF6700;color:#993D00;font-size:clamp(32px, 6vw, 54px);font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:5px 14px;border-radius:2px;margin-bottom:20px}.construction-headline{font-size:clamp(28px, 6vw, 48px);font-weight:300;letter-spacing:-.02em;color:#2C2416;line-height:1.05;margin-bottom:12px}.construction-sub{font-size:clamp(12px, 6vw, 16px);font-weight:300;color:#6B5E4A;max-width:480px;margin:0 auto 36px;line-height:1.7}.construction-emojis{font-size:28px;letter-spacing:.15em;margin-bottom:4px}.game-section{padding-bottom:80px}.game-intro{text-align:center;margin-bottom:28px}.game-title{font-size:22px;font-weight:400;color:#2C2416;margin-bottom:6px}.game-sub{font-size:13px;font-weight:300;color:#6B5E4A}.game-status{text-align:center;font-size:13px;font-weight:500;letter-spacing:.08em;color:#9C8E7C;min-height:20px;margin-bottom:14px}.game-status.win{color:#536148}.game-status.hint{color:#C4714A}.gridlock-board{position:relative;width:360px;height:360px;margin:0 auto 20px;background:#EDE8DF;border:2px solid #DDD7CC;border-radius:4px;box-shadow:inset 0 1px 4px rgba(0,0,0,0.06);touch-action:none}.gridlock-board::before{content:'';position:absolute;inset:0;background-image:linear-gradient(to right, #DDD7CC 1px, transparent 1px),linear-gradient(to bottom, #DDD7CC 1px, transparent 1px);background-size:60px 60px;pointer-events:none}.gl-piece{position:absolute;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:22px;cursor:grab;user-select:none;transition:box-shadow .15s;box-shadow:0 2px 6px rgba(0,0,0,0.12)}.gl-piece:active{cursor:grabbing;box-shadow:0 4px 12px rgba(0,0,0,0.18)}.gl-piece.piece--worker{background:#ccffd4;border:2px solid #66ff7d}.gl-piece.piece--short{background:#FEFACC;border:2px solid #FCEF66}.gl-piece.piece--long{background:#FFC184;border:2px solid #FF6700}.gridlock-exit{position:absolute;right:-28px;top:calc(2 * 60px + 6px);height:48px;display:flex;align-items:center;font-size:18px}.game-controls{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
