.journey-section{padding:3rem 0;position:relative}.journey-section::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:100vw;height:1px;background:var(--border-subtle)}.journey-section-label{display:flex;align-items:center;gap:.5rem;margin-bottom:2rem}.journey-label-dot{font-family:datatype,monospace;font-size:.7rem;color:var(--accent-purple);font-weight:400}.journey-label-dot::before{content:'//'}.journey-label-text{font-family:datatype,monospace;font-size:.7rem;letter-spacing:.12em;color:var(--text-secondary);text-transform:uppercase;font-weight:400}.journey-title{display:none}.timeline-container{background:var(--bg-terminal);border:1px solid var(--border-subtle);overflow:hidden;position:relative}.timeline-header{display:flex;border-bottom:1px solid var(--border-subtle);background:var(--bg-code)}.timeline-label-column{width:160px;min-width:160px;flex-shrink:0;padding:.75rem 1rem;border-right:1px solid var(--border-subtle)}.timeline-years{display:flex;flex:1}.timeline-year{flex:1;padding:.75rem .5rem;text-align:center;font-family:datatype,monospace;font-size:.85rem;font-weight:600;color:var(--text-secondary);letter-spacing:.05em;border-right:1px solid var(--border-subtle)}.timeline-year:last-child{border-right:none}.timeline-year.skip{color:var(--text-muted);font-style:italic;background:var(--surface-accent-soft)}.grid-line.skip{background:repeating-linear-gradient( -45deg,transparent,transparent 4px,var(--border-subtle) 4px,var(--border-subtle) 8px );opacity:.3}.timeline-body{position:relative}.timeline-grid-lines{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;pointer-events:none}.timeline-grid{display:flex;flex:1}.grid-line{flex:1;border-right:1px solid var(--border-subtle);opacity:.5}.grid-line:last-child{border-right:none}.timeline-rows{position:relative;z-index:1}.timeline-row{display:flex;min-height:70px;border-bottom:1px solid var(--border-subtle)}.timeline-row:last-child{border-bottom:none}.timeline-row .timeline-label-column{display:flex;align-items:center;padding:1rem}.timeline-company{font-family:datatype,monospace;font-size:.85rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.02em;line-height:1.4;text-align:left;width:100%}.timeline-track{flex:1;position:relative;display:flex;align-items:center;padding:.75rem 0;overflow:visible}.timeline-bar{position:absolute;height:50px;border-radius:0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;align-content:center;padding:0 .75rem;transition:transform .2s ease,box-shadow .2s ease;cursor:default;overflow:hidden;min-width:90px;left:calc((var(--start)/7) * 100%);width:calc(max(((var(--end) - var(--start))/7) * 100%,80px))}.timeline-bar:hover{z-index:10}.bar-label{font-family:datatype,monospace;font-size:.85rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;grid-column:1;grid-row:1}.bar-period{font-family:datatype,monospace;font-size:.7rem;color:var(--text-secondary);letter-spacing:.02em;white-space:nowrap;grid-column:1;grid-row:2}.timeline-bar.past{background:0 0;border:1px solid var(--border-subtle)}.timeline-bar.past .bar-label{color:var(--text-secondary)}.timeline-bar.past .bar-period{color:var(--text-muted)}.timeline-bar.past:hover{border-color:var(--text-muted);background:var(--surface-accent-soft)}.timeline-bar.current{background:var(--accent-purple);border:1px solid var(--accent-purple)}.timeline-bar.current .bar-label{color:#fff}.timeline-bar.current .bar-period{color:rgba(255,255,255,.85)}.timeline-year.now{color:var(--accent-purple);font-weight:700}.grid-line.now{background:var(--accent-purple-muted);opacity:.5}.timeline-row[data-expandable]{cursor:pointer;flex-wrap:wrap}.timeline-row[data-expandable] .timeline-label-column{position:relative;flex-direction:column;align-items:flex-start;justify-content:center;gap:.25rem}.bar-expand-icon{font-family:datatype,monospace;font-size:.65rem;color:var(--text-muted);transition:transform .3s ease,color .2s ease;grid-column:2;grid-row:1/3;align-self:center;padding-left:.5rem}.timeline-bar:hover .bar-expand-icon{color:var(--accent-purple)}.timeline-row[data-expandable].expanded .bar-expand-icon{transform:rotate(45deg);color:var(--accent-purple)}.timeline-bar.current .bar-expand-icon{color:rgba(255,255,255,.7)}.timeline-bar.current:hover .bar-expand-icon,.timeline-row[data-expandable].expanded .timeline-bar.current .bar-expand-icon{color:#fff}.timeline-details{width:100%;max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s ease;opacity:0;background:var(--bg-code);border-top:1px solid transparent}.timeline-row.expanded .timeline-details{max-height:500px;opacity:1;border-top-color:var(--border-subtle)}.timeline-detail-content{padding:1.25rem 1.5rem;text-align:left}.detail-role{display:flex;align-items:baseline;gap:1rem;margin-bottom:.5rem;justify-content:flex-start}.detail-role:not(:first-child){margin-top:1.25rem;padding-top:1.25rem;border-top:1px dashed var(--border-subtle)}.detail-title{font-family:artific,sans-serif;font-size:.95rem;font-weight:600;color:var(--accent-purple)}.detail-period{font-family:datatype,monospace;font-size:.7rem;color:var(--text-muted);letter-spacing:.02em}.detail-description{font-family:artific,sans-serif;font-size:.875rem;line-height:1.6;color:var(--text-secondary);margin:0 0 .75rem;text-align:left}.detail-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-start}.detail-tag{font-family:datatype,monospace;font-size:.65rem;padding:.25rem .6rem;background:0 0;border:1px solid var(--border-subtle);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}@media(max-width:968px){.journey-section{padding:2rem 0}.timeline-label-column{width:120px;min-width:120px;padding:.5rem}.timeline-company{font-size:.75rem}.timeline-year{font-size:.75rem;padding:.5rem .25rem}.bar-label{font-size:.7rem}.bar-period{display:none}.timeline-bar{height:40px;padding:0 .5rem}.timeline-row{min-height:56px}}@media(max-width:640px){.journey-section{padding:1.5rem 0}.journey-section-label{padding:0;margin-bottom:1.5rem}.timeline-container{border:none;background:0 0;overflow:visible}.timeline-header{display:none}.timeline-grid-lines{display:none}.timeline-rows{display:flex;flex-direction:column;gap:1rem;min-width:unset}.timeline-row{display:flex;flex-direction:column;border:1px solid var(--border-subtle);background:var(--bg-terminal);min-height:unset;border-bottom:1px solid var(--border-subtle)}.timeline-row:last-child{border-bottom:1px solid var(--border-subtle)}.timeline-row .timeline-label-column{width:100%;min-width:unset;padding:.75rem 1rem;border-right:none;border-bottom:1px solid var(--border-subtle);background:var(--bg-code)}.timeline-company{font-size:.7rem;text-align:left}.timeline-track{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:.75rem 1rem;overflow:visible}.timeline-bar{position:relative;left:unset;width:100%!important;height:auto;min-height:44px;padding:.75rem 1rem;grid-template-columns:1fr auto;grid-template-rows:auto auto}.bar-label{font-size:.75rem}.bar-period{display:block;font-size:.6rem}.bar-expand-icon{font-size:.75rem}.timeline-bar.current{border-radius:0}.timeline-detail-content{padding:1rem}.detail-title{font-size:.9rem}.detail-period{font-size:.65rem}.detail-description{font-size:.85rem}.detail-tag{font-size:.6rem;padding:.2rem .5rem}.detail-role{flex-wrap:wrap;gap:.5rem}}.projects-layout{display:grid;grid-template-columns:280px 1fr;gap:4rem}.projects-header{position:sticky;top:6rem;align-self:start}.projects-label{font-family:datatype,monospace;font-size:.7rem;letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;display:block;margin-bottom:.75rem}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.project-window{display:flex;flex-direction:column;background:var(--bg-terminal-alt);border:1px solid var(--border-subtle);border-radius:0;text-decoration:none;transition:all .3s ease;overflow:hidden}.project-window:hover{text-decoration:none;border-color:var(--accent-purple)}.project-window:hover .window-arrow{opacity:1;transform:translateX(0);color:var(--accent-purple)}.project-window:hover .window-title{color:var(--accent-purple)}.project-window-header{display:grid;grid-template-columns:auto minmax(0,1fr)auto;align-items:center;gap:.75rem;min-height:2.65rem;padding:0 1rem;background:var(--bg-terminal);border-bottom:1px solid var(--border-subtle)}.window-dots{display:flex;gap:6px;flex:none}.window-dot{width:12px;height:12px;border-radius:50%;transition:box-shadow .3s ease}.window-dot.red{background:#ff5f57}.window-dot.yellow{background:#ffbd2e}.window-dot.green{background:#28ca41}.window-title{min-width:0;font-family:datatype,monospace;font-size:.75rem;line-height:1.5;color:var(--text-secondary);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s ease}.window-arrow{display:inline-flex;align-items:center;justify-content:flex-end;width:1rem;font-size:1rem;line-height:1;color:var(--text-muted);opacity:0;transform:translateX(-4px);transition:all .3s ease}.project-window-body{flex:1;display:flex;flex-direction:column;padding:1.25rem;gap:.75rem}.project-meta-line{display:flex;align-items:center;gap:.5rem;font-family:datatype,monospace;font-size:.7rem;margin-bottom:.5rem}.meta-prompt{color:var(--accent-purple);font-weight:600}.meta-command{color:var(--accent-purple)}.meta-file{color:var(--text-secondary)}.project-title{font-family:construct mono,Georgia,serif;font-size:1.2rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.3}.project-description{font-family:artific,sans-serif;font-size:.85rem;line-height:1.6;color:var(--text-secondary);margin:0}.project-window-footer{display:flex;align-items:center;min-height:3.15rem;padding:0 1.25rem;border-top:1px solid var(--border-subtle);background:var(--bg-terminal);overflow:hidden}.project-tags{display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:clamp(.35rem,.8vw,.55rem);width:100%;min-width:0;overflow:hidden}.project-tags span{flex:initial;min-width:0;font-family:datatype,monospace;font-size:.56rem;line-height:1;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:rgba(255,255,255,.025);border:1px solid var(--border-subtle);padding:.34rem .5rem;border-radius:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:968px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.projects-grid{grid-template-columns:1fr;gap:1rem}.project-window-body{padding:1rem}.project-title{font-size:1.05rem}.project-description{font-size:.8rem}.window-title{font-size:.65rem}}.posts-section{padding:3rem 0}.posts-page::before{display:none}.posts-list{display:flex;flex-direction:column}.post-row{display:grid;grid-template-columns:140px 1px 1fr;gap:1.5rem;padding:1.75rem 0;text-decoration:none;border-bottom:1px solid var(--border-subtle);transition:all .2s ease}.post-row:first-child{padding-top:0}.post-row:hover{text-decoration:none}.post-row:hover .post-name{color:var(--accent-purple)}.post-row:hover .post-divider{background:var(--accent-purple)}.post-meta{display:flex;align-items:flex-start;padding-top:.25rem}.post-meta time{font-family:datatype,monospace;font-size:.65rem;letter-spacing:.05em;color:var(--text-muted);text-transform:uppercase}.post-divider{width:1px;background:var(--border-subtle);align-self:stretch;transition:background .2s ease}.post-content{display:flex;flex-direction:column;gap:.5rem;text-align:left}.post-name{font-family:construct mono,Georgia,serif;font-size:1.35rem;font-weight:500;color:var(--text-primary);margin:0;transition:color .2s ease;text-align:left}.post-desc{font-family:artific,sans-serif;font-size:.9rem;line-height:1.6;color:var(--text-secondary);margin:0;text-align:left}.post-tech{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.25rem;justify-content:flex-start}.post-tech span{font-family:datatype,monospace;font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.posts-view-all{padding-top:2rem}.posts-view-all .view-all-link{font-family:datatype,monospace;font-size:.8rem;color:var(--text-secondary);text-decoration:none;text-transform:uppercase;letter-spacing:.05em;transition:color .2s ease}.posts-view-all .view-all-link:hover{color:var(--accent-purple)}.posts-page{padding-top:2rem;padding-bottom:4rem}.posts-pagination{display:flex;align-items:center;justify-content:space-between;padding-top:2rem;margin-top:1rem;border-top:1px solid var(--border-subtle)}.posts-pagination .pagination-link{font-family:datatype,monospace;font-size:.8rem;color:var(--text-secondary);text-decoration:none;text-transform:uppercase;letter-spacing:.05em;transition:color .2s ease}.posts-pagination .pagination-link:hover{color:var(--accent-purple)}.posts-pagination .pagination-info{font-family:datatype,monospace;font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}@media(max-width:640px){.post-row{grid-template-columns:1fr;gap:.75rem}.post-meta{order:-1}.post-divider{display:none}.post-name{font-size:1.15rem}.post-desc{font-size:.85rem}.posts-pagination{flex-direction:column;gap:1rem;text-align:center}}.journey-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.journey-card{background:var(--bg-terminal);border:1px solid var(--border-subtle);border-radius:0;overflow:hidden;transition:border-color .2s ease}.journey-card:hover{border-color:var(--accent-purple)}.journey-card-header{display:flex;align-items:center;gap:8px;padding:.75rem 1rem;background:var(--bg-code-header);border-bottom:1px solid var(--border-subtle)}.journey-card-dots{display:flex;gap:6px}.journey-card-dot{width:10px;height:10px;border-radius:50%;background:var(--text-muted);opacity:.5}.journey-card-dot:first-child{background:#ff5f56;opacity:.8}.journey-card-dot:nth-child(2){background:#ffbd2e;opacity:.8}.journey-card-dot:nth-child(3){background:#27ca40;opacity:.8}.journey-card-filename{font-family:datatype,monospace;font-size:.75rem;color:var(--text-secondary);margin-left:auto}.journey-card-body{padding:1.25rem}.journey-company{font-family:construct mono,datatype,monospace;font-size:1.1rem;font-weight:600;color:var(--accent-purple);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.02em}.journey-role{font-family:artific,sans-serif;font-size:.95rem;font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.journey-period{font-family:datatype,monospace;font-size:.7rem;color:var(--text-muted);margin-bottom:1rem;letter-spacing:.05em}.journey-description{font-family:artific,sans-serif;font-size:.875rem;line-height:1.6;color:var(--text-secondary);margin-bottom:1rem;position:relative;padding-left:1rem;border-left:2px solid var(--border-subtle)}.journey-technologies{display:flex;flex-wrap:wrap;gap:.5rem}.tech-tag{font-family:datatype,monospace;font-size:.65rem;padding:.25rem .6rem;background:0 0;border:1px solid var(--border-subtle);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;transition:all .2s ease;text-decoration:none;border-radius:0}.tech-tag:hover{border-color:var(--accent-purple);color:var(--accent-purple);background:var(--accent-purple-alpha)}.project-links{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.project-link{display:inline-flex;align-items:center;gap:.5rem;font-family:datatype,monospace;font-size:.75rem;padding:.5rem 1rem;background:0 0;border:1px solid var(--accent-purple);color:var(--accent-purple);text-decoration:none;text-transform:uppercase;letter-spacing:.05em;transition:all .2s ease;border-radius:0}.project-link:hover{background:var(--accent-purple);color:var(--bg-terminal)}.project-link i{font-size:.9rem}@media(max-width:968px){.journey-grid{grid-template-columns:1fr}}@media(max-width:480px){.journey-card-body{padding:1rem}.journey-card .journey-company{font-size:1rem}}.journey-card{opacity:0;animation:journeyFadeIn .6s ease forwards}.journey-card:nth-child(1){animation-delay:.1s}.journey-card:nth-child(2){animation-delay:.2s}.journey-card:nth-child(3){animation-delay:.3s}.journey-card:nth-child(4){animation-delay:.4s}.timeline-row{opacity:0;animation:journeyFadeIn .6s ease forwards}.timeline-row:nth-child(1){animation-delay:.1s}.timeline-row:nth-child(2){animation-delay:.2s}.timeline-row:nth-child(3){animation-delay:.3s}.timeline-row:nth-child(4){animation-delay:.4s}@keyframes journeyFadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:root{--accent-purple-alpha:hsla(var(--accent-purple-hsl), 0.1)}.journey-card,.journey-card *,.timeline-container,.timeline-container *{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}